diff --git a/.vuepress/.cache/deps/@vue_devtools-api.js b/.vuepress/.cache/deps/@vue_devtools-api.js deleted file mode 100644 index 1511576a7..000000000 --- a/.vuepress/.cache/deps/@vue_devtools-api.js +++ /dev/null @@ -1,12 +0,0 @@ -import { - isPerformanceSupported, - now, - setupDevtoolsPlugin -} from "./chunk-J4VLYDXT.js"; -import "./chunk-3EJPJMEH.js"; -export { - isPerformanceSupported, - now, - setupDevtoolsPlugin -}; -//# sourceMappingURL=@vue_devtools-api.js.map diff --git a/.vuepress/.cache/deps/@vue_devtools-api.js.map b/.vuepress/.cache/deps/@vue_devtools-api.js.map deleted file mode 100644 index 98652118b..000000000 --- a/.vuepress/.cache/deps/@vue_devtools-api.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "sourcesContent": [], - "mappings": "", - "names": [] -} diff --git a/.vuepress/.cache/deps/@vuepress_shared.js b/.vuepress/.cache/deps/@vuepress_shared.js deleted file mode 100644 index d0402488c..000000000 --- a/.vuepress/.cache/deps/@vuepress_shared.js +++ /dev/null @@ -1,107 +0,0 @@ -import { - isArray, - isFunction, - isString -} from "./chunk-F6L62Q4Q.js"; -import "./chunk-3EJPJMEH.js"; - -// node_modules/@vuepress/shared/dist/index.js -var resolveHeadIdentifier = ([ - tag, - attrs, - content -]) => { - if (tag === "meta" && attrs.name) { - return `${tag}.${attrs.name}`; - } - if (["title", "base"].includes(tag)) { - return tag; - } - if (tag === "template" && attrs.id) { - return `${tag}.${attrs.id}`; - } - return JSON.stringify([tag, attrs, content]); -}; -var dedupeHead = (head) => { - const identifierSet = /* @__PURE__ */ new Set(); - const result = []; - head.forEach((item) => { - const identifier = resolveHeadIdentifier(item); - if (!identifierSet.has(identifier)) { - identifierSet.add(identifier); - result.push(item); - } - }); - return result; -}; -var ensureLeadingSlash = (str) => str[0] === "/" ? str : `/${str}`; -var ensureEndingSlash = (str) => str[str.length - 1] === "/" || str.endsWith(".html") ? str : `${str}/`; -var formatDateString = (str, defaultDateString = "") => { - const dateMatch = str.match(/\b(\d{4})-(\d{1,2})-(\d{1,2})\b/); - if (dateMatch === null) { - return defaultDateString; - } - const [, yearStr, monthStr, dayStr] = dateMatch; - return [yearStr, monthStr.padStart(2, "0"), dayStr.padStart(2, "0")].join("-"); -}; -var isLinkHttp = (link) => /^(https?:)?\/\//.test(link); -var markdownLinkRegexp = /.md((\?|#).*)?$/; -var isLinkExternal = (link, base = "/") => { - if (isLinkHttp(link)) { - return true; - } - if (link.startsWith("/") && !link.startsWith(base) && !markdownLinkRegexp.test(link)) { - return true; - } - return false; -}; -var isLinkWithProtocol = (link) => /^[a-z][a-z0-9+.-]*:/.test(link); -var isPlainObject = (val) => Object.prototype.toString.call(val) === "[object Object]"; -var omit = (obj, ...keys) => { - const result = { ...obj }; - for (const key of keys) { - delete result[key]; - } - return result; -}; -var removeEndingSlash = (str) => str[str.length - 1] === "/" ? str.slice(0, -1) : str; -var removeLeadingSlash = (str) => str[0] === "/" ? str.slice(1) : str; -var resolveLocalePath = (locales, routePath) => { - const localePaths = Object.keys(locales).sort((a, b) => { - const levelDelta = b.split("/").length - a.split("/").length; - if (levelDelta !== 0) { - return levelDelta; - } - return b.length - a.length; - }); - for (const localePath of localePaths) { - if (routePath.startsWith(localePath)) { - return localePath; - } - } - return "/"; -}; -var resolveRoutePathFromUrl = (url, base = "/") => { - const pathname = url.replace(/^(https?:)?\/\/[^/]*/, ""); - return pathname.startsWith(base) ? `/${pathname.slice(base.length)}` : pathname; -}; -export { - dedupeHead, - ensureEndingSlash, - ensureLeadingSlash, - formatDateString, - isArray, - isFunction, - isLinkExternal, - isLinkHttp, - isLinkWithProtocol, - isPlainObject, - isString, - omit, - removeEndingSlash, - removeLeadingSlash, - resolveHeadIdentifier, - resolveLocalePath, - resolveRoutePathFromUrl -}; -//# sourceMappingURL=@vuepress_shared.js.map diff --git a/.vuepress/.cache/deps/@vuepress_shared.js.map b/.vuepress/.cache/deps/@vuepress_shared.js.map deleted file mode 100644 index d5e3bc0bf..000000000 --- a/.vuepress/.cache/deps/@vuepress_shared.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/@vuepress/shared/dist/index.js"], - "sourcesContent": ["// src/utils/index.ts\nimport { isArray, isFunction, isString } from \"@vue/shared\";\n\n// src/utils/resolveHeadIdentifier.ts\nvar resolveHeadIdentifier = ([\n tag,\n attrs,\n content\n]) => {\n if (tag === \"meta\" && attrs.name) {\n return `${tag}.${attrs.name}`;\n }\n if ([\"title\", \"base\"].includes(tag)) {\n return tag;\n }\n if (tag === \"template\" && attrs.id) {\n return `${tag}.${attrs.id}`;\n }\n return JSON.stringify([tag, attrs, content]);\n};\n\n// src/utils/dedupeHead.ts\nvar dedupeHead = (head) => {\n const identifierSet = /* @__PURE__ */ new Set();\n const result = [];\n head.forEach((item) => {\n const identifier = resolveHeadIdentifier(item);\n if (!identifierSet.has(identifier)) {\n identifierSet.add(identifier);\n result.push(item);\n }\n });\n return result;\n};\n\n// src/utils/ensureLeadingSlash.ts\nvar ensureLeadingSlash = (str) => str[0] === \"/\" ? str : `/${str}`;\n\n// src/utils/ensureEndingSlash.ts\nvar ensureEndingSlash = (str) => str[str.length - 1] === \"/\" || str.endsWith(\".html\") ? str : `${str}/`;\n\n// src/utils/formatDateString.ts\nvar formatDateString = (str, defaultDateString = \"\") => {\n const dateMatch = str.match(/\\b(\\d{4})-(\\d{1,2})-(\\d{1,2})\\b/);\n if (dateMatch === null) {\n return defaultDateString;\n }\n const [, yearStr, monthStr, dayStr] = dateMatch;\n return [yearStr, monthStr.padStart(2, \"0\"), dayStr.padStart(2, \"0\")].join(\"-\");\n};\n\n// src/utils/isLinkHttp.ts\nvar isLinkHttp = (link) => /^(https?:)?\\/\\//.test(link);\n\n// src/utils/isLinkExternal.ts\nvar markdownLinkRegexp = /.md((\\?|#).*)?$/;\nvar isLinkExternal = (link, base = \"/\") => {\n if (isLinkHttp(link)) {\n return true;\n }\n if (link.startsWith(\"/\") && !link.startsWith(base) && !markdownLinkRegexp.test(link)) {\n return true;\n }\n return false;\n};\n\n// src/utils/isLinkWithProtocol.ts\nvar isLinkWithProtocol = (link) => /^[a-z][a-z0-9+.-]*:/.test(link);\n\n// src/utils/isPlainObject.ts\nvar isPlainObject = (val) => Object.prototype.toString.call(val) === \"[object Object]\";\n\n// src/utils/omit.ts\nvar omit = (obj, ...keys) => {\n const result = { ...obj };\n for (const key of keys) {\n delete result[key];\n }\n return result;\n};\n\n// src/utils/removeEndingSlash.ts\nvar removeEndingSlash = (str) => str[str.length - 1] === \"/\" ? str.slice(0, -1) : str;\n\n// src/utils/removeLeadingSlash.ts\nvar removeLeadingSlash = (str) => str[0] === \"/\" ? str.slice(1) : str;\n\n// src/utils/resolveLocalePath.ts\nvar resolveLocalePath = (locales, routePath) => {\n const localePaths = Object.keys(locales).sort((a, b) => {\n const levelDelta = b.split(\"/\").length - a.split(\"/\").length;\n if (levelDelta !== 0) {\n return levelDelta;\n }\n return b.length - a.length;\n });\n for (const localePath of localePaths) {\n if (routePath.startsWith(localePath)) {\n return localePath;\n }\n }\n return \"/\";\n};\n\n// src/utils/resolveRoutePathFromUrl.ts\nvar resolveRoutePathFromUrl = (url, base = \"/\") => {\n const pathname = url.replace(/^(https?:)?\\/\\/[^/]*/, \"\");\n return pathname.startsWith(base) ? `/${pathname.slice(base.length)}` : pathname;\n};\nexport {\n dedupeHead,\n ensureEndingSlash,\n ensureLeadingSlash,\n formatDateString,\n isArray,\n isFunction,\n isLinkExternal,\n isLinkHttp,\n isLinkWithProtocol,\n isPlainObject,\n isString,\n omit,\n removeEndingSlash,\n removeLeadingSlash,\n resolveHeadIdentifier,\n resolveLocalePath,\n resolveRoutePathFromUrl\n};\n"], - "mappings": "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", - "names": [] -} diff --git a/.vuepress/.cache/deps/@vueuse_core.js b/.vuepress/.cache/deps/@vueuse_core.js deleted file mode 100644 index 3dafe35f6..000000000 --- a/.vuepress/.cache/deps/@vueuse_core.js +++ /dev/null @@ -1,8979 +0,0 @@ -import { - Fragment, - TransitionGroup, - computed, - customRef, - defineComponent, - effectScope, - getCurrentInstance, - getCurrentScope, - h, - inject, - isReactive, - isReadonly, - isRef, - markRaw, - nextTick, - onBeforeMount, - onBeforeUnmount, - onBeforeUpdate, - onMounted, - onScopeDispose, - onUnmounted, - onUpdated, - provide, - reactive, - readonly, - ref, - shallowReactive, - shallowRef, - toRef, - toRefs, - unref, - version, - watch, - watchEffect -} from "./chunk-OQPQLNES.js"; -import "./chunk-F6L62Q4Q.js"; -import "./chunk-3EJPJMEH.js"; - -// node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs -var isVue2 = false; -var isVue3 = true; -function set(target, key, val) { - if (Array.isArray(target)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val; - } - target[key] = val; - return val; -} - -// node_modules/@vueuse/shared/index.mjs -function computedEager(fn, options) { - var _a; - const result = shallowRef(); - watchEffect(() => { - result.value = fn(); - }, { - ...options, - flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync" - }); - return readonly(result); -} -function computedWithControl(source, fn) { - let v = void 0; - let track; - let trigger; - const dirty = ref(true); - const update = () => { - dirty.value = true; - trigger(); - }; - watch(source, update, { flush: "sync" }); - const get2 = typeof fn === "function" ? fn : fn.get; - const set4 = typeof fn === "function" ? void 0 : fn.set; - const result = customRef((_track, _trigger) => { - track = _track; - trigger = _trigger; - return { - get() { - if (dirty.value) { - v = get2(); - dirty.value = false; - } - track(); - return v; - }, - set(v2) { - set4 == null ? void 0 : set4(v2); - } - }; - }); - if (Object.isExtensible(result)) - result.trigger = update; - return result; -} -function tryOnScopeDispose(fn) { - if (getCurrentScope()) { - onScopeDispose(fn); - return true; - } - return false; -} -function createEventHook() { - const fns = /* @__PURE__ */ new Set(); - const off = (fn) => { - fns.delete(fn); - }; - const on = (fn) => { - fns.add(fn); - const offFn = () => off(fn); - tryOnScopeDispose(offFn); - return { - off: offFn - }; - }; - const trigger = (...args) => { - return Promise.all(Array.from(fns).map((fn) => fn(...args))); - }; - return { - on, - off, - trigger - }; -} -function createGlobalState(stateFactory) { - let initialized = false; - let state; - const scope = effectScope(true); - return (...args) => { - if (!initialized) { - state = scope.run(() => stateFactory(...args)); - initialized = true; - } - return state; - }; -} -var localProvidedStateMap = /* @__PURE__ */ new WeakMap(); -var provideLocal = (key, value) => { - var _a; - const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; - if (instance == null) - throw new Error("provideLocal must be called in setup"); - if (!localProvidedStateMap.has(instance)) - localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null)); - const localProvidedState = localProvidedStateMap.get(instance); - localProvidedState[key] = value; - provide(key, value); -}; -var injectLocal = (...args) => { - var _a; - const key = args[0]; - const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; - if (instance == null) - throw new Error("injectLocal must be called in setup"); - if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance)) - return localProvidedStateMap.get(instance)[key]; - return inject(...args); -}; -function createInjectionState(composable, options) { - const key = (options == null ? void 0 : options.injectionKey) || Symbol("InjectionState"); - const useProvidingState = (...args) => { - const state = composable(...args); - provideLocal(key, state); - return state; - }; - const useInjectedState = () => injectLocal(key); - return [useProvidingState, useInjectedState]; -} -function createSharedComposable(composable) { - let subscribers = 0; - let state; - let scope; - const dispose = () => { - subscribers -= 1; - if (scope && subscribers <= 0) { - scope.stop(); - state = void 0; - scope = void 0; - } - }; - return (...args) => { - subscribers += 1; - if (!state) { - scope = effectScope(true); - state = scope.run(() => composable(...args)); - } - tryOnScopeDispose(dispose); - return state; - }; -} -function extendRef(ref2, extend, { enumerable = false, unwrap = true } = {}) { - if (!isVue3 && !version.startsWith("2.7.")) { - if (true) - throw new Error("[VueUse] extendRef only works in Vue 2.7 or above."); - return; - } - for (const [key, value] of Object.entries(extend)) { - if (key === "value") - continue; - if (isRef(value) && unwrap) { - Object.defineProperty(ref2, key, { - get() { - return value.value; - }, - set(v) { - value.value = v; - }, - enumerable - }); - } else { - Object.defineProperty(ref2, key, { value, enumerable }); - } - } - return ref2; -} -function get(obj, key) { - if (key == null) - return unref(obj); - return unref(obj)[key]; -} -function isDefined(v) { - return unref(v) != null; -} -function makeDestructurable(obj, arr) { - if (typeof Symbol !== "undefined") { - const clone = { ...obj }; - Object.defineProperty(clone, Symbol.iterator, { - enumerable: false, - value() { - let index = 0; - return { - next: () => ({ - value: arr[index++], - done: index > arr.length - }) - }; - } - }); - return clone; - } else { - return Object.assign([...arr], obj); - } -} -function toValue(r) { - return typeof r === "function" ? r() : unref(r); -} -var resolveUnref = toValue; -function reactify(fn, options) { - const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue; - return function(...args) { - return computed(() => fn.apply(this, args.map((i) => unrefFn(i)))); - }; -} -function reactifyObject(obj, optionsOrKeys = {}) { - let keys2 = []; - let options; - if (Array.isArray(optionsOrKeys)) { - keys2 = optionsOrKeys; - } else { - options = optionsOrKeys; - const { includeOwnProperties = true } = optionsOrKeys; - keys2.push(...Object.keys(obj)); - if (includeOwnProperties) - keys2.push(...Object.getOwnPropertyNames(obj)); - } - return Object.fromEntries( - keys2.map((key) => { - const value = obj[key]; - return [ - key, - typeof value === "function" ? reactify(value.bind(obj), options) : value - ]; - }) - ); -} -function toReactive(objectRef) { - if (!isRef(objectRef)) - return reactive(objectRef); - const proxy = new Proxy({}, { - get(_, p, receiver) { - return unref(Reflect.get(objectRef.value, p, receiver)); - }, - set(_, p, value) { - if (isRef(objectRef.value[p]) && !isRef(value)) - objectRef.value[p].value = value; - else - objectRef.value[p] = value; - return true; - }, - deleteProperty(_, p) { - return Reflect.deleteProperty(objectRef.value, p); - }, - has(_, p) { - return Reflect.has(objectRef.value, p); - }, - ownKeys() { - return Object.keys(objectRef.value); - }, - getOwnPropertyDescriptor() { - return { - enumerable: true, - configurable: true - }; - } - }); - return reactive(proxy); -} -function reactiveComputed(fn) { - return toReactive(computed(fn)); -} -function reactiveOmit(obj, ...keys2) { - const flatKeys = keys2.flat(); - const predicate = flatKeys[0]; - return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs(obj)).filter((e) => !flatKeys.includes(e[0])))); -} -var isClient = typeof window !== "undefined" && typeof document !== "undefined"; -var isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; -var isDef = (val) => typeof val !== "undefined"; -var notNullish = (val) => val != null; -var assert = (condition, ...infos) => { - if (!condition) - console.warn(...infos); -}; -var toString = Object.prototype.toString; -var isObject = (val) => toString.call(val) === "[object Object]"; -var now = () => Date.now(); -var timestamp = () => +Date.now(); -var clamp = (n, min, max) => Math.min(max, Math.max(min, n)); -var noop = () => { -}; -var rand = (min, max) => { - min = Math.ceil(min); - max = Math.floor(max); - return Math.floor(Math.random() * (max - min + 1)) + min; -}; -var hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key); -var isIOS = getIsIOS(); -function getIsIOS() { - var _a, _b; - return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent)); -} -function createFilterWrapper(filter, fn) { - function wrapper(...args) { - return new Promise((resolve, reject) => { - Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject); - }); - } - return wrapper; -} -var bypassFilter = (invoke2) => { - return invoke2(); -}; -function debounceFilter(ms, options = {}) { - let timer; - let maxTimer; - let lastRejector = noop; - const _clearTimeout = (timer2) => { - clearTimeout(timer2); - lastRejector(); - lastRejector = noop; - }; - const filter = (invoke2) => { - const duration = toValue(ms); - const maxDuration = toValue(options.maxWait); - if (timer) - _clearTimeout(timer); - if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) { - if (maxTimer) { - _clearTimeout(maxTimer); - maxTimer = null; - } - return Promise.resolve(invoke2()); - } - return new Promise((resolve, reject) => { - lastRejector = options.rejectOnCancel ? reject : resolve; - if (maxDuration && !maxTimer) { - maxTimer = setTimeout(() => { - if (timer) - _clearTimeout(timer); - maxTimer = null; - resolve(invoke2()); - }, maxDuration); - } - timer = setTimeout(() => { - if (maxTimer) - _clearTimeout(maxTimer); - maxTimer = null; - resolve(invoke2()); - }, duration); - }); - }; - return filter; -} -function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) { - let lastExec = 0; - let timer; - let isLeading = true; - let lastRejector = noop; - let lastValue; - const clear = () => { - if (timer) { - clearTimeout(timer); - timer = void 0; - lastRejector(); - lastRejector = noop; - } - }; - const filter = (_invoke) => { - const duration = toValue(ms); - const elapsed = Date.now() - lastExec; - const invoke2 = () => { - return lastValue = _invoke(); - }; - clear(); - if (duration <= 0) { - lastExec = Date.now(); - return invoke2(); - } - if (elapsed > duration && (leading || !isLeading)) { - lastExec = Date.now(); - invoke2(); - } else if (trailing) { - lastValue = new Promise((resolve, reject) => { - lastRejector = rejectOnCancel ? reject : resolve; - timer = setTimeout(() => { - lastExec = Date.now(); - isLeading = true; - resolve(invoke2()); - clear(); - }, Math.max(0, duration - elapsed)); - }); - } - if (!leading && !timer) - timer = setTimeout(() => isLeading = true, duration); - isLeading = false; - return lastValue; - }; - return filter; -} -function pausableFilter(extendFilter = bypassFilter) { - const isActive = ref(true); - function pause() { - isActive.value = false; - } - function resume() { - isActive.value = true; - } - const eventFilter = (...args) => { - if (isActive.value) - extendFilter(...args); - }; - return { isActive: readonly(isActive), pause, resume, eventFilter }; -} -var directiveHooks = { - mounted: isVue3 ? "mounted" : "inserted", - updated: isVue3 ? "updated" : "componentUpdated", - unmounted: isVue3 ? "unmounted" : "unbind" -}; -function cacheStringFunction(fn) { - const cache = /* @__PURE__ */ Object.create(null); - return (str) => { - const hit = cache[str]; - return hit || (cache[str] = fn(str)); - }; -} -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); -var camelizeRE = /-(\w)/g; -var camelize = cacheStringFunction((str) => { - return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); -}); -function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") { - return new Promise((resolve, reject) => { - if (throwOnTimeout) - setTimeout(() => reject(reason), ms); - else - setTimeout(resolve, ms); - }); -} -function identity(arg) { - return arg; -} -function createSingletonPromise(fn) { - let _promise; - function wrapper() { - if (!_promise) - _promise = fn(); - return _promise; - } - wrapper.reset = async () => { - const _prev = _promise; - _promise = void 0; - if (_prev) - await _prev; - }; - return wrapper; -} -function invoke(fn) { - return fn(); -} -function containsProp(obj, ...props) { - return props.some((k) => k in obj); -} -function increaseWithUnit(target, delta) { - var _a; - if (typeof target === "number") - return target + delta; - const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || ""; - const unit = target.slice(value.length); - const result = Number.parseFloat(value) + delta; - if (Number.isNaN(result)) - return target; - return result + unit; -} -function objectPick(obj, keys2, omitUndefined = false) { - return keys2.reduce((n, k) => { - if (k in obj) { - if (!omitUndefined || obj[k] !== void 0) - n[k] = obj[k]; - } - return n; - }, {}); -} -function objectOmit(obj, keys2, omitUndefined = false) { - return Object.fromEntries(Object.entries(obj).filter(([key, value]) => { - return (!omitUndefined || value !== void 0) && !keys2.includes(key); - })); -} -function objectEntries(obj) { - return Object.entries(obj); -} -function getLifeCycleTarget(target) { - return target || getCurrentInstance(); -} -function toRef2(...args) { - if (args.length !== 1) - return toRef(...args); - const r = args[0]; - return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r); -} -var resolveRef = toRef2; -function reactivePick(obj, ...keys2) { - const flatKeys = keys2.flat(); - const predicate = flatKeys[0]; - return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef2(obj, k)]))); -} -function refAutoReset(defaultValue, afterMs = 1e4) { - return customRef((track, trigger) => { - let value = toValue(defaultValue); - let timer; - const resetAfter = () => setTimeout(() => { - value = toValue(defaultValue); - trigger(); - }, toValue(afterMs)); - tryOnScopeDispose(() => { - clearTimeout(timer); - }); - return { - get() { - track(); - return value; - }, - set(newValue) { - value = newValue; - trigger(); - clearTimeout(timer); - timer = resetAfter(); - } - }; - }); -} -function useDebounceFn(fn, ms = 200, options = {}) { - return createFilterWrapper( - debounceFilter(ms, options), - fn - ); -} -function refDebounced(value, ms = 200, options = {}) { - const debounced = ref(value.value); - const updater = useDebounceFn(() => { - debounced.value = value.value; - }, ms, options); - watch(value, () => updater()); - return debounced; -} -function refDefault(source, defaultValue) { - return computed({ - get() { - var _a; - return (_a = source.value) != null ? _a : defaultValue; - }, - set(value) { - source.value = value; - } - }); -} -function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) { - return createFilterWrapper( - throttleFilter(ms, trailing, leading, rejectOnCancel), - fn - ); -} -function refThrottled(value, delay = 200, trailing = true, leading = true) { - if (delay <= 0) - return value; - const throttled = ref(value.value); - const updater = useThrottleFn(() => { - throttled.value = value.value; - }, delay, trailing, leading); - watch(value, () => updater()); - return throttled; -} -function refWithControl(initial, options = {}) { - let source = initial; - let track; - let trigger; - const ref2 = customRef((_track, _trigger) => { - track = _track; - trigger = _trigger; - return { - get() { - return get2(); - }, - set(v) { - set4(v); - } - }; - }); - function get2(tracking = true) { - if (tracking) - track(); - return source; - } - function set4(value, triggering = true) { - var _a, _b; - if (value === source) - return; - const old = source; - if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false) - return; - source = value; - (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old); - if (triggering) - trigger(); - } - const untrackedGet = () => get2(false); - const silentSet = (v) => set4(v, false); - const peek = () => get2(false); - const lay = (v) => set4(v, false); - return extendRef( - ref2, - { - get: get2, - set: set4, - untrackedGet, - silentSet, - peek, - lay - }, - { enumerable: true } - ); -} -var controlledRef = refWithControl; -function set2(...args) { - if (args.length === 2) { - const [ref2, value] = args; - ref2.value = value; - } - if (args.length === 3) { - if (isVue2) { - set(...args); - } else { - const [target, key, value] = args; - target[key] = value; - } - } -} -function watchWithFilter(source, cb, options = {}) { - const { - eventFilter = bypassFilter, - ...watchOptions - } = options; - return watch( - source, - createFilterWrapper( - eventFilter, - cb - ), - watchOptions - ); -} -function watchPausable(source, cb, options = {}) { - const { - eventFilter: filter, - ...watchOptions - } = options; - const { eventFilter, pause, resume, isActive } = pausableFilter(filter); - const stop = watchWithFilter( - source, - cb, - { - ...watchOptions, - eventFilter - } - ); - return { stop, pause, resume, isActive }; -} -function syncRef(left, right, ...[options]) { - const { - flush = "sync", - deep = false, - immediate = true, - direction = "both", - transform = {} - } = options || {}; - const watchers = []; - const transformLTR = "ltr" in transform && transform.ltr || ((v) => v); - const transformRTL = "rtl" in transform && transform.rtl || ((v) => v); - if (direction === "both" || direction === "ltr") { - watchers.push(watchPausable( - left, - (newValue) => { - watchers.forEach((w) => w.pause()); - right.value = transformLTR(newValue); - watchers.forEach((w) => w.resume()); - }, - { flush, deep, immediate } - )); - } - if (direction === "both" || direction === "rtl") { - watchers.push(watchPausable( - right, - (newValue) => { - watchers.forEach((w) => w.pause()); - left.value = transformRTL(newValue); - watchers.forEach((w) => w.resume()); - }, - { flush, deep, immediate } - )); - } - const stop = () => { - watchers.forEach((w) => w.stop()); - }; - return stop; -} -function syncRefs(source, targets, options = {}) { - const { - flush = "sync", - deep = false, - immediate = true - } = options; - if (!Array.isArray(targets)) - targets = [targets]; - return watch( - source, - (newValue) => targets.forEach((target) => target.value = newValue), - { flush, deep, immediate } - ); -} -function toRefs2(objectRef, options = {}) { - if (!isRef(objectRef)) - return toRefs(objectRef); - const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {}; - for (const key in objectRef.value) { - result[key] = customRef(() => ({ - get() { - return objectRef.value[key]; - }, - set(v) { - var _a; - const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true; - if (replaceRef) { - if (Array.isArray(objectRef.value)) { - const copy = [...objectRef.value]; - copy[key] = v; - objectRef.value = copy; - } else { - const newObject = { ...objectRef.value, [key]: v }; - Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value)); - objectRef.value = newObject; - } - } else { - objectRef.value[key] = v; - } - } - })); - } - return result; -} -function tryOnBeforeMount(fn, sync = true, target) { - const instance = getLifeCycleTarget(target); - if (instance) - onBeforeMount(fn, target); - else if (sync) - fn(); - else - nextTick(fn); -} -function tryOnBeforeUnmount(fn, target) { - const instance = getLifeCycleTarget(target); - if (instance) - onBeforeUnmount(fn, target); -} -function tryOnMounted(fn, sync = true, target) { - const instance = getLifeCycleTarget(); - if (instance) - onMounted(fn, target); - else if (sync) - fn(); - else - nextTick(fn); -} -function tryOnUnmounted(fn, target) { - const instance = getLifeCycleTarget(target); - if (instance) - onUnmounted(fn, target); -} -function createUntil(r, isNot = false) { - function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) { - let stop = null; - const watcher = new Promise((resolve) => { - stop = watch( - r, - (v) => { - if (condition(v) !== isNot) { - stop == null ? void 0 : stop(); - resolve(v); - } - }, - { - flush, - deep, - immediate: true - } - ); - }); - const promises = [watcher]; - if (timeout != null) { - promises.push( - promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop()) - ); - } - return Promise.race(promises); - } - function toBe(value, options) { - if (!isRef(value)) - return toMatch((v) => v === value, options); - const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {}; - let stop = null; - const watcher = new Promise((resolve) => { - stop = watch( - [r, value], - ([v1, v2]) => { - if (isNot !== (v1 === v2)) { - stop == null ? void 0 : stop(); - resolve(v1); - } - }, - { - flush, - deep, - immediate: true - } - ); - }); - const promises = [watcher]; - if (timeout != null) { - promises.push( - promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => { - stop == null ? void 0 : stop(); - return toValue(r); - }) - ); - } - return Promise.race(promises); - } - function toBeTruthy(options) { - return toMatch((v) => Boolean(v), options); - } - function toBeNull(options) { - return toBe(null, options); - } - function toBeUndefined(options) { - return toBe(void 0, options); - } - function toBeNaN(options) { - return toMatch(Number.isNaN, options); - } - function toContains(value, options) { - return toMatch((v) => { - const array = Array.from(v); - return array.includes(value) || array.includes(toValue(value)); - }, options); - } - function changed(options) { - return changedTimes(1, options); - } - function changedTimes(n = 1, options) { - let count = -1; - return toMatch(() => { - count += 1; - return count >= n; - }, options); - } - if (Array.isArray(toValue(r))) { - const instance = { - toMatch, - toContains, - changed, - changedTimes, - get not() { - return createUntil(r, !isNot); - } - }; - return instance; - } else { - const instance = { - toMatch, - toBe, - toBeTruthy, - toBeNull, - toBeNaN, - toBeUndefined, - changed, - changedTimes, - get not() { - return createUntil(r, !isNot); - } - }; - return instance; - } -} -function until(r) { - return createUntil(r); -} -function defaultComparator(value, othVal) { - return value === othVal; -} -function useArrayDifference(...args) { - var _a; - const list = args[0]; - const values = args[1]; - let compareFn = (_a = args[2]) != null ? _a : defaultComparator; - if (typeof compareFn === "string") { - const key = compareFn; - compareFn = (value, othVal) => value[key] === othVal[key]; - } - return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1)); -} -function useArrayEvery(list, fn) { - return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array))); -} -function useArrayFilter(list, fn) { - return computed(() => toValue(list).map((i) => toValue(i)).filter(fn)); -} -function useArrayFind(list, fn) { - return computed(() => toValue( - toValue(list).find((element, index, array) => fn(toValue(element), index, array)) - )); -} -function useArrayFindIndex(list, fn) { - return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array))); -} -function findLast(arr, cb) { - let index = arr.length; - while (index-- > 0) { - if (cb(arr[index], index, arr)) - return arr[index]; - } - return void 0; -} -function useArrayFindLast(list, fn) { - return computed(() => toValue( - !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array)) - )); -} -function isArrayIncludesOptions(obj) { - return isObject(obj) && containsProp(obj, "formIndex", "comparator"); -} -function useArrayIncludes(...args) { - var _a; - const list = args[0]; - const value = args[1]; - let comparator = args[2]; - let formIndex = 0; - if (isArrayIncludesOptions(comparator)) { - formIndex = (_a = comparator.fromIndex) != null ? _a : 0; - comparator = comparator.comparator; - } - if (typeof comparator === "string") { - const key = comparator; - comparator = (element, value2) => element[key] === toValue(value2); - } - comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2); - return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator( - toValue(element), - toValue(value), - index, - toValue(array) - ))); -} -function useArrayJoin(list, separator) { - return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator))); -} -function useArrayMap(list, fn) { - return computed(() => toValue(list).map((i) => toValue(i)).map(fn)); -} -function useArrayReduce(list, reducer, ...args) { - const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index); - return computed(() => { - const resolved = toValue(list); - return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback); - }); -} -function useArraySome(list, fn) { - return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array))); -} -function uniq(array) { - return Array.from(new Set(array)); -} -function uniqueElementsBy(array, fn) { - return array.reduce((acc, v) => { - if (!acc.some((x) => fn(v, x, array))) - acc.push(v); - return acc; - }, []); -} -function useArrayUnique(list, compareFn) { - return computed(() => { - const resolvedList = toValue(list).map((element) => toValue(element)); - return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList); - }); -} -function useCounter(initialValue = 0, options = {}) { - let _initialValue = unref(initialValue); - const count = ref(initialValue); - const { - max = Number.POSITIVE_INFINITY, - min = Number.NEGATIVE_INFINITY - } = options; - const inc = (delta = 1) => count.value = Math.min(max, count.value + delta); - const dec = (delta = 1) => count.value = Math.max(min, count.value - delta); - const get2 = () => count.value; - const set4 = (val) => count.value = Math.max(min, Math.min(max, val)); - const reset = (val = _initialValue) => { - _initialValue = val; - return set4(val); - }; - return { count, inc, dec, get: get2, set: set4, reset }; -} -var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/; -var REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g; -function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) { - let m = hours < 12 ? "AM" : "PM"; - if (hasPeriod) - m = m.split("").reduce((acc, curr) => acc += `${curr}.`, ""); - return isLowercase ? m.toLowerCase() : m; -} -function formatOrdinal(num) { - const suffixes = ["th", "st", "nd", "rd"]; - const v = num % 100; - return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]); -} -function formatDate(date, formatStr, options = {}) { - var _a; - const years = date.getFullYear(); - const month = date.getMonth(); - const days = date.getDate(); - const hours = date.getHours(); - const minutes = date.getMinutes(); - const seconds = date.getSeconds(); - const milliseconds = date.getMilliseconds(); - const day = date.getDay(); - const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem; - const matches = { - Yo: () => formatOrdinal(years), - YY: () => String(years).slice(-2), - YYYY: () => years, - M: () => month + 1, - Mo: () => formatOrdinal(month + 1), - MM: () => `${month + 1}`.padStart(2, "0"), - MMM: () => date.toLocaleDateString(options.locales, { month: "short" }), - MMMM: () => date.toLocaleDateString(options.locales, { month: "long" }), - D: () => String(days), - Do: () => formatOrdinal(days), - DD: () => `${days}`.padStart(2, "0"), - H: () => String(hours), - Ho: () => formatOrdinal(hours), - HH: () => `${hours}`.padStart(2, "0"), - h: () => `${hours % 12 || 12}`.padStart(1, "0"), - ho: () => formatOrdinal(hours % 12 || 12), - hh: () => `${hours % 12 || 12}`.padStart(2, "0"), - m: () => String(minutes), - mo: () => formatOrdinal(minutes), - mm: () => `${minutes}`.padStart(2, "0"), - s: () => String(seconds), - so: () => formatOrdinal(seconds), - ss: () => `${seconds}`.padStart(2, "0"), - SSS: () => `${milliseconds}`.padStart(3, "0"), - d: () => day, - dd: () => date.toLocaleDateString(options.locales, { weekday: "narrow" }), - ddd: () => date.toLocaleDateString(options.locales, { weekday: "short" }), - dddd: () => date.toLocaleDateString(options.locales, { weekday: "long" }), - A: () => meridiem(hours, minutes), - AA: () => meridiem(hours, minutes, false, true), - a: () => meridiem(hours, minutes, true), - aa: () => meridiem(hours, minutes, true, true) - }; - return formatStr.replace(REGEX_FORMAT, (match, $1) => { - var _a2, _b; - return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match; - }); -} -function normalizeDate(date) { - if (date === null) - return new Date(Number.NaN); - if (date === void 0) - return /* @__PURE__ */ new Date(); - if (date instanceof Date) - return new Date(date); - if (typeof date === "string" && !/Z$/i.test(date)) { - const d = date.match(REGEX_PARSE); - if (d) { - const m = d[2] - 1 || 0; - const ms = (d[7] || "0").substring(0, 3); - return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms); - } - } - return new Date(date); -} -function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) { - return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options)); -} -function useIntervalFn(cb, interval = 1e3, options = {}) { - const { - immediate = true, - immediateCallback = false - } = options; - let timer = null; - const isActive = ref(false); - function clean() { - if (timer) { - clearInterval(timer); - timer = null; - } - } - function pause() { - isActive.value = false; - clean(); - } - function resume() { - const intervalValue = toValue(interval); - if (intervalValue <= 0) - return; - isActive.value = true; - if (immediateCallback) - cb(); - clean(); - timer = setInterval(cb, intervalValue); - } - if (immediate && isClient) - resume(); - if (isRef(interval) || typeof interval === "function") { - const stopWatch = watch(interval, () => { - if (isActive.value && isClient) - resume(); - }); - tryOnScopeDispose(stopWatch); - } - tryOnScopeDispose(pause); - return { - isActive, - pause, - resume - }; -} -function useInterval(interval = 1e3, options = {}) { - const { - controls: exposeControls = false, - immediate = true, - callback - } = options; - const counter = ref(0); - const update = () => counter.value += 1; - const reset = () => { - counter.value = 0; - }; - const controls = useIntervalFn( - callback ? () => { - update(); - callback(counter.value); - } : update, - interval, - { immediate } - ); - if (exposeControls) { - return { - counter, - reset, - ...controls - }; - } else { - return counter; - } -} -function useLastChanged(source, options = {}) { - var _a; - const ms = ref((_a = options.initialValue) != null ? _a : null); - watch( - source, - () => ms.value = timestamp(), - options - ); - return ms; -} -function useTimeoutFn(cb, interval, options = {}) { - const { - immediate = true - } = options; - const isPending = ref(false); - let timer = null; - function clear() { - if (timer) { - clearTimeout(timer); - timer = null; - } - } - function stop() { - isPending.value = false; - clear(); - } - function start(...args) { - clear(); - isPending.value = true; - timer = setTimeout(() => { - isPending.value = false; - timer = null; - cb(...args); - }, toValue(interval)); - } - if (immediate) { - isPending.value = true; - if (isClient) - start(); - } - tryOnScopeDispose(stop); - return { - isPending: readonly(isPending), - start, - stop - }; -} -function useTimeout(interval = 1e3, options = {}) { - const { - controls: exposeControls = false, - callback - } = options; - const controls = useTimeoutFn( - callback != null ? callback : noop, - interval, - options - ); - const ready = computed(() => !controls.isPending.value); - if (exposeControls) { - return { - ready, - ...controls - }; - } else { - return ready; - } -} -function useToNumber(value, options = {}) { - const { - method = "parseFloat", - radix, - nanToZero - } = options; - return computed(() => { - let resolved = toValue(value); - if (typeof resolved === "string") - resolved = Number[method](resolved, radix); - if (nanToZero && Number.isNaN(resolved)) - resolved = 0; - return resolved; - }); -} -function useToString(value) { - return computed(() => `${toValue(value)}`); -} -function useToggle(initialValue = false, options = {}) { - const { - truthyValue = true, - falsyValue = false - } = options; - const valueIsRef = isRef(initialValue); - const _value = ref(initialValue); - function toggle(value) { - if (arguments.length) { - _value.value = value; - return _value.value; - } else { - const truthy = toValue(truthyValue); - _value.value = _value.value === truthy ? toValue(falsyValue) : truthy; - return _value.value; - } - } - if (valueIsRef) - return toggle; - else - return [_value, toggle]; -} -function watchArray(source, cb, options) { - let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)]; - return watch(source, (newList, _, onCleanup) => { - const oldListRemains = Array.from({ length: oldList.length }); - const added = []; - for (const obj of newList) { - let found = false; - for (let i = 0; i < oldList.length; i++) { - if (!oldListRemains[i] && obj === oldList[i]) { - oldListRemains[i] = true; - found = true; - break; - } - } - if (!found) - added.push(obj); - } - const removed = oldList.filter((_2, i) => !oldListRemains[i]); - cb(newList, oldList, added, removed, onCleanup); - oldList = [...newList]; - }, options); -} -function watchAtMost(source, cb, options) { - const { - count, - ...watchOptions - } = options; - const current = ref(0); - const stop = watchWithFilter( - source, - (...args) => { - current.value += 1; - if (current.value >= toValue(count)) - nextTick(() => stop()); - cb(...args); - }, - watchOptions - ); - return { count: current, stop }; -} -function watchDebounced(source, cb, options = {}) { - const { - debounce = 0, - maxWait = void 0, - ...watchOptions - } = options; - return watchWithFilter( - source, - cb, - { - ...watchOptions, - eventFilter: debounceFilter(debounce, { maxWait }) - } - ); -} -function watchDeep(source, cb, options) { - return watch( - source, - cb, - { - ...options, - deep: true - } - ); -} -function watchIgnorable(source, cb, options = {}) { - const { - eventFilter = bypassFilter, - ...watchOptions - } = options; - const filteredCb = createFilterWrapper( - eventFilter, - cb - ); - let ignoreUpdates; - let ignorePrevAsyncUpdates; - let stop; - if (watchOptions.flush === "sync") { - const ignore = ref(false); - ignorePrevAsyncUpdates = () => { - }; - ignoreUpdates = (updater) => { - ignore.value = true; - updater(); - ignore.value = false; - }; - stop = watch( - source, - (...args) => { - if (!ignore.value) - filteredCb(...args); - }, - watchOptions - ); - } else { - const disposables = []; - const ignoreCounter = ref(0); - const syncCounter = ref(0); - ignorePrevAsyncUpdates = () => { - ignoreCounter.value = syncCounter.value; - }; - disposables.push( - watch( - source, - () => { - syncCounter.value++; - }, - { ...watchOptions, flush: "sync" } - ) - ); - ignoreUpdates = (updater) => { - const syncCounterPrev = syncCounter.value; - updater(); - ignoreCounter.value += syncCounter.value - syncCounterPrev; - }; - disposables.push( - watch( - source, - (...args) => { - const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value; - ignoreCounter.value = 0; - syncCounter.value = 0; - if (ignore) - return; - filteredCb(...args); - }, - watchOptions - ) - ); - stop = () => { - disposables.forEach((fn) => fn()); - }; - } - return { stop, ignoreUpdates, ignorePrevAsyncUpdates }; -} -function watchImmediate(source, cb, options) { - return watch( - source, - cb, - { - ...options, - immediate: true - } - ); -} -function watchOnce(source, cb, options) { - const stop = watch(source, (...args) => { - nextTick(() => stop()); - return cb(...args); - }, options); - return stop; -} -function watchThrottled(source, cb, options = {}) { - const { - throttle = 0, - trailing = true, - leading = true, - ...watchOptions - } = options; - return watchWithFilter( - source, - cb, - { - ...watchOptions, - eventFilter: throttleFilter(throttle, trailing, leading) - } - ); -} -function watchTriggerable(source, cb, options = {}) { - let cleanupFn; - function onEffect() { - if (!cleanupFn) - return; - const fn = cleanupFn; - cleanupFn = void 0; - fn(); - } - function onCleanup(callback) { - cleanupFn = callback; - } - const _cb = (value, oldValue) => { - onEffect(); - return cb(value, oldValue, onCleanup); - }; - const res = watchIgnorable(source, _cb, options); - const { ignoreUpdates } = res; - const trigger = () => { - let res2; - ignoreUpdates(() => { - res2 = _cb(getWatchSources(source), getOldValue(source)); - }); - return res2; - }; - return { - ...res, - trigger - }; -} -function getWatchSources(sources) { - if (isReactive(sources)) - return sources; - if (Array.isArray(sources)) - return sources.map((item) => toValue(item)); - return toValue(sources); -} -function getOldValue(source) { - return Array.isArray(source) ? source.map(() => void 0) : void 0; -} -function whenever(source, cb, options) { - return watch( - source, - (v, ov, onInvalidate) => { - if (v) - cb(v, ov, onInvalidate); - }, - options - ); -} - -// node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs -var isVue22 = false; -var isVue32 = true; -function set3(target, key, val) { - if (Array.isArray(target)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val; - } - target[key] = val; - return val; -} -function del(target, key) { - if (Array.isArray(target)) { - target.splice(key, 1); - return; - } - delete target[key]; -} - -// node_modules/@vueuse/core/index.mjs -function computedAsync(evaluationCallback, initialState, optionsOrRef) { - let options; - if (isRef(optionsOrRef)) { - options = { - evaluating: optionsOrRef - }; - } else { - options = optionsOrRef || {}; - } - const { - lazy = false, - evaluating = void 0, - shallow = true, - onError = noop - } = options; - const started = ref(!lazy); - const current = shallow ? shallowRef(initialState) : ref(initialState); - let counter = 0; - watchEffect(async (onInvalidate) => { - if (!started.value) - return; - counter++; - const counterAtBeginning = counter; - let hasFinished = false; - if (evaluating) { - Promise.resolve().then(() => { - evaluating.value = true; - }); - } - try { - const result = await evaluationCallback((cancelCallback) => { - onInvalidate(() => { - if (evaluating) - evaluating.value = false; - if (!hasFinished) - cancelCallback(); - }); - }); - if (counterAtBeginning === counter) - current.value = result; - } catch (e) { - onError(e); - } finally { - if (evaluating && counterAtBeginning === counter) - evaluating.value = false; - hasFinished = true; - } - }); - if (lazy) { - return computed(() => { - started.value = true; - return current.value; - }); - } else { - return current; - } -} -function computedInject(key, options, defaultSource, treatDefaultAsFactory) { - let source = inject(key); - if (defaultSource) - source = inject(key, defaultSource); - if (treatDefaultAsFactory) - source = inject(key, defaultSource, treatDefaultAsFactory); - if (typeof options === "function") { - return computed((ctx) => options(source, ctx)); - } else { - return computed({ - get: (ctx) => options.get(source, ctx), - set: options.set - }); - } -} -function createReusableTemplate(options = {}) { - if (!isVue32 && !version.startsWith("2.7.")) { - if (true) - throw new Error("[VueUse] createReusableTemplate only works in Vue 2.7 or above."); - return; - } - const { - inheritAttrs = true - } = options; - const render = shallowRef(); - const define = defineComponent({ - setup(_, { slots }) { - return () => { - render.value = slots.default; - }; - } - }); - const reuse = defineComponent({ - inheritAttrs, - setup(_, { attrs, slots }) { - return () => { - var _a; - if (!render.value && true) - throw new Error("[VueUse] Failed to find the definition of reusable template"); - const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots }); - return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode; - }; - } - }); - return makeDestructurable( - { define, reuse }, - [define, reuse] - ); -} -function keysToCamelKebabCase(obj) { - const newObj = {}; - for (const key in obj) - newObj[camelize(key)] = obj[key]; - return newObj; -} -function createTemplatePromise(options = {}) { - if (!isVue32) { - if (true) - throw new Error("[VueUse] createTemplatePromise only works in Vue 3 or above."); - return; - } - let index = 0; - const instances = ref([]); - function create(...args) { - const props = shallowReactive({ - key: index++, - args, - promise: void 0, - resolve: () => { - }, - reject: () => { - }, - isResolving: false, - options - }); - instances.value.push(props); - props.promise = new Promise((_resolve, _reject) => { - props.resolve = (v) => { - props.isResolving = true; - return _resolve(v); - }; - props.reject = _reject; - }).finally(() => { - props.promise = void 0; - const index2 = instances.value.indexOf(props); - if (index2 !== -1) - instances.value.splice(index2, 1); - }); - return props.promise; - } - function start(...args) { - if (options.singleton && instances.value.length > 0) - return instances.value[0].promise; - return create(...args); - } - const component = defineComponent((_, { slots }) => { - const renderList = () => instances.value.map((props) => { - var _a; - return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props)); - }); - if (options.transition) - return () => h(TransitionGroup, options.transition, renderList); - return renderList; - }); - component.start = start; - return component; -} -function createUnrefFn(fn) { - return function(...args) { - return fn.apply(this, args.map((i) => toValue(i))); - }; -} -function unrefElement(elRef) { - var _a; - const plain = toValue(elRef); - return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; -} -var defaultWindow = isClient ? window : void 0; -var defaultDocument = isClient ? window.document : void 0; -var defaultNavigator = isClient ? window.navigator : void 0; -var defaultLocation = isClient ? window.location : void 0; -function useEventListener(...args) { - let target; - let events2; - let listeners; - let options; - if (typeof args[0] === "string" || Array.isArray(args[0])) { - [events2, listeners, options] = args; - target = defaultWindow; - } else { - [target, events2, listeners, options] = args; - } - if (!target) - return noop; - if (!Array.isArray(events2)) - events2 = [events2]; - if (!Array.isArray(listeners)) - listeners = [listeners]; - const cleanups = []; - const cleanup = () => { - cleanups.forEach((fn) => fn()); - cleanups.length = 0; - }; - const register = (el, event, listener, options2) => { - el.addEventListener(event, listener, options2); - return () => el.removeEventListener(event, listener, options2); - }; - const stopWatch = watch( - () => [unrefElement(target), toValue(options)], - ([el, options2]) => { - cleanup(); - if (!el) - return; - const optionsClone = isObject(options2) ? { ...options2 } : options2; - cleanups.push( - ...events2.flatMap((event) => { - return listeners.map((listener) => register(el, event, listener, optionsClone)); - }) - ); - }, - { immediate: true, flush: "post" } - ); - const stop = () => { - stopWatch(); - cleanup(); - }; - tryOnScopeDispose(stop); - return stop; -} -var _iOSWorkaround = false; -function onClickOutside(target, handler, options = {}) { - const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; - if (!window2) - return noop; - if (isIOS && !_iOSWorkaround) { - _iOSWorkaround = true; - Array.from(window2.document.body.children).forEach((el) => el.addEventListener("click", noop)); - window2.document.documentElement.addEventListener("click", noop); - } - let shouldListen = true; - const shouldIgnore = (event) => { - return ignore.some((target2) => { - if (typeof target2 === "string") { - return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); - } else { - const el = unrefElement(target2); - return el && (event.target === el || event.composedPath().includes(el)); - } - }); - }; - const listener = (event) => { - const el = unrefElement(target); - if (!el || el === event.target || event.composedPath().includes(el)) - return; - if (event.detail === 0) - shouldListen = !shouldIgnore(event); - if (!shouldListen) { - shouldListen = true; - return; - } - handler(event); - }; - const cleanup = [ - useEventListener(window2, "click", listener, { passive: true, capture }), - useEventListener(window2, "pointerdown", (e) => { - const el = unrefElement(target); - shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el)); - }, { passive: true }), - detectIframe && useEventListener(window2, "blur", (event) => { - setTimeout(() => { - var _a; - const el = unrefElement(target); - if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement))) - handler(event); - }, 0); - }) - ].filter(Boolean); - const stop = () => cleanup.forEach((fn) => fn()); - return stop; -} -function createKeyPredicate(keyFilter) { - if (typeof keyFilter === "function") - return keyFilter; - else if (typeof keyFilter === "string") - return (event) => event.key === keyFilter; - else if (Array.isArray(keyFilter)) - return (event) => keyFilter.includes(event.key); - return () => true; -} -function onKeyStroke(...args) { - let key; - let handler; - let options = {}; - if (args.length === 3) { - key = args[0]; - handler = args[1]; - options = args[2]; - } else if (args.length === 2) { - if (typeof args[1] === "object") { - key = true; - handler = args[0]; - options = args[1]; - } else { - key = args[0]; - handler = args[1]; - } - } else { - key = true; - handler = args[0]; - } - const { - target = defaultWindow, - eventName = "keydown", - passive = false, - dedupe = false - } = options; - const predicate = createKeyPredicate(key); - const listener = (e) => { - if (e.repeat && toValue(dedupe)) - return; - if (predicate(e)) - handler(e); - }; - return useEventListener(target, eventName, listener, passive); -} -function onKeyDown(key, handler, options = {}) { - return onKeyStroke(key, handler, { ...options, eventName: "keydown" }); -} -function onKeyPressed(key, handler, options = {}) { - return onKeyStroke(key, handler, { ...options, eventName: "keypress" }); -} -function onKeyUp(key, handler, options = {}) { - return onKeyStroke(key, handler, { ...options, eventName: "keyup" }); -} -var DEFAULT_DELAY = 500; -var DEFAULT_THRESHOLD = 10; -function onLongPress(target, handler, options) { - var _a, _b; - const elementRef = computed(() => unrefElement(target)); - let timeout; - let posStart; - function clear() { - if (timeout) { - clearTimeout(timeout); - timeout = void 0; - } - posStart = void 0; - } - function onDown(ev) { - var _a2, _b2, _c, _d; - if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) - return; - clear(); - if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) - ev.preventDefault(); - if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) - ev.stopPropagation(); - posStart = { - x: ev.x, - y: ev.y - }; - timeout = setTimeout( - () => handler(ev), - (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY - ); - } - function onMove(ev) { - var _a2, _b2, _c, _d; - if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) - return; - if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false) - return; - if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) - ev.preventDefault(); - if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) - ev.stopPropagation(); - const dx = ev.x - posStart.x; - const dy = ev.y - posStart.y; - const distance = Math.sqrt(dx * dx + dy * dy); - if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD)) - clear(); - } - const listenerOptions = { - capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture, - once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once - }; - const cleanup = [ - useEventListener(elementRef, "pointerdown", onDown, listenerOptions), - useEventListener(elementRef, "pointermove", onMove, listenerOptions), - useEventListener(elementRef, ["pointerup", "pointerleave"], clear, listenerOptions) - ]; - const stop = () => cleanup.forEach((fn) => fn()); - return stop; -} -function isFocusedElementEditable() { - const { activeElement, body } = document; - if (!activeElement) - return false; - if (activeElement === body) - return false; - switch (activeElement.tagName) { - case "INPUT": - case "TEXTAREA": - return true; - } - return activeElement.hasAttribute("contenteditable"); -} -function isTypedCharValid({ - keyCode, - metaKey, - ctrlKey, - altKey -}) { - if (metaKey || ctrlKey || altKey) - return false; - if (keyCode >= 48 && keyCode <= 57) - return true; - if (keyCode >= 65 && keyCode <= 90) - return true; - if (keyCode >= 97 && keyCode <= 122) - return true; - return false; -} -function onStartTyping(callback, options = {}) { - const { document: document2 = defaultDocument } = options; - const keydown = (event) => { - !isFocusedElementEditable() && isTypedCharValid(event) && callback(event); - }; - if (document2) - useEventListener(document2, "keydown", keydown, { passive: true }); -} -function templateRef(key, initialValue = null) { - const instance = getCurrentInstance(); - let _trigger = () => { - }; - const element = customRef((track, trigger) => { - _trigger = trigger; - return { - get() { - var _a, _b; - track(); - return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue; - }, - set() { - } - }; - }); - tryOnMounted(_trigger); - onUpdated(_trigger); - return element; -} -function useActiveElement(options = {}) { - var _a; - const { - window: window2 = defaultWindow, - deep = true - } = options; - const document2 = (_a = options.document) != null ? _a : window2 == null ? void 0 : window2.document; - const getDeepActiveElement = () => { - var _a2; - let element = document2 == null ? void 0 : document2.activeElement; - if (deep) { - while (element == null ? void 0 : element.shadowRoot) - element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement; - } - return element; - }; - const activeElement = computedWithControl( - () => null, - () => getDeepActiveElement() - ); - if (window2) { - useEventListener(window2, "blur", (event) => { - if (event.relatedTarget !== null) - return; - activeElement.trigger(); - }, true); - useEventListener(window2, "focus", activeElement.trigger, true); - } - return activeElement; -} -function useMounted() { - const isMounted = ref(false); - if (getCurrentInstance()) { - onMounted(() => { - isMounted.value = true; - }); - } - return isMounted; -} -function useSupported(callback) { - const isMounted = useMounted(); - return computed(() => { - isMounted.value; - return Boolean(callback()); - }); -} -function useRafFn(fn, options = {}) { - const { - immediate = true, - fpsLimit = void 0, - window: window2 = defaultWindow - } = options; - const isActive = ref(false); - const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null; - let previousFrameTimestamp = 0; - let rafId = null; - function loop(timestamp2) { - if (!isActive.value || !window2) - return; - const delta = timestamp2 - (previousFrameTimestamp || timestamp2); - if (intervalLimit && delta < intervalLimit) { - rafId = window2.requestAnimationFrame(loop); - return; - } - fn({ delta, timestamp: timestamp2 }); - previousFrameTimestamp = timestamp2; - rafId = window2.requestAnimationFrame(loop); - } - function resume() { - if (!isActive.value && window2) { - isActive.value = true; - rafId = window2.requestAnimationFrame(loop); - } - } - function pause() { - isActive.value = false; - if (rafId != null && window2) { - window2.cancelAnimationFrame(rafId); - rafId = null; - } - } - if (immediate) - resume(); - tryOnScopeDispose(pause); - return { - isActive: readonly(isActive), - pause, - resume - }; -} -function useAnimate(target, keyframes, options) { - let config; - let animateOptions; - if (isObject(options)) { - config = options; - animateOptions = objectOmit(options, ["window", "immediate", "commitStyles", "persist", "onReady", "onError"]); - } else { - config = { duration: options }; - animateOptions = options; - } - const { - window: window2 = defaultWindow, - immediate = true, - commitStyles, - persist, - playbackRate: _playbackRate = 1, - onReady, - onError = (e) => { - console.error(e); - } - } = config; - const isSupported = useSupported(() => window2 && HTMLElement && "animate" in HTMLElement.prototype); - const animate = shallowRef(void 0); - const store = shallowReactive({ - startTime: null, - currentTime: null, - timeline: null, - playbackRate: _playbackRate, - pending: false, - playState: immediate ? "idle" : "paused", - replaceState: "active" - }); - const pending = computed(() => store.pending); - const playState = computed(() => store.playState); - const replaceState = computed(() => store.replaceState); - const startTime = computed({ - get() { - return store.startTime; - }, - set(value) { - store.startTime = value; - if (animate.value) - animate.value.startTime = value; - } - }); - const currentTime = computed({ - get() { - return store.currentTime; - }, - set(value) { - store.currentTime = value; - if (animate.value) { - animate.value.currentTime = value; - syncResume(); - } - } - }); - const timeline = computed({ - get() { - return store.timeline; - }, - set(value) { - store.timeline = value; - if (animate.value) - animate.value.timeline = value; - } - }); - const playbackRate = computed({ - get() { - return store.playbackRate; - }, - set(value) { - store.playbackRate = value; - if (animate.value) - animate.value.playbackRate = value; - } - }); - const play = () => { - if (animate.value) { - try { - animate.value.play(); - syncResume(); - } catch (e) { - syncPause(); - onError(e); - } - } else { - update(); - } - }; - const pause = () => { - var _a; - try { - (_a = animate.value) == null ? void 0 : _a.pause(); - syncPause(); - } catch (e) { - onError(e); - } - }; - const reverse = () => { - var _a; - !animate.value && update(); - try { - (_a = animate.value) == null ? void 0 : _a.reverse(); - syncResume(); - } catch (e) { - syncPause(); - onError(e); - } - }; - const finish = () => { - var _a; - try { - (_a = animate.value) == null ? void 0 : _a.finish(); - syncPause(); - } catch (e) { - onError(e); - } - }; - const cancel = () => { - var _a; - try { - (_a = animate.value) == null ? void 0 : _a.cancel(); - syncPause(); - } catch (e) { - onError(e); - } - }; - watch(() => unrefElement(target), (el) => { - el && update(); - }); - watch(() => keyframes, (value) => { - !animate.value && update(); - if (!unrefElement(target) && animate.value) { - animate.value.effect = new KeyframeEffect( - unrefElement(target), - toValue(value), - animateOptions - ); - } - }, { deep: true }); - tryOnMounted(() => { - nextTick(() => update(true)); - }); - tryOnScopeDispose(cancel); - function update(init) { - const el = unrefElement(target); - if (!isSupported.value || !el) - return; - animate.value = el.animate(toValue(keyframes), animateOptions); - if (commitStyles) - animate.value.commitStyles(); - if (persist) - animate.value.persist(); - if (_playbackRate !== 1) - animate.value.playbackRate = _playbackRate; - if (init && !immediate) - animate.value.pause(); - else - syncResume(); - onReady == null ? void 0 : onReady(animate.value); - } - useEventListener(animate, ["cancel", "finish", "remove"], syncPause); - const { resume: resumeRef, pause: pauseRef } = useRafFn(() => { - if (!animate.value) - return; - store.pending = animate.value.pending; - store.playState = animate.value.playState; - store.replaceState = animate.value.replaceState; - store.startTime = animate.value.startTime; - store.currentTime = animate.value.currentTime; - store.timeline = animate.value.timeline; - store.playbackRate = animate.value.playbackRate; - }, { immediate: false }); - function syncResume() { - if (isSupported.value) - resumeRef(); - } - function syncPause() { - if (isSupported.value && window2) - window2.requestAnimationFrame(pauseRef); - } - return { - isSupported, - animate, - // actions - play, - pause, - reverse, - finish, - cancel, - // state - pending, - playState, - replaceState, - startTime, - currentTime, - timeline, - playbackRate - }; -} -function useAsyncQueue(tasks, options) { - const { - interrupt = true, - onError = noop, - onFinished = noop, - signal - } = options || {}; - const promiseState = { - aborted: "aborted", - fulfilled: "fulfilled", - pending: "pending", - rejected: "rejected" - }; - const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null })); - const result = reactive(initialResult); - const activeIndex = ref(-1); - if (!tasks || tasks.length === 0) { - onFinished(); - return { - activeIndex, - result - }; - } - function updateResult(state, res) { - activeIndex.value++; - result[activeIndex.value].data = res; - result[activeIndex.value].state = state; - } - tasks.reduce((prev, curr) => { - return prev.then((prevRes) => { - var _a; - if (signal == null ? void 0 : signal.aborted) { - updateResult(promiseState.aborted, new Error("aborted")); - return; - } - if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) { - onFinished(); - return; - } - const done = curr(prevRes).then((currentRes) => { - updateResult(promiseState.fulfilled, currentRes); - activeIndex.value === tasks.length - 1 && onFinished(); - return currentRes; - }); - if (!signal) - return done; - return Promise.race([done, whenAborted(signal)]); - }).catch((e) => { - if (signal == null ? void 0 : signal.aborted) { - updateResult(promiseState.aborted, e); - return e; - } - updateResult(promiseState.rejected, e); - onError(); - return e; - }); - }, Promise.resolve()); - return { - activeIndex, - result - }; -} -function whenAborted(signal) { - return new Promise((resolve, reject) => { - const error = new Error("aborted"); - if (signal.aborted) - reject(error); - else - signal.addEventListener("abort", () => reject(error), { once: true }); - }); -} -function useAsyncState(promise, initialState, options) { - const { - immediate = true, - delay = 0, - onError = noop, - onSuccess = noop, - resetOnExecute = true, - shallow = true, - throwError - } = options != null ? options : {}; - const state = shallow ? shallowRef(initialState) : ref(initialState); - const isReady = ref(false); - const isLoading = ref(false); - const error = shallowRef(void 0); - async function execute(delay2 = 0, ...args) { - if (resetOnExecute) - state.value = initialState; - error.value = void 0; - isReady.value = false; - isLoading.value = true; - if (delay2 > 0) - await promiseTimeout(delay2); - const _promise = typeof promise === "function" ? promise(...args) : promise; - try { - const data = await _promise; - state.value = data; - isReady.value = true; - onSuccess(data); - } catch (e) { - error.value = e; - onError(e); - if (throwError) - throw e; - } finally { - isLoading.value = false; - } - return state.value; - } - if (immediate) - execute(delay); - const shell = { - state, - isReady, - isLoading, - error, - execute - }; - function waitUntilIsLoaded() { - return new Promise((resolve, reject) => { - until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject); - }); - } - return { - ...shell, - then(onFulfilled, onRejected) { - return waitUntilIsLoaded().then(onFulfilled, onRejected); - } - }; -} -var defaults = { - array: (v) => JSON.stringify(v), - object: (v) => JSON.stringify(v), - set: (v) => JSON.stringify(Array.from(v)), - map: (v) => JSON.stringify(Object.fromEntries(v)), - null: () => "" -}; -function getDefaultSerialization(target) { - if (!target) - return defaults.null; - if (target instanceof Map) - return defaults.map; - else if (target instanceof Set) - return defaults.set; - else if (Array.isArray(target)) - return defaults.array; - else - return defaults.object; -} -function useBase64(target, options) { - const base64 = ref(""); - const promise = ref(); - function execute() { - if (!isClient) - return; - promise.value = new Promise((resolve, reject) => { - try { - const _target = toValue(target); - if (_target == null) { - resolve(""); - } else if (typeof _target === "string") { - resolve(blobToBase64(new Blob([_target], { type: "text/plain" }))); - } else if (_target instanceof Blob) { - resolve(blobToBase64(_target)); - } else if (_target instanceof ArrayBuffer) { - resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target)))); - } else if (_target instanceof HTMLCanvasElement) { - resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); - } else if (_target instanceof HTMLImageElement) { - const img = _target.cloneNode(false); - img.crossOrigin = "Anonymous"; - imgLoaded(img).then(() => { - const canvas = document.createElement("canvas"); - const ctx = canvas.getContext("2d"); - canvas.width = img.width; - canvas.height = img.height; - ctx.drawImage(img, 0, 0, canvas.width, canvas.height); - resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); - }).catch(reject); - } else if (typeof _target === "object") { - const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target); - const serialized = _serializeFn(_target); - return resolve(blobToBase64(new Blob([serialized], { type: "application/json" }))); - } else { - reject(new Error("target is unsupported types")); - } - } catch (error) { - reject(error); - } - }); - promise.value.then((res) => base64.value = res); - return promise.value; - } - if (isRef(target) || typeof target === "function") - watch(target, execute, { immediate: true }); - else - execute(); - return { - base64, - promise, - execute - }; -} -function imgLoaded(img) { - return new Promise((resolve, reject) => { - if (!img.complete) { - img.onload = () => { - resolve(); - }; - img.onerror = reject; - } else { - resolve(); - } - }); -} -function blobToBase64(blob) { - return new Promise((resolve, reject) => { - const fr = new FileReader(); - fr.onload = (e) => { - resolve(e.target.result); - }; - fr.onerror = reject; - fr.readAsDataURL(blob); - }); -} -function useBattery(options = {}) { - const { navigator = defaultNavigator } = options; - const events2 = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; - const isSupported = useSupported(() => navigator && "getBattery" in navigator); - const charging = ref(false); - const chargingTime = ref(0); - const dischargingTime = ref(0); - const level = ref(1); - let battery; - function updateBatteryInfo() { - charging.value = this.charging; - chargingTime.value = this.chargingTime || 0; - dischargingTime.value = this.dischargingTime || 0; - level.value = this.level; - } - if (isSupported.value) { - navigator.getBattery().then((_battery) => { - battery = _battery; - updateBatteryInfo.call(battery); - useEventListener(battery, events2, updateBatteryInfo, { passive: true }); - }); - } - return { - isSupported, - charging, - chargingTime, - dischargingTime, - level - }; -} -function useBluetooth(options) { - let { - acceptAllDevices = false - } = options || {}; - const { - filters = void 0, - optionalServices = void 0, - navigator = defaultNavigator - } = options || {}; - const isSupported = useSupported(() => navigator && "bluetooth" in navigator); - const device = shallowRef(void 0); - const error = shallowRef(null); - watch(device, () => { - connectToBluetoothGATTServer(); - }); - async function requestDevice() { - if (!isSupported.value) - return; - error.value = null; - if (filters && filters.length > 0) - acceptAllDevices = false; - try { - device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({ - acceptAllDevices, - filters, - optionalServices - })); - } catch (err) { - error.value = err; - } - } - const server = ref(); - const isConnected = computed(() => { - var _a; - return ((_a = server.value) == null ? void 0 : _a.connected) || false; - }); - async function connectToBluetoothGATTServer() { - error.value = null; - if (device.value && device.value.gatt) { - device.value.addEventListener("gattserverdisconnected", () => { - }); - try { - server.value = await device.value.gatt.connect(); - } catch (err) { - error.value = err; - } - } - } - tryOnMounted(() => { - var _a; - if (device.value) - (_a = device.value.gatt) == null ? void 0 : _a.connect(); - }); - tryOnScopeDispose(() => { - var _a; - if (device.value) - (_a = device.value.gatt) == null ? void 0 : _a.disconnect(); - }); - return { - isSupported, - isConnected, - // Device: - device, - requestDevice, - // Server: - server, - // Errors: - error - }; -} -function useMediaQuery(query, options = {}) { - const { window: window2 = defaultWindow } = options; - const isSupported = useSupported(() => window2 && "matchMedia" in window2 && typeof window2.matchMedia === "function"); - let mediaQuery; - const matches = ref(false); - const handler = (event) => { - matches.value = event.matches; - }; - const cleanup = () => { - if (!mediaQuery) - return; - if ("removeEventListener" in mediaQuery) - mediaQuery.removeEventListener("change", handler); - else - mediaQuery.removeListener(handler); - }; - const stopWatch = watchEffect(() => { - if (!isSupported.value) - return; - cleanup(); - mediaQuery = window2.matchMedia(toValue(query)); - if ("addEventListener" in mediaQuery) - mediaQuery.addEventListener("change", handler); - else - mediaQuery.addListener(handler); - matches.value = mediaQuery.matches; - }); - tryOnScopeDispose(() => { - stopWatch(); - cleanup(); - mediaQuery = void 0; - }); - return matches; -} -var breakpointsTailwind = { - "sm": 640, - "md": 768, - "lg": 1024, - "xl": 1280, - "2xl": 1536 -}; -var breakpointsBootstrapV5 = { - xs: 0, - sm: 576, - md: 768, - lg: 992, - xl: 1200, - xxl: 1400 -}; -var breakpointsVuetify = { - xs: 600, - sm: 960, - md: 1264, - lg: 1904 -}; -var breakpointsAntDesign = { - xs: 480, - sm: 576, - md: 768, - lg: 992, - xl: 1200, - xxl: 1600 -}; -var breakpointsQuasar = { - xs: 600, - sm: 1024, - md: 1440, - lg: 1920 -}; -var breakpointsSematic = { - mobileS: 320, - mobileM: 375, - mobileL: 425, - tablet: 768, - laptop: 1024, - laptopL: 1440, - desktop4K: 2560 -}; -var breakpointsMasterCss = { - "3xs": 360, - "2xs": 480, - "xs": 600, - "sm": 768, - "md": 1024, - "lg": 1280, - "xl": 1440, - "2xl": 1600, - "3xl": 1920, - "4xl": 2560 -}; -var breakpointsPrimeFlex = { - sm: 576, - md: 768, - lg: 992, - xl: 1200 -}; -function useBreakpoints(breakpoints, options = {}) { - function getValue2(k, delta) { - let v = toValue(breakpoints[k]); - if (delta != null) - v = increaseWithUnit(v, delta); - if (typeof v === "number") - v = `${v}px`; - return v; - } - const { window: window2 = defaultWindow } = options; - function match(query) { - if (!window2) - return false; - return window2.matchMedia(query).matches; - } - const greaterOrEqual = (k) => { - return useMediaQuery(() => `(min-width: ${getValue2(k)})`, options); - }; - const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => { - Object.defineProperty(shortcuts, k, { - get: () => greaterOrEqual(k), - enumerable: true, - configurable: true - }); - return shortcuts; - }, {}); - return Object.assign(shortcutMethods, { - greater(k) { - return useMediaQuery(() => `(min-width: ${getValue2(k, 0.1)})`, options); - }, - greaterOrEqual, - smaller(k) { - return useMediaQuery(() => `(max-width: ${getValue2(k, -0.1)})`, options); - }, - smallerOrEqual(k) { - return useMediaQuery(() => `(max-width: ${getValue2(k)})`, options); - }, - between(a, b) { - return useMediaQuery(() => `(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`, options); - }, - isGreater(k) { - return match(`(min-width: ${getValue2(k, 0.1)})`); - }, - isGreaterOrEqual(k) { - return match(`(min-width: ${getValue2(k)})`); - }, - isSmaller(k) { - return match(`(max-width: ${getValue2(k, -0.1)})`); - }, - isSmallerOrEqual(k) { - return match(`(max-width: ${getValue2(k)})`); - }, - isInBetween(a, b) { - return match(`(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`); - }, - current() { - const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]); - return computed(() => points.filter(([, v]) => v.value).map(([k]) => k)); - } - }); -} -function useBroadcastChannel(options) { - const { - name, - window: window2 = defaultWindow - } = options; - const isSupported = useSupported(() => window2 && "BroadcastChannel" in window2); - const isClosed = ref(false); - const channel = ref(); - const data = ref(); - const error = shallowRef(null); - const post = (data2) => { - if (channel.value) - channel.value.postMessage(data2); - }; - const close = () => { - if (channel.value) - channel.value.close(); - isClosed.value = true; - }; - if (isSupported.value) { - tryOnMounted(() => { - error.value = null; - channel.value = new BroadcastChannel(name); - channel.value.addEventListener("message", (e) => { - data.value = e.data; - }, { passive: true }); - channel.value.addEventListener("messageerror", (e) => { - error.value = e; - }, { passive: true }); - channel.value.addEventListener("close", () => { - isClosed.value = true; - }); - }); - } - tryOnScopeDispose(() => { - close(); - }); - return { - isSupported, - channel, - data, - post, - close, - error, - isClosed - }; -} -var WRITABLE_PROPERTIES = [ - "hash", - "host", - "hostname", - "href", - "pathname", - "port", - "protocol", - "search" -]; -function useBrowserLocation(options = {}) { - const { window: window2 = defaultWindow } = options; - const refs = Object.fromEntries( - WRITABLE_PROPERTIES.map((key) => [key, ref()]) - ); - for (const [key, ref2] of objectEntries(refs)) { - watch(ref2, (value) => { - if (!(window2 == null ? void 0 : window2.location) || window2.location[key] === value) - return; - window2.location[key] = value; - }); - } - const buildState = (trigger) => { - var _a; - const { state: state2, length } = (window2 == null ? void 0 : window2.history) || {}; - const { origin } = (window2 == null ? void 0 : window2.location) || {}; - for (const key of WRITABLE_PROPERTIES) - refs[key].value = (_a = window2 == null ? void 0 : window2.location) == null ? void 0 : _a[key]; - return reactive({ - trigger, - state: state2, - length, - origin, - ...refs - }); - }; - const state = ref(buildState("load")); - if (window2) { - useEventListener(window2, "popstate", () => state.value = buildState("popstate"), { passive: true }); - useEventListener(window2, "hashchange", () => state.value = buildState("hashchange"), { passive: true }); - } - return state; -} -function useCached(refValue, comparator = (a, b) => a === b, watchOptions) { - const cachedValue = ref(refValue.value); - watch(() => refValue.value, (value) => { - if (!comparator(value, cachedValue.value)) - cachedValue.value = value; - }, watchOptions); - return cachedValue; -} -function usePermission(permissionDesc, options = {}) { - const { - controls = false, - navigator = defaultNavigator - } = options; - const isSupported = useSupported(() => navigator && "permissions" in navigator); - let permissionStatus; - const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc; - const state = ref(); - const onChange = () => { - if (permissionStatus) - state.value = permissionStatus.state; - }; - const query = createSingletonPromise(async () => { - if (!isSupported.value) - return; - if (!permissionStatus) { - try { - permissionStatus = await navigator.permissions.query(desc); - useEventListener(permissionStatus, "change", onChange); - onChange(); - } catch (e) { - state.value = "prompt"; - } - } - return permissionStatus; - }); - query(); - if (controls) { - return { - state, - isSupported, - query - }; - } else { - return state; - } -} -function useClipboard(options = {}) { - const { - navigator = defaultNavigator, - read = false, - source, - copiedDuring = 1500, - legacy = false - } = options; - const isClipboardApiSupported = useSupported(() => navigator && "clipboard" in navigator); - const permissionRead = usePermission("clipboard-read"); - const permissionWrite = usePermission("clipboard-write"); - const isSupported = computed(() => isClipboardApiSupported.value || legacy); - const text = ref(""); - const copied = ref(false); - const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); - function updateText() { - if (isClipboardApiSupported.value && permissionRead.value !== "denied") { - navigator.clipboard.readText().then((value) => { - text.value = value; - }); - } else { - text.value = legacyRead(); - } - } - if (isSupported.value && read) - useEventListener(["copy", "cut"], updateText); - async function copy(value = toValue(source)) { - if (isSupported.value && value != null) { - if (isClipboardApiSupported.value && permissionWrite.value !== "denied") - await navigator.clipboard.writeText(value); - else - legacyCopy(value); - text.value = value; - copied.value = true; - timeout.start(); - } - } - function legacyCopy(value) { - const ta = document.createElement("textarea"); - ta.value = value != null ? value : ""; - ta.style.position = "absolute"; - ta.style.opacity = "0"; - document.body.appendChild(ta); - ta.select(); - document.execCommand("copy"); - ta.remove(); - } - function legacyRead() { - var _a, _b, _c; - return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : ""; - } - return { - isSupported, - text, - copied, - copy - }; -} -function useClipboardItems(options = {}) { - const { - navigator = defaultNavigator, - read = false, - source, - copiedDuring = 1500 - } = options; - const isSupported = useSupported(() => navigator && "clipboard" in navigator); - const content = ref([]); - const copied = ref(false); - const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); - function updateContent() { - if (isSupported.value) { - navigator.clipboard.read().then((items) => { - content.value = items; - }); - } - } - if (isSupported.value && read) - useEventListener(["copy", "cut"], updateContent); - async function copy(value = toValue(source)) { - if (isSupported.value && value != null) { - await navigator.clipboard.write(value); - content.value = value; - copied.value = true; - timeout.start(); - } - } - return { - isSupported, - content, - copied, - copy - }; -} -function cloneFnJSON(source) { - return JSON.parse(JSON.stringify(source)); -} -function useCloned(source, options = {}) { - const cloned = ref({}); - const { - manual, - clone = cloneFnJSON, - // watch options - deep = true, - immediate = true - } = options; - function sync() { - cloned.value = clone(toValue(source)); - } - if (!manual && (isRef(source) || typeof source === "function")) { - watch(source, sync, { - ...options, - deep, - immediate - }); - } else { - sync(); - } - return { cloned, sync }; -} -var _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -var globalKey = "__vueuse_ssr_handlers__"; -var handlers = getHandlers(); -function getHandlers() { - if (!(globalKey in _global)) - _global[globalKey] = _global[globalKey] || {}; - return _global[globalKey]; -} -function getSSRHandler(key, fallback) { - return handlers[key] || fallback; -} -function setSSRHandler(key, fn) { - handlers[key] = fn; -} -function guessSerializerType(rawInit) { - return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : rawInit instanceof Date ? "date" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : !Number.isNaN(rawInit) ? "number" : "any"; -} -var StorageSerializers = { - boolean: { - read: (v) => v === "true", - write: (v) => String(v) - }, - object: { - read: (v) => JSON.parse(v), - write: (v) => JSON.stringify(v) - }, - number: { - read: (v) => Number.parseFloat(v), - write: (v) => String(v) - }, - any: { - read: (v) => v, - write: (v) => String(v) - }, - string: { - read: (v) => v, - write: (v) => String(v) - }, - map: { - read: (v) => new Map(JSON.parse(v)), - write: (v) => JSON.stringify(Array.from(v.entries())) - }, - set: { - read: (v) => new Set(JSON.parse(v)), - write: (v) => JSON.stringify(Array.from(v)) - }, - date: { - read: (v) => new Date(v), - write: (v) => v.toISOString() - } -}; -var customStorageEventName = "vueuse-storage"; -function useStorage(key, defaults2, storage, options = {}) { - var _a; - const { - flush = "pre", - deep = true, - listenToStorageChanges = true, - writeDefaults = true, - mergeDefaults = false, - shallow, - window: window2 = defaultWindow, - eventFilter, - onError = (e) => { - console.error(e); - }, - initOnMounted - } = options; - const data = (shallow ? shallowRef : ref)(typeof defaults2 === "function" ? defaults2() : defaults2); - if (!storage) { - try { - storage = getSSRHandler("getDefaultStorage", () => { - var _a2; - return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; - })(); - } catch (e) { - onError(e); - } - } - if (!storage) - return data; - const rawInit = toValue(defaults2); - const type = guessSerializerType(rawInit); - const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; - const { pause: pauseWatch, resume: resumeWatch } = watchPausable( - data, - () => write(data.value), - { flush, deep, eventFilter } - ); - if (window2 && listenToStorageChanges) { - tryOnMounted(() => { - useEventListener(window2, "storage", update); - useEventListener(window2, customStorageEventName, updateFromCustomEvent); - if (initOnMounted) - update(); - }); - } - if (!initOnMounted) - update(); - return data; - function write(v) { - try { - if (v == null) { - storage.removeItem(key); - } else { - const serialized = serializer.write(v); - const oldValue = storage.getItem(key); - if (oldValue !== serialized) { - storage.setItem(key, serialized); - if (window2) { - window2.dispatchEvent(new CustomEvent(customStorageEventName, { - detail: { - key, - oldValue, - newValue: serialized, - storageArea: storage - } - })); - } - } - } - } catch (e) { - onError(e); - } - } - function read(event) { - const rawValue = event ? event.newValue : storage.getItem(key); - if (rawValue == null) { - if (writeDefaults && rawInit != null) - storage.setItem(key, serializer.write(rawInit)); - return rawInit; - } else if (!event && mergeDefaults) { - const value = serializer.read(rawValue); - if (typeof mergeDefaults === "function") - return mergeDefaults(value, rawInit); - else if (type === "object" && !Array.isArray(value)) - return { ...rawInit, ...value }; - return value; - } else if (typeof rawValue !== "string") { - return rawValue; - } else { - return serializer.read(rawValue); - } - } - function updateFromCustomEvent(event) { - update(event.detail); - } - function update(event) { - if (event && event.storageArea !== storage) - return; - if (event && event.key == null) { - data.value = rawInit; - return; - } - if (event && event.key !== key) - return; - pauseWatch(); - try { - if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value)) - data.value = read(event); - } catch (e) { - onError(e); - } finally { - if (event) - nextTick(resumeWatch); - else - resumeWatch(); - } - } -} -function usePreferredDark(options) { - return useMediaQuery("(prefers-color-scheme: dark)", options); -} -function useColorMode(options = {}) { - const { - selector = "html", - attribute = "class", - initialValue = "auto", - window: window2 = defaultWindow, - storage, - storageKey = "vueuse-color-scheme", - listenToStorageChanges = true, - storageRef, - emitAuto, - disableTransition = true - } = options; - const modes = { - auto: "", - light: "light", - dark: "dark", - ...options.modes || {} - }; - const preferredDark = usePreferredDark({ window: window2 }); - const system = computed(() => preferredDark.value ? "dark" : "light"); - const store = storageRef || (storageKey == null ? toRef2(initialValue) : useStorage(storageKey, initialValue, storage, { window: window2, listenToStorageChanges })); - const state = computed(() => store.value === "auto" ? system.value : store.value); - const updateHTMLAttrs = getSSRHandler( - "updateHTMLAttrs", - (selector2, attribute2, value) => { - const el = typeof selector2 === "string" ? window2 == null ? void 0 : window2.document.querySelector(selector2) : unrefElement(selector2); - if (!el) - return; - let style; - if (disableTransition) { - style = window2.document.createElement("style"); - const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"; - style.appendChild(document.createTextNode(styleString)); - window2.document.head.appendChild(style); - } - if (attribute2 === "class") { - const current = value.split(/\s/g); - Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => { - if (current.includes(v)) - el.classList.add(v); - else - el.classList.remove(v); - }); - } else { - el.setAttribute(attribute2, value); - } - if (disableTransition) { - window2.getComputedStyle(style).opacity; - document.head.removeChild(style); - } - } - ); - function defaultOnChanged(mode) { - var _a; - updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode); - } - function onChanged(mode) { - if (options.onChanged) - options.onChanged(mode, defaultOnChanged); - else - defaultOnChanged(mode); - } - watch(state, onChanged, { flush: "post", immediate: true }); - tryOnMounted(() => onChanged(state.value)); - const auto = computed({ - get() { - return emitAuto ? store.value : state.value; - }, - set(v) { - store.value = v; - } - }); - try { - return Object.assign(auto, { store, system, state }); - } catch (e) { - return auto; - } -} -function useConfirmDialog(revealed = ref(false)) { - const confirmHook = createEventHook(); - const cancelHook = createEventHook(); - const revealHook = createEventHook(); - let _resolve = noop; - const reveal = (data) => { - revealHook.trigger(data); - revealed.value = true; - return new Promise((resolve) => { - _resolve = resolve; - }); - }; - const confirm = (data) => { - revealed.value = false; - confirmHook.trigger(data); - _resolve({ data, isCanceled: false }); - }; - const cancel = (data) => { - revealed.value = false; - cancelHook.trigger(data); - _resolve({ data, isCanceled: true }); - }; - return { - isRevealed: computed(() => revealed.value), - reveal, - confirm, - cancel, - onReveal: revealHook.on, - onConfirm: confirmHook.on, - onCancel: cancelHook.on - }; -} -function useMutationObserver(target, callback, options = {}) { - const { window: window2 = defaultWindow, ...mutationOptions } = options; - let observer; - const isSupported = useSupported(() => window2 && "MutationObserver" in window2); - const cleanup = () => { - if (observer) { - observer.disconnect(); - observer = void 0; - } - }; - const stopWatch = watch( - () => unrefElement(target), - (el) => { - cleanup(); - if (isSupported.value && window2 && el) { - observer = new MutationObserver(callback); - observer.observe(el, mutationOptions); - } - }, - { immediate: true } - ); - const takeRecords = () => { - return observer == null ? void 0 : observer.takeRecords(); - }; - const stop = () => { - cleanup(); - stopWatch(); - }; - tryOnScopeDispose(stop); - return { - isSupported, - stop, - takeRecords - }; -} -function useCssVar(prop, target, options = {}) { - const { window: window2 = defaultWindow, initialValue = "", observe = false } = options; - const variable = ref(initialValue); - const elRef = computed(() => { - var _a; - return unrefElement(target) || ((_a = window2 == null ? void 0 : window2.document) == null ? void 0 : _a.documentElement); - }); - function updateCssVar() { - var _a; - const key = toValue(prop); - const el = toValue(elRef); - if (el && window2) { - const value = (_a = window2.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim(); - variable.value = value || initialValue; - } - } - if (observe) { - useMutationObserver(elRef, updateCssVar, { - attributeFilter: ["style", "class"], - window: window2 - }); - } - watch( - [elRef, () => toValue(prop)], - updateCssVar, - { immediate: true } - ); - watch( - variable, - (val) => { - var _a; - if ((_a = elRef.value) == null ? void 0 : _a.style) - elRef.value.style.setProperty(toValue(prop), val); - } - ); - return variable; -} -function useCurrentElement() { - const vm = getCurrentInstance(); - const currentElement = computedWithControl( - () => null, - () => vm.proxy.$el - ); - onUpdated(currentElement.trigger); - onMounted(currentElement.trigger); - return currentElement; -} -function useCycleList(list, options) { - const state = shallowRef(getInitialValue()); - const listRef = toRef2(list); - const index = computed({ - get() { - var _a; - const targetList = listRef.value; - let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value); - if (index2 < 0) - index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0; - return index2; - }, - set(v) { - set4(v); - } - }); - function set4(i) { - const targetList = listRef.value; - const length = targetList.length; - const index2 = (i % length + length) % length; - const value = targetList[index2]; - state.value = value; - return value; - } - function shift(delta = 1) { - return set4(index.value + delta); - } - function next(n = 1) { - return shift(n); - } - function prev(n = 1) { - return shift(-n); - } - function getInitialValue() { - var _a, _b; - return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0; - } - watch(listRef, () => set4(index.value)); - return { - state, - index, - next, - prev - }; -} -function useDark(options = {}) { - const { - valueDark = "dark", - valueLight = "", - window: window2 = defaultWindow - } = options; - const mode = useColorMode({ - ...options, - onChanged: (mode2, defaultHandler) => { - var _a; - if (options.onChanged) - (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === "dark", defaultHandler, mode2); - else - defaultHandler(mode2); - }, - modes: { - dark: valueDark, - light: valueLight - } - }); - const system = computed(() => { - if (mode.system) { - return mode.system.value; - } else { - const preferredDark = usePreferredDark({ window: window2 }); - return preferredDark.value ? "dark" : "light"; - } - }); - const isDark = computed({ - get() { - return mode.value === "dark"; - }, - set(v) { - const modeVal = v ? "dark" : "light"; - if (system.value === modeVal) - mode.value = "auto"; - else - mode.value = modeVal; - } - }); - return isDark; -} -function fnBypass(v) { - return v; -} -function fnSetSource(source, value) { - return source.value = value; -} -function defaultDump(clone) { - return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; -} -function defaultParse(clone) { - return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; -} -function useManualRefHistory(source, options = {}) { - const { - clone = false, - dump = defaultDump(clone), - parse = defaultParse(clone), - setSource = fnSetSource - } = options; - function _createHistoryRecord() { - return markRaw({ - snapshot: dump(source.value), - timestamp: timestamp() - }); - } - const last = ref(_createHistoryRecord()); - const undoStack = ref([]); - const redoStack = ref([]); - const _setSource = (record) => { - setSource(source, parse(record.snapshot)); - last.value = record; - }; - const commit = () => { - undoStack.value.unshift(last.value); - last.value = _createHistoryRecord(); - if (options.capacity && undoStack.value.length > options.capacity) - undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY); - if (redoStack.value.length) - redoStack.value.splice(0, redoStack.value.length); - }; - const clear = () => { - undoStack.value.splice(0, undoStack.value.length); - redoStack.value.splice(0, redoStack.value.length); - }; - const undo = () => { - const state = undoStack.value.shift(); - if (state) { - redoStack.value.unshift(last.value); - _setSource(state); - } - }; - const redo = () => { - const state = redoStack.value.shift(); - if (state) { - undoStack.value.unshift(last.value); - _setSource(state); - } - }; - const reset = () => { - _setSource(last.value); - }; - const history = computed(() => [last.value, ...undoStack.value]); - const canUndo = computed(() => undoStack.value.length > 0); - const canRedo = computed(() => redoStack.value.length > 0); - return { - source, - undoStack, - redoStack, - last, - history, - canUndo, - canRedo, - clear, - commit, - reset, - undo, - redo - }; -} -function useRefHistory(source, options = {}) { - const { - deep = false, - flush = "pre", - eventFilter - } = options; - const { - eventFilter: composedFilter, - pause, - resume: resumeTracking, - isActive: isTracking - } = pausableFilter(eventFilter); - const { - ignoreUpdates, - ignorePrevAsyncUpdates, - stop - } = watchIgnorable( - source, - commit, - { deep, flush, eventFilter: composedFilter } - ); - function setSource(source2, value) { - ignorePrevAsyncUpdates(); - ignoreUpdates(() => { - source2.value = value; - }); - } - const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource }); - const { clear, commit: manualCommit } = manualHistory; - function commit() { - ignorePrevAsyncUpdates(); - manualCommit(); - } - function resume(commitNow) { - resumeTracking(); - if (commitNow) - commit(); - } - function batch(fn) { - let canceled = false; - const cancel = () => canceled = true; - ignoreUpdates(() => { - fn(cancel); - }); - if (!canceled) - commit(); - } - function dispose() { - stop(); - clear(); - } - return { - ...manualHistory, - isTracking, - pause, - resume, - commit, - batch, - dispose - }; -} -function useDebouncedRefHistory(source, options = {}) { - const filter = options.debounce ? debounceFilter(options.debounce) : void 0; - const history = useRefHistory(source, { ...options, eventFilter: filter }); - return { - ...history - }; -} -function useDeviceMotion(options = {}) { - const { - window: window2 = defaultWindow, - eventFilter = bypassFilter - } = options; - const acceleration = ref({ x: null, y: null, z: null }); - const rotationRate = ref({ alpha: null, beta: null, gamma: null }); - const interval = ref(0); - const accelerationIncludingGravity = ref({ - x: null, - y: null, - z: null - }); - if (window2) { - const onDeviceMotion = createFilterWrapper( - eventFilter, - (event) => { - acceleration.value = event.acceleration; - accelerationIncludingGravity.value = event.accelerationIncludingGravity; - rotationRate.value = event.rotationRate; - interval.value = event.interval; - } - ); - useEventListener(window2, "devicemotion", onDeviceMotion); - } - return { - acceleration, - accelerationIncludingGravity, - rotationRate, - interval - }; -} -function useDeviceOrientation(options = {}) { - const { window: window2 = defaultWindow } = options; - const isSupported = useSupported(() => window2 && "DeviceOrientationEvent" in window2); - const isAbsolute = ref(false); - const alpha = ref(null); - const beta = ref(null); - const gamma = ref(null); - if (window2 && isSupported.value) { - useEventListener(window2, "deviceorientation", (event) => { - isAbsolute.value = event.absolute; - alpha.value = event.alpha; - beta.value = event.beta; - gamma.value = event.gamma; - }); - } - return { - isSupported, - isAbsolute, - alpha, - beta, - gamma - }; -} -function useDevicePixelRatio(options = {}) { - const { - window: window2 = defaultWindow - } = options; - const pixelRatio = ref(1); - if (window2) { - let observe2 = function() { - pixelRatio.value = window2.devicePixelRatio; - cleanup2(); - media = window2.matchMedia(`(resolution: ${pixelRatio.value}dppx)`); - media.addEventListener("change", observe2, { once: true }); - }, cleanup2 = function() { - media == null ? void 0 : media.removeEventListener("change", observe2); - }; - let media; - observe2(); - tryOnScopeDispose(cleanup2); - } - return { pixelRatio }; -} -function useDevicesList(options = {}) { - const { - navigator = defaultNavigator, - requestPermissions = false, - constraints = { audio: true, video: true }, - onUpdated: onUpdated2 - } = options; - const devices = ref([]); - const videoInputs = computed(() => devices.value.filter((i) => i.kind === "videoinput")); - const audioInputs = computed(() => devices.value.filter((i) => i.kind === "audioinput")); - const audioOutputs = computed(() => devices.value.filter((i) => i.kind === "audiooutput")); - const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices); - const permissionGranted = ref(false); - let stream; - async function update() { - if (!isSupported.value) - return; - devices.value = await navigator.mediaDevices.enumerateDevices(); - onUpdated2 == null ? void 0 : onUpdated2(devices.value); - if (stream) { - stream.getTracks().forEach((t) => t.stop()); - stream = null; - } - } - async function ensurePermissions() { - if (!isSupported.value) - return false; - if (permissionGranted.value) - return true; - const { state, query } = usePermission("camera", { controls: true }); - await query(); - if (state.value !== "granted") { - stream = await navigator.mediaDevices.getUserMedia(constraints); - update(); - permissionGranted.value = true; - } else { - permissionGranted.value = true; - } - return permissionGranted.value; - } - if (isSupported.value) { - if (requestPermissions) - ensurePermissions(); - useEventListener(navigator.mediaDevices, "devicechange", update); - update(); - } - return { - devices, - ensurePermissions, - permissionGranted, - videoInputs, - audioInputs, - audioOutputs, - isSupported - }; -} -function useDisplayMedia(options = {}) { - var _a; - const enabled = ref((_a = options.enabled) != null ? _a : false); - const video = options.video; - const audio = options.audio; - const { navigator = defaultNavigator } = options; - const isSupported = useSupported(() => { - var _a2; - return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia; - }); - const constraint = { audio, video }; - const stream = shallowRef(); - async function _start() { - if (!isSupported.value || stream.value) - return; - stream.value = await navigator.mediaDevices.getDisplayMedia(constraint); - return stream.value; - } - async function _stop() { - var _a2; - (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); - stream.value = void 0; - } - function stop() { - _stop(); - enabled.value = false; - } - async function start() { - await _start(); - if (stream.value) - enabled.value = true; - return stream.value; - } - watch( - enabled, - (v) => { - if (v) - _start(); - else - _stop(); - }, - { immediate: true } - ); - return { - isSupported, - stream, - start, - stop, - enabled - }; -} -function useDocumentVisibility(options = {}) { - const { document: document2 = defaultDocument } = options; - if (!document2) - return ref("visible"); - const visibility = ref(document2.visibilityState); - useEventListener(document2, "visibilitychange", () => { - visibility.value = document2.visibilityState; - }); - return visibility; -} -function useDraggable(target, options = {}) { - var _a, _b; - const { - pointerTypes, - preventDefault: preventDefault2, - stopPropagation, - exact, - onMove, - onEnd, - onStart, - initialValue, - axis = "both", - draggingElement = defaultWindow, - containerElement, - handle: draggingHandle = target - } = options; - const position = ref( - (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 } - ); - const pressedDelta = ref(); - const filterEvent = (e) => { - if (pointerTypes) - return pointerTypes.includes(e.pointerType); - return true; - }; - const handleEvent = (e) => { - if (toValue(preventDefault2)) - e.preventDefault(); - if (toValue(stopPropagation)) - e.stopPropagation(); - }; - const start = (e) => { - var _a2; - if (!filterEvent(e)) - return; - if (toValue(exact) && e.target !== toValue(target)) - return; - const container = toValue(containerElement); - const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); - const targetRect = toValue(target).getBoundingClientRect(); - const pos = { - x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left), - y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top) - }; - if ((onStart == null ? void 0 : onStart(pos, e)) === false) - return; - pressedDelta.value = pos; - handleEvent(e); - }; - const move = (e) => { - var _a2; - if (!filterEvent(e)) - return; - if (!pressedDelta.value) - return; - const container = toValue(containerElement); - const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); - const targetRect = toValue(target).getBoundingClientRect(); - let { x, y } = position.value; - if (axis === "x" || axis === "both") { - x = e.clientX - pressedDelta.value.x; - if (container) - x = Math.min(Math.max(0, x), containerRect.width - targetRect.width); - } - if (axis === "y" || axis === "both") { - y = e.clientY - pressedDelta.value.y; - if (container) - y = Math.min(Math.max(0, y), containerRect.height - targetRect.height); - } - position.value = { - x, - y - }; - onMove == null ? void 0 : onMove(position.value, e); - handleEvent(e); - }; - const end = (e) => { - if (!filterEvent(e)) - return; - if (!pressedDelta.value) - return; - pressedDelta.value = void 0; - onEnd == null ? void 0 : onEnd(position.value, e); - handleEvent(e); - }; - if (isClient) { - const config = { capture: (_b = options.capture) != null ? _b : true }; - useEventListener(draggingHandle, "pointerdown", start, config); - useEventListener(draggingElement, "pointermove", move, config); - useEventListener(draggingElement, "pointerup", end, config); - } - return { - ...toRefs2(position), - position, - isDragging: computed(() => !!pressedDelta.value), - style: computed( - () => `left:${position.value.x}px;top:${position.value.y}px;` - ) - }; -} -function useDropZone(target, options = {}) { - const isOverDropZone = ref(false); - const files = shallowRef(null); - let counter = 0; - let isDataTypeIncluded = true; - if (isClient) { - const _options = typeof options === "function" ? { onDrop: options } : options; - const getFiles = (event) => { - var _a, _b; - const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []); - return files.value = list.length === 0 ? null : list; - }; - useEventListener(target, "dragenter", (event) => { - var _a, _b; - const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === "file" ? i.type : null).filter(notNullish); - if (_options.dataTypes && event.dataTransfer) { - const dataTypes = unref(_options.dataTypes); - isDataTypeIncluded = typeof dataTypes === "function" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true; - if (!isDataTypeIncluded) - return; - } - event.preventDefault(); - counter += 1; - isOverDropZone.value = true; - (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event); - }); - useEventListener(target, "dragover", (event) => { - var _a; - if (!isDataTypeIncluded) - return; - event.preventDefault(); - (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event); - }); - useEventListener(target, "dragleave", (event) => { - var _a; - if (!isDataTypeIncluded) - return; - event.preventDefault(); - counter -= 1; - if (counter === 0) - isOverDropZone.value = false; - (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event); - }); - useEventListener(target, "drop", (event) => { - var _a; - event.preventDefault(); - counter = 0; - isOverDropZone.value = false; - (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event); - }); - } - return { - files, - isOverDropZone - }; -} -function useResizeObserver(target, callback, options = {}) { - const { window: window2 = defaultWindow, ...observerOptions } = options; - let observer; - const isSupported = useSupported(() => window2 && "ResizeObserver" in window2); - const cleanup = () => { - if (observer) { - observer.disconnect(); - observer = void 0; - } - }; - const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]); - const stopWatch = watch( - targets, - (els) => { - cleanup(); - if (isSupported.value && window2) { - observer = new ResizeObserver(callback); - for (const _el of els) - _el && observer.observe(_el, observerOptions); - } - }, - { immediate: true, flush: "post", deep: true } - ); - const stop = () => { - cleanup(); - stopWatch(); - }; - tryOnScopeDispose(stop); - return { - isSupported, - stop - }; -} -function useElementBounding(target, options = {}) { - const { - reset = true, - windowResize = true, - windowScroll = true, - immediate = true - } = options; - const height = ref(0); - const bottom = ref(0); - const left = ref(0); - const right = ref(0); - const top = ref(0); - const width = ref(0); - const x = ref(0); - const y = ref(0); - function update() { - const el = unrefElement(target); - if (!el) { - if (reset) { - height.value = 0; - bottom.value = 0; - left.value = 0; - right.value = 0; - top.value = 0; - width.value = 0; - x.value = 0; - y.value = 0; - } - return; - } - const rect = el.getBoundingClientRect(); - height.value = rect.height; - bottom.value = rect.bottom; - left.value = rect.left; - right.value = rect.right; - top.value = rect.top; - width.value = rect.width; - x.value = rect.x; - y.value = rect.y; - } - useResizeObserver(target, update); - watch(() => unrefElement(target), (ele) => !ele && update()); - useMutationObserver(target, update, { - attributeFilter: ["style", "class"] - }); - if (windowScroll) - useEventListener("scroll", update, { capture: true, passive: true }); - if (windowResize) - useEventListener("resize", update, { passive: true }); - tryOnMounted(() => { - if (immediate) - update(); - }); - return { - height, - bottom, - left, - right, - top, - width, - x, - y, - update - }; -} -function useElementByPoint(options) { - const { - x, - y, - document: document2 = defaultDocument, - multiple, - interval = "requestAnimationFrame", - immediate = true - } = options; - const isSupported = useSupported(() => { - if (toValue(multiple)) - return document2 && "elementsFromPoint" in document2; - return document2 && "elementFromPoint" in document2; - }); - const element = ref(null); - const cb = () => { - var _a, _b; - element.value = toValue(multiple) ? (_a = document2 == null ? void 0 : document2.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document2 == null ? void 0 : document2.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null; - }; - const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); - return { - isSupported, - element, - ...controls - }; -} -function useElementHover(el, options = {}) { - const { - delayEnter = 0, - delayLeave = 0, - window: window2 = defaultWindow - } = options; - const isHovered = ref(false); - let timer; - const toggle = (entering) => { - const delay = entering ? delayEnter : delayLeave; - if (timer) { - clearTimeout(timer); - timer = void 0; - } - if (delay) - timer = setTimeout(() => isHovered.value = entering, delay); - else - isHovered.value = entering; - }; - if (!window2) - return isHovered; - useEventListener(el, "mouseenter", () => toggle(true), { passive: true }); - useEventListener(el, "mouseleave", () => toggle(false), { passive: true }); - return isHovered; -} -function useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) { - const { window: window2 = defaultWindow, box = "content-box" } = options; - const isSVG = computed(() => { - var _a, _b; - return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg"); - }); - const width = ref(initialSize.width); - const height = ref(initialSize.height); - const { stop: stop1 } = useResizeObserver( - target, - ([entry]) => { - const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize; - if (window2 && isSVG.value) { - const $elem = unrefElement(target); - if ($elem) { - const styles = window2.getComputedStyle($elem); - width.value = Number.parseFloat(styles.width); - height.value = Number.parseFloat(styles.height); - } - } else { - if (boxSize) { - const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize]; - width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0); - height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0); - } else { - width.value = entry.contentRect.width; - height.value = entry.contentRect.height; - } - } - }, - options - ); - tryOnMounted(() => { - const ele = unrefElement(target); - if (ele) { - width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width; - height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height; - } - }); - const stop2 = watch( - () => unrefElement(target), - (ele) => { - width.value = ele ? initialSize.width : 0; - height.value = ele ? initialSize.height : 0; - } - ); - function stop() { - stop1(); - stop2(); - } - return { - width, - height, - stop - }; -} -function useIntersectionObserver(target, callback, options = {}) { - const { - root, - rootMargin = "0px", - threshold = 0.1, - window: window2 = defaultWindow, - immediate = true - } = options; - const isSupported = useSupported(() => window2 && "IntersectionObserver" in window2); - const targets = computed(() => { - const _target = toValue(target); - return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish); - }); - let cleanup = noop; - const isActive = ref(immediate); - const stopWatch = isSupported.value ? watch( - () => [targets.value, unrefElement(root), isActive.value], - ([targets2, root2]) => { - cleanup(); - if (!isActive.value) - return; - if (!targets2.length) - return; - const observer = new IntersectionObserver( - callback, - { - root: unrefElement(root2), - rootMargin, - threshold - } - ); - targets2.forEach((el) => el && observer.observe(el)); - cleanup = () => { - observer.disconnect(); - cleanup = noop; - }; - }, - { immediate, flush: "post" } - ) : noop; - const stop = () => { - cleanup(); - stopWatch(); - isActive.value = false; - }; - tryOnScopeDispose(stop); - return { - isSupported, - isActive, - pause() { - cleanup(); - isActive.value = false; - }, - resume() { - isActive.value = true; - }, - stop - }; -} -function useElementVisibility(element, options = {}) { - const { window: window2 = defaultWindow, scrollTarget } = options; - const elementIsVisible = ref(false); - useIntersectionObserver( - element, - (intersectionObserverEntries) => { - let isIntersecting = elementIsVisible.value; - let latestTime = 0; - for (const entry of intersectionObserverEntries) { - if (entry.time >= latestTime) { - latestTime = entry.time; - isIntersecting = entry.isIntersecting; - } - } - elementIsVisible.value = isIntersecting; - }, - { - root: scrollTarget, - window: window2, - threshold: 0 - } - ); - return elementIsVisible; -} -var events = /* @__PURE__ */ new Map(); -function useEventBus(key) { - const scope = getCurrentScope(); - function on(listener) { - var _a; - const listeners = events.get(key) || /* @__PURE__ */ new Set(); - listeners.add(listener); - events.set(key, listeners); - const _off = () => off(listener); - (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off); - return _off; - } - function once(listener) { - function _listener(...args) { - off(_listener); - listener(...args); - } - return on(_listener); - } - function off(listener) { - const listeners = events.get(key); - if (!listeners) - return; - listeners.delete(listener); - if (!listeners.size) - reset(); - } - function reset() { - events.delete(key); - } - function emit(event, payload) { - var _a; - (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload)); - } - return { on, once, off, emit, reset }; -} -function useEventSource(url, events2 = [], options = {}) { - const event = ref(null); - const data = ref(null); - const status = ref("CONNECTING"); - const eventSource = ref(null); - const error = shallowRef(null); - const { - withCredentials = false - } = options; - const close = () => { - if (eventSource.value) { - eventSource.value.close(); - eventSource.value = null; - status.value = "CLOSED"; - } - }; - const es = new EventSource(url, { withCredentials }); - eventSource.value = es; - es.onopen = () => { - status.value = "OPEN"; - error.value = null; - }; - es.onerror = (e) => { - status.value = "CLOSED"; - error.value = e; - }; - es.onmessage = (e) => { - event.value = null; - data.value = e.data; - }; - for (const event_name of events2) { - useEventListener(es, event_name, (e) => { - event.value = event_name; - data.value = e.data || null; - }); - } - tryOnScopeDispose(() => { - close(); - }); - return { - eventSource, - event, - data, - status, - error, - close - }; -} -function useEyeDropper(options = {}) { - const { initialValue = "" } = options; - const isSupported = useSupported(() => typeof window !== "undefined" && "EyeDropper" in window); - const sRGBHex = ref(initialValue); - async function open(openOptions) { - if (!isSupported.value) - return; - const eyeDropper = new window.EyeDropper(); - const result = await eyeDropper.open(openOptions); - sRGBHex.value = result.sRGBHex; - return result; - } - return { isSupported, sRGBHex, open }; -} -function useFavicon(newIcon = null, options = {}) { - const { - baseUrl = "", - rel = "icon", - document: document2 = defaultDocument - } = options; - const favicon = toRef2(newIcon); - const applyIcon = (icon) => { - const elements = document2 == null ? void 0 : document2.head.querySelectorAll(`link[rel*="${rel}"]`); - if (!elements || elements.length === 0) { - const link = document2 == null ? void 0 : document2.createElement("link"); - if (link) { - link.rel = rel; - link.href = `${baseUrl}${icon}`; - link.type = `image/${icon.split(".").pop()}`; - document2 == null ? void 0 : document2.head.append(link); - } - return; - } - elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`); - }; - watch( - favicon, - (i, o) => { - if (typeof i === "string" && i !== o) - applyIcon(i); - }, - { immediate: true } - ); - return favicon; -} -var payloadMapping = { - json: "application/json", - text: "text/plain" -}; -function isFetchOptions(obj) { - return obj && containsProp(obj, "immediate", "refetch", "initialData", "timeout", "beforeFetch", "afterFetch", "onFetchError", "fetch", "updateDataOnError"); -} -function isAbsoluteURL(url) { - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} -function headersToObject(headers) { - if (typeof Headers !== "undefined" && headers instanceof Headers) - return Object.fromEntries([...headers.entries()]); - return headers; -} -function combineCallbacks(combination, ...callbacks) { - if (combination === "overwrite") { - return async (ctx) => { - const callback = callbacks[callbacks.length - 1]; - if (callback) - return { ...ctx, ...await callback(ctx) }; - return ctx; - }; - } else { - return async (ctx) => { - for (const callback of callbacks) { - if (callback) - ctx = { ...ctx, ...await callback(ctx) }; - } - return ctx; - }; - } -} -function createFetch(config = {}) { - const _combination = config.combination || "chain"; - const _options = config.options || {}; - const _fetchOptions = config.fetchOptions || {}; - function useFactoryFetch(url, ...args) { - const computedUrl = computed(() => { - const baseUrl = toValue(config.baseUrl); - const targetUrl = toValue(url); - return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl; - }); - let options = _options; - let fetchOptions = _fetchOptions; - if (args.length > 0) { - if (isFetchOptions(args[0])) { - options = { - ...options, - ...args[0], - beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch), - afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch), - onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError) - }; - } else { - fetchOptions = { - ...fetchOptions, - ...args[0], - headers: { - ...headersToObject(fetchOptions.headers) || {}, - ...headersToObject(args[0].headers) || {} - } - }; - } - } - if (args.length > 1 && isFetchOptions(args[1])) { - options = { - ...options, - ...args[1], - beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch), - afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch), - onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError) - }; - } - return useFetch(computedUrl, fetchOptions, options); - } - return useFactoryFetch; -} -function useFetch(url, ...args) { - var _a; - const supportsAbort = typeof AbortController === "function"; - let fetchOptions = {}; - let options = { - immediate: true, - refetch: false, - timeout: 0, - updateDataOnError: false - }; - const config = { - method: "GET", - type: "text", - payload: void 0 - }; - if (args.length > 0) { - if (isFetchOptions(args[0])) - options = { ...options, ...args[0] }; - else - fetchOptions = args[0]; - } - if (args.length > 1) { - if (isFetchOptions(args[1])) - options = { ...options, ...args[1] }; - } - const { - fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch, - initialData, - timeout - } = options; - const responseEvent = createEventHook(); - const errorEvent = createEventHook(); - const finallyEvent = createEventHook(); - const isFinished = ref(false); - const isFetching = ref(false); - const aborted = ref(false); - const statusCode = ref(null); - const response = shallowRef(null); - const error = shallowRef(null); - const data = shallowRef(initialData || null); - const canAbort = computed(() => supportsAbort && isFetching.value); - let controller; - let timer; - const abort = () => { - if (supportsAbort) { - controller == null ? void 0 : controller.abort(); - controller = new AbortController(); - controller.signal.onabort = () => aborted.value = true; - fetchOptions = { - ...fetchOptions, - signal: controller.signal - }; - } - }; - const loading = (isLoading) => { - isFetching.value = isLoading; - isFinished.value = !isLoading; - }; - if (timeout) - timer = useTimeoutFn(abort, timeout, { immediate: false }); - let executeCounter = 0; - const execute = async (throwOnFailed = false) => { - var _a2, _b; - abort(); - loading(true); - error.value = null; - statusCode.value = null; - aborted.value = false; - executeCounter += 1; - const currentExecuteCounter = executeCounter; - const defaultFetchOptions = { - method: config.method, - headers: {} - }; - if (config.payload) { - const headers = headersToObject(defaultFetchOptions.headers); - const payload = toValue(config.payload); - if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData)) - config.payloadType = "json"; - if (config.payloadType) - headers["Content-Type"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType; - defaultFetchOptions.body = config.payloadType === "json" ? JSON.stringify(payload) : payload; - } - let isCanceled = false; - const context = { - url: toValue(url), - options: { - ...defaultFetchOptions, - ...fetchOptions - }, - cancel: () => { - isCanceled = true; - } - }; - if (options.beforeFetch) - Object.assign(context, await options.beforeFetch(context)); - if (isCanceled || !fetch) { - loading(false); - return Promise.resolve(null); - } - let responseData = null; - if (timer) - timer.start(); - return fetch( - context.url, - { - ...defaultFetchOptions, - ...context.options, - headers: { - ...headersToObject(defaultFetchOptions.headers), - ...headersToObject((_b = context.options) == null ? void 0 : _b.headers) - } - } - ).then(async (fetchResponse) => { - response.value = fetchResponse; - statusCode.value = fetchResponse.status; - responseData = await fetchResponse.clone()[config.type](); - if (!fetchResponse.ok) { - data.value = initialData || null; - throw new Error(fetchResponse.statusText); - } - if (options.afterFetch) { - ({ data: responseData } = await options.afterFetch({ - data: responseData, - response: fetchResponse - })); - } - data.value = responseData; - responseEvent.trigger(fetchResponse); - return fetchResponse; - }).catch(async (fetchError) => { - let errorData = fetchError.message || fetchError.name; - if (options.onFetchError) { - ({ error: errorData, data: responseData } = await options.onFetchError({ - data: responseData, - error: fetchError, - response: response.value - })); - } - error.value = errorData; - if (options.updateDataOnError) - data.value = responseData; - errorEvent.trigger(fetchError); - if (throwOnFailed) - throw fetchError; - return null; - }).finally(() => { - if (currentExecuteCounter === executeCounter) - loading(false); - if (timer) - timer.stop(); - finallyEvent.trigger(null); - }); - }; - const refetch = toRef2(options.refetch); - watch( - [ - refetch, - toRef2(url) - ], - ([refetch2]) => refetch2 && execute(), - { deep: true } - ); - const shell = { - isFinished, - statusCode, - response, - error, - data, - isFetching, - canAbort, - aborted, - abort, - execute, - onFetchResponse: responseEvent.on, - onFetchError: errorEvent.on, - onFetchFinally: finallyEvent.on, - // method - get: setMethod("GET"), - put: setMethod("PUT"), - post: setMethod("POST"), - delete: setMethod("DELETE"), - patch: setMethod("PATCH"), - head: setMethod("HEAD"), - options: setMethod("OPTIONS"), - // type - json: setType("json"), - text: setType("text"), - blob: setType("blob"), - arrayBuffer: setType("arrayBuffer"), - formData: setType("formData") - }; - function setMethod(method) { - return (payload, payloadType) => { - if (!isFetching.value) { - config.method = method; - config.payload = payload; - config.payloadType = payloadType; - if (isRef(config.payload)) { - watch( - [ - refetch, - toRef2(config.payload) - ], - ([refetch2]) => refetch2 && execute(), - { deep: true } - ); - } - return { - ...shell, - then(onFulfilled, onRejected) { - return waitUntilFinished().then(onFulfilled, onRejected); - } - }; - } - return void 0; - }; - } - function waitUntilFinished() { - return new Promise((resolve, reject) => { - until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2)); - }); - } - function setType(type) { - return () => { - if (!isFetching.value) { - config.type = type; - return { - ...shell, - then(onFulfilled, onRejected) { - return waitUntilFinished().then(onFulfilled, onRejected); - } - }; - } - return void 0; - }; - } - if (options.immediate) - Promise.resolve().then(() => execute()); - return { - ...shell, - then(onFulfilled, onRejected) { - return waitUntilFinished().then(onFulfilled, onRejected); - } - }; -} -function joinPaths(start, end) { - if (!start.endsWith("/") && !end.startsWith("/")) - return `${start}/${end}`; - return `${start}${end}`; -} -var DEFAULT_OPTIONS = { - multiple: true, - accept: "*", - reset: false, - directory: false -}; -function useFileDialog(options = {}) { - const { - document: document2 = defaultDocument - } = options; - const files = ref(null); - const { on: onChange, trigger } = createEventHook(); - let input; - if (document2) { - input = document2.createElement("input"); - input.type = "file"; - input.onchange = (event) => { - const result = event.target; - files.value = result.files; - trigger(files.value); - }; - } - const reset = () => { - files.value = null; - if (input) { - input.value = ""; - trigger(null); - } - }; - const open = (localOptions) => { - if (!input) - return; - const _options = { - ...DEFAULT_OPTIONS, - ...options, - ...localOptions - }; - input.multiple = _options.multiple; - input.accept = _options.accept; - input.webkitdirectory = _options.directory; - if (hasOwn(_options, "capture")) - input.capture = _options.capture; - if (_options.reset) - reset(); - input.click(); - }; - return { - files: readonly(files), - open, - reset, - onChange - }; -} -function useFileSystemAccess(options = {}) { - const { - window: _window = defaultWindow, - dataType = "Text" - } = options; - const window2 = _window; - const isSupported = useSupported(() => window2 && "showSaveFilePicker" in window2 && "showOpenFilePicker" in window2); - const fileHandle = ref(); - const data = ref(); - const file = ref(); - const fileName = computed(() => { - var _a, _b; - return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : ""; - }); - const fileMIME = computed(() => { - var _a, _b; - return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : ""; - }); - const fileSize = computed(() => { - var _a, _b; - return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0; - }); - const fileLastModified = computed(() => { - var _a, _b; - return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0; - }); - async function open(_options = {}) { - if (!isSupported.value) - return; - const [handle] = await window2.showOpenFilePicker({ ...toValue(options), ..._options }); - fileHandle.value = handle; - await updateFile(); - await updateData(); - } - async function create(_options = {}) { - if (!isSupported.value) - return; - fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); - data.value = void 0; - await updateFile(); - await updateData(); - } - async function save(_options = {}) { - if (!isSupported.value) - return; - if (!fileHandle.value) - return saveAs(_options); - if (data.value) { - const writableStream = await fileHandle.value.createWritable(); - await writableStream.write(data.value); - await writableStream.close(); - } - await updateFile(); - } - async function saveAs(_options = {}) { - if (!isSupported.value) - return; - fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); - if (data.value) { - const writableStream = await fileHandle.value.createWritable(); - await writableStream.write(data.value); - await writableStream.close(); - } - await updateFile(); - } - async function updateFile() { - var _a; - file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile()); - } - async function updateData() { - var _a, _b; - const type = toValue(dataType); - if (type === "Text") - data.value = await ((_a = file.value) == null ? void 0 : _a.text()); - else if (type === "ArrayBuffer") - data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer()); - else if (type === "Blob") - data.value = file.value; - } - watch(() => toValue(dataType), updateData); - return { - isSupported, - data, - file, - fileName, - fileMIME, - fileSize, - fileLastModified, - open, - create, - save, - saveAs, - updateData - }; -} -function useFocus(target, options = {}) { - const { initialValue = false, focusVisible = false } = options; - const innerFocused = ref(false); - const targetElement = computed(() => unrefElement(target)); - useEventListener(targetElement, "focus", (event) => { - var _a, _b; - if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, ":focus-visible"))) - innerFocused.value = true; - }); - useEventListener(targetElement, "blur", () => innerFocused.value = false); - const focused = computed({ - get: () => innerFocused.value, - set(value) { - var _a, _b; - if (!value && innerFocused.value) - (_a = targetElement.value) == null ? void 0 : _a.blur(); - else if (value && !innerFocused.value) - (_b = targetElement.value) == null ? void 0 : _b.focus(); - } - }); - watch( - targetElement, - () => { - focused.value = initialValue; - }, - { immediate: true, flush: "post" } - ); - return { focused }; -} -function useFocusWithin(target, options = {}) { - const activeElement = useActiveElement(options); - const targetElement = computed(() => unrefElement(target)); - const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false); - return { focused }; -} -function useFps(options) { - var _a; - const fps = ref(0); - if (typeof performance === "undefined") - return fps; - const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10; - let last = performance.now(); - let ticks = 0; - useRafFn(() => { - ticks += 1; - if (ticks >= every) { - const now2 = performance.now(); - const diff = now2 - last; - fps.value = Math.round(1e3 / (diff / ticks)); - last = now2; - ticks = 0; - } - }); - return fps; -} -var eventHandlers = [ - "fullscreenchange", - "webkitfullscreenchange", - "webkitendfullscreen", - "mozfullscreenchange", - "MSFullscreenChange" -]; -function useFullscreen(target, options = {}) { - const { - document: document2 = defaultDocument, - autoExit = false - } = options; - const targetRef = computed(() => { - var _a; - return (_a = unrefElement(target)) != null ? _a : document2 == null ? void 0 : document2.querySelector("html"); - }); - const isFullscreen = ref(false); - const requestMethod = computed(() => { - return [ - "requestFullscreen", - "webkitRequestFullscreen", - "webkitEnterFullscreen", - "webkitEnterFullScreen", - "webkitRequestFullScreen", - "mozRequestFullScreen", - "msRequestFullscreen" - ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); - }); - const exitMethod = computed(() => { - return [ - "exitFullscreen", - "webkitExitFullscreen", - "webkitExitFullScreen", - "webkitCancelFullScreen", - "mozCancelFullScreen", - "msExitFullscreen" - ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); - }); - const fullscreenEnabled = computed(() => { - return [ - "fullScreen", - "webkitIsFullScreen", - "webkitDisplayingFullscreen", - "mozFullScreen", - "msFullscreenElement" - ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); - }); - const fullscreenElementMethod = [ - "fullscreenElement", - "webkitFullscreenElement", - "mozFullScreenElement", - "msFullscreenElement" - ].find((m) => document2 && m in document2); - const isSupported = useSupported(() => targetRef.value && document2 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0); - const isCurrentElementFullScreen = () => { - if (fullscreenElementMethod) - return (document2 == null ? void 0 : document2[fullscreenElementMethod]) === targetRef.value; - return false; - }; - const isElementFullScreen = () => { - if (fullscreenEnabled.value) { - if (document2 && document2[fullscreenEnabled.value] != null) { - return document2[fullscreenEnabled.value]; - } else { - const target2 = targetRef.value; - if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) { - return Boolean(target2[fullscreenEnabled.value]); - } - } - } - return false; - }; - async function exit() { - if (!isSupported.value || !isFullscreen.value) - return; - if (exitMethod.value) { - if ((document2 == null ? void 0 : document2[exitMethod.value]) != null) { - await document2[exitMethod.value](); - } else { - const target2 = targetRef.value; - if ((target2 == null ? void 0 : target2[exitMethod.value]) != null) - await target2[exitMethod.value](); - } - } - isFullscreen.value = false; - } - async function enter() { - if (!isSupported.value || isFullscreen.value) - return; - if (isElementFullScreen()) - await exit(); - const target2 = targetRef.value; - if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) { - await target2[requestMethod.value](); - isFullscreen.value = true; - } - } - async function toggle() { - await (isFullscreen.value ? exit() : enter()); - } - const handlerCallback = () => { - const isElementFullScreenValue = isElementFullScreen(); - if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) - isFullscreen.value = isElementFullScreenValue; - }; - useEventListener(document2, eventHandlers, handlerCallback, false); - useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false); - if (autoExit) - tryOnScopeDispose(exit); - return { - isSupported, - isFullscreen, - enter, - exit, - toggle - }; -} -function mapGamepadToXbox360Controller(gamepad) { - return computed(() => { - if (gamepad.value) { - return { - buttons: { - a: gamepad.value.buttons[0], - b: gamepad.value.buttons[1], - x: gamepad.value.buttons[2], - y: gamepad.value.buttons[3] - }, - bumper: { - left: gamepad.value.buttons[4], - right: gamepad.value.buttons[5] - }, - triggers: { - left: gamepad.value.buttons[6], - right: gamepad.value.buttons[7] - }, - stick: { - left: { - horizontal: gamepad.value.axes[0], - vertical: gamepad.value.axes[1], - button: gamepad.value.buttons[10] - }, - right: { - horizontal: gamepad.value.axes[2], - vertical: gamepad.value.axes[3], - button: gamepad.value.buttons[11] - } - }, - dpad: { - up: gamepad.value.buttons[12], - down: gamepad.value.buttons[13], - left: gamepad.value.buttons[14], - right: gamepad.value.buttons[15] - }, - back: gamepad.value.buttons[8], - start: gamepad.value.buttons[9] - }; - } - return null; - }); -} -function useGamepad(options = {}) { - const { - navigator = defaultNavigator - } = options; - const isSupported = useSupported(() => navigator && "getGamepads" in navigator); - const gamepads = ref([]); - const onConnectedHook = createEventHook(); - const onDisconnectedHook = createEventHook(); - const stateFromGamepad = (gamepad) => { - const hapticActuators = []; - const vibrationActuator = "vibrationActuator" in gamepad ? gamepad.vibrationActuator : null; - if (vibrationActuator) - hapticActuators.push(vibrationActuator); - if (gamepad.hapticActuators) - hapticActuators.push(...gamepad.hapticActuators); - return { - ...gamepad, - id: gamepad.id, - hapticActuators, - axes: gamepad.axes.map((axes) => axes), - buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value })) - }; - }; - const updateGamepadState = () => { - const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; - for (let i = 0; i < _gamepads.length; ++i) { - const gamepad = _gamepads[i]; - if (gamepad) { - const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index); - if (index > -1) - gamepads.value[index] = stateFromGamepad(gamepad); - } - } - }; - const { isActive, pause, resume } = useRafFn(updateGamepadState); - const onGamepadConnected = (gamepad) => { - if (!gamepads.value.some(({ index }) => index === gamepad.index)) { - gamepads.value.push(stateFromGamepad(gamepad)); - onConnectedHook.trigger(gamepad.index); - } - resume(); - }; - const onGamepadDisconnected = (gamepad) => { - gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index); - onDisconnectedHook.trigger(gamepad.index); - }; - useEventListener("gamepadconnected", (e) => onGamepadConnected(e.gamepad)); - useEventListener("gamepaddisconnected", (e) => onGamepadDisconnected(e.gamepad)); - tryOnMounted(() => { - const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; - if (_gamepads) { - for (let i = 0; i < _gamepads.length; ++i) { - const gamepad = _gamepads[i]; - if (gamepad) - onGamepadConnected(gamepad); - } - } - }); - pause(); - return { - isSupported, - onConnected: onConnectedHook.on, - onDisconnected: onDisconnectedHook.on, - gamepads, - pause, - resume, - isActive - }; -} -function useGeolocation(options = {}) { - const { - enableHighAccuracy = true, - maximumAge = 3e4, - timeout = 27e3, - navigator = defaultNavigator, - immediate = true - } = options; - const isSupported = useSupported(() => navigator && "geolocation" in navigator); - const locatedAt = ref(null); - const error = shallowRef(null); - const coords = ref({ - accuracy: 0, - latitude: Number.POSITIVE_INFINITY, - longitude: Number.POSITIVE_INFINITY, - altitude: null, - altitudeAccuracy: null, - heading: null, - speed: null - }); - function updatePosition(position) { - locatedAt.value = position.timestamp; - coords.value = position.coords; - error.value = null; - } - let watcher; - function resume() { - if (isSupported.value) { - watcher = navigator.geolocation.watchPosition( - updatePosition, - (err) => error.value = err, - { - enableHighAccuracy, - maximumAge, - timeout - } - ); - } - } - if (immediate) - resume(); - function pause() { - if (watcher && navigator) - navigator.geolocation.clearWatch(watcher); - } - tryOnScopeDispose(() => { - pause(); - }); - return { - isSupported, - coords, - locatedAt, - error, - resume, - pause - }; -} -var defaultEvents$1 = ["mousemove", "mousedown", "resize", "keydown", "touchstart", "wheel"]; -var oneMinute = 6e4; -function useIdle(timeout = oneMinute, options = {}) { - const { - initialState = false, - listenForVisibilityChange = true, - events: events2 = defaultEvents$1, - window: window2 = defaultWindow, - eventFilter = throttleFilter(50) - } = options; - const idle = ref(initialState); - const lastActive = ref(timestamp()); - let timer; - const reset = () => { - idle.value = false; - clearTimeout(timer); - timer = setTimeout(() => idle.value = true, timeout); - }; - const onEvent = createFilterWrapper( - eventFilter, - () => { - lastActive.value = timestamp(); - reset(); - } - ); - if (window2) { - const document2 = window2.document; - for (const event of events2) - useEventListener(window2, event, onEvent, { passive: true }); - if (listenForVisibilityChange) { - useEventListener(document2, "visibilitychange", () => { - if (!document2.hidden) - onEvent(); - }); - } - reset(); - } - return { - idle, - lastActive, - reset - }; -} -async function loadImage(options) { - return new Promise((resolve, reject) => { - const img = new Image(); - const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options; - img.src = src; - if (srcset) - img.srcset = srcset; - if (sizes) - img.sizes = sizes; - if (clazz) - img.className = clazz; - if (loading) - img.loading = loading; - if (crossorigin) - img.crossOrigin = crossorigin; - if (referrerPolicy) - img.referrerPolicy = referrerPolicy; - img.onload = () => resolve(img); - img.onerror = reject; - }); -} -function useImage(options, asyncStateOptions = {}) { - const state = useAsyncState( - () => loadImage(toValue(options)), - void 0, - { - resetOnExecute: true, - ...asyncStateOptions - } - ); - watch( - () => toValue(options), - () => state.execute(asyncStateOptions.delay), - { deep: true } - ); - return state; -} -var ARRIVED_STATE_THRESHOLD_PIXELS = 1; -function useScroll(element, options = {}) { - const { - throttle = 0, - idle = 200, - onStop = noop, - onScroll = noop, - offset = { - left: 0, - right: 0, - top: 0, - bottom: 0 - }, - eventListenerOptions = { - capture: false, - passive: true - }, - behavior = "auto", - window: window2 = defaultWindow - } = options; - const internalX = ref(0); - const internalY = ref(0); - const x = computed({ - get() { - return internalX.value; - }, - set(x2) { - scrollTo2(x2, void 0); - } - }); - const y = computed({ - get() { - return internalY.value; - }, - set(y2) { - scrollTo2(void 0, y2); - } - }); - function scrollTo2(_x, _y) { - var _a, _b, _c; - if (!window2) - return; - const _element = toValue(element); - if (!_element) - return; - (_c = _element instanceof Document ? window2.document.body : _element) == null ? void 0 : _c.scrollTo({ - top: (_a = toValue(_y)) != null ? _a : y.value, - left: (_b = toValue(_x)) != null ? _b : x.value, - behavior: toValue(behavior) - }); - } - const isScrolling = ref(false); - const arrivedState = reactive({ - left: true, - right: false, - top: true, - bottom: false - }); - const directions = reactive({ - left: false, - right: false, - top: false, - bottom: false - }); - const onScrollEnd = (e) => { - if (!isScrolling.value) - return; - isScrolling.value = false; - directions.left = false; - directions.right = false; - directions.top = false; - directions.bottom = false; - onStop(e); - }; - const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle); - const setArrivedState = (target) => { - var _a; - if (!window2) - return; - const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target; - const { display, flexDirection } = getComputedStyle(el); - const scrollLeft = el.scrollLeft; - directions.left = scrollLeft < internalX.value; - directions.right = scrollLeft > internalX.value; - const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0); - const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; - if (display === "flex" && flexDirection === "row-reverse") { - arrivedState.left = right; - arrivedState.right = left; - } else { - arrivedState.left = left; - arrivedState.right = right; - } - internalX.value = scrollLeft; - let scrollTop = el.scrollTop; - if (target === window2.document && !scrollTop) - scrollTop = window2.document.body.scrollTop; - directions.top = scrollTop < internalY.value; - directions.bottom = scrollTop > internalY.value; - const top = Math.abs(scrollTop) <= 0 + (offset.top || 0); - const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; - if (display === "flex" && flexDirection === "column-reverse") { - arrivedState.top = bottom; - arrivedState.bottom = top; - } else { - arrivedState.top = top; - arrivedState.bottom = bottom; - } - internalY.value = scrollTop; - }; - const onScrollHandler = (e) => { - var _a; - if (!window2) - return; - const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target; - setArrivedState(eventTarget); - isScrolling.value = true; - onScrollEndDebounced(e); - onScroll(e); - }; - useEventListener( - element, - "scroll", - throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, - eventListenerOptions - ); - tryOnMounted(() => { - const _element = toValue(element); - if (!_element) - return; - setArrivedState(_element); - }); - useEventListener( - element, - "scrollend", - onScrollEnd, - eventListenerOptions - ); - return { - x, - y, - isScrolling, - arrivedState, - directions, - measure() { - const _element = toValue(element); - if (window2 && _element) - setArrivedState(_element); - } - }; -} -function resolveElement(el) { - if (typeof Window !== "undefined" && el instanceof Window) - return el.document.documentElement; - if (typeof Document !== "undefined" && el instanceof Document) - return el.documentElement; - return el; -} -function useInfiniteScroll(element, onLoadMore, options = {}) { - var _a; - const { - direction = "bottom", - interval = 100, - canLoadMore = () => true - } = options; - const state = reactive(useScroll( - element, - { - ...options, - offset: { - [direction]: (_a = options.distance) != null ? _a : 0, - ...options.offset - } - } - )); - const promise = ref(); - const isLoading = computed(() => !!promise.value); - const observedElement = computed(() => { - return resolveElement(toValue(element)); - }); - const isElementVisible = useElementVisibility(observedElement); - function checkAndLoad() { - state.measure(); - if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value)) - return; - const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value; - const isNarrower = direction === "bottom" || direction === "top" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth; - if (state.arrivedState[direction] || isNarrower) { - if (!promise.value) { - promise.value = Promise.all([ - onLoadMore(state), - new Promise((resolve) => setTimeout(resolve, interval)) - ]).finally(() => { - promise.value = null; - nextTick(() => checkAndLoad()); - }); - } - } - } - watch( - () => [state.arrivedState[direction], isElementVisible.value], - checkAndLoad, - { immediate: true } - ); - return { - isLoading - }; -} -var defaultEvents = ["mousedown", "mouseup", "keydown", "keyup"]; -function useKeyModifier(modifier, options = {}) { - const { - events: events2 = defaultEvents, - document: document2 = defaultDocument, - initial = null - } = options; - const state = ref(initial); - if (document2) { - events2.forEach((listenerEvent) => { - useEventListener(document2, listenerEvent, (evt) => { - if (typeof evt.getModifierState === "function") - state.value = evt.getModifierState(modifier); - }); - }); - } - return state; -} -function useLocalStorage(key, initialValue, options = {}) { - const { window: window2 = defaultWindow } = options; - return useStorage(key, initialValue, window2 == null ? void 0 : window2.localStorage, options); -} -var DefaultMagicKeysAliasMap = { - ctrl: "control", - command: "meta", - cmd: "meta", - option: "alt", - up: "arrowup", - down: "arrowdown", - left: "arrowleft", - right: "arrowright" -}; -function useMagicKeys(options = {}) { - const { - reactive: useReactive = false, - target = defaultWindow, - aliasMap = DefaultMagicKeysAliasMap, - passive = true, - onEventFired = noop - } = options; - const current = reactive(/* @__PURE__ */ new Set()); - const obj = { - toJSON() { - return {}; - }, - current - }; - const refs = useReactive ? reactive(obj) : obj; - const metaDeps = /* @__PURE__ */ new Set(); - const usedKeys = /* @__PURE__ */ new Set(); - function setRefs(key, value) { - if (key in refs) { - if (useReactive) - refs[key] = value; - else - refs[key].value = value; - } - } - function reset() { - current.clear(); - for (const key of usedKeys) - setRefs(key, false); - } - function updateRefs(e, value) { - var _a, _b; - const key = (_a = e.key) == null ? void 0 : _a.toLowerCase(); - const code = (_b = e.code) == null ? void 0 : _b.toLowerCase(); - const values = [code, key].filter(Boolean); - if (key) { - if (value) - current.add(key); - else - current.delete(key); - } - for (const key2 of values) { - usedKeys.add(key2); - setRefs(key2, value); - } - if (key === "meta" && !value) { - metaDeps.forEach((key2) => { - current.delete(key2); - setRefs(key2, false); - }); - metaDeps.clear(); - } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) { - [...current, ...values].forEach((key2) => metaDeps.add(key2)); - } - } - useEventListener(target, "keydown", (e) => { - updateRefs(e, true); - return onEventFired(e); - }, { passive }); - useEventListener(target, "keyup", (e) => { - updateRefs(e, false); - return onEventFired(e); - }, { passive }); - useEventListener("blur", reset, { passive: true }); - useEventListener("focus", reset, { passive: true }); - const proxy = new Proxy( - refs, - { - get(target2, prop, rec) { - if (typeof prop !== "string") - return Reflect.get(target2, prop, rec); - prop = prop.toLowerCase(); - if (prop in aliasMap) - prop = aliasMap[prop]; - if (!(prop in refs)) { - if (/[+_-]/.test(prop)) { - const keys2 = prop.split(/[+_-]/g).map((i) => i.trim()); - refs[prop] = computed(() => keys2.every((key) => toValue(proxy[key]))); - } else { - refs[prop] = ref(false); - } - } - const r = Reflect.get(target2, prop, rec); - return useReactive ? toValue(r) : r; - } - } - ); - return proxy; -} -function usingElRef(source, cb) { - if (toValue(source)) - cb(toValue(source)); -} -function timeRangeToArray(timeRanges) { - let ranges = []; - for (let i = 0; i < timeRanges.length; ++i) - ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]]; - return ranges; -} -function tracksToArray(tracks) { - return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType })); -} -var defaultOptions = { - src: "", - tracks: [] -}; -function useMediaControls(target, options = {}) { - options = { - ...defaultOptions, - ...options - }; - const { - document: document2 = defaultDocument - } = options; - const currentTime = ref(0); - const duration = ref(0); - const seeking = ref(false); - const volume = ref(1); - const waiting = ref(false); - const ended = ref(false); - const playing = ref(false); - const rate = ref(1); - const stalled = ref(false); - const buffered = ref([]); - const tracks = ref([]); - const selectedTrack = ref(-1); - const isPictureInPicture = ref(false); - const muted = ref(false); - const supportsPictureInPicture = document2 && "pictureInPictureEnabled" in document2; - const sourceErrorEvent = createEventHook(); - const disableTrack = (track) => { - usingElRef(target, (el) => { - if (track) { - const id = typeof track === "number" ? track : track.id; - el.textTracks[id].mode = "disabled"; - } else { - for (let i = 0; i < el.textTracks.length; ++i) - el.textTracks[i].mode = "disabled"; - } - selectedTrack.value = -1; - }); - }; - const enableTrack = (track, disableTracks = true) => { - usingElRef(target, (el) => { - const id = typeof track === "number" ? track : track.id; - if (disableTracks) - disableTrack(); - el.textTracks[id].mode = "showing"; - selectedTrack.value = id; - }); - }; - const togglePictureInPicture = () => { - return new Promise((resolve, reject) => { - usingElRef(target, async (el) => { - if (supportsPictureInPicture) { - if (!isPictureInPicture.value) { - el.requestPictureInPicture().then(resolve).catch(reject); - } else { - document2.exitPictureInPicture().then(resolve).catch(reject); - } - } - }); - }); - }; - watchEffect(() => { - if (!document2) - return; - const el = toValue(target); - if (!el) - return; - const src = toValue(options.src); - let sources = []; - if (!src) - return; - if (typeof src === "string") - sources = [{ src }]; - else if (Array.isArray(src)) - sources = src; - else if (isObject(src)) - sources = [src]; - el.querySelectorAll("source").forEach((e) => { - e.removeEventListener("error", sourceErrorEvent.trigger); - e.remove(); - }); - sources.forEach(({ src: src2, type }) => { - const source = document2.createElement("source"); - source.setAttribute("src", src2); - source.setAttribute("type", type || ""); - source.addEventListener("error", sourceErrorEvent.trigger); - el.appendChild(source); - }); - el.load(); - }); - tryOnScopeDispose(() => { - const el = toValue(target); - if (!el) - return; - el.querySelectorAll("source").forEach((e) => e.removeEventListener("error", sourceErrorEvent.trigger)); - }); - watch([target, volume], () => { - const el = toValue(target); - if (!el) - return; - el.volume = volume.value; - }); - watch([target, muted], () => { - const el = toValue(target); - if (!el) - return; - el.muted = muted.value; - }); - watch([target, rate], () => { - const el = toValue(target); - if (!el) - return; - el.playbackRate = rate.value; - }); - watchEffect(() => { - if (!document2) - return; - const textTracks = toValue(options.tracks); - const el = toValue(target); - if (!textTracks || !textTracks.length || !el) - return; - el.querySelectorAll("track").forEach((e) => e.remove()); - textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => { - const track = document2.createElement("track"); - track.default = isDefault || false; - track.kind = kind; - track.label = label; - track.src = src; - track.srclang = srcLang; - if (track.default) - selectedTrack.value = i; - el.appendChild(track); - }); - }); - const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => { - const el = toValue(target); - if (!el) - return; - el.currentTime = time; - }); - const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => { - const el = toValue(target); - if (!el) - return; - isPlaying ? el.play() : el.pause(); - }); - useEventListener(target, "timeupdate", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime)); - useEventListener(target, "durationchange", () => duration.value = toValue(target).duration); - useEventListener(target, "progress", () => buffered.value = timeRangeToArray(toValue(target).buffered)); - useEventListener(target, "seeking", () => seeking.value = true); - useEventListener(target, "seeked", () => seeking.value = false); - useEventListener(target, ["waiting", "loadstart"], () => { - waiting.value = true; - ignorePlayingUpdates(() => playing.value = false); - }); - useEventListener(target, "loadeddata", () => waiting.value = false); - useEventListener(target, "playing", () => { - waiting.value = false; - ended.value = false; - ignorePlayingUpdates(() => playing.value = true); - }); - useEventListener(target, "ratechange", () => rate.value = toValue(target).playbackRate); - useEventListener(target, "stalled", () => stalled.value = true); - useEventListener(target, "ended", () => ended.value = true); - useEventListener(target, "pause", () => ignorePlayingUpdates(() => playing.value = false)); - useEventListener(target, "play", () => ignorePlayingUpdates(() => playing.value = true)); - useEventListener(target, "enterpictureinpicture", () => isPictureInPicture.value = true); - useEventListener(target, "leavepictureinpicture", () => isPictureInPicture.value = false); - useEventListener(target, "volumechange", () => { - const el = toValue(target); - if (!el) - return; - volume.value = el.volume; - muted.value = el.muted; - }); - const listeners = []; - const stop = watch([target], () => { - const el = toValue(target); - if (!el) - return; - stop(); - listeners[0] = useEventListener(el.textTracks, "addtrack", () => tracks.value = tracksToArray(el.textTracks)); - listeners[1] = useEventListener(el.textTracks, "removetrack", () => tracks.value = tracksToArray(el.textTracks)); - listeners[2] = useEventListener(el.textTracks, "change", () => tracks.value = tracksToArray(el.textTracks)); - }); - tryOnScopeDispose(() => listeners.forEach((listener) => listener())); - return { - currentTime, - duration, - waiting, - seeking, - ended, - stalled, - buffered, - playing, - rate, - // Volume - volume, - muted, - // Tracks - tracks, - selectedTrack, - enableTrack, - disableTrack, - // Picture in Picture - supportsPictureInPicture, - togglePictureInPicture, - isPictureInPicture, - // Events - onSourceError: sourceErrorEvent.on - }; -} -function getMapVue2Compat() { - const data = shallowReactive({}); - return { - get: (key) => data[key], - set: (key, value) => set3(data, key, value), - has: (key) => hasOwn(data, key), - delete: (key) => del(data, key), - clear: () => { - Object.keys(data).forEach((key) => { - del(data, key); - }); - } - }; -} -function useMemoize(resolver, options) { - const initCache = () => { - if (options == null ? void 0 : options.cache) - return shallowReactive(options.cache); - if (isVue22) - return getMapVue2Compat(); - return shallowReactive(/* @__PURE__ */ new Map()); - }; - const cache = initCache(); - const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args); - const _loadData = (key, ...args) => { - cache.set(key, resolver(...args)); - return cache.get(key); - }; - const loadData = (...args) => _loadData(generateKey(...args), ...args); - const deleteData = (...args) => { - cache.delete(generateKey(...args)); - }; - const clearData = () => { - cache.clear(); - }; - const memoized = (...args) => { - const key = generateKey(...args); - if (cache.has(key)) - return cache.get(key); - return _loadData(key, ...args); - }; - memoized.load = loadData; - memoized.delete = deleteData; - memoized.clear = clearData; - memoized.generateKey = generateKey; - memoized.cache = cache; - return memoized; -} -function useMemory(options = {}) { - const memory = ref(); - const isSupported = useSupported(() => typeof performance !== "undefined" && "memory" in performance); - if (isSupported.value) { - const { interval = 1e3 } = options; - useIntervalFn(() => { - memory.value = performance.memory; - }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback }); - } - return { isSupported, memory }; -} -var UseMouseBuiltinExtractors = { - page: (event) => [event.pageX, event.pageY], - client: (event) => [event.clientX, event.clientY], - screen: (event) => [event.screenX, event.screenY], - movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY] -}; -function useMouse(options = {}) { - const { - type = "page", - touch = true, - resetOnTouchEnds = false, - initialValue = { x: 0, y: 0 }, - window: window2 = defaultWindow, - target = window2, - scroll = true, - eventFilter - } = options; - let _prevMouseEvent = null; - const x = ref(initialValue.x); - const y = ref(initialValue.y); - const sourceType = ref(null); - const extractor = typeof type === "function" ? type : UseMouseBuiltinExtractors[type]; - const mouseHandler = (event) => { - const result = extractor(event); - _prevMouseEvent = event; - if (result) { - [x.value, y.value] = result; - sourceType.value = "mouse"; - } - }; - const touchHandler = (event) => { - if (event.touches.length > 0) { - const result = extractor(event.touches[0]); - if (result) { - [x.value, y.value] = result; - sourceType.value = "touch"; - } - } - }; - const scrollHandler = () => { - if (!_prevMouseEvent || !window2) - return; - const pos = extractor(_prevMouseEvent); - if (_prevMouseEvent instanceof MouseEvent && pos) { - x.value = pos[0] + window2.scrollX; - y.value = pos[1] + window2.scrollY; - } - }; - const reset = () => { - x.value = initialValue.x; - y.value = initialValue.y; - }; - const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event); - const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event); - const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler(); - if (target) { - const listenerOptions = { passive: true }; - useEventListener(target, ["mousemove", "dragover"], mouseHandlerWrapper, listenerOptions); - if (touch && type !== "movement") { - useEventListener(target, ["touchstart", "touchmove"], touchHandlerWrapper, listenerOptions); - if (resetOnTouchEnds) - useEventListener(target, "touchend", reset, listenerOptions); - } - if (scroll && type === "page") - useEventListener(window2, "scroll", scrollHandlerWrapper, { passive: true }); - } - return { - x, - y, - sourceType - }; -} -function useMouseInElement(target, options = {}) { - const { - handleOutside = true, - window: window2 = defaultWindow - } = options; - const type = options.type || "page"; - const { x, y, sourceType } = useMouse(options); - const targetRef = ref(target != null ? target : window2 == null ? void 0 : window2.document.body); - const elementX = ref(0); - const elementY = ref(0); - const elementPositionX = ref(0); - const elementPositionY = ref(0); - const elementHeight = ref(0); - const elementWidth = ref(0); - const isOutside = ref(true); - let stop = () => { - }; - if (window2) { - stop = watch( - [targetRef, x, y], - () => { - const el = unrefElement(targetRef); - if (!el) - return; - const { - left, - top, - width, - height - } = el.getBoundingClientRect(); - elementPositionX.value = left + (type === "page" ? window2.pageXOffset : 0); - elementPositionY.value = top + (type === "page" ? window2.pageYOffset : 0); - elementHeight.value = height; - elementWidth.value = width; - const elX = x.value - elementPositionX.value; - const elY = y.value - elementPositionY.value; - isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height; - if (handleOutside || !isOutside.value) { - elementX.value = elX; - elementY.value = elY; - } - }, - { immediate: true } - ); - useEventListener(document, "mouseleave", () => { - isOutside.value = true; - }); - } - return { - x, - y, - sourceType, - elementX, - elementY, - elementPositionX, - elementPositionY, - elementHeight, - elementWidth, - isOutside, - stop - }; -} -function useMousePressed(options = {}) { - const { - touch = true, - drag = true, - capture = false, - initialValue = false, - window: window2 = defaultWindow - } = options; - const pressed = ref(initialValue); - const sourceType = ref(null); - if (!window2) { - return { - pressed, - sourceType - }; - } - const onPressed = (srcType) => () => { - pressed.value = true; - sourceType.value = srcType; - }; - const onReleased = () => { - pressed.value = false; - sourceType.value = null; - }; - const target = computed(() => unrefElement(options.target) || window2); - useEventListener(target, "mousedown", onPressed("mouse"), { passive: true, capture }); - useEventListener(window2, "mouseleave", onReleased, { passive: true, capture }); - useEventListener(window2, "mouseup", onReleased, { passive: true, capture }); - if (drag) { - useEventListener(target, "dragstart", onPressed("mouse"), { passive: true, capture }); - useEventListener(window2, "drop", onReleased, { passive: true, capture }); - useEventListener(window2, "dragend", onReleased, { passive: true, capture }); - } - if (touch) { - useEventListener(target, "touchstart", onPressed("touch"), { passive: true, capture }); - useEventListener(window2, "touchend", onReleased, { passive: true, capture }); - useEventListener(window2, "touchcancel", onReleased, { passive: true, capture }); - } - return { - pressed, - sourceType - }; -} -function useNavigatorLanguage(options = {}) { - const { window: window2 = defaultWindow } = options; - const navigator = window2 == null ? void 0 : window2.navigator; - const isSupported = useSupported(() => navigator && "language" in navigator); - const language = ref(navigator == null ? void 0 : navigator.language); - useEventListener(window2, "languagechange", () => { - if (navigator) - language.value = navigator.language; - }); - return { - isSupported, - language - }; -} -function useNetwork(options = {}) { - const { window: window2 = defaultWindow } = options; - const navigator = window2 == null ? void 0 : window2.navigator; - const isSupported = useSupported(() => navigator && "connection" in navigator); - const isOnline = ref(true); - const saveData = ref(false); - const offlineAt = ref(void 0); - const onlineAt = ref(void 0); - const downlink = ref(void 0); - const downlinkMax = ref(void 0); - const rtt = ref(void 0); - const effectiveType = ref(void 0); - const type = ref("unknown"); - const connection = isSupported.value && navigator.connection; - function updateNetworkInformation() { - if (!navigator) - return; - isOnline.value = navigator.onLine; - offlineAt.value = isOnline.value ? void 0 : Date.now(); - onlineAt.value = isOnline.value ? Date.now() : void 0; - if (connection) { - downlink.value = connection.downlink; - downlinkMax.value = connection.downlinkMax; - effectiveType.value = connection.effectiveType; - rtt.value = connection.rtt; - saveData.value = connection.saveData; - type.value = connection.type; - } - } - if (window2) { - useEventListener(window2, "offline", () => { - isOnline.value = false; - offlineAt.value = Date.now(); - }); - useEventListener(window2, "online", () => { - isOnline.value = true; - onlineAt.value = Date.now(); - }); - } - if (connection) - useEventListener(connection, "change", updateNetworkInformation, false); - updateNetworkInformation(); - return { - isSupported, - isOnline, - saveData, - offlineAt, - onlineAt, - downlink, - downlinkMax, - effectiveType, - rtt, - type - }; -} -function useNow(options = {}) { - const { - controls: exposeControls = false, - interval = "requestAnimationFrame" - } = options; - const now2 = ref(/* @__PURE__ */ new Date()); - const update = () => now2.value = /* @__PURE__ */ new Date(); - const controls = interval === "requestAnimationFrame" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true }); - if (exposeControls) { - return { - now: now2, - ...controls - }; - } else { - return now2; - } -} -function useObjectUrl(object) { - const url = ref(); - const release = () => { - if (url.value) - URL.revokeObjectURL(url.value); - url.value = void 0; - }; - watch( - () => toValue(object), - (newObject) => { - release(); - if (newObject) - url.value = URL.createObjectURL(newObject); - }, - { immediate: true } - ); - tryOnScopeDispose(release); - return readonly(url); -} -function useClamp(value, min, max) { - if (typeof value === "function" || isReadonly(value)) - return computed(() => clamp(toValue(value), toValue(min), toValue(max))); - const _value = ref(value); - return computed({ - get() { - return _value.value = clamp(_value.value, toValue(min), toValue(max)); - }, - set(value2) { - _value.value = clamp(value2, toValue(min), toValue(max)); - } - }); -} -function useOffsetPagination(options) { - const { - total = Number.POSITIVE_INFINITY, - pageSize = 10, - page = 1, - onPageChange = noop, - onPageSizeChange = noop, - onPageCountChange = noop - } = options; - const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY); - const pageCount = computed(() => Math.max( - 1, - Math.ceil(toValue(total) / toValue(currentPageSize)) - )); - const currentPage = useClamp(page, 1, pageCount); - const isFirstPage = computed(() => currentPage.value === 1); - const isLastPage = computed(() => currentPage.value === pageCount.value); - if (isRef(page)) { - syncRef(page, currentPage, { - direction: isReadonly(page) ? "ltr" : "both" - }); - } - if (isRef(pageSize)) { - syncRef(pageSize, currentPageSize, { - direction: isReadonly(pageSize) ? "ltr" : "both" - }); - } - function prev() { - currentPage.value--; - } - function next() { - currentPage.value++; - } - const returnValue = { - currentPage, - currentPageSize, - pageCount, - isFirstPage, - isLastPage, - prev, - next - }; - watch(currentPage, () => { - onPageChange(reactive(returnValue)); - }); - watch(currentPageSize, () => { - onPageSizeChange(reactive(returnValue)); - }); - watch(pageCount, () => { - onPageCountChange(reactive(returnValue)); - }); - return returnValue; -} -function useOnline(options = {}) { - const { isOnline } = useNetwork(options); - return isOnline; -} -function usePageLeave(options = {}) { - const { window: window2 = defaultWindow } = options; - const isLeft = ref(false); - const handler = (event) => { - if (!window2) - return; - event = event || window2.event; - const from = event.relatedTarget || event.toElement; - isLeft.value = !from; - }; - if (window2) { - useEventListener(window2, "mouseout", handler, { passive: true }); - useEventListener(window2.document, "mouseleave", handler, { passive: true }); - useEventListener(window2.document, "mouseenter", handler, { passive: true }); - } - return isLeft; -} -function useParallax(target, options = {}) { - const { - deviceOrientationTiltAdjust = (i) => i, - deviceOrientationRollAdjust = (i) => i, - mouseTiltAdjust = (i) => i, - mouseRollAdjust = (i) => i, - window: window2 = defaultWindow - } = options; - const orientation = reactive(useDeviceOrientation({ window: window2 })); - const { - elementX: x, - elementY: y, - elementWidth: width, - elementHeight: height - } = useMouseInElement(target, { handleOutside: false, window: window2 }); - const source = computed(() => { - if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) - return "deviceOrientation"; - return "mouse"; - }); - const roll = computed(() => { - if (source.value === "deviceOrientation") { - const value = -orientation.beta / 90; - return deviceOrientationRollAdjust(value); - } else { - const value = -(y.value - height.value / 2) / height.value; - return mouseRollAdjust(value); - } - }); - const tilt = computed(() => { - if (source.value === "deviceOrientation") { - const value = orientation.gamma / 90; - return deviceOrientationTiltAdjust(value); - } else { - const value = (x.value - width.value / 2) / width.value; - return mouseTiltAdjust(value); - } - }); - return { roll, tilt, source }; -} -function useParentElement(element = useCurrentElement()) { - const parentElement = shallowRef(); - const update = () => { - const el = unrefElement(element); - if (el) - parentElement.value = el.parentElement; - }; - tryOnMounted(update); - watch(() => toValue(element), update); - return parentElement; -} -function usePerformanceObserver(options, callback) { - const { - window: window2 = defaultWindow, - immediate = true, - ...performanceOptions - } = options; - const isSupported = useSupported(() => window2 && "PerformanceObserver" in window2); - let observer; - const stop = () => { - observer == null ? void 0 : observer.disconnect(); - }; - const start = () => { - if (isSupported.value) { - stop(); - observer = new PerformanceObserver(callback); - observer.observe(performanceOptions); - } - }; - tryOnScopeDispose(stop); - if (immediate) - start(); - return { - isSupported, - start, - stop - }; -} -var defaultState = { - x: 0, - y: 0, - pointerId: 0, - pressure: 0, - tiltX: 0, - tiltY: 0, - width: 0, - height: 0, - twist: 0, - pointerType: null -}; -var keys = Object.keys(defaultState); -function usePointer(options = {}) { - const { - target = defaultWindow - } = options; - const isInside = ref(false); - const state = ref(options.initialValue || {}); - Object.assign(state.value, defaultState, state.value); - const handler = (event) => { - isInside.value = true; - if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) - return; - state.value = objectPick(event, keys, false); - }; - if (target) { - const listenerOptions = { passive: true }; - useEventListener(target, ["pointerdown", "pointermove", "pointerup"], handler, listenerOptions); - useEventListener(target, "pointerleave", () => isInside.value = false, listenerOptions); - } - return { - ...toRefs2(state), - isInside - }; -} -function usePointerLock(target, options = {}) { - const { document: document2 = defaultDocument, pointerLockOptions } = options; - const isSupported = useSupported(() => document2 && "pointerLockElement" in document2); - const element = ref(); - const triggerElement = ref(); - let targetElement; - if (isSupported.value) { - useEventListener(document2, "pointerlockchange", () => { - var _a; - const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; - if (targetElement && currentElement === targetElement) { - element.value = document2.pointerLockElement; - if (!element.value) - targetElement = triggerElement.value = null; - } - }); - useEventListener(document2, "pointerlockerror", () => { - var _a; - const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; - if (targetElement && currentElement === targetElement) { - const action = document2.pointerLockElement ? "release" : "acquire"; - throw new Error(`Failed to ${action} pointer lock.`); - } - }); - } - async function lock(e, options2) { - var _a; - if (!isSupported.value) - throw new Error("Pointer Lock API is not supported by your browser."); - triggerElement.value = e instanceof Event ? e.currentTarget : null; - targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e); - if (!targetElement) - throw new Error("Target element undefined."); - targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions); - return await until(element).toBe(targetElement); - } - async function unlock() { - if (!element.value) - return false; - document2.exitPointerLock(); - await until(element).toBeNull(); - return true; - } - return { - isSupported, - element, - triggerElement, - lock, - unlock - }; -} -function usePointerSwipe(target, options = {}) { - const targetRef = toRef2(target); - const { - threshold = 50, - onSwipe, - onSwipeEnd, - onSwipeStart, - disableTextSelect = false - } = options; - const posStart = reactive({ x: 0, y: 0 }); - const updatePosStart = (x, y) => { - posStart.x = x; - posStart.y = y; - }; - const posEnd = reactive({ x: 0, y: 0 }); - const updatePosEnd = (x, y) => { - posEnd.x = x; - posEnd.y = y; - }; - const distanceX = computed(() => posStart.x - posEnd.x); - const distanceY = computed(() => posStart.y - posEnd.y); - const { max, abs } = Math; - const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold); - const isSwiping = ref(false); - const isPointerDown = ref(false); - const direction = computed(() => { - if (!isThresholdExceeded.value) - return "none"; - if (abs(distanceX.value) > abs(distanceY.value)) { - return distanceX.value > 0 ? "left" : "right"; - } else { - return distanceY.value > 0 ? "up" : "down"; - } - }); - const eventIsAllowed = (e) => { - var _a, _b, _c; - const isReleasingButton = e.buttons === 0; - const isPrimaryButton = e.buttons === 1; - return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true; - }; - const stops = [ - useEventListener(target, "pointerdown", (e) => { - if (!eventIsAllowed(e)) - return; - isPointerDown.value = true; - const eventTarget = e.target; - eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId); - const { clientX: x, clientY: y } = e; - updatePosStart(x, y); - updatePosEnd(x, y); - onSwipeStart == null ? void 0 : onSwipeStart(e); - }), - useEventListener(target, "pointermove", (e) => { - if (!eventIsAllowed(e)) - return; - if (!isPointerDown.value) - return; - const { clientX: x, clientY: y } = e; - updatePosEnd(x, y); - if (!isSwiping.value && isThresholdExceeded.value) - isSwiping.value = true; - if (isSwiping.value) - onSwipe == null ? void 0 : onSwipe(e); - }), - useEventListener(target, "pointerup", (e) => { - if (!eventIsAllowed(e)) - return; - if (isSwiping.value) - onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); - isPointerDown.value = false; - isSwiping.value = false; - }) - ]; - tryOnMounted(() => { - var _a, _b, _c, _d, _e, _f, _g, _h; - (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "none"); - if (disableTextSelect) { - (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty("-webkit-user-select", "none"); - (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty("-ms-user-select", "none"); - (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty("user-select", "none"); - } - }); - const stop = () => stops.forEach((s) => s()); - return { - isSwiping: readonly(isSwiping), - direction: readonly(direction), - posStart: readonly(posStart), - posEnd: readonly(posEnd), - distanceX, - distanceY, - stop - }; -} -function usePreferredColorScheme(options) { - const isLight = useMediaQuery("(prefers-color-scheme: light)", options); - const isDark = useMediaQuery("(prefers-color-scheme: dark)", options); - return computed(() => { - if (isDark.value) - return "dark"; - if (isLight.value) - return "light"; - return "no-preference"; - }); -} -function usePreferredContrast(options) { - const isMore = useMediaQuery("(prefers-contrast: more)", options); - const isLess = useMediaQuery("(prefers-contrast: less)", options); - const isCustom = useMediaQuery("(prefers-contrast: custom)", options); - return computed(() => { - if (isMore.value) - return "more"; - if (isLess.value) - return "less"; - if (isCustom.value) - return "custom"; - return "no-preference"; - }); -} -function usePreferredLanguages(options = {}) { - const { window: window2 = defaultWindow } = options; - if (!window2) - return ref(["en"]); - const navigator = window2.navigator; - const value = ref(navigator.languages); - useEventListener(window2, "languagechange", () => { - value.value = navigator.languages; - }); - return value; -} -function usePreferredReducedMotion(options) { - const isReduced = useMediaQuery("(prefers-reduced-motion: reduce)", options); - return computed(() => { - if (isReduced.value) - return "reduce"; - return "no-preference"; - }); -} -function usePrevious(value, initialValue) { - const previous = shallowRef(initialValue); - watch( - toRef2(value), - (_, oldValue) => { - previous.value = oldValue; - }, - { flush: "sync" } - ); - return readonly(previous); -} -function useScreenOrientation(options = {}) { - const { - window: window2 = defaultWindow - } = options; - const isSupported = useSupported(() => window2 && "screen" in window2 && "orientation" in window2.screen); - const screenOrientation = isSupported.value ? window2.screen.orientation : {}; - const orientation = ref(screenOrientation.type); - const angle = ref(screenOrientation.angle || 0); - if (isSupported.value) { - useEventListener(window2, "orientationchange", () => { - orientation.value = screenOrientation.type; - angle.value = screenOrientation.angle; - }); - } - const lockOrientation = (type) => { - if (isSupported.value && typeof screenOrientation.lock === "function") - return screenOrientation.lock(type); - return Promise.reject(new Error("Not supported")); - }; - const unlockOrientation = () => { - if (isSupported.value && typeof screenOrientation.unlock === "function") - screenOrientation.unlock(); - }; - return { - isSupported, - orientation, - angle, - lockOrientation, - unlockOrientation - }; -} -var topVarName = "--vueuse-safe-area-top"; -var rightVarName = "--vueuse-safe-area-right"; -var bottomVarName = "--vueuse-safe-area-bottom"; -var leftVarName = "--vueuse-safe-area-left"; -function useScreenSafeArea() { - const top = ref(""); - const right = ref(""); - const bottom = ref(""); - const left = ref(""); - if (isClient) { - const topCssVar = useCssVar(topVarName); - const rightCssVar = useCssVar(rightVarName); - const bottomCssVar = useCssVar(bottomVarName); - const leftCssVar = useCssVar(leftVarName); - topCssVar.value = "env(safe-area-inset-top, 0px)"; - rightCssVar.value = "env(safe-area-inset-right, 0px)"; - bottomCssVar.value = "env(safe-area-inset-bottom, 0px)"; - leftCssVar.value = "env(safe-area-inset-left, 0px)"; - update(); - useEventListener("resize", useDebounceFn(update)); - } - function update() { - top.value = getValue(topVarName); - right.value = getValue(rightVarName); - bottom.value = getValue(bottomVarName); - left.value = getValue(leftVarName); - } - return { - top, - right, - bottom, - left, - update - }; -} -function getValue(position) { - return getComputedStyle(document.documentElement).getPropertyValue(position); -} -function useScriptTag(src, onLoaded = noop, options = {}) { - const { - immediate = true, - manual = false, - type = "text/javascript", - async = true, - crossOrigin, - referrerPolicy, - noModule, - defer, - document: document2 = defaultDocument, - attrs = {} - } = options; - const scriptTag = ref(null); - let _promise = null; - const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => { - const resolveWithElement = (el2) => { - scriptTag.value = el2; - resolve(el2); - return el2; - }; - if (!document2) { - resolve(false); - return; - } - let shouldAppend = false; - let el = document2.querySelector(`script[src="${toValue(src)}"]`); - if (!el) { - el = document2.createElement("script"); - el.type = type; - el.async = async; - el.src = toValue(src); - if (defer) - el.defer = defer; - if (crossOrigin) - el.crossOrigin = crossOrigin; - if (noModule) - el.noModule = noModule; - if (referrerPolicy) - el.referrerPolicy = referrerPolicy; - Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value)); - shouldAppend = true; - } else if (el.hasAttribute("data-loaded")) { - resolveWithElement(el); - } - el.addEventListener("error", (event) => reject(event)); - el.addEventListener("abort", (event) => reject(event)); - el.addEventListener("load", () => { - el.setAttribute("data-loaded", "true"); - onLoaded(el); - resolveWithElement(el); - }); - if (shouldAppend) - el = document2.head.appendChild(el); - if (!waitForScriptLoad) - resolveWithElement(el); - }); - const load = (waitForScriptLoad = true) => { - if (!_promise) - _promise = loadScript(waitForScriptLoad); - return _promise; - }; - const unload = () => { - if (!document2) - return; - _promise = null; - if (scriptTag.value) - scriptTag.value = null; - const el = document2.querySelector(`script[src="${toValue(src)}"]`); - if (el) - document2.head.removeChild(el); - }; - if (immediate && !manual) - tryOnMounted(load); - if (!manual) - tryOnUnmounted(unload); - return { scriptTag, load, unload }; -} -function checkOverflowScroll(ele) { - const style = window.getComputedStyle(ele); - if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) { - return true; - } else { - const parent = ele.parentNode; - if (!parent || parent.tagName === "BODY") - return false; - return checkOverflowScroll(parent); - } -} -function preventDefault(rawEvent) { - const e = rawEvent || window.event; - const _target = e.target; - if (checkOverflowScroll(_target)) - return false; - if (e.touches.length > 1) - return true; - if (e.preventDefault) - e.preventDefault(); - return false; -} -var elInitialOverflow = /* @__PURE__ */ new WeakMap(); -function useScrollLock(element, initialState = false) { - const isLocked = ref(initialState); - let stopTouchMoveListener = null; - let initialOverflow; - watch(toRef2(element), (el) => { - const target = resolveElement(toValue(el)); - if (target) { - const ele = target; - if (!elInitialOverflow.get(ele)) - elInitialOverflow.set(ele, initialOverflow); - if (isLocked.value) - ele.style.overflow = "hidden"; - } - }, { - immediate: true - }); - const lock = () => { - const el = resolveElement(toValue(element)); - if (!el || isLocked.value) - return; - if (isIOS) { - stopTouchMoveListener = useEventListener( - el, - "touchmove", - (e) => { - preventDefault(e); - }, - { passive: false } - ); - } - el.style.overflow = "hidden"; - isLocked.value = true; - }; - const unlock = () => { - var _a; - const el = resolveElement(toValue(element)); - if (!el || !isLocked.value) - return; - isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener()); - el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : ""; - elInitialOverflow.delete(el); - isLocked.value = false; - }; - tryOnScopeDispose(unlock); - return computed({ - get() { - return isLocked.value; - }, - set(v) { - if (v) - lock(); - else - unlock(); - } - }); -} -function useSessionStorage(key, initialValue, options = {}) { - const { window: window2 = defaultWindow } = options; - return useStorage(key, initialValue, window2 == null ? void 0 : window2.sessionStorage, options); -} -function useShare(shareOptions = {}, options = {}) { - const { navigator = defaultNavigator } = options; - const _navigator = navigator; - const isSupported = useSupported(() => _navigator && "canShare" in _navigator); - const share = async (overrideOptions = {}) => { - if (isSupported.value) { - const data = { - ...toValue(shareOptions), - ...toValue(overrideOptions) - }; - let granted = true; - if (data.files && _navigator.canShare) - granted = _navigator.canShare({ files: data.files }); - if (granted) - return _navigator.share(data); - } - }; - return { - isSupported, - share - }; -} -var defaultSortFn = (source, compareFn) => source.sort(compareFn); -var defaultCompare = (a, b) => a - b; -function useSorted(...args) { - var _a, _b, _c, _d; - const [source] = args; - let compareFn = defaultCompare; - let options = {}; - if (args.length === 2) { - if (typeof args[1] === "object") { - options = args[1]; - compareFn = (_a = options.compareFn) != null ? _a : defaultCompare; - } else { - compareFn = (_b = args[1]) != null ? _b : defaultCompare; - } - } else if (args.length > 2) { - compareFn = (_c = args[1]) != null ? _c : defaultCompare; - options = (_d = args[2]) != null ? _d : {}; - } - const { - dirty = false, - sortFn = defaultSortFn - } = options; - if (!dirty) - return computed(() => sortFn([...toValue(source)], compareFn)); - watchEffect(() => { - const result = sortFn(toValue(source), compareFn); - if (isRef(source)) - source.value = result; - else - source.splice(0, source.length, ...result); - }); - return source; -} -function useSpeechRecognition(options = {}) { - const { - interimResults = true, - continuous = true, - window: window2 = defaultWindow - } = options; - const lang = toRef2(options.lang || "en-US"); - const isListening = ref(false); - const isFinal = ref(false); - const result = ref(""); - const error = shallowRef(void 0); - const toggle = (value = !isListening.value) => { - isListening.value = value; - }; - const start = () => { - isListening.value = true; - }; - const stop = () => { - isListening.value = false; - }; - const SpeechRecognition = window2 && (window2.SpeechRecognition || window2.webkitSpeechRecognition); - const isSupported = useSupported(() => SpeechRecognition); - let recognition; - if (isSupported.value) { - recognition = new SpeechRecognition(); - recognition.continuous = continuous; - recognition.interimResults = interimResults; - recognition.lang = toValue(lang); - recognition.onstart = () => { - isFinal.value = false; - }; - watch(lang, (lang2) => { - if (recognition && !isListening.value) - recognition.lang = lang2; - }); - recognition.onresult = (event) => { - const transcript = Array.from(event.results).map((result2) => { - isFinal.value = result2.isFinal; - return result2[0]; - }).map((result2) => result2.transcript).join(""); - result.value = transcript; - error.value = void 0; - }; - recognition.onerror = (event) => { - error.value = event; - }; - recognition.onend = () => { - isListening.value = false; - recognition.lang = toValue(lang); - }; - watch(isListening, () => { - if (isListening.value) - recognition.start(); - else - recognition.stop(); - }); - } - tryOnScopeDispose(() => { - isListening.value = false; - }); - return { - isSupported, - isListening, - isFinal, - recognition, - result, - error, - toggle, - start, - stop - }; -} -function useSpeechSynthesis(text, options = {}) { - const { - pitch = 1, - rate = 1, - volume = 1, - window: window2 = defaultWindow - } = options; - const synth = window2 && window2.speechSynthesis; - const isSupported = useSupported(() => synth); - const isPlaying = ref(false); - const status = ref("init"); - const spokenText = toRef2(text || ""); - const lang = toRef2(options.lang || "en-US"); - const error = shallowRef(void 0); - const toggle = (value = !isPlaying.value) => { - isPlaying.value = value; - }; - const bindEventsForUtterance = (utterance2) => { - utterance2.lang = toValue(lang); - utterance2.voice = toValue(options.voice) || null; - utterance2.pitch = toValue(pitch); - utterance2.rate = toValue(rate); - utterance2.volume = volume; - utterance2.onstart = () => { - isPlaying.value = true; - status.value = "play"; - }; - utterance2.onpause = () => { - isPlaying.value = false; - status.value = "pause"; - }; - utterance2.onresume = () => { - isPlaying.value = true; - status.value = "play"; - }; - utterance2.onend = () => { - isPlaying.value = false; - status.value = "end"; - }; - utterance2.onerror = (event) => { - error.value = event; - }; - }; - const utterance = computed(() => { - isPlaying.value = false; - status.value = "init"; - const newUtterance = new SpeechSynthesisUtterance(spokenText.value); - bindEventsForUtterance(newUtterance); - return newUtterance; - }); - const speak = () => { - synth.cancel(); - utterance && synth.speak(utterance.value); - }; - const stop = () => { - synth.cancel(); - isPlaying.value = false; - }; - if (isSupported.value) { - bindEventsForUtterance(utterance.value); - watch(lang, (lang2) => { - if (utterance.value && !isPlaying.value) - utterance.value.lang = lang2; - }); - if (options.voice) { - watch(options.voice, () => { - synth.cancel(); - }); - } - watch(isPlaying, () => { - if (isPlaying.value) - synth.resume(); - else - synth.pause(); - }); - } - tryOnScopeDispose(() => { - isPlaying.value = false; - }); - return { - isSupported, - isPlaying, - status, - utterance, - error, - stop, - toggle, - speak - }; -} -function useStepper(steps, initialStep) { - const stepsRef = ref(steps); - const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value)); - const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0])); - const current = computed(() => at(index.value)); - const isFirst = computed(() => index.value === 0); - const isLast = computed(() => index.value === stepNames.value.length - 1); - const next = computed(() => stepNames.value[index.value + 1]); - const previous = computed(() => stepNames.value[index.value - 1]); - function at(index2) { - if (Array.isArray(stepsRef.value)) - return stepsRef.value[index2]; - return stepsRef.value[stepNames.value[index2]]; - } - function get2(step) { - if (!stepNames.value.includes(step)) - return; - return at(stepNames.value.indexOf(step)); - } - function goTo(step) { - if (stepNames.value.includes(step)) - index.value = stepNames.value.indexOf(step); - } - function goToNext() { - if (isLast.value) - return; - index.value++; - } - function goToPrevious() { - if (isFirst.value) - return; - index.value--; - } - function goBackTo(step) { - if (isAfter(step)) - goTo(step); - } - function isNext(step) { - return stepNames.value.indexOf(step) === index.value + 1; - } - function isPrevious(step) { - return stepNames.value.indexOf(step) === index.value - 1; - } - function isCurrent(step) { - return stepNames.value.indexOf(step) === index.value; - } - function isBefore(step) { - return index.value < stepNames.value.indexOf(step); - } - function isAfter(step) { - return index.value > stepNames.value.indexOf(step); - } - return { - steps: stepsRef, - stepNames, - index, - current, - next, - previous, - isFirst, - isLast, - at, - get: get2, - goTo, - goToNext, - goToPrevious, - goBackTo, - isNext, - isPrevious, - isCurrent, - isBefore, - isAfter - }; -} -function useStorageAsync(key, initialValue, storage, options = {}) { - var _a; - const { - flush = "pre", - deep = true, - listenToStorageChanges = true, - writeDefaults = true, - mergeDefaults = false, - shallow, - window: window2 = defaultWindow, - eventFilter, - onError = (e) => { - console.error(e); - } - } = options; - const rawInit = toValue(initialValue); - const type = guessSerializerType(rawInit); - const data = (shallow ? shallowRef : ref)(initialValue); - const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; - if (!storage) { - try { - storage = getSSRHandler("getDefaultStorage", () => { - var _a2; - return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; - })(); - } catch (e) { - onError(e); - } - } - async function read(event) { - if (!storage || event && event.key !== key) - return; - try { - const rawValue = event ? event.newValue : await storage.getItem(key); - if (rawValue == null) { - data.value = rawInit; - if (writeDefaults && rawInit !== null) - await storage.setItem(key, await serializer.write(rawInit)); - } else if (mergeDefaults) { - const value = await serializer.read(rawValue); - if (typeof mergeDefaults === "function") - data.value = mergeDefaults(value, rawInit); - else if (type === "object" && !Array.isArray(value)) - data.value = { ...rawInit, ...value }; - else - data.value = value; - } else { - data.value = await serializer.read(rawValue); - } - } catch (e) { - onError(e); - } - } - read(); - if (window2 && listenToStorageChanges) - useEventListener(window2, "storage", (e) => Promise.resolve().then(() => read(e))); - if (storage) { - watchWithFilter( - data, - async () => { - try { - if (data.value == null) - await storage.removeItem(key); - else - await storage.setItem(key, await serializer.write(data.value)); - } catch (e) { - onError(e); - } - }, - { - flush, - deep, - eventFilter - } - ); - } - return data; -} -var _id = 0; -function useStyleTag(css, options = {}) { - const isLoaded = ref(false); - const { - document: document2 = defaultDocument, - immediate = true, - manual = false, - id = `vueuse_styletag_${++_id}` - } = options; - const cssRef = ref(css); - let stop = () => { - }; - const load = () => { - if (!document2) - return; - const el = document2.getElementById(id) || document2.createElement("style"); - if (!el.isConnected) { - el.id = id; - if (options.media) - el.media = options.media; - document2.head.appendChild(el); - } - if (isLoaded.value) - return; - stop = watch( - cssRef, - (value) => { - el.textContent = value; - }, - { immediate: true } - ); - isLoaded.value = true; - }; - const unload = () => { - if (!document2 || !isLoaded.value) - return; - stop(); - document2.head.removeChild(document2.getElementById(id)); - isLoaded.value = false; - }; - if (immediate && !manual) - tryOnMounted(load); - if (!manual) - tryOnScopeDispose(unload); - return { - id, - css: cssRef, - unload, - load, - isLoaded: readonly(isLoaded) - }; -} -function useSwipe(target, options = {}) { - const { - threshold = 50, - onSwipe, - onSwipeEnd, - onSwipeStart, - passive = true, - window: window2 = defaultWindow - } = options; - const coordsStart = reactive({ x: 0, y: 0 }); - const coordsEnd = reactive({ x: 0, y: 0 }); - const diffX = computed(() => coordsStart.x - coordsEnd.x); - const diffY = computed(() => coordsStart.y - coordsEnd.y); - const { max, abs } = Math; - const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold); - const isSwiping = ref(false); - const direction = computed(() => { - if (!isThresholdExceeded.value) - return "none"; - if (abs(diffX.value) > abs(diffY.value)) { - return diffX.value > 0 ? "left" : "right"; - } else { - return diffY.value > 0 ? "up" : "down"; - } - }); - const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY]; - const updateCoordsStart = (x, y) => { - coordsStart.x = x; - coordsStart.y = y; - }; - const updateCoordsEnd = (x, y) => { - coordsEnd.x = x; - coordsEnd.y = y; - }; - let listenerOptions; - const isPassiveEventSupported = checkPassiveEventSupport(window2 == null ? void 0 : window2.document); - if (!passive) - listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true }; - else - listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false }; - const onTouchEnd = (e) => { - if (isSwiping.value) - onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); - isSwiping.value = false; - }; - const stops = [ - useEventListener(target, "touchstart", (e) => { - if (e.touches.length !== 1) - return; - if (listenerOptions.capture && !listenerOptions.passive) - e.preventDefault(); - const [x, y] = getTouchEventCoords(e); - updateCoordsStart(x, y); - updateCoordsEnd(x, y); - onSwipeStart == null ? void 0 : onSwipeStart(e); - }, listenerOptions), - useEventListener(target, "touchmove", (e) => { - if (e.touches.length !== 1) - return; - const [x, y] = getTouchEventCoords(e); - updateCoordsEnd(x, y); - if (!isSwiping.value && isThresholdExceeded.value) - isSwiping.value = true; - if (isSwiping.value) - onSwipe == null ? void 0 : onSwipe(e); - }, listenerOptions), - useEventListener(target, ["touchend", "touchcancel"], onTouchEnd, listenerOptions) - ]; - const stop = () => stops.forEach((s) => s()); - return { - isPassiveEventSupported, - isSwiping, - direction, - coordsStart, - coordsEnd, - lengthX: diffX, - lengthY: diffY, - stop - }; -} -function checkPassiveEventSupport(document2) { - if (!document2) - return false; - let supportsPassive = false; - const optionsBlock = { - get passive() { - supportsPassive = true; - return false; - } - }; - document2.addEventListener("x", noop, optionsBlock); - document2.removeEventListener("x", noop); - return supportsPassive; -} -function useTemplateRefsList() { - const refs = ref([]); - refs.value.set = (el) => { - if (el) - refs.value.push(el); - }; - onBeforeUpdate(() => { - refs.value.length = 0; - }); - return refs; -} -function useTextDirection(options = {}) { - const { - document: document2 = defaultDocument, - selector = "html", - observe = false, - initialValue = "ltr" - } = options; - function getValue2() { - var _a, _b; - return (_b = (_a = document2 == null ? void 0 : document2.querySelector(selector)) == null ? void 0 : _a.getAttribute("dir")) != null ? _b : initialValue; - } - const dir = ref(getValue2()); - tryOnMounted(() => dir.value = getValue2()); - if (observe && document2) { - useMutationObserver( - document2.querySelector(selector), - () => dir.value = getValue2(), - { attributes: true } - ); - } - return computed({ - get() { - return dir.value; - }, - set(v) { - var _a, _b; - dir.value = v; - if (!document2) - return; - if (dir.value) - (_a = document2.querySelector(selector)) == null ? void 0 : _a.setAttribute("dir", dir.value); - else - (_b = document2.querySelector(selector)) == null ? void 0 : _b.removeAttribute("dir"); - } - }); -} -function getRangesFromSelection(selection) { - var _a; - const rangeCount = (_a = selection.rangeCount) != null ? _a : 0; - return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i)); -} -function useTextSelection(options = {}) { - const { - window: window2 = defaultWindow - } = options; - const selection = ref(null); - const text = computed(() => { - var _a, _b; - return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : ""; - }); - const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []); - const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect())); - function onSelectionChange() { - selection.value = null; - if (window2) - selection.value = window2.getSelection(); - } - if (window2) - useEventListener(window2.document, "selectionchange", onSelectionChange); - return { - text, - rects, - ranges, - selection - }; -} -function useTextareaAutosize(options) { - const textarea = ref(options == null ? void 0 : options.element); - const input = ref(options == null ? void 0 : options.input); - const textareaScrollHeight = ref(1); - function triggerResize() { - var _a, _b; - if (!textarea.value) - return; - let height = ""; - textarea.value.style.height = "1px"; - textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight; - if (options == null ? void 0 : options.styleTarget) - toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`; - else - height = `${textareaScrollHeight.value}px`; - textarea.value.style.height = height; - (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options); - } - watch([input, textarea], () => nextTick(triggerResize), { immediate: true }); - useResizeObserver(textarea, () => triggerResize()); - if (options == null ? void 0 : options.watch) - watch(options.watch, triggerResize, { immediate: true, deep: true }); - return { - textarea, - input, - triggerResize - }; -} -function useThrottledRefHistory(source, options = {}) { - const { throttle = 200, trailing = true } = options; - const filter = throttleFilter(throttle, trailing); - const history = useRefHistory(source, { ...options, eventFilter: filter }); - return { - ...history - }; -} -var DEFAULT_UNITS = [ - { max: 6e4, value: 1e3, name: "second" }, - { max: 276e4, value: 6e4, name: "minute" }, - { max: 72e6, value: 36e5, name: "hour" }, - { max: 5184e5, value: 864e5, name: "day" }, - { max: 24192e5, value: 6048e5, name: "week" }, - { max: 28512e6, value: 2592e6, name: "month" }, - { max: Number.POSITIVE_INFINITY, value: 31536e6, name: "year" } -]; -var DEFAULT_MESSAGES = { - justNow: "just now", - past: (n) => n.match(/\d/) ? `${n} ago` : n, - future: (n) => n.match(/\d/) ? `in ${n}` : n, - month: (n, past) => n === 1 ? past ? "last month" : "next month" : `${n} month${n > 1 ? "s" : ""}`, - year: (n, past) => n === 1 ? past ? "last year" : "next year" : `${n} year${n > 1 ? "s" : ""}`, - day: (n, past) => n === 1 ? past ? "yesterday" : "tomorrow" : `${n} day${n > 1 ? "s" : ""}`, - week: (n, past) => n === 1 ? past ? "last week" : "next week" : `${n} week${n > 1 ? "s" : ""}`, - hour: (n) => `${n} hour${n > 1 ? "s" : ""}`, - minute: (n) => `${n} minute${n > 1 ? "s" : ""}`, - second: (n) => `${n} second${n > 1 ? "s" : ""}`, - invalid: "" -}; -function DEFAULT_FORMATTER(date) { - return date.toISOString().slice(0, 10); -} -function useTimeAgo(time, options = {}) { - const { - controls: exposeControls = false, - updateInterval = 3e4 - } = options; - const { now: now2, ...controls } = useNow({ interval: updateInterval, controls: true }); - const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now2))); - if (exposeControls) { - return { - timeAgo, - ...controls - }; - } else { - return timeAgo; - } -} -function formatTimeAgo(from, options = {}, now2 = Date.now()) { - var _a; - const { - max, - messages = DEFAULT_MESSAGES, - fullDateFormatter = DEFAULT_FORMATTER, - units = DEFAULT_UNITS, - showSecond = false, - rounding = "round" - } = options; - const roundFn = typeof rounding === "number" ? (n) => +n.toFixed(rounding) : Math[rounding]; - const diff = +now2 - +from; - const absDiff = Math.abs(diff); - function getValue2(diff2, unit) { - return roundFn(Math.abs(diff2) / unit.value); - } - function format(diff2, unit) { - const val = getValue2(diff2, unit); - const past = diff2 > 0; - const str = applyFormat(unit.name, val, past); - return applyFormat(past ? "past" : "future", str, past); - } - function applyFormat(name, val, isPast) { - const formatter = messages[name]; - if (typeof formatter === "function") - return formatter(val, isPast); - return formatter.replace("{0}", val.toString()); - } - if (absDiff < 6e4 && !showSecond) - return messages.justNow; - if (typeof max === "number" && absDiff > max) - return fullDateFormatter(new Date(from)); - if (typeof max === "string") { - const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max; - if (unitMax && absDiff > unitMax) - return fullDateFormatter(new Date(from)); - } - for (const [idx, unit] of units.entries()) { - const val = getValue2(diff, unit); - if (val <= 0 && units[idx - 1]) - return format(diff, units[idx - 1]); - if (absDiff < unit.max) - return format(diff, unit); - } - return messages.invalid; -} -function useTimeoutPoll(fn, interval, timeoutPollOptions) { - const { start } = useTimeoutFn(loop, interval, { immediate: false }); - const isActive = ref(false); - async function loop() { - if (!isActive.value) - return; - await fn(); - start(); - } - function resume() { - if (!isActive.value) { - isActive.value = true; - loop(); - } - } - function pause() { - isActive.value = false; - } - if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate) - resume(); - tryOnScopeDispose(pause); - return { - isActive, - pause, - resume - }; -} -function useTimestamp(options = {}) { - const { - controls: exposeControls = false, - offset = 0, - immediate = true, - interval = "requestAnimationFrame", - callback - } = options; - const ts = ref(timestamp() + offset); - const update = () => ts.value = timestamp() + offset; - const cb = callback ? () => { - update(); - callback(ts.value); - } : update; - const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); - if (exposeControls) { - return { - timestamp: ts, - ...controls - }; - } else { - return ts; - } -} -function useTitle(newTitle = null, options = {}) { - var _a, _b, _c; - const { - document: document2 = defaultDocument, - restoreOnUnmount = (t) => t - } = options; - const originalTitle = (_a = document2 == null ? void 0 : document2.title) != null ? _a : ""; - const title = toRef2((_b = newTitle != null ? newTitle : document2 == null ? void 0 : document2.title) != null ? _b : null); - const isReadonly2 = newTitle && typeof newTitle === "function"; - function format(t) { - if (!("titleTemplate" in options)) - return t; - const template = options.titleTemplate || "%s"; - return typeof template === "function" ? template(t) : toValue(template).replace(/%s/g, t); - } - watch( - title, - (t, o) => { - if (t !== o && document2) - document2.title = format(typeof t === "string" ? t : ""); - }, - { immediate: true } - ); - if (options.observe && !options.titleTemplate && document2 && !isReadonly2) { - useMutationObserver( - (_c = document2.head) == null ? void 0 : _c.querySelector("title"), - () => { - if (document2 && document2.title !== title.value) - title.value = format(document2.title); - }, - { childList: true } - ); - } - tryOnBeforeUnmount(() => { - if (restoreOnUnmount) { - const restoredTitle = restoreOnUnmount(originalTitle, title.value || ""); - if (restoredTitle != null && document2) - document2.title = restoredTitle; - } - }); - return title; -} -var _TransitionPresets = { - easeInSine: [0.12, 0, 0.39, 0], - easeOutSine: [0.61, 1, 0.88, 1], - easeInOutSine: [0.37, 0, 0.63, 1], - easeInQuad: [0.11, 0, 0.5, 0], - easeOutQuad: [0.5, 1, 0.89, 1], - easeInOutQuad: [0.45, 0, 0.55, 1], - easeInCubic: [0.32, 0, 0.67, 0], - easeOutCubic: [0.33, 1, 0.68, 1], - easeInOutCubic: [0.65, 0, 0.35, 1], - easeInQuart: [0.5, 0, 0.75, 0], - easeOutQuart: [0.25, 1, 0.5, 1], - easeInOutQuart: [0.76, 0, 0.24, 1], - easeInQuint: [0.64, 0, 0.78, 0], - easeOutQuint: [0.22, 1, 0.36, 1], - easeInOutQuint: [0.83, 0, 0.17, 1], - easeInExpo: [0.7, 0, 0.84, 0], - easeOutExpo: [0.16, 1, 0.3, 1], - easeInOutExpo: [0.87, 0, 0.13, 1], - easeInCirc: [0.55, 0, 1, 0.45], - easeOutCirc: [0, 0.55, 0.45, 1], - easeInOutCirc: [0.85, 0, 0.15, 1], - easeInBack: [0.36, 0, 0.66, -0.56], - easeOutBack: [0.34, 1.56, 0.64, 1], - easeInOutBack: [0.68, -0.6, 0.32, 1.6] -}; -var TransitionPresets = Object.assign({}, { linear: identity }, _TransitionPresets); -function createEasingFunction([p0, p1, p2, p3]) { - const a = (a1, a2) => 1 - 3 * a2 + 3 * a1; - const b = (a1, a2) => 3 * a2 - 6 * a1; - const c = (a1) => 3 * a1; - const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t; - const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1); - const getTforX = (x) => { - let aGuessT = x; - for (let i = 0; i < 4; ++i) { - const currentSlope = getSlope(aGuessT, p0, p2); - if (currentSlope === 0) - return aGuessT; - const currentX = calcBezier(aGuessT, p0, p2) - x; - aGuessT -= currentX / currentSlope; - } - return aGuessT; - }; - return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3); -} -function lerp(a, b, alpha) { - return a + alpha * (b - a); -} -function toVec(t) { - return (typeof t === "number" ? [t] : t) || []; -} -function executeTransition(source, from, to, options = {}) { - var _a, _b; - const fromVal = toValue(from); - const toVal = toValue(to); - const v1 = toVec(fromVal); - const v2 = toVec(toVal); - const duration = (_a = toValue(options.duration)) != null ? _a : 1e3; - const startedAt = Date.now(); - const endAt = Date.now() + duration; - const trans = typeof options.transition === "function" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity; - const ease = typeof trans === "function" ? trans : createEasingFunction(trans); - return new Promise((resolve) => { - source.value = fromVal; - const tick = () => { - var _a2; - if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) { - resolve(); - return; - } - const now2 = Date.now(); - const alpha = ease((now2 - startedAt) / duration); - const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha)); - if (Array.isArray(source.value)) - source.value = arr.map((n, i) => { - var _a3, _b2; - return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha); - }); - else if (typeof source.value === "number") - source.value = arr[0]; - if (now2 < endAt) { - requestAnimationFrame(tick); - } else { - source.value = toVal; - resolve(); - } - }; - tick(); - }); -} -function useTransition(source, options = {}) { - let currentId = 0; - const sourceVal = () => { - const v = toValue(source); - return typeof v === "number" ? v : v.map(toValue); - }; - const outputRef = ref(sourceVal()); - watch(sourceVal, async (to) => { - var _a, _b; - if (toValue(options.disabled)) - return; - const id = ++currentId; - if (options.delay) - await promiseTimeout(toValue(options.delay)); - if (id !== currentId) - return; - const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to); - (_a = options.onStarted) == null ? void 0 : _a.call(options); - await executeTransition(outputRef, outputRef.value, toVal, { - ...options, - abort: () => { - var _a2; - return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options)); - } - }); - (_b = options.onFinished) == null ? void 0 : _b.call(options); - }, { deep: true }); - watch(() => toValue(options.disabled), (disabled) => { - if (disabled) { - currentId++; - outputRef.value = sourceVal(); - } - }); - tryOnScopeDispose(() => { - currentId++; - }); - return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value); -} -function useUrlSearchParams(mode = "history", options = {}) { - const { - initialValue = {}, - removeNullishValues = true, - removeFalsyValues = false, - write: enableWrite = true, - window: window2 = defaultWindow - } = options; - if (!window2) - return reactive(initialValue); - const state = reactive({}); - function getRawParams() { - if (mode === "history") { - return window2.location.search || ""; - } else if (mode === "hash") { - const hash = window2.location.hash || ""; - const index = hash.indexOf("?"); - return index > 0 ? hash.slice(index) : ""; - } else { - return (window2.location.hash || "").replace(/^#/, ""); - } - } - function constructQuery(params) { - const stringified = params.toString(); - if (mode === "history") - return `${stringified ? `?${stringified}` : ""}${window2.location.hash || ""}`; - if (mode === "hash-params") - return `${window2.location.search || ""}${stringified ? `#${stringified}` : ""}`; - const hash = window2.location.hash || "#"; - const index = hash.indexOf("?"); - if (index > 0) - return `${hash.slice(0, index)}${stringified ? `?${stringified}` : ""}`; - return `${hash}${stringified ? `?${stringified}` : ""}`; - } - function read() { - return new URLSearchParams(getRawParams()); - } - function updateState(params) { - const unusedKeys = new Set(Object.keys(state)); - for (const key of params.keys()) { - const paramsForKey = params.getAll(key); - state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || ""; - unusedKeys.delete(key); - } - Array.from(unusedKeys).forEach((key) => delete state[key]); - } - const { pause, resume } = watchPausable( - state, - () => { - const params = new URLSearchParams(""); - Object.keys(state).forEach((key) => { - const mapEntry = state[key]; - if (Array.isArray(mapEntry)) - mapEntry.forEach((value) => params.append(key, value)); - else if (removeNullishValues && mapEntry == null) - params.delete(key); - else if (removeFalsyValues && !mapEntry) - params.delete(key); - else - params.set(key, mapEntry); - }); - write(params); - }, - { deep: true } - ); - function write(params, shouldUpdate) { - pause(); - if (shouldUpdate) - updateState(params); - window2.history.replaceState( - window2.history.state, - window2.document.title, - window2.location.pathname + constructQuery(params) - ); - resume(); - } - function onChanged() { - if (!enableWrite) - return; - write(read(), true); - } - useEventListener(window2, "popstate", onChanged, false); - if (mode !== "history") - useEventListener(window2, "hashchange", onChanged, false); - const initial = read(); - if (initial.keys().next().value) - updateState(initial); - else - Object.assign(state, initialValue); - return state; -} -function useUserMedia(options = {}) { - var _a, _b; - const enabled = ref((_a = options.enabled) != null ? _a : false); - const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true); - const constraints = ref(options.constraints); - const { navigator = defaultNavigator } = options; - const isSupported = useSupported(() => { - var _a2; - return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia; - }); - const stream = shallowRef(); - function getDeviceOptions(type) { - switch (type) { - case "video": { - if (constraints.value) - return constraints.value.video || false; - break; - } - case "audio": { - if (constraints.value) - return constraints.value.audio || false; - break; - } - } - } - async function _start() { - if (!isSupported.value || stream.value) - return; - stream.value = await navigator.mediaDevices.getUserMedia({ - video: getDeviceOptions("video"), - audio: getDeviceOptions("audio") - }); - return stream.value; - } - function _stop() { - var _a2; - (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); - stream.value = void 0; - } - function stop() { - _stop(); - enabled.value = false; - } - async function start() { - await _start(); - if (stream.value) - enabled.value = true; - return stream.value; - } - async function restart() { - _stop(); - return await start(); - } - watch( - enabled, - (v) => { - if (v) - _start(); - else - _stop(); - }, - { immediate: true } - ); - watch( - constraints, - () => { - if (autoSwitch.value && stream.value) - restart(); - }, - { immediate: true } - ); - return { - isSupported, - stream, - start, - stop, - restart, - constraints, - enabled, - autoSwitch - }; -} -function useVModel(props, key, emit, options = {}) { - var _a, _b, _c, _d, _e; - const { - clone = false, - passive = false, - eventName, - deep = false, - defaultValue, - shouldEmit - } = options; - const vm = getCurrentInstance(); - const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy)); - let event = eventName; - if (!key) { - if (isVue22) { - const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model; - key = (modelOptions == null ? void 0 : modelOptions.value) || "value"; - if (!eventName) - event = (modelOptions == null ? void 0 : modelOptions.event) || "input"; - } else { - key = "modelValue"; - } - } - event = event || `update:${key.toString()}`; - const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val); - const getValue2 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue; - const triggerEmit = (value) => { - if (shouldEmit) { - if (shouldEmit(value)) - _emit(event, value); - } else { - _emit(event, value); - } - }; - if (passive) { - const initialValue = getValue2(); - const proxy = ref(initialValue); - let isUpdating = false; - watch( - () => props[key], - (v) => { - if (!isUpdating) { - isUpdating = true; - proxy.value = cloneFn(v); - nextTick(() => isUpdating = false); - } - } - ); - watch( - proxy, - (v) => { - if (!isUpdating && (v !== props[key] || deep)) - triggerEmit(v); - }, - { deep } - ); - return proxy; - } else { - return computed({ - get() { - return getValue2(); - }, - set(value) { - triggerEmit(value); - } - }); - } -} -function useVModels(props, emit, options = {}) { - const ret = {}; - for (const key in props) { - ret[key] = useVModel( - props, - key, - emit, - options - ); - } - return ret; -} -function useVibrate(options) { - const { - pattern = [], - interval = 0, - navigator = defaultNavigator - } = options || {}; - const isSupported = useSupported(() => typeof navigator !== "undefined" && "vibrate" in navigator); - const patternRef = toRef2(pattern); - let intervalControls; - const vibrate = (pattern2 = patternRef.value) => { - if (isSupported.value) - navigator.vibrate(pattern2); - }; - const stop = () => { - if (isSupported.value) - navigator.vibrate(0); - intervalControls == null ? void 0 : intervalControls.pause(); - }; - if (interval > 0) { - intervalControls = useIntervalFn( - vibrate, - interval, - { - immediate: false, - immediateCallback: false - } - ); - } - return { - isSupported, - pattern, - intervalControls, - vibrate, - stop - }; -} -function useVirtualList(list, options) { - const { containerStyle, wrapperProps, scrollTo: scrollTo2, calculateRange, currentList, containerRef } = "itemHeight" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list); - return { - list: currentList, - scrollTo: scrollTo2, - containerProps: { - ref: containerRef, - onScroll: () => { - calculateRange(); - }, - style: containerStyle - }, - wrapperProps - }; -} -function useVirtualListResources(list) { - const containerRef = ref(null); - const size = useElementSize(containerRef); - const currentList = ref([]); - const source = shallowRef(list); - const state = ref({ start: 0, end: 10 }); - return { state, source, currentList, size, containerRef }; -} -function createGetViewCapacity(state, source, itemSize) { - return (containerSize) => { - if (typeof itemSize === "number") - return Math.ceil(containerSize / itemSize); - const { start = 0 } = state.value; - let sum = 0; - let capacity = 0; - for (let i = start; i < source.value.length; i++) { - const size = itemSize(i); - sum += size; - capacity = i; - if (sum > containerSize) - break; - } - return capacity - start; - }; -} -function createGetOffset(source, itemSize) { - return (scrollDirection) => { - if (typeof itemSize === "number") - return Math.floor(scrollDirection / itemSize) + 1; - let sum = 0; - let offset = 0; - for (let i = 0; i < source.value.length; i++) { - const size = itemSize(i); - sum += size; - if (sum >= scrollDirection) { - offset = i; - break; - } - } - return offset + 1; - }; -} -function createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) { - return () => { - const element = containerRef.value; - if (element) { - const offset = getOffset(type === "vertical" ? element.scrollTop : element.scrollLeft); - const viewCapacity = getViewCapacity(type === "vertical" ? element.clientHeight : element.clientWidth); - const from = offset - overscan; - const to = offset + viewCapacity + overscan; - state.value = { - start: from < 0 ? 0 : from, - end: to > source.value.length ? source.value.length : to - }; - currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({ - data: ele, - index: index + state.value.start - })); - } - }; -} -function createGetDistance(itemSize, source) { - return (index) => { - if (typeof itemSize === "number") { - const size2 = index * itemSize; - return size2; - } - const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0); - return size; - }; -} -function useWatchForSizes(size, list, calculateRange) { - watch([size.width, size.height, list], () => { - calculateRange(); - }); -} -function createComputedTotalSize(itemSize, source) { - return computed(() => { - if (typeof itemSize === "number") - return source.value.length * itemSize; - return source.value.reduce((sum, _, index) => sum + itemSize(index), 0); - }); -} -var scrollToDictionaryForElementScrollKey = { - horizontal: "scrollLeft", - vertical: "scrollTop" -}; -function createScrollTo(type, calculateRange, getDistance, containerRef) { - return (index) => { - if (containerRef.value) { - containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index); - calculateRange(); - } - }; -} -function useHorizontalVirtualList(options, list) { - const resources = useVirtualListResources(list); - const { state, source, currentList, size, containerRef } = resources; - const containerStyle = { overflowX: "auto" }; - const { itemWidth, overscan = 5 } = options; - const getViewCapacity = createGetViewCapacity(state, source, itemWidth); - const getOffset = createGetOffset(source, itemWidth); - const calculateRange = createCalculateRange("horizontal", overscan, getOffset, getViewCapacity, resources); - const getDistanceLeft = createGetDistance(itemWidth, source); - const offsetLeft = computed(() => getDistanceLeft(state.value.start)); - const totalWidth = createComputedTotalSize(itemWidth, source); - useWatchForSizes(size, list, calculateRange); - const scrollTo2 = createScrollTo("horizontal", calculateRange, getDistanceLeft, containerRef); - const wrapperProps = computed(() => { - return { - style: { - height: "100%", - width: `${totalWidth.value - offsetLeft.value}px`, - marginLeft: `${offsetLeft.value}px`, - display: "flex" - } - }; - }); - return { - scrollTo: scrollTo2, - calculateRange, - wrapperProps, - containerStyle, - currentList, - containerRef - }; -} -function useVerticalVirtualList(options, list) { - const resources = useVirtualListResources(list); - const { state, source, currentList, size, containerRef } = resources; - const containerStyle = { overflowY: "auto" }; - const { itemHeight, overscan = 5 } = options; - const getViewCapacity = createGetViewCapacity(state, source, itemHeight); - const getOffset = createGetOffset(source, itemHeight); - const calculateRange = createCalculateRange("vertical", overscan, getOffset, getViewCapacity, resources); - const getDistanceTop = createGetDistance(itemHeight, source); - const offsetTop = computed(() => getDistanceTop(state.value.start)); - const totalHeight = createComputedTotalSize(itemHeight, source); - useWatchForSizes(size, list, calculateRange); - const scrollTo2 = createScrollTo("vertical", calculateRange, getDistanceTop, containerRef); - const wrapperProps = computed(() => { - return { - style: { - width: "100%", - height: `${totalHeight.value - offsetTop.value}px`, - marginTop: `${offsetTop.value}px` - } - }; - }); - return { - calculateRange, - scrollTo: scrollTo2, - containerStyle, - wrapperProps, - currentList, - containerRef - }; -} -function useWakeLock(options = {}) { - const { - navigator = defaultNavigator, - document: document2 = defaultDocument - } = options; - let wakeLock; - const isSupported = useSupported(() => navigator && "wakeLock" in navigator); - const isActive = ref(false); - async function onVisibilityChange() { - if (!isSupported.value || !wakeLock) - return; - if (document2 && document2.visibilityState === "visible") - wakeLock = await navigator.wakeLock.request("screen"); - isActive.value = !wakeLock.released; - } - if (document2) - useEventListener(document2, "visibilitychange", onVisibilityChange, { passive: true }); - async function request(type) { - if (!isSupported.value) - return; - wakeLock = await navigator.wakeLock.request(type); - isActive.value = !wakeLock.released; - } - async function release() { - if (!isSupported.value || !wakeLock) - return; - await wakeLock.release(); - isActive.value = !wakeLock.released; - wakeLock = null; - } - return { - isSupported, - isActive, - request, - release - }; -} -function useWebNotification(options = {}) { - const { - window: window2 = defaultWindow, - requestPermissions: _requestForPermissions = true - } = options; - const defaultWebNotificationOptions = options; - const isSupported = useSupported(() => !!window2 && "Notification" in window2); - const permissionGranted = ref(isSupported.value && "permission" in Notification && Notification.permission === "granted"); - const notification = ref(null); - const ensurePermissions = async () => { - if (!isSupported.value) - return; - if (!permissionGranted.value && Notification.permission !== "denied") { - const result = await Notification.requestPermission(); - if (result === "granted") - permissionGranted.value = true; - } - return permissionGranted.value; - }; - const { on: onClick, trigger: clickTrigger } = createEventHook(); - const { on: onShow, trigger: showTrigger } = createEventHook(); - const { on: onError, trigger: errorTrigger } = createEventHook(); - const { on: onClose, trigger: closeTrigger } = createEventHook(); - const show = async (overrides) => { - if (!isSupported.value || !permissionGranted.value) - return; - const options2 = Object.assign({}, defaultWebNotificationOptions, overrides); - notification.value = new Notification(options2.title || "", options2); - notification.value.onclick = clickTrigger; - notification.value.onshow = showTrigger; - notification.value.onerror = errorTrigger; - notification.value.onclose = closeTrigger; - return notification.value; - }; - const close = () => { - if (notification.value) - notification.value.close(); - notification.value = null; - }; - if (_requestForPermissions) - tryOnMounted(ensurePermissions); - tryOnScopeDispose(close); - if (isSupported.value && window2) { - const document2 = window2.document; - useEventListener(document2, "visibilitychange", (e) => { - e.preventDefault(); - if (document2.visibilityState === "visible") { - close(); - } - }); - } - return { - isSupported, - notification, - ensurePermissions, - permissionGranted, - show, - close, - onClick, - onShow, - onError, - onClose - }; -} -var DEFAULT_PING_MESSAGE = "ping"; -function resolveNestedOptions(options) { - if (options === true) - return {}; - return options; -} -function useWebSocket(url, options = {}) { - const { - onConnected, - onDisconnected, - onError, - onMessage, - immediate = true, - autoClose = true, - protocols = [] - } = options; - const data = ref(null); - const status = ref("CLOSED"); - const wsRef = ref(); - const urlRef = toRef2(url); - let heartbeatPause; - let heartbeatResume; - let explicitlyClosed = false; - let retried = 0; - let bufferedData = []; - let pongTimeoutWait; - const _sendBuffer = () => { - if (bufferedData.length && wsRef.value && status.value === "OPEN") { - for (const buffer of bufferedData) - wsRef.value.send(buffer); - bufferedData = []; - } - }; - const resetHeartbeat = () => { - clearTimeout(pongTimeoutWait); - pongTimeoutWait = void 0; - }; - const close = (code = 1e3, reason) => { - if (!isClient || !wsRef.value) - return; - explicitlyClosed = true; - resetHeartbeat(); - heartbeatPause == null ? void 0 : heartbeatPause(); - wsRef.value.close(code, reason); - }; - const send = (data2, useBuffer = true) => { - if (!wsRef.value || status.value !== "OPEN") { - if (useBuffer) - bufferedData.push(data2); - return false; - } - _sendBuffer(); - wsRef.value.send(data2); - return true; - }; - const _init = () => { - if (explicitlyClosed || typeof urlRef.value === "undefined") - return; - const ws = new WebSocket(urlRef.value, protocols); - wsRef.value = ws; - status.value = "CONNECTING"; - ws.onopen = () => { - status.value = "OPEN"; - onConnected == null ? void 0 : onConnected(ws); - heartbeatResume == null ? void 0 : heartbeatResume(); - _sendBuffer(); - }; - ws.onclose = (ev) => { - status.value = "CLOSED"; - wsRef.value = void 0; - onDisconnected == null ? void 0 : onDisconnected(ws, ev); - if (!explicitlyClosed && options.autoReconnect) { - const { - retries = -1, - delay = 1e3, - onFailed - } = resolveNestedOptions(options.autoReconnect); - retried += 1; - if (typeof retries === "number" && (retries < 0 || retried < retries)) - setTimeout(_init, delay); - else if (typeof retries === "function" && retries()) - setTimeout(_init, delay); - else - onFailed == null ? void 0 : onFailed(); - } - }; - ws.onerror = (e) => { - onError == null ? void 0 : onError(ws, e); - }; - ws.onmessage = (e) => { - if (options.heartbeat) { - resetHeartbeat(); - const { - message = DEFAULT_PING_MESSAGE - } = resolveNestedOptions(options.heartbeat); - if (e.data === message) - return; - } - data.value = e.data; - onMessage == null ? void 0 : onMessage(ws, e); - }; - }; - if (options.heartbeat) { - const { - message = DEFAULT_PING_MESSAGE, - interval = 1e3, - pongTimeout = 1e3 - } = resolveNestedOptions(options.heartbeat); - const { pause, resume } = useIntervalFn( - () => { - send(message, false); - if (pongTimeoutWait != null) - return; - pongTimeoutWait = setTimeout(() => { - close(); - explicitlyClosed = false; - }, pongTimeout); - }, - interval, - { immediate: false } - ); - heartbeatPause = pause; - heartbeatResume = resume; - } - if (autoClose) { - if (isClient) - useEventListener("beforeunload", () => close()); - tryOnScopeDispose(close); - } - const open = () => { - if (!isClient && !isWorker) - return; - close(); - explicitlyClosed = false; - retried = 0; - _init(); - }; - if (immediate) - watch(urlRef, open, { immediate: true }); - return { - data, - status, - close, - send, - open, - ws: wsRef - }; -} -function useWebWorker(arg0, workerOptions, options) { - const { - window: window2 = defaultWindow - } = options != null ? options : {}; - const data = ref(null); - const worker = shallowRef(); - const post = (...args) => { - if (!worker.value) - return; - worker.value.postMessage(...args); - }; - const terminate = function terminate2() { - if (!worker.value) - return; - worker.value.terminate(); - }; - if (window2) { - if (typeof arg0 === "string") - worker.value = new Worker(arg0, workerOptions); - else if (typeof arg0 === "function") - worker.value = arg0(); - else - worker.value = arg0; - worker.value.onmessage = (e) => { - data.value = e.data; - }; - tryOnScopeDispose(() => { - if (worker.value) - worker.value.terminate(); - }); - } - return { - data, - post, - terminate, - worker - }; -} -function jobRunner(userFunc) { - return (e) => { - const userFuncArgs = e.data[0]; - return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => { - postMessage(["SUCCESS", result]); - }).catch((error) => { - postMessage(["ERROR", error]); - }); - }; -} -function depsParser(deps) { - if (deps.length === 0) - return ""; - const depsString = deps.map((dep) => `'${dep}'`).toString(); - return `importScripts(${depsString})`; -} -function createWorkerBlobUrl(fn, deps) { - const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`; - const blob = new Blob([blobCode], { type: "text/javascript" }); - const url = URL.createObjectURL(blob); - return url; -} -function useWebWorkerFn(fn, options = {}) { - const { - dependencies = [], - timeout, - window: window2 = defaultWindow - } = options; - const worker = ref(); - const workerStatus = ref("PENDING"); - const promise = ref({}); - const timeoutId = ref(); - const workerTerminate = (status = "PENDING") => { - if (worker.value && worker.value._url && window2) { - worker.value.terminate(); - URL.revokeObjectURL(worker.value._url); - promise.value = {}; - worker.value = void 0; - window2.clearTimeout(timeoutId.value); - workerStatus.value = status; - } - }; - workerTerminate(); - tryOnScopeDispose(workerTerminate); - const generateWorker = () => { - const blobUrl = createWorkerBlobUrl(fn, dependencies); - const newWorker = new Worker(blobUrl); - newWorker._url = blobUrl; - newWorker.onmessage = (e) => { - const { resolve = () => { - }, reject = () => { - } } = promise.value; - const [status, result] = e.data; - switch (status) { - case "SUCCESS": - resolve(result); - workerTerminate(status); - break; - default: - reject(result); - workerTerminate("ERROR"); - break; - } - }; - newWorker.onerror = (e) => { - const { reject = () => { - } } = promise.value; - e.preventDefault(); - reject(e); - workerTerminate("ERROR"); - }; - if (timeout) { - timeoutId.value = setTimeout( - () => workerTerminate("TIMEOUT_EXPIRED"), - timeout - ); - } - return newWorker; - }; - const callWorker = (...fnArgs) => new Promise((resolve, reject) => { - promise.value = { - resolve, - reject - }; - worker.value && worker.value.postMessage([[...fnArgs]]); - workerStatus.value = "RUNNING"; - }); - const workerFn = (...fnArgs) => { - if (workerStatus.value === "RUNNING") { - console.error( - "[useWebWorkerFn] You can only run one instance of the worker at a time." - ); - return Promise.reject(); - } - worker.value = generateWorker(); - return callWorker(...fnArgs); - }; - return { - workerFn, - workerStatus, - workerTerminate - }; -} -function useWindowFocus(options = {}) { - const { window: window2 = defaultWindow } = options; - if (!window2) - return ref(false); - const focused = ref(window2.document.hasFocus()); - useEventListener(window2, "blur", () => { - focused.value = false; - }); - useEventListener(window2, "focus", () => { - focused.value = true; - }); - return focused; -} -function useWindowScroll(options = {}) { - const { window: window2 = defaultWindow, behavior = "auto" } = options; - if (!window2) { - return { - x: ref(0), - y: ref(0) - }; - } - const internalX = ref(window2.scrollX); - const internalY = ref(window2.scrollY); - const x = computed({ - get() { - return internalX.value; - }, - set(x2) { - scrollTo({ left: x2, behavior }); - } - }); - const y = computed({ - get() { - return internalY.value; - }, - set(y2) { - scrollTo({ top: y2, behavior }); - } - }); - useEventListener( - window2, - "scroll", - () => { - internalX.value = window2.scrollX; - internalY.value = window2.scrollY; - }, - { - capture: false, - passive: true - } - ); - return { x, y }; -} -function useWindowSize(options = {}) { - const { - window: window2 = defaultWindow, - initialWidth = Number.POSITIVE_INFINITY, - initialHeight = Number.POSITIVE_INFINITY, - listenOrientation = true, - includeScrollbar = true - } = options; - const width = ref(initialWidth); - const height = ref(initialHeight); - const update = () => { - if (window2) { - if (includeScrollbar) { - width.value = window2.innerWidth; - height.value = window2.innerHeight; - } else { - width.value = window2.document.documentElement.clientWidth; - height.value = window2.document.documentElement.clientHeight; - } - } - }; - update(); - tryOnMounted(update); - useEventListener("resize", update, { passive: true }); - if (listenOrientation) { - const matches = useMediaQuery("(orientation: portrait)"); - watch(matches, () => update()); - } - return { width, height }; -} -export { - DefaultMagicKeysAliasMap, - StorageSerializers, - TransitionPresets, - assert, - computedAsync as asyncComputed, - refAutoReset as autoResetRef, - breakpointsAntDesign, - breakpointsBootstrapV5, - breakpointsMasterCss, - breakpointsPrimeFlex, - breakpointsQuasar, - breakpointsSematic, - breakpointsTailwind, - breakpointsVuetify, - bypassFilter, - camelize, - clamp, - cloneFnJSON, - computedAsync, - computedEager, - computedInject, - computedWithControl, - containsProp, - computedWithControl as controlledComputed, - controlledRef, - createEventHook, - createFetch, - createFilterWrapper, - createGlobalState, - createInjectionState, - reactify as createReactiveFn, - createReusableTemplate, - createSharedComposable, - createSingletonPromise, - createTemplatePromise, - createUnrefFn, - customStorageEventName, - debounceFilter, - refDebounced as debouncedRef, - watchDebounced as debouncedWatch, - defaultDocument, - defaultLocation, - defaultNavigator, - defaultWindow, - directiveHooks, - computedEager as eagerComputed, - executeTransition, - extendRef, - formatDate, - formatTimeAgo, - get, - getLifeCycleTarget, - getSSRHandler, - hasOwn, - hyphenate, - identity, - watchIgnorable as ignorableWatch, - increaseWithUnit, - injectLocal, - invoke, - isClient, - isDef, - isDefined, - isIOS, - isObject, - isWorker, - makeDestructurable, - mapGamepadToXbox360Controller, - noop, - normalizeDate, - notNullish, - now, - objectEntries, - objectOmit, - objectPick, - onClickOutside, - onKeyDown, - onKeyPressed, - onKeyStroke, - onKeyUp, - onLongPress, - onStartTyping, - pausableFilter, - watchPausable as pausableWatch, - promiseTimeout, - provideLocal, - rand, - reactify, - reactifyObject, - reactiveComputed, - reactiveOmit, - reactivePick, - refAutoReset, - refDebounced, - refDefault, - refThrottled, - refWithControl, - resolveRef, - resolveUnref, - set2 as set, - setSSRHandler, - syncRef, - syncRefs, - templateRef, - throttleFilter, - refThrottled as throttledRef, - watchThrottled as throttledWatch, - timestamp, - toReactive, - toRef2 as toRef, - toRefs2 as toRefs, - toValue, - tryOnBeforeMount, - tryOnBeforeUnmount, - tryOnMounted, - tryOnScopeDispose, - tryOnUnmounted, - unrefElement, - until, - useActiveElement, - useAnimate, - useArrayDifference, - useArrayEvery, - useArrayFilter, - useArrayFind, - useArrayFindIndex, - useArrayFindLast, - useArrayIncludes, - useArrayJoin, - useArrayMap, - useArrayReduce, - useArraySome, - useArrayUnique, - useAsyncQueue, - useAsyncState, - useBase64, - useBattery, - useBluetooth, - useBreakpoints, - useBroadcastChannel, - useBrowserLocation, - useCached, - useClipboard, - useClipboardItems, - useCloned, - useColorMode, - useConfirmDialog, - useCounter, - useCssVar, - useCurrentElement, - useCycleList, - useDark, - useDateFormat, - refDebounced as useDebounce, - useDebounceFn, - useDebouncedRefHistory, - useDeviceMotion, - useDeviceOrientation, - useDevicePixelRatio, - useDevicesList, - useDisplayMedia, - useDocumentVisibility, - useDraggable, - useDropZone, - useElementBounding, - useElementByPoint, - useElementHover, - useElementSize, - useElementVisibility, - useEventBus, - useEventListener, - useEventSource, - useEyeDropper, - useFavicon, - useFetch, - useFileDialog, - useFileSystemAccess, - useFocus, - useFocusWithin, - useFps, - useFullscreen, - useGamepad, - useGeolocation, - useIdle, - useImage, - useInfiniteScroll, - useIntersectionObserver, - useInterval, - useIntervalFn, - useKeyModifier, - useLastChanged, - useLocalStorage, - useMagicKeys, - useManualRefHistory, - useMediaControls, - useMediaQuery, - useMemoize, - useMemory, - useMounted, - useMouse, - useMouseInElement, - useMousePressed, - useMutationObserver, - useNavigatorLanguage, - useNetwork, - useNow, - useObjectUrl, - useOffsetPagination, - useOnline, - usePageLeave, - useParallax, - useParentElement, - usePerformanceObserver, - usePermission, - usePointer, - usePointerLock, - usePointerSwipe, - usePreferredColorScheme, - usePreferredContrast, - usePreferredDark, - usePreferredLanguages, - usePreferredReducedMotion, - usePrevious, - useRafFn, - useRefHistory, - useResizeObserver, - useScreenOrientation, - useScreenSafeArea, - useScriptTag, - useScroll, - useScrollLock, - useSessionStorage, - useShare, - useSorted, - useSpeechRecognition, - useSpeechSynthesis, - useStepper, - useStorage, - useStorageAsync, - useStyleTag, - useSupported, - useSwipe, - useTemplateRefsList, - useTextDirection, - useTextSelection, - useTextareaAutosize, - refThrottled as useThrottle, - useThrottleFn, - useThrottledRefHistory, - useTimeAgo, - useTimeout, - useTimeoutFn, - useTimeoutPoll, - useTimestamp, - useTitle, - useToNumber, - useToString, - useToggle, - useTransition, - useUrlSearchParams, - useUserMedia, - useVModel, - useVModels, - useVibrate, - useVirtualList, - useWakeLock, - useWebNotification, - useWebSocket, - useWebWorker, - useWebWorkerFn, - useWindowFocus, - useWindowScroll, - useWindowSize, - watchArray, - watchAtMost, - watchDebounced, - watchDeep, - watchIgnorable, - watchImmediate, - watchOnce, - watchPausable, - watchThrottled, - watchTriggerable, - watchWithFilter, - whenever -}; -//# sourceMappingURL=@vueuse_core.js.map diff --git a/.vuepress/.cache/deps/@vueuse_core.js.map b/.vuepress/.cache/deps/@vueuse_core.js.map deleted file mode 100644 index dec659c18..000000000 --- a/.vuepress/.cache/deps/@vueuse_core.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs", "../../../../node_modules/@vueuse/shared/index.mjs", "../../../../node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs", "../../../../node_modules/@vueuse/core/index.mjs"], - "sourcesContent": ["import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n", "import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n", "import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n", "import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, notNullish, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n if (getCurrentInstance()) {\n onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - (previousFrameTimestamp || timestamp);\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[k]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return Object.assign(shortcutMethods, {\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && permissionRead.value !== \"denied\") {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && permissionWrite.value !== \"denied\")\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), containerRect.width - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), containerRect.height - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold: 0\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n ...gamepad,\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, initialOverflow);\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n var _a;\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : \"\";\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style.height = \"1px\";\n textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style.height = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n"], - "mappings": "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", - "names": ["get", "set", "ref", "keys", "invoke", "toRef", "toRefs", "isVue2", "isVue3", "set", "isVue3", "events", "window", "document", "timestamp", "getValue", "defaults", "toRef", "set", "onUpdated", "preventDefault", "toRefs", "now", "scrollTo", "keys", "isVue2", "get", "isReadonly"] -} diff --git a/.vuepress/.cache/deps/_metadata.json b/.vuepress/.cache/deps/_metadata.json deleted file mode 100644 index 9714883d0..000000000 --- a/.vuepress/.cache/deps/_metadata.json +++ /dev/null @@ -1,151 +0,0 @@ -{ - "hash": "a477dfe0", - "configHash": "25ac1c63", - "lockfileHash": "de020344", - "browserHash": "632a2964", - "optimized": { - "mermaid": { - "src": "../../../../node_modules/mermaid/dist/mermaid.core.mjs", - "file": "mermaid.js", - "fileHash": "5a8f5398", - "needsInterop": false - }, - "@vueuse/core": { - "src": "../../../../node_modules/@vueuse/core/index.mjs", - "file": "@vueuse_core.js", - "fileHash": "3bf8c04c", - "needsInterop": false - }, - "@vue/devtools-api": { - "src": "../../../../node_modules/@vue/devtools-api/lib/esm/index.js", - "file": "@vue_devtools-api.js", - "fileHash": "ba8ee6de", - "needsInterop": false - }, - "@vuepress/shared": { - "src": "../../../../node_modules/@vuepress/shared/dist/index.js", - "file": "@vuepress_shared.js", - "fileHash": "45b6f147", - "needsInterop": false - }, - "vue": { - "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", - "file": "vue.js", - "fileHash": "48a0fcf8", - "needsInterop": false - }, - "vue-router": { - "src": "../../../../node_modules/vue-router/dist/vue-router.esm-bundler.js", - "file": "vue-router.js", - "fileHash": "d6c7bf21", - "needsInterop": false - } - }, - "chunks": { - "timeline-definition-732a2638-HH2EUDI5": { - "file": "timeline-definition-732a2638-HH2EUDI5.js" - }, - "mindmap-definition-617cf8dd-Z54F4QIY": { - "file": "mindmap-definition-617cf8dd-Z54F4QIY.js" - }, - "sankeyDiagram-6db3d513-EPD5B7EB": { - "file": "sankeyDiagram-6db3d513-EPD5B7EB.js" - }, - "requirementDiagram-4038b16c-DFS7JDTC": { - "file": "requirementDiagram-4038b16c-DFS7JDTC.js" - }, - "sequenceDiagram-465a088a-TV3IEBQJ": { - "file": "sequenceDiagram-465a088a-TV3IEBQJ.js" - }, - "classDiagram-48ab76fb-5VDHWXIK": { - "file": "classDiagram-48ab76fb-5VDHWXIK.js" - }, - "classDiagram-v2-8ecb0bfc-ITO7QYAQ": { - "file": "classDiagram-v2-8ecb0bfc-ITO7QYAQ.js" - }, - "chunk-LEUM4LB3": { - "file": "chunk-LEUM4LB3.js" - }, - "stateDiagram-b620d43f-DF4HJI3T": { - "file": "stateDiagram-b620d43f-DF4HJI3T.js" - }, - "stateDiagram-v2-2671c3d1-7DKG2X5N": { - "file": "stateDiagram-v2-2671c3d1-7DKG2X5N.js" - }, - "chunk-O6QBOGFL": { - "file": "chunk-O6QBOGFL.js" - }, - "journeyDiagram-deae3313-2WMJCSGI": { - "file": "journeyDiagram-deae3313-2WMJCSGI.js" - }, - "flowchart-elk-definition-e097735e-DFDQS2GD": { - "file": "flowchart-elk-definition-e097735e-DFDQS2GD.js" - }, - "flowDiagram-v2-2f8f667a-H2Z4FXNM": { - "file": "flowDiagram-v2-2f8f667a-H2Z4FXNM.js" - }, - "erDiagram-9cfc3649-7UJHKQCG": { - "file": "erDiagram-9cfc3649-7UJHKQCG.js" - }, - "gitGraphDiagram-6b463803-7BG24S6L": { - "file": "gitGraphDiagram-6b463803-7BG24S6L.js" - }, - "ganttDiagram-db6931fb-7LNKEA3N": { - "file": "ganttDiagram-db6931fb-7LNKEA3N.js" - }, - "infoDiagram-a336098b-NXZLKPTX": { - "file": "infoDiagram-a336098b-NXZLKPTX.js" - }, - "pieDiagram-a5166659-DTYQJWHS": { - "file": "pieDiagram-a5166659-DTYQJWHS.js" - }, - "quadrantDiagram-6c355bbc-4YFRCJXD": { - "file": "quadrantDiagram-6c355bbc-4YFRCJXD.js" - }, - "xychartDiagram-f746c04c-HIROG2A6": { - "file": "xychartDiagram-f746c04c-HIROG2A6.js" - }, - "chunk-J4VLYDXT": { - "file": "chunk-J4VLYDXT.js" - }, - "chunk-OQPQLNES": { - "file": "chunk-OQPQLNES.js" - }, - "chunk-F6L62Q4Q": { - "file": "chunk-F6L62Q4Q.js" - }, - "c4Diagram-817c8e44-46XEDHFI": { - "file": "c4Diagram-817c8e44-46XEDHFI.js" - }, - "chunk-UV6QJ4UL": { - "file": "chunk-UV6QJ4UL.js" - }, - "flowDiagram-61eb444c-STRM2QHE": { - "file": "flowDiagram-61eb444c-STRM2QHE.js" - }, - "chunk-CGPJAAKM": { - "file": "chunk-CGPJAAKM.js" - }, - "chunk-6ESK7MQZ": { - "file": "chunk-6ESK7MQZ.js" - }, - "chunk-THAGWN3R": { - "file": "chunk-THAGWN3R.js" - }, - "chunk-ULQHWUKP": { - "file": "chunk-ULQHWUKP.js" - }, - "chunk-C55JCHDM": { - "file": "chunk-C55JCHDM.js" - }, - "chunk-TQDBUXIK": { - "file": "chunk-TQDBUXIK.js" - }, - "chunk-MILIJ3F3": { - "file": "chunk-MILIJ3F3.js" - }, - "chunk-3EJPJMEH": { - "file": "chunk-3EJPJMEH.js" - } - } -} \ No newline at end of file diff --git a/.vuepress/.cache/deps/c4Diagram-817c8e44-46XEDHFI.js b/.vuepress/.cache/deps/c4Diagram-817c8e44-46XEDHFI.js deleted file mode 100644 index dde85ade7..000000000 --- a/.vuepress/.cache/deps/c4Diagram-817c8e44-46XEDHFI.js +++ /dev/null @@ -1,2490 +0,0 @@ -import { - drawRect, - getNoteRect -} from "./chunk-UV6QJ4UL.js"; -import { - assignWithDepth$1, - calculateTextHeight, - calculateTextWidth, - common$1, - configureSvgSize, - getAccDescription, - getAccTitle, - getConfig, - log$1, - require_dayjs_min, - require_dist, - sanitizeText$2, - select_default, - setAccDescription, - setAccTitle, - wrapLabel -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/c4Diagram-817c8e44.js -var import_sanitize_url = __toESM(require_dist(), 1); -var import_dayjs = __toESM(require_dayjs_min(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "direction_tb": 6, "direction_bt": 7, "direction_rl": 8, "direction_lr": 9, "graphConfig": 10, "C4_CONTEXT": 11, "NEWLINE": 12, "statements": 13, "EOF": 14, "C4_CONTAINER": 15, "C4_COMPONENT": 16, "C4_DYNAMIC": 17, "C4_DEPLOYMENT": 18, "otherStatements": 19, "diagramStatements": 20, "otherStatement": 21, "title": 22, "accDescription": 23, "acc_title": 24, "acc_title_value": 25, "acc_descr": 26, "acc_descr_value": 27, "acc_descr_multiline_value": 28, "boundaryStatement": 29, "boundaryStartStatement": 30, "boundaryStopStatement": 31, "boundaryStart": 32, "LBRACE": 33, "ENTERPRISE_BOUNDARY": 34, "attributes": 35, "SYSTEM_BOUNDARY": 36, "BOUNDARY": 37, "CONTAINER_BOUNDARY": 38, "NODE": 39, "NODE_L": 40, "NODE_R": 41, "RBRACE": 42, "diagramStatement": 43, "PERSON": 44, "PERSON_EXT": 45, "SYSTEM": 46, "SYSTEM_DB": 47, "SYSTEM_QUEUE": 48, "SYSTEM_EXT": 49, "SYSTEM_EXT_DB": 50, "SYSTEM_EXT_QUEUE": 51, "CONTAINER": 52, "CONTAINER_DB": 53, "CONTAINER_QUEUE": 54, "CONTAINER_EXT": 55, "CONTAINER_EXT_DB": 56, "CONTAINER_EXT_QUEUE": 57, "COMPONENT": 58, "COMPONENT_DB": 59, "COMPONENT_QUEUE": 60, "COMPONENT_EXT": 61, "COMPONENT_EXT_DB": 62, "COMPONENT_EXT_QUEUE": 63, "REL": 64, "BIREL": 65, "REL_U": 66, "REL_D": 67, "REL_L": 68, "REL_R": 69, "REL_B": 70, "REL_INDEX": 71, "UPDATE_EL_STYLE": 72, "UPDATE_REL_STYLE": 73, "UPDATE_LAYOUT_CONFIG": 74, "attribute": 75, "STR": 76, "STR_KEY": 77, "STR_VALUE": 78, "ATTRIBUTE": 79, "ATTRIBUTE_EMPTY": 80, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 6: "direction_tb", 7: "direction_bt", 8: "direction_rl", 9: "direction_lr", 11: "C4_CONTEXT", 12: "NEWLINE", 14: "EOF", 15: "C4_CONTAINER", 16: "C4_COMPONENT", 17: "C4_DYNAMIC", 18: "C4_DEPLOYMENT", 22: "title", 23: "accDescription", 24: "acc_title", 25: "acc_title_value", 26: "acc_descr", 27: "acc_descr_value", 28: "acc_descr_multiline_value", 33: "LBRACE", 34: "ENTERPRISE_BOUNDARY", 36: "SYSTEM_BOUNDARY", 37: "BOUNDARY", 38: "CONTAINER_BOUNDARY", 39: "NODE", 40: "NODE_L", 41: "NODE_R", 42: "RBRACE", 44: "PERSON", 45: "PERSON_EXT", 46: "SYSTEM", 47: "SYSTEM_DB", 48: "SYSTEM_QUEUE", 49: "SYSTEM_EXT", 50: "SYSTEM_EXT_DB", 51: "SYSTEM_EXT_QUEUE", 52: "CONTAINER", 53: "CONTAINER_DB", 54: "CONTAINER_QUEUE", 55: "CONTAINER_EXT", 56: "CONTAINER_EXT_DB", 57: "CONTAINER_EXT_QUEUE", 58: "COMPONENT", 59: "COMPONENT_DB", 60: "COMPONENT_QUEUE", 61: "COMPONENT_EXT", 62: "COMPONENT_EXT_DB", 63: "COMPONENT_EXT_QUEUE", 64: "REL", 65: "BIREL", 66: "REL_U", 67: "REL_D", 68: "REL_L", 69: "REL_R", 70: "REL_B", 71: "REL_INDEX", 72: "UPDATE_EL_STYLE", 73: "UPDATE_REL_STYLE", 74: "UPDATE_LAYOUT_CONFIG", 76: "STR", 77: "STR_KEY", 78: "STR_VALUE", 79: "ATTRIBUTE", 80: "ATTRIBUTE_EMPTY" }, - productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 3: - yy.setDirection("TB"); - break; - case 4: - yy.setDirection("BT"); - break; - case 5: - yy.setDirection("RL"); - break; - case 6: - yy.setDirection("LR"); - break; - case 8: - case 9: - case 10: - case 11: - case 12: - yy.setC4Type($$[$0 - 3]); - break; - case 19: - yy.setTitle($$[$0].substring(6)); - this.$ = $$[$0].substring(6); - break; - case 20: - yy.setAccDescription($$[$0].substring(15)); - this.$ = $$[$0].substring(15); - break; - case 21: - this.$ = $$[$0].trim(); - yy.setTitle(this.$); - break; - case 22: - case 23: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 28: - case 29: - $$[$0].splice(2, 0, "ENTERPRISE"); - yy.addPersonOrSystemBoundary(...$$[$0]); - this.$ = $$[$0]; - break; - case 30: - yy.addPersonOrSystemBoundary(...$$[$0]); - this.$ = $$[$0]; - break; - case 31: - $$[$0].splice(2, 0, "CONTAINER"); - yy.addContainerBoundary(...$$[$0]); - this.$ = $$[$0]; - break; - case 32: - yy.addDeploymentNode("node", ...$$[$0]); - this.$ = $$[$0]; - break; - case 33: - yy.addDeploymentNode("nodeL", ...$$[$0]); - this.$ = $$[$0]; - break; - case 34: - yy.addDeploymentNode("nodeR", ...$$[$0]); - this.$ = $$[$0]; - break; - case 35: - yy.popBoundaryParseStack(); - break; - case 39: - yy.addPersonOrSystem("person", ...$$[$0]); - this.$ = $$[$0]; - break; - case 40: - yy.addPersonOrSystem("external_person", ...$$[$0]); - this.$ = $$[$0]; - break; - case 41: - yy.addPersonOrSystem("system", ...$$[$0]); - this.$ = $$[$0]; - break; - case 42: - yy.addPersonOrSystem("system_db", ...$$[$0]); - this.$ = $$[$0]; - break; - case 43: - yy.addPersonOrSystem("system_queue", ...$$[$0]); - this.$ = $$[$0]; - break; - case 44: - yy.addPersonOrSystem("external_system", ...$$[$0]); - this.$ = $$[$0]; - break; - case 45: - yy.addPersonOrSystem("external_system_db", ...$$[$0]); - this.$ = $$[$0]; - break; - case 46: - yy.addPersonOrSystem("external_system_queue", ...$$[$0]); - this.$ = $$[$0]; - break; - case 47: - yy.addContainer("container", ...$$[$0]); - this.$ = $$[$0]; - break; - case 48: - yy.addContainer("container_db", ...$$[$0]); - this.$ = $$[$0]; - break; - case 49: - yy.addContainer("container_queue", ...$$[$0]); - this.$ = $$[$0]; - break; - case 50: - yy.addContainer("external_container", ...$$[$0]); - this.$ = $$[$0]; - break; - case 51: - yy.addContainer("external_container_db", ...$$[$0]); - this.$ = $$[$0]; - break; - case 52: - yy.addContainer("external_container_queue", ...$$[$0]); - this.$ = $$[$0]; - break; - case 53: - yy.addComponent("component", ...$$[$0]); - this.$ = $$[$0]; - break; - case 54: - yy.addComponent("component_db", ...$$[$0]); - this.$ = $$[$0]; - break; - case 55: - yy.addComponent("component_queue", ...$$[$0]); - this.$ = $$[$0]; - break; - case 56: - yy.addComponent("external_component", ...$$[$0]); - this.$ = $$[$0]; - break; - case 57: - yy.addComponent("external_component_db", ...$$[$0]); - this.$ = $$[$0]; - break; - case 58: - yy.addComponent("external_component_queue", ...$$[$0]); - this.$ = $$[$0]; - break; - case 60: - yy.addRel("rel", ...$$[$0]); - this.$ = $$[$0]; - break; - case 61: - yy.addRel("birel", ...$$[$0]); - this.$ = $$[$0]; - break; - case 62: - yy.addRel("rel_u", ...$$[$0]); - this.$ = $$[$0]; - break; - case 63: - yy.addRel("rel_d", ...$$[$0]); - this.$ = $$[$0]; - break; - case 64: - yy.addRel("rel_l", ...$$[$0]); - this.$ = $$[$0]; - break; - case 65: - yy.addRel("rel_r", ...$$[$0]); - this.$ = $$[$0]; - break; - case 66: - yy.addRel("rel_b", ...$$[$0]); - this.$ = $$[$0]; - break; - case 67: - $$[$0].splice(0, 1); - yy.addRel("rel", ...$$[$0]); - this.$ = $$[$0]; - break; - case 68: - yy.updateElStyle("update_el_style", ...$$[$0]); - this.$ = $$[$0]; - break; - case 69: - yy.updateRelStyle("update_rel_style", ...$$[$0]); - this.$ = $$[$0]; - break; - case 70: - yy.updateLayoutConfig("update_layout_config", ...$$[$0]); - this.$ = $$[$0]; - break; - case 71: - this.$ = [$$[$0]]; - break; - case 72: - $$[$0].unshift($$[$0 - 1]); - this.$ = $$[$0]; - break; - case 73: - case 75: - this.$ = $$[$0].trim(); - break; - case 74: - let kv = {}; - kv[$$[$0 - 1].trim()] = $$[$0].trim(); - this.$ = kv; - break; - case 76: - this.$ = ""; - break; - } - }, - table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])], - defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c2 = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c2 + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: {}, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - return 6; - case 1: - return 7; - case 2: - return 8; - case 3: - return 9; - case 4: - return 22; - case 5: - return 23; - case 6: - this.begin("acc_title"); - return 24; - case 7: - this.popState(); - return "acc_title_value"; - case 8: - this.begin("acc_descr"); - return 26; - case 9: - this.popState(); - return "acc_descr_value"; - case 10: - this.begin("acc_descr_multiline"); - break; - case 11: - this.popState(); - break; - case 12: - return "acc_descr_multiline_value"; - case 13: - break; - case 14: - c; - break; - case 15: - return 12; - case 16: - break; - case 17: - return 11; - case 18: - return 15; - case 19: - return 16; - case 20: - return 17; - case 21: - return 18; - case 22: - this.begin("person_ext"); - return 45; - case 23: - this.begin("person"); - return 44; - case 24: - this.begin("system_ext_queue"); - return 51; - case 25: - this.begin("system_ext_db"); - return 50; - case 26: - this.begin("system_ext"); - return 49; - case 27: - this.begin("system_queue"); - return 48; - case 28: - this.begin("system_db"); - return 47; - case 29: - this.begin("system"); - return 46; - case 30: - this.begin("boundary"); - return 37; - case 31: - this.begin("enterprise_boundary"); - return 34; - case 32: - this.begin("system_boundary"); - return 36; - case 33: - this.begin("container_ext_queue"); - return 57; - case 34: - this.begin("container_ext_db"); - return 56; - case 35: - this.begin("container_ext"); - return 55; - case 36: - this.begin("container_queue"); - return 54; - case 37: - this.begin("container_db"); - return 53; - case 38: - this.begin("container"); - return 52; - case 39: - this.begin("container_boundary"); - return 38; - case 40: - this.begin("component_ext_queue"); - return 63; - case 41: - this.begin("component_ext_db"); - return 62; - case 42: - this.begin("component_ext"); - return 61; - case 43: - this.begin("component_queue"); - return 60; - case 44: - this.begin("component_db"); - return 59; - case 45: - this.begin("component"); - return 58; - case 46: - this.begin("node"); - return 39; - case 47: - this.begin("node"); - return 39; - case 48: - this.begin("node_l"); - return 40; - case 49: - this.begin("node_r"); - return 41; - case 50: - this.begin("rel"); - return 64; - case 51: - this.begin("birel"); - return 65; - case 52: - this.begin("rel_u"); - return 66; - case 53: - this.begin("rel_u"); - return 66; - case 54: - this.begin("rel_d"); - return 67; - case 55: - this.begin("rel_d"); - return 67; - case 56: - this.begin("rel_l"); - return 68; - case 57: - this.begin("rel_l"); - return 68; - case 58: - this.begin("rel_r"); - return 69; - case 59: - this.begin("rel_r"); - return 69; - case 60: - this.begin("rel_b"); - return 70; - case 61: - this.begin("rel_index"); - return 71; - case 62: - this.begin("update_el_style"); - return 72; - case 63: - this.begin("update_rel_style"); - return 73; - case 64: - this.begin("update_layout_config"); - return 74; - case 65: - return "EOF_IN_STRUCT"; - case 66: - this.begin("attribute"); - return "ATTRIBUTE_EMPTY"; - case 67: - this.begin("attribute"); - break; - case 68: - this.popState(); - this.popState(); - break; - case 69: - return 80; - case 70: - break; - case 71: - return 80; - case 72: - this.begin("string"); - break; - case 73: - this.popState(); - break; - case 74: - return "STR"; - case 75: - this.begin("string_kv"); - break; - case 76: - this.begin("string_kv_key"); - return "STR_KEY"; - case 77: - this.popState(); - this.begin("string_kv_value"); - break; - case 78: - return "STR_VALUE"; - case 79: - this.popState(); - this.popState(); - break; - case 80: - return "STR"; - case 81: - return "LBRACE"; - case 82: - return "RBRACE"; - case 83: - return "SPACE"; - case 84: - return "EOL"; - case 85: - return 14; - } - }, - rules: [/^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/], - conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "string_kv_value": { "rules": [78, 79], "inclusive": false }, "string_kv_key": { "rules": [77], "inclusive": false }, "string_kv": { "rules": [76], "inclusive": false }, "string": { "rules": [73, 74], "inclusive": false }, "attribute": { "rules": [68, 69, 70, 71, 72, 75, 80], "inclusive": false }, "update_layout_config": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_rel_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "update_el_style": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_b": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_d": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_u": { "rules": [65, 66, 67, 68], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_r": { "rules": [65, 66, 67, 68], "inclusive": false }, "node_l": { "rules": [65, 66, 67, 68], "inclusive": false }, "node": { "rules": [65, 66, 67, 68], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "component_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "component": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "container_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "container": { "rules": [65, 66, 67, 68], "inclusive": false }, "birel": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "enterprise_boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "boundary": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_queue": { "rules": [65, 66, 67, 68], "inclusive": false }, "system_db": { "rules": [65, 66, 67, 68], "inclusive": false }, "system": { "rules": [65, 66, 67, 68], "inclusive": false }, "person_ext": { "rules": [65, 66, 67, 68], "inclusive": false }, "person": { "rules": [65, 66, 67, 68], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var c4ShapeArray = []; -var boundaryParseStack = [""]; -var currentBoundaryParse = "global"; -var parentBoundaryParse = ""; -var boundarys = [ - { - alias: "global", - label: { text: "global" }, - type: { text: "global" }, - tags: null, - link: null, - parentBoundary: "" - } -]; -var rels = []; -var title = ""; -var wrapEnabled = false; -var c4ShapeInRow$1 = 4; -var c4BoundaryInRow$1 = 2; -var c4Type; -var getC4Type = function() { - return c4Type; -}; -var setC4Type = function(c4TypeParam) { - let sanitizedText = sanitizeText$2(c4TypeParam, getConfig()); - c4Type = sanitizedText; -}; -var addRel = function(type, from, to, label, techn, descr, sprite, tags, link) { - if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) { - return; - } - let rel = {}; - const old = rels.find((rel2) => rel2.from === from && rel2.to === to); - if (old) { - rel = old; - } else { - rels.push(rel); - } - rel.type = type; - rel.from = from; - rel.to = to; - rel.label = { text: label }; - if (techn === void 0 || techn === null) { - rel.techn = { text: "" }; - } else { - if (typeof techn === "object") { - let [key, value] = Object.entries(techn)[0]; - rel[key] = { text: value }; - } else { - rel.techn = { text: techn }; - } - } - if (descr === void 0 || descr === null) { - rel.descr = { text: "" }; - } else { - if (typeof descr === "object") { - let [key, value] = Object.entries(descr)[0]; - rel[key] = { text: value }; - } else { - rel.descr = { text: descr }; - } - } - if (typeof sprite === "object") { - let [key, value] = Object.entries(sprite)[0]; - rel[key] = value; - } else { - rel.sprite = sprite; - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - rel[key] = value; - } else { - rel.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - rel[key] = value; - } else { - rel.link = link; - } - rel.wrap = autoWrap(); -}; -var addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) { - if (alias === null || label === null) { - return; - } - let personOrSystem = {}; - const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias); - if (old && alias === old.alias) { - personOrSystem = old; - } else { - personOrSystem.alias = alias; - c4ShapeArray.push(personOrSystem); - } - if (label === void 0 || label === null) { - personOrSystem.label = { text: "" }; - } else { - personOrSystem.label = { text: label }; - } - if (descr === void 0 || descr === null) { - personOrSystem.descr = { text: "" }; - } else { - if (typeof descr === "object") { - let [key, value] = Object.entries(descr)[0]; - personOrSystem[key] = { text: value }; - } else { - personOrSystem.descr = { text: descr }; - } - } - if (typeof sprite === "object") { - let [key, value] = Object.entries(sprite)[0]; - personOrSystem[key] = value; - } else { - personOrSystem.sprite = sprite; - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - personOrSystem[key] = value; - } else { - personOrSystem.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - personOrSystem[key] = value; - } else { - personOrSystem.link = link; - } - personOrSystem.typeC4Shape = { text: typeC4Shape }; - personOrSystem.parentBoundary = currentBoundaryParse; - personOrSystem.wrap = autoWrap(); -}; -var addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) { - if (alias === null || label === null) { - return; - } - let container = {}; - const old = c4ShapeArray.find((container2) => container2.alias === alias); - if (old && alias === old.alias) { - container = old; - } else { - container.alias = alias; - c4ShapeArray.push(container); - } - if (label === void 0 || label === null) { - container.label = { text: "" }; - } else { - container.label = { text: label }; - } - if (techn === void 0 || techn === null) { - container.techn = { text: "" }; - } else { - if (typeof techn === "object") { - let [key, value] = Object.entries(techn)[0]; - container[key] = { text: value }; - } else { - container.techn = { text: techn }; - } - } - if (descr === void 0 || descr === null) { - container.descr = { text: "" }; - } else { - if (typeof descr === "object") { - let [key, value] = Object.entries(descr)[0]; - container[key] = { text: value }; - } else { - container.descr = { text: descr }; - } - } - if (typeof sprite === "object") { - let [key, value] = Object.entries(sprite)[0]; - container[key] = value; - } else { - container.sprite = sprite; - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - container[key] = value; - } else { - container.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - container[key] = value; - } else { - container.link = link; - } - container.wrap = autoWrap(); - container.typeC4Shape = { text: typeC4Shape }; - container.parentBoundary = currentBoundaryParse; -}; -var addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) { - if (alias === null || label === null) { - return; - } - let component = {}; - const old = c4ShapeArray.find((component2) => component2.alias === alias); - if (old && alias === old.alias) { - component = old; - } else { - component.alias = alias; - c4ShapeArray.push(component); - } - if (label === void 0 || label === null) { - component.label = { text: "" }; - } else { - component.label = { text: label }; - } - if (techn === void 0 || techn === null) { - component.techn = { text: "" }; - } else { - if (typeof techn === "object") { - let [key, value] = Object.entries(techn)[0]; - component[key] = { text: value }; - } else { - component.techn = { text: techn }; - } - } - if (descr === void 0 || descr === null) { - component.descr = { text: "" }; - } else { - if (typeof descr === "object") { - let [key, value] = Object.entries(descr)[0]; - component[key] = { text: value }; - } else { - component.descr = { text: descr }; - } - } - if (typeof sprite === "object") { - let [key, value] = Object.entries(sprite)[0]; - component[key] = value; - } else { - component.sprite = sprite; - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - component[key] = value; - } else { - component.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - component[key] = value; - } else { - component.link = link; - } - component.wrap = autoWrap(); - component.typeC4Shape = { text: typeC4Shape }; - component.parentBoundary = currentBoundaryParse; -}; -var addPersonOrSystemBoundary = function(alias, label, type, tags, link) { - if (alias === null || label === null) { - return; - } - let boundary = {}; - const old = boundarys.find((boundary2) => boundary2.alias === alias); - if (old && alias === old.alias) { - boundary = old; - } else { - boundary.alias = alias; - boundarys.push(boundary); - } - if (label === void 0 || label === null) { - boundary.label = { text: "" }; - } else { - boundary.label = { text: label }; - } - if (type === void 0 || type === null) { - boundary.type = { text: "system" }; - } else { - if (typeof type === "object") { - let [key, value] = Object.entries(type)[0]; - boundary[key] = { text: value }; - } else { - boundary.type = { text: type }; - } - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - boundary[key] = value; - } else { - boundary.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - boundary[key] = value; - } else { - boundary.link = link; - } - boundary.parentBoundary = currentBoundaryParse; - boundary.wrap = autoWrap(); - parentBoundaryParse = currentBoundaryParse; - currentBoundaryParse = alias; - boundaryParseStack.push(parentBoundaryParse); -}; -var addContainerBoundary = function(alias, label, type, tags, link) { - if (alias === null || label === null) { - return; - } - let boundary = {}; - const old = boundarys.find((boundary2) => boundary2.alias === alias); - if (old && alias === old.alias) { - boundary = old; - } else { - boundary.alias = alias; - boundarys.push(boundary); - } - if (label === void 0 || label === null) { - boundary.label = { text: "" }; - } else { - boundary.label = { text: label }; - } - if (type === void 0 || type === null) { - boundary.type = { text: "container" }; - } else { - if (typeof type === "object") { - let [key, value] = Object.entries(type)[0]; - boundary[key] = { text: value }; - } else { - boundary.type = { text: type }; - } - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - boundary[key] = value; - } else { - boundary.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - boundary[key] = value; - } else { - boundary.link = link; - } - boundary.parentBoundary = currentBoundaryParse; - boundary.wrap = autoWrap(); - parentBoundaryParse = currentBoundaryParse; - currentBoundaryParse = alias; - boundaryParseStack.push(parentBoundaryParse); -}; -var addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) { - if (alias === null || label === null) { - return; - } - let boundary = {}; - const old = boundarys.find((boundary2) => boundary2.alias === alias); - if (old && alias === old.alias) { - boundary = old; - } else { - boundary.alias = alias; - boundarys.push(boundary); - } - if (label === void 0 || label === null) { - boundary.label = { text: "" }; - } else { - boundary.label = { text: label }; - } - if (type === void 0 || type === null) { - boundary.type = { text: "node" }; - } else { - if (typeof type === "object") { - let [key, value] = Object.entries(type)[0]; - boundary[key] = { text: value }; - } else { - boundary.type = { text: type }; - } - } - if (descr === void 0 || descr === null) { - boundary.descr = { text: "" }; - } else { - if (typeof descr === "object") { - let [key, value] = Object.entries(descr)[0]; - boundary[key] = { text: value }; - } else { - boundary.descr = { text: descr }; - } - } - if (typeof tags === "object") { - let [key, value] = Object.entries(tags)[0]; - boundary[key] = value; - } else { - boundary.tags = tags; - } - if (typeof link === "object") { - let [key, value] = Object.entries(link)[0]; - boundary[key] = value; - } else { - boundary.link = link; - } - boundary.nodeType = nodeType; - boundary.parentBoundary = currentBoundaryParse; - boundary.wrap = autoWrap(); - parentBoundaryParse = currentBoundaryParse; - currentBoundaryParse = alias; - boundaryParseStack.push(parentBoundaryParse); -}; -var popBoundaryParseStack = function() { - currentBoundaryParse = parentBoundaryParse; - boundaryParseStack.pop(); - parentBoundaryParse = boundaryParseStack.pop(); - boundaryParseStack.push(parentBoundaryParse); -}; -var updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) { - let old = c4ShapeArray.find((element) => element.alias === elementName); - if (old === void 0) { - old = boundarys.find((element) => element.alias === elementName); - if (old === void 0) { - return; - } - } - if (bgColor !== void 0 && bgColor !== null) { - if (typeof bgColor === "object") { - let [key, value] = Object.entries(bgColor)[0]; - old[key] = value; - } else { - old.bgColor = bgColor; - } - } - if (fontColor !== void 0 && fontColor !== null) { - if (typeof fontColor === "object") { - let [key, value] = Object.entries(fontColor)[0]; - old[key] = value; - } else { - old.fontColor = fontColor; - } - } - if (borderColor !== void 0 && borderColor !== null) { - if (typeof borderColor === "object") { - let [key, value] = Object.entries(borderColor)[0]; - old[key] = value; - } else { - old.borderColor = borderColor; - } - } - if (shadowing !== void 0 && shadowing !== null) { - if (typeof shadowing === "object") { - let [key, value] = Object.entries(shadowing)[0]; - old[key] = value; - } else { - old.shadowing = shadowing; - } - } - if (shape !== void 0 && shape !== null) { - if (typeof shape === "object") { - let [key, value] = Object.entries(shape)[0]; - old[key] = value; - } else { - old.shape = shape; - } - } - if (sprite !== void 0 && sprite !== null) { - if (typeof sprite === "object") { - let [key, value] = Object.entries(sprite)[0]; - old[key] = value; - } else { - old.sprite = sprite; - } - } - if (techn !== void 0 && techn !== null) { - if (typeof techn === "object") { - let [key, value] = Object.entries(techn)[0]; - old[key] = value; - } else { - old.techn = techn; - } - } - if (legendText !== void 0 && legendText !== null) { - if (typeof legendText === "object") { - let [key, value] = Object.entries(legendText)[0]; - old[key] = value; - } else { - old.legendText = legendText; - } - } - if (legendSprite !== void 0 && legendSprite !== null) { - if (typeof legendSprite === "object") { - let [key, value] = Object.entries(legendSprite)[0]; - old[key] = value; - } else { - old.legendSprite = legendSprite; - } - } -}; -var updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) { - const old = rels.find((rel) => rel.from === from && rel.to === to); - if (old === void 0) { - return; - } - if (textColor !== void 0 && textColor !== null) { - if (typeof textColor === "object") { - let [key, value] = Object.entries(textColor)[0]; - old[key] = value; - } else { - old.textColor = textColor; - } - } - if (lineColor !== void 0 && lineColor !== null) { - if (typeof lineColor === "object") { - let [key, value] = Object.entries(lineColor)[0]; - old[key] = value; - } else { - old.lineColor = lineColor; - } - } - if (offsetX !== void 0 && offsetX !== null) { - if (typeof offsetX === "object") { - let [key, value] = Object.entries(offsetX)[0]; - old[key] = parseInt(value); - } else { - old.offsetX = parseInt(offsetX); - } - } - if (offsetY !== void 0 && offsetY !== null) { - if (typeof offsetY === "object") { - let [key, value] = Object.entries(offsetY)[0]; - old[key] = parseInt(value); - } else { - old.offsetY = parseInt(offsetY); - } - } -}; -var updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) { - let c4ShapeInRowValue = c4ShapeInRow$1; - let c4BoundaryInRowValue = c4BoundaryInRow$1; - if (typeof c4ShapeInRowParam === "object") { - const value = Object.values(c4ShapeInRowParam)[0]; - c4ShapeInRowValue = parseInt(value); - } else { - c4ShapeInRowValue = parseInt(c4ShapeInRowParam); - } - if (typeof c4BoundaryInRowParam === "object") { - const value = Object.values(c4BoundaryInRowParam)[0]; - c4BoundaryInRowValue = parseInt(value); - } else { - c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam); - } - if (c4ShapeInRowValue >= 1) { - c4ShapeInRow$1 = c4ShapeInRowValue; - } - if (c4BoundaryInRowValue >= 1) { - c4BoundaryInRow$1 = c4BoundaryInRowValue; - } -}; -var getC4ShapeInRow = function() { - return c4ShapeInRow$1; -}; -var getC4BoundaryInRow = function() { - return c4BoundaryInRow$1; -}; -var getCurrentBoundaryParse = function() { - return currentBoundaryParse; -}; -var getParentBoundaryParse = function() { - return parentBoundaryParse; -}; -var getC4ShapeArray = function(parentBoundary) { - if (parentBoundary === void 0 || parentBoundary === null) { - return c4ShapeArray; - } else { - return c4ShapeArray.filter((personOrSystem) => { - return personOrSystem.parentBoundary === parentBoundary; - }); - } -}; -var getC4Shape = function(alias) { - return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias); -}; -var getC4ShapeKeys = function(parentBoundary) { - return Object.keys(getC4ShapeArray(parentBoundary)); -}; -var getBoundarys = function(parentBoundary) { - if (parentBoundary === void 0 || parentBoundary === null) { - return boundarys; - } else { - return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary); - } -}; -var getRels = function() { - return rels; -}; -var getTitle = function() { - return title; -}; -var setWrap = function(wrapSetting) { - wrapEnabled = wrapSetting; -}; -var autoWrap = function() { - return wrapEnabled; -}; -var clear = function() { - c4ShapeArray = []; - boundarys = [ - { - alias: "global", - label: { text: "global" }, - type: { text: "global" }, - tags: null, - link: null, - parentBoundary: "" - } - ]; - parentBoundaryParse = ""; - currentBoundaryParse = "global"; - boundaryParseStack = [""]; - rels = []; - boundaryParseStack = [""]; - title = ""; - wrapEnabled = false; - c4ShapeInRow$1 = 4; - c4BoundaryInRow$1 = 2; -}; -var LINETYPE = { - SOLID: 0, - DOTTED: 1, - NOTE: 2, - SOLID_CROSS: 3, - DOTTED_CROSS: 4, - SOLID_OPEN: 5, - DOTTED_OPEN: 6, - LOOP_START: 10, - LOOP_END: 11, - ALT_START: 12, - ALT_ELSE: 13, - ALT_END: 14, - OPT_START: 15, - OPT_END: 16, - ACTIVE_START: 17, - ACTIVE_END: 18, - PAR_START: 19, - PAR_AND: 20, - PAR_END: 21, - RECT_START: 22, - RECT_END: 23, - SOLID_POINT: 24, - DOTTED_POINT: 25 -}; -var ARROWTYPE = { - FILLED: 0, - OPEN: 1 -}; -var PLACEMENT = { - LEFTOF: 0, - RIGHTOF: 1, - OVER: 2 -}; -var setTitle = function(txt) { - let sanitizedText = sanitizeText$2(txt, getConfig()); - title = sanitizedText; -}; -var db = { - addPersonOrSystem, - addPersonOrSystemBoundary, - addContainer, - addContainerBoundary, - addComponent, - addDeploymentNode, - popBoundaryParseStack, - addRel, - updateElStyle, - updateRelStyle, - updateLayoutConfig, - autoWrap, - setWrap, - getC4ShapeArray, - getC4Shape, - getC4ShapeKeys, - getBoundarys, - getCurrentBoundaryParse, - getParentBoundaryParse, - getRels, - getTitle, - getC4Type, - getC4ShapeInRow, - getC4BoundaryInRow, - setAccTitle, - getAccTitle, - getAccDescription, - setAccDescription, - getConfig: () => getConfig().c4, - clear, - LINETYPE, - ARROWTYPE, - PLACEMENT, - setTitle, - setC4Type - // apply, -}; -var drawRect2 = function(elem, rectData) { - return drawRect(elem, rectData); -}; -var drawImage = function(elem, width, height, x, y, link) { - const imageElem = elem.append("image"); - imageElem.attr("width", width); - imageElem.attr("height", height); - imageElem.attr("x", x); - imageElem.attr("y", y); - let sanitizedLink = link.startsWith("data:image/png;base64") ? link : (0, import_sanitize_url.sanitizeUrl)(link); - imageElem.attr("xlink:href", sanitizedLink); -}; -var drawRels$1 = (elem, rels2, conf2) => { - const relsElem = elem.append("g"); - let i = 0; - for (let rel of rels2) { - let textColor = rel.textColor ? rel.textColor : "#444444"; - let strokeColor = rel.lineColor ? rel.lineColor : "#444444"; - let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0; - let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0; - let url = ""; - if (i === 0) { - let line = relsElem.append("line"); - line.attr("x1", rel.startPoint.x); - line.attr("y1", rel.startPoint.y); - line.attr("x2", rel.endPoint.x); - line.attr("y2", rel.endPoint.y); - line.attr("stroke-width", "1"); - line.attr("stroke", strokeColor); - line.style("fill", "none"); - if (rel.type !== "rel_b") { - line.attr("marker-end", "url(" + url + "#arrowhead)"); - } - if (rel.type === "birel" || rel.type === "rel_b") { - line.attr("marker-start", "url(" + url + "#arrowend)"); - } - i = -1; - } else { - let line = relsElem.append("path"); - line.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr( - "d", - "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll( - "controlx", - rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4 - ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y) - ); - if (rel.type !== "rel_b") { - line.attr("marker-end", "url(" + url + "#arrowhead)"); - } - if (rel.type === "birel" || rel.type === "rel_b") { - line.attr("marker-start", "url(" + url + "#arrowend)"); - } - } - let messageConf = conf2.messageFont(); - _drawTextCandidateFunc(conf2)( - rel.label.text, - relsElem, - Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, - Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY, - rel.label.width, - rel.label.height, - { fill: textColor }, - messageConf - ); - if (rel.techn && rel.techn.text !== "") { - messageConf = conf2.messageFont(); - _drawTextCandidateFunc(conf2)( - "[" + rel.techn.text + "]", - relsElem, - Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, - Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY, - Math.max(rel.label.width, rel.techn.width), - rel.techn.height, - { fill: textColor, "font-style": "italic" }, - messageConf - ); - } - } -}; -var drawBoundary$1 = function(elem, boundary, conf2) { - const boundaryElem = elem.append("g"); - let fillColor = boundary.bgColor ? boundary.bgColor : "none"; - let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444"; - let fontColor = boundary.fontColor ? boundary.fontColor : "black"; - let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" }; - if (boundary.nodeType) { - attrsValue = { "stroke-width": 1 }; - } - let rectData = { - x: boundary.x, - y: boundary.y, - fill: fillColor, - stroke: strokeColor, - width: boundary.width, - height: boundary.height, - rx: 2.5, - ry: 2.5, - attrs: attrsValue - }; - drawRect2(boundaryElem, rectData); - let boundaryConf = conf2.boundaryFont(); - boundaryConf.fontWeight = "bold"; - boundaryConf.fontSize = boundaryConf.fontSize + 2; - boundaryConf.fontColor = fontColor; - _drawTextCandidateFunc(conf2)( - boundary.label.text, - boundaryElem, - boundary.x, - boundary.y + boundary.label.Y, - boundary.width, - boundary.height, - { fill: "#444444" }, - boundaryConf - ); - if (boundary.type && boundary.type.text !== "") { - boundaryConf = conf2.boundaryFont(); - boundaryConf.fontColor = fontColor; - _drawTextCandidateFunc(conf2)( - boundary.type.text, - boundaryElem, - boundary.x, - boundary.y + boundary.type.Y, - boundary.width, - boundary.height, - { fill: "#444444" }, - boundaryConf - ); - } - if (boundary.descr && boundary.descr.text !== "") { - boundaryConf = conf2.boundaryFont(); - boundaryConf.fontSize = boundaryConf.fontSize - 2; - boundaryConf.fontColor = fontColor; - _drawTextCandidateFunc(conf2)( - boundary.descr.text, - boundaryElem, - boundary.x, - boundary.y + boundary.descr.Y, - boundary.width, - boundary.height, - { fill: "#444444" }, - boundaryConf - ); - } -}; -var drawC4Shape = function(elem, c4Shape, conf2) { - var _a; - let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"]; - let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"]; - let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF"; - let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; - switch (c4Shape.typeC4Shape.text) { - case "person": - personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII="; - break; - case "external_person": - personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="; - break; - } - const c4ShapeElem = elem.append("g"); - c4ShapeElem.attr("class", "person-man"); - const rect = getNoteRect(); - switch (c4Shape.typeC4Shape.text) { - case "person": - case "external_person": - case "system": - case "external_system": - case "container": - case "external_container": - case "component": - case "external_component": - rect.x = c4Shape.x; - rect.y = c4Shape.y; - rect.fill = fillColor; - rect.width = c4Shape.width; - rect.height = c4Shape.height; - rect.stroke = strokeColor; - rect.rx = 2.5; - rect.ry = 2.5; - rect.attrs = { "stroke-width": 0.5 }; - drawRect2(c4ShapeElem, rect); - break; - case "system_db": - case "external_system_db": - case "container_db": - case "external_container_db": - case "component_db": - case "external_component_db": - c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( - "d", - "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height) - ); - c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( - "d", - "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2) - ); - break; - case "system_queue": - case "external_system_queue": - case "container_queue": - case "external_container_queue": - case "component_queue": - case "external_component_queue": - c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( - "d", - "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2) - ); - c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr( - "d", - "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2) - ); - break; - } - let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text); - c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>"); - switch (c4Shape.typeC4Shape.text) { - case "person": - case "external_person": - drawImage( - c4ShapeElem, - 48, - 48, - c4Shape.x + c4Shape.width / 2 - 24, - c4Shape.y + c4Shape.image.Y, - personImg - ); - break; - } - let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"](); - textFontConf.fontWeight = "bold"; - textFontConf.fontSize = textFontConf.fontSize + 2; - textFontConf.fontColor = fontColor; - _drawTextCandidateFunc(conf2)( - c4Shape.label.text, - c4ShapeElem, - c4Shape.x, - c4Shape.y + c4Shape.label.Y, - c4Shape.width, - c4Shape.height, - { fill: fontColor }, - textFontConf - ); - textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"](); - textFontConf.fontColor = fontColor; - if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") { - _drawTextCandidateFunc(conf2)( - c4Shape.techn.text, - c4ShapeElem, - c4Shape.x, - c4Shape.y + c4Shape.techn.Y, - c4Shape.width, - c4Shape.height, - { fill: fontColor, "font-style": "italic" }, - textFontConf - ); - } else if (c4Shape.type && c4Shape.type.text !== "") { - _drawTextCandidateFunc(conf2)( - c4Shape.type.text, - c4ShapeElem, - c4Shape.x, - c4Shape.y + c4Shape.type.Y, - c4Shape.width, - c4Shape.height, - { fill: fontColor, "font-style": "italic" }, - textFontConf - ); - } - if (c4Shape.descr && c4Shape.descr.text !== "") { - textFontConf = conf2.personFont(); - textFontConf.fontColor = fontColor; - _drawTextCandidateFunc(conf2)( - c4Shape.descr.text, - c4ShapeElem, - c4Shape.x, - c4Shape.y + c4Shape.descr.Y, - c4Shape.width, - c4Shape.height, - { fill: fontColor }, - textFontConf - ); - } - return c4Shape.height; -}; -var insertDatabaseIcon = function(elem) { - elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( - "d", - "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" - ); -}; -var insertComputerIcon = function(elem) { - elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( - "d", - "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" - ); -}; -var insertClockIcon = function(elem) { - elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( - "d", - "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" - ); -}; -var insertArrowHead = function(elem) { - elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); -}; -var insertArrowEnd = function(elem) { - elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z"); -}; -var insertArrowFilledHead = function(elem) { - elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); -}; -var insertDynamicNumber = function(elem) { - elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); -}; -var insertArrowCrossHead = function(elem) { - const defs = elem.append("defs"); - const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4); - marker.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z"); - marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7"); -}; -var getC4ShapeFont = (cnf, typeC4Shape) => { - return { - fontFamily: cnf[typeC4Shape + "FontFamily"], - fontSize: cnf[typeC4Shape + "FontSize"], - fontWeight: cnf[typeC4Shape + "FontWeight"] - }; -}; -var _drawTextCandidateFunc = /* @__PURE__ */ function() { - function byText(content, g, x, y, width, height, textAttrs) { - const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content); - _setTextAttrs(text, textAttrs); - } - function byTspan(content, g, x, y, width, height, textAttrs, conf2) { - const { fontSize, fontFamily, fontWeight } = conf2; - const lines = content.split(common$1.lineBreakRegex); - for (let i = 0; i < lines.length; i++) { - const dy = i * fontSize - fontSize * (lines.length - 1) / 2; - const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily); - text.append("tspan").attr("dy", dy).text(lines[i]).attr("alignment-baseline", "mathematical"); - _setTextAttrs(text, textAttrs); - } - } - function byFo(content, g, x, y, width, height, textAttrs, conf2) { - const s = g.append("switch"); - const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); - const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); - text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); - byTspan(content, s, x, y, width, height, textAttrs, conf2); - _setTextAttrs(text, textAttrs); - } - function _setTextAttrs(toText, fromTextAttrsDict) { - for (const key in fromTextAttrsDict) { - if (fromTextAttrsDict.hasOwnProperty(key)) { - toText.attr(key, fromTextAttrsDict[key]); - } - } - } - return function(conf2) { - return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; - }; -}(); -var svgDraw = { - drawRect: drawRect2, - drawBoundary: drawBoundary$1, - drawC4Shape, - drawRels: drawRels$1, - drawImage, - insertArrowHead, - insertArrowEnd, - insertArrowFilledHead, - insertDynamicNumber, - insertArrowCrossHead, - insertDatabaseIcon, - insertComputerIcon, - insertClockIcon -}; -var globalBoundaryMaxX = 0; -var globalBoundaryMaxY = 0; -var c4ShapeInRow = 4; -var c4BoundaryInRow = 2; -parser.yy = db; -var conf = {}; -var Bounds = class { - constructor(diagObj) { - this.name = ""; - this.data = {}; - this.data.startx = void 0; - this.data.stopx = void 0; - this.data.starty = void 0; - this.data.stopy = void 0; - this.data.widthLimit = void 0; - this.nextData = {}; - this.nextData.startx = void 0; - this.nextData.stopx = void 0; - this.nextData.starty = void 0; - this.nextData.stopy = void 0; - this.nextData.cnt = 0; - setConf(diagObj.db.getConfig()); - } - setData(startx, stopx, starty, stopy) { - this.nextData.startx = this.data.startx = startx; - this.nextData.stopx = this.data.stopx = stopx; - this.nextData.starty = this.data.starty = starty; - this.nextData.stopy = this.data.stopy = stopy; - } - updateVal(obj, key, val, fun) { - if (obj[key] === void 0) { - obj[key] = val; - } else { - obj[key] = fun(val, obj[key]); - } - } - insert(c4Shape) { - this.nextData.cnt = this.nextData.cnt + 1; - let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2; - let _stopx = _startx + c4Shape.width; - let _starty = this.nextData.starty + c4Shape.margin * 2; - let _stopy = _starty + c4Shape.height; - if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) { - _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX; - _starty = this.nextData.stopy + c4Shape.margin * 2; - this.nextData.stopx = _stopx = _startx + c4Shape.width; - this.nextData.starty = this.nextData.stopy; - this.nextData.stopy = _stopy = _starty + c4Shape.height; - this.nextData.cnt = 1; - } - c4Shape.x = _startx; - c4Shape.y = _starty; - this.updateVal(this.data, "startx", _startx, Math.min); - this.updateVal(this.data, "starty", _starty, Math.min); - this.updateVal(this.data, "stopx", _stopx, Math.max); - this.updateVal(this.data, "stopy", _stopy, Math.max); - this.updateVal(this.nextData, "startx", _startx, Math.min); - this.updateVal(this.nextData, "starty", _starty, Math.min); - this.updateVal(this.nextData, "stopx", _stopx, Math.max); - this.updateVal(this.nextData, "stopy", _stopy, Math.max); - } - init(diagObj) { - this.name = ""; - this.data = { - startx: void 0, - stopx: void 0, - starty: void 0, - stopy: void 0, - widthLimit: void 0 - }; - this.nextData = { - startx: void 0, - stopx: void 0, - starty: void 0, - stopy: void 0, - cnt: 0 - }; - setConf(diagObj.db.getConfig()); - } - bumpLastMargin(margin) { - this.data.stopx += margin; - this.data.stopy += margin; - } -}; -var setConf = function(cnf) { - assignWithDepth$1(conf, cnf); - if (cnf.fontFamily) { - conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily; - } - if (cnf.fontSize) { - conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize; - } - if (cnf.fontWeight) { - conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight; - } -}; -var c4ShapeFont = (cnf, typeC4Shape) => { - return { - fontFamily: cnf[typeC4Shape + "FontFamily"], - fontSize: cnf[typeC4Shape + "FontSize"], - fontWeight: cnf[typeC4Shape + "FontWeight"] - }; -}; -var boundaryFont = (cnf) => { - return { - fontFamily: cnf.boundaryFontFamily, - fontSize: cnf.boundaryFontSize, - fontWeight: cnf.boundaryFontWeight - }; -}; -var messageFont = (cnf) => { - return { - fontFamily: cnf.messageFontFamily, - fontSize: cnf.messageFontSize, - fontWeight: cnf.messageFontWeight - }; -}; -function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) { - if (!c4Shape[textType].width) { - if (c4ShapeTextWrap) { - c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf); - c4Shape[textType].textLines = c4Shape[textType].text.split(common$1.lineBreakRegex).length; - c4Shape[textType].width = textLimitWidth; - c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf); - } else { - let lines = c4Shape[textType].text.split(common$1.lineBreakRegex); - c4Shape[textType].textLines = lines.length; - let lineHeight = 0; - c4Shape[textType].height = 0; - c4Shape[textType].width = 0; - for (const line of lines) { - c4Shape[textType].width = Math.max( - calculateTextWidth(line, textConf), - c4Shape[textType].width - ); - lineHeight = calculateTextHeight(line, textConf); - c4Shape[textType].height = c4Shape[textType].height + lineHeight; - } - } - } -} -var drawBoundary = function(diagram2, boundary, bounds) { - boundary.x = bounds.data.startx; - boundary.y = bounds.data.starty; - boundary.width = bounds.data.stopx - bounds.data.startx; - boundary.height = bounds.data.stopy - bounds.data.starty; - boundary.label.y = conf.c4ShapeMargin - 35; - let boundaryTextWrap = boundary.wrap && conf.wrap; - let boundaryLabelConf = boundaryFont(conf); - boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2; - boundaryLabelConf.fontWeight = "bold"; - let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf); - calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth); - svgDraw.drawBoundary(diagram2, boundary, conf); -}; -var drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) { - let Y = 0; - for (const c4ShapeKey of c4ShapeKeys) { - Y = 0; - const c4Shape = c4ShapeArray2[c4ShapeKey]; - let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); - c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2; - c4Shape.typeC4Shape.width = calculateTextWidth( - "«" + c4Shape.typeC4Shape.text + "»", - c4ShapeTypeConf - ); - c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2; - c4Shape.typeC4Shape.Y = conf.c4ShapePadding; - Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4; - c4Shape.image = { width: 0, height: 0, Y: 0 }; - switch (c4Shape.typeC4Shape.text) { - case "person": - case "external_person": - c4Shape.image.width = 48; - c4Shape.image.height = 48; - c4Shape.image.Y = Y; - Y = c4Shape.image.Y + c4Shape.image.height; - break; - } - if (c4Shape.sprite) { - c4Shape.image.width = 48; - c4Shape.image.height = 48; - c4Shape.image.Y = Y; - Y = c4Shape.image.Y + c4Shape.image.height; - } - let c4ShapeTextWrap = c4Shape.wrap && conf.wrap; - let textLimitWidth = conf.width - conf.c4ShapePadding * 2; - let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); - c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2; - c4ShapeLabelConf.fontWeight = "bold"; - calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth); - c4Shape["label"].Y = Y + 8; - Y = c4Shape["label"].Y + c4Shape["label"].height; - if (c4Shape.type && c4Shape.type.text !== "") { - c4Shape.type.text = "[" + c4Shape.type.text + "]"; - let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text); - calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth); - c4Shape["type"].Y = Y + 5; - Y = c4Shape["type"].Y + c4Shape["type"].height; - } else if (c4Shape.techn && c4Shape.techn.text !== "") { - c4Shape.techn.text = "[" + c4Shape.techn.text + "]"; - let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text); - calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth); - c4Shape["techn"].Y = Y + 5; - Y = c4Shape["techn"].Y + c4Shape["techn"].height; - } - let rectHeight = Y; - let rectWidth = c4Shape.label.width; - if (c4Shape.descr && c4Shape.descr.text !== "") { - let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text); - calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth); - c4Shape["descr"].Y = Y + 20; - Y = c4Shape["descr"].Y + c4Shape["descr"].height; - rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width); - rectHeight = Y - c4Shape["descr"].textLines * 5; - } - rectWidth = rectWidth + conf.c4ShapePadding; - c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width); - c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height); - c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin; - currentBounds.insert(c4Shape); - svgDraw.drawC4Shape(diagram2, c4Shape, conf); - } - currentBounds.bumpLastMargin(conf.c4ShapeMargin); -}; -var Point = class { - constructor(x, y) { - this.x = x; - this.y = y; - } -}; -var getIntersectPoint = function(fromNode, endPoint) { - let x1 = fromNode.x; - let y1 = fromNode.y; - let x2 = endPoint.x; - let y2 = endPoint.y; - let fromCenterX = x1 + fromNode.width / 2; - let fromCenterY = y1 + fromNode.height / 2; - let dx = Math.abs(x1 - x2); - let dy = Math.abs(y1 - y2); - let tanDYX = dy / dx; - let fromDYX = fromNode.height / fromNode.width; - let returnPoint = null; - if (y1 == y2 && x1 < x2) { - returnPoint = new Point(x1 + fromNode.width, fromCenterY); - } else if (y1 == y2 && x1 > x2) { - returnPoint = new Point(x1, fromCenterY); - } else if (x1 == x2 && y1 < y2) { - returnPoint = new Point(fromCenterX, y1 + fromNode.height); - } else if (x1 == x2 && y1 > y2) { - returnPoint = new Point(fromCenterX, y1); - } - if (x1 > x2 && y1 < y2) { - if (fromDYX >= tanDYX) { - returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2); - } else { - returnPoint = new Point( - fromCenterX - dx / dy * fromNode.height / 2, - y1 + fromNode.height - ); - } - } else if (x1 < x2 && y1 < y2) { - if (fromDYX >= tanDYX) { - returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2); - } else { - returnPoint = new Point( - fromCenterX + dx / dy * fromNode.height / 2, - y1 + fromNode.height - ); - } - } else if (x1 < x2 && y1 > y2) { - if (fromDYX >= tanDYX) { - returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2); - } else { - returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1); - } - } else if (x1 > x2 && y1 > y2) { - if (fromDYX >= tanDYX) { - returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX); - } else { - returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1); - } - } - return returnPoint; -}; -var getIntersectPoints = function(fromNode, endNode) { - let endIntersectPoint = { x: 0, y: 0 }; - endIntersectPoint.x = endNode.x + endNode.width / 2; - endIntersectPoint.y = endNode.y + endNode.height / 2; - let startPoint = getIntersectPoint(fromNode, endIntersectPoint); - endIntersectPoint.x = fromNode.x + fromNode.width / 2; - endIntersectPoint.y = fromNode.y + fromNode.height / 2; - let endPoint = getIntersectPoint(endNode, endIntersectPoint); - return { startPoint, endPoint }; -}; -var drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) { - let i = 0; - for (let rel of rels2) { - i = i + 1; - let relTextWrap = rel.wrap && conf.wrap; - let relConf = messageFont(conf); - let diagramType = diagObj.db.getC4Type(); - if (diagramType === "C4Dynamic") { - rel.label.text = i + ": " + rel.label.text; - } - let textLimitWidth = calculateTextWidth(rel.label.text, relConf); - calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth); - if (rel.techn && rel.techn.text !== "") { - textLimitWidth = calculateTextWidth(rel.techn.text, relConf); - calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth); - } - if (rel.descr && rel.descr.text !== "") { - textLimitWidth = calculateTextWidth(rel.descr.text, relConf); - calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth); - } - let fromNode = getC4ShapeObj(rel.from); - let endNode = getC4ShapeObj(rel.to); - let points = getIntersectPoints(fromNode, endNode); - rel.startPoint = points.startPoint; - rel.endPoint = points.endPoint; - } - svgDraw.drawRels(diagram2, rels2, conf); -}; -function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) { - let currentBounds = new Bounds(diagObj); - currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length); - for (let [i, currentBoundary] of currentBoundaries.entries()) { - let Y = 0; - currentBoundary.image = { width: 0, height: 0, Y: 0 }; - if (currentBoundary.sprite) { - currentBoundary.image.width = 48; - currentBoundary.image.height = 48; - currentBoundary.image.Y = Y; - Y = currentBoundary.image.Y + currentBoundary.image.height; - } - let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap; - let currentBoundaryLabelConf = boundaryFont(conf); - currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2; - currentBoundaryLabelConf.fontWeight = "bold"; - calcC4ShapeTextWH( - "label", - currentBoundary, - currentBoundaryTextWrap, - currentBoundaryLabelConf, - currentBounds.data.widthLimit - ); - currentBoundary["label"].Y = Y + 8; - Y = currentBoundary["label"].Y + currentBoundary["label"].height; - if (currentBoundary.type && currentBoundary.type.text !== "") { - currentBoundary.type.text = "[" + currentBoundary.type.text + "]"; - let currentBoundaryTypeConf = boundaryFont(conf); - calcC4ShapeTextWH( - "type", - currentBoundary, - currentBoundaryTextWrap, - currentBoundaryTypeConf, - currentBounds.data.widthLimit - ); - currentBoundary["type"].Y = Y + 5; - Y = currentBoundary["type"].Y + currentBoundary["type"].height; - } - if (currentBoundary.descr && currentBoundary.descr.text !== "") { - let currentBoundaryDescrConf = boundaryFont(conf); - currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2; - calcC4ShapeTextWH( - "descr", - currentBoundary, - currentBoundaryTextWrap, - currentBoundaryDescrConf, - currentBounds.data.widthLimit - ); - currentBoundary["descr"].Y = Y + 20; - Y = currentBoundary["descr"].Y + currentBoundary["descr"].height; - } - if (i == 0 || i % c4BoundaryInRow === 0) { - let _x = parentBounds.data.startx + conf.diagramMarginX; - let _y = parentBounds.data.stopy + conf.diagramMarginY + Y; - currentBounds.setData(_x, _x, _y, _y); - } else { - let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx; - let _y = currentBounds.data.starty; - currentBounds.setData(_x, _x, _y, _y); - } - currentBounds.name = currentBoundary.alias; - let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias); - let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias); - if (currentPersonOrSystemKeys.length > 0) { - drawC4ShapeArray( - currentBounds, - diagram2, - currentPersonOrSystemArray, - currentPersonOrSystemKeys - ); - } - parentBoundaryAlias = currentBoundary.alias; - let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias); - if (nextCurrentBoundarys.length > 0) { - drawInsideBoundary( - diagram2, - parentBoundaryAlias, - currentBounds, - nextCurrentBoundarys, - diagObj - ); - } - if (currentBoundary.alias !== "global") { - drawBoundary(diagram2, currentBoundary, currentBounds); - } - parentBounds.data.stopy = Math.max( - currentBounds.data.stopy + conf.c4ShapeMargin, - parentBounds.data.stopy - ); - parentBounds.data.stopx = Math.max( - currentBounds.data.stopx + conf.c4ShapeMargin, - parentBounds.data.stopx - ); - globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx); - globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy); - } -} -var draw = function(_text, id, _version, diagObj) { - conf = getConfig().c4; - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - let db2 = diagObj.db; - diagObj.db.setWrap(conf.wrap); - c4ShapeInRow = db2.getC4ShapeInRow(); - c4BoundaryInRow = db2.getC4BoundaryInRow(); - log$1.debug(`C:${JSON.stringify(conf, null, 2)}`); - const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select_default(`[id="${id}"]`); - svgDraw.insertComputerIcon(diagram2); - svgDraw.insertDatabaseIcon(diagram2); - svgDraw.insertClockIcon(diagram2); - let screenBounds = new Bounds(diagObj); - screenBounds.setData( - conf.diagramMarginX, - conf.diagramMarginX, - conf.diagramMarginY, - conf.diagramMarginY - ); - screenBounds.data.widthLimit = screen.availWidth; - globalBoundaryMaxX = conf.diagramMarginX; - globalBoundaryMaxY = conf.diagramMarginY; - const title2 = diagObj.db.getTitle(); - let currentBoundaries = diagObj.db.getBoundarys(""); - drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj); - svgDraw.insertArrowHead(diagram2); - svgDraw.insertArrowEnd(diagram2); - svgDraw.insertArrowCrossHead(diagram2); - svgDraw.insertArrowFilledHead(diagram2); - drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj); - screenBounds.data.stopx = globalBoundaryMaxX; - screenBounds.data.stopy = globalBoundaryMaxY; - const box = screenBounds.data; - let boxHeight = box.stopy - box.starty; - let height = boxHeight + 2 * conf.diagramMarginY; - let boxWidth = box.stopx - box.startx; - const width = boxWidth + 2 * conf.diagramMarginX; - if (title2) { - diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr("y", box.starty + conf.diagramMarginY); - } - configureSvgSize(diagram2, height, width, conf.useMaxWidth); - const extraVertForTitle = title2 ? 60 : 0; - diagram2.attr( - "viewBox", - box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle) - ); - log$1.debug(`models:`, box); -}; -var renderer = { - drawPersonOrSystemArray: drawC4ShapeArray, - drawBoundary, - setConf, - draw -}; -var getStyles = (options) => `.person { - stroke: ${options.personBorder}; - fill: ${options.personBkg}; - } -`; -var styles = getStyles; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: ({ c4, wrap }) => { - renderer.setConf(c4); - db.setWrap(wrap); - } -}; -export { - diagram -}; -//# sourceMappingURL=c4Diagram-817c8e44-46XEDHFI.js.map diff --git a/.vuepress/.cache/deps/c4Diagram-817c8e44-46XEDHFI.js.map b/.vuepress/.cache/deps/c4Diagram-817c8e44-46XEDHFI.js.map deleted file mode 100644 index 27f3ce2d1..000000000 --- a/.vuepress/.cache/deps/c4Diagram-817c8e44-46XEDHFI.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/c4Diagram-817c8e44.js"], - "sourcesContent": ["import { s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, c as getConfig, d as sanitizeText, e as common, f as assignWithDepth, h as calculateTextWidth, l as log, i as configureSvgSize, w as wrapLabel, j as calculateTextHeight } from \"./mermaid-934d9bea.js\";\nimport { select } from \"d3\";\nimport { d as drawRect$1, g as getNoteRect } from \"./svgDrawCommon-ad5ef572.js\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 24], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 63], $V6 = [1, 64], $V7 = [1, 65], $V8 = [1, 66], $V9 = [1, 67], $Va = [1, 68], $Vb = [1, 69], $Vc = [1, 29], $Vd = [1, 30], $Ve = [1, 31], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 34], $Vi = [1, 35], $Vj = [1, 36], $Vk = [1, 37], $Vl = [1, 38], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 43], $Vr = [1, 44], $Vs = [1, 45], $Vt = [1, 46], $Vu = [1, 47], $Vv = [1, 48], $Vw = [1, 50], $Vx = [1, 51], $Vy = [1, 52], $Vz = [1, 53], $VA = [1, 54], $VB = [1, 55], $VC = [1, 56], $VD = [1, 57], $VE = [1, 58], $VF = [1, 59], $VG = [1, 60], $VH = [14, 42], $VI = [14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VJ = [12, 14, 34, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], $VK = [1, 82], $VL = [1, 83], $VM = [1, 84], $VN = [1, 85], $VO = [12, 14, 42], $VP = [12, 14, 33, 42], $VQ = [12, 14, 33, 42, 76, 77, 79, 80], $VR = [12, 33], $VS = [34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mermaidDoc\": 4, \"direction\": 5, \"direction_tb\": 6, \"direction_bt\": 7, \"direction_rl\": 8, \"direction_lr\": 9, \"graphConfig\": 10, \"C4_CONTEXT\": 11, \"NEWLINE\": 12, \"statements\": 13, \"EOF\": 14, \"C4_CONTAINER\": 15, \"C4_COMPONENT\": 16, \"C4_DYNAMIC\": 17, \"C4_DEPLOYMENT\": 18, \"otherStatements\": 19, \"diagramStatements\": 20, \"otherStatement\": 21, \"title\": 22, \"accDescription\": 23, \"acc_title\": 24, \"acc_title_value\": 25, \"acc_descr\": 26, \"acc_descr_value\": 27, \"acc_descr_multiline_value\": 28, \"boundaryStatement\": 29, \"boundaryStartStatement\": 30, \"boundaryStopStatement\": 31, \"boundaryStart\": 32, \"LBRACE\": 33, \"ENTERPRISE_BOUNDARY\": 34, \"attributes\": 35, \"SYSTEM_BOUNDARY\": 36, \"BOUNDARY\": 37, \"CONTAINER_BOUNDARY\": 38, \"NODE\": 39, \"NODE_L\": 40, \"NODE_R\": 41, \"RBRACE\": 42, \"diagramStatement\": 43, \"PERSON\": 44, \"PERSON_EXT\": 45, \"SYSTEM\": 46, \"SYSTEM_DB\": 47, \"SYSTEM_QUEUE\": 48, \"SYSTEM_EXT\": 49, \"SYSTEM_EXT_DB\": 50, \"SYSTEM_EXT_QUEUE\": 51, \"CONTAINER\": 52, \"CONTAINER_DB\": 53, \"CONTAINER_QUEUE\": 54, \"CONTAINER_EXT\": 55, \"CONTAINER_EXT_DB\": 56, \"CONTAINER_EXT_QUEUE\": 57, \"COMPONENT\": 58, \"COMPONENT_DB\": 59, \"COMPONENT_QUEUE\": 60, \"COMPONENT_EXT\": 61, \"COMPONENT_EXT_DB\": 62, \"COMPONENT_EXT_QUEUE\": 63, \"REL\": 64, \"BIREL\": 65, \"REL_U\": 66, \"REL_D\": 67, \"REL_L\": 68, \"REL_R\": 69, \"REL_B\": 70, \"REL_INDEX\": 71, \"UPDATE_EL_STYLE\": 72, \"UPDATE_REL_STYLE\": 73, \"UPDATE_LAYOUT_CONFIG\": 74, \"attribute\": 75, \"STR\": 76, \"STR_KEY\": 77, \"STR_VALUE\": 78, \"ATTRIBUTE\": 79, \"ATTRIBUTE_EMPTY\": 80, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"direction_tb\", 7: \"direction_bt\", 8: \"direction_rl\", 9: \"direction_lr\", 11: \"C4_CONTEXT\", 12: \"NEWLINE\", 14: \"EOF\", 15: \"C4_CONTAINER\", 16: \"C4_COMPONENT\", 17: \"C4_DYNAMIC\", 18: \"C4_DEPLOYMENT\", 22: \"title\", 23: \"accDescription\", 24: \"acc_title\", 25: \"acc_title_value\", 26: \"acc_descr\", 27: \"acc_descr_value\", 28: \"acc_descr_multiline_value\", 33: \"LBRACE\", 34: \"ENTERPRISE_BOUNDARY\", 36: \"SYSTEM_BOUNDARY\", 37: \"BOUNDARY\", 38: \"CONTAINER_BOUNDARY\", 39: \"NODE\", 40: \"NODE_L\", 41: \"NODE_R\", 42: \"RBRACE\", 44: \"PERSON\", 45: \"PERSON_EXT\", 46: \"SYSTEM\", 47: \"SYSTEM_DB\", 48: \"SYSTEM_QUEUE\", 49: \"SYSTEM_EXT\", 50: \"SYSTEM_EXT_DB\", 51: \"SYSTEM_EXT_QUEUE\", 52: \"CONTAINER\", 53: \"CONTAINER_DB\", 54: \"CONTAINER_QUEUE\", 55: \"CONTAINER_EXT\", 56: \"CONTAINER_EXT_DB\", 57: \"CONTAINER_EXT_QUEUE\", 58: \"COMPONENT\", 59: \"COMPONENT_DB\", 60: \"COMPONENT_QUEUE\", 61: \"COMPONENT_EXT\", 62: \"COMPONENT_EXT_DB\", 63: \"COMPONENT_EXT_QUEUE\", 64: \"REL\", 65: \"BIREL\", 66: \"REL_U\", 67: \"REL_D\", 68: \"REL_L\", 69: \"REL_R\", 70: \"REL_B\", 71: \"REL_INDEX\", 72: \"UPDATE_EL_STYLE\", 73: \"UPDATE_REL_STYLE\", 74: \"UPDATE_LAYOUT_CONFIG\", 76: \"STR\", 77: \"STR_KEY\", 78: \"STR_VALUE\", 79: \"ATTRIBUTE\", 80: \"ATTRIBUTE_EMPTY\" },\n productions_: [0, [3, 1], [3, 1], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [13, 1], [13, 1], [13, 2], [19, 1], [19, 2], [19, 3], [21, 1], [21, 1], [21, 2], [21, 2], [21, 1], [29, 3], [30, 3], [30, 3], [30, 4], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [32, 2], [31, 1], [20, 1], [20, 2], [20, 3], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 1], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [43, 2], [35, 1], [35, 2], [75, 1], [75, 2], [75, 1], [75, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setDirection(\"TB\");\n break;\n case 4:\n yy.setDirection(\"BT\");\n break;\n case 5:\n yy.setDirection(\"RL\");\n break;\n case 6:\n yy.setDirection(\"LR\");\n break;\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n yy.setC4Type($$[$0 - 3]);\n break;\n case 19:\n yy.setTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 20:\n yy.setAccDescription($$[$0].substring(15));\n this.$ = $$[$0].substring(15);\n break;\n case 21:\n this.$ = $$[$0].trim();\n yy.setTitle(this.$);\n break;\n case 22:\n case 23:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n case 29:\n $$[$0].splice(2, 0, \"ENTERPRISE\");\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 30:\n yy.addPersonOrSystemBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 31:\n $$[$0].splice(2, 0, \"CONTAINER\");\n yy.addContainerBoundary(...$$[$0]);\n this.$ = $$[$0];\n break;\n case 32:\n yy.addDeploymentNode(\"node\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 33:\n yy.addDeploymentNode(\"nodeL\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 34:\n yy.addDeploymentNode(\"nodeR\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 35:\n yy.popBoundaryParseStack();\n break;\n case 39:\n yy.addPersonOrSystem(\"person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 40:\n yy.addPersonOrSystem(\"external_person\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 41:\n yy.addPersonOrSystem(\"system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 42:\n yy.addPersonOrSystem(\"system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 43:\n yy.addPersonOrSystem(\"system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 44:\n yy.addPersonOrSystem(\"external_system\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 45:\n yy.addPersonOrSystem(\"external_system_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 46:\n yy.addPersonOrSystem(\"external_system_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 47:\n yy.addContainer(\"container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 48:\n yy.addContainer(\"container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 49:\n yy.addContainer(\"container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 50:\n yy.addContainer(\"external_container\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 51:\n yy.addContainer(\"external_container_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 52:\n yy.addContainer(\"external_container_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 53:\n yy.addComponent(\"component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 54:\n yy.addComponent(\"component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 55:\n yy.addComponent(\"component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 56:\n yy.addComponent(\"external_component\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 57:\n yy.addComponent(\"external_component_db\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 58:\n yy.addComponent(\"external_component_queue\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 60:\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 61:\n yy.addRel(\"birel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 62:\n yy.addRel(\"rel_u\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 63:\n yy.addRel(\"rel_d\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 64:\n yy.addRel(\"rel_l\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 65:\n yy.addRel(\"rel_r\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 66:\n yy.addRel(\"rel_b\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 67:\n $$[$0].splice(0, 1);\n yy.addRel(\"rel\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 68:\n yy.updateElStyle(\"update_el_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 69:\n yy.updateRelStyle(\"update_rel_style\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 70:\n yy.updateLayoutConfig(\"update_layout_config\", ...$$[$0]);\n this.$ = $$[$0];\n break;\n case 71:\n this.$ = [$$[$0]];\n break;\n case 72:\n $$[$0].unshift($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 73:\n case 75:\n this.$ = $$[$0].trim();\n break;\n case 74:\n let kv = {};\n kv[$$[$0 - 1].trim()] = $$[$0].trim();\n this.$ = kv;\n break;\n case 76:\n this.$ = \"\";\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 7: [1, 6], 8: [1, 7], 9: [1, 8], 10: 4, 11: [1, 9], 15: [1, 10], 16: [1, 11], 17: [1, 12], 18: [1, 13] }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 7] }, { 1: [2, 3] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 12: [1, 14] }, { 12: [1, 15] }, { 12: [1, 16] }, { 12: [1, 17] }, { 12: [1, 18] }, { 13: 19, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 70, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 71, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 72, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 13: 73, 19: 20, 20: 21, 21: 22, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 14: [1, 74] }, o($VH, [2, 13], { 43: 23, 29: 49, 30: 61, 32: 62, 20: 75, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VH, [2, 14]), o($VI, [2, 16], { 12: [1, 76] }), o($VH, [2, 36], { 12: [1, 77] }), o($VJ, [2, 19]), o($VJ, [2, 20]), { 25: [1, 78] }, { 27: [1, 79] }, o($VJ, [2, 23]), { 35: 80, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 86, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 87, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 88, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 89, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 90, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 91, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 92, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 93, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 94, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 95, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 96, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 97, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 98, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 99, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 100, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 101, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 102, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 103, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 104, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, o($VO, [2, 59]), { 35: 105, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 106, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 107, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 108, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 109, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 110, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 111, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 112, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 113, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 114, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 115, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 20: 116, 29: 49, 30: 61, 32: 62, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 43: 23, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }, { 12: [1, 118], 33: [1, 117] }, { 35: 119, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 120, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 121, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 122, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 123, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 124, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 35: 125, 75: 81, 76: $VK, 77: $VL, 79: $VM, 80: $VN }, { 14: [1, 126] }, { 14: [1, 127] }, { 14: [1, 128] }, { 14: [1, 129] }, { 1: [2, 8] }, o($VH, [2, 15]), o($VI, [2, 17], { 21: 22, 19: 130, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4 }), o($VH, [2, 37], { 19: 20, 20: 21, 21: 22, 43: 23, 29: 49, 30: 61, 32: 62, 13: 131, 22: $V0, 23: $V1, 24: $V2, 26: $V3, 28: $V4, 34: $V5, 36: $V6, 37: $V7, 38: $V8, 39: $V9, 40: $Va, 41: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi, 51: $Vj, 52: $Vk, 53: $Vl, 54: $Vm, 55: $Vn, 56: $Vo, 57: $Vp, 58: $Vq, 59: $Vr, 60: $Vs, 61: $Vt, 62: $Vu, 63: $Vv, 64: $Vw, 65: $Vx, 66: $Vy, 67: $Vz, 68: $VA, 69: $VB, 70: $VC, 71: $VD, 72: $VE, 73: $VF, 74: $VG }), o($VJ, [2, 21]), o($VJ, [2, 22]), o($VO, [2, 39]), o($VP, [2, 71], { 75: 81, 35: 132, 76: $VK, 77: $VL, 79: $VM, 80: $VN }), o($VQ, [2, 73]), { 78: [1, 133] }, o($VQ, [2, 75]), o($VQ, [2, 76]), o($VO, [2, 40]), o($VO, [2, 41]), o($VO, [2, 42]), o($VO, [2, 43]), o($VO, [2, 44]), o($VO, [2, 45]), o($VO, [2, 46]), o($VO, [2, 47]), o($VO, [2, 48]), o($VO, [2, 49]), o($VO, [2, 50]), o($VO, [2, 51]), o($VO, [2, 52]), o($VO, [2, 53]), o($VO, [2, 54]), o($VO, [2, 55]), o($VO, [2, 56]), o($VO, [2, 57]), o($VO, [2, 58]), o($VO, [2, 60]), o($VO, [2, 61]), o($VO, [2, 62]), o($VO, [2, 63]), o($VO, [2, 64]), o($VO, [2, 65]), o($VO, [2, 66]), o($VO, [2, 67]), o($VO, [2, 68]), o($VO, [2, 69]), o($VO, [2, 70]), { 31: 134, 42: [1, 135] }, { 12: [1, 136] }, { 33: [1, 137] }, o($VR, [2, 28]), o($VR, [2, 29]), o($VR, [2, 30]), o($VR, [2, 31]), o($VR, [2, 32]), o($VR, [2, 33]), o($VR, [2, 34]), { 1: [2, 9] }, { 1: [2, 10] }, { 1: [2, 11] }, { 1: [2, 12] }, o($VI, [2, 18]), o($VH, [2, 38]), o($VP, [2, 72]), o($VQ, [2, 74]), o($VO, [2, 24]), o($VO, [2, 35]), o($VS, [2, 25]), o($VS, [2, 26], { 12: [1, 138] }), o($VS, [2, 27])],\n defaultActions: { 2: [2, 1], 3: [2, 2], 4: [2, 7], 5: [2, 3], 6: [2, 4], 7: [2, 5], 8: [2, 6], 74: [2, 8], 126: [2, 9], 127: [2, 10], 128: [2, 11], 129: [2, 12] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c2 = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c2 + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: {},\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 6;\n case 1:\n return 7;\n case 2:\n return 8;\n case 3:\n return 9;\n case 4:\n return 22;\n case 5:\n return 23;\n case 6:\n this.begin(\"acc_title\");\n return 24;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 26;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n break;\n case 14:\n c;\n break;\n case 15:\n return 12;\n case 16:\n break;\n case 17:\n return 11;\n case 18:\n return 15;\n case 19:\n return 16;\n case 20:\n return 17;\n case 21:\n return 18;\n case 22:\n this.begin(\"person_ext\");\n return 45;\n case 23:\n this.begin(\"person\");\n return 44;\n case 24:\n this.begin(\"system_ext_queue\");\n return 51;\n case 25:\n this.begin(\"system_ext_db\");\n return 50;\n case 26:\n this.begin(\"system_ext\");\n return 49;\n case 27:\n this.begin(\"system_queue\");\n return 48;\n case 28:\n this.begin(\"system_db\");\n return 47;\n case 29:\n this.begin(\"system\");\n return 46;\n case 30:\n this.begin(\"boundary\");\n return 37;\n case 31:\n this.begin(\"enterprise_boundary\");\n return 34;\n case 32:\n this.begin(\"system_boundary\");\n return 36;\n case 33:\n this.begin(\"container_ext_queue\");\n return 57;\n case 34:\n this.begin(\"container_ext_db\");\n return 56;\n case 35:\n this.begin(\"container_ext\");\n return 55;\n case 36:\n this.begin(\"container_queue\");\n return 54;\n case 37:\n this.begin(\"container_db\");\n return 53;\n case 38:\n this.begin(\"container\");\n return 52;\n case 39:\n this.begin(\"container_boundary\");\n return 38;\n case 40:\n this.begin(\"component_ext_queue\");\n return 63;\n case 41:\n this.begin(\"component_ext_db\");\n return 62;\n case 42:\n this.begin(\"component_ext\");\n return 61;\n case 43:\n this.begin(\"component_queue\");\n return 60;\n case 44:\n this.begin(\"component_db\");\n return 59;\n case 45:\n this.begin(\"component\");\n return 58;\n case 46:\n this.begin(\"node\");\n return 39;\n case 47:\n this.begin(\"node\");\n return 39;\n case 48:\n this.begin(\"node_l\");\n return 40;\n case 49:\n this.begin(\"node_r\");\n return 41;\n case 50:\n this.begin(\"rel\");\n return 64;\n case 51:\n this.begin(\"birel\");\n return 65;\n case 52:\n this.begin(\"rel_u\");\n return 66;\n case 53:\n this.begin(\"rel_u\");\n return 66;\n case 54:\n this.begin(\"rel_d\");\n return 67;\n case 55:\n this.begin(\"rel_d\");\n return 67;\n case 56:\n this.begin(\"rel_l\");\n return 68;\n case 57:\n this.begin(\"rel_l\");\n return 68;\n case 58:\n this.begin(\"rel_r\");\n return 69;\n case 59:\n this.begin(\"rel_r\");\n return 69;\n case 60:\n this.begin(\"rel_b\");\n return 70;\n case 61:\n this.begin(\"rel_index\");\n return 71;\n case 62:\n this.begin(\"update_el_style\");\n return 72;\n case 63:\n this.begin(\"update_rel_style\");\n return 73;\n case 64:\n this.begin(\"update_layout_config\");\n return 74;\n case 65:\n return \"EOF_IN_STRUCT\";\n case 66:\n this.begin(\"attribute\");\n return \"ATTRIBUTE_EMPTY\";\n case 67:\n this.begin(\"attribute\");\n break;\n case 68:\n this.popState();\n this.popState();\n break;\n case 69:\n return 80;\n case 70:\n break;\n case 71:\n return 80;\n case 72:\n this.begin(\"string\");\n break;\n case 73:\n this.popState();\n break;\n case 74:\n return \"STR\";\n case 75:\n this.begin(\"string_kv\");\n break;\n case 76:\n this.begin(\"string_kv_key\");\n return \"STR_KEY\";\n case 77:\n this.popState();\n this.begin(\"string_kv_value\");\n break;\n case 78:\n return \"STR_VALUE\";\n case 79:\n this.popState();\n this.popState();\n break;\n case 80:\n return \"STR\";\n case 81:\n return \"LBRACE\";\n case 82:\n return \"RBRACE\";\n case 83:\n return \"SPACE\";\n case 84:\n return \"EOL\";\n case 85:\n return 14;\n }\n },\n rules: [/^(?:.*direction\\s+TB[^\\n]*)/, /^(?:.*direction\\s+BT[^\\n]*)/, /^(?:.*direction\\s+RL[^\\n]*)/, /^(?:.*direction\\s+LR[^\\n]*)/, /^(?:title\\s[^#\\n;]+)/, /^(?:accDescription\\s[^#\\n;]+)/, /^(?:accTitle\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*:\\s*)/, /^(?:(?!\\n||)*[^\\n]*)/, /^(?:accDescr\\s*\\{\\s*)/, /^(?:[\\}])/, /^(?:[^\\}]*)/, /^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/, /^(?:%%[^\\n]*(\\r?\\n)*)/, /^(?:\\s*(\\r?\\n)+)/, /^(?:\\s+)/, /^(?:C4Context\\b)/, /^(?:C4Container\\b)/, /^(?:C4Component\\b)/, /^(?:C4Dynamic\\b)/, /^(?:C4Deployment\\b)/, /^(?:Person_Ext\\b)/, /^(?:Person\\b)/, /^(?:SystemQueue_Ext\\b)/, /^(?:SystemDb_Ext\\b)/, /^(?:System_Ext\\b)/, /^(?:SystemQueue\\b)/, /^(?:SystemDb\\b)/, /^(?:System\\b)/, /^(?:Boundary\\b)/, /^(?:Enterprise_Boundary\\b)/, /^(?:System_Boundary\\b)/, /^(?:ContainerQueue_Ext\\b)/, /^(?:ContainerDb_Ext\\b)/, /^(?:Container_Ext\\b)/, /^(?:ContainerQueue\\b)/, /^(?:ContainerDb\\b)/, /^(?:Container\\b)/, /^(?:Container_Boundary\\b)/, /^(?:ComponentQueue_Ext\\b)/, /^(?:ComponentDb_Ext\\b)/, /^(?:Component_Ext\\b)/, /^(?:ComponentQueue\\b)/, /^(?:ComponentDb\\b)/, /^(?:Component\\b)/, /^(?:Deployment_Node\\b)/, /^(?:Node\\b)/, /^(?:Node_L\\b)/, /^(?:Node_R\\b)/, /^(?:Rel\\b)/, /^(?:BiRel\\b)/, /^(?:Rel_Up\\b)/, /^(?:Rel_U\\b)/, /^(?:Rel_Down\\b)/, /^(?:Rel_D\\b)/, /^(?:Rel_Left\\b)/, /^(?:Rel_L\\b)/, /^(?:Rel_Right\\b)/, /^(?:Rel_R\\b)/, /^(?:Rel_Back\\b)/, /^(?:RelIndex\\b)/, /^(?:UpdateElementStyle\\b)/, /^(?:UpdateRelStyle\\b)/, /^(?:UpdateLayoutConfig\\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*[\"][\"])/, /^(?:[ ]*[\"])/, /^(?:[\"])/, /^(?:[^\"]*)/, /^(?:[ ]*[\\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*[\"])/, /^(?:[^\"]+)/, /^(?:[\"])/, /^(?:[^,]+)/, /^(?:\\{)/, /^(?:\\})/, /^(?:[\\s]+)/, /^(?:[\\n\\r]+)/, /^(?:$)/],\n conditions: { \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"string_kv_value\": { \"rules\": [78, 79], \"inclusive\": false }, \"string_kv_key\": { \"rules\": [77], \"inclusive\": false }, \"string_kv\": { \"rules\": [76], \"inclusive\": false }, \"string\": { \"rules\": [73, 74], \"inclusive\": false }, \"attribute\": { \"rules\": [68, 69, 70, 71, 72, 75, 80], \"inclusive\": false }, \"update_layout_config\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_rel_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"update_el_style\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_b\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_d\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_u\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"rel_bi\": { \"rules\": [], \"inclusive\": false }, \"rel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_r\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node_l\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"node\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"index\": { \"rules\": [], \"inclusive\": false }, \"rel_index\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext_queue\": { \"rules\": [], \"inclusive\": false }, \"component_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"component\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"container\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"birel\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"enterprise_boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"boundary\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_queue\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system_db\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"system\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person_ext\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"person\": { \"rules\": [65, 66, 67, 68], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 81, 82, 83, 84, 85], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet c4ShapeArray = [];\nlet boundaryParseStack = [\"\"];\nlet currentBoundaryParse = \"global\";\nlet parentBoundaryParse = \"\";\nlet boundarys = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n];\nlet rels = [];\nlet title = \"\";\nlet wrapEnabled = false;\nlet c4ShapeInRow$1 = 4;\nlet c4BoundaryInRow$1 = 2;\nvar c4Type;\nconst getC4Type = function() {\n return c4Type;\n};\nconst setC4Type = function(c4TypeParam) {\n let sanitizedText = sanitizeText(c4TypeParam, getConfig());\n c4Type = sanitizedText;\n};\nconst addRel = function(type, from, to, label, techn, descr, sprite, tags, link) {\n if (type === void 0 || type === null || from === void 0 || from === null || to === void 0 || to === null || label === void 0 || label === null) {\n return;\n }\n let rel = {};\n const old = rels.find((rel2) => rel2.from === from && rel2.to === to);\n if (old) {\n rel = old;\n } else {\n rels.push(rel);\n }\n rel.type = type;\n rel.from = from;\n rel.to = to;\n rel.label = { text: label };\n if (techn === void 0 || techn === null) {\n rel.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n rel[key] = { text: value };\n } else {\n rel.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n rel.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n rel[key] = { text: value };\n } else {\n rel.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n rel[key] = value;\n } else {\n rel.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n rel[key] = value;\n } else {\n rel.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n rel[key] = value;\n } else {\n rel.link = link;\n }\n rel.wrap = autoWrap();\n};\nconst addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let personOrSystem = {};\n const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);\n if (old && alias === old.alias) {\n personOrSystem = old;\n } else {\n personOrSystem.alias = alias;\n c4ShapeArray.push(personOrSystem);\n }\n if (label === void 0 || label === null) {\n personOrSystem.label = { text: \"\" };\n } else {\n personOrSystem.label = { text: label };\n }\n if (descr === void 0 || descr === null) {\n personOrSystem.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n personOrSystem[key] = { text: value };\n } else {\n personOrSystem.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n personOrSystem[key] = value;\n } else {\n personOrSystem.link = link;\n }\n personOrSystem.typeC4Shape = { text: typeC4Shape };\n personOrSystem.parentBoundary = currentBoundaryParse;\n personOrSystem.wrap = autoWrap();\n};\nconst addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let container = {};\n const old = c4ShapeArray.find((container2) => container2.alias === alias);\n if (old && alias === old.alias) {\n container = old;\n } else {\n container.alias = alias;\n c4ShapeArray.push(container);\n }\n if (label === void 0 || label === null) {\n container.label = { text: \"\" };\n } else {\n container.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n container.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n container[key] = { text: value };\n } else {\n container.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n container.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n container[key] = { text: value };\n } else {\n container.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n container[key] = value;\n } else {\n container.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n container[key] = value;\n } else {\n container.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n container[key] = value;\n } else {\n container.link = link;\n }\n container.wrap = autoWrap();\n container.typeC4Shape = { text: typeC4Shape };\n container.parentBoundary = currentBoundaryParse;\n};\nconst addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let component = {};\n const old = c4ShapeArray.find((component2) => component2.alias === alias);\n if (old && alias === old.alias) {\n component = old;\n } else {\n component.alias = alias;\n c4ShapeArray.push(component);\n }\n if (label === void 0 || label === null) {\n component.label = { text: \"\" };\n } else {\n component.label = { text: label };\n }\n if (techn === void 0 || techn === null) {\n component.techn = { text: \"\" };\n } else {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n component[key] = { text: value };\n } else {\n component.techn = { text: techn };\n }\n }\n if (descr === void 0 || descr === null) {\n component.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n component[key] = { text: value };\n } else {\n component.descr = { text: descr };\n }\n }\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n component[key] = value;\n } else {\n component.sprite = sprite;\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n component[key] = value;\n } else {\n component.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n component[key] = value;\n } else {\n component.link = link;\n }\n component.wrap = autoWrap();\n component.typeC4Shape = { text: typeC4Shape };\n component.parentBoundary = currentBoundaryParse;\n};\nconst addPersonOrSystemBoundary = function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundarys.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"system\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst addContainerBoundary = function(alias, label, type, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundarys.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"container\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst addDeploymentNode = function(nodeType, alias, label, type, descr, sprite, tags, link) {\n if (alias === null || label === null) {\n return;\n }\n let boundary = {};\n const old = boundarys.find((boundary2) => boundary2.alias === alias);\n if (old && alias === old.alias) {\n boundary = old;\n } else {\n boundary.alias = alias;\n boundarys.push(boundary);\n }\n if (label === void 0 || label === null) {\n boundary.label = { text: \"\" };\n } else {\n boundary.label = { text: label };\n }\n if (type === void 0 || type === null) {\n boundary.type = { text: \"node\" };\n } else {\n if (typeof type === \"object\") {\n let [key, value] = Object.entries(type)[0];\n boundary[key] = { text: value };\n } else {\n boundary.type = { text: type };\n }\n }\n if (descr === void 0 || descr === null) {\n boundary.descr = { text: \"\" };\n } else {\n if (typeof descr === \"object\") {\n let [key, value] = Object.entries(descr)[0];\n boundary[key] = { text: value };\n } else {\n boundary.descr = { text: descr };\n }\n }\n if (typeof tags === \"object\") {\n let [key, value] = Object.entries(tags)[0];\n boundary[key] = value;\n } else {\n boundary.tags = tags;\n }\n if (typeof link === \"object\") {\n let [key, value] = Object.entries(link)[0];\n boundary[key] = value;\n } else {\n boundary.link = link;\n }\n boundary.nodeType = nodeType;\n boundary.parentBoundary = currentBoundaryParse;\n boundary.wrap = autoWrap();\n parentBoundaryParse = currentBoundaryParse;\n currentBoundaryParse = alias;\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst popBoundaryParseStack = function() {\n currentBoundaryParse = parentBoundaryParse;\n boundaryParseStack.pop();\n parentBoundaryParse = boundaryParseStack.pop();\n boundaryParseStack.push(parentBoundaryParse);\n};\nconst updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {\n let old = c4ShapeArray.find((element) => element.alias === elementName);\n if (old === void 0) {\n old = boundarys.find((element) => element.alias === elementName);\n if (old === void 0) {\n return;\n }\n }\n if (bgColor !== void 0 && bgColor !== null) {\n if (typeof bgColor === \"object\") {\n let [key, value] = Object.entries(bgColor)[0];\n old[key] = value;\n } else {\n old.bgColor = bgColor;\n }\n }\n if (fontColor !== void 0 && fontColor !== null) {\n if (typeof fontColor === \"object\") {\n let [key, value] = Object.entries(fontColor)[0];\n old[key] = value;\n } else {\n old.fontColor = fontColor;\n }\n }\n if (borderColor !== void 0 && borderColor !== null) {\n if (typeof borderColor === \"object\") {\n let [key, value] = Object.entries(borderColor)[0];\n old[key] = value;\n } else {\n old.borderColor = borderColor;\n }\n }\n if (shadowing !== void 0 && shadowing !== null) {\n if (typeof shadowing === \"object\") {\n let [key, value] = Object.entries(shadowing)[0];\n old[key] = value;\n } else {\n old.shadowing = shadowing;\n }\n }\n if (shape !== void 0 && shape !== null) {\n if (typeof shape === \"object\") {\n let [key, value] = Object.entries(shape)[0];\n old[key] = value;\n } else {\n old.shape = shape;\n }\n }\n if (sprite !== void 0 && sprite !== null) {\n if (typeof sprite === \"object\") {\n let [key, value] = Object.entries(sprite)[0];\n old[key] = value;\n } else {\n old.sprite = sprite;\n }\n }\n if (techn !== void 0 && techn !== null) {\n if (typeof techn === \"object\") {\n let [key, value] = Object.entries(techn)[0];\n old[key] = value;\n } else {\n old.techn = techn;\n }\n }\n if (legendText !== void 0 && legendText !== null) {\n if (typeof legendText === \"object\") {\n let [key, value] = Object.entries(legendText)[0];\n old[key] = value;\n } else {\n old.legendText = legendText;\n }\n }\n if (legendSprite !== void 0 && legendSprite !== null) {\n if (typeof legendSprite === \"object\") {\n let [key, value] = Object.entries(legendSprite)[0];\n old[key] = value;\n } else {\n old.legendSprite = legendSprite;\n }\n }\n};\nconst updateRelStyle = function(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {\n const old = rels.find((rel) => rel.from === from && rel.to === to);\n if (old === void 0) {\n return;\n }\n if (textColor !== void 0 && textColor !== null) {\n if (typeof textColor === \"object\") {\n let [key, value] = Object.entries(textColor)[0];\n old[key] = value;\n } else {\n old.textColor = textColor;\n }\n }\n if (lineColor !== void 0 && lineColor !== null) {\n if (typeof lineColor === \"object\") {\n let [key, value] = Object.entries(lineColor)[0];\n old[key] = value;\n } else {\n old.lineColor = lineColor;\n }\n }\n if (offsetX !== void 0 && offsetX !== null) {\n if (typeof offsetX === \"object\") {\n let [key, value] = Object.entries(offsetX)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetX = parseInt(offsetX);\n }\n }\n if (offsetY !== void 0 && offsetY !== null) {\n if (typeof offsetY === \"object\") {\n let [key, value] = Object.entries(offsetY)[0];\n old[key] = parseInt(value);\n } else {\n old.offsetY = parseInt(offsetY);\n }\n }\n};\nconst updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {\n let c4ShapeInRowValue = c4ShapeInRow$1;\n let c4BoundaryInRowValue = c4BoundaryInRow$1;\n if (typeof c4ShapeInRowParam === \"object\") {\n const value = Object.values(c4ShapeInRowParam)[0];\n c4ShapeInRowValue = parseInt(value);\n } else {\n c4ShapeInRowValue = parseInt(c4ShapeInRowParam);\n }\n if (typeof c4BoundaryInRowParam === \"object\") {\n const value = Object.values(c4BoundaryInRowParam)[0];\n c4BoundaryInRowValue = parseInt(value);\n } else {\n c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);\n }\n if (c4ShapeInRowValue >= 1) {\n c4ShapeInRow$1 = c4ShapeInRowValue;\n }\n if (c4BoundaryInRowValue >= 1) {\n c4BoundaryInRow$1 = c4BoundaryInRowValue;\n }\n};\nconst getC4ShapeInRow = function() {\n return c4ShapeInRow$1;\n};\nconst getC4BoundaryInRow = function() {\n return c4BoundaryInRow$1;\n};\nconst getCurrentBoundaryParse = function() {\n return currentBoundaryParse;\n};\nconst getParentBoundaryParse = function() {\n return parentBoundaryParse;\n};\nconst getC4ShapeArray = function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return c4ShapeArray;\n } else {\n return c4ShapeArray.filter((personOrSystem) => {\n return personOrSystem.parentBoundary === parentBoundary;\n });\n }\n};\nconst getC4Shape = function(alias) {\n return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);\n};\nconst getC4ShapeKeys = function(parentBoundary) {\n return Object.keys(getC4ShapeArray(parentBoundary));\n};\nconst getBoundarys = function(parentBoundary) {\n if (parentBoundary === void 0 || parentBoundary === null) {\n return boundarys;\n } else {\n return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);\n }\n};\nconst getRels = function() {\n return rels;\n};\nconst getTitle = function() {\n return title;\n};\nconst setWrap = function(wrapSetting) {\n wrapEnabled = wrapSetting;\n};\nconst autoWrap = function() {\n return wrapEnabled;\n};\nconst clear = function() {\n c4ShapeArray = [];\n boundarys = [\n {\n alias: \"global\",\n label: { text: \"global\" },\n type: { text: \"global\" },\n tags: null,\n link: null,\n parentBoundary: \"\"\n }\n ];\n parentBoundaryParse = \"\";\n currentBoundaryParse = \"global\";\n boundaryParseStack = [\"\"];\n rels = [];\n boundaryParseStack = [\"\"];\n title = \"\";\n wrapEnabled = false;\n c4ShapeInRow$1 = 4;\n c4BoundaryInRow$1 = 2;\n};\nconst LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25\n};\nconst ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nconst PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nconst setTitle = function(txt) {\n let sanitizedText = sanitizeText(txt, getConfig());\n title = sanitizedText;\n};\nconst db = {\n addPersonOrSystem,\n addPersonOrSystemBoundary,\n addContainer,\n addContainerBoundary,\n addComponent,\n addDeploymentNode,\n popBoundaryParseStack,\n addRel,\n updateElStyle,\n updateRelStyle,\n updateLayoutConfig,\n autoWrap,\n setWrap,\n getC4ShapeArray,\n getC4Shape,\n getC4ShapeKeys,\n getBoundarys,\n getCurrentBoundaryParse,\n getParentBoundaryParse,\n getRels,\n getTitle,\n getC4Type,\n getC4ShapeInRow,\n getC4BoundaryInRow,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n getConfig: () => getConfig().c4,\n clear,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n setTitle,\n setC4Type\n // apply,\n};\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawImage = function(elem, width, height, x, y, link) {\n const imageElem = elem.append(\"image\");\n imageElem.attr(\"width\", width);\n imageElem.attr(\"height\", height);\n imageElem.attr(\"x\", x);\n imageElem.attr(\"y\", y);\n let sanitizedLink = link.startsWith(\"data:image/png;base64\") ? link : sanitizeUrl(link);\n imageElem.attr(\"xlink:href\", sanitizedLink);\n};\nconst drawRels$1 = (elem, rels2, conf2) => {\n const relsElem = elem.append(\"g\");\n let i = 0;\n for (let rel of rels2) {\n let textColor = rel.textColor ? rel.textColor : \"#444444\";\n let strokeColor = rel.lineColor ? rel.lineColor : \"#444444\";\n let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;\n let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;\n let url = \"\";\n if (i === 0) {\n let line = relsElem.append(\"line\");\n line.attr(\"x1\", rel.startPoint.x);\n line.attr(\"y1\", rel.startPoint.y);\n line.attr(\"x2\", rel.endPoint.x);\n line.attr(\"y2\", rel.endPoint.y);\n line.attr(\"stroke-width\", \"1\");\n line.attr(\"stroke\", strokeColor);\n line.style(\"fill\", \"none\");\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n i = -1;\n } else {\n let line = relsElem.append(\"path\");\n line.attr(\"fill\", \"none\").attr(\"stroke-width\", \"1\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,starty Qcontrolx,controly stopx,stopy \".replaceAll(\"startx\", rel.startPoint.x).replaceAll(\"starty\", rel.startPoint.y).replaceAll(\n \"controlx\",\n rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4\n ).replaceAll(\"controly\", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll(\"stopx\", rel.endPoint.x).replaceAll(\"stopy\", rel.endPoint.y)\n );\n if (rel.type !== \"rel_b\") {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (rel.type === \"birel\" || rel.type === \"rel_b\") {\n line.attr(\"marker-start\", \"url(\" + url + \"#arrowend)\");\n }\n }\n let messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n rel.label.text,\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,\n rel.label.width,\n rel.label.height,\n { fill: textColor },\n messageConf\n );\n if (rel.techn && rel.techn.text !== \"\") {\n messageConf = conf2.messageFont();\n _drawTextCandidateFunc(conf2)(\n \"[\" + rel.techn.text + \"]\",\n relsElem,\n Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,\n Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,\n Math.max(rel.label.width, rel.techn.width),\n rel.techn.height,\n { fill: textColor, \"font-style\": \"italic\" },\n messageConf\n );\n }\n }\n};\nconst drawBoundary$1 = function(elem, boundary, conf2) {\n const boundaryElem = elem.append(\"g\");\n let fillColor = boundary.bgColor ? boundary.bgColor : \"none\";\n let strokeColor = boundary.borderColor ? boundary.borderColor : \"#444444\";\n let fontColor = boundary.fontColor ? boundary.fontColor : \"black\";\n let attrsValue = { \"stroke-width\": 1, \"stroke-dasharray\": \"7.0,7.0\" };\n if (boundary.nodeType) {\n attrsValue = { \"stroke-width\": 1 };\n }\n let rectData = {\n x: boundary.x,\n y: boundary.y,\n fill: fillColor,\n stroke: strokeColor,\n width: boundary.width,\n height: boundary.height,\n rx: 2.5,\n ry: 2.5,\n attrs: attrsValue\n };\n drawRect(boundaryElem, rectData);\n let boundaryConf = conf2.boundaryFont();\n boundaryConf.fontWeight = \"bold\";\n boundaryConf.fontSize = boundaryConf.fontSize + 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.label.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.label.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n if (boundary.type && boundary.type.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.type.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.type.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n if (boundary.descr && boundary.descr.text !== \"\") {\n boundaryConf = conf2.boundaryFont();\n boundaryConf.fontSize = boundaryConf.fontSize - 2;\n boundaryConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n boundary.descr.text,\n boundaryElem,\n boundary.x,\n boundary.y + boundary.descr.Y,\n boundary.width,\n boundary.height,\n { fill: \"#444444\" },\n boundaryConf\n );\n }\n};\nconst drawC4Shape = function(elem, c4Shape, conf2) {\n var _a;\n let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + \"_bg_color\"];\n let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + \"_border_color\"];\n let fontColor = c4Shape.fontColor ? c4Shape.fontColor : \"#FFFFFF\";\n let personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=\";\n break;\n case \"external_person\":\n personImg = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=\";\n break;\n }\n const c4ShapeElem = elem.append(\"g\");\n c4ShapeElem.attr(\"class\", \"person-man\");\n const rect = getNoteRect();\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n case \"system\":\n case \"external_system\":\n case \"container\":\n case \"external_container\":\n case \"component\":\n case \"external_component\":\n rect.x = c4Shape.x;\n rect.y = c4Shape.y;\n rect.fill = fillColor;\n rect.width = c4Shape.width;\n rect.height = c4Shape.height;\n rect.stroke = strokeColor;\n rect.rx = 2.5;\n rect.ry = 2.5;\n rect.attrs = { \"stroke-width\": 0.5 };\n drawRect(c4ShapeElem, rect);\n break;\n case \"system_db\":\n case \"external_system_db\":\n case \"container_db\":\n case \"external_container_db\":\n case \"component_db\":\n case \"external_component_db\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2).replaceAll(\"height\", c4Shape.height)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.width / 2)\n );\n break;\n case \"system_queue\":\n case \"external_system_queue\":\n case \"container_queue\":\n case \"external_container_queue\":\n case \"component_queue\":\n case \"external_component_queue\":\n c4ShapeElem.append(\"path\").attr(\"fill\", fillColor).attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half\".replaceAll(\"startx\", c4Shape.x).replaceAll(\"starty\", c4Shape.y).replaceAll(\"width\", c4Shape.width).replaceAll(\"half\", c4Shape.height / 2)\n );\n c4ShapeElem.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke-width\", \"0.5\").attr(\"stroke\", strokeColor).attr(\n \"d\",\n \"Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half\".replaceAll(\"startx\", c4Shape.x + c4Shape.width).replaceAll(\"starty\", c4Shape.y).replaceAll(\"half\", c4Shape.height / 2)\n );\n break;\n }\n let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);\n c4ShapeElem.append(\"text\").attr(\"fill\", fontColor).attr(\"font-family\", c4ShapeFontConf.fontFamily).attr(\"font-size\", c4ShapeFontConf.fontSize - 2).attr(\"font-style\", \"italic\").attr(\"lengthAdjust\", \"spacing\").attr(\"textLength\", c4Shape.typeC4Shape.width).attr(\"x\", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr(\"y\", c4Shape.y + c4Shape.typeC4Shape.Y).text(\"<<\" + c4Shape.typeC4Shape.text + \">>\");\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n drawImage(\n c4ShapeElem,\n 48,\n 48,\n c4Shape.x + c4Shape.width / 2 - 24,\n c4Shape.y + c4Shape.image.Y,\n personImg\n );\n break;\n }\n let textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontWeight = \"bold\";\n textFontConf.fontSize = textFontConf.fontSize + 2;\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.label.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.label.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n textFontConf = conf2[c4Shape.typeC4Shape.text + \"Font\"]();\n textFontConf.fontColor = fontColor;\n if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.techn.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.techn.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n } else if (c4Shape.type && c4Shape.type.text !== \"\") {\n _drawTextCandidateFunc(conf2)(\n c4Shape.type.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.type.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor, \"font-style\": \"italic\" },\n textFontConf\n );\n }\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n textFontConf = conf2.personFont();\n textFontConf.fontColor = fontColor;\n _drawTextCandidateFunc(conf2)(\n c4Shape.descr.text,\n c4ShapeElem,\n c4Shape.x,\n c4Shape.y + c4Shape.descr.Y,\n c4Shape.width,\n c4Shape.height,\n { fill: fontColor },\n textFontConf\n );\n }\n return c4Shape.height;\n};\nconst insertDatabaseIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n};\nconst insertComputerIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n};\nconst insertClockIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n};\nconst insertArrowHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\");\n};\nconst insertArrowEnd = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowend\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\");\n};\nconst insertArrowFilledHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head\").attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n};\nconst insertDynamicNumber = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"sequencenumber\").attr(\"refX\", 15).attr(\"refY\", 15).attr(\"markerWidth\", 60).attr(\"markerHeight\", 40).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", 15).attr(\"cy\", 15).attr(\"r\", 6);\n};\nconst insertArrowCrossHead = function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 16).attr(\"refY\", 4);\n marker.append(\"path\").attr(\"fill\", \"black\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 9,2 V 6 L16,4 Z\");\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1px\").attr(\"d\", \"M 0,1 L 6,7 M 6,1 L 0,7\");\n};\nconst getC4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { fontSize, fontFamily, fontWeight } = conf2;\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * fontSize - fontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").style(\"font-size\", fontSize).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily);\n text.append(\"tspan\").attr(\"dy\", dy).text(lines[i]).attr(\"alignment-baseline\", \"mathematical\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst svgDraw = {\n drawRect,\n drawBoundary: drawBoundary$1,\n drawC4Shape,\n drawRels: drawRels$1,\n drawImage,\n insertArrowHead,\n insertArrowEnd,\n insertArrowFilledHead,\n insertDynamicNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon\n};\nlet globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;\nlet c4ShapeInRow = 4;\nlet c4BoundaryInRow = 2;\nparser.yy = db;\nlet conf = {};\nclass Bounds {\n constructor(diagObj) {\n this.name = \"\";\n this.data = {};\n this.data.startx = void 0;\n this.data.stopx = void 0;\n this.data.starty = void 0;\n this.data.stopy = void 0;\n this.data.widthLimit = void 0;\n this.nextData = {};\n this.nextData.startx = void 0;\n this.nextData.stopx = void 0;\n this.nextData.starty = void 0;\n this.nextData.stopy = void 0;\n this.nextData.cnt = 0;\n setConf(diagObj.db.getConfig());\n }\n setData(startx, stopx, starty, stopy) {\n this.nextData.startx = this.data.startx = startx;\n this.nextData.stopx = this.data.stopx = stopx;\n this.nextData.starty = this.data.starty = starty;\n this.nextData.stopy = this.data.stopy = stopy;\n }\n updateVal(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n }\n insert(c4Shape) {\n this.nextData.cnt = this.nextData.cnt + 1;\n let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;\n let _stopx = _startx + c4Shape.width;\n let _starty = this.nextData.starty + c4Shape.margin * 2;\n let _stopy = _starty + c4Shape.height;\n if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {\n _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;\n _starty = this.nextData.stopy + c4Shape.margin * 2;\n this.nextData.stopx = _stopx = _startx + c4Shape.width;\n this.nextData.starty = this.nextData.stopy;\n this.nextData.stopy = _stopy = _starty + c4Shape.height;\n this.nextData.cnt = 1;\n }\n c4Shape.x = _startx;\n c4Shape.y = _starty;\n this.updateVal(this.data, \"startx\", _startx, Math.min);\n this.updateVal(this.data, \"starty\", _starty, Math.min);\n this.updateVal(this.data, \"stopx\", _stopx, Math.max);\n this.updateVal(this.data, \"stopy\", _stopy, Math.max);\n this.updateVal(this.nextData, \"startx\", _startx, Math.min);\n this.updateVal(this.nextData, \"starty\", _starty, Math.min);\n this.updateVal(this.nextData, \"stopx\", _stopx, Math.max);\n this.updateVal(this.nextData, \"stopy\", _stopy, Math.max);\n }\n init(diagObj) {\n this.name = \"\";\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n widthLimit: void 0\n };\n this.nextData = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0,\n cnt: 0\n };\n setConf(diagObj.db.getConfig());\n }\n bumpLastMargin(margin) {\n this.data.stopx += margin;\n this.data.stopy += margin;\n }\n}\nconst setConf = function(cnf) {\n assignWithDepth(conf, cnf);\n if (cnf.fontFamily) {\n conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\nconst c4ShapeFont = (cnf, typeC4Shape) => {\n return {\n fontFamily: cnf[typeC4Shape + \"FontFamily\"],\n fontSize: cnf[typeC4Shape + \"FontSize\"],\n fontWeight: cnf[typeC4Shape + \"FontWeight\"]\n };\n};\nconst boundaryFont = (cnf) => {\n return {\n fontFamily: cnf.boundaryFontFamily,\n fontSize: cnf.boundaryFontSize,\n fontWeight: cnf.boundaryFontWeight\n };\n};\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n};\nfunction calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {\n if (!c4Shape[textType].width) {\n if (c4ShapeTextWrap) {\n c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);\n c4Shape[textType].textLines = c4Shape[textType].text.split(common.lineBreakRegex).length;\n c4Shape[textType].width = textLimitWidth;\n c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);\n } else {\n let lines = c4Shape[textType].text.split(common.lineBreakRegex);\n c4Shape[textType].textLines = lines.length;\n let lineHeight = 0;\n c4Shape[textType].height = 0;\n c4Shape[textType].width = 0;\n for (const line of lines) {\n c4Shape[textType].width = Math.max(\n calculateTextWidth(line, textConf),\n c4Shape[textType].width\n );\n lineHeight = calculateTextHeight(line, textConf);\n c4Shape[textType].height = c4Shape[textType].height + lineHeight;\n }\n }\n }\n}\nconst drawBoundary = function(diagram2, boundary, bounds) {\n boundary.x = bounds.data.startx;\n boundary.y = bounds.data.starty;\n boundary.width = bounds.data.stopx - bounds.data.startx;\n boundary.height = bounds.data.stopy - bounds.data.starty;\n boundary.label.y = conf.c4ShapeMargin - 35;\n let boundaryTextWrap = boundary.wrap && conf.wrap;\n let boundaryLabelConf = boundaryFont(conf);\n boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;\n boundaryLabelConf.fontWeight = \"bold\";\n let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);\n calcC4ShapeTextWH(\"label\", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);\n svgDraw.drawBoundary(diagram2, boundary, conf);\n};\nconst drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {\n let Y = 0;\n for (const c4ShapeKey of c4ShapeKeys) {\n Y = 0;\n const c4Shape = c4ShapeArray2[c4ShapeKey];\n let c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;\n c4Shape.typeC4Shape.width = calculateTextWidth(\n \"«\" + c4Shape.typeC4Shape.text + \"»\",\n c4ShapeTypeConf\n );\n c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;\n c4Shape.typeC4Shape.Y = conf.c4ShapePadding;\n Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;\n c4Shape.image = { width: 0, height: 0, Y: 0 };\n switch (c4Shape.typeC4Shape.text) {\n case \"person\":\n case \"external_person\":\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n break;\n }\n if (c4Shape.sprite) {\n c4Shape.image.width = 48;\n c4Shape.image.height = 48;\n c4Shape.image.Y = Y;\n Y = c4Shape.image.Y + c4Shape.image.height;\n }\n let c4ShapeTextWrap = c4Shape.wrap && conf.wrap;\n let textLimitWidth = conf.width - conf.c4ShapePadding * 2;\n let c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;\n c4ShapeLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\"label\", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);\n c4Shape[\"label\"].Y = Y + 8;\n Y = c4Shape[\"label\"].Y + c4Shape[\"label\"].height;\n if (c4Shape.type && c4Shape.type.text !== \"\") {\n c4Shape.type.text = \"[\" + c4Shape.type.text + \"]\";\n let c4ShapeTypeConf2 = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"type\", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);\n c4Shape[\"type\"].Y = Y + 5;\n Y = c4Shape[\"type\"].Y + c4Shape[\"type\"].height;\n } else if (c4Shape.techn && c4Shape.techn.text !== \"\") {\n c4Shape.techn.text = \"[\" + c4Shape.techn.text + \"]\";\n let c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);\n calcC4ShapeTextWH(\"techn\", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);\n c4Shape[\"techn\"].Y = Y + 5;\n Y = c4Shape[\"techn\"].Y + c4Shape[\"techn\"].height;\n }\n let rectHeight = Y;\n let rectWidth = c4Shape.label.width;\n if (c4Shape.descr && c4Shape.descr.text !== \"\") {\n let c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);\n calcC4ShapeTextWH(\"descr\", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);\n c4Shape[\"descr\"].Y = Y + 20;\n Y = c4Shape[\"descr\"].Y + c4Shape[\"descr\"].height;\n rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);\n rectHeight = Y - c4Shape[\"descr\"].textLines * 5;\n }\n rectWidth = rectWidth + conf.c4ShapePadding;\n c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);\n c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);\n c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;\n currentBounds.insert(c4Shape);\n svgDraw.drawC4Shape(diagram2, c4Shape, conf);\n }\n currentBounds.bumpLastMargin(conf.c4ShapeMargin);\n};\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nlet getIntersectPoint = function(fromNode, endPoint) {\n let x1 = fromNode.x;\n let y1 = fromNode.y;\n let x2 = endPoint.x;\n let y2 = endPoint.y;\n let fromCenterX = x1 + fromNode.width / 2;\n let fromCenterY = y1 + fromNode.height / 2;\n let dx = Math.abs(x1 - x2);\n let dy = Math.abs(y1 - y2);\n let tanDYX = dy / dx;\n let fromDYX = fromNode.height / fromNode.width;\n let returnPoint = null;\n if (y1 == y2 && x1 < x2) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY);\n } else if (y1 == y2 && x1 > x2) {\n returnPoint = new Point(x1, fromCenterY);\n } else if (x1 == x2 && y1 < y2) {\n returnPoint = new Point(fromCenterX, y1 + fromNode.height);\n } else if (x1 == x2 && y1 > y2) {\n returnPoint = new Point(fromCenterX, y1);\n }\n if (x1 > x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX - dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 < y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(\n fromCenterX + dx / dy * fromNode.height / 2,\n y1 + fromNode.height\n );\n }\n } else if (x1 < x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);\n } else {\n returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);\n }\n } else if (x1 > x2 && y1 > y2) {\n if (fromDYX >= tanDYX) {\n returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);\n } else {\n returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);\n }\n }\n return returnPoint;\n};\nlet getIntersectPoints = function(fromNode, endNode) {\n let endIntersectPoint = { x: 0, y: 0 };\n endIntersectPoint.x = endNode.x + endNode.width / 2;\n endIntersectPoint.y = endNode.y + endNode.height / 2;\n let startPoint = getIntersectPoint(fromNode, endIntersectPoint);\n endIntersectPoint.x = fromNode.x + fromNode.width / 2;\n endIntersectPoint.y = fromNode.y + fromNode.height / 2;\n let endPoint = getIntersectPoint(endNode, endIntersectPoint);\n return { startPoint, endPoint };\n};\nconst drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {\n let i = 0;\n for (let rel of rels2) {\n i = i + 1;\n let relTextWrap = rel.wrap && conf.wrap;\n let relConf = messageFont(conf);\n let diagramType = diagObj.db.getC4Type();\n if (diagramType === \"C4Dynamic\") {\n rel.label.text = i + \": \" + rel.label.text;\n }\n let textLimitWidth = calculateTextWidth(rel.label.text, relConf);\n calcC4ShapeTextWH(\"label\", rel, relTextWrap, relConf, textLimitWidth);\n if (rel.techn && rel.techn.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.techn.text, relConf);\n calcC4ShapeTextWH(\"techn\", rel, relTextWrap, relConf, textLimitWidth);\n }\n if (rel.descr && rel.descr.text !== \"\") {\n textLimitWidth = calculateTextWidth(rel.descr.text, relConf);\n calcC4ShapeTextWH(\"descr\", rel, relTextWrap, relConf, textLimitWidth);\n }\n let fromNode = getC4ShapeObj(rel.from);\n let endNode = getC4ShapeObj(rel.to);\n let points = getIntersectPoints(fromNode, endNode);\n rel.startPoint = points.startPoint;\n rel.endPoint = points.endPoint;\n }\n svgDraw.drawRels(diagram2, rels2, conf);\n};\nfunction drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {\n let currentBounds = new Bounds(diagObj);\n currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);\n for (let [i, currentBoundary] of currentBoundaries.entries()) {\n let Y = 0;\n currentBoundary.image = { width: 0, height: 0, Y: 0 };\n if (currentBoundary.sprite) {\n currentBoundary.image.width = 48;\n currentBoundary.image.height = 48;\n currentBoundary.image.Y = Y;\n Y = currentBoundary.image.Y + currentBoundary.image.height;\n }\n let currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;\n let currentBoundaryLabelConf = boundaryFont(conf);\n currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;\n currentBoundaryLabelConf.fontWeight = \"bold\";\n calcC4ShapeTextWH(\n \"label\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryLabelConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"label\"].Y = Y + 8;\n Y = currentBoundary[\"label\"].Y + currentBoundary[\"label\"].height;\n if (currentBoundary.type && currentBoundary.type.text !== \"\") {\n currentBoundary.type.text = \"[\" + currentBoundary.type.text + \"]\";\n let currentBoundaryTypeConf = boundaryFont(conf);\n calcC4ShapeTextWH(\n \"type\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryTypeConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"type\"].Y = Y + 5;\n Y = currentBoundary[\"type\"].Y + currentBoundary[\"type\"].height;\n }\n if (currentBoundary.descr && currentBoundary.descr.text !== \"\") {\n let currentBoundaryDescrConf = boundaryFont(conf);\n currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;\n calcC4ShapeTextWH(\n \"descr\",\n currentBoundary,\n currentBoundaryTextWrap,\n currentBoundaryDescrConf,\n currentBounds.data.widthLimit\n );\n currentBoundary[\"descr\"].Y = Y + 20;\n Y = currentBoundary[\"descr\"].Y + currentBoundary[\"descr\"].height;\n }\n if (i == 0 || i % c4BoundaryInRow === 0) {\n let _x = parentBounds.data.startx + conf.diagramMarginX;\n let _y = parentBounds.data.stopy + conf.diagramMarginY + Y;\n currentBounds.setData(_x, _x, _y, _y);\n } else {\n let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;\n let _y = currentBounds.data.starty;\n currentBounds.setData(_x, _x, _y, _y);\n }\n currentBounds.name = currentBoundary.alias;\n let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);\n let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);\n if (currentPersonOrSystemKeys.length > 0) {\n drawC4ShapeArray(\n currentBounds,\n diagram2,\n currentPersonOrSystemArray,\n currentPersonOrSystemKeys\n );\n }\n parentBoundaryAlias = currentBoundary.alias;\n let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);\n if (nextCurrentBoundarys.length > 0) {\n drawInsideBoundary(\n diagram2,\n parentBoundaryAlias,\n currentBounds,\n nextCurrentBoundarys,\n diagObj\n );\n }\n if (currentBoundary.alias !== \"global\") {\n drawBoundary(diagram2, currentBoundary, currentBounds);\n }\n parentBounds.data.stopy = Math.max(\n currentBounds.data.stopy + conf.c4ShapeMargin,\n parentBounds.data.stopy\n );\n parentBounds.data.stopx = Math.max(\n currentBounds.data.stopx + conf.c4ShapeMargin,\n parentBounds.data.stopx\n );\n globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);\n globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);\n }\n}\nconst draw = function(_text, id, _version, diagObj) {\n conf = getConfig().c4;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n let db2 = diagObj.db;\n diagObj.db.setWrap(conf.wrap);\n c4ShapeInRow = db2.getC4ShapeInRow();\n c4BoundaryInRow = db2.getC4BoundaryInRow();\n log.debug(`C:${JSON.stringify(conf, null, 2)}`);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n svgDraw.insertComputerIcon(diagram2);\n svgDraw.insertDatabaseIcon(diagram2);\n svgDraw.insertClockIcon(diagram2);\n let screenBounds = new Bounds(diagObj);\n screenBounds.setData(\n conf.diagramMarginX,\n conf.diagramMarginX,\n conf.diagramMarginY,\n conf.diagramMarginY\n );\n screenBounds.data.widthLimit = screen.availWidth;\n globalBoundaryMaxX = conf.diagramMarginX;\n globalBoundaryMaxY = conf.diagramMarginY;\n const title2 = diagObj.db.getTitle();\n let currentBoundaries = diagObj.db.getBoundarys(\"\");\n drawInsideBoundary(diagram2, \"\", screenBounds, currentBoundaries, diagObj);\n svgDraw.insertArrowHead(diagram2);\n svgDraw.insertArrowEnd(diagram2);\n svgDraw.insertArrowCrossHead(diagram2);\n svgDraw.insertArrowFilledHead(diagram2);\n drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);\n screenBounds.data.stopx = globalBoundaryMaxX;\n screenBounds.data.stopy = globalBoundaryMaxY;\n const box = screenBounds.data;\n let boxHeight = box.stopy - box.starty;\n let height = boxHeight + 2 * conf.diagramMarginY;\n let boxWidth = box.stopx - box.startx;\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title2) {\n diagram2.append(\"text\").text(title2).attr(\"x\", (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr(\"y\", box.starty + conf.diagramMarginY);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title2 ? 60 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, box);\n};\nconst renderer = {\n drawPersonOrSystemArray: drawC4ShapeArray,\n drawBoundary,\n setConf,\n draw\n};\nconst getStyles = (options) => `.person {\n stroke: ${options.personBorder};\n fill: ${options.personBkg};\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: ({ c4, wrap }) => {\n renderer.setConf(c4);\n db.setWrap(wrap);\n }\n};\nexport {\n diagram\n};\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,0BAA4B;AAE5B,mBAAO;AAOP,IAAI,SAAS,WAAW;AACtB,MAAI,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG;AAC5B,SAAK,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI;AAChD;AACF,WAAO;AAAA,EACT,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AACzyC,MAAI,UAAU;AAAA,IACZ,OAAO,SAAS,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,CAAC;AAAA,IACL,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,IAAI,cAAc,IAAI,WAAW,IAAI,cAAc,IAAI,OAAO,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,cAAc,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,qBAAqB,IAAI,kBAAkB,IAAI,SAAS,IAAI,kBAAkB,IAAI,aAAa,IAAI,mBAAmB,IAAI,aAAa,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,qBAAqB,IAAI,0BAA0B,IAAI,yBAAyB,IAAI,iBAAiB,IAAI,UAAU,IAAI,uBAAuB,IAAI,cAAc,IAAI,mBAAmB,IAAI,YAAY,IAAI,sBAAsB,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,oBAAoB,IAAI,UAAU,IAAI,cAAc,IAAI,UAAU,IAAI,aAAa,IAAI,gBAAgB,IAAI,cAAc,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,aAAa,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,uBAAuB,IAAI,aAAa,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,uBAAuB,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,wBAAwB,IAAI,aAAa,IAAI,OAAO,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,IAAI,mBAAmB,IAAI,WAAW,GAAG,QAAQ,EAAE;AAAA,IACzgD,YAAY,EAAE,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,IAAI,cAAc,IAAI,WAAW,IAAI,OAAO,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,cAAc,IAAI,iBAAiB,IAAI,SAAS,IAAI,kBAAkB,IAAI,aAAa,IAAI,mBAAmB,IAAI,aAAa,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,UAAU,IAAI,uBAAuB,IAAI,mBAAmB,IAAI,YAAY,IAAI,sBAAsB,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,cAAc,IAAI,UAAU,IAAI,aAAa,IAAI,gBAAgB,IAAI,cAAc,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,aAAa,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,uBAAuB,IAAI,aAAa,IAAI,gBAAgB,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,oBAAoB,IAAI,uBAAuB,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,wBAAwB,IAAI,OAAO,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,IAAI,kBAAkB;AAAA,IACtrC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAAA,IACrrB,eAAe,SAAS,UAAU,QAAQ,QAAQ,UAAU,IAAI,SAAS,IAAI,IAAI;AAC/E,UAAI,KAAK,GAAG,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,KAAK;AACH,aAAG,aAAa,IAAI;AACpB;AAAA,QACF,KAAK;AACH,aAAG,aAAa,IAAI;AACpB;AAAA,QACF,KAAK;AACH,aAAG,aAAa,IAAI;AACpB;AAAA,QACF,KAAK;AACH,aAAG,aAAa,IAAI;AACpB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,aAAG,UAAU,GAAG,KAAK,CAAC,CAAC;AACvB;AAAA,QACF,KAAK;AACH,aAAG,SAAS,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/B,eAAK,IAAI,GAAG,EAAE,EAAE,UAAU,CAAC;AAC3B;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC;AACzC,eAAK,IAAI,GAAG,EAAE,EAAE,UAAU,EAAE;AAC5B;AAAA,QACF,KAAK;AACH,eAAK,IAAI,GAAG,EAAE,EAAE,KAAK;AACrB,aAAG,SAAS,KAAK,CAAC;AAClB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,IAAI,GAAG,EAAE,EAAE,KAAK;AACrB,aAAG,kBAAkB,KAAK,CAAC;AAC3B;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,aAAG,EAAE,EAAE,OAAO,GAAG,GAAG,YAAY;AAChC,aAAG,0BAA0B,GAAG,GAAG,EAAE,CAAC;AACtC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,0BAA0B,GAAG,GAAG,EAAE,CAAC;AACtC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,EAAE,EAAE,OAAO,GAAG,GAAG,WAAW;AAC/B,aAAG,qBAAqB,GAAG,GAAG,EAAE,CAAC;AACjC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,QAAQ,GAAG,GAAG,EAAE,CAAC;AACtC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,SAAS,GAAG,GAAG,EAAE,CAAC;AACvC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,SAAS,GAAG,GAAG,EAAE,CAAC;AACvC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,sBAAsB;AACzB;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,UAAU,GAAG,GAAG,EAAE,CAAC;AACxC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,mBAAmB,GAAG,GAAG,EAAE,CAAC;AACjD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,UAAU,GAAG,GAAG,EAAE,CAAC;AACxC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,aAAa,GAAG,GAAG,EAAE,CAAC;AAC3C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,gBAAgB,GAAG,GAAG,EAAE,CAAC;AAC9C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,mBAAmB,GAAG,GAAG,EAAE,CAAC;AACjD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,sBAAsB,GAAG,GAAG,EAAE,CAAC;AACpD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,kBAAkB,yBAAyB,GAAG,GAAG,EAAE,CAAC;AACvD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,aAAa,GAAG,GAAG,EAAE,CAAC;AACtC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,gBAAgB,GAAG,GAAG,EAAE,CAAC;AACzC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,mBAAmB,GAAG,GAAG,EAAE,CAAC;AAC5C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,sBAAsB,GAAG,GAAG,EAAE,CAAC;AAC/C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,yBAAyB,GAAG,GAAG,EAAE,CAAC;AAClD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,4BAA4B,GAAG,GAAG,EAAE,CAAC;AACrD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,aAAa,GAAG,GAAG,EAAE,CAAC;AACtC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,gBAAgB,GAAG,GAAG,EAAE,CAAC;AACzC,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,mBAAmB,GAAG,GAAG,EAAE,CAAC;AAC5C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,sBAAsB,GAAG,GAAG,EAAE,CAAC;AAC/C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,yBAAyB,GAAG,GAAG,EAAE,CAAC;AAClD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,aAAa,4BAA4B,GAAG,GAAG,EAAE,CAAC;AACrD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,OAAO,GAAG,GAAG,EAAE,CAAC;AAC1B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,OAAO,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,EAAE,EAAE,OAAO,GAAG,CAAC;AAClB,aAAG,OAAO,OAAO,GAAG,GAAG,EAAE,CAAC;AAC1B,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,cAAc,mBAAmB,GAAG,GAAG,EAAE,CAAC;AAC7C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,eAAe,oBAAoB,GAAG,GAAG,EAAE,CAAC;AAC/C,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,aAAG,mBAAmB,wBAAwB,GAAG,GAAG,EAAE,CAAC;AACvD,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,eAAK,IAAI,CAAC,GAAG,EAAE,CAAC;AAChB;AAAA,QACF,KAAK;AACH,aAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;AACzB,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,IAAI,GAAG,EAAE,EAAE,KAAK;AACrB;AAAA,QACF,KAAK;AACH,cAAI,KAAK,CAAC;AACV,aAAG,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK;AACpC,eAAK,IAAI;AACT;AAAA,QACF,KAAK;AACH,eAAK,IAAI;AACT;AAAA,MACJ;AAAA,IACF;AAAA,IACA,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,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", - "names": ["drawRect"] -} diff --git a/.vuepress/.cache/deps/chunk-3EJPJMEH.js b/.vuepress/.cache/deps/chunk-3EJPJMEH.js deleted file mode 100644 index d7641c506..000000000 --- a/.vuepress/.cache/deps/chunk-3EJPJMEH.js +++ /dev/null @@ -1,44 +0,0 @@ -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 __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { - get: (a, b) => (typeof require !== "undefined" ? require : a)[b] -}) : x)(function(x) { - if (typeof require !== "undefined") - return require.apply(this, arguments); - throw Error('Dynamic require of "' + x + '" is not supported'); -}); -var __commonJS = (cb, mod) => function __require2() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[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 -)); - -export { - __require, - __commonJS, - __export, - __toESM -}; -//# sourceMappingURL=chunk-3EJPJMEH.js.map diff --git a/.vuepress/.cache/deps/chunk-3EJPJMEH.js.map b/.vuepress/.cache/deps/chunk-3EJPJMEH.js.map deleted file mode 100644 index 98652118b..000000000 --- a/.vuepress/.cache/deps/chunk-3EJPJMEH.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "sourcesContent": [], - "mappings": "", - "names": [] -} diff --git a/.vuepress/.cache/deps/chunk-6ESK7MQZ.js b/.vuepress/.cache/deps/chunk-6ESK7MQZ.js deleted file mode 100644 index cd6e06e5c..000000000 --- a/.vuepress/.cache/deps/chunk-6ESK7MQZ.js +++ /dev/null @@ -1,665 +0,0 @@ -import { - clear, - clear$1, - createLabel$1, - insertEdge, - insertEdgeLabel, - insertMarkers$1, - insertNode, - intersectRect$1, - positionEdgeLabel, - positionNode, - setNodeElem, - updateNodeBounds -} from "./chunk-ULQHWUKP.js"; -import { - Graph, - clone_default, - isUndefined_default, - layout, - map_default -} from "./chunk-C55JCHDM.js"; -import { - createText -} from "./chunk-TQDBUXIK.js"; -import { - evaluate, - getConfig, - log$1, - select_default -} from "./chunk-MILIJ3F3.js"; - -// node_modules/dagre-d3-es/src/graphlib/json.js -function write(g) { - var json = { - options: { - directed: g.isDirected(), - multigraph: g.isMultigraph(), - compound: g.isCompound() - }, - nodes: writeNodes(g), - edges: writeEdges(g) - }; - if (!isUndefined_default(g.graph())) { - json.value = clone_default(g.graph()); - } - return json; -} -function writeNodes(g) { - return map_default(g.nodes(), function(v) { - var nodeValue = g.node(v); - var parent = g.parent(v); - var node = { v }; - if (!isUndefined_default(nodeValue)) { - node.value = nodeValue; - } - if (!isUndefined_default(parent)) { - node.parent = parent; - } - return node; - }); -} -function writeEdges(g) { - return map_default(g.edges(), function(e) { - var edgeValue = g.edge(e); - var edge = { v: e.v, w: e.w }; - if (!isUndefined_default(e.name)) { - edge.name = e.name; - } - if (!isUndefined_default(edgeValue)) { - edge.value = edgeValue; - } - return edge; - }); -} - -// node_modules/mermaid/dist/index-67a42d7d.js -var clusterDb = {}; -var descendants = {}; -var parents = {}; -var clear$12 = () => { - descendants = {}; - parents = {}; - clusterDb = {}; -}; -var isDescendant = (id, ancenstorId) => { - log$1.trace("In isDecendant", ancenstorId, " ", id, " = ", descendants[ancenstorId].includes(id)); - if (descendants[ancenstorId].includes(id)) { - return true; - } - return false; -}; -var edgeInCluster = (edge, clusterId) => { - log$1.info("Decendants of ", clusterId, " is ", descendants[clusterId]); - log$1.info("Edge is ", edge); - if (edge.v === clusterId) { - return false; - } - if (edge.w === clusterId) { - return false; - } - if (!descendants[clusterId]) { - log$1.debug("Tilt, ", clusterId, ",not in decendants"); - return false; - } - return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w); -}; -var copy = (clusterId, graph, newGraph, rootId) => { - log$1.warn( - "Copying children of ", - clusterId, - "root", - rootId, - "data", - graph.node(clusterId), - rootId - ); - const nodes = graph.children(clusterId) || []; - if (clusterId !== rootId) { - nodes.push(clusterId); - } - log$1.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes); - nodes.forEach((node) => { - if (graph.children(node).length > 0) { - copy(node, graph, newGraph, rootId); - } else { - const data = graph.node(node); - log$1.info("cp ", node, " to ", rootId, " with parent ", clusterId); - newGraph.setNode(node, data); - if (rootId !== graph.parent(node)) { - log$1.warn("Setting parent", node, graph.parent(node)); - newGraph.setParent(node, graph.parent(node)); - } - if (clusterId !== rootId && node !== clusterId) { - log$1.debug("Setting parent", node, clusterId); - newGraph.setParent(node, clusterId); - } else { - log$1.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId); - log$1.debug( - "Not Setting parent for node=", - node, - "cluster!==rootId", - clusterId !== rootId, - "node!==clusterId", - node !== clusterId - ); - } - const edges = graph.edges(node); - log$1.debug("Copying Edges", edges); - edges.forEach((edge) => { - log$1.info("Edge", edge); - const data2 = graph.edge(edge.v, edge.w, edge.name); - log$1.info("Edge data", data2, rootId); - try { - if (edgeInCluster(edge, rootId)) { - log$1.info("Copying as ", edge.v, edge.w, data2, edge.name); - newGraph.setEdge(edge.v, edge.w, data2, edge.name); - log$1.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0])); - } else { - log$1.info( - "Skipping copy of edge ", - edge.v, - "-->", - edge.w, - " rootId: ", - rootId, - " clusterId:", - clusterId - ); - } - } catch (e) { - log$1.error(e); - } - }); - } - log$1.debug("Removing node", node); - graph.removeNode(node); - }); -}; -var extractDescendants = (id, graph) => { - const children = graph.children(id); - let res = [...children]; - for (const child of children) { - parents[child] = id; - res = [...res, ...extractDescendants(child, graph)]; - } - return res; -}; -var findNonClusterChild = (id, graph) => { - log$1.trace("Searching", id); - const children = graph.children(id); - log$1.trace("Searching children of id ", id, children); - if (children.length < 1) { - log$1.trace("This is a valid node", id); - return id; - } - for (const child of children) { - const _id = findNonClusterChild(child, graph); - if (_id) { - log$1.trace("Found replacement for", id, " => ", _id); - return _id; - } - } -}; -var getAnchorId = (id) => { - if (!clusterDb[id]) { - return id; - } - if (!clusterDb[id].externalConnections) { - return id; - } - if (clusterDb[id]) { - return clusterDb[id].id; - } - return id; -}; -var adjustClustersAndEdges = (graph, depth) => { - if (!graph || depth > 10) { - log$1.debug("Opting out, no graph "); - return; - } else { - log$1.debug("Opting in, graph "); - } - graph.nodes().forEach(function(id) { - const children = graph.children(id); - if (children.length > 0) { - log$1.warn( - "Cluster identified", - id, - " Replacement id in edges: ", - findNonClusterChild(id, graph) - ); - descendants[id] = extractDescendants(id, graph); - clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) }; - } - }); - graph.nodes().forEach(function(id) { - const children = graph.children(id); - const edges = graph.edges(); - if (children.length > 0) { - log$1.debug("Cluster identified", id, descendants); - edges.forEach((edge) => { - if (edge.v !== id && edge.w !== id) { - const d1 = isDescendant(edge.v, id); - const d2 = isDescendant(edge.w, id); - if (d1 ^ d2) { - log$1.warn("Edge: ", edge, " leaves cluster ", id); - log$1.warn("Decendants of XXX ", id, ": ", descendants[id]); - clusterDb[id].externalConnections = true; - } - } - }); - } else { - log$1.debug("Not a cluster ", id, descendants); - } - }); - graph.edges().forEach(function(e) { - const edge = graph.edge(e); - log$1.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); - log$1.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e))); - let v = e.v; - let w = e.w; - log$1.warn( - "Fix XXX", - clusterDb, - "ids:", - e.v, - e.w, - "Translating: ", - clusterDb[e.v], - " --- ", - clusterDb[e.w] - ); - if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) { - log$1.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name); - log$1.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name); - v = getAnchorId(e.v); - w = getAnchorId(e.w); - graph.removeEdge(e.v, e.w, e.name); - const specialId = e.w + "---" + e.v; - graph.setNode(specialId, { - domId: specialId, - id: specialId, - labelStyle: "", - labelText: edge.label, - padding: 0, - shape: "labelRect", - style: "" - }); - const edge1 = structuredClone(edge); - const edge2 = structuredClone(edge); - edge1.label = ""; - edge1.arrowTypeEnd = "none"; - edge2.label = ""; - edge1.fromCluster = e.v; - edge2.toCluster = e.v; - graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special"); - graph.setEdge(specialId, w, edge2, e.name + "-cyclic-special"); - } else if (clusterDb[e.v] || clusterDb[e.w]) { - log$1.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name); - v = getAnchorId(e.v); - w = getAnchorId(e.w); - graph.removeEdge(e.v, e.w, e.name); - if (v !== e.v) { - edge.fromCluster = e.v; - } - if (w !== e.w) { - edge.toCluster = e.w; - } - log$1.warn("Fix Replacing with XXX", v, w, e.name); - graph.setEdge(v, w, edge, e.name); - } - }); - log$1.warn("Adjusted Graph", write(graph)); - extractor(graph, 0); - log$1.trace(clusterDb); -}; -var extractor = (graph, depth) => { - log$1.warn("extractor - ", depth, write(graph), graph.children("D")); - if (depth > 10) { - log$1.error("Bailing out"); - return; - } - let nodes = graph.nodes(); - let hasChildren = false; - for (const node of nodes) { - const children = graph.children(node); - hasChildren = hasChildren || children.length > 0; - } - if (!hasChildren) { - log$1.debug("Done, no node has children", graph.nodes()); - return; - } - log$1.debug("Nodes = ", nodes, depth); - for (const node of nodes) { - log$1.debug( - "Extracting node", - node, - clusterDb, - clusterDb[node] && !clusterDb[node].externalConnections, - !graph.parent(node), - graph.node(node), - graph.children("D"), - " Depth ", - depth - ); - if (!clusterDb[node]) { - log$1.debug("Not a cluster", node, depth); - } else if (!clusterDb[node].externalConnections && // !graph.parent(node) && - graph.children(node) && graph.children(node).length > 0) { - log$1.warn( - "Cluster without external connections, without a parent and with children", - node, - depth - ); - const graphSettings = graph.graph(); - let dir = graphSettings.rankdir === "TB" ? "LR" : "TB"; - if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) { - dir = clusterDb[node].clusterData.dir; - log$1.warn("Fixing dir", clusterDb[node].clusterData.dir, dir); - } - const clusterGraph = new Graph({ - multigraph: true, - compound: true - }).setGraph({ - rankdir: dir, - // Todo: set proper spacing - nodesep: 50, - ranksep: 50, - marginx: 8, - marginy: 8 - }).setDefaultEdgeLabel(function() { - return {}; - }); - log$1.warn("Old graph before copy", write(graph)); - copy(node, graph, clusterGraph, node); - graph.setNode(node, { - clusterNode: true, - id: node, - clusterData: clusterDb[node].clusterData, - labelText: clusterDb[node].labelText, - graph: clusterGraph - }); - log$1.warn("New graph after copy node: (", node, ")", write(clusterGraph)); - log$1.debug("Old graph after copy", write(graph)); - } else { - log$1.warn( - "Cluster ** ", - node, - " **not meeting the criteria !externalConnections:", - !clusterDb[node].externalConnections, - " no parent: ", - !graph.parent(node), - " children ", - graph.children(node) && graph.children(node).length > 0, - graph.children("D"), - depth - ); - log$1.debug(clusterDb); - } - } - nodes = graph.nodes(); - log$1.warn("New list of nodes", nodes); - for (const node of nodes) { - const data = graph.node(node); - log$1.warn(" Now next level", node, data); - if (data.clusterNode) { - extractor(data.graph, depth + 1); - } - } -}; -var sorter = (graph, nodes) => { - if (nodes.length === 0) { - return []; - } - let result = Object.assign(nodes); - nodes.forEach((node) => { - const children = graph.children(node); - const sorted = sorter(graph, children); - result = [...result, ...sorted]; - }); - return result; -}; -var sortNodesByHierarchy = (graph) => sorter(graph, graph.children()); -var rect = (parent, node) => { - log$1.info("Creating subgraph rect for ", node.id, node); - const shapeSvg = parent.insert("g").attr("class", "cluster" + (node.class ? " " + node.class : "")).attr("id", node.id); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels); - const label = shapeSvg.insert("g").attr("class", "cluster-label"); - const text = node.labelType === "markdown" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel$1(node.labelText, node.labelStyle, void 0, true)); - let bbox = text.getBBox(); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = text.children[0]; - const dv = select_default(text); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - const padding = 0 * node.padding; - const halfPadding = padding / 2; - const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width; - if (node.width <= bbox.width + padding) { - node.diff = (bbox.width - node.width) / 2 - node.padding / 2; - } else { - node.diff = -node.padding / 2; - } - log$1.trace("Data ", node, JSON.stringify(node)); - rect2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - width / 2).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width).attr("height", node.height + padding); - if (useHtmlLabels) { - label.attr( - "transform", - // This puts the labal on top of the box instead of inside it - "translate(" + (node.x - bbox.width / 2) + ", " + (node.y - node.height / 2) + ")" - ); - } else { - label.attr( - "transform", - // This puts the labal on top of the box instead of inside it - "translate(" + node.x + ", " + (node.y - node.height / 2) + ")" - ); - } - const rectBox = rect2.node().getBBox(); - node.width = rectBox.width; - node.height = rectBox.height; - node.intersect = function(point) { - return intersectRect$1(node, point); - }; - return shapeSvg; -}; -var noteGroup = (parent, node) => { - const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node.id); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const padding = 0 * node.padding; - const halfPadding = padding / 2; - rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", node.width + padding).attr("height", node.height + padding).attr("fill", "none"); - const rectBox = rect2.node().getBBox(); - node.width = rectBox.width; - node.height = rectBox.height; - node.intersect = function(point) { - return intersectRect$1(node, point); - }; - return shapeSvg; -}; -var roundedWithTitle = (parent, node) => { - const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const label = shapeSvg.insert("g").attr("class", "cluster-label"); - const innerRect = shapeSvg.append("rect"); - const text = label.node().appendChild(createLabel$1(node.labelText, node.labelStyle, void 0, true)); - let bbox = text.getBBox(); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = text.children[0]; - const dv = select_default(text); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - bbox = text.getBBox(); - const padding = 0 * node.padding; - const halfPadding = padding / 2; - const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width; - if (node.width <= bbox.width + node.padding) { - node.diff = (bbox.width + node.padding * 0 - node.width) / 2; - } else { - node.diff = -node.padding / 2; - } - rect2.attr("class", "outer").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width + padding).attr("height", node.height + padding); - innerRect.attr("class", "inner").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr("width", width + padding).attr("height", node.height + padding - bbox.height - 3); - label.attr( - "transform", - "translate(" + (node.x - bbox.width / 2) + ", " + (node.y - node.height / 2 - node.padding / 3 + (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) + ")" - ); - const rectBox = rect2.node().getBBox(); - node.height = rectBox.height; - node.intersect = function(point) { - return intersectRect$1(node, point); - }; - return shapeSvg; -}; -var divider = (parent, node) => { - const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const padding = 0 * node.padding; - const halfPadding = padding / 2; - rect2.attr("class", "divider").attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2).attr("width", node.width + padding).attr("height", node.height + padding); - const rectBox = rect2.node().getBBox(); - node.width = rectBox.width; - node.height = rectBox.height; - node.diff = -node.padding / 2; - node.intersect = function(point) { - return intersectRect$1(node, point); - }; - return shapeSvg; -}; -var shapes = { rect, roundedWithTitle, noteGroup, divider }; -var clusterElems = {}; -var insertCluster = (elem, node) => { - log$1.trace("Inserting cluster"); - const shape = node.shape || "rect"; - clusterElems[node.id] = shapes[shape](elem, node); -}; -var clear2 = () => { - clusterElems = {}; -}; -var recursiveRender = async (_elem, graph, diagramtype, id, parentCluster) => { - log$1.info("Graph in recursive render: XXX", write(graph), parentCluster); - const dir = graph.graph().rankdir; - log$1.trace("Dir in recursive render - dir:", dir); - const elem = _elem.insert("g").attr("class", "root"); - if (!graph.nodes()) { - log$1.info("No nodes found for", graph); - } else { - log$1.info("Recursive render XXX", graph.nodes()); - } - if (graph.edges().length > 0) { - log$1.trace("Recursive edges", graph.edge(graph.edges()[0])); - } - const clusters = elem.insert("g").attr("class", "clusters"); - const edgePaths = elem.insert("g").attr("class", "edgePaths"); - const edgeLabels = elem.insert("g").attr("class", "edgeLabels"); - const nodes = elem.insert("g").attr("class", "nodes"); - await Promise.all( - graph.nodes().map(async function(v) { - const node = graph.node(v); - if (parentCluster !== void 0) { - const data = JSON.parse(JSON.stringify(parentCluster.clusterData)); - log$1.info("Setting data for cluster XXX (", v, ") ", data, parentCluster); - graph.setNode(parentCluster.id, data); - if (!graph.parent(v)) { - log$1.trace("Setting parent", v, parentCluster.id); - graph.setParent(v, parentCluster.id, data); - } - } - log$1.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v))); - if (node && node.clusterNode) { - log$1.info("Cluster identified", v, node.width, graph.node(v)); - const o = await recursiveRender(nodes, node.graph, diagramtype, id, graph.node(v)); - const newEl = o.elem; - updateNodeBounds(node, newEl); - node.diff = o.diff || 0; - log$1.info("Node bounds (abc123)", v, node, node.width, node.x, node.y); - setNodeElem(newEl, node); - log$1.warn("Recursive render complete ", newEl, node); - } else { - if (graph.children(v).length > 0) { - log$1.info("Cluster - the non recursive path XXX", v, node.id, node, graph); - log$1.info(findNonClusterChild(node.id, graph)); - clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node }; - } else { - log$1.info("Node - the non recursive path", v, node.id, node); - await insertNode(nodes, graph.node(v), dir); - } - } - }) - ); - graph.edges().forEach(function(e) { - const edge = graph.edge(e.v, e.w, e.name); - log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); - log$1.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e))); - log$1.info("Fix", clusterDb, "ids:", e.v, e.w, "Translateing: ", clusterDb[e.v], clusterDb[e.w]); - insertEdgeLabel(edgeLabels, edge); - }); - graph.edges().forEach(function(e) { - log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e)); - }); - log$1.info("#############################################"); - log$1.info("### Layout ###"); - log$1.info("#############################################"); - log$1.info(graph); - layout(graph); - log$1.info("Graph after layout:", write(graph)); - let diff = 0; - sortNodesByHierarchy(graph).forEach(function(v) { - const node = graph.node(v); - log$1.info("Position " + v + ": " + JSON.stringify(graph.node(v))); - log$1.info( - "Position " + v + ": (" + node.x, - "," + node.y, - ") width: ", - node.width, - " height: ", - node.height - ); - if (node && node.clusterNode) { - positionNode(node); - } else { - if (graph.children(v).length > 0) { - insertCluster(clusters, node); - clusterDb[node.id].node = node; - } else { - positionNode(node); - } - } - }); - graph.edges().forEach(function(e) { - const edge = graph.edge(e); - log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge); - const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph, id); - positionEdgeLabel(edge, paths); - }); - graph.nodes().forEach(function(v) { - const n = graph.node(v); - log$1.info(v, n.type, n.diff); - if (n.type === "group") { - diff = n.diff; - } - }); - return { elem, diff }; -}; -var render = async (elem, graph, markers, diagramtype, id) => { - insertMarkers$1(elem, markers, diagramtype, id); - clear$1(); - clear(); - clear2(); - clear$12(); - log$1.warn("Graph at first:", JSON.stringify(write(graph))); - adjustClustersAndEdges(graph); - log$1.warn("Graph after:", JSON.stringify(write(graph))); - await recursiveRender(elem, graph, diagramtype, id); -}; - -export { - render -}; -//# sourceMappingURL=chunk-6ESK7MQZ.js.map diff --git a/.vuepress/.cache/deps/chunk-6ESK7MQZ.js.map b/.vuepress/.cache/deps/chunk-6ESK7MQZ.js.map deleted file mode 100644 index 10be8c04a..000000000 --- a/.vuepress/.cache/deps/chunk-6ESK7MQZ.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/dagre-d3-es/src/graphlib/json.js", "../../../../node_modules/mermaid/dist/index-67a42d7d.js"], - "sourcesContent": ["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\nexport { write, read };\n\nfunction write(g) {\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n", "import { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport { c as createLabel, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, g as insertEdge, h as positionEdgeLabel } from \"./edges-80f1ebb6.js\";\nimport { l as log, m as evaluate, c as getConfig } from \"./mermaid-934d9bea.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { a as createText } from \"./createText-aebacdfe.js\";\nimport { select } from \"d3\";\nlet clusterDb = {};\nlet descendants = {};\nlet parents = {};\nconst clear$1 = () => {\n descendants = {};\n parents = {};\n clusterDb = {};\n};\nconst isDescendant = (id, ancenstorId) => {\n log.trace(\"In isDecendant\", ancenstorId, \" \", id, \" = \", descendants[ancenstorId].includes(id));\n if (descendants[ancenstorId].includes(id)) {\n return true;\n }\n return false;\n};\nconst edgeInCluster = (edge, clusterId) => {\n log.info(\"Decendants of \", clusterId, \" is \", descendants[clusterId]);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId) {\n return false;\n }\n if (edge.w === clusterId) {\n return false;\n }\n if (!descendants[clusterId]) {\n log.debug(\"Tilt, \", clusterId, \",not in decendants\");\n return false;\n }\n return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);\n};\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n};\nconst extractDescendants = (id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents[child] = id;\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n};\nconst findNonClusterChild = (id, graph) => {\n log.trace(\"Searching\", id);\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n log.trace(\"This is a valid node\", id);\n return id;\n }\n for (const child of children) {\n const _id = findNonClusterChild(child, graph);\n if (_id) {\n log.trace(\"Found replacement for\", id, \" => \", _id);\n return _id;\n }\n }\n};\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\nconst adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph)\n );\n descendants[id] = extractDescendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n if (edge.v !== id && edge.w !== id) {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Decendants of XXX \", id, \": \", descendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb[e.v],\n \" --- \",\n clusterDb[e.w]\n );\n if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {\n log.warn(\"Fixing and trixing link to self - removing XXX\", e.v, e.w, e.name);\n log.warn(\"Fixing and trixing - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n const specialId = e.w + \"---\" + e.v;\n graph.setNode(specialId, {\n domId: specialId,\n id: specialId,\n labelStyle: \"\",\n labelText: edge.label,\n padding: 0,\n shape: \"labelRect\",\n style: \"\"\n });\n const edge1 = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge2.label = \"\";\n edge1.fromCluster = e.v;\n edge2.toCluster = e.v;\n graph.setEdge(v, specialId, edge1, e.name + \"-cyclic-special\");\n graph.setEdge(specialId, w, edge2, e.name + \"-cyclic-special\");\n } else if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn(\"Fixing and trixing - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n};\nconst extractor = (graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb[node]) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb[node].externalConnections && // !graph.parent(node) &&\n graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb[node].clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb[node].externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n};\nconst sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\nconst rect = (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster\" + (node.class ? \" \" + node.class : \"\")).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n const text = node.labelType === \"markdown\" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2 - node.padding / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n log.trace(\"Data \", node, JSON.stringify(node));\n rect2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - width / 2).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", width).attr(\"height\", node.height + padding);\n if (useHtmlLabels) {\n label.attr(\n \"transform\",\n // This puts the labal on top of the box instead of inside it\n \"translate(\" + (node.x - bbox.width / 2) + \", \" + (node.y - node.height / 2) + \")\"\n );\n } else {\n label.attr(\n \"transform\",\n // This puts the labal on top of the box instead of inside it\n \"translate(\" + node.x + \", \" + (node.y - node.height / 2) + \")\"\n );\n }\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst noteGroup = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.classes).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n const innerRect = shapeSvg.append(\"rect\");\n const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n rect2.attr(\"class\", \"outer\").attr(\"x\", node.x - width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", width + padding).attr(\"height\", node.height + padding);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", node.x - width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr(\"width\", width + padding).attr(\"height\", node.height + padding - bbox.height - 3);\n label.attr(\n \"transform\",\n \"translate(\" + (node.x - bbox.width / 2) + \", \" + (node.y - node.height / 2 - node.padding / 3 + (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) + \")\"\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst divider = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.classes).attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"class\", \"divider\").attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding);\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n};\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\nlet clusterElems = {};\nconst insertCluster = (elem, node) => {\n log.trace(\"Inserting cluster\");\n const shape = node.shape || \"rect\";\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nconst clear = () => {\n clusterElems = {};\n};\nconst recursiveRender = async (_elem, graph, diagramtype, id, parentCluster) => {\n log.info(\"Graph in recursive render: XXX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.info(\"Setting data for cluster XXX (\", v, \") \", data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n log.info(\"Cluster identified\", v, node.width, graph.node(v));\n const o = await recursiveRender(nodes, node.graph, diagramtype, id, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\"Node bounds (abc123)\", v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n log.warn(\"Recursive render complete \", newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\"Cluster - the non recursive path XXX\", v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n } else {\n log.info(\"Node - the non recursive path\", v, node.id, node);\n await insertNode(nodes, graph.node(v), dir);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\"Fix\", clusterDb, \"ids:\", e.v, e.w, \"Translateing: \", clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n graph.edges().forEach(function(e) {\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n });\n log.info(\"#############################################\");\n log.info(\"### Layout ###\");\n log.info(\"#############################################\");\n log.info(graph);\n layout(graph);\n log.info(\"Graph after layout:\", graphlibJson.write(graph));\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function(v) {\n const node = graph.node(v);\n log.info(\"Position \" + v + \": \" + JSON.stringify(graph.node(v)));\n log.info(\n \"Position \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node && node.clusterNode) {\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === \"group\") {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\nconst render = async (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clear$2();\n clear$3();\n clear();\n clear$1();\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after:\", JSON.stringify(graphlibJson.write(graph)));\n await recursiveRender(elem, graph, diagramtype, id);\n};\nexport {\n render as r\n};\n"], - "mappings": "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", - "names": ["clear$1", "clear"] -} diff --git a/.vuepress/.cache/deps/chunk-C55JCHDM.js b/.vuepress/.cache/deps/chunk-C55JCHDM.js deleted file mode 100644 index 029695a0c..000000000 --- a/.vuepress/.cache/deps/chunk-C55JCHDM.js +++ /dev/null @@ -1,9513 +0,0 @@ -import { - MapCache_default, - Set_default, - Stack_default, - Symbol_default, - Uint8Array_default, - WeakMap_default, - apply_default, - arrayLikeKeys_default, - assignValue_default, - baseAssignValue_default, - baseCreate_default, - baseFor_default, - baseGetTag_default, - baseIsNative_default, - baseKeys_default, - baseMerge_default, - baseRest_default, - baseTimes_default, - baseUnary_default, - cloneArrayBuffer_default, - cloneBuffer_default, - cloneTypedArray_default, - constant_default, - copyArray_default, - copyObject_default, - coreJsData_default, - createAssigner_default, - createBaseFor_default, - eq_default, - getPrototype_default, - getTag_default, - identity_default, - initCloneObject_default, - isArguments_default, - isArrayLikeObject_default, - isArrayLike_default, - isArray_default, - isBuffer_default, - isEmpty_default, - isFunction_default, - isIndex_default, - isIterateeCall_default, - isLength_default, - isObjectLike_default, - isObject_default, - isPlainObject_default, - isPrototype_default, - isTypedArray_default, - keysIn_default, - memoize_default, - merge_default, - nodeUtil_default, - overRest_default, - root_default, - setToString_default, - shortOut_default, - stubFalse_default, - toPlainObject_default -} from "./chunk-MILIJ3F3.js"; - -// node_modules/lodash-es/isSymbol.js -var symbolTag = "[object Symbol]"; -function isSymbol(value) { - return typeof value == "symbol" || isObjectLike_default(value) && baseGetTag_default(value) == symbolTag; -} -var isSymbol_default = isSymbol; - -// node_modules/lodash-es/_baseToNumber.js -var NAN = 0 / 0; -function baseToNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol_default(value)) { - return NAN; - } - return +value; -} -var baseToNumber_default = baseToNumber; - -// node_modules/lodash-es/_arrayMap.js -function arrayMap(array, iteratee2) { - var index = -1, length = array == null ? 0 : array.length, result2 = Array(length); - while (++index < length) { - result2[index] = iteratee2(array[index], index, array); - } - return result2; -} -var arrayMap_default = arrayMap; - -// node_modules/lodash-es/_baseToString.js -var INFINITY = 1 / 0; -var symbolProto = Symbol_default ? Symbol_default.prototype : void 0; -var symbolToString = symbolProto ? symbolProto.toString : void 0; -function baseToString(value) { - if (typeof value == "string") { - return value; - } - if (isArray_default(value)) { - return arrayMap_default(value, baseToString) + ""; - } - if (isSymbol_default(value)) { - return symbolToString ? symbolToString.call(value) : ""; - } - var result2 = value + ""; - return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; -} -var baseToString_default = baseToString; - -// node_modules/lodash-es/_createMathOperation.js -function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result2; - if (value === void 0 && other === void 0) { - return defaultValue; - } - if (value !== void 0) { - result2 = value; - } - if (other !== void 0) { - if (result2 === void 0) { - return other; - } - if (typeof value == "string" || typeof other == "string") { - value = baseToString_default(value); - other = baseToString_default(other); - } else { - value = baseToNumber_default(value); - other = baseToNumber_default(other); - } - result2 = operator(value, other); - } - return result2; - }; -} -var createMathOperation_default = createMathOperation; - -// node_modules/lodash-es/add.js -var add = createMathOperation_default(function(augend, addend) { - return augend + addend; -}, 0); -var add_default = add; - -// node_modules/lodash-es/_trimmedEndIndex.js -var reWhitespace = /\s/; -function trimmedEndIndex(string) { - var index = string.length; - while (index-- && reWhitespace.test(string.charAt(index))) { - } - return index; -} -var trimmedEndIndex_default = trimmedEndIndex; - -// node_modules/lodash-es/_baseTrim.js -var reTrimStart = /^\s+/; -function baseTrim(string) { - return string ? string.slice(0, trimmedEndIndex_default(string) + 1).replace(reTrimStart, "") : string; -} -var baseTrim_default = baseTrim; - -// node_modules/lodash-es/toNumber.js -var NAN2 = 0 / 0; -var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; -var reIsBinary = /^0b[01]+$/i; -var reIsOctal = /^0o[0-7]+$/i; -var freeParseInt = parseInt; -function toNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol_default(value)) { - return NAN2; - } - if (isObject_default(value)) { - var other = typeof value.valueOf == "function" ? value.valueOf() : value; - value = isObject_default(other) ? other + "" : other; - } - if (typeof value != "string") { - return value === 0 ? value : +value; - } - value = baseTrim_default(value); - var isBinary = reIsBinary.test(value); - return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN2 : +value; -} -var toNumber_default = toNumber; - -// node_modules/lodash-es/toFinite.js -var INFINITY2 = 1 / 0; -var MAX_INTEGER = 17976931348623157e292; -function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber_default(value); - if (value === INFINITY2 || value === -INFINITY2) { - var sign = value < 0 ? -1 : 1; - return sign * MAX_INTEGER; - } - return value === value ? value : 0; -} -var toFinite_default = toFinite; - -// node_modules/lodash-es/toInteger.js -function toInteger(value) { - var result2 = toFinite_default(value), remainder = result2 % 1; - return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; -} -var toInteger_default = toInteger; - -// node_modules/lodash-es/after.js -var FUNC_ERROR_TEXT = "Expected a function"; -function after(n, func) { - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger_default(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; -} -var after_default = after; - -// node_modules/lodash-es/_metaMap.js -var metaMap = WeakMap_default && new WeakMap_default(); -var metaMap_default = metaMap; - -// node_modules/lodash-es/_baseSetData.js -var baseSetData = !metaMap_default ? identity_default : function(func, data) { - metaMap_default.set(func, data); - return func; -}; -var baseSetData_default = baseSetData; - -// node_modules/lodash-es/_createCtor.js -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_default(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); - return isObject_default(result2) ? result2 : thisBinding; - }; -} -var createCtor_default = createCtor; - -// node_modules/lodash-es/_createBind.js -var WRAP_BIND_FLAG = 1; -function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor_default(func); - function wrapper() { - var fn = this && this !== root_default && this instanceof wrapper ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; -} -var createBind_default = createBind; - -// node_modules/lodash-es/_composeArgs.js -var nativeMax = Math.max; -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 = Array(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; -} -var composeArgs_default = composeArgs; - -// node_modules/lodash-es/_composeArgsRight.js -var nativeMax2 = Math.max; -function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax2(argsLength - holdersLength, 0), result2 = Array(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; -} -var composeArgsRight_default = composeArgsRight; - -// node_modules/lodash-es/_countHolders.js -function countHolders(array, placeholder) { - var length = array.length, result2 = 0; - while (length--) { - if (array[length] === placeholder) { - ++result2; - } - } - return result2; -} -var countHolders_default = countHolders; - -// node_modules/lodash-es/_baseLodash.js -function baseLodash() { -} -var baseLodash_default = baseLodash; - -// node_modules/lodash-es/_LazyWrapper.js -var MAX_ARRAY_LENGTH = 4294967295; -function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; -} -LazyWrapper.prototype = baseCreate_default(baseLodash_default.prototype); -LazyWrapper.prototype.constructor = LazyWrapper; -var LazyWrapper_default = LazyWrapper; - -// node_modules/lodash-es/noop.js -function noop() { -} -var noop_default = noop; - -// node_modules/lodash-es/_getData.js -var getData = !metaMap_default ? noop_default : function(func) { - return metaMap_default.get(func); -}; -var getData_default = getData; - -// node_modules/lodash-es/_realNames.js -var realNames = {}; -var realNames_default = realNames; - -// node_modules/lodash-es/_getFuncName.js -var objectProto = Object.prototype; -var hasOwnProperty = objectProto.hasOwnProperty; -function getFuncName(func) { - var result2 = func.name + "", array = realNames_default[result2], length = hasOwnProperty.call(realNames_default, result2) ? array.length : 0; - while (length--) { - var data = array[length], otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result2; -} -var getFuncName_default = getFuncName; - -// node_modules/lodash-es/_LodashWrapper.js -function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = void 0; -} -LodashWrapper.prototype = baseCreate_default(baseLodash_default.prototype); -LodashWrapper.prototype.constructor = LodashWrapper; -var LodashWrapper_default = LodashWrapper; - -// node_modules/lodash-es/_wrapperClone.js -function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper_default) { - return wrapper.clone(); - } - var result2 = new LodashWrapper_default(wrapper.__wrapped__, wrapper.__chain__); - result2.__actions__ = copyArray_default(wrapper.__actions__); - result2.__index__ = wrapper.__index__; - result2.__values__ = wrapper.__values__; - return result2; -} -var wrapperClone_default = wrapperClone; - -// node_modules/lodash-es/wrapperLodash.js -var objectProto2 = Object.prototype; -var hasOwnProperty2 = objectProto2.hasOwnProperty; -function lodash(value) { - if (isObjectLike_default(value) && !isArray_default(value) && !(value instanceof LazyWrapper_default)) { - if (value instanceof LodashWrapper_default) { - return value; - } - if (hasOwnProperty2.call(value, "__wrapped__")) { - return wrapperClone_default(value); - } - } - return new LodashWrapper_default(value); -} -lodash.prototype = baseLodash_default.prototype; -lodash.prototype.constructor = lodash; -var wrapperLodash_default = lodash; - -// node_modules/lodash-es/_isLaziable.js -function isLaziable(func) { - var funcName = getFuncName_default(func), other = wrapperLodash_default[funcName]; - if (typeof other != "function" || !(funcName in LazyWrapper_default.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData_default(other); - return !!data && func === data[0]; -} -var isLaziable_default = isLaziable; - -// node_modules/lodash-es/_setData.js -var setData = shortOut_default(baseSetData_default); -var setData_default = setData; - -// node_modules/lodash-es/_getWrapDetails.js -var reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/; -var reSplitDetails = /,? & /; -function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; -} -var getWrapDetails_default = getWrapDetails; - -// node_modules/lodash-es/_insertWrapDetails.js -var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/; -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"); -} -var insertWrapDetails_default = insertWrapDetails; - -// node_modules/lodash-es/_arrayEach.js -function arrayEach(array, iteratee2) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (iteratee2(array[index], index, array) === false) { - break; - } - } - return array; -} -var arrayEach_default = arrayEach; - -// node_modules/lodash-es/_baseFindIndex.js -function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, index = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index-- : ++index < length) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; -} -var baseFindIndex_default = baseFindIndex; - -// node_modules/lodash-es/_baseIsNaN.js -function baseIsNaN(value) { - return value !== value; -} -var baseIsNaN_default = baseIsNaN; - -// node_modules/lodash-es/_strictIndexOf.js -function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, length = array.length; - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; -} -var strictIndexOf_default = strictIndexOf; - -// node_modules/lodash-es/_baseIndexOf.js -function baseIndexOf(array, value, fromIndex) { - return value === value ? strictIndexOf_default(array, value, fromIndex) : baseFindIndex_default(array, baseIsNaN_default, fromIndex); -} -var baseIndexOf_default = baseIndexOf; - -// node_modules/lodash-es/_arrayIncludes.js -function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf_default(array, value, 0) > -1; -} -var arrayIncludes_default = arrayIncludes; - -// node_modules/lodash-es/_updateWrapDetails.js -var WRAP_BIND_FLAG2 = 1; -var WRAP_BIND_KEY_FLAG = 2; -var WRAP_CURRY_FLAG = 8; -var WRAP_CURRY_RIGHT_FLAG = 16; -var WRAP_PARTIAL_FLAG = 32; -var WRAP_PARTIAL_RIGHT_FLAG = 64; -var WRAP_ARY_FLAG = 128; -var WRAP_REARG_FLAG = 256; -var WRAP_FLIP_FLAG = 512; -var wrapFlags = [ - ["ary", WRAP_ARY_FLAG], - ["bind", WRAP_BIND_FLAG2], - ["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] -]; -function updateWrapDetails(details, bitmask) { - arrayEach_default(wrapFlags, function(pair) { - var value = "_." + pair[0]; - if (bitmask & pair[1] && !arrayIncludes_default(details, value)) { - details.push(value); - } - }); - return details.sort(); -} -var updateWrapDetails_default = updateWrapDetails; - -// node_modules/lodash-es/_setWrapToString.js -function setWrapToString(wrapper, reference, bitmask) { - var source = reference + ""; - return setToString_default(wrapper, insertWrapDetails_default(source, updateWrapDetails_default(getWrapDetails_default(source), bitmask))); -} -var setWrapToString_default = setWrapToString; - -// node_modules/lodash-es/_createRecurry.js -var WRAP_BIND_FLAG3 = 1; -var WRAP_BIND_KEY_FLAG2 = 2; -var WRAP_CURRY_BOUND_FLAG = 4; -var WRAP_CURRY_FLAG2 = 8; -var WRAP_PARTIAL_FLAG2 = 32; -var WRAP_PARTIAL_RIGHT_FLAG2 = 64; -function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG2, newHolders = isCurry ? holders : void 0, newHoldersRight = isCurry ? void 0 : holders, newPartials = isCurry ? partials : void 0, newPartialsRight = isCurry ? void 0 : partials; - bitmask |= isCurry ? WRAP_PARTIAL_FLAG2 : WRAP_PARTIAL_RIGHT_FLAG2; - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG2 : WRAP_PARTIAL_FLAG2); - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG3 | WRAP_BIND_KEY_FLAG2); - } - var newData = [ - func, - bitmask, - thisArg, - newPartials, - newHolders, - newPartialsRight, - newHoldersRight, - argPos, - ary2, - arity - ]; - var result2 = wrapFunc.apply(void 0, newData); - if (isLaziable_default(func)) { - setData_default(result2, newData); - } - result2.placeholder = placeholder; - return setWrapToString_default(result2, func, bitmask); -} -var createRecurry_default = createRecurry; - -// node_modules/lodash-es/_getHolder.js -function getHolder(func) { - var object = func; - return object.placeholder; -} -var getHolder_default = getHolder; - -// node_modules/lodash-es/_reorder.js -var nativeMin = Math.min; -function reorder(array, indexes) { - var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray_default(array); - while (length--) { - var index = indexes[length]; - array[length] = isIndex_default(index, arrLength) ? oldArray[index] : void 0; - } - return array; -} -var reorder_default = reorder; - -// node_modules/lodash-es/_replaceHolders.js -var PLACEHOLDER = "__lodash_placeholder__"; -function replaceHolders(array, placeholder) { - var index = -1, length = array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result2[resIndex++] = index; - } - } - return result2; -} -var replaceHolders_default = replaceHolders; - -// node_modules/lodash-es/_createHybrid.js -var WRAP_BIND_FLAG4 = 1; -var WRAP_BIND_KEY_FLAG3 = 2; -var WRAP_CURRY_FLAG3 = 8; -var WRAP_CURRY_RIGHT_FLAG2 = 16; -var WRAP_ARY_FLAG2 = 128; -var WRAP_FLIP_FLAG2 = 512; -function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { - var isAry = bitmask & WRAP_ARY_FLAG2, isBind = bitmask & WRAP_BIND_FLAG4, isBindKey = bitmask & WRAP_BIND_KEY_FLAG3, isCurried = bitmask & (WRAP_CURRY_FLAG3 | WRAP_CURRY_RIGHT_FLAG2), isFlip = bitmask & WRAP_FLIP_FLAG2, Ctor = isBindKey ? void 0 : createCtor_default(func); - function wrapper() { - var length = arguments.length, args = Array(length), index = length; - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder_default(wrapper), holdersCount = countHolders_default(args, placeholder); - } - if (partials) { - args = composeArgs_default(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight_default(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders_default(args, placeholder); - return createRecurry_default( - 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_default(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary2 < length) { - args.length = ary2; - } - if (this && this !== root_default && this instanceof wrapper) { - fn = Ctor || createCtor_default(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; -} -var createHybrid_default = createHybrid; - -// node_modules/lodash-es/_createCurry.js -function createCurry(func, bitmask, arity) { - var Ctor = createCtor_default(func); - function wrapper() { - var length = arguments.length, args = Array(length), index = length, placeholder = getHolder_default(wrapper); - while (index--) { - args[index] = arguments[index]; - } - var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders_default(args, placeholder); - length -= holders.length; - if (length < arity) { - return createRecurry_default( - func, - bitmask, - createHybrid_default, - wrapper.placeholder, - void 0, - args, - holders, - void 0, - void 0, - arity - length - ); - } - var fn = this && this !== root_default && this instanceof wrapper ? Ctor : func; - return apply_default(fn, this, args); - } - return wrapper; -} -var createCurry_default = createCurry; - -// node_modules/lodash-es/_createPartial.js -var WRAP_BIND_FLAG5 = 1; -function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG5, Ctor = createCtor_default(func); - function wrapper() { - var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array(leftLength + argsLength), fn = this && this !== root_default && this instanceof wrapper ? Ctor : func; - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply_default(fn, isBind ? thisArg : this, args); - } - return wrapper; -} -var createPartial_default = createPartial; - -// node_modules/lodash-es/_mergeData.js -var PLACEHOLDER2 = "__lodash_placeholder__"; -var WRAP_BIND_FLAG6 = 1; -var WRAP_BIND_KEY_FLAG4 = 2; -var WRAP_CURRY_BOUND_FLAG2 = 4; -var WRAP_CURRY_FLAG4 = 8; -var WRAP_ARY_FLAG3 = 128; -var WRAP_REARG_FLAG2 = 256; -var nativeMin2 = Math.min; -function mergeData(data, source) { - var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG6 | WRAP_BIND_KEY_FLAG4 | WRAP_ARY_FLAG3); - var isCombo = srcBitmask == WRAP_ARY_FLAG3 && bitmask == WRAP_CURRY_FLAG4 || srcBitmask == WRAP_ARY_FLAG3 && bitmask == WRAP_REARG_FLAG2 && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG3 | WRAP_REARG_FLAG2) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG4; - if (!(isCommon || isCombo)) { - return data; - } - if (srcBitmask & WRAP_BIND_FLAG6) { - data[2] = source[2]; - newBitmask |= bitmask & WRAP_BIND_FLAG6 ? 0 : WRAP_CURRY_BOUND_FLAG2; - } - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs_default(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders_default(data[3], PLACEHOLDER2) : source[4]; - } - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight_default(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders_default(data[5], PLACEHOLDER2) : source[6]; - } - value = source[7]; - if (value) { - data[7] = value; - } - if (srcBitmask & WRAP_ARY_FLAG3) { - data[8] = data[8] == null ? source[8] : nativeMin2(data[8], source[8]); - } - if (data[9] == null) { - data[9] = source[9]; - } - data[0] = source[0]; - data[1] = newBitmask; - return data; -} -var mergeData_default = mergeData; - -// node_modules/lodash-es/_createWrap.js -var FUNC_ERROR_TEXT2 = "Expected a function"; -var WRAP_BIND_FLAG7 = 1; -var WRAP_BIND_KEY_FLAG5 = 2; -var WRAP_CURRY_FLAG5 = 8; -var WRAP_CURRY_RIGHT_FLAG3 = 16; -var WRAP_PARTIAL_FLAG3 = 32; -var WRAP_PARTIAL_RIGHT_FLAG3 = 64; -var nativeMax3 = Math.max; -function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG5; - if (!isBindKey && typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT2); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG3 | WRAP_PARTIAL_RIGHT_FLAG3); - partials = holders = void 0; - } - ary2 = ary2 === void 0 ? ary2 : nativeMax3(toInteger_default(ary2), 0); - arity = arity === void 0 ? arity : toInteger_default(arity); - length -= holders ? holders.length : 0; - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG3) { - var partialsRight = partials, holdersRight = holders; - partials = holders = void 0; - } - var data = isBindKey ? void 0 : getData_default(func); - var newData = [ - func, - bitmask, - thisArg, - partials, - holders, - partialsRight, - holdersRight, - argPos, - ary2, - arity - ]; - if (data) { - mergeData_default(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === void 0 ? isBindKey ? 0 : func.length : nativeMax3(newData[9] - length, 0); - if (!arity && bitmask & (WRAP_CURRY_FLAG5 | WRAP_CURRY_RIGHT_FLAG3)) { - bitmask &= ~(WRAP_CURRY_FLAG5 | WRAP_CURRY_RIGHT_FLAG3); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG7) { - var result2 = createBind_default(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG5 || bitmask == WRAP_CURRY_RIGHT_FLAG3) { - result2 = createCurry_default(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG3 || bitmask == (WRAP_BIND_FLAG7 | WRAP_PARTIAL_FLAG3)) && !holders.length) { - result2 = createPartial_default(func, bitmask, thisArg, partials); - } else { - result2 = createHybrid_default.apply(void 0, newData); - } - var setter = data ? baseSetData_default : setData_default; - return setWrapToString_default(setter(result2, newData), func, bitmask); -} -var createWrap_default = createWrap; - -// node_modules/lodash-es/ary.js -var WRAP_ARY_FLAG4 = 128; -function ary(func, n, guard) { - n = guard ? void 0 : n; - n = func && n == null ? func.length : n; - return createWrap_default(func, WRAP_ARY_FLAG4, void 0, void 0, void 0, void 0, n); -} -var ary_default = ary; - -// node_modules/lodash-es/keys.js -function keys(object) { - return isArrayLike_default(object) ? arrayLikeKeys_default(object) : baseKeys_default(object); -} -var keys_default = keys; - -// node_modules/lodash-es/assign.js -var objectProto3 = Object.prototype; -var hasOwnProperty3 = objectProto3.hasOwnProperty; -var assign = createAssigner_default(function(object, source) { - if (isPrototype_default(source) || isArrayLike_default(source)) { - copyObject_default(source, keys_default(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty3.call(source, key)) { - assignValue_default(object, key, source[key]); - } - } -}); -var assign_default = assign; - -// node_modules/lodash-es/assignIn.js -var assignIn = createAssigner_default(function(object, source) { - copyObject_default(source, keysIn_default(source), object); -}); -var assignIn_default = assignIn; - -// node_modules/lodash-es/assignInWith.js -var assignInWith = createAssigner_default(function(object, source, srcIndex, customizer) { - copyObject_default(source, keysIn_default(source), object, customizer); -}); -var assignInWith_default = assignInWith; - -// node_modules/lodash-es/assignWith.js -var assignWith = createAssigner_default(function(object, source, srcIndex, customizer) { - copyObject_default(source, keys_default(source), object, customizer); -}); -var assignWith_default = assignWith; - -// node_modules/lodash-es/_isKey.js -var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; -var reIsPlainProp = /^\w*$/; -function isKey(value, object) { - if (isArray_default(value)) { - return false; - } - var type = typeof value; - if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol_default(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); -} -var isKey_default = isKey; - -// node_modules/lodash-es/_memoizeCapped.js -var MAX_MEMOIZE_SIZE = 500; -function memoizeCapped(func) { - var result2 = memoize_default(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - var cache = result2.cache; - return result2; -} -var memoizeCapped_default = memoizeCapped; - -// node_modules/lodash-es/_stringToPath.js -var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; -var reEscapeChar = /\\(\\)?/g; -var stringToPath = memoizeCapped_default(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; -}); -var stringToPath_default = stringToPath; - -// node_modules/lodash-es/toString.js -function toString(value) { - return value == null ? "" : baseToString_default(value); -} -var toString_default = toString; - -// node_modules/lodash-es/_castPath.js -function castPath(value, object) { - if (isArray_default(value)) { - return value; - } - return isKey_default(value, object) ? [value] : stringToPath_default(toString_default(value)); -} -var castPath_default = castPath; - -// node_modules/lodash-es/_toKey.js -var INFINITY3 = 1 / 0; -function toKey(value) { - if (typeof value == "string" || isSymbol_default(value)) { - return value; - } - var result2 = value + ""; - return result2 == "0" && 1 / value == -INFINITY3 ? "-0" : result2; -} -var toKey_default = toKey; - -// node_modules/lodash-es/_baseGet.js -function baseGet(object, path) { - path = castPath_default(path, object); - var index = 0, length = path.length; - while (object != null && index < length) { - object = object[toKey_default(path[index++])]; - } - return index && index == length ? object : void 0; -} -var baseGet_default = baseGet; - -// node_modules/lodash-es/get.js -function get(object, path, defaultValue) { - var result2 = object == null ? void 0 : baseGet_default(object, path); - return result2 === void 0 ? defaultValue : result2; -} -var get_default = get; - -// node_modules/lodash-es/_baseAt.js -function baseAt(object, paths) { - var index = -1, length = paths.length, result2 = Array(length), skip = object == null; - while (++index < length) { - result2[index] = skip ? void 0 : get_default(object, paths[index]); - } - return result2; -} -var baseAt_default = baseAt; - -// node_modules/lodash-es/_arrayPush.js -function arrayPush(array, values2) { - var index = -1, length = values2.length, offset = array.length; - while (++index < length) { - array[offset + index] = values2[index]; - } - return array; -} -var arrayPush_default = arrayPush; - -// node_modules/lodash-es/_isFlattenable.js -var spreadableSymbol = Symbol_default ? Symbol_default.isConcatSpreadable : void 0; -function isFlattenable(value) { - return isArray_default(value) || isArguments_default(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); -} -var isFlattenable_default = isFlattenable; - -// node_modules/lodash-es/_baseFlatten.js -function baseFlatten(array, depth, predicate, isStrict, result2) { - var index = -1, length = array.length; - predicate || (predicate = isFlattenable_default); - result2 || (result2 = []); - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - baseFlatten(value, depth - 1, predicate, isStrict, result2); - } else { - arrayPush_default(result2, value); - } - } else if (!isStrict) { - result2[result2.length] = value; - } - } - return result2; -} -var baseFlatten_default = baseFlatten; - -// node_modules/lodash-es/flatten.js -function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten_default(array, 1) : []; -} -var flatten_default = flatten; - -// node_modules/lodash-es/_flatRest.js -function flatRest(func) { - return setToString_default(overRest_default(func, void 0, flatten_default), func + ""); -} -var flatRest_default = flatRest; - -// node_modules/lodash-es/at.js -var at = flatRest_default(baseAt_default); -var at_default = at; - -// node_modules/lodash-es/isError.js -var domExcTag = "[object DOMException]"; -var errorTag = "[object Error]"; -function isError(value) { - if (!isObjectLike_default(value)) { - return false; - } - var tag = baseGetTag_default(value); - return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject_default(value); -} -var isError_default = isError; - -// node_modules/lodash-es/attempt.js -var attempt = baseRest_default(function(func, args) { - try { - return apply_default(func, void 0, args); - } catch (e) { - return isError_default(e) ? e : new Error(e); - } -}); -var attempt_default = attempt; - -// node_modules/lodash-es/before.js -var FUNC_ERROR_TEXT3 = "Expected a function"; -function before(n, func) { - var result2; - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT3); - } - n = toInteger_default(n); - return function() { - if (--n > 0) { - result2 = func.apply(this, arguments); - } - if (n <= 1) { - func = void 0; - } - return result2; - }; -} -var before_default = before; - -// node_modules/lodash-es/bind.js -var WRAP_BIND_FLAG8 = 1; -var WRAP_PARTIAL_FLAG4 = 32; -var bind = baseRest_default(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG8; - if (partials.length) { - var holders = replaceHolders_default(partials, getHolder_default(bind)); - bitmask |= WRAP_PARTIAL_FLAG4; - } - return createWrap_default(func, bitmask, thisArg, partials, holders); -}); -bind.placeholder = {}; -var bind_default = bind; - -// node_modules/lodash-es/bindAll.js -var bindAll = flatRest_default(function(object, methodNames) { - arrayEach_default(methodNames, function(key) { - key = toKey_default(key); - baseAssignValue_default(object, key, bind_default(object[key], object)); - }); - return object; -}); -var bindAll_default = bindAll; - -// node_modules/lodash-es/bindKey.js -var WRAP_BIND_FLAG9 = 1; -var WRAP_BIND_KEY_FLAG6 = 2; -var WRAP_PARTIAL_FLAG5 = 32; -var bindKey = baseRest_default(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG9 | WRAP_BIND_KEY_FLAG6; - if (partials.length) { - var holders = replaceHolders_default(partials, getHolder_default(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG5; - } - return createWrap_default(key, bitmask, object, partials, holders); -}); -bindKey.placeholder = {}; -var bindKey_default = bindKey; - -// node_modules/lodash-es/_baseSlice.js -function baseSlice(array, start, end) { - var index = -1, length = array.length; - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : end - start >>> 0; - start >>>= 0; - var result2 = Array(length); - while (++index < length) { - result2[index] = array[index + start]; - } - return result2; -} -var baseSlice_default = baseSlice; - -// node_modules/lodash-es/_castSlice.js -function castSlice(array, start, end) { - var length = array.length; - end = end === void 0 ? length : end; - return !start && end >= length ? array : baseSlice_default(array, start, end); -} -var castSlice_default = castSlice; - -// node_modules/lodash-es/_hasUnicode.js -var rsAstralRange = "\\ud800-\\udfff"; -var rsComboMarksRange = "\\u0300-\\u036f"; -var reComboHalfMarksRange = "\\ufe20-\\ufe2f"; -var rsComboSymbolsRange = "\\u20d0-\\u20ff"; -var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange; -var rsVarRange = "\\ufe0e\\ufe0f"; -var rsZWJ = "\\u200d"; -var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); -function hasUnicode(string) { - return reHasUnicode.test(string); -} -var hasUnicode_default = hasUnicode; - -// node_modules/lodash-es/_asciiToArray.js -function asciiToArray(string) { - return string.split(""); -} -var asciiToArray_default = asciiToArray; - -// node_modules/lodash-es/_unicodeToArray.js -var rsAstralRange2 = "\\ud800-\\udfff"; -var rsComboMarksRange2 = "\\u0300-\\u036f"; -var reComboHalfMarksRange2 = "\\ufe20-\\ufe2f"; -var rsComboSymbolsRange2 = "\\u20d0-\\u20ff"; -var rsComboRange2 = rsComboMarksRange2 + reComboHalfMarksRange2 + rsComboSymbolsRange2; -var rsVarRange2 = "\\ufe0e\\ufe0f"; -var rsAstral = "[" + rsAstralRange2 + "]"; -var rsCombo = "[" + rsComboRange2 + "]"; -var rsFitz = "\\ud83c[\\udffb-\\udfff]"; -var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")"; -var rsNonAstral = "[^" + rsAstralRange2 + "]"; -var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; -var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; -var rsZWJ2 = "\\u200d"; -var reOptMod = rsModifier + "?"; -var rsOptVar = "[" + rsVarRange2 + "]?"; -var rsOptJoin = "(?:" + rsZWJ2 + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*"; -var rsSeq = rsOptVar + reOptMod + rsOptJoin; -var rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; -var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); -function unicodeToArray(string) { - return string.match(reUnicode) || []; -} -var unicodeToArray_default = unicodeToArray; - -// node_modules/lodash-es/_stringToArray.js -function stringToArray(string) { - return hasUnicode_default(string) ? unicodeToArray_default(string) : asciiToArray_default(string); -} -var stringToArray_default = stringToArray; - -// node_modules/lodash-es/_createCaseFirst.js -function createCaseFirst(methodName) { - return function(string) { - string = toString_default(string); - var strSymbols = hasUnicode_default(string) ? stringToArray_default(string) : void 0; - var chr = strSymbols ? strSymbols[0] : string.charAt(0); - var trailing = strSymbols ? castSlice_default(strSymbols, 1).join("") : string.slice(1); - return chr[methodName]() + trailing; - }; -} -var createCaseFirst_default = createCaseFirst; - -// node_modules/lodash-es/upperFirst.js -var upperFirst = createCaseFirst_default("toUpperCase"); -var upperFirst_default = upperFirst; - -// node_modules/lodash-es/capitalize.js -function capitalize(string) { - return upperFirst_default(toString_default(string).toLowerCase()); -} -var capitalize_default = capitalize; - -// node_modules/lodash-es/_arrayReduce.js -function arrayReduce(array, iteratee2, accumulator, initAccum) { - var index = -1, length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee2(accumulator, array[index], index, array); - } - return accumulator; -} -var arrayReduce_default = arrayReduce; - -// node_modules/lodash-es/_basePropertyOf.js -function basePropertyOf(object) { - return function(key) { - return object == null ? void 0 : object[key]; - }; -} -var basePropertyOf_default = basePropertyOf; - -// node_modules/lodash-es/_deburrLetter.js -var deburredLetters = { - // Latin-1 Supplement block. - "À": "A", - "Á": "A", - "Â": "A", - "Ã": "A", - "Ä": "A", - "Å": "A", - "à": "a", - "á": "a", - "â": "a", - "ã": "a", - "ä": "a", - "å": "a", - "Ç": "C", - "ç": "c", - "Ð": "D", - "ð": "d", - "È": "E", - "É": "E", - "Ê": "E", - "Ë": "E", - "è": "e", - "é": "e", - "ê": "e", - "ë": "e", - "Ì": "I", - "Í": "I", - "Î": "I", - "Ï": "I", - "ì": "i", - "í": "i", - "î": "i", - "ï": "i", - "Ñ": "N", - "ñ": "n", - "Ò": "O", - "Ó": "O", - "Ô": "O", - "Õ": "O", - "Ö": "O", - "Ø": "O", - "ò": "o", - "ó": "o", - "ô": "o", - "õ": "o", - "ö": "o", - "ø": "o", - "Ù": "U", - "Ú": "U", - "Û": "U", - "Ü": "U", - "ù": "u", - "ú": "u", - "û": "u", - "ü": "u", - "Ý": "Y", - "ý": "y", - "ÿ": "y", - "Æ": "Ae", - "æ": "ae", - "Þ": "Th", - "þ": "th", - "ß": "ss", - // Latin Extended-A block. - "Ā": "A", - "Ă": "A", - "Ą": "A", - "ā": "a", - "ă": "a", - "ą": "a", - "Ć": "C", - "Ĉ": "C", - "Ċ": "C", - "Č": "C", - "ć": "c", - "ĉ": "c", - "ċ": "c", - "č": "c", - "Ď": "D", - "Đ": "D", - "ď": "d", - "đ": "d", - "Ē": "E", - "Ĕ": "E", - "Ė": "E", - "Ę": "E", - "Ě": "E", - "ē": "e", - "ĕ": "e", - "ė": "e", - "ę": "e", - "ě": "e", - "Ĝ": "G", - "Ğ": "G", - "Ġ": "G", - "Ģ": "G", - "ĝ": "g", - "ğ": "g", - "ġ": "g", - "ģ": "g", - "Ĥ": "H", - "Ħ": "H", - "ĥ": "h", - "ħ": "h", - "Ĩ": "I", - "Ī": "I", - "Ĭ": "I", - "Į": "I", - "İ": "I", - "ĩ": "i", - "ī": "i", - "ĭ": "i", - "į": "i", - "ı": "i", - "Ĵ": "J", - "ĵ": "j", - "Ķ": "K", - "ķ": "k", - "ĸ": "k", - "Ĺ": "L", - "Ļ": "L", - "Ľ": "L", - "Ŀ": "L", - "Ł": "L", - "ĺ": "l", - "ļ": "l", - "ľ": "l", - "ŀ": "l", - "ł": "l", - "Ń": "N", - "Ņ": "N", - "Ň": "N", - "Ŋ": "N", - "ń": "n", - "ņ": "n", - "ň": "n", - "ŋ": "n", - "Ō": "O", - "Ŏ": "O", - "Ő": "O", - "ō": "o", - "ŏ": "o", - "ő": "o", - "Ŕ": "R", - "Ŗ": "R", - "Ř": "R", - "ŕ": "r", - "ŗ": "r", - "ř": "r", - "Ś": "S", - "Ŝ": "S", - "Ş": "S", - "Š": "S", - "ś": "s", - "ŝ": "s", - "ş": "s", - "š": "s", - "Ţ": "T", - "Ť": "T", - "Ŧ": "T", - "ţ": "t", - "ť": "t", - "ŧ": "t", - "Ũ": "U", - "Ū": "U", - "Ŭ": "U", - "Ů": "U", - "Ű": "U", - "Ų": "U", - "ũ": "u", - "ū": "u", - "ŭ": "u", - "ů": "u", - "ű": "u", - "ų": "u", - "Ŵ": "W", - "ŵ": "w", - "Ŷ": "Y", - "ŷ": "y", - "Ÿ": "Y", - "Ź": "Z", - "Ż": "Z", - "Ž": "Z", - "ź": "z", - "ż": "z", - "ž": "z", - "IJ": "IJ", - "ij": "ij", - "Œ": "Oe", - "œ": "oe", - "ʼn": "'n", - "ſ": "s" -}; -var deburrLetter = basePropertyOf_default(deburredLetters); -var deburrLetter_default = deburrLetter; - -// node_modules/lodash-es/deburr.js -var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; -var rsComboMarksRange3 = "\\u0300-\\u036f"; -var reComboHalfMarksRange3 = "\\ufe20-\\ufe2f"; -var rsComboSymbolsRange3 = "\\u20d0-\\u20ff"; -var rsComboRange3 = rsComboMarksRange3 + reComboHalfMarksRange3 + rsComboSymbolsRange3; -var rsCombo2 = "[" + rsComboRange3 + "]"; -var reComboMark = RegExp(rsCombo2, "g"); -function deburr(string) { - string = toString_default(string); - return string && string.replace(reLatin, deburrLetter_default).replace(reComboMark, ""); -} -var deburr_default = deburr; - -// node_modules/lodash-es/_asciiWords.js -var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; -function asciiWords(string) { - return string.match(reAsciiWord) || []; -} -var asciiWords_default = asciiWords; - -// node_modules/lodash-es/_hasUnicodeWord.js -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 ]/; -function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); -} -var hasUnicodeWord_default = hasUnicodeWord; - -// node_modules/lodash-es/_unicodeWords.js -var rsAstralRange3 = "\\ud800-\\udfff"; -var rsComboMarksRange4 = "\\u0300-\\u036f"; -var reComboHalfMarksRange4 = "\\ufe20-\\ufe2f"; -var rsComboSymbolsRange4 = "\\u20d0-\\u20ff"; -var rsComboRange4 = rsComboMarksRange4 + reComboHalfMarksRange4 + rsComboSymbolsRange4; -var rsDingbatRange = "\\u2700-\\u27bf"; -var rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff"; -var rsMathOpRange = "\\xac\\xb1\\xd7\\xf7"; -var rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf"; -var rsPunctuationRange = "\\u2000-\\u206f"; -var 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"; -var rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde"; -var rsVarRange3 = "\\ufe0e\\ufe0f"; -var rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; -var rsApos = "['’]"; -var rsBreak = "[" + rsBreakRange + "]"; -var rsCombo3 = "[" + rsComboRange4 + "]"; -var rsDigits = "\\d+"; -var rsDingbat = "[" + rsDingbatRange + "]"; -var rsLower = "[" + rsLowerRange + "]"; -var rsMisc = "[^" + rsAstralRange3 + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]"; -var rsFitz2 = "\\ud83c[\\udffb-\\udfff]"; -var rsModifier2 = "(?:" + rsCombo3 + "|" + rsFitz2 + ")"; -var rsNonAstral2 = "[^" + rsAstralRange3 + "]"; -var rsRegional2 = "(?:\\ud83c[\\udde6-\\uddff]){2}"; -var rsSurrPair2 = "[\\ud800-\\udbff][\\udc00-\\udfff]"; -var rsUpper = "[" + rsUpperRange + "]"; -var rsZWJ3 = "\\u200d"; -var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")"; -var rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")"; -var rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?"; -var rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?"; -var reOptMod2 = rsModifier2 + "?"; -var rsOptVar2 = "[" + rsVarRange3 + "]?"; -var rsOptJoin2 = "(?:" + rsZWJ3 + "(?:" + [rsNonAstral2, rsRegional2, rsSurrPair2].join("|") + ")" + rsOptVar2 + reOptMod2 + ")*"; -var rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])"; -var rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])"; -var rsSeq2 = rsOptVar2 + reOptMod2 + rsOptJoin2; -var rsEmoji = "(?:" + [rsDingbat, rsRegional2, rsSurrPair2].join("|") + ")" + rsSeq2; -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"); -function unicodeWords(string) { - return string.match(reUnicodeWord) || []; -} -var unicodeWords_default = unicodeWords; - -// node_modules/lodash-es/words.js -function words(string, pattern, guard) { - string = toString_default(string); - pattern = guard ? void 0 : pattern; - if (pattern === void 0) { - return hasUnicodeWord_default(string) ? unicodeWords_default(string) : asciiWords_default(string); - } - return string.match(pattern) || []; -} -var words_default = words; - -// node_modules/lodash-es/_createCompounder.js -var rsApos2 = "['’]"; -var reApos = RegExp(rsApos2, "g"); -function createCompounder(callback) { - return function(string) { - return arrayReduce_default(words_default(deburr_default(string).replace(reApos, "")), callback, ""); - }; -} -var createCompounder_default = createCompounder; - -// node_modules/lodash-es/camelCase.js -var camelCase = createCompounder_default(function(result2, word, index) { - word = word.toLowerCase(); - return result2 + (index ? capitalize_default(word) : word); -}); -var camelCase_default = camelCase; - -// node_modules/lodash-es/castArray.js -function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray_default(value) ? value : [value]; -} -var castArray_default = castArray; - -// node_modules/lodash-es/_createRound.js -var nativeIsFinite = root_default.isFinite; -var nativeMin3 = Math.min; -function createRound(methodName) { - var func = Math[methodName]; - return function(number, precision) { - number = toNumber_default(number); - precision = precision == null ? 0 : nativeMin3(toInteger_default(precision), 292); - if (precision && nativeIsFinite(number)) { - var pair = (toString_default(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); - pair = (toString_default(value) + "e").split("e"); - return +(pair[0] + "e" + (+pair[1] - precision)); - } - return func(number); - }; -} -var createRound_default = createRound; - -// node_modules/lodash-es/ceil.js -var ceil = createRound_default("ceil"); -var ceil_default = ceil; - -// node_modules/lodash-es/chain.js -function chain(value) { - var result2 = wrapperLodash_default(value); - result2.__chain__ = true; - return result2; -} -var chain_default = chain; - -// node_modules/lodash-es/chunk.js -var nativeCeil = Math.ceil; -var nativeMax4 = Math.max; -function chunk(array, size2, guard) { - if (guard ? isIterateeCall_default(array, size2, guard) : size2 === void 0) { - size2 = 1; - } else { - size2 = nativeMax4(toInteger_default(size2), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size2 < 1) { - return []; - } - var index = 0, resIndex = 0, result2 = Array(nativeCeil(length / size2)); - while (index < length) { - result2[resIndex++] = baseSlice_default(array, index, index += size2); - } - return result2; -} -var chunk_default = chunk; - -// node_modules/lodash-es/_baseClamp.js -function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== void 0) { - number = number <= upper ? number : upper; - } - if (lower !== void 0) { - number = number >= lower ? number : lower; - } - } - return number; -} -var baseClamp_default = baseClamp; - -// node_modules/lodash-es/clamp.js -function clamp(number, lower, upper) { - if (upper === void 0) { - upper = lower; - lower = void 0; - } - if (upper !== void 0) { - upper = toNumber_default(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== void 0) { - lower = toNumber_default(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp_default(toNumber_default(number), lower, upper); -} -var clamp_default = clamp; - -// node_modules/lodash-es/_baseAssign.js -function baseAssign(object, source) { - return object && copyObject_default(source, keys_default(source), object); -} -var baseAssign_default = baseAssign; - -// node_modules/lodash-es/_baseAssignIn.js -function baseAssignIn(object, source) { - return object && copyObject_default(source, keysIn_default(source), object); -} -var baseAssignIn_default = baseAssignIn; - -// node_modules/lodash-es/_arrayFilter.js -function arrayFilter(array, predicate) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result2[resIndex++] = value; - } - } - return result2; -} -var arrayFilter_default = arrayFilter; - -// node_modules/lodash-es/stubArray.js -function stubArray() { - return []; -} -var stubArray_default = stubArray; - -// node_modules/lodash-es/_getSymbols.js -var objectProto4 = Object.prototype; -var propertyIsEnumerable = objectProto4.propertyIsEnumerable; -var nativeGetSymbols = Object.getOwnPropertySymbols; -var getSymbols = !nativeGetSymbols ? stubArray_default : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter_default(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); -}; -var getSymbols_default = getSymbols; - -// node_modules/lodash-es/_copySymbols.js -function copySymbols(source, object) { - return copyObject_default(source, getSymbols_default(source), object); -} -var copySymbols_default = copySymbols; - -// node_modules/lodash-es/_getSymbolsIn.js -var nativeGetSymbols2 = Object.getOwnPropertySymbols; -var getSymbolsIn = !nativeGetSymbols2 ? stubArray_default : function(object) { - var result2 = []; - while (object) { - arrayPush_default(result2, getSymbols_default(object)); - object = getPrototype_default(object); - } - return result2; -}; -var getSymbolsIn_default = getSymbolsIn; - -// node_modules/lodash-es/_copySymbolsIn.js -function copySymbolsIn(source, object) { - return copyObject_default(source, getSymbolsIn_default(source), object); -} -var copySymbolsIn_default = copySymbolsIn; - -// node_modules/lodash-es/_baseGetAllKeys.js -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result2 = keysFunc(object); - return isArray_default(object) ? result2 : arrayPush_default(result2, symbolsFunc(object)); -} -var baseGetAllKeys_default = baseGetAllKeys; - -// node_modules/lodash-es/_getAllKeys.js -function getAllKeys(object) { - return baseGetAllKeys_default(object, keys_default, getSymbols_default); -} -var getAllKeys_default = getAllKeys; - -// node_modules/lodash-es/_getAllKeysIn.js -function getAllKeysIn(object) { - return baseGetAllKeys_default(object, keysIn_default, getSymbolsIn_default); -} -var getAllKeysIn_default = getAllKeysIn; - -// node_modules/lodash-es/_initCloneArray.js -var objectProto5 = Object.prototype; -var hasOwnProperty4 = objectProto5.hasOwnProperty; -function initCloneArray(array) { - var length = array.length, result2 = new array.constructor(length); - if (length && typeof array[0] == "string" && hasOwnProperty4.call(array, "index")) { - result2.index = array.index; - result2.input = array.input; - } - return result2; -} -var initCloneArray_default = initCloneArray; - -// node_modules/lodash-es/_cloneDataView.js -function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); -} -var cloneDataView_default = cloneDataView; - -// node_modules/lodash-es/_cloneRegExp.js -var reFlags = /\w*$/; -function cloneRegExp(regexp) { - var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result2.lastIndex = regexp.lastIndex; - return result2; -} -var cloneRegExp_default = cloneRegExp; - -// node_modules/lodash-es/_cloneSymbol.js -var symbolProto2 = Symbol_default ? Symbol_default.prototype : void 0; -var symbolValueOf = symbolProto2 ? symbolProto2.valueOf : void 0; -function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; -} -var cloneSymbol_default = cloneSymbol; - -// node_modules/lodash-es/_initCloneByTag.js -var boolTag = "[object Boolean]"; -var dateTag = "[object Date]"; -var mapTag = "[object Map]"; -var numberTag = "[object Number]"; -var regexpTag = "[object RegExp]"; -var setTag = "[object Set]"; -var stringTag = "[object String]"; -var symbolTag2 = "[object Symbol]"; -var arrayBufferTag = "[object ArrayBuffer]"; -var dataViewTag = "[object DataView]"; -var float32Tag = "[object Float32Array]"; -var float64Tag = "[object Float64Array]"; -var int8Tag = "[object Int8Array]"; -var int16Tag = "[object Int16Array]"; -var int32Tag = "[object Int32Array]"; -var uint8Tag = "[object Uint8Array]"; -var uint8ClampedTag = "[object Uint8ClampedArray]"; -var uint16Tag = "[object Uint16Array]"; -var uint32Tag = "[object Uint32Array]"; -function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer_default(object); - case boolTag: - case dateTag: - return new Ctor(+object); - case dataViewTag: - return cloneDataView_default(object, isDeep); - case float32Tag: - case float64Tag: - case int8Tag: - case int16Tag: - case int32Tag: - case uint8Tag: - case uint8ClampedTag: - case uint16Tag: - case uint32Tag: - return cloneTypedArray_default(object, isDeep); - case mapTag: - return new Ctor(); - case numberTag: - case stringTag: - return new Ctor(object); - case regexpTag: - return cloneRegExp_default(object); - case setTag: - return new Ctor(); - case symbolTag2: - return cloneSymbol_default(object); - } -} -var initCloneByTag_default = initCloneByTag; - -// node_modules/lodash-es/_baseIsMap.js -var mapTag2 = "[object Map]"; -function baseIsMap(value) { - return isObjectLike_default(value) && getTag_default(value) == mapTag2; -} -var baseIsMap_default = baseIsMap; - -// node_modules/lodash-es/isMap.js -var nodeIsMap = nodeUtil_default && nodeUtil_default.isMap; -var isMap = nodeIsMap ? baseUnary_default(nodeIsMap) : baseIsMap_default; -var isMap_default = isMap; - -// node_modules/lodash-es/_baseIsSet.js -var setTag2 = "[object Set]"; -function baseIsSet(value) { - return isObjectLike_default(value) && getTag_default(value) == setTag2; -} -var baseIsSet_default = baseIsSet; - -// node_modules/lodash-es/isSet.js -var nodeIsSet = nodeUtil_default && nodeUtil_default.isSet; -var isSet = nodeIsSet ? baseUnary_default(nodeIsSet) : baseIsSet_default; -var isSet_default = isSet; - -// node_modules/lodash-es/_baseClone.js -var CLONE_DEEP_FLAG = 1; -var CLONE_FLAT_FLAG = 2; -var CLONE_SYMBOLS_FLAG = 4; -var argsTag = "[object Arguments]"; -var arrayTag = "[object Array]"; -var boolTag2 = "[object Boolean]"; -var dateTag2 = "[object Date]"; -var errorTag2 = "[object Error]"; -var funcTag = "[object Function]"; -var genTag = "[object GeneratorFunction]"; -var mapTag3 = "[object Map]"; -var numberTag2 = "[object Number]"; -var objectTag = "[object Object]"; -var regexpTag2 = "[object RegExp]"; -var setTag3 = "[object Set]"; -var stringTag2 = "[object String]"; -var symbolTag3 = "[object Symbol]"; -var weakMapTag = "[object WeakMap]"; -var arrayBufferTag2 = "[object ArrayBuffer]"; -var dataViewTag2 = "[object DataView]"; -var float32Tag2 = "[object Float32Array]"; -var float64Tag2 = "[object Float64Array]"; -var int8Tag2 = "[object Int8Array]"; -var int16Tag2 = "[object Int16Array]"; -var int32Tag2 = "[object Int32Array]"; -var uint8Tag2 = "[object Uint8Array]"; -var uint8ClampedTag2 = "[object Uint8ClampedArray]"; -var uint16Tag2 = "[object Uint16Array]"; -var uint32Tag2 = "[object Uint32Array]"; -var cloneableTags = {}; -cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag2] = cloneableTags[dataViewTag2] = cloneableTags[boolTag2] = cloneableTags[dateTag2] = cloneableTags[float32Tag2] = cloneableTags[float64Tag2] = cloneableTags[int8Tag2] = cloneableTags[int16Tag2] = cloneableTags[int32Tag2] = cloneableTags[mapTag3] = cloneableTags[numberTag2] = cloneableTags[objectTag] = cloneableTags[regexpTag2] = cloneableTags[setTag3] = cloneableTags[stringTag2] = cloneableTags[symbolTag3] = cloneableTags[uint8Tag2] = cloneableTags[uint8ClampedTag2] = cloneableTags[uint16Tag2] = cloneableTags[uint32Tag2] = true; -cloneableTags[errorTag2] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; -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 !== void 0) { - return result2; - } - if (!isObject_default(value)) { - return value; - } - var isArr = isArray_default(value); - if (isArr) { - result2 = initCloneArray_default(value); - if (!isDeep) { - return copyArray_default(value, result2); - } - } else { - var tag = getTag_default(value), isFunc = tag == funcTag || tag == genTag; - if (isBuffer_default(value)) { - return cloneBuffer_default(value, isDeep); - } - if (tag == objectTag || tag == argsTag || isFunc && !object) { - result2 = isFlat || isFunc ? {} : initCloneObject_default(value); - if (!isDeep) { - return isFlat ? copySymbolsIn_default(value, baseAssignIn_default(result2, value)) : copySymbols_default(value, baseAssign_default(result2, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result2 = initCloneByTag_default(value, tag, isDeep); - } - } - stack || (stack = new Stack_default()); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result2); - if (isSet_default(value)) { - value.forEach(function(subValue) { - result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap_default(value)) { - value.forEach(function(subValue, key2) { - result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); - }); - } - var keysFunc = isFull ? isFlat ? getAllKeysIn_default : getAllKeys_default : isFlat ? keysIn_default : keys_default; - var props = isArr ? void 0 : keysFunc(value); - arrayEach_default(props || value, function(subValue, key2) { - if (props) { - key2 = subValue; - subValue = value[key2]; - } - assignValue_default(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); - }); - return result2; -} -var baseClone_default = baseClone; - -// node_modules/lodash-es/clone.js -var CLONE_SYMBOLS_FLAG2 = 4; -function clone(value) { - return baseClone_default(value, CLONE_SYMBOLS_FLAG2); -} -var clone_default = clone; - -// node_modules/lodash-es/cloneDeep.js -var CLONE_DEEP_FLAG2 = 1; -var CLONE_SYMBOLS_FLAG3 = 4; -function cloneDeep(value) { - return baseClone_default(value, CLONE_DEEP_FLAG2 | CLONE_SYMBOLS_FLAG3); -} -var cloneDeep_default = cloneDeep; - -// node_modules/lodash-es/cloneDeepWith.js -var CLONE_DEEP_FLAG3 = 1; -var CLONE_SYMBOLS_FLAG4 = 4; -function cloneDeepWith(value, customizer) { - customizer = typeof customizer == "function" ? customizer : void 0; - return baseClone_default(value, CLONE_DEEP_FLAG3 | CLONE_SYMBOLS_FLAG4, customizer); -} -var cloneDeepWith_default = cloneDeepWith; - -// node_modules/lodash-es/cloneWith.js -var CLONE_SYMBOLS_FLAG5 = 4; -function cloneWith(value, customizer) { - customizer = typeof customizer == "function" ? customizer : void 0; - return baseClone_default(value, CLONE_SYMBOLS_FLAG5, customizer); -} -var cloneWith_default = cloneWith; - -// node_modules/lodash-es/commit.js -function wrapperCommit() { - return new LodashWrapper_default(this.value(), this.__chain__); -} -var commit_default = wrapperCommit; - -// node_modules/lodash-es/compact.js -function compact(array) { - var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index]; - if (value) { - result2[resIndex++] = value; - } - } - return result2; -} -var compact_default = compact; - -// node_modules/lodash-es/concat.js -function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), array = arguments[0], index = length; - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush_default(isArray_default(array) ? copyArray_default(array) : [array], baseFlatten_default(args, 1)); -} -var concat_default = concat; - -// node_modules/lodash-es/_setCacheAdd.js -var HASH_UNDEFINED = "__lodash_hash_undefined__"; -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; -} -var setCacheAdd_default = setCacheAdd; - -// node_modules/lodash-es/_setCacheHas.js -function setCacheHas(value) { - return this.__data__.has(value); -} -var setCacheHas_default = setCacheHas; - -// node_modules/lodash-es/_SetCache.js -function SetCache(values2) { - var index = -1, length = values2 == null ? 0 : values2.length; - this.__data__ = new MapCache_default(); - while (++index < length) { - this.add(values2[index]); - } -} -SetCache.prototype.add = SetCache.prototype.push = setCacheAdd_default; -SetCache.prototype.has = setCacheHas_default; -var SetCache_default = SetCache; - -// node_modules/lodash-es/_arraySome.js -function arraySome(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; -} -var arraySome_default = arraySome; - -// node_modules/lodash-es/_cacheHas.js -function cacheHas(cache, key) { - return cache.has(key); -} -var cacheHas_default = cacheHas; - -// node_modules/lodash-es/_equalArrays.js -var COMPARE_PARTIAL_FLAG = 1; -var COMPARE_UNORDERED_FLAG = 2; -function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache_default() : void 0; - stack.set(array, other); - stack.set(other, array); - while (++index < arrLength) { - var arrValue = array[index], othValue = other[index]; - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== void 0) { - if (compared) { - continue; - } - result2 = false; - break; - } - if (seen) { - if (!arraySome_default(other, function(othValue2, othIndex) { - if (!cacheHas_default(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; -} -var equalArrays_default = equalArrays; - -// node_modules/lodash-es/_mapToArray.js -function mapToArray(map2) { - var index = -1, result2 = Array(map2.size); - map2.forEach(function(value, key) { - result2[++index] = [key, value]; - }); - return result2; -} -var mapToArray_default = mapToArray; - -// node_modules/lodash-es/_setToArray.js -function setToArray(set2) { - var index = -1, result2 = Array(set2.size); - set2.forEach(function(value) { - result2[++index] = value; - }); - return result2; -} -var setToArray_default = setToArray; - -// node_modules/lodash-es/_equalByTag.js -var COMPARE_PARTIAL_FLAG2 = 1; -var COMPARE_UNORDERED_FLAG2 = 2; -var boolTag3 = "[object Boolean]"; -var dateTag3 = "[object Date]"; -var errorTag3 = "[object Error]"; -var mapTag4 = "[object Map]"; -var numberTag3 = "[object Number]"; -var regexpTag3 = "[object RegExp]"; -var setTag4 = "[object Set]"; -var stringTag3 = "[object String]"; -var symbolTag4 = "[object Symbol]"; -var arrayBufferTag3 = "[object ArrayBuffer]"; -var dataViewTag3 = "[object DataView]"; -var symbolProto3 = Symbol_default ? Symbol_default.prototype : void 0; -var symbolValueOf2 = symbolProto3 ? symbolProto3.valueOf : void 0; -function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag3: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; - } - object = object.buffer; - other = other.buffer; - case arrayBufferTag3: - if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array_default(object), new Uint8Array_default(other))) { - return false; - } - return true; - case boolTag3: - case dateTag3: - case numberTag3: - return eq_default(+object, +other); - case errorTag3: - return object.name == other.name && object.message == other.message; - case regexpTag3: - case stringTag3: - return object == other + ""; - case mapTag4: - var convert = mapToArray_default; - case setTag4: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG2; - convert || (convert = setToArray_default); - if (object.size != other.size && !isPartial) { - return false; - } - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG2; - stack.set(object, other); - var result2 = equalArrays_default(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack["delete"](object); - return result2; - case symbolTag4: - if (symbolValueOf2) { - return symbolValueOf2.call(object) == symbolValueOf2.call(other); - } - } - return false; -} -var equalByTag_default = equalByTag; - -// node_modules/lodash-es/_equalObjects.js -var COMPARE_PARTIAL_FLAG3 = 1; -var objectProto6 = Object.prototype; -var hasOwnProperty5 = objectProto6.hasOwnProperty; -function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG3, objProps = getAllKeys_default(object), objLength = objProps.length, othProps = getAllKeys_default(other), othLength = othProps.length; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty5.call(other, key))) { - return false; - } - } - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result2 = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], othValue = other[key]; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } - if (!(compared === void 0 ? 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; -} -var equalObjects_default = equalObjects; - -// node_modules/lodash-es/_baseIsEqualDeep.js -var COMPARE_PARTIAL_FLAG4 = 1; -var argsTag2 = "[object Arguments]"; -var arrayTag2 = "[object Array]"; -var objectTag2 = "[object Object]"; -var objectProto7 = Object.prototype; -var hasOwnProperty6 = objectProto7.hasOwnProperty; -function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray_default(object), othIsArr = isArray_default(other), objTag = objIsArr ? arrayTag2 : getTag_default(object), othTag = othIsArr ? arrayTag2 : getTag_default(other); - objTag = objTag == argsTag2 ? objectTag2 : objTag; - othTag = othTag == argsTag2 ? objectTag2 : othTag; - var objIsObj = objTag == objectTag2, othIsObj = othTag == objectTag2, isSameTag = objTag == othTag; - if (isSameTag && isBuffer_default(object)) { - if (!isBuffer_default(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack_default()); - return objIsArr || isTypedArray_default(object) ? equalArrays_default(object, other, bitmask, customizer, equalFunc, stack) : equalByTag_default(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG4)) { - var objIsWrapped = objIsObj && hasOwnProperty6.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty6.call(other, "__wrapped__"); - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new Stack_default()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack_default()); - return equalObjects_default(object, other, bitmask, customizer, equalFunc, stack); -} -var baseIsEqualDeep_default = baseIsEqualDeep; - -// node_modules/lodash-es/_baseIsEqual.js -function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || !isObjectLike_default(value) && !isObjectLike_default(other)) { - return value !== value && other !== other; - } - return baseIsEqualDeep_default(value, other, bitmask, customizer, baseIsEqual, stack); -} -var baseIsEqual_default = baseIsEqual; - -// node_modules/lodash-es/_baseIsMatch.js -var COMPARE_PARTIAL_FLAG5 = 1; -var COMPARE_UNORDERED_FLAG3 = 2; -function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, length = index, noCustomizer = !customizer; - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], objValue = object[key], srcValue = data[1]; - if (noCustomizer && data[2]) { - if (objValue === void 0 && !(key in object)) { - return false; - } - } else { - var stack = new Stack_default(); - if (customizer) { - var result2 = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result2 === void 0 ? baseIsEqual_default(srcValue, objValue, COMPARE_PARTIAL_FLAG5 | COMPARE_UNORDERED_FLAG3, customizer, stack) : result2)) { - return false; - } - } - } - return true; -} -var baseIsMatch_default = baseIsMatch; - -// node_modules/lodash-es/_isStrictComparable.js -function isStrictComparable(value) { - return value === value && !isObject_default(value); -} -var isStrictComparable_default = isStrictComparable; - -// node_modules/lodash-es/_getMatchData.js -function getMatchData(object) { - var result2 = keys_default(object), length = result2.length; - while (length--) { - var key = result2[length], value = object[key]; - result2[length] = [key, value, isStrictComparable_default(value)]; - } - return result2; -} -var getMatchData_default = getMatchData; - -// node_modules/lodash-es/_matchesStrictComparable.js -function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); - }; -} -var matchesStrictComparable_default = matchesStrictComparable; - -// node_modules/lodash-es/_baseMatches.js -function baseMatches(source) { - var matchData = getMatchData_default(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable_default(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch_default(object, source, matchData); - }; -} -var baseMatches_default = baseMatches; - -// node_modules/lodash-es/_baseHasIn.js -function baseHasIn(object, key) { - return object != null && key in Object(object); -} -var baseHasIn_default = baseHasIn; - -// node_modules/lodash-es/_hasPath.js -function hasPath(object, path, hasFunc) { - path = castPath_default(path, object); - var index = -1, length = path.length, result2 = false; - while (++index < length) { - var key = toKey_default(path[index]); - if (!(result2 = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result2 || ++index != length) { - return result2; - } - length = object == null ? 0 : object.length; - return !!length && isLength_default(length) && isIndex_default(key, length) && (isArray_default(object) || isArguments_default(object)); -} -var hasPath_default = hasPath; - -// node_modules/lodash-es/hasIn.js -function hasIn(object, path) { - return object != null && hasPath_default(object, path, baseHasIn_default); -} -var hasIn_default = hasIn; - -// node_modules/lodash-es/_baseMatchesProperty.js -var COMPARE_PARTIAL_FLAG6 = 1; -var COMPARE_UNORDERED_FLAG4 = 2; -function baseMatchesProperty(path, srcValue) { - if (isKey_default(path) && isStrictComparable_default(srcValue)) { - return matchesStrictComparable_default(toKey_default(path), srcValue); - } - return function(object) { - var objValue = get_default(object, path); - return objValue === void 0 && objValue === srcValue ? hasIn_default(object, path) : baseIsEqual_default(srcValue, objValue, COMPARE_PARTIAL_FLAG6 | COMPARE_UNORDERED_FLAG4); - }; -} -var baseMatchesProperty_default = baseMatchesProperty; - -// node_modules/lodash-es/_baseProperty.js -function baseProperty(key) { - return function(object) { - return object == null ? void 0 : object[key]; - }; -} -var baseProperty_default = baseProperty; - -// node_modules/lodash-es/_basePropertyDeep.js -function basePropertyDeep(path) { - return function(object) { - return baseGet_default(object, path); - }; -} -var basePropertyDeep_default = basePropertyDeep; - -// node_modules/lodash-es/property.js -function property(path) { - return isKey_default(path) ? baseProperty_default(toKey_default(path)) : basePropertyDeep_default(path); -} -var property_default = property; - -// node_modules/lodash-es/_baseIteratee.js -function baseIteratee(value) { - if (typeof value == "function") { - return value; - } - if (value == null) { - return identity_default; - } - if (typeof value == "object") { - return isArray_default(value) ? baseMatchesProperty_default(value[0], value[1]) : baseMatches_default(value); - } - return property_default(value); -} -var baseIteratee_default = baseIteratee; - -// node_modules/lodash-es/cond.js -var FUNC_ERROR_TEXT4 = "Expected a function"; -function cond(pairs) { - var length = pairs == null ? 0 : pairs.length, toIteratee = baseIteratee_default; - pairs = !length ? [] : arrayMap_default(pairs, function(pair) { - if (typeof pair[1] != "function") { - throw new TypeError(FUNC_ERROR_TEXT4); - } - return [toIteratee(pair[0]), pair[1]]; - }); - return baseRest_default(function(args) { - var index = -1; - while (++index < length) { - var pair = pairs[index]; - if (apply_default(pair[0], this, args)) { - return apply_default(pair[1], this, args); - } - } - }); -} -var cond_default = cond; - -// node_modules/lodash-es/_baseConformsTo.js -function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length], predicate = source[key], value = object[key]; - if (value === void 0 && !(key in object) || !predicate(value)) { - return false; - } - } - return true; -} -var baseConformsTo_default = baseConformsTo; - -// node_modules/lodash-es/_baseConforms.js -function baseConforms(source) { - var props = keys_default(source); - return function(object) { - return baseConformsTo_default(object, source, props); - }; -} -var baseConforms_default = baseConforms; - -// node_modules/lodash-es/conforms.js -var CLONE_DEEP_FLAG4 = 1; -function conforms(source) { - return baseConforms_default(baseClone_default(source, CLONE_DEEP_FLAG4)); -} -var conforms_default = conforms; - -// node_modules/lodash-es/conformsTo.js -function conformsTo(object, source) { - return source == null || baseConformsTo_default(object, source, keys_default(source)); -} -var conformsTo_default = conformsTo; - -// node_modules/lodash-es/_arrayAggregator.js -function arrayAggregator(array, setter, iteratee2, accumulator) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee2(value), array); - } - return accumulator; -} -var arrayAggregator_default = arrayAggregator; - -// node_modules/lodash-es/_baseForOwn.js -function baseForOwn(object, iteratee2) { - return object && baseFor_default(object, iteratee2, keys_default); -} -var baseForOwn_default = baseForOwn; - -// node_modules/lodash-es/_createBaseEach.js -function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee2) { - if (collection == null) { - return collection; - } - if (!isArrayLike_default(collection)) { - return eachFunc(collection, iteratee2); - } - var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); - while (fromRight ? index-- : ++index < length) { - if (iteratee2(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; -} -var createBaseEach_default = createBaseEach; - -// node_modules/lodash-es/_baseEach.js -var baseEach = createBaseEach_default(baseForOwn_default); -var baseEach_default = baseEach; - -// node_modules/lodash-es/_baseAggregator.js -function baseAggregator(collection, setter, iteratee2, accumulator) { - baseEach_default(collection, function(value, key, collection2) { - setter(accumulator, value, iteratee2(value), collection2); - }); - return accumulator; -} -var baseAggregator_default = baseAggregator; - -// node_modules/lodash-es/_createAggregator.js -function createAggregator(setter, initializer) { - return function(collection, iteratee2) { - var func = isArray_default(collection) ? arrayAggregator_default : baseAggregator_default, accumulator = initializer ? initializer() : {}; - return func(collection, setter, baseIteratee_default(iteratee2, 2), accumulator); - }; -} -var createAggregator_default = createAggregator; - -// node_modules/lodash-es/countBy.js -var objectProto8 = Object.prototype; -var hasOwnProperty7 = objectProto8.hasOwnProperty; -var countBy = createAggregator_default(function(result2, value, key) { - if (hasOwnProperty7.call(result2, key)) { - ++result2[key]; - } else { - baseAssignValue_default(result2, key, 1); - } -}); -var countBy_default = countBy; - -// node_modules/lodash-es/create.js -function create(prototype, properties) { - var result2 = baseCreate_default(prototype); - return properties == null ? result2 : baseAssign_default(result2, properties); -} -var create_default = create; - -// node_modules/lodash-es/curry.js -var WRAP_CURRY_FLAG6 = 8; -function curry(func, arity, guard) { - arity = guard ? void 0 : arity; - var result2 = createWrap_default(func, WRAP_CURRY_FLAG6, void 0, void 0, void 0, void 0, void 0, arity); - result2.placeholder = curry.placeholder; - return result2; -} -curry.placeholder = {}; -var curry_default = curry; - -// node_modules/lodash-es/curryRight.js -var WRAP_CURRY_RIGHT_FLAG4 = 16; -function curryRight(func, arity, guard) { - arity = guard ? void 0 : arity; - var result2 = createWrap_default(func, WRAP_CURRY_RIGHT_FLAG4, void 0, void 0, void 0, void 0, void 0, arity); - result2.placeholder = curryRight.placeholder; - return result2; -} -curryRight.placeholder = {}; -var curryRight_default = curryRight; - -// node_modules/lodash-es/now.js -var now = function() { - return root_default.Date.now(); -}; -var now_default = now; - -// node_modules/lodash-es/debounce.js -var FUNC_ERROR_TEXT5 = "Expected a function"; -var nativeMax5 = Math.max; -var nativeMin4 = Math.min; -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 TypeError(FUNC_ERROR_TEXT5); - } - wait = toNumber_default(wait) || 0; - if (isObject_default(options)) { - leading = !!options.leading; - maxing = "maxWait" in options; - maxWait = maxing ? nativeMax5(toNumber_default(options.maxWait) || 0, wait) : maxWait; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - function invokeFunc(time2) { - var args = lastArgs, thisArg = lastThis; - lastArgs = lastThis = void 0; - lastInvokeTime = time2; - result2 = func.apply(thisArg, args); - return result2; - } - function leadingEdge(time2) { - lastInvokeTime = time2; - timerId = setTimeout(timerExpired, wait); - return leading ? invokeFunc(time2) : result2; - } - function remainingWait(time2) { - var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; - return maxing ? nativeMin4(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time2) { - var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime; - return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time2 = now_default(); - if (shouldInvoke(time2)) { - return trailingEdge(time2); - } - timerId = setTimeout(timerExpired, remainingWait(time2)); - } - function trailingEdge(time2) { - timerId = void 0; - if (trailing && lastArgs) { - return invokeFunc(time2); - } - lastArgs = lastThis = void 0; - return result2; - } - function cancel() { - if (timerId !== void 0) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = void 0; - } - function flush() { - return timerId === void 0 ? result2 : trailingEdge(now_default()); - } - function debounced() { - var time2 = now_default(), isInvoking = shouldInvoke(time2); - lastArgs = arguments; - lastThis = this; - lastCallTime = time2; - if (isInvoking) { - if (timerId === void 0) { - return leadingEdge(lastCallTime); - } - if (maxing) { - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === void 0) { - timerId = setTimeout(timerExpired, wait); - } - return result2; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; -} -var debounce_default = debounce; - -// node_modules/lodash-es/defaultTo.js -function defaultTo(value, defaultValue) { - return value == null || value !== value ? defaultValue : value; -} -var defaultTo_default = defaultTo; - -// node_modules/lodash-es/defaults.js -var objectProto9 = Object.prototype; -var hasOwnProperty8 = objectProto9.hasOwnProperty; -var defaults = baseRest_default(function(object, sources) { - object = Object(object); - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : void 0; - if (guard && isIterateeCall_default(sources[0], sources[1], guard)) { - length = 1; - } - while (++index < length) { - var source = sources[index]; - var props = keysIn_default(source); - var propsIndex = -1; - var propsLength = props.length; - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - if (value === void 0 || eq_default(value, objectProto9[key]) && !hasOwnProperty8.call(object, key)) { - object[key] = source[key]; - } - } - } - return object; -}); -var defaults_default = defaults; - -// node_modules/lodash-es/_customDefaultsMerge.js -function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject_default(objValue) && isObject_default(srcValue)) { - stack.set(srcValue, objValue); - baseMerge_default(objValue, srcValue, void 0, customDefaultsMerge, stack); - stack["delete"](srcValue); - } - return objValue; -} -var customDefaultsMerge_default = customDefaultsMerge; - -// node_modules/lodash-es/mergeWith.js -var mergeWith = createAssigner_default(function(object, source, srcIndex, customizer) { - baseMerge_default(object, source, srcIndex, customizer); -}); -var mergeWith_default = mergeWith; - -// node_modules/lodash-es/defaultsDeep.js -var defaultsDeep = baseRest_default(function(args) { - args.push(void 0, customDefaultsMerge_default); - return apply_default(mergeWith_default, void 0, args); -}); -var defaultsDeep_default = defaultsDeep; - -// node_modules/lodash-es/_baseDelay.js -var FUNC_ERROR_TEXT6 = "Expected a function"; -function baseDelay(func, wait, args) { - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT6); - } - return setTimeout(function() { - func.apply(void 0, args); - }, wait); -} -var baseDelay_default = baseDelay; - -// node_modules/lodash-es/defer.js -var defer = baseRest_default(function(func, args) { - return baseDelay_default(func, 1, args); -}); -var defer_default = defer; - -// node_modules/lodash-es/delay.js -var delay = baseRest_default(function(func, wait, args) { - return baseDelay_default(func, toNumber_default(wait) || 0, args); -}); -var delay_default = delay; - -// node_modules/lodash-es/_arrayIncludesWith.js -function arrayIncludesWith(array, value, comparator) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; -} -var arrayIncludesWith_default = arrayIncludesWith; - -// node_modules/lodash-es/_baseDifference.js -var LARGE_ARRAY_SIZE = 200; -function baseDifference(array, values2, iteratee2, comparator) { - var index = -1, includes2 = arrayIncludes_default, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length; - if (!length) { - return result2; - } - if (iteratee2) { - values2 = arrayMap_default(values2, baseUnary_default(iteratee2)); - } - if (comparator) { - includes2 = arrayIncludesWith_default; - isCommon = false; - } else if (values2.length >= LARGE_ARRAY_SIZE) { - includes2 = cacheHas_default; - isCommon = false; - values2 = new SetCache_default(values2); - } - outer: - while (++index < length) { - var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values2[valuesIndex] === computed) { - continue outer; - } - } - result2.push(value); - } else if (!includes2(values2, computed, comparator)) { - result2.push(value); - } - } - return result2; -} -var baseDifference_default = baseDifference; - -// node_modules/lodash-es/difference.js -var difference = baseRest_default(function(array, values2) { - return isArrayLikeObject_default(array) ? baseDifference_default(array, baseFlatten_default(values2, 1, isArrayLikeObject_default, true)) : []; -}); -var difference_default = difference; - -// node_modules/lodash-es/last.js -function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : void 0; -} -var last_default = last; - -// node_modules/lodash-es/differenceBy.js -var differenceBy = baseRest_default(function(array, values2) { - var iteratee2 = last_default(values2); - if (isArrayLikeObject_default(iteratee2)) { - iteratee2 = void 0; - } - return isArrayLikeObject_default(array) ? baseDifference_default(array, baseFlatten_default(values2, 1, isArrayLikeObject_default, true), baseIteratee_default(iteratee2, 2)) : []; -}); -var differenceBy_default = differenceBy; - -// node_modules/lodash-es/differenceWith.js -var differenceWith = baseRest_default(function(array, values2) { - var comparator = last_default(values2); - if (isArrayLikeObject_default(comparator)) { - comparator = void 0; - } - return isArrayLikeObject_default(array) ? baseDifference_default(array, baseFlatten_default(values2, 1, isArrayLikeObject_default, true), void 0, comparator) : []; -}); -var differenceWith_default = differenceWith; - -// node_modules/lodash-es/divide.js -var divide = createMathOperation_default(function(dividend, divisor) { - return dividend / divisor; -}, 1); -var divide_default = divide; - -// node_modules/lodash-es/drop.js -function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === void 0 ? 1 : toInteger_default(n); - return baseSlice_default(array, n < 0 ? 0 : n, length); -} -var drop_default = drop; - -// node_modules/lodash-es/dropRight.js -function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === void 0 ? 1 : toInteger_default(n); - n = length - n; - return baseSlice_default(array, 0, n < 0 ? 0 : n); -} -var dropRight_default = dropRight; - -// node_modules/lodash-es/_baseWhile.js -function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, index = fromRight ? length : -1; - while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { - } - return isDrop ? baseSlice_default(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice_default(array, fromRight ? index + 1 : 0, fromRight ? length : index); -} -var baseWhile_default = baseWhile; - -// node_modules/lodash-es/dropRightWhile.js -function dropRightWhile(array, predicate) { - return array && array.length ? baseWhile_default(array, baseIteratee_default(predicate, 3), true, true) : []; -} -var dropRightWhile_default = dropRightWhile; - -// node_modules/lodash-es/dropWhile.js -function dropWhile(array, predicate) { - return array && array.length ? baseWhile_default(array, baseIteratee_default(predicate, 3), true) : []; -} -var dropWhile_default = dropWhile; - -// node_modules/lodash-es/_castFunction.js -function castFunction(value) { - return typeof value == "function" ? value : identity_default; -} -var castFunction_default = castFunction; - -// node_modules/lodash-es/forEach.js -function forEach(collection, iteratee2) { - var func = isArray_default(collection) ? arrayEach_default : baseEach_default; - return func(collection, castFunction_default(iteratee2)); -} -var forEach_default = forEach; - -// node_modules/lodash-es/_arrayEachRight.js -function arrayEachRight(array, iteratee2) { - var length = array == null ? 0 : array.length; - while (length--) { - if (iteratee2(array[length], length, array) === false) { - break; - } - } - return array; -} -var arrayEachRight_default = arrayEachRight; - -// node_modules/lodash-es/_baseForRight.js -var baseForRight = createBaseFor_default(true); -var baseForRight_default = baseForRight; - -// node_modules/lodash-es/_baseForOwnRight.js -function baseForOwnRight(object, iteratee2) { - return object && baseForRight_default(object, iteratee2, keys_default); -} -var baseForOwnRight_default = baseForOwnRight; - -// node_modules/lodash-es/_baseEachRight.js -var baseEachRight = createBaseEach_default(baseForOwnRight_default, true); -var baseEachRight_default = baseEachRight; - -// node_modules/lodash-es/forEachRight.js -function forEachRight(collection, iteratee2) { - var func = isArray_default(collection) ? arrayEachRight_default : baseEachRight_default; - return func(collection, castFunction_default(iteratee2)); -} -var forEachRight_default = forEachRight; - -// node_modules/lodash-es/endsWith.js -function endsWith(string, target, position2) { - string = toString_default(string); - target = baseToString_default(target); - var length = string.length; - position2 = position2 === void 0 ? length : baseClamp_default(toInteger_default(position2), 0, length); - var end = position2; - position2 -= target.length; - return position2 >= 0 && string.slice(position2, end) == target; -} -var endsWith_default = endsWith; - -// node_modules/lodash-es/_baseToPairs.js -function baseToPairs(object, props) { - return arrayMap_default(props, function(key) { - return [key, object[key]]; - }); -} -var baseToPairs_default = baseToPairs; - -// node_modules/lodash-es/_setToPairs.js -function setToPairs(set2) { - var index = -1, result2 = Array(set2.size); - set2.forEach(function(value) { - result2[++index] = [value, value]; - }); - return result2; -} -var setToPairs_default = setToPairs; - -// node_modules/lodash-es/_createToPairs.js -var mapTag5 = "[object Map]"; -var setTag5 = "[object Set]"; -function createToPairs(keysFunc) { - return function(object) { - var tag = getTag_default(object); - if (tag == mapTag5) { - return mapToArray_default(object); - } - if (tag == setTag5) { - return setToPairs_default(object); - } - return baseToPairs_default(object, keysFunc(object)); - }; -} -var createToPairs_default = createToPairs; - -// node_modules/lodash-es/toPairs.js -var toPairs = createToPairs_default(keys_default); -var toPairs_default = toPairs; - -// node_modules/lodash-es/toPairsIn.js -var toPairsIn = createToPairs_default(keysIn_default); -var toPairsIn_default = toPairsIn; - -// node_modules/lodash-es/_escapeHtmlChar.js -var htmlEscapes = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" -}; -var escapeHtmlChar = basePropertyOf_default(htmlEscapes); -var escapeHtmlChar_default = escapeHtmlChar; - -// node_modules/lodash-es/escape.js -var reUnescapedHtml = /[&<>"']/g; -var reHasUnescapedHtml = RegExp(reUnescapedHtml.source); -function escape(string) { - string = toString_default(string); - return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar_default) : string; -} -var escape_default = escape; - -// node_modules/lodash-es/escapeRegExp.js -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; -var reHasRegExpChar = RegExp(reRegExpChar.source); -function escapeRegExp(string) { - string = toString_default(string); - return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; -} -var escapeRegExp_default = escapeRegExp; - -// node_modules/lodash-es/_arrayEvery.js -function arrayEvery(array, predicate) { - var index = -1, length = array == null ? 0 : array.length; - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; -} -var arrayEvery_default = arrayEvery; - -// node_modules/lodash-es/_baseEvery.js -function baseEvery(collection, predicate) { - var result2 = true; - baseEach_default(collection, function(value, index, collection2) { - result2 = !!predicate(value, index, collection2); - return result2; - }); - return result2; -} -var baseEvery_default = baseEvery; - -// node_modules/lodash-es/every.js -function every(collection, predicate, guard) { - var func = isArray_default(collection) ? arrayEvery_default : baseEvery_default; - if (guard && isIterateeCall_default(collection, predicate, guard)) { - predicate = void 0; - } - return func(collection, baseIteratee_default(predicate, 3)); -} -var every_default = every; - -// node_modules/lodash-es/toLength.js -var MAX_ARRAY_LENGTH2 = 4294967295; -function toLength(value) { - return value ? baseClamp_default(toInteger_default(value), 0, MAX_ARRAY_LENGTH2) : 0; -} -var toLength_default = toLength; - -// node_modules/lodash-es/_baseFill.js -function baseFill(array, value, start, end) { - var length = array.length; - start = toInteger_default(start); - if (start < 0) { - start = -start > length ? 0 : length + start; - } - end = end === void 0 || end > length ? length : toInteger_default(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength_default(end); - while (start < end) { - array[start++] = value; - } - return array; -} -var baseFill_default = baseFill; - -// node_modules/lodash-es/fill.js -function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != "number" && isIterateeCall_default(array, value, start)) { - start = 0; - end = length; - } - return baseFill_default(array, value, start, end); -} -var fill_default = fill; - -// node_modules/lodash-es/_baseFilter.js -function baseFilter(collection, predicate) { - var result2 = []; - baseEach_default(collection, function(value, index, collection2) { - if (predicate(value, index, collection2)) { - result2.push(value); - } - }); - return result2; -} -var baseFilter_default = baseFilter; - -// node_modules/lodash-es/filter.js -function filter(collection, predicate) { - var func = isArray_default(collection) ? arrayFilter_default : baseFilter_default; - return func(collection, baseIteratee_default(predicate, 3)); -} -var filter_default = filter; - -// node_modules/lodash-es/_createFind.js -function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike_default(collection)) { - var iteratee2 = baseIteratee_default(predicate, 3); - collection = keys_default(collection); - predicate = function(key) { - return iteratee2(iterable[key], key, iterable); - }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee2 ? collection[index] : index] : void 0; - }; -} -var createFind_default = createFind; - -// node_modules/lodash-es/findIndex.js -var nativeMax6 = Math.max; -function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger_default(fromIndex); - if (index < 0) { - index = nativeMax6(length + index, 0); - } - return baseFindIndex_default(array, baseIteratee_default(predicate, 3), index); -} -var findIndex_default = findIndex; - -// node_modules/lodash-es/find.js -var find = createFind_default(findIndex_default); -var find_default = find; - -// node_modules/lodash-es/_baseFindKey.js -function baseFindKey(collection, predicate, eachFunc) { - var result2; - eachFunc(collection, function(value, key, collection2) { - if (predicate(value, key, collection2)) { - result2 = key; - return false; - } - }); - return result2; -} -var baseFindKey_default = baseFindKey; - -// node_modules/lodash-es/findKey.js -function findKey(object, predicate) { - return baseFindKey_default(object, baseIteratee_default(predicate, 3), baseForOwn_default); -} -var findKey_default = findKey; - -// node_modules/lodash-es/findLastIndex.js -var nativeMax7 = Math.max; -var nativeMin5 = Math.min; -function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== void 0) { - index = toInteger_default(fromIndex); - index = fromIndex < 0 ? nativeMax7(length + index, 0) : nativeMin5(index, length - 1); - } - return baseFindIndex_default(array, baseIteratee_default(predicate, 3), index, true); -} -var findLastIndex_default = findLastIndex; - -// node_modules/lodash-es/findLast.js -var findLast = createFind_default(findLastIndex_default); -var findLast_default = findLast; - -// node_modules/lodash-es/findLastKey.js -function findLastKey(object, predicate) { - return baseFindKey_default(object, baseIteratee_default(predicate, 3), baseForOwnRight_default); -} -var findLastKey_default = findLastKey; - -// node_modules/lodash-es/head.js -function head(array) { - return array && array.length ? array[0] : void 0; -} -var head_default = head; - -// node_modules/lodash-es/_baseMap.js -function baseMap(collection, iteratee2) { - var index = -1, result2 = isArrayLike_default(collection) ? Array(collection.length) : []; - baseEach_default(collection, function(value, key, collection2) { - result2[++index] = iteratee2(value, key, collection2); - }); - return result2; -} -var baseMap_default = baseMap; - -// node_modules/lodash-es/map.js -function map(collection, iteratee2) { - var func = isArray_default(collection) ? arrayMap_default : baseMap_default; - return func(collection, baseIteratee_default(iteratee2, 3)); -} -var map_default = map; - -// node_modules/lodash-es/flatMap.js -function flatMap(collection, iteratee2) { - return baseFlatten_default(map_default(collection, iteratee2), 1); -} -var flatMap_default = flatMap; - -// node_modules/lodash-es/flatMapDeep.js -var INFINITY4 = 1 / 0; -function flatMapDeep(collection, iteratee2) { - return baseFlatten_default(map_default(collection, iteratee2), INFINITY4); -} -var flatMapDeep_default = flatMapDeep; - -// node_modules/lodash-es/flatMapDepth.js -function flatMapDepth(collection, iteratee2, depth) { - depth = depth === void 0 ? 1 : toInteger_default(depth); - return baseFlatten_default(map_default(collection, iteratee2), depth); -} -var flatMapDepth_default = flatMapDepth; - -// node_modules/lodash-es/flattenDeep.js -var INFINITY5 = 1 / 0; -function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten_default(array, INFINITY5) : []; -} -var flattenDeep_default = flattenDeep; - -// node_modules/lodash-es/flattenDepth.js -function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === void 0 ? 1 : toInteger_default(depth); - return baseFlatten_default(array, depth); -} -var flattenDepth_default = flattenDepth; - -// node_modules/lodash-es/flip.js -var WRAP_FLIP_FLAG3 = 512; -function flip(func) { - return createWrap_default(func, WRAP_FLIP_FLAG3); -} -var flip_default = flip; - -// node_modules/lodash-es/floor.js -var floor = createRound_default("floor"); -var floor_default = floor; - -// node_modules/lodash-es/_createFlow.js -var FUNC_ERROR_TEXT7 = "Expected a function"; -var WRAP_CURRY_FLAG7 = 8; -var WRAP_PARTIAL_FLAG6 = 32; -var WRAP_ARY_FLAG5 = 128; -var WRAP_REARG_FLAG3 = 256; -function createFlow(fromRight) { - return flatRest_default(function(funcs) { - var length = funcs.length, index = length, prereq = LodashWrapper_default.prototype.thru; - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT7); - } - if (prereq && !wrapper && getFuncName_default(func) == "wrapper") { - var wrapper = new LodashWrapper_default([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - var funcName = getFuncName_default(func), data = funcName == "wrapper" ? getData_default(func) : void 0; - if (data && isLaziable_default(data[0]) && data[1] == (WRAP_ARY_FLAG5 | WRAP_CURRY_FLAG7 | WRAP_PARTIAL_FLAG6 | WRAP_REARG_FLAG3) && !data[4].length && data[9] == 1) { - wrapper = wrapper[getFuncName_default(data[0])].apply(wrapper, data[3]); - } else { - wrapper = func.length == 1 && isLaziable_default(func) ? wrapper[funcName]() : wrapper.thru(func); - } - } - return function() { - var args = arguments, value = args[0]; - if (wrapper && args.length == 1 && isArray_default(value)) { - return wrapper.plant(value).value(); - } - var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; - while (++index2 < length) { - result2 = funcs[index2].call(this, result2); - } - return result2; - }; - }); -} -var createFlow_default = createFlow; - -// node_modules/lodash-es/flow.js -var flow = createFlow_default(); -var flow_default = flow; - -// node_modules/lodash-es/flowRight.js -var flowRight = createFlow_default(true); -var flowRight_default = flowRight; - -// node_modules/lodash-es/forIn.js -function forIn(object, iteratee2) { - return object == null ? object : baseFor_default(object, castFunction_default(iteratee2), keysIn_default); -} -var forIn_default = forIn; - -// node_modules/lodash-es/forInRight.js -function forInRight(object, iteratee2) { - return object == null ? object : baseForRight_default(object, castFunction_default(iteratee2), keysIn_default); -} -var forInRight_default = forInRight; - -// node_modules/lodash-es/forOwn.js -function forOwn(object, iteratee2) { - return object && baseForOwn_default(object, castFunction_default(iteratee2)); -} -var forOwn_default = forOwn; - -// node_modules/lodash-es/forOwnRight.js -function forOwnRight(object, iteratee2) { - return object && baseForOwnRight_default(object, castFunction_default(iteratee2)); -} -var forOwnRight_default = forOwnRight; - -// node_modules/lodash-es/fromPairs.js -function fromPairs(pairs) { - var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {}; - while (++index < length) { - var pair = pairs[index]; - result2[pair[0]] = pair[1]; - } - return result2; -} -var fromPairs_default = fromPairs; - -// node_modules/lodash-es/_baseFunctions.js -function baseFunctions(object, props) { - return arrayFilter_default(props, function(key) { - return isFunction_default(object[key]); - }); -} -var baseFunctions_default = baseFunctions; - -// node_modules/lodash-es/functions.js -function functions(object) { - return object == null ? [] : baseFunctions_default(object, keys_default(object)); -} -var functions_default = functions; - -// node_modules/lodash-es/functionsIn.js -function functionsIn(object) { - return object == null ? [] : baseFunctions_default(object, keysIn_default(object)); -} -var functionsIn_default = functionsIn; - -// node_modules/lodash-es/groupBy.js -var objectProto10 = Object.prototype; -var hasOwnProperty9 = objectProto10.hasOwnProperty; -var groupBy = createAggregator_default(function(result2, value, key) { - if (hasOwnProperty9.call(result2, key)) { - result2[key].push(value); - } else { - baseAssignValue_default(result2, key, [value]); - } -}); -var groupBy_default = groupBy; - -// node_modules/lodash-es/_baseGt.js -function baseGt(value, other) { - return value > other; -} -var baseGt_default = baseGt; - -// node_modules/lodash-es/_createRelationalOperation.js -function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == "string" && typeof other == "string")) { - value = toNumber_default(value); - other = toNumber_default(other); - } - return operator(value, other); - }; -} -var createRelationalOperation_default = createRelationalOperation; - -// node_modules/lodash-es/gt.js -var gt = createRelationalOperation_default(baseGt_default); -var gt_default = gt; - -// node_modules/lodash-es/gte.js -var gte = createRelationalOperation_default(function(value, other) { - return value >= other; -}); -var gte_default = gte; - -// node_modules/lodash-es/_baseHas.js -var objectProto11 = Object.prototype; -var hasOwnProperty10 = objectProto11.hasOwnProperty; -function baseHas(object, key) { - return object != null && hasOwnProperty10.call(object, key); -} -var baseHas_default = baseHas; - -// node_modules/lodash-es/has.js -function has(object, path) { - return object != null && hasPath_default(object, path, baseHas_default); -} -var has_default = has; - -// node_modules/lodash-es/_baseInRange.js -var nativeMax8 = Math.max; -var nativeMin6 = Math.min; -function baseInRange(number, start, end) { - return number >= nativeMin6(start, end) && number < nativeMax8(start, end); -} -var baseInRange_default = baseInRange; - -// node_modules/lodash-es/inRange.js -function inRange(number, start, end) { - start = toFinite_default(start); - if (end === void 0) { - end = start; - start = 0; - } else { - end = toFinite_default(end); - } - number = toNumber_default(number); - return baseInRange_default(number, start, end); -} -var inRange_default = inRange; - -// node_modules/lodash-es/isString.js -var stringTag4 = "[object String]"; -function isString(value) { - return typeof value == "string" || !isArray_default(value) && isObjectLike_default(value) && baseGetTag_default(value) == stringTag4; -} -var isString_default = isString; - -// node_modules/lodash-es/_baseValues.js -function baseValues(object, props) { - return arrayMap_default(props, function(key) { - return object[key]; - }); -} -var baseValues_default = baseValues; - -// node_modules/lodash-es/values.js -function values(object) { - return object == null ? [] : baseValues_default(object, keys_default(object)); -} -var values_default = values; - -// node_modules/lodash-es/includes.js -var nativeMax9 = Math.max; -function includes(collection, value, fromIndex, guard) { - collection = isArrayLike_default(collection) ? collection : values_default(collection); - fromIndex = fromIndex && !guard ? toInteger_default(fromIndex) : 0; - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax9(length + fromIndex, 0); - } - return isString_default(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf_default(collection, value, fromIndex) > -1; -} -var includes_default = includes; - -// node_modules/lodash-es/indexOf.js -var nativeMax10 = Math.max; -function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger_default(fromIndex); - if (index < 0) { - index = nativeMax10(length + index, 0); - } - return baseIndexOf_default(array, value, index); -} -var indexOf_default = indexOf; - -// node_modules/lodash-es/initial.js -function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice_default(array, 0, -1) : []; -} -var initial_default = initial; - -// node_modules/lodash-es/_baseIntersection.js -var nativeMin7 = Math.min; -function baseIntersection(arrays, iteratee2, comparator) { - var includes2 = comparator ? arrayIncludesWith_default : arrayIncludes_default, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array(othLength), maxLength = Infinity, result2 = []; - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee2) { - array = arrayMap_default(array, baseUnary_default(iteratee2)); - } - maxLength = nativeMin7(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache_default(othIndex && array) : void 0; - } - array = arrays[0]; - var index = -1, seen = caches[0]; - outer: - while (++index < length && result2.length < maxLength) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - value = comparator || value !== 0 ? value : 0; - if (!(seen ? cacheHas_default(seen, computed) : includes2(result2, computed, comparator))) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache ? cacheHas_default(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result2.push(value); - } - } - return result2; -} -var baseIntersection_default = baseIntersection; - -// node_modules/lodash-es/_castArrayLikeObject.js -function castArrayLikeObject(value) { - return isArrayLikeObject_default(value) ? value : []; -} -var castArrayLikeObject_default = castArrayLikeObject; - -// node_modules/lodash-es/intersection.js -var intersection = baseRest_default(function(arrays) { - var mapped = arrayMap_default(arrays, castArrayLikeObject_default); - return mapped.length && mapped[0] === arrays[0] ? baseIntersection_default(mapped) : []; -}); -var intersection_default = intersection; - -// node_modules/lodash-es/intersectionBy.js -var intersectionBy = baseRest_default(function(arrays) { - var iteratee2 = last_default(arrays), mapped = arrayMap_default(arrays, castArrayLikeObject_default); - if (iteratee2 === last_default(mapped)) { - iteratee2 = void 0; - } else { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection_default(mapped, baseIteratee_default(iteratee2, 2)) : []; -}); -var intersectionBy_default = intersectionBy; - -// node_modules/lodash-es/intersectionWith.js -var intersectionWith = baseRest_default(function(arrays) { - var comparator = last_default(arrays), mapped = arrayMap_default(arrays, castArrayLikeObject_default); - comparator = typeof comparator == "function" ? comparator : void 0; - if (comparator) { - mapped.pop(); - } - return mapped.length && mapped[0] === arrays[0] ? baseIntersection_default(mapped, void 0, comparator) : []; -}); -var intersectionWith_default = intersectionWith; - -// node_modules/lodash-es/_baseInverter.js -function baseInverter(object, setter, iteratee2, accumulator) { - baseForOwn_default(object, function(value, key, object2) { - setter(accumulator, iteratee2(value), key, object2); - }); - return accumulator; -} -var baseInverter_default = baseInverter; - -// node_modules/lodash-es/_createInverter.js -function createInverter(setter, toIteratee) { - return function(object, iteratee2) { - return baseInverter_default(object, setter, toIteratee(iteratee2), {}); - }; -} -var createInverter_default = createInverter; - -// node_modules/lodash-es/invert.js -var objectProto12 = Object.prototype; -var nativeObjectToString = objectProto12.toString; -var invert = createInverter_default(function(result2, value, key) { - if (value != null && typeof value.toString != "function") { - value = nativeObjectToString.call(value); - } - result2[value] = key; -}, constant_default(identity_default)); -var invert_default = invert; - -// node_modules/lodash-es/invertBy.js -var objectProto13 = Object.prototype; -var hasOwnProperty11 = objectProto13.hasOwnProperty; -var nativeObjectToString2 = objectProto13.toString; -var invertBy = createInverter_default(function(result2, value, key) { - if (value != null && typeof value.toString != "function") { - value = nativeObjectToString2.call(value); - } - if (hasOwnProperty11.call(result2, value)) { - result2[value].push(key); - } else { - result2[value] = [key]; - } -}, baseIteratee_default); -var invertBy_default = invertBy; - -// node_modules/lodash-es/_parent.js -function parent(object, path) { - return path.length < 2 ? object : baseGet_default(object, baseSlice_default(path, 0, -1)); -} -var parent_default = parent; - -// node_modules/lodash-es/_baseInvoke.js -function baseInvoke(object, path, args) { - path = castPath_default(path, object); - object = parent_default(object, path); - var func = object == null ? object : object[toKey_default(last_default(path))]; - return func == null ? void 0 : apply_default(func, object, args); -} -var baseInvoke_default = baseInvoke; - -// node_modules/lodash-es/invoke.js -var invoke = baseRest_default(baseInvoke_default); -var invoke_default = invoke; - -// node_modules/lodash-es/invokeMap.js -var invokeMap = baseRest_default(function(collection, path, args) { - var index = -1, isFunc = typeof path == "function", result2 = isArrayLike_default(collection) ? Array(collection.length) : []; - baseEach_default(collection, function(value) { - result2[++index] = isFunc ? apply_default(path, value, args) : baseInvoke_default(value, path, args); - }); - return result2; -}); -var invokeMap_default = invokeMap; - -// node_modules/lodash-es/_baseIsArrayBuffer.js -var arrayBufferTag4 = "[object ArrayBuffer]"; -function baseIsArrayBuffer(value) { - return isObjectLike_default(value) && baseGetTag_default(value) == arrayBufferTag4; -} -var baseIsArrayBuffer_default = baseIsArrayBuffer; - -// node_modules/lodash-es/isArrayBuffer.js -var nodeIsArrayBuffer = nodeUtil_default && nodeUtil_default.isArrayBuffer; -var isArrayBuffer = nodeIsArrayBuffer ? baseUnary_default(nodeIsArrayBuffer) : baseIsArrayBuffer_default; -var isArrayBuffer_default = isArrayBuffer; - -// node_modules/lodash-es/isBoolean.js -var boolTag4 = "[object Boolean]"; -function isBoolean(value) { - return value === true || value === false || isObjectLike_default(value) && baseGetTag_default(value) == boolTag4; -} -var isBoolean_default = isBoolean; - -// node_modules/lodash-es/_baseIsDate.js -var dateTag4 = "[object Date]"; -function baseIsDate(value) { - return isObjectLike_default(value) && baseGetTag_default(value) == dateTag4; -} -var baseIsDate_default = baseIsDate; - -// node_modules/lodash-es/isDate.js -var nodeIsDate = nodeUtil_default && nodeUtil_default.isDate; -var isDate = nodeIsDate ? baseUnary_default(nodeIsDate) : baseIsDate_default; -var isDate_default = isDate; - -// node_modules/lodash-es/isElement.js -function isElement(value) { - return isObjectLike_default(value) && value.nodeType === 1 && !isPlainObject_default(value); -} -var isElement_default = isElement; - -// node_modules/lodash-es/isEqual.js -function isEqual(value, other) { - return baseIsEqual_default(value, other); -} -var isEqual_default = isEqual; - -// node_modules/lodash-es/isEqualWith.js -function isEqualWith(value, other, customizer) { - customizer = typeof customizer == "function" ? customizer : void 0; - var result2 = customizer ? customizer(value, other) : void 0; - return result2 === void 0 ? baseIsEqual_default(value, other, void 0, customizer) : !!result2; -} -var isEqualWith_default = isEqualWith; - -// node_modules/lodash-es/isFinite.js -var nativeIsFinite2 = root_default.isFinite; -function isFinite(value) { - return typeof value == "number" && nativeIsFinite2(value); -} -var isFinite_default = isFinite; - -// node_modules/lodash-es/isInteger.js -function isInteger(value) { - return typeof value == "number" && value == toInteger_default(value); -} -var isInteger_default = isInteger; - -// node_modules/lodash-es/isMatch.js -function isMatch(object, source) { - return object === source || baseIsMatch_default(object, source, getMatchData_default(source)); -} -var isMatch_default = isMatch; - -// node_modules/lodash-es/isMatchWith.js -function isMatchWith(object, source, customizer) { - customizer = typeof customizer == "function" ? customizer : void 0; - return baseIsMatch_default(object, source, getMatchData_default(source), customizer); -} -var isMatchWith_default = isMatchWith; - -// node_modules/lodash-es/isNumber.js -var numberTag4 = "[object Number]"; -function isNumber(value) { - return typeof value == "number" || isObjectLike_default(value) && baseGetTag_default(value) == numberTag4; -} -var isNumber_default = isNumber; - -// node_modules/lodash-es/isNaN.js -function isNaN(value) { - return isNumber_default(value) && value != +value; -} -var isNaN_default = isNaN; - -// node_modules/lodash-es/_isMaskable.js -var isMaskable = coreJsData_default ? isFunction_default : stubFalse_default; -var isMaskable_default = isMaskable; - -// node_modules/lodash-es/isNative.js -var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill."; -function isNative(value) { - if (isMaskable_default(value)) { - throw new Error(CORE_ERROR_TEXT); - } - return baseIsNative_default(value); -} -var isNative_default = isNative; - -// node_modules/lodash-es/isNil.js -function isNil(value) { - return value == null; -} -var isNil_default = isNil; - -// node_modules/lodash-es/isNull.js -function isNull(value) { - return value === null; -} -var isNull_default = isNull; - -// node_modules/lodash-es/_baseIsRegExp.js -var regexpTag4 = "[object RegExp]"; -function baseIsRegExp(value) { - return isObjectLike_default(value) && baseGetTag_default(value) == regexpTag4; -} -var baseIsRegExp_default = baseIsRegExp; - -// node_modules/lodash-es/isRegExp.js -var nodeIsRegExp = nodeUtil_default && nodeUtil_default.isRegExp; -var isRegExp = nodeIsRegExp ? baseUnary_default(nodeIsRegExp) : baseIsRegExp_default; -var isRegExp_default = isRegExp; - -// node_modules/lodash-es/isSafeInteger.js -var MAX_SAFE_INTEGER = 9007199254740991; -function isSafeInteger(value) { - return isInteger_default(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; -} -var isSafeInteger_default = isSafeInteger; - -// node_modules/lodash-es/isUndefined.js -function isUndefined(value) { - return value === void 0; -} -var isUndefined_default = isUndefined; - -// node_modules/lodash-es/isWeakMap.js -var weakMapTag2 = "[object WeakMap]"; -function isWeakMap(value) { - return isObjectLike_default(value) && getTag_default(value) == weakMapTag2; -} -var isWeakMap_default = isWeakMap; - -// node_modules/lodash-es/isWeakSet.js -var weakSetTag = "[object WeakSet]"; -function isWeakSet(value) { - return isObjectLike_default(value) && baseGetTag_default(value) == weakSetTag; -} -var isWeakSet_default = isWeakSet; - -// node_modules/lodash-es/iteratee.js -var CLONE_DEEP_FLAG5 = 1; -function iteratee(func) { - return baseIteratee_default(typeof func == "function" ? func : baseClone_default(func, CLONE_DEEP_FLAG5)); -} -var iteratee_default = iteratee; - -// node_modules/lodash-es/join.js -var arrayProto = Array.prototype; -var nativeJoin = arrayProto.join; -function join(array, separator) { - return array == null ? "" : nativeJoin.call(array, separator); -} -var join_default = join; - -// node_modules/lodash-es/kebabCase.js -var kebabCase = createCompounder_default(function(result2, word, index) { - return result2 + (index ? "-" : "") + word.toLowerCase(); -}); -var kebabCase_default = kebabCase; - -// node_modules/lodash-es/keyBy.js -var keyBy = createAggregator_default(function(result2, value, key) { - baseAssignValue_default(result2, key, value); -}); -var keyBy_default = keyBy; - -// node_modules/lodash-es/_strictLastIndexOf.js -function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; -} -var strictLastIndexOf_default = strictLastIndexOf; - -// node_modules/lodash-es/lastIndexOf.js -var nativeMax11 = Math.max; -var nativeMin8 = Math.min; -function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== void 0) { - index = toInteger_default(fromIndex); - index = index < 0 ? nativeMax11(length + index, 0) : nativeMin8(index, length - 1); - } - return value === value ? strictLastIndexOf_default(array, value, index) : baseFindIndex_default(array, baseIsNaN_default, index, true); -} -var lastIndexOf_default = lastIndexOf; - -// node_modules/lodash-es/lowerCase.js -var lowerCase = createCompounder_default(function(result2, word, index) { - return result2 + (index ? " " : "") + word.toLowerCase(); -}); -var lowerCase_default = lowerCase; - -// node_modules/lodash-es/lowerFirst.js -var lowerFirst = createCaseFirst_default("toLowerCase"); -var lowerFirst_default = lowerFirst; - -// node_modules/lodash-es/_baseLt.js -function baseLt(value, other) { - return value < other; -} -var baseLt_default = baseLt; - -// node_modules/lodash-es/lt.js -var lt = createRelationalOperation_default(baseLt_default); -var lt_default = lt; - -// node_modules/lodash-es/lte.js -var lte = createRelationalOperation_default(function(value, other) { - return value <= other; -}); -var lte_default = lte; - -// node_modules/lodash-es/mapKeys.js -function mapKeys(object, iteratee2) { - var result2 = {}; - iteratee2 = baseIteratee_default(iteratee2, 3); - baseForOwn_default(object, function(value, key, object2) { - baseAssignValue_default(result2, iteratee2(value, key, object2), value); - }); - return result2; -} -var mapKeys_default = mapKeys; - -// node_modules/lodash-es/mapValues.js -function mapValues(object, iteratee2) { - var result2 = {}; - iteratee2 = baseIteratee_default(iteratee2, 3); - baseForOwn_default(object, function(value, key, object2) { - baseAssignValue_default(result2, key, iteratee2(value, key, object2)); - }); - return result2; -} -var mapValues_default = mapValues; - -// node_modules/lodash-es/matches.js -var CLONE_DEEP_FLAG6 = 1; -function matches(source) { - return baseMatches_default(baseClone_default(source, CLONE_DEEP_FLAG6)); -} -var matches_default = matches; - -// node_modules/lodash-es/matchesProperty.js -var CLONE_DEEP_FLAG7 = 1; -function matchesProperty(path, srcValue) { - return baseMatchesProperty_default(path, baseClone_default(srcValue, CLONE_DEEP_FLAG7)); -} -var matchesProperty_default = matchesProperty; - -// node_modules/lodash-es/_baseExtremum.js -function baseExtremum(array, iteratee2, comparator) { - var index = -1, length = array.length; - while (++index < length) { - var value = array[index], current = iteratee2(value); - if (current != null && (computed === void 0 ? current === current && !isSymbol_default(current) : comparator(current, computed))) { - var computed = current, result2 = value; - } - } - return result2; -} -var baseExtremum_default = baseExtremum; - -// node_modules/lodash-es/max.js -function max(array) { - return array && array.length ? baseExtremum_default(array, identity_default, baseGt_default) : void 0; -} -var max_default = max; - -// node_modules/lodash-es/maxBy.js -function maxBy(array, iteratee2) { - return array && array.length ? baseExtremum_default(array, baseIteratee_default(iteratee2, 2), baseGt_default) : void 0; -} -var maxBy_default = maxBy; - -// node_modules/lodash-es/_baseSum.js -function baseSum(array, iteratee2) { - var result2, index = -1, length = array.length; - while (++index < length) { - var current = iteratee2(array[index]); - if (current !== void 0) { - result2 = result2 === void 0 ? current : result2 + current; - } - } - return result2; -} -var baseSum_default = baseSum; - -// node_modules/lodash-es/_baseMean.js -var NAN3 = 0 / 0; -function baseMean(array, iteratee2) { - var length = array == null ? 0 : array.length; - return length ? baseSum_default(array, iteratee2) / length : NAN3; -} -var baseMean_default = baseMean; - -// node_modules/lodash-es/mean.js -function mean(array) { - return baseMean_default(array, identity_default); -} -var mean_default = mean; - -// node_modules/lodash-es/meanBy.js -function meanBy(array, iteratee2) { - return baseMean_default(array, baseIteratee_default(iteratee2, 2)); -} -var meanBy_default = meanBy; - -// node_modules/lodash-es/method.js -var method = baseRest_default(function(path, args) { - return function(object) { - return baseInvoke_default(object, path, args); - }; -}); -var method_default = method; - -// node_modules/lodash-es/methodOf.js -var methodOf = baseRest_default(function(object, args) { - return function(path) { - return baseInvoke_default(object, path, args); - }; -}); -var methodOf_default = methodOf; - -// node_modules/lodash-es/min.js -function min(array) { - return array && array.length ? baseExtremum_default(array, identity_default, baseLt_default) : void 0; -} -var min_default = min; - -// node_modules/lodash-es/minBy.js -function minBy(array, iteratee2) { - return array && array.length ? baseExtremum_default(array, baseIteratee_default(iteratee2, 2), baseLt_default) : void 0; -} -var minBy_default = minBy; - -// node_modules/lodash-es/mixin.js -function mixin(object, source, options) { - var props = keys_default(source), methodNames = baseFunctions_default(source, props); - var chain2 = !(isObject_default(options) && "chain" in options) || !!options.chain, isFunc = isFunction_default(object); - arrayEach_default(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_default(this.__actions__); - actions.push({ "func": func, "args": arguments, "thisArg": object }); - result2.__chain__ = chainAll; - return result2; - } - return func.apply(object, arrayPush_default([this.value()], arguments)); - }; - } - }); - return object; -} -var mixin_default = mixin; - -// node_modules/lodash-es/multiply.js -var multiply = createMathOperation_default(function(multiplier, multiplicand) { - return multiplier * multiplicand; -}, 1); -var multiply_default = multiply; - -// node_modules/lodash-es/negate.js -var FUNC_ERROR_TEXT8 = "Expected a function"; -function negate(predicate) { - if (typeof predicate != "function") { - throw new TypeError(FUNC_ERROR_TEXT8); - } - 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); - }; -} -var negate_default = negate; - -// node_modules/lodash-es/_iteratorToArray.js -function iteratorToArray(iterator) { - var data, result2 = []; - while (!(data = iterator.next()).done) { - result2.push(data.value); - } - return result2; -} -var iteratorToArray_default = iteratorToArray; - -// node_modules/lodash-es/toArray.js -var mapTag6 = "[object Map]"; -var setTag6 = "[object Set]"; -var symIterator = Symbol_default ? Symbol_default.iterator : void 0; -function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike_default(value)) { - return isString_default(value) ? stringToArray_default(value) : copyArray_default(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray_default(value[symIterator]()); - } - var tag = getTag_default(value), func = tag == mapTag6 ? mapToArray_default : tag == setTag6 ? setToArray_default : values_default; - return func(value); -} -var toArray_default = toArray; - -// node_modules/lodash-es/next.js -function wrapperNext() { - if (this.__values__ === void 0) { - this.__values__ = toArray_default(this.value()); - } - var done = this.__index__ >= this.__values__.length, value = done ? void 0 : this.__values__[this.__index__++]; - return { "done": done, "value": value }; -} -var next_default = wrapperNext; - -// node_modules/lodash-es/_baseNth.js -function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex_default(n, length) ? array[n] : void 0; -} -var baseNth_default = baseNth; - -// node_modules/lodash-es/nth.js -function nth(array, n) { - return array && array.length ? baseNth_default(array, toInteger_default(n)) : void 0; -} -var nth_default = nth; - -// node_modules/lodash-es/nthArg.js -function nthArg(n) { - n = toInteger_default(n); - return baseRest_default(function(args) { - return baseNth_default(args, n); - }); -} -var nthArg_default = nthArg; - -// node_modules/lodash-es/_baseUnset.js -function baseUnset(object, path) { - path = castPath_default(path, object); - object = parent_default(object, path); - return object == null || delete object[toKey_default(last_default(path))]; -} -var baseUnset_default = baseUnset; - -// node_modules/lodash-es/_customOmitClone.js -function customOmitClone(value) { - return isPlainObject_default(value) ? void 0 : value; -} -var customOmitClone_default = customOmitClone; - -// node_modules/lodash-es/omit.js -var CLONE_DEEP_FLAG8 = 1; -var CLONE_FLAT_FLAG2 = 2; -var CLONE_SYMBOLS_FLAG6 = 4; -var omit = flatRest_default(function(object, paths) { - var result2 = {}; - if (object == null) { - return result2; - } - var isDeep = false; - paths = arrayMap_default(paths, function(path) { - path = castPath_default(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject_default(object, getAllKeysIn_default(object), result2); - if (isDeep) { - result2 = baseClone_default(result2, CLONE_DEEP_FLAG8 | CLONE_FLAT_FLAG2 | CLONE_SYMBOLS_FLAG6, customOmitClone_default); - } - var length = paths.length; - while (length--) { - baseUnset_default(result2, paths[length]); - } - return result2; -}); -var omit_default = omit; - -// node_modules/lodash-es/_baseSet.js -function baseSet(object, path, value, customizer) { - if (!isObject_default(object)) { - return object; - } - path = castPath_default(path, object); - var index = -1, length = path.length, lastIndex = length - 1, nested = object; - while (nested != null && ++index < length) { - var key = toKey_default(path[index]), newValue = value; - if (key === "__proto__" || key === "constructor" || key === "prototype") { - return object; - } - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : void 0; - if (newValue === void 0) { - newValue = isObject_default(objValue) ? objValue : isIndex_default(path[index + 1]) ? [] : {}; - } - } - assignValue_default(nested, key, newValue); - nested = nested[key]; - } - return object; -} -var baseSet_default = baseSet; - -// node_modules/lodash-es/_basePickBy.js -function basePickBy(object, paths, predicate) { - var index = -1, length = paths.length, result2 = {}; - while (++index < length) { - var path = paths[index], value = baseGet_default(object, path); - if (predicate(value, path)) { - baseSet_default(result2, castPath_default(path, object), value); - } - } - return result2; -} -var basePickBy_default = basePickBy; - -// node_modules/lodash-es/pickBy.js -function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap_default(getAllKeysIn_default(object), function(prop) { - return [prop]; - }); - predicate = baseIteratee_default(predicate); - return basePickBy_default(object, props, function(value, path) { - return predicate(value, path[0]); - }); -} -var pickBy_default = pickBy; - -// node_modules/lodash-es/omitBy.js -function omitBy(object, predicate) { - return pickBy_default(object, negate_default(baseIteratee_default(predicate))); -} -var omitBy_default = omitBy; - -// node_modules/lodash-es/once.js -function once(func) { - return before_default(2, func); -} -var once_default = once; - -// node_modules/lodash-es/_baseSortBy.js -function baseSortBy(array, comparer) { - var length = array.length; - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; -} -var baseSortBy_default = baseSortBy; - -// node_modules/lodash-es/_compareAscending.js -function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol_default(value); - var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol_default(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; -} -var compareAscending_default = compareAscending; - -// node_modules/lodash-es/_compareMultiple.js -function compareMultiple(object, other, orders) { - var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; - while (++index < length) { - var result2 = compareAscending_default(objCriteria[index], othCriteria[index]); - if (result2) { - if (index >= ordersLength) { - return result2; - } - var order2 = orders[index]; - return result2 * (order2 == "desc" ? -1 : 1); - } - } - return object.index - other.index; -} -var compareMultiple_default = compareMultiple; - -// node_modules/lodash-es/_baseOrderBy.js -function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap_default(iteratees, function(iteratee2) { - if (isArray_default(iteratee2)) { - return function(value) { - return baseGet_default(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); - }; - } - return iteratee2; - }); - } else { - iteratees = [identity_default]; - } - var index = -1; - iteratees = arrayMap_default(iteratees, baseUnary_default(baseIteratee_default)); - var result2 = baseMap_default(collection, function(value, key, collection2) { - var criteria = arrayMap_default(iteratees, function(iteratee2) { - return iteratee2(value); - }); - return { "criteria": criteria, "index": ++index, "value": value }; - }); - return baseSortBy_default(result2, function(object, other) { - return compareMultiple_default(object, other, orders); - }); -} -var baseOrderBy_default = baseOrderBy; - -// node_modules/lodash-es/orderBy.js -function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray_default(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? void 0 : orders; - if (!isArray_default(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy_default(collection, iteratees, orders); -} -var orderBy_default = orderBy; - -// node_modules/lodash-es/_createOver.js -function createOver(arrayFunc) { - return flatRest_default(function(iteratees) { - iteratees = arrayMap_default(iteratees, baseUnary_default(baseIteratee_default)); - return baseRest_default(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee2) { - return apply_default(iteratee2, thisArg, args); - }); - }); - }); -} -var createOver_default = createOver; - -// node_modules/lodash-es/over.js -var over = createOver_default(arrayMap_default); -var over_default = over; - -// node_modules/lodash-es/_castRest.js -var castRest = baseRest_default; -var castRest_default = castRest; - -// node_modules/lodash-es/overArgs.js -var nativeMin9 = Math.min; -var overArgs = castRest_default(function(func, transforms) { - transforms = transforms.length == 1 && isArray_default(transforms[0]) ? arrayMap_default(transforms[0], baseUnary_default(baseIteratee_default)) : arrayMap_default(baseFlatten_default(transforms, 1), baseUnary_default(baseIteratee_default)); - var funcsLength = transforms.length; - return baseRest_default(function(args) { - var index = -1, length = nativeMin9(args.length, funcsLength); - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply_default(func, this, args); - }); -}); -var overArgs_default = overArgs; - -// node_modules/lodash-es/overEvery.js -var overEvery = createOver_default(arrayEvery_default); -var overEvery_default = overEvery; - -// node_modules/lodash-es/overSome.js -var overSome = createOver_default(arraySome_default); -var overSome_default = overSome; - -// node_modules/lodash-es/_baseRepeat.js -var MAX_SAFE_INTEGER2 = 9007199254740991; -var nativeFloor = Math.floor; -function baseRepeat(string, n) { - var result2 = ""; - if (!string || n < 1 || n > MAX_SAFE_INTEGER2) { - return result2; - } - do { - if (n % 2) { - result2 += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - return result2; -} -var baseRepeat_default = baseRepeat; - -// node_modules/lodash-es/_asciiSize.js -var asciiSize = baseProperty_default("length"); -var asciiSize_default = asciiSize; - -// node_modules/lodash-es/_unicodeSize.js -var rsAstralRange4 = "\\ud800-\\udfff"; -var rsComboMarksRange5 = "\\u0300-\\u036f"; -var reComboHalfMarksRange5 = "\\ufe20-\\ufe2f"; -var rsComboSymbolsRange5 = "\\u20d0-\\u20ff"; -var rsComboRange5 = rsComboMarksRange5 + reComboHalfMarksRange5 + rsComboSymbolsRange5; -var rsVarRange4 = "\\ufe0e\\ufe0f"; -var rsAstral2 = "[" + rsAstralRange4 + "]"; -var rsCombo4 = "[" + rsComboRange5 + "]"; -var rsFitz3 = "\\ud83c[\\udffb-\\udfff]"; -var rsModifier3 = "(?:" + rsCombo4 + "|" + rsFitz3 + ")"; -var rsNonAstral3 = "[^" + rsAstralRange4 + "]"; -var rsRegional3 = "(?:\\ud83c[\\udde6-\\uddff]){2}"; -var rsSurrPair3 = "[\\ud800-\\udbff][\\udc00-\\udfff]"; -var rsZWJ4 = "\\u200d"; -var reOptMod3 = rsModifier3 + "?"; -var rsOptVar3 = "[" + rsVarRange4 + "]?"; -var rsOptJoin3 = "(?:" + rsZWJ4 + "(?:" + [rsNonAstral3, rsRegional3, rsSurrPair3].join("|") + ")" + rsOptVar3 + reOptMod3 + ")*"; -var rsSeq3 = rsOptVar3 + reOptMod3 + rsOptJoin3; -var rsSymbol2 = "(?:" + [rsNonAstral3 + rsCombo4 + "?", rsCombo4, rsRegional3, rsSurrPair3, rsAstral2].join("|") + ")"; -var reUnicode2 = RegExp(rsFitz3 + "(?=" + rsFitz3 + ")|" + rsSymbol2 + rsSeq3, "g"); -function unicodeSize(string) { - var result2 = reUnicode2.lastIndex = 0; - while (reUnicode2.test(string)) { - ++result2; - } - return result2; -} -var unicodeSize_default = unicodeSize; - -// node_modules/lodash-es/_stringSize.js -function stringSize(string) { - return hasUnicode_default(string) ? unicodeSize_default(string) : asciiSize_default(string); -} -var stringSize_default = stringSize; - -// node_modules/lodash-es/_createPadding.js -var nativeCeil2 = Math.ceil; -function createPadding(length, chars) { - chars = chars === void 0 ? " " : baseToString_default(chars); - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat_default(chars, length) : chars; - } - var result2 = baseRepeat_default(chars, nativeCeil2(length / stringSize_default(chars))); - return hasUnicode_default(chars) ? castSlice_default(stringToArray_default(result2), 0, length).join("") : result2.slice(0, length); -} -var createPadding_default = createPadding; - -// node_modules/lodash-es/pad.js -var nativeCeil3 = Math.ceil; -var nativeFloor2 = Math.floor; -function pad(string, length, chars) { - string = toString_default(string); - length = toInteger_default(length); - var strLength = length ? stringSize_default(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return createPadding_default(nativeFloor2(mid), chars) + string + createPadding_default(nativeCeil3(mid), chars); -} -var pad_default = pad; - -// node_modules/lodash-es/padEnd.js -function padEnd(string, length, chars) { - string = toString_default(string); - length = toInteger_default(length); - var strLength = length ? stringSize_default(string) : 0; - return length && strLength < length ? string + createPadding_default(length - strLength, chars) : string; -} -var padEnd_default = padEnd; - -// node_modules/lodash-es/padStart.js -function padStart(string, length, chars) { - string = toString_default(string); - length = toInteger_default(length); - var strLength = length ? stringSize_default(string) : 0; - return length && strLength < length ? createPadding_default(length - strLength, chars) + string : string; -} -var padStart_default = padStart; - -// node_modules/lodash-es/parseInt.js -var reTrimStart2 = /^\s+/; -var nativeParseInt = root_default.parseInt; -function parseInt2(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString_default(string).replace(reTrimStart2, ""), radix || 0); -} -var parseInt_default = parseInt2; - -// node_modules/lodash-es/partial.js -var WRAP_PARTIAL_FLAG7 = 32; -var partial = baseRest_default(function(func, partials) { - var holders = replaceHolders_default(partials, getHolder_default(partial)); - return createWrap_default(func, WRAP_PARTIAL_FLAG7, void 0, partials, holders); -}); -partial.placeholder = {}; -var partial_default = partial; - -// node_modules/lodash-es/partialRight.js -var WRAP_PARTIAL_RIGHT_FLAG4 = 64; -var partialRight = baseRest_default(function(func, partials) { - var holders = replaceHolders_default(partials, getHolder_default(partialRight)); - return createWrap_default(func, WRAP_PARTIAL_RIGHT_FLAG4, void 0, partials, holders); -}); -partialRight.placeholder = {}; -var partialRight_default = partialRight; - -// node_modules/lodash-es/partition.js -var partition = createAggregator_default(function(result2, value, key) { - result2[key ? 0 : 1].push(value); -}, function() { - return [[], []]; -}); -var partition_default = partition; - -// node_modules/lodash-es/_basePick.js -function basePick(object, paths) { - return basePickBy_default(object, paths, function(value, path) { - return hasIn_default(object, path); - }); -} -var basePick_default = basePick; - -// node_modules/lodash-es/pick.js -var pick = flatRest_default(function(object, paths) { - return object == null ? {} : basePick_default(object, paths); -}); -var pick_default = pick; - -// node_modules/lodash-es/plant.js -function wrapperPlant(value) { - var result2, parent2 = this; - while (parent2 instanceof baseLodash_default) { - var clone2 = wrapperClone_default(parent2); - clone2.__index__ = 0; - clone2.__values__ = void 0; - if (result2) { - previous.__wrapped__ = clone2; - } else { - result2 = clone2; - } - var previous = clone2; - parent2 = parent2.__wrapped__; - } - previous.__wrapped__ = value; - return result2; -} -var plant_default = wrapperPlant; - -// node_modules/lodash-es/propertyOf.js -function propertyOf(object) { - return function(path) { - return object == null ? void 0 : baseGet_default(object, path); - }; -} -var propertyOf_default = propertyOf; - -// node_modules/lodash-es/_baseIndexOfWith.js -function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, length = array.length; - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; -} -var baseIndexOfWith_default = baseIndexOfWith; - -// node_modules/lodash-es/_basePullAll.js -var arrayProto2 = Array.prototype; -var splice = arrayProto2.splice; -function basePullAll(array, values2, iteratee2, comparator) { - var indexOf2 = comparator ? baseIndexOfWith_default : baseIndexOf_default, index = -1, length = values2.length, seen = array; - if (array === values2) { - values2 = copyArray_default(values2); - } - if (iteratee2) { - seen = arrayMap_default(array, baseUnary_default(iteratee2)); - } - while (++index < length) { - var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value; - while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; -} -var basePullAll_default = basePullAll; - -// node_modules/lodash-es/pullAll.js -function pullAll(array, values2) { - return array && array.length && values2 && values2.length ? basePullAll_default(array, values2) : array; -} -var pullAll_default = pullAll; - -// node_modules/lodash-es/pull.js -var pull = baseRest_default(pullAll_default); -var pull_default = pull; - -// node_modules/lodash-es/pullAllBy.js -function pullAllBy(array, values2, iteratee2) { - return array && array.length && values2 && values2.length ? basePullAll_default(array, values2, baseIteratee_default(iteratee2, 2)) : array; -} -var pullAllBy_default = pullAllBy; - -// node_modules/lodash-es/pullAllWith.js -function pullAllWith(array, values2, comparator) { - return array && array.length && values2 && values2.length ? basePullAll_default(array, values2, void 0, comparator) : array; -} -var pullAllWith_default = pullAllWith; - -// node_modules/lodash-es/_basePullAt.js -var arrayProto3 = Array.prototype; -var splice2 = arrayProto3.splice; -function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, lastIndex = length - 1; - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex_default(index)) { - splice2.call(array, index, 1); - } else { - baseUnset_default(array, index); - } - } - } - return array; -} -var basePullAt_default = basePullAt; - -// node_modules/lodash-es/pullAt.js -var pullAt = flatRest_default(function(array, indexes) { - var length = array == null ? 0 : array.length, result2 = baseAt_default(array, indexes); - basePullAt_default(array, arrayMap_default(indexes, function(index) { - return isIndex_default(index, length) ? +index : index; - }).sort(compareAscending_default)); - return result2; -}); -var pullAt_default = pullAt; - -// node_modules/lodash-es/_baseRandom.js -var nativeFloor3 = Math.floor; -var nativeRandom = Math.random; -function baseRandom(lower, upper) { - return lower + nativeFloor3(nativeRandom() * (upper - lower + 1)); -} -var baseRandom_default = baseRandom; - -// node_modules/lodash-es/random.js -var freeParseFloat = parseFloat; -var nativeMin10 = Math.min; -var nativeRandom2 = Math.random; -function random(lower, upper, floating) { - if (floating && typeof floating != "boolean" && isIterateeCall_default(lower, upper, floating)) { - upper = floating = void 0; - } - if (floating === void 0) { - if (typeof upper == "boolean") { - floating = upper; - upper = void 0; - } else if (typeof lower == "boolean") { - floating = lower; - lower = void 0; - } - } - if (lower === void 0 && upper === void 0) { - lower = 0; - upper = 1; - } else { - lower = toFinite_default(lower); - if (upper === void 0) { - upper = lower; - lower = 0; - } else { - upper = toFinite_default(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom2(); - return nativeMin10(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); - } - return baseRandom_default(lower, upper); -} -var random_default = random; - -// node_modules/lodash-es/_baseRange.js -var nativeCeil4 = Math.ceil; -var nativeMax12 = Math.max; -function baseRange(start, end, step, fromRight) { - var index = -1, length = nativeMax12(nativeCeil4((end - start) / (step || 1)), 0), result2 = Array(length); - while (length--) { - result2[fromRight ? length : ++index] = start; - start += step; - } - return result2; -} -var baseRange_default = baseRange; - -// node_modules/lodash-es/_createRange.js -function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != "number" && isIterateeCall_default(start, end, step)) { - end = step = void 0; - } - start = toFinite_default(start); - if (end === void 0) { - end = start; - start = 0; - } else { - end = toFinite_default(end); - } - step = step === void 0 ? start < end ? 1 : -1 : toFinite_default(step); - return baseRange_default(start, end, step, fromRight); - }; -} -var createRange_default = createRange; - -// node_modules/lodash-es/range.js -var range = createRange_default(); -var range_default = range; - -// node_modules/lodash-es/rangeRight.js -var rangeRight = createRange_default(true); -var rangeRight_default = rangeRight; - -// node_modules/lodash-es/rearg.js -var WRAP_REARG_FLAG4 = 256; -var rearg = flatRest_default(function(func, indexes) { - return createWrap_default(func, WRAP_REARG_FLAG4, void 0, void 0, void 0, indexes); -}); -var rearg_default = rearg; - -// node_modules/lodash-es/_baseReduce.js -function baseReduce(collection, iteratee2, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection2) { - accumulator = initAccum ? (initAccum = false, value) : iteratee2(accumulator, value, index, collection2); - }); - return accumulator; -} -var baseReduce_default = baseReduce; - -// node_modules/lodash-es/reduce.js -function reduce(collection, iteratee2, accumulator) { - var func = isArray_default(collection) ? arrayReduce_default : baseReduce_default, initAccum = arguments.length < 3; - return func(collection, baseIteratee_default(iteratee2, 4), accumulator, initAccum, baseEach_default); -} -var reduce_default = reduce; - -// node_modules/lodash-es/_arrayReduceRight.js -function arrayReduceRight(array, iteratee2, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee2(accumulator, array[length], length, array); - } - return accumulator; -} -var arrayReduceRight_default = arrayReduceRight; - -// node_modules/lodash-es/reduceRight.js -function reduceRight(collection, iteratee2, accumulator) { - var func = isArray_default(collection) ? arrayReduceRight_default : baseReduce_default, initAccum = arguments.length < 3; - return func(collection, baseIteratee_default(iteratee2, 4), accumulator, initAccum, baseEachRight_default); -} -var reduceRight_default = reduceRight; - -// node_modules/lodash-es/reject.js -function reject(collection, predicate) { - var func = isArray_default(collection) ? arrayFilter_default : baseFilter_default; - return func(collection, negate_default(baseIteratee_default(predicate, 3))); -} -var reject_default = reject; - -// node_modules/lodash-es/remove.js -function remove(array, predicate) { - var result2 = []; - if (!(array && array.length)) { - return result2; - } - var index = -1, indexes = [], length = array.length; - predicate = baseIteratee_default(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result2.push(value); - indexes.push(index); - } - } - basePullAt_default(array, indexes); - return result2; -} -var remove_default = remove; - -// node_modules/lodash-es/repeat.js -function repeat(string, n, guard) { - if (guard ? isIterateeCall_default(string, n, guard) : n === void 0) { - n = 1; - } else { - n = toInteger_default(n); - } - return baseRepeat_default(toString_default(string), n); -} -var repeat_default = repeat; - -// node_modules/lodash-es/replace.js -function replace() { - var args = arguments, string = toString_default(args[0]); - return args.length < 3 ? string : string.replace(args[1], args[2]); -} -var replace_default = replace; - -// node_modules/lodash-es/rest.js -var FUNC_ERROR_TEXT9 = "Expected a function"; -function rest(func, start) { - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT9); - } - start = start === void 0 ? start : toInteger_default(start); - return baseRest_default(func, start); -} -var rest_default = rest; - -// node_modules/lodash-es/result.js -function result(object, path, defaultValue) { - path = castPath_default(path, object); - var index = -1, length = path.length; - if (!length) { - length = 1; - object = void 0; - } - while (++index < length) { - var value = object == null ? void 0 : object[toKey_default(path[index])]; - if (value === void 0) { - index = length; - value = defaultValue; - } - object = isFunction_default(value) ? value.call(object) : value; - } - return object; -} -var result_default = result; - -// node_modules/lodash-es/reverse.js -var arrayProto4 = Array.prototype; -var nativeReverse = arrayProto4.reverse; -function reverse(array) { - return array == null ? array : nativeReverse.call(array); -} -var reverse_default = reverse; - -// node_modules/lodash-es/round.js -var round = createRound_default("round"); -var round_default = round; - -// node_modules/lodash-es/_arraySample.js -function arraySample(array) { - var length = array.length; - return length ? array[baseRandom_default(0, length - 1)] : void 0; -} -var arraySample_default = arraySample; - -// node_modules/lodash-es/_baseSample.js -function baseSample(collection) { - return arraySample_default(values_default(collection)); -} -var baseSample_default = baseSample; - -// node_modules/lodash-es/sample.js -function sample(collection) { - var func = isArray_default(collection) ? arraySample_default : baseSample_default; - return func(collection); -} -var sample_default = sample; - -// node_modules/lodash-es/_shuffleSelf.js -function shuffleSelf(array, size2) { - var index = -1, length = array.length, lastIndex = length - 1; - size2 = size2 === void 0 ? length : size2; - while (++index < size2) { - var rand = baseRandom_default(index, lastIndex), value = array[rand]; - array[rand] = array[index]; - array[index] = value; - } - array.length = size2; - return array; -} -var shuffleSelf_default = shuffleSelf; - -// node_modules/lodash-es/_arraySampleSize.js -function arraySampleSize(array, n) { - return shuffleSelf_default(copyArray_default(array), baseClamp_default(n, 0, array.length)); -} -var arraySampleSize_default = arraySampleSize; - -// node_modules/lodash-es/_baseSampleSize.js -function baseSampleSize(collection, n) { - var array = values_default(collection); - return shuffleSelf_default(array, baseClamp_default(n, 0, array.length)); -} -var baseSampleSize_default = baseSampleSize; - -// node_modules/lodash-es/sampleSize.js -function sampleSize(collection, n, guard) { - if (guard ? isIterateeCall_default(collection, n, guard) : n === void 0) { - n = 1; - } else { - n = toInteger_default(n); - } - var func = isArray_default(collection) ? arraySampleSize_default : baseSampleSize_default; - return func(collection, n); -} -var sampleSize_default = sampleSize; - -// node_modules/lodash-es/set.js -function set(object, path, value) { - return object == null ? object : baseSet_default(object, path, value); -} -var set_default = set; - -// node_modules/lodash-es/setWith.js -function setWith(object, path, value, customizer) { - customizer = typeof customizer == "function" ? customizer : void 0; - return object == null ? object : baseSet_default(object, path, value, customizer); -} -var setWith_default = setWith; - -// node_modules/lodash-es/_arrayShuffle.js -function arrayShuffle(array) { - return shuffleSelf_default(copyArray_default(array)); -} -var arrayShuffle_default = arrayShuffle; - -// node_modules/lodash-es/_baseShuffle.js -function baseShuffle(collection) { - return shuffleSelf_default(values_default(collection)); -} -var baseShuffle_default = baseShuffle; - -// node_modules/lodash-es/shuffle.js -function shuffle(collection) { - var func = isArray_default(collection) ? arrayShuffle_default : baseShuffle_default; - return func(collection); -} -var shuffle_default = shuffle; - -// node_modules/lodash-es/size.js -var mapTag7 = "[object Map]"; -var setTag7 = "[object Set]"; -function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike_default(collection)) { - return isString_default(collection) ? stringSize_default(collection) : collection.length; - } - var tag = getTag_default(collection); - if (tag == mapTag7 || tag == setTag7) { - return collection.size; - } - return baseKeys_default(collection).length; -} -var size_default = size; - -// node_modules/lodash-es/slice.js -function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != "number" && isIterateeCall_default(array, start, end)) { - start = 0; - end = length; - } else { - start = start == null ? 0 : toInteger_default(start); - end = end === void 0 ? length : toInteger_default(end); - } - return baseSlice_default(array, start, end); -} -var slice_default = slice; - -// node_modules/lodash-es/snakeCase.js -var snakeCase = createCompounder_default(function(result2, word, index) { - return result2 + (index ? "_" : "") + word.toLowerCase(); -}); -var snakeCase_default = snakeCase; - -// node_modules/lodash-es/_baseSome.js -function baseSome(collection, predicate) { - var result2; - baseEach_default(collection, function(value, index, collection2) { - result2 = predicate(value, index, collection2); - return !result2; - }); - return !!result2; -} -var baseSome_default = baseSome; - -// node_modules/lodash-es/some.js -function some(collection, predicate, guard) { - var func = isArray_default(collection) ? arraySome_default : baseSome_default; - if (guard && isIterateeCall_default(collection, predicate, guard)) { - predicate = void 0; - } - return func(collection, baseIteratee_default(predicate, 3)); -} -var some_default = some; - -// node_modules/lodash-es/sortBy.js -var sortBy = baseRest_default(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall_default(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall_default(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy_default(collection, baseFlatten_default(iteratees, 1), []); -}); -var sortBy_default = sortBy; - -// node_modules/lodash-es/_baseSortedIndexBy.js -var MAX_ARRAY_LENGTH3 = 4294967295; -var MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH3 - 1; -var nativeFloor4 = Math.floor; -var nativeMin11 = Math.min; -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_default(value), valIsUndefined = value === void 0; - while (low < high) { - var mid = nativeFloor4((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== void 0, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol_default(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 nativeMin11(high, MAX_ARRAY_INDEX); -} -var baseSortedIndexBy_default = baseSortedIndexBy; - -// node_modules/lodash-es/_baseSortedIndex.js -var MAX_ARRAY_LENGTH4 = 4294967295; -var HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH4 >>> 1; -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_default(computed) && (retHighest ? computed <= value : computed < value)) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy_default(array, value, identity_default, retHighest); -} -var baseSortedIndex_default = baseSortedIndex; - -// node_modules/lodash-es/sortedIndex.js -function sortedIndex(array, value) { - return baseSortedIndex_default(array, value); -} -var sortedIndex_default = sortedIndex; - -// node_modules/lodash-es/sortedIndexBy.js -function sortedIndexBy(array, value, iteratee2) { - return baseSortedIndexBy_default(array, value, baseIteratee_default(iteratee2, 2)); -} -var sortedIndexBy_default = sortedIndexBy; - -// node_modules/lodash-es/sortedIndexOf.js -function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex_default(array, value); - if (index < length && eq_default(array[index], value)) { - return index; - } - } - return -1; -} -var sortedIndexOf_default = sortedIndexOf; - -// node_modules/lodash-es/sortedLastIndex.js -function sortedLastIndex(array, value) { - return baseSortedIndex_default(array, value, true); -} -var sortedLastIndex_default = sortedLastIndex; - -// node_modules/lodash-es/sortedLastIndexBy.js -function sortedLastIndexBy(array, value, iteratee2) { - return baseSortedIndexBy_default(array, value, baseIteratee_default(iteratee2, 2), true); -} -var sortedLastIndexBy_default = sortedLastIndexBy; - -// node_modules/lodash-es/sortedLastIndexOf.js -function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex_default(array, value, true) - 1; - if (eq_default(array[index], value)) { - return index; - } - } - return -1; -} -var sortedLastIndexOf_default = sortedLastIndexOf; - -// node_modules/lodash-es/_baseSortedUniq.js -function baseSortedUniq(array, iteratee2) { - var index = -1, length = array.length, resIndex = 0, result2 = []; - while (++index < length) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - if (!index || !eq_default(computed, seen)) { - var seen = computed; - result2[resIndex++] = value === 0 ? 0 : value; - } - } - return result2; -} -var baseSortedUniq_default = baseSortedUniq; - -// node_modules/lodash-es/sortedUniq.js -function sortedUniq(array) { - return array && array.length ? baseSortedUniq_default(array) : []; -} -var sortedUniq_default = sortedUniq; - -// node_modules/lodash-es/sortedUniqBy.js -function sortedUniqBy(array, iteratee2) { - return array && array.length ? baseSortedUniq_default(array, baseIteratee_default(iteratee2, 2)) : []; -} -var sortedUniqBy_default = sortedUniqBy; - -// node_modules/lodash-es/split.js -var MAX_ARRAY_LENGTH5 = 4294967295; -function split(string, separator, limit) { - if (limit && typeof limit != "number" && isIterateeCall_default(string, separator, limit)) { - separator = limit = void 0; - } - limit = limit === void 0 ? MAX_ARRAY_LENGTH5 : limit >>> 0; - if (!limit) { - return []; - } - string = toString_default(string); - if (string && (typeof separator == "string" || separator != null && !isRegExp_default(separator))) { - separator = baseToString_default(separator); - if (!separator && hasUnicode_default(string)) { - return castSlice_default(stringToArray_default(string), 0, limit); - } - } - return string.split(separator, limit); -} -var split_default = split; - -// node_modules/lodash-es/spread.js -var FUNC_ERROR_TEXT10 = "Expected a function"; -var nativeMax13 = Math.max; -function spread(func, start) { - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT10); - } - start = start == null ? 0 : nativeMax13(toInteger_default(start), 0); - return baseRest_default(function(args) { - var array = args[start], otherArgs = castSlice_default(args, 0, start); - if (array) { - arrayPush_default(otherArgs, array); - } - return apply_default(func, this, otherArgs); - }); -} -var spread_default = spread; - -// node_modules/lodash-es/startCase.js -var startCase = createCompounder_default(function(result2, word, index) { - return result2 + (index ? " " : "") + upperFirst_default(word); -}); -var startCase_default = startCase; - -// node_modules/lodash-es/startsWith.js -function startsWith(string, target, position2) { - string = toString_default(string); - position2 = position2 == null ? 0 : baseClamp_default(toInteger_default(position2), 0, string.length); - target = baseToString_default(target); - return string.slice(position2, position2 + target.length) == target; -} -var startsWith_default = startsWith; - -// node_modules/lodash-es/stubObject.js -function stubObject() { - return {}; -} -var stubObject_default = stubObject; - -// node_modules/lodash-es/stubString.js -function stubString() { - return ""; -} -var stubString_default = stubString; - -// node_modules/lodash-es/stubTrue.js -function stubTrue() { - return true; -} -var stubTrue_default = stubTrue; - -// node_modules/lodash-es/subtract.js -var subtract = createMathOperation_default(function(minuend, subtrahend) { - return minuend - subtrahend; -}, 0); -var subtract_default = subtract; - -// node_modules/lodash-es/sum.js -function sum(array) { - return array && array.length ? baseSum_default(array, identity_default) : 0; -} -var sum_default = sum; - -// node_modules/lodash-es/sumBy.js -function sumBy(array, iteratee2) { - return array && array.length ? baseSum_default(array, baseIteratee_default(iteratee2, 2)) : 0; -} -var sumBy_default = sumBy; - -// node_modules/lodash-es/tail.js -function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice_default(array, 1, length) : []; -} -var tail_default = tail; - -// node_modules/lodash-es/take.js -function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = guard || n === void 0 ? 1 : toInteger_default(n); - return baseSlice_default(array, 0, n < 0 ? 0 : n); -} -var take_default = take; - -// node_modules/lodash-es/takeRight.js -function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = guard || n === void 0 ? 1 : toInteger_default(n); - n = length - n; - return baseSlice_default(array, n < 0 ? 0 : n, length); -} -var takeRight_default = takeRight; - -// node_modules/lodash-es/takeRightWhile.js -function takeRightWhile(array, predicate) { - return array && array.length ? baseWhile_default(array, baseIteratee_default(predicate, 3), false, true) : []; -} -var takeRightWhile_default = takeRightWhile; - -// node_modules/lodash-es/takeWhile.js -function takeWhile(array, predicate) { - return array && array.length ? baseWhile_default(array, baseIteratee_default(predicate, 3)) : []; -} -var takeWhile_default = takeWhile; - -// node_modules/lodash-es/tap.js -function tap(value, interceptor) { - interceptor(value); - return value; -} -var tap_default = tap; - -// node_modules/lodash-es/_customDefaultsAssignIn.js -var objectProto14 = Object.prototype; -var hasOwnProperty12 = objectProto14.hasOwnProperty; -function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === void 0 || eq_default(objValue, objectProto14[key]) && !hasOwnProperty12.call(object, key)) { - return srcValue; - } - return objValue; -} -var customDefaultsAssignIn_default = customDefaultsAssignIn; - -// node_modules/lodash-es/_escapeStringChar.js -var stringEscapes = { - "\\": "\\", - "'": "'", - "\n": "n", - "\r": "r", - "\u2028": "u2028", - "\u2029": "u2029" -}; -function escapeStringChar(chr) { - return "\\" + stringEscapes[chr]; -} -var escapeStringChar_default = escapeStringChar; - -// node_modules/lodash-es/_reInterpolate.js -var reInterpolate = /<%=([\s\S]+?)%>/g; -var reInterpolate_default = reInterpolate; - -// node_modules/lodash-es/_reEscape.js -var reEscape = /<%-([\s\S]+?)%>/g; -var reEscape_default = reEscape; - -// node_modules/lodash-es/_reEvaluate.js -var reEvaluate = /<%([\s\S]+?)%>/g; -var reEvaluate_default = reEvaluate; - -// node_modules/lodash-es/templateSettings.js -var templateSettings = { - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "escape": reEscape_default, - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "evaluate": reEvaluate_default, - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - "interpolate": reInterpolate_default, - /** - * 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} - */ - "_": { "escape": escape_default } - } -}; -var templateSettings_default = templateSettings; - -// node_modules/lodash-es/template.js -var INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; -var reEmptyStringLeading = /\b__p \+= '';/g; -var reEmptyStringMiddle = /\b(__p \+=) '' \+/g; -var reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; -var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; -var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; -var reNoMatch = /($^)/; -var reUnescapedString = /['\n\r\u2028\u2029\\]/g; -var objectProto15 = Object.prototype; -var hasOwnProperty13 = objectProto15.hasOwnProperty; -function template(string, options, guard) { - var settings = templateSettings_default.imports._.templateSettings || templateSettings_default; - if (guard && isIterateeCall_default(string, options, guard)) { - options = void 0; - } - string = toString_default(string); - options = assignInWith_default({}, options, settings, customDefaultsAssignIn_default); - var imports = assignInWith_default({}, options.imports, settings.imports, customDefaultsAssignIn_default), importsKeys = keys_default(imports), importsValues = baseValues_default(imports, importsKeys); - var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; - var reDelimiters = RegExp( - (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate_default ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", - "g" - ); - var sourceURL = hasOwnProperty13.call(options, "sourceURL") ? "//# sourceURL=" + (options.sourceURL + "").replace(/\s/g, " ") + "\n" : ""; - string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { - interpolateValue || (interpolateValue = esTemplateValue); - source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar_default); - if (escapeValue) { - isEscaping = true; - source += "' +\n__e(" + escapeValue + ") +\n'"; - } - if (evaluateValue) { - isEvaluating = true; - source += "';\n" + evaluateValue + ";\n__p += '"; - } - if (interpolateValue) { - source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; - } - index = offset + match.length; - return match; - }); - source += "';\n"; - var variable = hasOwnProperty13.call(options, "variable") && options.variable; - if (!variable) { - source = "with (obj) {\n" + source + "\n}\n"; - } else if (reForbiddenIdentifierChars.test(variable)) { - throw new Error(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_default(function() { - return Function(importsKeys, sourceURL + "return " + source).apply(void 0, importsValues); - }); - result2.source = source; - if (isError_default(result2)) { - throw result2; - } - return result2; -} -var template_default = template; - -// node_modules/lodash-es/throttle.js -var FUNC_ERROR_TEXT11 = "Expected a function"; -function throttle(func, wait, options) { - var leading = true, trailing = true; - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT11); - } - if (isObject_default(options)) { - leading = "leading" in options ? !!options.leading : leading; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - return debounce_default(func, wait, { - "leading": leading, - "maxWait": wait, - "trailing": trailing - }); -} -var throttle_default = throttle; - -// node_modules/lodash-es/thru.js -function thru(value, interceptor) { - return interceptor(value); -} -var thru_default = thru; - -// node_modules/lodash-es/times.js -var MAX_SAFE_INTEGER3 = 9007199254740991; -var MAX_ARRAY_LENGTH6 = 4294967295; -var nativeMin12 = Math.min; -function times(n, iteratee2) { - n = toInteger_default(n); - if (n < 1 || n > MAX_SAFE_INTEGER3) { - return []; - } - var index = MAX_ARRAY_LENGTH6, length = nativeMin12(n, MAX_ARRAY_LENGTH6); - iteratee2 = castFunction_default(iteratee2); - n -= MAX_ARRAY_LENGTH6; - var result2 = baseTimes_default(length, iteratee2); - while (++index < n) { - iteratee2(index); - } - return result2; -} -var times_default = times; - -// node_modules/lodash-es/toIterator.js -function wrapperToIterator() { - return this; -} -var toIterator_default = wrapperToIterator; - -// node_modules/lodash-es/_baseWrapperValue.js -function baseWrapperValue(value, actions) { - var result2 = value; - if (result2 instanceof LazyWrapper_default) { - result2 = result2.value(); - } - return arrayReduce_default(actions, function(result3, action) { - return action.func.apply(action.thisArg, arrayPush_default([result3], action.args)); - }, result2); -} -var baseWrapperValue_default = baseWrapperValue; - -// node_modules/lodash-es/wrapperValue.js -function wrapperValue() { - return baseWrapperValue_default(this.__wrapped__, this.__actions__); -} -var wrapperValue_default = wrapperValue; - -// node_modules/lodash-es/toLower.js -function toLower(value) { - return toString_default(value).toLowerCase(); -} -var toLower_default = toLower; - -// node_modules/lodash-es/toPath.js -function toPath(value) { - if (isArray_default(value)) { - return arrayMap_default(value, toKey_default); - } - return isSymbol_default(value) ? [value] : copyArray_default(stringToPath_default(toString_default(value))); -} -var toPath_default = toPath; - -// node_modules/lodash-es/toSafeInteger.js -var MAX_SAFE_INTEGER4 = 9007199254740991; -function toSafeInteger(value) { - return value ? baseClamp_default(toInteger_default(value), -MAX_SAFE_INTEGER4, MAX_SAFE_INTEGER4) : value === 0 ? value : 0; -} -var toSafeInteger_default = toSafeInteger; - -// node_modules/lodash-es/toUpper.js -function toUpper(value) { - return toString_default(value).toUpperCase(); -} -var toUpper_default = toUpper; - -// node_modules/lodash-es/transform.js -function transform(object, iteratee2, accumulator) { - var isArr = isArray_default(object), isArrLike = isArr || isBuffer_default(object) || isTypedArray_default(object); - iteratee2 = baseIteratee_default(iteratee2, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor() : []; - } else if (isObject_default(object)) { - accumulator = isFunction_default(Ctor) ? baseCreate_default(getPrototype_default(object)) : {}; - } else { - accumulator = {}; - } - } - (isArrLike ? arrayEach_default : baseForOwn_default)(object, function(value, index, object2) { - return iteratee2(accumulator, value, index, object2); - }); - return accumulator; -} -var transform_default = transform; - -// node_modules/lodash-es/_charsEndIndex.js -function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - while (index-- && baseIndexOf_default(chrSymbols, strSymbols[index], 0) > -1) { - } - return index; -} -var charsEndIndex_default = charsEndIndex; - -// node_modules/lodash-es/_charsStartIndex.js -function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, length = strSymbols.length; - while (++index < length && baseIndexOf_default(chrSymbols, strSymbols[index], 0) > -1) { - } - return index; -} -var charsStartIndex_default = charsStartIndex; - -// node_modules/lodash-es/trim.js -function trim(string, chars, guard) { - string = toString_default(string); - if (string && (guard || chars === void 0)) { - return baseTrim_default(string); - } - if (!string || !(chars = baseToString_default(chars))) { - return string; - } - var strSymbols = stringToArray_default(string), chrSymbols = stringToArray_default(chars), start = charsStartIndex_default(strSymbols, chrSymbols), end = charsEndIndex_default(strSymbols, chrSymbols) + 1; - return castSlice_default(strSymbols, start, end).join(""); -} -var trim_default = trim; - -// node_modules/lodash-es/trimEnd.js -function trimEnd(string, chars, guard) { - string = toString_default(string); - if (string && (guard || chars === void 0)) { - return string.slice(0, trimmedEndIndex_default(string) + 1); - } - if (!string || !(chars = baseToString_default(chars))) { - return string; - } - var strSymbols = stringToArray_default(string), end = charsEndIndex_default(strSymbols, stringToArray_default(chars)) + 1; - return castSlice_default(strSymbols, 0, end).join(""); -} -var trimEnd_default = trimEnd; - -// node_modules/lodash-es/trimStart.js -var reTrimStart3 = /^\s+/; -function trimStart(string, chars, guard) { - string = toString_default(string); - if (string && (guard || chars === void 0)) { - return string.replace(reTrimStart3, ""); - } - if (!string || !(chars = baseToString_default(chars))) { - return string; - } - var strSymbols = stringToArray_default(string), start = charsStartIndex_default(strSymbols, stringToArray_default(chars)); - return castSlice_default(strSymbols, start).join(""); -} -var trimStart_default = trimStart; - -// node_modules/lodash-es/truncate.js -var DEFAULT_TRUNC_LENGTH = 30; -var DEFAULT_TRUNC_OMISSION = "..."; -var reFlags2 = /\w*$/; -function truncate(string, options) { - var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; - if (isObject_default(options)) { - var separator = "separator" in options ? options.separator : separator; - length = "length" in options ? toInteger_default(options.length) : length; - omission = "omission" in options ? baseToString_default(options.omission) : omission; - } - string = toString_default(string); - var strLength = string.length; - if (hasUnicode_default(string)) { - var strSymbols = stringToArray_default(string); - strLength = strSymbols.length; - } - if (length >= strLength) { - return string; - } - var end = length - stringSize_default(omission); - if (end < 1) { - return omission; - } - var result2 = strSymbols ? castSlice_default(strSymbols, 0, end).join("") : string.slice(0, end); - if (separator === void 0) { - return result2 + omission; - } - if (strSymbols) { - end += result2.length - end; - } - if (isRegExp_default(separator)) { - if (string.slice(end).search(separator)) { - var match, substring = result2; - if (!separator.global) { - separator = RegExp(separator.source, toString_default(reFlags2.exec(separator)) + "g"); - } - separator.lastIndex = 0; - while (match = separator.exec(substring)) { - var newEnd = match.index; - } - result2 = result2.slice(0, newEnd === void 0 ? end : newEnd); - } - } else if (string.indexOf(baseToString_default(separator), end) != end) { - var index = result2.lastIndexOf(separator); - if (index > -1) { - result2 = result2.slice(0, index); - } - } - return result2 + omission; -} -var truncate_default = truncate; - -// node_modules/lodash-es/unary.js -function unary(func) { - return ary_default(func, 1); -} -var unary_default = unary; - -// node_modules/lodash-es/_unescapeHtmlChar.js -var htmlUnescapes = { - "&": "&", - "<": "<", - ">": ">", - """: '"', - "'": "'" -}; -var unescapeHtmlChar = basePropertyOf_default(htmlUnescapes); -var unescapeHtmlChar_default = unescapeHtmlChar; - -// node_modules/lodash-es/unescape.js -var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g; -var reHasEscapedHtml = RegExp(reEscapedHtml.source); -function unescape(string) { - string = toString_default(string); - return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar_default) : string; -} -var unescape_default = unescape; - -// node_modules/lodash-es/_createSet.js -var INFINITY6 = 1 / 0; -var createSet = !(Set_default && 1 / setToArray_default(new Set_default([, -0]))[1] == INFINITY6) ? noop_default : function(values2) { - return new Set_default(values2); -}; -var createSet_default = createSet; - -// node_modules/lodash-es/_baseUniq.js -var LARGE_ARRAY_SIZE2 = 200; -function baseUniq(array, iteratee2, comparator) { - var index = -1, includes2 = arrayIncludes_default, length = array.length, isCommon = true, result2 = [], seen = result2; - if (comparator) { - isCommon = false; - includes2 = arrayIncludesWith_default; - } else if (length >= LARGE_ARRAY_SIZE2) { - var set2 = iteratee2 ? null : createSet_default(array); - if (set2) { - return setToArray_default(set2); - } - isCommon = false; - includes2 = cacheHas_default; - seen = new SetCache_default(); - } else { - seen = iteratee2 ? [] : result2; - } - outer: - while (++index < length) { - var value = array[index], computed = iteratee2 ? iteratee2(value) : value; - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee2) { - seen.push(computed); - } - result2.push(value); - } else if (!includes2(seen, computed, comparator)) { - if (seen !== result2) { - seen.push(computed); - } - result2.push(value); - } - } - return result2; -} -var baseUniq_default = baseUniq; - -// node_modules/lodash-es/union.js -var union = baseRest_default(function(arrays) { - return baseUniq_default(baseFlatten_default(arrays, 1, isArrayLikeObject_default, true)); -}); -var union_default = union; - -// node_modules/lodash-es/unionBy.js -var unionBy = baseRest_default(function(arrays) { - var iteratee2 = last_default(arrays); - if (isArrayLikeObject_default(iteratee2)) { - iteratee2 = void 0; - } - return baseUniq_default(baseFlatten_default(arrays, 1, isArrayLikeObject_default, true), baseIteratee_default(iteratee2, 2)); -}); -var unionBy_default = unionBy; - -// node_modules/lodash-es/unionWith.js -var unionWith = baseRest_default(function(arrays) { - var comparator = last_default(arrays); - comparator = typeof comparator == "function" ? comparator : void 0; - return baseUniq_default(baseFlatten_default(arrays, 1, isArrayLikeObject_default, true), void 0, comparator); -}); -var unionWith_default = unionWith; - -// node_modules/lodash-es/uniq.js -function uniq(array) { - return array && array.length ? baseUniq_default(array) : []; -} -var uniq_default = uniq; - -// node_modules/lodash-es/uniqBy.js -function uniqBy(array, iteratee2) { - return array && array.length ? baseUniq_default(array, baseIteratee_default(iteratee2, 2)) : []; -} -var uniqBy_default = uniqBy; - -// node_modules/lodash-es/uniqWith.js -function uniqWith(array, comparator) { - comparator = typeof comparator == "function" ? comparator : void 0; - return array && array.length ? baseUniq_default(array, void 0, comparator) : []; -} -var uniqWith_default = uniqWith; - -// node_modules/lodash-es/uniqueId.js -var idCounter = 0; -function uniqueId(prefix) { - var id = ++idCounter; - return toString_default(prefix) + id; -} -var uniqueId_default = uniqueId; - -// node_modules/lodash-es/unset.js -function unset(object, path) { - return object == null ? true : baseUnset_default(object, path); -} -var unset_default = unset; - -// node_modules/lodash-es/unzip.js -var nativeMax14 = Math.max; -function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter_default(array, function(group) { - if (isArrayLikeObject_default(group)) { - length = nativeMax14(group.length, length); - return true; - } - }); - return baseTimes_default(length, function(index) { - return arrayMap_default(array, baseProperty_default(index)); - }); -} -var unzip_default = unzip; - -// node_modules/lodash-es/unzipWith.js -function unzipWith(array, iteratee2) { - if (!(array && array.length)) { - return []; - } - var result2 = unzip_default(array); - if (iteratee2 == null) { - return result2; - } - return arrayMap_default(result2, function(group) { - return apply_default(iteratee2, void 0, group); - }); -} -var unzipWith_default = unzipWith; - -// node_modules/lodash-es/_baseUpdate.js -function baseUpdate(object, path, updater, customizer) { - return baseSet_default(object, path, updater(baseGet_default(object, path)), customizer); -} -var baseUpdate_default = baseUpdate; - -// node_modules/lodash-es/update.js -function update(object, path, updater) { - return object == null ? object : baseUpdate_default(object, path, castFunction_default(updater)); -} -var update_default = update; - -// node_modules/lodash-es/updateWith.js -function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == "function" ? customizer : void 0; - return object == null ? object : baseUpdate_default(object, path, castFunction_default(updater), customizer); -} -var updateWith_default = updateWith; - -// node_modules/lodash-es/upperCase.js -var upperCase = createCompounder_default(function(result2, word, index) { - return result2 + (index ? " " : "") + word.toUpperCase(); -}); -var upperCase_default = upperCase; - -// node_modules/lodash-es/valuesIn.js -function valuesIn(object) { - return object == null ? [] : baseValues_default(object, keysIn_default(object)); -} -var valuesIn_default = valuesIn; - -// node_modules/lodash-es/without.js -var without = baseRest_default(function(array, values2) { - return isArrayLikeObject_default(array) ? baseDifference_default(array, values2) : []; -}); -var without_default = without; - -// node_modules/lodash-es/wrap.js -function wrap(value, wrapper) { - return partial_default(castFunction_default(wrapper), value); -} -var wrap_default = wrap; - -// node_modules/lodash-es/wrapperAt.js -var wrapperAt = flatRest_default(function(paths) { - var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { - return baseAt_default(object, paths); - }; - if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper_default) || !isIndex_default(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - "func": thru_default, - "args": [interceptor], - "thisArg": void 0 - }); - return new LodashWrapper_default(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(void 0); - } - return array; - }); -}); -var wrapperAt_default = wrapperAt; - -// node_modules/lodash-es/wrapperChain.js -function wrapperChain() { - return chain_default(this); -} -var wrapperChain_default = wrapperChain; - -// node_modules/lodash-es/wrapperReverse.js -function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper_default) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper_default(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - "func": thru_default, - "args": [reverse_default], - "thisArg": void 0 - }); - return new LodashWrapper_default(wrapped, this.__chain__); - } - return this.thru(reverse_default); -} -var wrapperReverse_default = wrapperReverse; - -// node_modules/lodash-es/_baseXor.js -function baseXor(arrays, iteratee2, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq_default(arrays[0]) : []; - } - var index = -1, result2 = Array(length); - while (++index < length) { - var array = arrays[index], othIndex = -1; - while (++othIndex < length) { - if (othIndex != index) { - result2[index] = baseDifference_default(result2[index] || array, arrays[othIndex], iteratee2, comparator); - } - } - } - return baseUniq_default(baseFlatten_default(result2, 1), iteratee2, comparator); -} -var baseXor_default = baseXor; - -// node_modules/lodash-es/xor.js -var xor = baseRest_default(function(arrays) { - return baseXor_default(arrayFilter_default(arrays, isArrayLikeObject_default)); -}); -var xor_default = xor; - -// node_modules/lodash-es/xorBy.js -var xorBy = baseRest_default(function(arrays) { - var iteratee2 = last_default(arrays); - if (isArrayLikeObject_default(iteratee2)) { - iteratee2 = void 0; - } - return baseXor_default(arrayFilter_default(arrays, isArrayLikeObject_default), baseIteratee_default(iteratee2, 2)); -}); -var xorBy_default = xorBy; - -// node_modules/lodash-es/xorWith.js -var xorWith = baseRest_default(function(arrays) { - var comparator = last_default(arrays); - comparator = typeof comparator == "function" ? comparator : void 0; - return baseXor_default(arrayFilter_default(arrays, isArrayLikeObject_default), void 0, comparator); -}); -var xorWith_default = xorWith; - -// node_modules/lodash-es/zip.js -var zip = baseRest_default(unzip_default); -var zip_default = zip; - -// node_modules/lodash-es/_baseZipObject.js -function baseZipObject(props, values2, assignFunc) { - var index = -1, length = props.length, valsLength = values2.length, result2 = {}; - while (++index < length) { - var value = index < valsLength ? values2[index] : void 0; - assignFunc(result2, props[index], value); - } - return result2; -} -var baseZipObject_default = baseZipObject; - -// node_modules/lodash-es/zipObject.js -function zipObject(props, values2) { - return baseZipObject_default(props || [], values2 || [], assignValue_default); -} -var zipObject_default = zipObject; - -// node_modules/lodash-es/zipObjectDeep.js -function zipObjectDeep(props, values2) { - return baseZipObject_default(props || [], values2 || [], baseSet_default); -} -var zipObjectDeep_default = zipObjectDeep; - -// node_modules/lodash-es/zipWith.js -var zipWith = baseRest_default(function(arrays) { - var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : void 0; - iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : void 0; - return unzipWith_default(arrays, iteratee2); -}); -var zipWith_default = zipWith; - -// node_modules/lodash-es/array.default.js -var array_default_default = { - chunk: chunk_default, - compact: compact_default, - concat: concat_default, - difference: difference_default, - differenceBy: differenceBy_default, - differenceWith: differenceWith_default, - drop: drop_default, - dropRight: dropRight_default, - dropRightWhile: dropRightWhile_default, - dropWhile: dropWhile_default, - fill: fill_default, - findIndex: findIndex_default, - findLastIndex: findLastIndex_default, - first: head_default, - flatten: flatten_default, - flattenDeep: flattenDeep_default, - flattenDepth: flattenDepth_default, - fromPairs: fromPairs_default, - head: head_default, - indexOf: indexOf_default, - initial: initial_default, - intersection: intersection_default, - intersectionBy: intersectionBy_default, - intersectionWith: intersectionWith_default, - join: join_default, - last: last_default, - lastIndexOf: lastIndexOf_default, - nth: nth_default, - pull: pull_default, - pullAll: pullAll_default, - pullAllBy: pullAllBy_default, - pullAllWith: pullAllWith_default, - pullAt: pullAt_default, - remove: remove_default, - reverse: reverse_default, - slice: slice_default, - sortedIndex: sortedIndex_default, - sortedIndexBy: sortedIndexBy_default, - sortedIndexOf: sortedIndexOf_default, - sortedLastIndex: sortedLastIndex_default, - sortedLastIndexBy: sortedLastIndexBy_default, - sortedLastIndexOf: sortedLastIndexOf_default, - sortedUniq: sortedUniq_default, - sortedUniqBy: sortedUniqBy_default, - tail: tail_default, - take: take_default, - takeRight: takeRight_default, - takeRightWhile: takeRightWhile_default, - takeWhile: takeWhile_default, - union: union_default, - unionBy: unionBy_default, - unionWith: unionWith_default, - uniq: uniq_default, - uniqBy: uniqBy_default, - uniqWith: uniqWith_default, - unzip: unzip_default, - unzipWith: unzipWith_default, - without: without_default, - xor: xor_default, - xorBy: xorBy_default, - xorWith: xorWith_default, - zip: zip_default, - zipObject: zipObject_default, - zipObjectDeep: zipObjectDeep_default, - zipWith: zipWith_default -}; - -// node_modules/lodash-es/collection.default.js -var collection_default_default = { - countBy: countBy_default, - each: forEach_default, - eachRight: forEachRight_default, - every: every_default, - filter: filter_default, - find: find_default, - findLast: findLast_default, - flatMap: flatMap_default, - flatMapDeep: flatMapDeep_default, - flatMapDepth: flatMapDepth_default, - forEach: forEach_default, - forEachRight: forEachRight_default, - groupBy: groupBy_default, - includes: includes_default, - invokeMap: invokeMap_default, - keyBy: keyBy_default, - map: map_default, - orderBy: orderBy_default, - partition: partition_default, - reduce: reduce_default, - reduceRight: reduceRight_default, - reject: reject_default, - sample: sample_default, - sampleSize: sampleSize_default, - shuffle: shuffle_default, - size: size_default, - some: some_default, - sortBy: sortBy_default -}; - -// node_modules/lodash-es/date.default.js -var date_default_default = { - now: now_default -}; - -// node_modules/lodash-es/function.default.js -var function_default_default = { - after: after_default, - ary: ary_default, - before: before_default, - bind: bind_default, - bindKey: bindKey_default, - curry: curry_default, - curryRight: curryRight_default, - debounce: debounce_default, - defer: defer_default, - delay: delay_default, - flip: flip_default, - memoize: memoize_default, - negate: negate_default, - once: once_default, - overArgs: overArgs_default, - partial: partial_default, - partialRight: partialRight_default, - rearg: rearg_default, - rest: rest_default, - spread: spread_default, - throttle: throttle_default, - unary: unary_default, - wrap: wrap_default -}; - -// node_modules/lodash-es/lang.default.js -var lang_default_default = { - castArray: castArray_default, - clone: clone_default, - cloneDeep: cloneDeep_default, - cloneDeepWith: cloneDeepWith_default, - cloneWith: cloneWith_default, - conformsTo: conformsTo_default, - eq: eq_default, - gt: gt_default, - gte: gte_default, - isArguments: isArguments_default, - isArray: isArray_default, - isArrayBuffer: isArrayBuffer_default, - isArrayLike: isArrayLike_default, - isArrayLikeObject: isArrayLikeObject_default, - isBoolean: isBoolean_default, - isBuffer: isBuffer_default, - isDate: isDate_default, - isElement: isElement_default, - isEmpty: isEmpty_default, - isEqual: isEqual_default, - isEqualWith: isEqualWith_default, - isError: isError_default, - isFinite: isFinite_default, - isFunction: isFunction_default, - isInteger: isInteger_default, - isLength: isLength_default, - isMap: isMap_default, - isMatch: isMatch_default, - isMatchWith: isMatchWith_default, - isNaN: isNaN_default, - isNative: isNative_default, - isNil: isNil_default, - isNull: isNull_default, - isNumber: isNumber_default, - isObject: isObject_default, - isObjectLike: isObjectLike_default, - isPlainObject: isPlainObject_default, - isRegExp: isRegExp_default, - isSafeInteger: isSafeInteger_default, - isSet: isSet_default, - isString: isString_default, - isSymbol: isSymbol_default, - isTypedArray: isTypedArray_default, - isUndefined: isUndefined_default, - isWeakMap: isWeakMap_default, - isWeakSet: isWeakSet_default, - lt: lt_default, - lte: lte_default, - toArray: toArray_default, - toFinite: toFinite_default, - toInteger: toInteger_default, - toLength: toLength_default, - toNumber: toNumber_default, - toPlainObject: toPlainObject_default, - toSafeInteger: toSafeInteger_default, - toString: toString_default -}; - -// node_modules/lodash-es/math.default.js -var math_default_default = { - add: add_default, - ceil: ceil_default, - divide: divide_default, - floor: floor_default, - max: max_default, - maxBy: maxBy_default, - mean: mean_default, - meanBy: meanBy_default, - min: min_default, - minBy: minBy_default, - multiply: multiply_default, - round: round_default, - subtract: subtract_default, - sum: sum_default, - sumBy: sumBy_default -}; - -// node_modules/lodash-es/number.default.js -var number_default_default = { - clamp: clamp_default, - inRange: inRange_default, - random: random_default -}; - -// node_modules/lodash-es/object.default.js -var object_default_default = { - assign: assign_default, - assignIn: assignIn_default, - assignInWith: assignInWith_default, - assignWith: assignWith_default, - at: at_default, - create: create_default, - defaults: defaults_default, - defaultsDeep: defaultsDeep_default, - entries: toPairs_default, - entriesIn: toPairsIn_default, - extend: assignIn_default, - extendWith: assignInWith_default, - findKey: findKey_default, - findLastKey: findLastKey_default, - forIn: forIn_default, - forInRight: forInRight_default, - forOwn: forOwn_default, - forOwnRight: forOwnRight_default, - functions: functions_default, - functionsIn: functionsIn_default, - get: get_default, - has: has_default, - hasIn: hasIn_default, - invert: invert_default, - invertBy: invertBy_default, - invoke: invoke_default, - keys: keys_default, - keysIn: keysIn_default, - mapKeys: mapKeys_default, - mapValues: mapValues_default, - merge: merge_default, - mergeWith: mergeWith_default, - omit: omit_default, - omitBy: omitBy_default, - pick: pick_default, - pickBy: pickBy_default, - result: result_default, - set: set_default, - setWith: setWith_default, - toPairs: toPairs_default, - toPairsIn: toPairsIn_default, - transform: transform_default, - unset: unset_default, - update: update_default, - updateWith: updateWith_default, - values: values_default, - valuesIn: valuesIn_default -}; - -// node_modules/lodash-es/seq.default.js -var seq_default_default = { - at: wrapperAt_default, - chain: chain_default, - commit: commit_default, - lodash: wrapperLodash_default, - next: next_default, - plant: plant_default, - reverse: wrapperReverse_default, - tap: tap_default, - thru: thru_default, - toIterator: toIterator_default, - toJSON: wrapperValue_default, - value: wrapperValue_default, - valueOf: wrapperValue_default, - wrapperChain: wrapperChain_default -}; - -// node_modules/lodash-es/string.default.js -var string_default_default = { - camelCase: camelCase_default, - capitalize: capitalize_default, - deburr: deburr_default, - endsWith: endsWith_default, - escape: escape_default, - escapeRegExp: escapeRegExp_default, - kebabCase: kebabCase_default, - lowerCase: lowerCase_default, - lowerFirst: lowerFirst_default, - pad: pad_default, - padEnd: padEnd_default, - padStart: padStart_default, - parseInt: parseInt_default, - repeat: repeat_default, - replace: replace_default, - snakeCase: snakeCase_default, - split: split_default, - startCase: startCase_default, - startsWith: startsWith_default, - template: template_default, - templateSettings: templateSettings_default, - toLower: toLower_default, - toUpper: toUpper_default, - trim: trim_default, - trimEnd: trimEnd_default, - trimStart: trimStart_default, - truncate: truncate_default, - unescape: unescape_default, - upperCase: upperCase_default, - upperFirst: upperFirst_default, - words: words_default -}; - -// node_modules/lodash-es/util.default.js -var util_default_default = { - attempt: attempt_default, - bindAll: bindAll_default, - cond: cond_default, - conforms: conforms_default, - constant: constant_default, - defaultTo: defaultTo_default, - flow: flow_default, - flowRight: flowRight_default, - identity: identity_default, - iteratee: iteratee_default, - matches: matches_default, - matchesProperty: matchesProperty_default, - method: method_default, - methodOf: methodOf_default, - mixin: mixin_default, - noop: noop_default, - nthArg: nthArg_default, - over: over_default, - overEvery: overEvery_default, - overSome: overSome_default, - property: property_default, - propertyOf: propertyOf_default, - range: range_default, - rangeRight: rangeRight_default, - stubArray: stubArray_default, - stubFalse: stubFalse_default, - stubObject: stubObject_default, - stubString: stubString_default, - stubTrue: stubTrue_default, - times: times_default, - toPath: toPath_default, - uniqueId: uniqueId_default -}; - -// node_modules/lodash-es/_lazyClone.js -function lazyClone() { - var result2 = new LazyWrapper_default(this.__wrapped__); - result2.__actions__ = copyArray_default(this.__actions__); - result2.__dir__ = this.__dir__; - result2.__filtered__ = this.__filtered__; - result2.__iteratees__ = copyArray_default(this.__iteratees__); - result2.__takeCount__ = this.__takeCount__; - result2.__views__ = copyArray_default(this.__views__); - return result2; -} -var lazyClone_default = lazyClone; - -// node_modules/lodash-es/_lazyReverse.js -function lazyReverse() { - if (this.__filtered__) { - var result2 = new LazyWrapper_default(this); - result2.__dir__ = -1; - result2.__filtered__ = true; - } else { - result2 = this.clone(); - result2.__dir__ *= -1; - } - return result2; -} -var lazyReverse_default = lazyReverse; - -// node_modules/lodash-es/_getView.js -var nativeMax15 = Math.max; -var nativeMin13 = Math.min; -function getView(start, end, transforms) { - var index = -1, length = transforms.length; - while (++index < length) { - var data = transforms[index], size2 = data.size; - switch (data.type) { - case "drop": - start += size2; - break; - case "dropRight": - end -= size2; - break; - case "take": - end = nativeMin13(end, start + size2); - break; - case "takeRight": - start = nativeMax15(start, end - size2); - break; - } - } - return { "start": start, "end": end }; -} -var getView_default = getView; - -// node_modules/lodash-es/_lazyValue.js -var LAZY_FILTER_FLAG = 1; -var LAZY_MAP_FLAG = 2; -var nativeMin14 = Math.min; -function lazyValue() { - var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray_default(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView_default(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin14(length, this.__takeCount__); - if (!isArr || !isRight && arrLength == length && takeCount == length) { - return baseWrapperValue_default(array, this.__actions__); - } - var result2 = []; - outer: - while (length-- && resIndex < takeCount) { - index += dir; - var iterIndex = -1, value = array[index]; - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value); - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result2[resIndex++] = value; - } - return result2; -} -var lazyValue_default = lazyValue; - -// node_modules/lodash-es/lodash.default.js -var VERSION = "4.17.21"; -var WRAP_BIND_KEY_FLAG7 = 2; -var LAZY_FILTER_FLAG2 = 1; -var LAZY_WHILE_FLAG = 3; -var MAX_ARRAY_LENGTH7 = 4294967295; -var arrayProto5 = Array.prototype; -var objectProto16 = Object.prototype; -var hasOwnProperty14 = objectProto16.hasOwnProperty; -var symIterator2 = Symbol_default ? Symbol_default.iterator : void 0; -var nativeMax16 = Math.max; -var nativeMin15 = Math.min; -var mixin2 = /* @__PURE__ */ function(func) { - return function(object, source, options) { - if (options == null) { - var isObj = isObject_default(source), props = isObj && keys_default(source), methodNames = props && props.length && baseFunctions_default(source, props); - if (!(methodNames ? methodNames.length : isObj)) { - options = source; - source = object; - object = this; - } - } - return func(object, source, options); - }; -}(mixin_default); -wrapperLodash_default.after = function_default_default.after; -wrapperLodash_default.ary = function_default_default.ary; -wrapperLodash_default.assign = object_default_default.assign; -wrapperLodash_default.assignIn = object_default_default.assignIn; -wrapperLodash_default.assignInWith = object_default_default.assignInWith; -wrapperLodash_default.assignWith = object_default_default.assignWith; -wrapperLodash_default.at = object_default_default.at; -wrapperLodash_default.before = function_default_default.before; -wrapperLodash_default.bind = function_default_default.bind; -wrapperLodash_default.bindAll = util_default_default.bindAll; -wrapperLodash_default.bindKey = function_default_default.bindKey; -wrapperLodash_default.castArray = lang_default_default.castArray; -wrapperLodash_default.chain = seq_default_default.chain; -wrapperLodash_default.chunk = array_default_default.chunk; -wrapperLodash_default.compact = array_default_default.compact; -wrapperLodash_default.concat = array_default_default.concat; -wrapperLodash_default.cond = util_default_default.cond; -wrapperLodash_default.conforms = util_default_default.conforms; -wrapperLodash_default.constant = util_default_default.constant; -wrapperLodash_default.countBy = collection_default_default.countBy; -wrapperLodash_default.create = object_default_default.create; -wrapperLodash_default.curry = function_default_default.curry; -wrapperLodash_default.curryRight = function_default_default.curryRight; -wrapperLodash_default.debounce = function_default_default.debounce; -wrapperLodash_default.defaults = object_default_default.defaults; -wrapperLodash_default.defaultsDeep = object_default_default.defaultsDeep; -wrapperLodash_default.defer = function_default_default.defer; -wrapperLodash_default.delay = function_default_default.delay; -wrapperLodash_default.difference = array_default_default.difference; -wrapperLodash_default.differenceBy = array_default_default.differenceBy; -wrapperLodash_default.differenceWith = array_default_default.differenceWith; -wrapperLodash_default.drop = array_default_default.drop; -wrapperLodash_default.dropRight = array_default_default.dropRight; -wrapperLodash_default.dropRightWhile = array_default_default.dropRightWhile; -wrapperLodash_default.dropWhile = array_default_default.dropWhile; -wrapperLodash_default.fill = array_default_default.fill; -wrapperLodash_default.filter = collection_default_default.filter; -wrapperLodash_default.flatMap = collection_default_default.flatMap; -wrapperLodash_default.flatMapDeep = collection_default_default.flatMapDeep; -wrapperLodash_default.flatMapDepth = collection_default_default.flatMapDepth; -wrapperLodash_default.flatten = array_default_default.flatten; -wrapperLodash_default.flattenDeep = array_default_default.flattenDeep; -wrapperLodash_default.flattenDepth = array_default_default.flattenDepth; -wrapperLodash_default.flip = function_default_default.flip; -wrapperLodash_default.flow = util_default_default.flow; -wrapperLodash_default.flowRight = util_default_default.flowRight; -wrapperLodash_default.fromPairs = array_default_default.fromPairs; -wrapperLodash_default.functions = object_default_default.functions; -wrapperLodash_default.functionsIn = object_default_default.functionsIn; -wrapperLodash_default.groupBy = collection_default_default.groupBy; -wrapperLodash_default.initial = array_default_default.initial; -wrapperLodash_default.intersection = array_default_default.intersection; -wrapperLodash_default.intersectionBy = array_default_default.intersectionBy; -wrapperLodash_default.intersectionWith = array_default_default.intersectionWith; -wrapperLodash_default.invert = object_default_default.invert; -wrapperLodash_default.invertBy = object_default_default.invertBy; -wrapperLodash_default.invokeMap = collection_default_default.invokeMap; -wrapperLodash_default.iteratee = util_default_default.iteratee; -wrapperLodash_default.keyBy = collection_default_default.keyBy; -wrapperLodash_default.keys = keys_default; -wrapperLodash_default.keysIn = object_default_default.keysIn; -wrapperLodash_default.map = collection_default_default.map; -wrapperLodash_default.mapKeys = object_default_default.mapKeys; -wrapperLodash_default.mapValues = object_default_default.mapValues; -wrapperLodash_default.matches = util_default_default.matches; -wrapperLodash_default.matchesProperty = util_default_default.matchesProperty; -wrapperLodash_default.memoize = function_default_default.memoize; -wrapperLodash_default.merge = object_default_default.merge; -wrapperLodash_default.mergeWith = object_default_default.mergeWith; -wrapperLodash_default.method = util_default_default.method; -wrapperLodash_default.methodOf = util_default_default.methodOf; -wrapperLodash_default.mixin = mixin2; -wrapperLodash_default.negate = negate_default; -wrapperLodash_default.nthArg = util_default_default.nthArg; -wrapperLodash_default.omit = object_default_default.omit; -wrapperLodash_default.omitBy = object_default_default.omitBy; -wrapperLodash_default.once = function_default_default.once; -wrapperLodash_default.orderBy = collection_default_default.orderBy; -wrapperLodash_default.over = util_default_default.over; -wrapperLodash_default.overArgs = function_default_default.overArgs; -wrapperLodash_default.overEvery = util_default_default.overEvery; -wrapperLodash_default.overSome = util_default_default.overSome; -wrapperLodash_default.partial = function_default_default.partial; -wrapperLodash_default.partialRight = function_default_default.partialRight; -wrapperLodash_default.partition = collection_default_default.partition; -wrapperLodash_default.pick = object_default_default.pick; -wrapperLodash_default.pickBy = object_default_default.pickBy; -wrapperLodash_default.property = util_default_default.property; -wrapperLodash_default.propertyOf = util_default_default.propertyOf; -wrapperLodash_default.pull = array_default_default.pull; -wrapperLodash_default.pullAll = array_default_default.pullAll; -wrapperLodash_default.pullAllBy = array_default_default.pullAllBy; -wrapperLodash_default.pullAllWith = array_default_default.pullAllWith; -wrapperLodash_default.pullAt = array_default_default.pullAt; -wrapperLodash_default.range = util_default_default.range; -wrapperLodash_default.rangeRight = util_default_default.rangeRight; -wrapperLodash_default.rearg = function_default_default.rearg; -wrapperLodash_default.reject = collection_default_default.reject; -wrapperLodash_default.remove = array_default_default.remove; -wrapperLodash_default.rest = function_default_default.rest; -wrapperLodash_default.reverse = array_default_default.reverse; -wrapperLodash_default.sampleSize = collection_default_default.sampleSize; -wrapperLodash_default.set = object_default_default.set; -wrapperLodash_default.setWith = object_default_default.setWith; -wrapperLodash_default.shuffle = collection_default_default.shuffle; -wrapperLodash_default.slice = array_default_default.slice; -wrapperLodash_default.sortBy = collection_default_default.sortBy; -wrapperLodash_default.sortedUniq = array_default_default.sortedUniq; -wrapperLodash_default.sortedUniqBy = array_default_default.sortedUniqBy; -wrapperLodash_default.split = string_default_default.split; -wrapperLodash_default.spread = function_default_default.spread; -wrapperLodash_default.tail = array_default_default.tail; -wrapperLodash_default.take = array_default_default.take; -wrapperLodash_default.takeRight = array_default_default.takeRight; -wrapperLodash_default.takeRightWhile = array_default_default.takeRightWhile; -wrapperLodash_default.takeWhile = array_default_default.takeWhile; -wrapperLodash_default.tap = seq_default_default.tap; -wrapperLodash_default.throttle = function_default_default.throttle; -wrapperLodash_default.thru = thru_default; -wrapperLodash_default.toArray = lang_default_default.toArray; -wrapperLodash_default.toPairs = object_default_default.toPairs; -wrapperLodash_default.toPairsIn = object_default_default.toPairsIn; -wrapperLodash_default.toPath = util_default_default.toPath; -wrapperLodash_default.toPlainObject = lang_default_default.toPlainObject; -wrapperLodash_default.transform = object_default_default.transform; -wrapperLodash_default.unary = function_default_default.unary; -wrapperLodash_default.union = array_default_default.union; -wrapperLodash_default.unionBy = array_default_default.unionBy; -wrapperLodash_default.unionWith = array_default_default.unionWith; -wrapperLodash_default.uniq = array_default_default.uniq; -wrapperLodash_default.uniqBy = array_default_default.uniqBy; -wrapperLodash_default.uniqWith = array_default_default.uniqWith; -wrapperLodash_default.unset = object_default_default.unset; -wrapperLodash_default.unzip = array_default_default.unzip; -wrapperLodash_default.unzipWith = array_default_default.unzipWith; -wrapperLodash_default.update = object_default_default.update; -wrapperLodash_default.updateWith = object_default_default.updateWith; -wrapperLodash_default.values = object_default_default.values; -wrapperLodash_default.valuesIn = object_default_default.valuesIn; -wrapperLodash_default.without = array_default_default.without; -wrapperLodash_default.words = string_default_default.words; -wrapperLodash_default.wrap = function_default_default.wrap; -wrapperLodash_default.xor = array_default_default.xor; -wrapperLodash_default.xorBy = array_default_default.xorBy; -wrapperLodash_default.xorWith = array_default_default.xorWith; -wrapperLodash_default.zip = array_default_default.zip; -wrapperLodash_default.zipObject = array_default_default.zipObject; -wrapperLodash_default.zipObjectDeep = array_default_default.zipObjectDeep; -wrapperLodash_default.zipWith = array_default_default.zipWith; -wrapperLodash_default.entries = object_default_default.toPairs; -wrapperLodash_default.entriesIn = object_default_default.toPairsIn; -wrapperLodash_default.extend = object_default_default.assignIn; -wrapperLodash_default.extendWith = object_default_default.assignInWith; -mixin2(wrapperLodash_default, wrapperLodash_default); -wrapperLodash_default.add = math_default_default.add; -wrapperLodash_default.attempt = util_default_default.attempt; -wrapperLodash_default.camelCase = string_default_default.camelCase; -wrapperLodash_default.capitalize = string_default_default.capitalize; -wrapperLodash_default.ceil = math_default_default.ceil; -wrapperLodash_default.clamp = number_default_default.clamp; -wrapperLodash_default.clone = lang_default_default.clone; -wrapperLodash_default.cloneDeep = lang_default_default.cloneDeep; -wrapperLodash_default.cloneDeepWith = lang_default_default.cloneDeepWith; -wrapperLodash_default.cloneWith = lang_default_default.cloneWith; -wrapperLodash_default.conformsTo = lang_default_default.conformsTo; -wrapperLodash_default.deburr = string_default_default.deburr; -wrapperLodash_default.defaultTo = util_default_default.defaultTo; -wrapperLodash_default.divide = math_default_default.divide; -wrapperLodash_default.endsWith = string_default_default.endsWith; -wrapperLodash_default.eq = lang_default_default.eq; -wrapperLodash_default.escape = string_default_default.escape; -wrapperLodash_default.escapeRegExp = string_default_default.escapeRegExp; -wrapperLodash_default.every = collection_default_default.every; -wrapperLodash_default.find = collection_default_default.find; -wrapperLodash_default.findIndex = array_default_default.findIndex; -wrapperLodash_default.findKey = object_default_default.findKey; -wrapperLodash_default.findLast = collection_default_default.findLast; -wrapperLodash_default.findLastIndex = array_default_default.findLastIndex; -wrapperLodash_default.findLastKey = object_default_default.findLastKey; -wrapperLodash_default.floor = math_default_default.floor; -wrapperLodash_default.forEach = collection_default_default.forEach; -wrapperLodash_default.forEachRight = collection_default_default.forEachRight; -wrapperLodash_default.forIn = object_default_default.forIn; -wrapperLodash_default.forInRight = object_default_default.forInRight; -wrapperLodash_default.forOwn = object_default_default.forOwn; -wrapperLodash_default.forOwnRight = object_default_default.forOwnRight; -wrapperLodash_default.get = object_default_default.get; -wrapperLodash_default.gt = lang_default_default.gt; -wrapperLodash_default.gte = lang_default_default.gte; -wrapperLodash_default.has = object_default_default.has; -wrapperLodash_default.hasIn = object_default_default.hasIn; -wrapperLodash_default.head = array_default_default.head; -wrapperLodash_default.identity = identity_default; -wrapperLodash_default.includes = collection_default_default.includes; -wrapperLodash_default.indexOf = array_default_default.indexOf; -wrapperLodash_default.inRange = number_default_default.inRange; -wrapperLodash_default.invoke = object_default_default.invoke; -wrapperLodash_default.isArguments = lang_default_default.isArguments; -wrapperLodash_default.isArray = isArray_default; -wrapperLodash_default.isArrayBuffer = lang_default_default.isArrayBuffer; -wrapperLodash_default.isArrayLike = lang_default_default.isArrayLike; -wrapperLodash_default.isArrayLikeObject = lang_default_default.isArrayLikeObject; -wrapperLodash_default.isBoolean = lang_default_default.isBoolean; -wrapperLodash_default.isBuffer = lang_default_default.isBuffer; -wrapperLodash_default.isDate = lang_default_default.isDate; -wrapperLodash_default.isElement = lang_default_default.isElement; -wrapperLodash_default.isEmpty = lang_default_default.isEmpty; -wrapperLodash_default.isEqual = lang_default_default.isEqual; -wrapperLodash_default.isEqualWith = lang_default_default.isEqualWith; -wrapperLodash_default.isError = lang_default_default.isError; -wrapperLodash_default.isFinite = lang_default_default.isFinite; -wrapperLodash_default.isFunction = lang_default_default.isFunction; -wrapperLodash_default.isInteger = lang_default_default.isInteger; -wrapperLodash_default.isLength = lang_default_default.isLength; -wrapperLodash_default.isMap = lang_default_default.isMap; -wrapperLodash_default.isMatch = lang_default_default.isMatch; -wrapperLodash_default.isMatchWith = lang_default_default.isMatchWith; -wrapperLodash_default.isNaN = lang_default_default.isNaN; -wrapperLodash_default.isNative = lang_default_default.isNative; -wrapperLodash_default.isNil = lang_default_default.isNil; -wrapperLodash_default.isNull = lang_default_default.isNull; -wrapperLodash_default.isNumber = lang_default_default.isNumber; -wrapperLodash_default.isObject = isObject_default; -wrapperLodash_default.isObjectLike = lang_default_default.isObjectLike; -wrapperLodash_default.isPlainObject = lang_default_default.isPlainObject; -wrapperLodash_default.isRegExp = lang_default_default.isRegExp; -wrapperLodash_default.isSafeInteger = lang_default_default.isSafeInteger; -wrapperLodash_default.isSet = lang_default_default.isSet; -wrapperLodash_default.isString = lang_default_default.isString; -wrapperLodash_default.isSymbol = lang_default_default.isSymbol; -wrapperLodash_default.isTypedArray = lang_default_default.isTypedArray; -wrapperLodash_default.isUndefined = lang_default_default.isUndefined; -wrapperLodash_default.isWeakMap = lang_default_default.isWeakMap; -wrapperLodash_default.isWeakSet = lang_default_default.isWeakSet; -wrapperLodash_default.join = array_default_default.join; -wrapperLodash_default.kebabCase = string_default_default.kebabCase; -wrapperLodash_default.last = last_default; -wrapperLodash_default.lastIndexOf = array_default_default.lastIndexOf; -wrapperLodash_default.lowerCase = string_default_default.lowerCase; -wrapperLodash_default.lowerFirst = string_default_default.lowerFirst; -wrapperLodash_default.lt = lang_default_default.lt; -wrapperLodash_default.lte = lang_default_default.lte; -wrapperLodash_default.max = math_default_default.max; -wrapperLodash_default.maxBy = math_default_default.maxBy; -wrapperLodash_default.mean = math_default_default.mean; -wrapperLodash_default.meanBy = math_default_default.meanBy; -wrapperLodash_default.min = math_default_default.min; -wrapperLodash_default.minBy = math_default_default.minBy; -wrapperLodash_default.stubArray = util_default_default.stubArray; -wrapperLodash_default.stubFalse = util_default_default.stubFalse; -wrapperLodash_default.stubObject = util_default_default.stubObject; -wrapperLodash_default.stubString = util_default_default.stubString; -wrapperLodash_default.stubTrue = util_default_default.stubTrue; -wrapperLodash_default.multiply = math_default_default.multiply; -wrapperLodash_default.nth = array_default_default.nth; -wrapperLodash_default.noop = util_default_default.noop; -wrapperLodash_default.now = date_default_default.now; -wrapperLodash_default.pad = string_default_default.pad; -wrapperLodash_default.padEnd = string_default_default.padEnd; -wrapperLodash_default.padStart = string_default_default.padStart; -wrapperLodash_default.parseInt = string_default_default.parseInt; -wrapperLodash_default.random = number_default_default.random; -wrapperLodash_default.reduce = collection_default_default.reduce; -wrapperLodash_default.reduceRight = collection_default_default.reduceRight; -wrapperLodash_default.repeat = string_default_default.repeat; -wrapperLodash_default.replace = string_default_default.replace; -wrapperLodash_default.result = object_default_default.result; -wrapperLodash_default.round = math_default_default.round; -wrapperLodash_default.sample = collection_default_default.sample; -wrapperLodash_default.size = collection_default_default.size; -wrapperLodash_default.snakeCase = string_default_default.snakeCase; -wrapperLodash_default.some = collection_default_default.some; -wrapperLodash_default.sortedIndex = array_default_default.sortedIndex; -wrapperLodash_default.sortedIndexBy = array_default_default.sortedIndexBy; -wrapperLodash_default.sortedIndexOf = array_default_default.sortedIndexOf; -wrapperLodash_default.sortedLastIndex = array_default_default.sortedLastIndex; -wrapperLodash_default.sortedLastIndexBy = array_default_default.sortedLastIndexBy; -wrapperLodash_default.sortedLastIndexOf = array_default_default.sortedLastIndexOf; -wrapperLodash_default.startCase = string_default_default.startCase; -wrapperLodash_default.startsWith = string_default_default.startsWith; -wrapperLodash_default.subtract = math_default_default.subtract; -wrapperLodash_default.sum = math_default_default.sum; -wrapperLodash_default.sumBy = math_default_default.sumBy; -wrapperLodash_default.template = string_default_default.template; -wrapperLodash_default.times = util_default_default.times; -wrapperLodash_default.toFinite = lang_default_default.toFinite; -wrapperLodash_default.toInteger = toInteger_default; -wrapperLodash_default.toLength = lang_default_default.toLength; -wrapperLodash_default.toLower = string_default_default.toLower; -wrapperLodash_default.toNumber = lang_default_default.toNumber; -wrapperLodash_default.toSafeInteger = lang_default_default.toSafeInteger; -wrapperLodash_default.toString = lang_default_default.toString; -wrapperLodash_default.toUpper = string_default_default.toUpper; -wrapperLodash_default.trim = string_default_default.trim; -wrapperLodash_default.trimEnd = string_default_default.trimEnd; -wrapperLodash_default.trimStart = string_default_default.trimStart; -wrapperLodash_default.truncate = string_default_default.truncate; -wrapperLodash_default.unescape = string_default_default.unescape; -wrapperLodash_default.uniqueId = util_default_default.uniqueId; -wrapperLodash_default.upperCase = string_default_default.upperCase; -wrapperLodash_default.upperFirst = string_default_default.upperFirst; -wrapperLodash_default.each = collection_default_default.forEach; -wrapperLodash_default.eachRight = collection_default_default.forEachRight; -wrapperLodash_default.first = array_default_default.head; -mixin2(wrapperLodash_default, function() { - var source = {}; - baseForOwn_default(wrapperLodash_default, function(func, methodName) { - if (!hasOwnProperty14.call(wrapperLodash_default.prototype, methodName)) { - source[methodName] = func; - } - }); - return source; -}(), { "chain": false }); -wrapperLodash_default.VERSION = VERSION; -(wrapperLodash_default.templateSettings = string_default_default.templateSettings).imports._ = wrapperLodash_default; -arrayEach_default(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { - wrapperLodash_default[methodName].placeholder = wrapperLodash_default; -}); -arrayEach_default(["drop", "take"], function(methodName, index) { - LazyWrapper_default.prototype[methodName] = function(n) { - n = n === void 0 ? 1 : nativeMax16(toInteger_default(n), 0); - var result2 = this.__filtered__ && !index ? new LazyWrapper_default(this) : this.clone(); - if (result2.__filtered__) { - result2.__takeCount__ = nativeMin15(n, result2.__takeCount__); - } else { - result2.__views__.push({ - "size": nativeMin15(n, MAX_ARRAY_LENGTH7), - "type": methodName + (result2.__dir__ < 0 ? "Right" : "") - }); - } - return result2; - }; - LazyWrapper_default.prototype[methodName + "Right"] = function(n) { - return this.reverse()[methodName](n).reverse(); - }; -}); -arrayEach_default(["filter", "map", "takeWhile"], function(methodName, index) { - var type = index + 1, isFilter = type == LAZY_FILTER_FLAG2 || type == LAZY_WHILE_FLAG; - LazyWrapper_default.prototype[methodName] = function(iteratee2) { - var result2 = this.clone(); - result2.__iteratees__.push({ - "iteratee": baseIteratee_default(iteratee2, 3), - "type": type - }); - result2.__filtered__ = result2.__filtered__ || isFilter; - return result2; - }; -}); -arrayEach_default(["head", "last"], function(methodName, index) { - var takeName = "take" + (index ? "Right" : ""); - LazyWrapper_default.prototype[methodName] = function() { - return this[takeName](1).value()[0]; - }; -}); -arrayEach_default(["initial", "tail"], function(methodName, index) { - var dropName = "drop" + (index ? "" : "Right"); - LazyWrapper_default.prototype[methodName] = function() { - return this.__filtered__ ? new LazyWrapper_default(this) : this[dropName](1); - }; -}); -LazyWrapper_default.prototype.compact = function() { - return this.filter(identity_default); -}; -LazyWrapper_default.prototype.find = function(predicate) { - return this.filter(predicate).head(); -}; -LazyWrapper_default.prototype.findLast = function(predicate) { - return this.reverse().find(predicate); -}; -LazyWrapper_default.prototype.invokeMap = baseRest_default(function(path, args) { - if (typeof path == "function") { - return new LazyWrapper_default(this); - } - return this.map(function(value) { - return baseInvoke_default(value, path, args); - }); -}); -LazyWrapper_default.prototype.reject = function(predicate) { - return this.filter(negate_default(baseIteratee_default(predicate))); -}; -LazyWrapper_default.prototype.slice = function(start, end) { - start = toInteger_default(start); - var result2 = this; - if (result2.__filtered__ && (start > 0 || end < 0)) { - return new LazyWrapper_default(result2); - } - if (start < 0) { - result2 = result2.takeRight(-start); - } else if (start) { - result2 = result2.drop(start); - } - if (end !== void 0) { - end = toInteger_default(end); - result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); - } - return result2; -}; -LazyWrapper_default.prototype.takeRightWhile = function(predicate) { - return this.reverse().takeWhile(predicate).reverse(); -}; -LazyWrapper_default.prototype.toArray = function() { - return this.take(MAX_ARRAY_LENGTH7); -}; -baseForOwn_default(LazyWrapper_default.prototype, function(func, methodName) { - var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = wrapperLodash_default[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); - if (!lodashFunc) { - return; - } - wrapperLodash_default.prototype[methodName] = function() { - var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper_default, iteratee2 = args[0], useLazy = isLazy || isArray_default(value); - var interceptor = function(value2) { - var result3 = lodashFunc.apply(wrapperLodash_default, arrayPush_default([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_default(this); - var result2 = func.apply(value, args); - result2.__actions__.push({ "func": thru_default, "args": [interceptor], "thisArg": void 0 }); - return new LodashWrapper_default(result2, chainAll); - } - if (isUnwrapped && onlyLazy) { - return func.apply(this, args); - } - result2 = this.thru(interceptor); - return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; - }; -}); -arrayEach_default(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { - var func = arrayProto5[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); - wrapperLodash_default.prototype[methodName] = function() { - var args = arguments; - if (retUnwrapped && !this.__chain__) { - var value = this.value(); - return func.apply(isArray_default(value) ? value : [], args); - } - return this[chainName](function(value2) { - return func.apply(isArray_default(value2) ? value2 : [], args); - }); - }; -}); -baseForOwn_default(LazyWrapper_default.prototype, function(func, methodName) { - var lodashFunc = wrapperLodash_default[methodName]; - if (lodashFunc) { - var key = lodashFunc.name + ""; - if (!hasOwnProperty14.call(realNames_default, key)) { - realNames_default[key] = []; - } - realNames_default[key].push({ "name": methodName, "func": lodashFunc }); - } -}); -realNames_default[createHybrid_default(void 0, WRAP_BIND_KEY_FLAG7).name] = [{ - "name": "wrapper", - "func": void 0 -}]; -LazyWrapper_default.prototype.clone = lazyClone_default; -LazyWrapper_default.prototype.reverse = lazyReverse_default; -LazyWrapper_default.prototype.value = lazyValue_default; -wrapperLodash_default.prototype.at = seq_default_default.at; -wrapperLodash_default.prototype.chain = seq_default_default.wrapperChain; -wrapperLodash_default.prototype.commit = seq_default_default.commit; -wrapperLodash_default.prototype.next = seq_default_default.next; -wrapperLodash_default.prototype.plant = seq_default_default.plant; -wrapperLodash_default.prototype.reverse = seq_default_default.reverse; -wrapperLodash_default.prototype.toJSON = wrapperLodash_default.prototype.valueOf = wrapperLodash_default.prototype.value = seq_default_default.value; -wrapperLodash_default.prototype.first = wrapperLodash_default.prototype.head; -if (symIterator2) { - wrapperLodash_default.prototype[symIterator2] = seq_default_default.toIterator; -} - -// node_modules/dagre-d3-es/src/graphlib/graph.js -var DEFAULT_EDGE_NAME = "\0"; -var GRAPH_NODE = "\0"; -var EDGE_KEY_DELIM = ""; -var Graph = class { - constructor(opts = {}) { - this._isDirected = has_default(opts, "directed") ? opts.directed : true; - this._isMultigraph = has_default(opts, "multigraph") ? opts.multigraph : false; - this._isCompound = has_default(opts, "compound") ? opts.compound : false; - this._label = void 0; - this._defaultNodeLabelFn = constant_default(void 0); - this._defaultEdgeLabelFn = constant_default(void 0); - this._nodes = {}; - if (this._isCompound) { - this._parent = {}; - this._children = {}; - this._children[GRAPH_NODE] = {}; - } - this._in = {}; - this._preds = {}; - this._out = {}; - this._sucs = {}; - this._edgeObjs = {}; - this._edgeLabels = {}; - } - /* === Graph functions ========= */ - isDirected() { - return this._isDirected; - } - isMultigraph() { - return this._isMultigraph; - } - isCompound() { - return this._isCompound; - } - setGraph(label) { - this._label = label; - return this; - } - graph() { - return this._label; - } - /* === Node functions ========== */ - setDefaultNodeLabel(newDefault) { - if (!isFunction_default(newDefault)) { - newDefault = constant_default(newDefault); - } - this._defaultNodeLabelFn = newDefault; - return this; - } - nodeCount() { - return this._nodeCount; - } - nodes() { - return keys_default(this._nodes); - } - sources() { - var self = this; - return filter_default(this.nodes(), function(v) { - return isEmpty_default(self._in[v]); - }); - } - sinks() { - var self = this; - return filter_default(this.nodes(), function(v) { - return isEmpty_default(self._out[v]); - }); - } - setNodes(vs, value) { - var args = arguments; - var self = this; - forEach_default(vs, function(v) { - if (args.length > 1) { - self.setNode(v, value); - } else { - self.setNode(v); - } - }); - return this; - } - setNode(v, value) { - if (has_default(this._nodes, v)) { - if (arguments.length > 1) { - this._nodes[v] = value; - } - return this; - } - this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v); - if (this._isCompound) { - this._parent[v] = GRAPH_NODE; - this._children[v] = {}; - this._children[GRAPH_NODE][v] = true; - } - this._in[v] = {}; - this._preds[v] = {}; - this._out[v] = {}; - this._sucs[v] = {}; - ++this._nodeCount; - return this; - } - node(v) { - return this._nodes[v]; - } - hasNode(v) { - return has_default(this._nodes, v); - } - removeNode(v) { - var self = this; - if (has_default(this._nodes, v)) { - var removeEdge = function(e) { - self.removeEdge(self._edgeObjs[e]); - }; - delete this._nodes[v]; - if (this._isCompound) { - this._removeFromParentsChildList(v); - delete this._parent[v]; - forEach_default(this.children(v), function(child) { - self.setParent(child); - }); - delete this._children[v]; - } - forEach_default(keys_default(this._in[v]), removeEdge); - delete this._in[v]; - delete this._preds[v]; - forEach_default(keys_default(this._out[v]), removeEdge); - delete this._out[v]; - delete this._sucs[v]; - --this._nodeCount; - } - return this; - } - setParent(v, parent2) { - if (!this._isCompound) { - throw new Error("Cannot set parent in a non-compound graph"); - } - if (isUndefined_default(parent2)) { - parent2 = GRAPH_NODE; - } else { - parent2 += ""; - for (var ancestor = parent2; !isUndefined_default(ancestor); ancestor = this.parent(ancestor)) { - if (ancestor === v) { - throw new Error("Setting " + parent2 + " as parent of " + v + " would create a cycle"); - } - } - this.setNode(parent2); - } - this.setNode(v); - this._removeFromParentsChildList(v); - this._parent[v] = parent2; - this._children[parent2][v] = true; - return this; - } - _removeFromParentsChildList(v) { - delete this._children[this._parent[v]][v]; - } - parent(v) { - if (this._isCompound) { - var parent2 = this._parent[v]; - if (parent2 !== GRAPH_NODE) { - return parent2; - } - } - } - children(v) { - if (isUndefined_default(v)) { - v = GRAPH_NODE; - } - if (this._isCompound) { - var children = this._children[v]; - if (children) { - return keys_default(children); - } - } else if (v === GRAPH_NODE) { - return this.nodes(); - } else if (this.hasNode(v)) { - return []; - } - } - predecessors(v) { - var predsV = this._preds[v]; - if (predsV) { - return keys_default(predsV); - } - } - successors(v) { - var sucsV = this._sucs[v]; - if (sucsV) { - return keys_default(sucsV); - } - } - neighbors(v) { - var preds = this.predecessors(v); - if (preds) { - return union_default(preds, this.successors(v)); - } - } - isLeaf(v) { - var neighbors; - if (this.isDirected()) { - neighbors = this.successors(v); - } else { - neighbors = this.neighbors(v); - } - return neighbors.length === 0; - } - filterNodes(filter2) { - var copy = new this.constructor({ - directed: this._isDirected, - multigraph: this._isMultigraph, - compound: this._isCompound - }); - copy.setGraph(this.graph()); - var self = this; - forEach_default(this._nodes, function(value, v) { - if (filter2(v)) { - copy.setNode(v, value); - } - }); - forEach_default(this._edgeObjs, function(e) { - if (copy.hasNode(e.v) && copy.hasNode(e.w)) { - copy.setEdge(e, self.edge(e)); - } - }); - var parents = {}; - function findParent(v) { - var parent2 = self.parent(v); - if (parent2 === void 0 || copy.hasNode(parent2)) { - parents[v] = parent2; - return parent2; - } else if (parent2 in parents) { - return parents[parent2]; - } else { - return findParent(parent2); - } - } - if (this._isCompound) { - forEach_default(copy.nodes(), function(v) { - copy.setParent(v, findParent(v)); - }); - } - return copy; - } - /* === Edge functions ========== */ - setDefaultEdgeLabel(newDefault) { - if (!isFunction_default(newDefault)) { - newDefault = constant_default(newDefault); - } - this._defaultEdgeLabelFn = newDefault; - return this; - } - edgeCount() { - return this._edgeCount; - } - edges() { - return values_default(this._edgeObjs); - } - setPath(vs, value) { - var self = this; - var args = arguments; - reduce_default(vs, function(v, w) { - if (args.length > 1) { - self.setEdge(v, w, value); - } else { - self.setEdge(v, w); - } - return w; - }); - return this; - } - /* - * setEdge(v, w, [value, [name]]) - * setEdge({ v, w, [name] }, [value]) - */ - setEdge() { - var v, w, name, value; - var valueSpecified = false; - var arg0 = arguments[0]; - if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) { - v = arg0.v; - w = arg0.w; - name = arg0.name; - if (arguments.length === 2) { - value = arguments[1]; - valueSpecified = true; - } - } else { - v = arg0; - w = arguments[1]; - name = arguments[3]; - if (arguments.length > 2) { - value = arguments[2]; - valueSpecified = true; - } - } - v = "" + v; - w = "" + w; - if (!isUndefined_default(name)) { - name = "" + name; - } - var e = edgeArgsToId(this._isDirected, v, w, name); - if (has_default(this._edgeLabels, e)) { - if (valueSpecified) { - this._edgeLabels[e] = value; - } - return this; - } - if (!isUndefined_default(name) && !this._isMultigraph) { - throw new Error("Cannot set a named edge when isMultigraph = false"); - } - this.setNode(v); - this.setNode(w); - this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name); - var edgeObj = edgeArgsToObj(this._isDirected, v, w, name); - v = edgeObj.v; - w = edgeObj.w; - Object.freeze(edgeObj); - this._edgeObjs[e] = edgeObj; - incrementOrInitEntry(this._preds[w], v); - incrementOrInitEntry(this._sucs[v], w); - this._in[w][e] = edgeObj; - this._out[v][e] = edgeObj; - this._edgeCount++; - return this; - } - edge(v, w, name) { - var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name); - return this._edgeLabels[e]; - } - hasEdge(v, w, name) { - var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name); - return has_default(this._edgeLabels, e); - } - removeEdge(v, w, name) { - var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name); - var edge = this._edgeObjs[e]; - if (edge) { - v = edge.v; - w = edge.w; - delete this._edgeLabels[e]; - delete this._edgeObjs[e]; - decrementOrRemoveEntry(this._preds[w], v); - decrementOrRemoveEntry(this._sucs[v], w); - delete this._in[w][e]; - delete this._out[v][e]; - this._edgeCount--; - } - return this; - } - inEdges(v, u) { - var inV = this._in[v]; - if (inV) { - var edges = values_default(inV); - if (!u) { - return edges; - } - return filter_default(edges, function(edge) { - return edge.v === u; - }); - } - } - outEdges(v, w) { - var outV = this._out[v]; - if (outV) { - var edges = values_default(outV); - if (!w) { - return edges; - } - return filter_default(edges, function(edge) { - return edge.w === w; - }); - } - } - nodeEdges(v, w) { - var inEdges = this.inEdges(v, w); - if (inEdges) { - return inEdges.concat(this.outEdges(v, w)); - } - } -}; -Graph.prototype._nodeCount = 0; -Graph.prototype._edgeCount = 0; -function incrementOrInitEntry(map2, k) { - if (map2[k]) { - map2[k]++; - } else { - map2[k] = 1; - } -} -function decrementOrRemoveEntry(map2, k) { - if (!--map2[k]) { - delete map2[k]; - } -} -function edgeArgsToId(isDirected, v_, w_, name) { - var v = "" + v_; - var w = "" + w_; - if (!isDirected && v > w) { - var tmp = v; - v = w; - w = tmp; - } - return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (isUndefined_default(name) ? DEFAULT_EDGE_NAME : name); -} -function edgeArgsToObj(isDirected, v_, w_, name) { - var v = "" + v_; - var w = "" + w_; - if (!isDirected && v > w) { - var tmp = v; - v = w; - w = tmp; - } - var edgeObj = { v, w }; - if (name) { - edgeObj.name = name; - } - return edgeObj; -} -function edgeObjToId(isDirected, edgeObj) { - return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name); -} - -// node_modules/dagre-d3-es/src/dagre/util.js -function addDummyNode(g, type, attrs, name) { - var v; - do { - v = uniqueId_default(name); - } while (g.hasNode(v)); - attrs.dummy = type; - g.setNode(v, attrs); - return v; -} -function simplify(g) { - var simplified = new Graph().setGraph(g.graph()); - forEach_default(g.nodes(), function(v) { - simplified.setNode(v, g.node(v)); - }); - forEach_default(g.edges(), function(e) { - var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 }; - var label = g.edge(e); - simplified.setEdge(e.v, e.w, { - weight: simpleLabel.weight + label.weight, - minlen: Math.max(simpleLabel.minlen, label.minlen) - }); - }); - return simplified; -} -function asNonCompoundGraph(g) { - var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph()); - forEach_default(g.nodes(), function(v) { - if (!g.children(v).length) { - simplified.setNode(v, g.node(v)); - } - }); - forEach_default(g.edges(), function(e) { - simplified.setEdge(e, g.edge(e)); - }); - return simplified; -} -function intersectRect(rect, point) { - var x = rect.x; - var y = rect.y; - var dx = point.x - x; - var dy = point.y - y; - var w = rect.width / 2; - var h = rect.height / 2; - if (!dx && !dy) { - throw new Error("Not possible to find intersection inside of the rectangle"); - } - var sx, sy; - if (Math.abs(dy) * w > Math.abs(dx) * h) { - if (dy < 0) { - h = -h; - } - sx = h * dx / dy; - sy = h; - } else { - if (dx < 0) { - w = -w; - } - sx = w; - sy = w * dy / dx; - } - return { x: x + sx, y: y + sy }; -} -function buildLayerMatrix(g) { - var layering = map_default(range_default(maxRank(g) + 1), function() { - return []; - }); - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - var rank2 = node.rank; - if (!isUndefined_default(rank2)) { - layering[rank2][node.order] = v; - } - }); - return layering; -} -function normalizeRanks(g) { - var min2 = min_default( - map_default(g.nodes(), function(v) { - return g.node(v).rank; - }) - ); - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - if (has_default(node, "rank")) { - node.rank -= min2; - } - }); -} -function removeEmptyRanks(g) { - var offset = min_default( - map_default(g.nodes(), function(v) { - return g.node(v).rank; - }) - ); - var layers = []; - forEach_default(g.nodes(), function(v) { - var rank2 = g.node(v).rank - offset; - if (!layers[rank2]) { - layers[rank2] = []; - } - layers[rank2].push(v); - }); - var delta = 0; - var nodeRankFactor = g.graph().nodeRankFactor; - forEach_default(layers, function(vs, i) { - if (isUndefined_default(vs) && i % nodeRankFactor !== 0) { - --delta; - } else if (delta) { - forEach_default(vs, function(v) { - g.node(v).rank += delta; - }); - } - }); -} -function addBorderNode(g, prefix, rank2, order2) { - var node = { - width: 0, - height: 0 - }; - if (arguments.length >= 4) { - node.rank = rank2; - node.order = order2; - } - return addDummyNode(g, "border", node, prefix); -} -function maxRank(g) { - return max_default( - map_default(g.nodes(), function(v) { - var rank2 = g.node(v).rank; - if (!isUndefined_default(rank2)) { - return rank2; - } - }) - ); -} -function partition2(collection, fn) { - var result2 = { lhs: [], rhs: [] }; - forEach_default(collection, function(value) { - if (fn(value)) { - result2.lhs.push(value); - } else { - result2.rhs.push(value); - } - }); - return result2; -} -function time(name, fn) { - var start = now_default(); - try { - return fn(); - } finally { - console.log(name + " time: " + (now_default() - start) + "ms"); - } -} -function notime(name, fn) { - return fn(); -} - -// node_modules/dagre-d3-es/src/dagre/add-border-segments.js -function addBorderSegments(g) { - function dfs3(v) { - var children = g.children(v); - var node = g.node(v); - if (children.length) { - forEach_default(children, dfs3); - } - if (has_default(node, "minRank")) { - node.borderLeft = []; - node.borderRight = []; - for (var rank2 = node.minRank, maxRank2 = node.maxRank + 1; rank2 < maxRank2; ++rank2) { - addBorderNode2(g, "borderLeft", "_bl", v, node, rank2); - addBorderNode2(g, "borderRight", "_br", v, node, rank2); - } - } - } - forEach_default(g.children(), dfs3); -} -function addBorderNode2(g, prop, prefix, sg, sgNode, rank2) { - var label = { width: 0, height: 0, rank: rank2, borderType: prop }; - var prev = sgNode[prop][rank2 - 1]; - var curr = addDummyNode(g, "border", label, prefix); - sgNode[prop][rank2] = curr; - g.setParent(curr, sg); - if (prev) { - g.setEdge(prev, curr, { weight: 1 }); - } -} - -// node_modules/dagre-d3-es/src/dagre/coordinate-system.js -function adjust(g) { - var rankDir = g.graph().rankdir.toLowerCase(); - if (rankDir === "lr" || rankDir === "rl") { - swapWidthHeight(g); - } -} -function undo(g) { - var rankDir = g.graph().rankdir.toLowerCase(); - if (rankDir === "bt" || rankDir === "rl") { - reverseY(g); - } - if (rankDir === "lr" || rankDir === "rl") { - swapXY(g); - swapWidthHeight(g); - } -} -function swapWidthHeight(g) { - forEach_default(g.nodes(), function(v) { - swapWidthHeightOne(g.node(v)); - }); - forEach_default(g.edges(), function(e) { - swapWidthHeightOne(g.edge(e)); - }); -} -function swapWidthHeightOne(attrs) { - var w = attrs.width; - attrs.width = attrs.height; - attrs.height = w; -} -function reverseY(g) { - forEach_default(g.nodes(), function(v) { - reverseYOne(g.node(v)); - }); - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - forEach_default(edge.points, reverseYOne); - if (has_default(edge, "y")) { - reverseYOne(edge); - } - }); -} -function reverseYOne(attrs) { - attrs.y = -attrs.y; -} -function swapXY(g) { - forEach_default(g.nodes(), function(v) { - swapXYOne(g.node(v)); - }); - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - forEach_default(edge.points, swapXYOne); - if (has_default(edge, "x")) { - swapXYOne(edge); - } - }); -} -function swapXYOne(attrs) { - var x = attrs.x; - attrs.x = attrs.y; - attrs.y = x; -} - -// node_modules/dagre-d3-es/src/dagre/data/list.js -var List = class { - constructor() { - var sentinel = {}; - sentinel._next = sentinel._prev = sentinel; - this._sentinel = sentinel; - } - dequeue() { - var sentinel = this._sentinel; - var entry = sentinel._prev; - if (entry !== sentinel) { - unlink(entry); - return entry; - } - } - enqueue(entry) { - var sentinel = this._sentinel; - if (entry._prev && entry._next) { - unlink(entry); - } - entry._next = sentinel._next; - sentinel._next._prev = entry; - sentinel._next = entry; - entry._prev = sentinel; - } - toString() { - var strs = []; - var sentinel = this._sentinel; - var curr = sentinel._prev; - while (curr !== sentinel) { - strs.push(JSON.stringify(curr, filterOutLinks)); - curr = curr._prev; - } - return "[" + strs.join(", ") + "]"; - } -}; -function unlink(entry) { - entry._prev._next = entry._next; - entry._next._prev = entry._prev; - delete entry._next; - delete entry._prev; -} -function filterOutLinks(k, v) { - if (k !== "_next" && k !== "_prev") { - return v; - } -} - -// node_modules/dagre-d3-es/src/dagre/greedy-fas.js -var DEFAULT_WEIGHT_FN = constant_default(1); -function greedyFAS(g, weightFn) { - if (g.nodeCount() <= 1) { - return []; - } - var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN); - var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx); - return flatten_default( - map_default(results, function(e) { - return g.outEdges(e.v, e.w); - }) - ); -} -function doGreedyFAS(g, buckets, zeroIdx) { - var results = []; - var sources = buckets[buckets.length - 1]; - var sinks = buckets[0]; - var entry; - while (g.nodeCount()) { - while (entry = sinks.dequeue()) { - removeNode(g, buckets, zeroIdx, entry); - } - while (entry = sources.dequeue()) { - removeNode(g, buckets, zeroIdx, entry); - } - if (g.nodeCount()) { - for (var i = buckets.length - 2; i > 0; --i) { - entry = buckets[i].dequeue(); - if (entry) { - results = results.concat(removeNode(g, buckets, zeroIdx, entry, true)); - break; - } - } - } - } - return results; -} -function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) { - var results = collectPredecessors ? [] : void 0; - forEach_default(g.inEdges(entry.v), function(edge) { - var weight = g.edge(edge); - var uEntry = g.node(edge.v); - if (collectPredecessors) { - results.push({ v: edge.v, w: edge.w }); - } - uEntry.out -= weight; - assignBucket(buckets, zeroIdx, uEntry); - }); - forEach_default(g.outEdges(entry.v), function(edge) { - var weight = g.edge(edge); - var w = edge.w; - var wEntry = g.node(w); - wEntry["in"] -= weight; - assignBucket(buckets, zeroIdx, wEntry); - }); - g.removeNode(entry.v); - return results; -} -function buildState(g, weightFn) { - var fasGraph = new Graph(); - var maxIn = 0; - var maxOut = 0; - forEach_default(g.nodes(), function(v) { - fasGraph.setNode(v, { v, in: 0, out: 0 }); - }); - forEach_default(g.edges(), function(e) { - var prevWeight = fasGraph.edge(e.v, e.w) || 0; - var weight = weightFn(e); - var edgeWeight = prevWeight + weight; - fasGraph.setEdge(e.v, e.w, edgeWeight); - maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight); - maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight); - }); - var buckets = range_default(maxOut + maxIn + 3).map(function() { - return new List(); - }); - var zeroIdx = maxIn + 1; - forEach_default(fasGraph.nodes(), function(v) { - assignBucket(buckets, zeroIdx, fasGraph.node(v)); - }); - return { graph: fasGraph, buckets, zeroIdx }; -} -function assignBucket(buckets, zeroIdx, entry) { - if (!entry.out) { - buckets[0].enqueue(entry); - } else if (!entry["in"]) { - buckets[buckets.length - 1].enqueue(entry); - } else { - buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry); - } -} - -// node_modules/dagre-d3-es/src/dagre/acyclic.js -function run(g) { - var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g); - forEach_default(fas, function(e) { - var label = g.edge(e); - g.removeEdge(e); - label.forwardName = e.name; - label.reversed = true; - g.setEdge(e.w, e.v, label, uniqueId_default("rev")); - }); - function weightFn(g2) { - return function(e) { - return g2.edge(e).weight; - }; - } -} -function dfsFAS(g) { - var fas = []; - var stack = {}; - var visited = {}; - function dfs3(v) { - if (has_default(visited, v)) { - return; - } - visited[v] = true; - stack[v] = true; - forEach_default(g.outEdges(v), function(e) { - if (has_default(stack, e.w)) { - fas.push(e); - } else { - dfs3(e.w); - } - }); - delete stack[v]; - } - forEach_default(g.nodes(), dfs3); - return fas; -} -function undo2(g) { - forEach_default(g.edges(), function(e) { - var label = g.edge(e); - if (label.reversed) { - g.removeEdge(e); - var forwardName = label.forwardName; - delete label.reversed; - delete label.forwardName; - g.setEdge(e.w, e.v, label, forwardName); - } - }); -} - -// node_modules/dagre-d3-es/src/dagre/normalize.js -function run2(g) { - g.graph().dummyChains = []; - forEach_default(g.edges(), function(edge) { - normalizeEdge(g, edge); - }); -} -function normalizeEdge(g, e) { - var v = e.v; - var vRank = g.node(v).rank; - var w = e.w; - var wRank = g.node(w).rank; - var name = e.name; - var edgeLabel = g.edge(e); - var labelRank = edgeLabel.labelRank; - if (wRank === vRank + 1) - return; - g.removeEdge(e); - var dummy, attrs, i; - for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) { - edgeLabel.points = []; - attrs = { - width: 0, - height: 0, - edgeLabel, - edgeObj: e, - rank: vRank - }; - dummy = addDummyNode(g, "edge", attrs, "_d"); - if (vRank === labelRank) { - attrs.width = edgeLabel.width; - attrs.height = edgeLabel.height; - attrs.dummy = "edge-label"; - attrs.labelpos = edgeLabel.labelpos; - } - g.setEdge(v, dummy, { weight: edgeLabel.weight }, name); - if (i === 0) { - g.graph().dummyChains.push(dummy); - } - v = dummy; - } - g.setEdge(v, w, { weight: edgeLabel.weight }, name); -} -function undo3(g) { - forEach_default(g.graph().dummyChains, function(v) { - var node = g.node(v); - var origLabel = node.edgeLabel; - var w; - g.setEdge(node.edgeObj, origLabel); - while (node.dummy) { - w = g.successors(v)[0]; - g.removeNode(v); - origLabel.points.push({ x: node.x, y: node.y }); - if (node.dummy === "edge-label") { - origLabel.x = node.x; - origLabel.y = node.y; - origLabel.width = node.width; - origLabel.height = node.height; - } - v = w; - node = g.node(v); - } - }); -} - -// node_modules/dagre-d3-es/src/dagre/rank/util.js -function longestPath(g) { - var visited = {}; - function dfs3(v) { - var label = g.node(v); - if (has_default(visited, v)) { - return label.rank; - } - visited[v] = true; - var rank2 = min_default( - map_default(g.outEdges(v), function(e) { - return dfs3(e.w) - g.edge(e).minlen; - }) - ); - if (rank2 === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3 - rank2 === void 0 || // return value of _.map([]) for Lodash 4 - rank2 === null) { - rank2 = 0; - } - return label.rank = rank2; - } - forEach_default(g.sources(), dfs3); -} -function slack(g, e) { - return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen; -} - -// node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js -function feasibleTree(g) { - var t = new Graph({ directed: false }); - var start = g.nodes()[0]; - var size2 = g.nodeCount(); - t.setNode(start, {}); - var edge, delta; - while (tightTree(t, g) < size2) { - edge = findMinSlackEdge(t, g); - delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge); - shiftRanks(t, g, delta); - } - return t; -} -function tightTree(t, g) { - function dfs3(v) { - forEach_default(g.nodeEdges(v), function(e) { - var edgeV = e.v, w = v === edgeV ? e.w : edgeV; - if (!t.hasNode(w) && !slack(g, e)) { - t.setNode(w, {}); - t.setEdge(v, w, {}); - dfs3(w); - } - }); - } - forEach_default(t.nodes(), dfs3); - return t.nodeCount(); -} -function findMinSlackEdge(t, g) { - return minBy_default(g.edges(), function(e) { - if (t.hasNode(e.v) !== t.hasNode(e.w)) { - return slack(g, e); - } - }); -} -function shiftRanks(t, g, delta) { - forEach_default(t.nodes(), function(v) { - g.node(v).rank += delta; - }); -} - -// node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js -var DEFAULT_WEIGHT_FUNC = constant_default(1); - -// node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js -var DEFAULT_WEIGHT_FUNC2 = constant_default(1); - -// node_modules/dagre-d3-es/src/graphlib/alg/topsort.js -topsort.CycleException = CycleException; -function topsort(g) { - var visited = {}; - var stack = {}; - var results = []; - function visit(node) { - if (has_default(stack, node)) { - throw new CycleException(); - } - if (!has_default(visited, node)) { - stack[node] = true; - visited[node] = true; - forEach_default(g.predecessors(node), visit); - delete stack[node]; - results.push(node); - } - } - forEach_default(g.sinks(), visit); - if (size_default(visited) !== g.nodeCount()) { - throw new CycleException(); - } - return results; -} -function CycleException() { -} -CycleException.prototype = new Error(); - -// node_modules/dagre-d3-es/src/graphlib/alg/dfs.js -function dfs(g, vs, order2) { - if (!isArray_default(vs)) { - vs = [vs]; - } - var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g); - var acc = []; - var visited = {}; - forEach_default(vs, function(v) { - if (!g.hasNode(v)) { - throw new Error("Graph does not have node: " + v); - } - doDfs(g, v, order2 === "post", visited, navigation, acc); - }); - return acc; -} -function doDfs(g, v, postorder3, visited, navigation, acc) { - if (!has_default(visited, v)) { - visited[v] = true; - if (!postorder3) { - acc.push(v); - } - forEach_default(navigation(v), function(w) { - doDfs(g, w, postorder3, visited, navigation, acc); - }); - if (postorder3) { - acc.push(v); - } - } -} - -// node_modules/dagre-d3-es/src/graphlib/alg/postorder.js -function postorder(g, vs) { - return dfs(g, vs, "post"); -} - -// node_modules/dagre-d3-es/src/graphlib/alg/preorder.js -function preorder(g, vs) { - return dfs(g, vs, "pre"); -} - -// node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js -networkSimplex.initLowLimValues = initLowLimValues; -networkSimplex.initCutValues = initCutValues; -networkSimplex.calcCutValue = calcCutValue; -networkSimplex.leaveEdge = leaveEdge; -networkSimplex.enterEdge = enterEdge; -networkSimplex.exchangeEdges = exchangeEdges; -function networkSimplex(g) { - g = simplify(g); - longestPath(g); - var t = feasibleTree(g); - initLowLimValues(t); - initCutValues(t, g); - var e, f; - while (e = leaveEdge(t)) { - f = enterEdge(t, g, e); - exchangeEdges(t, g, e, f); - } -} -function initCutValues(t, g) { - var vs = postorder(t, t.nodes()); - vs = vs.slice(0, vs.length - 1); - forEach_default(vs, function(v) { - assignCutValue(t, g, v); - }); -} -function assignCutValue(t, g, child) { - var childLab = t.node(child); - var parent2 = childLab.parent; - t.edge(child, parent2).cutvalue = calcCutValue(t, g, child); -} -function calcCutValue(t, g, child) { - var childLab = t.node(child); - var parent2 = childLab.parent; - var childIsTail = true; - var graphEdge = g.edge(child, parent2); - var cutValue = 0; - if (!graphEdge) { - childIsTail = false; - graphEdge = g.edge(parent2, child); - } - cutValue = graphEdge.weight; - forEach_default(g.nodeEdges(child), function(e) { - var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v; - if (other !== parent2) { - var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight; - cutValue += pointsToHead ? otherWeight : -otherWeight; - if (isTreeEdge(t, child, other)) { - var otherCutValue = t.edge(child, other).cutvalue; - cutValue += pointsToHead ? -otherCutValue : otherCutValue; - } - } - }); - return cutValue; -} -function initLowLimValues(tree, root) { - if (arguments.length < 2) { - root = tree.nodes()[0]; - } - dfsAssignLowLim(tree, {}, 1, root); -} -function dfsAssignLowLim(tree, visited, nextLim, v, parent2) { - var low = nextLim; - var label = tree.node(v); - visited[v] = true; - forEach_default(tree.neighbors(v), function(w) { - if (!has_default(visited, w)) { - nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v); - } - }); - label.low = low; - label.lim = nextLim++; - if (parent2) { - label.parent = parent2; - } else { - delete label.parent; - } - return nextLim; -} -function leaveEdge(tree) { - return find_default(tree.edges(), function(e) { - return tree.edge(e).cutvalue < 0; - }); -} -function enterEdge(t, g, edge) { - var v = edge.v; - var w = edge.w; - if (!g.hasEdge(v, w)) { - v = edge.w; - w = edge.v; - } - var vLabel = t.node(v); - var wLabel = t.node(w); - var tailLabel = vLabel; - var flip2 = false; - if (vLabel.lim > wLabel.lim) { - tailLabel = wLabel; - flip2 = true; - } - var candidates = filter_default(g.edges(), function(edge2) { - return flip2 === isDescendant(t, t.node(edge2.v), tailLabel) && flip2 !== isDescendant(t, t.node(edge2.w), tailLabel); - }); - return minBy_default(candidates, function(edge2) { - return slack(g, edge2); - }); -} -function exchangeEdges(t, g, e, f) { - var v = e.v; - var w = e.w; - t.removeEdge(v, w); - t.setEdge(f.v, f.w, {}); - initLowLimValues(t); - initCutValues(t, g); - updateRanks(t, g); -} -function updateRanks(t, g) { - var root = find_default(t.nodes(), function(v) { - return !g.node(v).parent; - }); - var vs = preorder(t, root); - vs = vs.slice(1); - forEach_default(vs, function(v) { - var parent2 = t.node(v).parent, edge = g.edge(v, parent2), flipped = false; - if (!edge) { - edge = g.edge(parent2, v); - flipped = true; - } - g.node(v).rank = g.node(parent2).rank + (flipped ? edge.minlen : -edge.minlen); - }); -} -function isTreeEdge(tree, u, v) { - return tree.hasEdge(u, v); -} -function isDescendant(tree, vLabel, rootLabel) { - return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim; -} - -// node_modules/dagre-d3-es/src/dagre/rank/index.js -function rank(g) { - switch (g.graph().ranker) { - case "network-simplex": - networkSimplexRanker(g); - break; - case "tight-tree": - tightTreeRanker(g); - break; - case "longest-path": - longestPathRanker(g); - break; - default: - networkSimplexRanker(g); - } -} -var longestPathRanker = longestPath; -function tightTreeRanker(g) { - longestPath(g); - feasibleTree(g); -} -function networkSimplexRanker(g) { - networkSimplex(g); -} - -// node_modules/dagre-d3-es/src/dagre/nesting-graph.js -function run3(g) { - var root = addDummyNode(g, "root", {}, "_root"); - var depths = treeDepths(g); - var height = max_default(values_default(depths)) - 1; - var nodeSep = 2 * height + 1; - g.graph().nestingRoot = root; - forEach_default(g.edges(), function(e) { - g.edge(e).minlen *= nodeSep; - }); - var weight = sumWeights(g) + 1; - forEach_default(g.children(), function(child) { - dfs2(g, root, nodeSep, weight, height, depths, child); - }); - g.graph().nodeRankFactor = nodeSep; -} -function dfs2(g, root, nodeSep, weight, height, depths, v) { - var children = g.children(v); - if (!children.length) { - if (v !== root) { - g.setEdge(root, v, { weight: 0, minlen: nodeSep }); - } - return; - } - var top = addBorderNode(g, "_bt"); - var bottom = addBorderNode(g, "_bb"); - var label = g.node(v); - g.setParent(top, v); - label.borderTop = top; - g.setParent(bottom, v); - label.borderBottom = bottom; - forEach_default(children, function(child) { - dfs2(g, root, nodeSep, weight, height, depths, child); - var childNode = g.node(child); - var childTop = childNode.borderTop ? childNode.borderTop : child; - var childBottom = childNode.borderBottom ? childNode.borderBottom : child; - var thisWeight = childNode.borderTop ? weight : 2 * weight; - var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1; - g.setEdge(top, childTop, { - weight: thisWeight, - minlen, - nestingEdge: true - }); - g.setEdge(childBottom, bottom, { - weight: thisWeight, - minlen, - nestingEdge: true - }); - }); - if (!g.parent(v)) { - g.setEdge(root, top, { weight: 0, minlen: height + depths[v] }); - } -} -function treeDepths(g) { - var depths = {}; - function dfs3(v, depth) { - var children = g.children(v); - if (children && children.length) { - forEach_default(children, function(child) { - dfs3(child, depth + 1); - }); - } - depths[v] = depth; - } - forEach_default(g.children(), function(v) { - dfs3(v, 1); - }); - return depths; -} -function sumWeights(g) { - return reduce_default( - g.edges(), - function(acc, e) { - return acc + g.edge(e).weight; - }, - 0 - ); -} -function cleanup(g) { - var graphLabel = g.graph(); - g.removeNode(graphLabel.nestingRoot); - delete graphLabel.nestingRoot; - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - if (edge.nestingEdge) { - g.removeEdge(e); - } - }); -} - -// node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js -function addSubgraphConstraints(g, cg, vs) { - var prev = {}, rootPrev; - forEach_default(vs, function(v) { - var child = g.parent(v), parent2, prevChild; - while (child) { - parent2 = g.parent(child); - if (parent2) { - prevChild = prev[parent2]; - prev[parent2] = child; - } else { - prevChild = rootPrev; - rootPrev = child; - } - if (prevChild && prevChild !== child) { - cg.setEdge(prevChild, child); - return; - } - child = parent2; - } - }); -} - -// node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js -function buildLayerGraph(g, rank2, relationship) { - var root = createRootNode(g), result2 = new Graph({ compound: true }).setGraph({ root }).setDefaultNodeLabel(function(v) { - return g.node(v); - }); - forEach_default(g.nodes(), function(v) { - var node = g.node(v), parent2 = g.parent(v); - if (node.rank === rank2 || node.minRank <= rank2 && rank2 <= node.maxRank) { - result2.setNode(v); - result2.setParent(v, parent2 || root); - forEach_default(g[relationship](v), function(e) { - var u = e.v === v ? e.w : e.v, edge = result2.edge(u, v), weight = !isUndefined_default(edge) ? edge.weight : 0; - result2.setEdge(u, v, { weight: g.edge(e).weight + weight }); - }); - if (has_default(node, "minRank")) { - result2.setNode(v, { - borderLeft: node.borderLeft[rank2], - borderRight: node.borderRight[rank2] - }); - } - } - }); - return result2; -} -function createRootNode(g) { - var v; - while (g.hasNode(v = uniqueId_default("_root"))) - ; - return v; -} - -// node_modules/dagre-d3-es/src/dagre/order/cross-count.js -function crossCount(g, layering) { - var cc = 0; - for (var i = 1; i < layering.length; ++i) { - cc += twoLayerCrossCount(g, layering[i - 1], layering[i]); - } - return cc; -} -function twoLayerCrossCount(g, northLayer, southLayer) { - var southPos = zipObject_default( - southLayer, - map_default(southLayer, function(v, i) { - return i; - }) - ); - var southEntries = flatten_default( - map_default(northLayer, function(v) { - return sortBy_default( - map_default(g.outEdges(v), function(e) { - return { pos: southPos[e.w], weight: g.edge(e).weight }; - }), - "pos" - ); - }) - ); - var firstIndex = 1; - while (firstIndex < southLayer.length) - firstIndex <<= 1; - var treeSize = 2 * firstIndex - 1; - firstIndex -= 1; - var tree = map_default(new Array(treeSize), function() { - return 0; - }); - var cc = 0; - forEach_default( - // @ts-expect-error - southEntries.forEach(function(entry) { - var index = entry.pos + firstIndex; - tree[index] += entry.weight; - var weightSum = 0; - while (index > 0) { - if (index % 2) { - weightSum += tree[index + 1]; - } - index = index - 1 >> 1; - tree[index] += entry.weight; - } - cc += entry.weight * weightSum; - }) - ); - return cc; -} - -// node_modules/dagre-d3-es/src/dagre/order/init-order.js -function initOrder(g) { - var visited = {}; - var simpleNodes = filter_default(g.nodes(), function(v) { - return !g.children(v).length; - }); - var maxRank2 = max_default( - map_default(simpleNodes, function(v) { - return g.node(v).rank; - }) - ); - var layers = map_default(range_default(maxRank2 + 1), function() { - return []; - }); - function dfs3(v) { - if (has_default(visited, v)) - return; - visited[v] = true; - var node = g.node(v); - layers[node.rank].push(v); - forEach_default(g.successors(v), dfs3); - } - var orderedVs = sortBy_default(simpleNodes, function(v) { - return g.node(v).rank; - }); - forEach_default(orderedVs, dfs3); - return layers; -} - -// node_modules/dagre-d3-es/src/dagre/order/barycenter.js -function barycenter(g, movable) { - return map_default(movable, function(v) { - var inV = g.inEdges(v); - if (!inV.length) { - return { v }; - } else { - var result2 = reduce_default( - inV, - function(acc, e) { - var edge = g.edge(e), nodeU = g.node(e.v); - return { - sum: acc.sum + edge.weight * nodeU.order, - weight: acc.weight + edge.weight - }; - }, - { sum: 0, weight: 0 } - ); - return { - v, - barycenter: result2.sum / result2.weight, - weight: result2.weight - }; - } - }); -} - -// node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js -function resolveConflicts(entries, cg) { - var mappedEntries = {}; - forEach_default(entries, function(entry, i) { - var tmp = mappedEntries[entry.v] = { - indegree: 0, - in: [], - out: [], - vs: [entry.v], - i - }; - if (!isUndefined_default(entry.barycenter)) { - tmp.barycenter = entry.barycenter; - tmp.weight = entry.weight; - } - }); - forEach_default(cg.edges(), function(e) { - var entryV = mappedEntries[e.v]; - var entryW = mappedEntries[e.w]; - if (!isUndefined_default(entryV) && !isUndefined_default(entryW)) { - entryW.indegree++; - entryV.out.push(mappedEntries[e.w]); - } - }); - var sourceSet = filter_default(mappedEntries, function(entry) { - return !entry.indegree; - }); - return doResolveConflicts(sourceSet); -} -function doResolveConflicts(sourceSet) { - var entries = []; - function handleIn(vEntry) { - return function(uEntry) { - if (uEntry.merged) { - return; - } - if (isUndefined_default(uEntry.barycenter) || isUndefined_default(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) { - mergeEntries(vEntry, uEntry); - } - }; - } - function handleOut(vEntry) { - return function(wEntry) { - wEntry["in"].push(vEntry); - if (--wEntry.indegree === 0) { - sourceSet.push(wEntry); - } - }; - } - while (sourceSet.length) { - var entry = sourceSet.pop(); - entries.push(entry); - forEach_default(entry["in"].reverse(), handleIn(entry)); - forEach_default(entry.out, handleOut(entry)); - } - return map_default( - filter_default(entries, function(entry2) { - return !entry2.merged; - }), - function(entry2) { - return pick_default(entry2, ["vs", "i", "barycenter", "weight"]); - } - ); -} -function mergeEntries(target, source) { - var sum2 = 0; - var weight = 0; - if (target.weight) { - sum2 += target.barycenter * target.weight; - weight += target.weight; - } - if (source.weight) { - sum2 += source.barycenter * source.weight; - weight += source.weight; - } - target.vs = source.vs.concat(target.vs); - target.barycenter = sum2 / weight; - target.weight = weight; - target.i = Math.min(source.i, target.i); - source.merged = true; -} - -// node_modules/dagre-d3-es/src/dagre/order/sort.js -function sort(entries, biasRight) { - var parts = partition2(entries, function(entry) { - return has_default(entry, "barycenter"); - }); - var sortable = parts.lhs, unsortable = sortBy_default(parts.rhs, function(entry) { - return -entry.i; - }), vs = [], sum2 = 0, weight = 0, vsIndex = 0; - sortable.sort(compareWithBias(!!biasRight)); - vsIndex = consumeUnsortable(vs, unsortable, vsIndex); - forEach_default(sortable, function(entry) { - vsIndex += entry.vs.length; - vs.push(entry.vs); - sum2 += entry.barycenter * entry.weight; - weight += entry.weight; - vsIndex = consumeUnsortable(vs, unsortable, vsIndex); - }); - var result2 = { vs: flatten_default(vs) }; - if (weight) { - result2.barycenter = sum2 / weight; - result2.weight = weight; - } - return result2; -} -function consumeUnsortable(vs, unsortable, index) { - var last2; - while (unsortable.length && (last2 = last_default(unsortable)).i <= index) { - unsortable.pop(); - vs.push(last2.vs); - index++; - } - return index; -} -function compareWithBias(bias) { - return function(entryV, entryW) { - if (entryV.barycenter < entryW.barycenter) { - return -1; - } else if (entryV.barycenter > entryW.barycenter) { - return 1; - } - return !bias ? entryV.i - entryW.i : entryW.i - entryV.i; - }; -} - -// node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js -function sortSubgraph(g, v, cg, biasRight) { - var movable = g.children(v); - var node = g.node(v); - var bl = node ? node.borderLeft : void 0; - var br = node ? node.borderRight : void 0; - var subgraphs = {}; - if (bl) { - movable = filter_default(movable, function(w) { - return w !== bl && w !== br; - }); - } - var barycenters = barycenter(g, movable); - forEach_default(barycenters, function(entry) { - if (g.children(entry.v).length) { - var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight); - subgraphs[entry.v] = subgraphResult; - if (has_default(subgraphResult, "barycenter")) { - mergeBarycenters(entry, subgraphResult); - } - } - }); - var entries = resolveConflicts(barycenters, cg); - expandSubgraphs(entries, subgraphs); - var result2 = sort(entries, biasRight); - if (bl) { - result2.vs = flatten_default([bl, result2.vs, br]); - if (g.predecessors(bl).length) { - var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]); - if (!has_default(result2, "barycenter")) { - result2.barycenter = 0; - result2.weight = 0; - } - result2.barycenter = (result2.barycenter * result2.weight + blPred.order + brPred.order) / (result2.weight + 2); - result2.weight += 2; - } - } - return result2; -} -function expandSubgraphs(entries, subgraphs) { - forEach_default(entries, function(entry) { - entry.vs = flatten_default( - entry.vs.map(function(v) { - if (subgraphs[v]) { - return subgraphs[v].vs; - } - return v; - }) - ); - }); -} -function mergeBarycenters(target, other) { - if (!isUndefined_default(target.barycenter)) { - target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight); - target.weight += other.weight; - } else { - target.barycenter = other.barycenter; - target.weight = other.weight; - } -} - -// node_modules/dagre-d3-es/src/dagre/order/index.js -function order(g) { - var maxRank2 = maxRank(g), downLayerGraphs = buildLayerGraphs(g, range_default(1, maxRank2 + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, range_default(maxRank2 - 1, -1, -1), "outEdges"); - var layering = initOrder(g); - assignOrder(g, layering); - var bestCC = Number.POSITIVE_INFINITY, best; - for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) { - sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2); - layering = buildLayerMatrix(g); - var cc = crossCount(g, layering); - if (cc < bestCC) { - lastBest = 0; - best = cloneDeep_default(layering); - bestCC = cc; - } - } - assignOrder(g, best); -} -function buildLayerGraphs(g, ranks, relationship) { - return map_default(ranks, function(rank2) { - return buildLayerGraph(g, rank2, relationship); - }); -} -function sweepLayerGraphs(layerGraphs, biasRight) { - var cg = new Graph(); - forEach_default(layerGraphs, function(lg) { - var root = lg.graph().root; - var sorted = sortSubgraph(lg, root, cg, biasRight); - forEach_default(sorted.vs, function(v, i) { - lg.node(v).order = i; - }); - addSubgraphConstraints(lg, cg, sorted.vs); - }); -} -function assignOrder(g, layering) { - forEach_default(layering, function(layer) { - forEach_default(layer, function(v, i) { - g.node(v).order = i; - }); - }); -} - -// node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js -function parentDummyChains(g) { - var postorderNums = postorder2(g); - forEach_default(g.graph().dummyChains, function(v) { - var node = g.node(v); - var edgeObj = node.edgeObj; - var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w); - var path = pathData.path; - var lca = pathData.lca; - var pathIdx = 0; - var pathV = path[pathIdx]; - var ascending = true; - while (v !== edgeObj.w) { - node = g.node(v); - if (ascending) { - while ((pathV = path[pathIdx]) !== lca && g.node(pathV).maxRank < node.rank) { - pathIdx++; - } - if (pathV === lca) { - ascending = false; - } - } - if (!ascending) { - while (pathIdx < path.length - 1 && g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) { - pathIdx++; - } - pathV = path[pathIdx]; - } - g.setParent(v, pathV); - v = g.successors(v)[0]; - } - }); -} -function findPath(g, postorderNums, v, w) { - var vPath = []; - var wPath = []; - var low = Math.min(postorderNums[v].low, postorderNums[w].low); - var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim); - var parent2; - var lca; - parent2 = v; - do { - parent2 = g.parent(parent2); - vPath.push(parent2); - } while (parent2 && (postorderNums[parent2].low > low || lim > postorderNums[parent2].lim)); - lca = parent2; - parent2 = w; - while ((parent2 = g.parent(parent2)) !== lca) { - wPath.push(parent2); - } - return { path: vPath.concat(wPath.reverse()), lca }; -} -function postorder2(g) { - var result2 = {}; - var lim = 0; - function dfs3(v) { - var low = lim; - forEach_default(g.children(v), dfs3); - result2[v] = { low, lim: lim++ }; - } - forEach_default(g.children(), dfs3); - return result2; -} - -// node_modules/dagre-d3-es/src/dagre/position/bk.js -function findType1Conflicts(g, layering) { - var conflicts = {}; - function visitLayer(prevLayer, layer) { - var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = last_default(layer); - forEach_default(layer, function(v, i) { - var w = findOtherInnerSegmentNode(g, v), k1 = w ? g.node(w).order : prevLayerLength; - if (w || v === lastNode) { - forEach_default(layer.slice(scanPos, i + 1), function(scanNode) { - forEach_default(g.predecessors(scanNode), function(u) { - var uLabel = g.node(u), uPos = uLabel.order; - if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) { - addConflict(conflicts, u, scanNode); - } - }); - }); - scanPos = i + 1; - k0 = k1; - } - }); - return layer; - } - reduce_default(layering, visitLayer); - return conflicts; -} -function findType2Conflicts(g, layering) { - var conflicts = {}; - function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) { - var v; - forEach_default(range_default(southPos, southEnd), function(i) { - v = south[i]; - if (g.node(v).dummy) { - forEach_default(g.predecessors(v), function(u) { - var uNode = g.node(u); - if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) { - addConflict(conflicts, u, v); - } - }); - } - }); - } - function visitLayer(north, south) { - var prevNorthPos = -1, nextNorthPos, southPos = 0; - forEach_default(south, function(v, southLookahead) { - if (g.node(v).dummy === "border") { - var predecessors = g.predecessors(v); - if (predecessors.length) { - nextNorthPos = g.node(predecessors[0]).order; - scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos); - southPos = southLookahead; - prevNorthPos = nextNorthPos; - } - } - scan(south, southPos, south.length, nextNorthPos, north.length); - }); - return south; - } - reduce_default(layering, visitLayer); - return conflicts; -} -function findOtherInnerSegmentNode(g, v) { - if (g.node(v).dummy) { - return find_default(g.predecessors(v), function(u) { - return g.node(u).dummy; - }); - } -} -function addConflict(conflicts, v, w) { - if (v > w) { - var tmp = v; - v = w; - w = tmp; - } - var conflictsV = conflicts[v]; - if (!conflictsV) { - conflicts[v] = conflictsV = {}; - } - conflictsV[w] = true; -} -function hasConflict(conflicts, v, w) { - if (v > w) { - var tmp = v; - v = w; - w = tmp; - } - return has_default(conflicts[v], w); -} -function verticalAlignment(g, layering, conflicts, neighborFn) { - var root = {}, align = {}, pos = {}; - forEach_default(layering, function(layer) { - forEach_default(layer, function(v, order2) { - root[v] = v; - align[v] = v; - pos[v] = order2; - }); - }); - forEach_default(layering, function(layer) { - var prevIdx = -1; - forEach_default(layer, function(v) { - var ws = neighborFn(v); - if (ws.length) { - ws = sortBy_default(ws, function(w2) { - return pos[w2]; - }); - var mp = (ws.length - 1) / 2; - for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) { - var w = ws[i]; - if (align[v] === v && prevIdx < pos[w] && !hasConflict(conflicts, v, w)) { - align[w] = v; - align[v] = root[v] = root[w]; - prevIdx = pos[w]; - } - } - } - }); - }); - return { root, align }; -} -function horizontalCompaction(g, layering, root, align, reverseSep) { - var xs = {}, blockG = buildBlockGraph(g, layering, root, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight"; - function iterate(setXsFunc, nextNodesFunc) { - var stack = blockG.nodes(); - var elem = stack.pop(); - var visited = {}; - while (elem) { - if (visited[elem]) { - setXsFunc(elem); - } else { - visited[elem] = true; - stack.push(elem); - stack = stack.concat(nextNodesFunc(elem)); - } - elem = stack.pop(); - } - } - function pass1(elem) { - xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) { - return Math.max(acc, xs[e.v] + blockG.edge(e)); - }, 0); - } - function pass2(elem) { - var min2 = blockG.outEdges(elem).reduce(function(acc, e) { - return Math.min(acc, xs[e.w] - blockG.edge(e)); - }, Number.POSITIVE_INFINITY); - var node = g.node(elem); - if (min2 !== Number.POSITIVE_INFINITY && node.borderType !== borderType) { - xs[elem] = Math.max(xs[elem], min2); - } - } - iterate(pass1, blockG.predecessors.bind(blockG)); - iterate(pass2, blockG.successors.bind(blockG)); - forEach_default(align, function(v) { - xs[v] = xs[root[v]]; - }); - return xs; -} -function buildBlockGraph(g, layering, root, reverseSep) { - var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep); - forEach_default(layering, function(layer) { - var u; - forEach_default(layer, function(v) { - var vRoot = root[v]; - blockGraph.setNode(vRoot); - if (u) { - var uRoot = root[u], prevMax = blockGraph.edge(uRoot, vRoot); - blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0)); - } - u = v; - }); - }); - return blockGraph; -} -function findSmallestWidthAlignment(g, xss) { - return minBy_default(values_default(xss), function(xs) { - var max2 = Number.NEGATIVE_INFINITY; - var min2 = Number.POSITIVE_INFINITY; - forIn_default(xs, function(x, v) { - var halfWidth = width(g, v) / 2; - max2 = Math.max(x + halfWidth, max2); - min2 = Math.min(x - halfWidth, min2); - }); - return max2 - min2; - }); -} -function alignCoordinates(xss, alignTo) { - var alignToVals = values_default(alignTo), alignToMin = min_default(alignToVals), alignToMax = max_default(alignToVals); - forEach_default(["u", "d"], function(vert) { - forEach_default(["l", "r"], function(horiz) { - var alignment = vert + horiz, xs = xss[alignment], delta; - if (xs === alignTo) - return; - var xsVals = values_default(xs); - delta = horiz === "l" ? alignToMin - min_default(xsVals) : alignToMax - max_default(xsVals); - if (delta) { - xss[alignment] = mapValues_default(xs, function(x) { - return x + delta; - }); - } - }); - }); -} -function balance(xss, align) { - return mapValues_default(xss.ul, function(ignore, v) { - if (align) { - return xss[align.toLowerCase()][v]; - } else { - var xs = sortBy_default(map_default(xss, v)); - return (xs[1] + xs[2]) / 2; - } - }); -} -function positionX(g) { - var layering = buildLayerMatrix(g); - var conflicts = merge_default(findType1Conflicts(g, layering), findType2Conflicts(g, layering)); - var xss = {}; - var adjustedLayering; - forEach_default(["u", "d"], function(vert) { - adjustedLayering = vert === "u" ? layering : values_default(layering).reverse(); - forEach_default(["l", "r"], function(horiz) { - if (horiz === "r") { - adjustedLayering = map_default(adjustedLayering, function(inner) { - return values_default(inner).reverse(); - }); - } - var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g); - var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn); - var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === "r"); - if (horiz === "r") { - xs = mapValues_default(xs, function(x) { - return -x; - }); - } - xss[vert + horiz] = xs; - }); - }); - var smallestWidth = findSmallestWidthAlignment(g, xss); - alignCoordinates(xss, smallestWidth); - return balance(xss, g.graph().align); -} -function sep(nodeSep, edgeSep, reverseSep) { - return function(g, v, w) { - var vLabel = g.node(v); - var wLabel = g.node(w); - var sum2 = 0; - var delta; - sum2 += vLabel.width / 2; - if (has_default(vLabel, "labelpos")) { - switch (vLabel.labelpos.toLowerCase()) { - case "l": - delta = -vLabel.width / 2; - break; - case "r": - delta = vLabel.width / 2; - break; - } - } - if (delta) { - sum2 += reverseSep ? delta : -delta; - } - delta = 0; - sum2 += (vLabel.dummy ? edgeSep : nodeSep) / 2; - sum2 += (wLabel.dummy ? edgeSep : nodeSep) / 2; - sum2 += wLabel.width / 2; - if (has_default(wLabel, "labelpos")) { - switch (wLabel.labelpos.toLowerCase()) { - case "l": - delta = wLabel.width / 2; - break; - case "r": - delta = -wLabel.width / 2; - break; - } - } - if (delta) { - sum2 += reverseSep ? delta : -delta; - } - delta = 0; - return sum2; - }; -} -function width(g, v) { - return g.node(v).width; -} - -// node_modules/dagre-d3-es/src/dagre/position/index.js -function position(g) { - g = asNonCompoundGraph(g); - positionY(g); - forOwn_default(positionX(g), function(x, v) { - g.node(v).x = x; - }); -} -function positionY(g) { - var layering = buildLayerMatrix(g); - var rankSep = g.graph().ranksep; - var prevY = 0; - forEach_default(layering, function(layer) { - var maxHeight = max_default( - map_default(layer, function(v) { - return g.node(v).height; - }) - ); - forEach_default(layer, function(v) { - g.node(v).y = prevY + maxHeight / 2; - }); - prevY += maxHeight + rankSep; - }); -} - -// node_modules/dagre-d3-es/src/dagre/layout.js -function layout(g, opts) { - var time2 = opts && opts.debugTiming ? time : notime; - time2("layout", function() { - var layoutGraph = time2(" buildLayoutGraph", function() { - return buildLayoutGraph(g); - }); - time2(" runLayout", function() { - runLayout(layoutGraph, time2); - }); - time2(" updateInputGraph", function() { - updateInputGraph(g, layoutGraph); - }); - }); -} -function runLayout(g, time2) { - time2(" makeSpaceForEdgeLabels", function() { - makeSpaceForEdgeLabels(g); - }); - time2(" removeSelfEdges", function() { - removeSelfEdges(g); - }); - time2(" acyclic", function() { - run(g); - }); - time2(" nestingGraph.run", function() { - run3(g); - }); - time2(" rank", function() { - rank(asNonCompoundGraph(g)); - }); - time2(" injectEdgeLabelProxies", function() { - injectEdgeLabelProxies(g); - }); - time2(" removeEmptyRanks", function() { - removeEmptyRanks(g); - }); - time2(" nestingGraph.cleanup", function() { - cleanup(g); - }); - time2(" normalizeRanks", function() { - normalizeRanks(g); - }); - time2(" assignRankMinMax", function() { - assignRankMinMax(g); - }); - time2(" removeEdgeLabelProxies", function() { - removeEdgeLabelProxies(g); - }); - time2(" normalize.run", function() { - run2(g); - }); - time2(" parentDummyChains", function() { - parentDummyChains(g); - }); - time2(" addBorderSegments", function() { - addBorderSegments(g); - }); - time2(" order", function() { - order(g); - }); - time2(" insertSelfEdges", function() { - insertSelfEdges(g); - }); - time2(" adjustCoordinateSystem", function() { - adjust(g); - }); - time2(" position", function() { - position(g); - }); - time2(" positionSelfEdges", function() { - positionSelfEdges(g); - }); - time2(" removeBorderNodes", function() { - removeBorderNodes(g); - }); - time2(" normalize.undo", function() { - undo3(g); - }); - time2(" fixupEdgeLabelCoords", function() { - fixupEdgeLabelCoords(g); - }); - time2(" undoCoordinateSystem", function() { - undo(g); - }); - time2(" translateGraph", function() { - translateGraph(g); - }); - time2(" assignNodeIntersects", function() { - assignNodeIntersects(g); - }); - time2(" reversePoints", function() { - reversePointsForReversedEdges(g); - }); - time2(" acyclic.undo", function() { - undo2(g); - }); -} -function updateInputGraph(inputGraph, layoutGraph) { - forEach_default(inputGraph.nodes(), function(v) { - var inputLabel = inputGraph.node(v); - var layoutLabel = layoutGraph.node(v); - if (inputLabel) { - inputLabel.x = layoutLabel.x; - inputLabel.y = layoutLabel.y; - if (layoutGraph.children(v).length) { - inputLabel.width = layoutLabel.width; - inputLabel.height = layoutLabel.height; - } - } - }); - forEach_default(inputGraph.edges(), function(e) { - var inputLabel = inputGraph.edge(e); - var layoutLabel = layoutGraph.edge(e); - inputLabel.points = layoutLabel.points; - if (has_default(layoutLabel, "x")) { - inputLabel.x = layoutLabel.x; - inputLabel.y = layoutLabel.y; - } - }); - inputGraph.graph().width = layoutGraph.graph().width; - inputGraph.graph().height = layoutGraph.graph().height; -} -var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"]; -var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" }; -var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"]; -var nodeNumAttrs = ["width", "height"]; -var nodeDefaults = { width: 0, height: 0 }; -var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"]; -var edgeDefaults = { - minlen: 1, - weight: 1, - width: 0, - height: 0, - labeloffset: 10, - labelpos: "r" -}; -var edgeAttrs = ["labelpos"]; -function buildLayoutGraph(inputGraph) { - var g = new Graph({ multigraph: true, compound: true }); - var graph = canonicalize(inputGraph.graph()); - g.setGraph( - merge_default({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pick_default(graph, graphAttrs)) - ); - forEach_default(inputGraph.nodes(), function(v) { - var node = canonicalize(inputGraph.node(v)); - g.setNode(v, defaults_default(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults)); - g.setParent(v, inputGraph.parent(v)); - }); - forEach_default(inputGraph.edges(), function(e) { - var edge = canonicalize(inputGraph.edge(e)); - g.setEdge( - e, - merge_default({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), pick_default(edge, edgeAttrs)) - ); - }); - return g; -} -function makeSpaceForEdgeLabels(g) { - var graph = g.graph(); - graph.ranksep /= 2; - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - edge.minlen *= 2; - if (edge.labelpos.toLowerCase() !== "c") { - if (graph.rankdir === "TB" || graph.rankdir === "BT") { - edge.width += edge.labeloffset; - } else { - edge.height += edge.labeloffset; - } - } - }); -} -function injectEdgeLabelProxies(g) { - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - if (edge.width && edge.height) { - var v = g.node(e.v); - var w = g.node(e.w); - var label = { rank: (w.rank - v.rank) / 2 + v.rank, e }; - addDummyNode(g, "edge-proxy", label, "_ep"); - } - }); -} -function assignRankMinMax(g) { - var maxRank2 = 0; - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - if (node.borderTop) { - node.minRank = g.node(node.borderTop).rank; - node.maxRank = g.node(node.borderBottom).rank; - maxRank2 = max_default(maxRank2, node.maxRank); - } - }); - g.graph().maxRank = maxRank2; -} -function removeEdgeLabelProxies(g) { - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - if (node.dummy === "edge-proxy") { - g.edge(node.e).labelRank = node.rank; - g.removeNode(v); - } - }); -} -function translateGraph(g) { - var minX = Number.POSITIVE_INFINITY; - var maxX = 0; - var minY = Number.POSITIVE_INFINITY; - var maxY = 0; - var graphLabel = g.graph(); - var marginX = graphLabel.marginx || 0; - var marginY = graphLabel.marginy || 0; - function getExtremes(attrs) { - var x = attrs.x; - var y = attrs.y; - var w = attrs.width; - var h = attrs.height; - minX = Math.min(minX, x - w / 2); - maxX = Math.max(maxX, x + w / 2); - minY = Math.min(minY, y - h / 2); - maxY = Math.max(maxY, y + h / 2); - } - forEach_default(g.nodes(), function(v) { - getExtremes(g.node(v)); - }); - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - if (has_default(edge, "x")) { - getExtremes(edge); - } - }); - minX -= marginX; - minY -= marginY; - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - node.x -= minX; - node.y -= minY; - }); - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - forEach_default(edge.points, function(p) { - p.x -= minX; - p.y -= minY; - }); - if (has_default(edge, "x")) { - edge.x -= minX; - } - if (has_default(edge, "y")) { - edge.y -= minY; - } - }); - graphLabel.width = maxX - minX + marginX; - graphLabel.height = maxY - minY + marginY; -} -function assignNodeIntersects(g) { - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - var nodeV = g.node(e.v); - var nodeW = g.node(e.w); - var p1, p2; - if (!edge.points) { - edge.points = []; - p1 = nodeW; - p2 = nodeV; - } else { - p1 = edge.points[0]; - p2 = edge.points[edge.points.length - 1]; - } - edge.points.unshift(intersectRect(nodeV, p1)); - edge.points.push(intersectRect(nodeW, p2)); - }); -} -function fixupEdgeLabelCoords(g) { - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - if (has_default(edge, "x")) { - if (edge.labelpos === "l" || edge.labelpos === "r") { - edge.width -= edge.labeloffset; - } - switch (edge.labelpos) { - case "l": - edge.x -= edge.width / 2 + edge.labeloffset; - break; - case "r": - edge.x += edge.width / 2 + edge.labeloffset; - break; - } - } - }); -} -function reversePointsForReversedEdges(g) { - forEach_default(g.edges(), function(e) { - var edge = g.edge(e); - if (edge.reversed) { - edge.points.reverse(); - } - }); -} -function removeBorderNodes(g) { - forEach_default(g.nodes(), function(v) { - if (g.children(v).length) { - var node = g.node(v); - var t = g.node(node.borderTop); - var b = g.node(node.borderBottom); - var l = g.node(last_default(node.borderLeft)); - var r = g.node(last_default(node.borderRight)); - node.width = Math.abs(r.x - l.x); - node.height = Math.abs(b.y - t.y); - node.x = l.x + node.width / 2; - node.y = t.y + node.height / 2; - } - }); - forEach_default(g.nodes(), function(v) { - if (g.node(v).dummy === "border") { - g.removeNode(v); - } - }); -} -function removeSelfEdges(g) { - forEach_default(g.edges(), function(e) { - if (e.v === e.w) { - var node = g.node(e.v); - if (!node.selfEdges) { - node.selfEdges = []; - } - node.selfEdges.push({ e, label: g.edge(e) }); - g.removeEdge(e); - } - }); -} -function insertSelfEdges(g) { - var layers = buildLayerMatrix(g); - forEach_default(layers, function(layer) { - var orderShift = 0; - forEach_default(layer, function(v, i) { - var node = g.node(v); - node.order = i + orderShift; - forEach_default(node.selfEdges, function(selfEdge) { - addDummyNode( - g, - "selfedge", - { - width: selfEdge.label.width, - height: selfEdge.label.height, - rank: node.rank, - order: i + ++orderShift, - e: selfEdge.e, - label: selfEdge.label - }, - "_se" - ); - }); - delete node.selfEdges; - }); - }); -} -function positionSelfEdges(g) { - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - if (node.dummy === "selfedge") { - var selfNode = g.node(node.e.v); - var x = selfNode.x + selfNode.width / 2; - var y = selfNode.y; - var dx = node.x - x; - var dy = selfNode.height / 2; - g.setEdge(node.e, node.label); - g.removeNode(v); - node.label.points = [ - { x: x + 2 * dx / 3, y: y - dy }, - { x: x + 5 * dx / 6, y: y - dy }, - { x: x + dx, y }, - { x: x + 5 * dx / 6, y: y + dy }, - { x: x + 2 * dx / 3, y: y + dy } - ]; - node.label.x = node.x; - node.label.y = node.y; - } - }); -} -function selectNumberAttrs(obj, attrs) { - return mapValues_default(pick_default(obj, attrs), Number); -} -function canonicalize(attrs) { - var newAttrs = {}; - forEach_default(attrs, function(v, k) { - newAttrs[k.toLowerCase()] = v; - }); - return newAttrs; -} - -export { - clone_default, - defaults_default, - forEach_default, - map_default, - has_default, - isUndefined_default, - pick_default, - range_default, - uniqueId_default, - Graph, - layout -}; -/*! Bundled license information: - -lodash-es/lodash.default.js: - (** - * @license - * Lodash (Custom Build) - * Build: `lodash modularize exports="es" -o ./` - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - *) - -lodash-es/lodash.js: - (** - * @license - * Lodash (Custom Build) - * Build: `lodash modularize exports="es" -o ./` - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - *) -*/ -//# sourceMappingURL=chunk-C55JCHDM.js.map diff --git a/.vuepress/.cache/deps/chunk-C55JCHDM.js.map b/.vuepress/.cache/deps/chunk-C55JCHDM.js.map deleted file mode 100644 index d4cbd6b4e..000000000 --- a/.vuepress/.cache/deps/chunk-C55JCHDM.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/lodash-es/isSymbol.js", "../../../../node_modules/lodash-es/_baseToNumber.js", "../../../../node_modules/lodash-es/_arrayMap.js", "../../../../node_modules/lodash-es/_baseToString.js", "../../../../node_modules/lodash-es/_createMathOperation.js", "../../../../node_modules/lodash-es/add.js", "../../../../node_modules/lodash-es/_trimmedEndIndex.js", "../../../../node_modules/lodash-es/_baseTrim.js", "../../../../node_modules/lodash-es/toNumber.js", "../../../../node_modules/lodash-es/toFinite.js", "../../../../node_modules/lodash-es/toInteger.js", "../../../../node_modules/lodash-es/after.js", "../../../../node_modules/lodash-es/_metaMap.js", "../../../../node_modules/lodash-es/_baseSetData.js", "../../../../node_modules/lodash-es/_createCtor.js", "../../../../node_modules/lodash-es/_createBind.js", "../../../../node_modules/lodash-es/_composeArgs.js", "../../../../node_modules/lodash-es/_composeArgsRight.js", "../../../../node_modules/lodash-es/_countHolders.js", "../../../../node_modules/lodash-es/_baseLodash.js", "../../../../node_modules/lodash-es/_LazyWrapper.js", "../../../../node_modules/lodash-es/noop.js", "../../../../node_modules/lodash-es/_getData.js", "../../../../node_modules/lodash-es/_realNames.js", "../../../../node_modules/lodash-es/_getFuncName.js", "../../../../node_modules/lodash-es/_LodashWrapper.js", "../../../../node_modules/lodash-es/_wrapperClone.js", "../../../../node_modules/lodash-es/wrapperLodash.js", "../../../../node_modules/lodash-es/_isLaziable.js", "../../../../node_modules/lodash-es/_setData.js", "../../../../node_modules/lodash-es/_getWrapDetails.js", "../../../../node_modules/lodash-es/_insertWrapDetails.js", "../../../../node_modules/lodash-es/_arrayEach.js", "../../../../node_modules/lodash-es/_baseFindIndex.js", "../../../../node_modules/lodash-es/_baseIsNaN.js", "../../../../node_modules/lodash-es/_strictIndexOf.js", "../../../../node_modules/lodash-es/_baseIndexOf.js", "../../../../node_modules/lodash-es/_arrayIncludes.js", "../../../../node_modules/lodash-es/_updateWrapDetails.js", "../../../../node_modules/lodash-es/_setWrapToString.js", "../../../../node_modules/lodash-es/_createRecurry.js", "../../../../node_modules/lodash-es/_getHolder.js", "../../../../node_modules/lodash-es/_reorder.js", "../../../../node_modules/lodash-es/_replaceHolders.js", "../../../../node_modules/lodash-es/_createHybrid.js", "../../../../node_modules/lodash-es/_createCurry.js", "../../../../node_modules/lodash-es/_createPartial.js", "../../../../node_modules/lodash-es/_mergeData.js", "../../../../node_modules/lodash-es/_createWrap.js", "../../../../node_modules/lodash-es/ary.js", "../../../../node_modules/lodash-es/keys.js", "../../../../node_modules/lodash-es/assign.js", "../../../../node_modules/lodash-es/assignIn.js", "../../../../node_modules/lodash-es/assignInWith.js", "../../../../node_modules/lodash-es/assignWith.js", "../../../../node_modules/lodash-es/_isKey.js", "../../../../node_modules/lodash-es/_memoizeCapped.js", "../../../../node_modules/lodash-es/_stringToPath.js", "../../../../node_modules/lodash-es/toString.js", "../../../../node_modules/lodash-es/_castPath.js", "../../../../node_modules/lodash-es/_toKey.js", "../../../../node_modules/lodash-es/_baseGet.js", "../../../../node_modules/lodash-es/get.js", "../../../../node_modules/lodash-es/_baseAt.js", "../../../../node_modules/lodash-es/_arrayPush.js", "../../../../node_modules/lodash-es/_isFlattenable.js", "../../../../node_modules/lodash-es/_baseFlatten.js", "../../../../node_modules/lodash-es/flatten.js", "../../../../node_modules/lodash-es/_flatRest.js", "../../../../node_modules/lodash-es/at.js", "../../../../node_modules/lodash-es/isError.js", "../../../../node_modules/lodash-es/attempt.js", "../../../../node_modules/lodash-es/before.js", "../../../../node_modules/lodash-es/bind.js", "../../../../node_modules/lodash-es/bindAll.js", "../../../../node_modules/lodash-es/bindKey.js", "../../../../node_modules/lodash-es/_baseSlice.js", "../../../../node_modules/lodash-es/_castSlice.js", "../../../../node_modules/lodash-es/_hasUnicode.js", "../../../../node_modules/lodash-es/_asciiToArray.js", "../../../../node_modules/lodash-es/_unicodeToArray.js", "../../../../node_modules/lodash-es/_stringToArray.js", "../../../../node_modules/lodash-es/_createCaseFirst.js", "../../../../node_modules/lodash-es/upperFirst.js", "../../../../node_modules/lodash-es/capitalize.js", "../../../../node_modules/lodash-es/_arrayReduce.js", "../../../../node_modules/lodash-es/_basePropertyOf.js", "../../../../node_modules/lodash-es/_deburrLetter.js", "../../../../node_modules/lodash-es/deburr.js", "../../../../node_modules/lodash-es/_asciiWords.js", "../../../../node_modules/lodash-es/_hasUnicodeWord.js", "../../../../node_modules/lodash-es/_unicodeWords.js", "../../../../node_modules/lodash-es/words.js", "../../../../node_modules/lodash-es/_createCompounder.js", "../../../../node_modules/lodash-es/camelCase.js", "../../../../node_modules/lodash-es/castArray.js", "../../../../node_modules/lodash-es/_createRound.js", "../../../../node_modules/lodash-es/ceil.js", "../../../../node_modules/lodash-es/chain.js", "../../../../node_modules/lodash-es/chunk.js", "../../../../node_modules/lodash-es/_baseClamp.js", "../../../../node_modules/lodash-es/clamp.js", "../../../../node_modules/lodash-es/_baseAssign.js", "../../../../node_modules/lodash-es/_baseAssignIn.js", "../../../../node_modules/lodash-es/_arrayFilter.js", "../../../../node_modules/lodash-es/stubArray.js", "../../../../node_modules/lodash-es/_getSymbols.js", "../../../../node_modules/lodash-es/_copySymbols.js", "../../../../node_modules/lodash-es/_getSymbolsIn.js", "../../../../node_modules/lodash-es/_copySymbolsIn.js", "../../../../node_modules/lodash-es/_baseGetAllKeys.js", "../../../../node_modules/lodash-es/_getAllKeys.js", "../../../../node_modules/lodash-es/_getAllKeysIn.js", "../../../../node_modules/lodash-es/_initCloneArray.js", "../../../../node_modules/lodash-es/_cloneDataView.js", "../../../../node_modules/lodash-es/_cloneRegExp.js", "../../../../node_modules/lodash-es/_cloneSymbol.js", "../../../../node_modules/lodash-es/_initCloneByTag.js", "../../../../node_modules/lodash-es/_baseIsMap.js", "../../../../node_modules/lodash-es/isMap.js", "../../../../node_modules/lodash-es/_baseIsSet.js", "../../../../node_modules/lodash-es/isSet.js", "../../../../node_modules/lodash-es/_baseClone.js", "../../../../node_modules/lodash-es/clone.js", "../../../../node_modules/lodash-es/cloneDeep.js", "../../../../node_modules/lodash-es/cloneDeepWith.js", "../../../../node_modules/lodash-es/cloneWith.js", "../../../../node_modules/lodash-es/commit.js", "../../../../node_modules/lodash-es/compact.js", "../../../../node_modules/lodash-es/concat.js", "../../../../node_modules/lodash-es/_setCacheAdd.js", "../../../../node_modules/lodash-es/_setCacheHas.js", "../../../../node_modules/lodash-es/_SetCache.js", "../../../../node_modules/lodash-es/_arraySome.js", "../../../../node_modules/lodash-es/_cacheHas.js", "../../../../node_modules/lodash-es/_equalArrays.js", "../../../../node_modules/lodash-es/_mapToArray.js", "../../../../node_modules/lodash-es/_setToArray.js", "../../../../node_modules/lodash-es/_equalByTag.js", "../../../../node_modules/lodash-es/_equalObjects.js", "../../../../node_modules/lodash-es/_baseIsEqualDeep.js", "../../../../node_modules/lodash-es/_baseIsEqual.js", "../../../../node_modules/lodash-es/_baseIsMatch.js", "../../../../node_modules/lodash-es/_isStrictComparable.js", "../../../../node_modules/lodash-es/_getMatchData.js", "../../../../node_modules/lodash-es/_matchesStrictComparable.js", "../../../../node_modules/lodash-es/_baseMatches.js", "../../../../node_modules/lodash-es/_baseHasIn.js", "../../../../node_modules/lodash-es/_hasPath.js", "../../../../node_modules/lodash-es/hasIn.js", "../../../../node_modules/lodash-es/_baseMatchesProperty.js", "../../../../node_modules/lodash-es/_baseProperty.js", "../../../../node_modules/lodash-es/_basePropertyDeep.js", "../../../../node_modules/lodash-es/property.js", "../../../../node_modules/lodash-es/_baseIteratee.js", "../../../../node_modules/lodash-es/cond.js", "../../../../node_modules/lodash-es/_baseConformsTo.js", "../../../../node_modules/lodash-es/_baseConforms.js", "../../../../node_modules/lodash-es/conforms.js", "../../../../node_modules/lodash-es/conformsTo.js", "../../../../node_modules/lodash-es/_arrayAggregator.js", "../../../../node_modules/lodash-es/_baseForOwn.js", "../../../../node_modules/lodash-es/_createBaseEach.js", "../../../../node_modules/lodash-es/_baseEach.js", "../../../../node_modules/lodash-es/_baseAggregator.js", "../../../../node_modules/lodash-es/_createAggregator.js", "../../../../node_modules/lodash-es/countBy.js", "../../../../node_modules/lodash-es/create.js", "../../../../node_modules/lodash-es/curry.js", "../../../../node_modules/lodash-es/curryRight.js", "../../../../node_modules/lodash-es/now.js", "../../../../node_modules/lodash-es/debounce.js", "../../../../node_modules/lodash-es/defaultTo.js", "../../../../node_modules/lodash-es/defaults.js", "../../../../node_modules/lodash-es/_customDefaultsMerge.js", "../../../../node_modules/lodash-es/mergeWith.js", "../../../../node_modules/lodash-es/defaultsDeep.js", "../../../../node_modules/lodash-es/_baseDelay.js", "../../../../node_modules/lodash-es/defer.js", "../../../../node_modules/lodash-es/delay.js", "../../../../node_modules/lodash-es/_arrayIncludesWith.js", "../../../../node_modules/lodash-es/_baseDifference.js", "../../../../node_modules/lodash-es/difference.js", "../../../../node_modules/lodash-es/last.js", "../../../../node_modules/lodash-es/differenceBy.js", "../../../../node_modules/lodash-es/differenceWith.js", "../../../../node_modules/lodash-es/divide.js", "../../../../node_modules/lodash-es/drop.js", "../../../../node_modules/lodash-es/dropRight.js", "../../../../node_modules/lodash-es/_baseWhile.js", "../../../../node_modules/lodash-es/dropRightWhile.js", "../../../../node_modules/lodash-es/dropWhile.js", "../../../../node_modules/lodash-es/_castFunction.js", "../../../../node_modules/lodash-es/forEach.js", "../../../../node_modules/lodash-es/_arrayEachRight.js", "../../../../node_modules/lodash-es/_baseForRight.js", "../../../../node_modules/lodash-es/_baseForOwnRight.js", "../../../../node_modules/lodash-es/_baseEachRight.js", "../../../../node_modules/lodash-es/forEachRight.js", "../../../../node_modules/lodash-es/endsWith.js", "../../../../node_modules/lodash-es/_baseToPairs.js", "../../../../node_modules/lodash-es/_setToPairs.js", "../../../../node_modules/lodash-es/_createToPairs.js", "../../../../node_modules/lodash-es/toPairs.js", "../../../../node_modules/lodash-es/toPairsIn.js", "../../../../node_modules/lodash-es/_escapeHtmlChar.js", "../../../../node_modules/lodash-es/escape.js", "../../../../node_modules/lodash-es/escapeRegExp.js", "../../../../node_modules/lodash-es/_arrayEvery.js", "../../../../node_modules/lodash-es/_baseEvery.js", "../../../../node_modules/lodash-es/every.js", "../../../../node_modules/lodash-es/toLength.js", "../../../../node_modules/lodash-es/_baseFill.js", "../../../../node_modules/lodash-es/fill.js", "../../../../node_modules/lodash-es/_baseFilter.js", "../../../../node_modules/lodash-es/filter.js", "../../../../node_modules/lodash-es/_createFind.js", "../../../../node_modules/lodash-es/findIndex.js", "../../../../node_modules/lodash-es/find.js", "../../../../node_modules/lodash-es/_baseFindKey.js", "../../../../node_modules/lodash-es/findKey.js", "../../../../node_modules/lodash-es/findLastIndex.js", "../../../../node_modules/lodash-es/findLast.js", "../../../../node_modules/lodash-es/findLastKey.js", "../../../../node_modules/lodash-es/head.js", "../../../../node_modules/lodash-es/_baseMap.js", "../../../../node_modules/lodash-es/map.js", "../../../../node_modules/lodash-es/flatMap.js", "../../../../node_modules/lodash-es/flatMapDeep.js", "../../../../node_modules/lodash-es/flatMapDepth.js", "../../../../node_modules/lodash-es/flattenDeep.js", "../../../../node_modules/lodash-es/flattenDepth.js", "../../../../node_modules/lodash-es/flip.js", "../../../../node_modules/lodash-es/floor.js", "../../../../node_modules/lodash-es/_createFlow.js", "../../../../node_modules/lodash-es/flow.js", "../../../../node_modules/lodash-es/flowRight.js", "../../../../node_modules/lodash-es/forIn.js", "../../../../node_modules/lodash-es/forInRight.js", "../../../../node_modules/lodash-es/forOwn.js", "../../../../node_modules/lodash-es/forOwnRight.js", "../../../../node_modules/lodash-es/fromPairs.js", "../../../../node_modules/lodash-es/_baseFunctions.js", "../../../../node_modules/lodash-es/functions.js", "../../../../node_modules/lodash-es/functionsIn.js", "../../../../node_modules/lodash-es/groupBy.js", "../../../../node_modules/lodash-es/_baseGt.js", "../../../../node_modules/lodash-es/_createRelationalOperation.js", "../../../../node_modules/lodash-es/gt.js", "../../../../node_modules/lodash-es/gte.js", "../../../../node_modules/lodash-es/_baseHas.js", "../../../../node_modules/lodash-es/has.js", "../../../../node_modules/lodash-es/_baseInRange.js", "../../../../node_modules/lodash-es/inRange.js", "../../../../node_modules/lodash-es/isString.js", "../../../../node_modules/lodash-es/_baseValues.js", "../../../../node_modules/lodash-es/values.js", "../../../../node_modules/lodash-es/includes.js", "../../../../node_modules/lodash-es/indexOf.js", "../../../../node_modules/lodash-es/initial.js", "../../../../node_modules/lodash-es/_baseIntersection.js", "../../../../node_modules/lodash-es/_castArrayLikeObject.js", "../../../../node_modules/lodash-es/intersection.js", "../../../../node_modules/lodash-es/intersectionBy.js", "../../../../node_modules/lodash-es/intersectionWith.js", "../../../../node_modules/lodash-es/_baseInverter.js", "../../../../node_modules/lodash-es/_createInverter.js", "../../../../node_modules/lodash-es/invert.js", "../../../../node_modules/lodash-es/invertBy.js", "../../../../node_modules/lodash-es/_parent.js", "../../../../node_modules/lodash-es/_baseInvoke.js", "../../../../node_modules/lodash-es/invoke.js", "../../../../node_modules/lodash-es/invokeMap.js", "../../../../node_modules/lodash-es/_baseIsArrayBuffer.js", "../../../../node_modules/lodash-es/isArrayBuffer.js", "../../../../node_modules/lodash-es/isBoolean.js", "../../../../node_modules/lodash-es/_baseIsDate.js", "../../../../node_modules/lodash-es/isDate.js", "../../../../node_modules/lodash-es/isElement.js", "../../../../node_modules/lodash-es/isEqual.js", "../../../../node_modules/lodash-es/isEqualWith.js", "../../../../node_modules/lodash-es/isFinite.js", "../../../../node_modules/lodash-es/isInteger.js", "../../../../node_modules/lodash-es/isMatch.js", "../../../../node_modules/lodash-es/isMatchWith.js", "../../../../node_modules/lodash-es/isNumber.js", "../../../../node_modules/lodash-es/isNaN.js", "../../../../node_modules/lodash-es/_isMaskable.js", "../../../../node_modules/lodash-es/isNative.js", "../../../../node_modules/lodash-es/isNil.js", "../../../../node_modules/lodash-es/isNull.js", "../../../../node_modules/lodash-es/_baseIsRegExp.js", "../../../../node_modules/lodash-es/isRegExp.js", "../../../../node_modules/lodash-es/isSafeInteger.js", "../../../../node_modules/lodash-es/isUndefined.js", "../../../../node_modules/lodash-es/isWeakMap.js", "../../../../node_modules/lodash-es/isWeakSet.js", "../../../../node_modules/lodash-es/iteratee.js", "../../../../node_modules/lodash-es/join.js", "../../../../node_modules/lodash-es/kebabCase.js", "../../../../node_modules/lodash-es/keyBy.js", "../../../../node_modules/lodash-es/_strictLastIndexOf.js", "../../../../node_modules/lodash-es/lastIndexOf.js", "../../../../node_modules/lodash-es/lowerCase.js", "../../../../node_modules/lodash-es/lowerFirst.js", "../../../../node_modules/lodash-es/_baseLt.js", "../../../../node_modules/lodash-es/lt.js", "../../../../node_modules/lodash-es/lte.js", "../../../../node_modules/lodash-es/mapKeys.js", "../../../../node_modules/lodash-es/mapValues.js", "../../../../node_modules/lodash-es/matches.js", "../../../../node_modules/lodash-es/matchesProperty.js", "../../../../node_modules/lodash-es/_baseExtremum.js", "../../../../node_modules/lodash-es/max.js", "../../../../node_modules/lodash-es/maxBy.js", "../../../../node_modules/lodash-es/_baseSum.js", "../../../../node_modules/lodash-es/_baseMean.js", "../../../../node_modules/lodash-es/mean.js", "../../../../node_modules/lodash-es/meanBy.js", "../../../../node_modules/lodash-es/method.js", "../../../../node_modules/lodash-es/methodOf.js", "../../../../node_modules/lodash-es/min.js", "../../../../node_modules/lodash-es/minBy.js", "../../../../node_modules/lodash-es/mixin.js", "../../../../node_modules/lodash-es/multiply.js", "../../../../node_modules/lodash-es/negate.js", "../../../../node_modules/lodash-es/_iteratorToArray.js", "../../../../node_modules/lodash-es/toArray.js", "../../../../node_modules/lodash-es/next.js", "../../../../node_modules/lodash-es/_baseNth.js", "../../../../node_modules/lodash-es/nth.js", "../../../../node_modules/lodash-es/nthArg.js", "../../../../node_modules/lodash-es/_baseUnset.js", "../../../../node_modules/lodash-es/_customOmitClone.js", "../../../../node_modules/lodash-es/omit.js", "../../../../node_modules/lodash-es/_baseSet.js", "../../../../node_modules/lodash-es/_basePickBy.js", "../../../../node_modules/lodash-es/pickBy.js", "../../../../node_modules/lodash-es/omitBy.js", "../../../../node_modules/lodash-es/once.js", "../../../../node_modules/lodash-es/_baseSortBy.js", "../../../../node_modules/lodash-es/_compareAscending.js", "../../../../node_modules/lodash-es/_compareMultiple.js", "../../../../node_modules/lodash-es/_baseOrderBy.js", "../../../../node_modules/lodash-es/orderBy.js", "../../../../node_modules/lodash-es/_createOver.js", "../../../../node_modules/lodash-es/over.js", "../../../../node_modules/lodash-es/_castRest.js", "../../../../node_modules/lodash-es/overArgs.js", "../../../../node_modules/lodash-es/overEvery.js", "../../../../node_modules/lodash-es/overSome.js", "../../../../node_modules/lodash-es/_baseRepeat.js", "../../../../node_modules/lodash-es/_asciiSize.js", "../../../../node_modules/lodash-es/_unicodeSize.js", "../../../../node_modules/lodash-es/_stringSize.js", "../../../../node_modules/lodash-es/_createPadding.js", "../../../../node_modules/lodash-es/pad.js", "../../../../node_modules/lodash-es/padEnd.js", "../../../../node_modules/lodash-es/padStart.js", "../../../../node_modules/lodash-es/parseInt.js", "../../../../node_modules/lodash-es/partial.js", "../../../../node_modules/lodash-es/partialRight.js", "../../../../node_modules/lodash-es/partition.js", "../../../../node_modules/lodash-es/_basePick.js", "../../../../node_modules/lodash-es/pick.js", "../../../../node_modules/lodash-es/plant.js", "../../../../node_modules/lodash-es/propertyOf.js", "../../../../node_modules/lodash-es/_baseIndexOfWith.js", "../../../../node_modules/lodash-es/_basePullAll.js", "../../../../node_modules/lodash-es/pullAll.js", "../../../../node_modules/lodash-es/pull.js", "../../../../node_modules/lodash-es/pullAllBy.js", "../../../../node_modules/lodash-es/pullAllWith.js", "../../../../node_modules/lodash-es/_basePullAt.js", "../../../../node_modules/lodash-es/pullAt.js", "../../../../node_modules/lodash-es/_baseRandom.js", "../../../../node_modules/lodash-es/random.js", "../../../../node_modules/lodash-es/_baseRange.js", "../../../../node_modules/lodash-es/_createRange.js", "../../../../node_modules/lodash-es/range.js", "../../../../node_modules/lodash-es/rangeRight.js", "../../../../node_modules/lodash-es/rearg.js", "../../../../node_modules/lodash-es/_baseReduce.js", "../../../../node_modules/lodash-es/reduce.js", "../../../../node_modules/lodash-es/_arrayReduceRight.js", "../../../../node_modules/lodash-es/reduceRight.js", "../../../../node_modules/lodash-es/reject.js", "../../../../node_modules/lodash-es/remove.js", "../../../../node_modules/lodash-es/repeat.js", "../../../../node_modules/lodash-es/replace.js", "../../../../node_modules/lodash-es/rest.js", "../../../../node_modules/lodash-es/result.js", "../../../../node_modules/lodash-es/reverse.js", "../../../../node_modules/lodash-es/round.js", "../../../../node_modules/lodash-es/_arraySample.js", "../../../../node_modules/lodash-es/_baseSample.js", "../../../../node_modules/lodash-es/sample.js", "../../../../node_modules/lodash-es/_shuffleSelf.js", "../../../../node_modules/lodash-es/_arraySampleSize.js", "../../../../node_modules/lodash-es/_baseSampleSize.js", "../../../../node_modules/lodash-es/sampleSize.js", "../../../../node_modules/lodash-es/set.js", "../../../../node_modules/lodash-es/setWith.js", "../../../../node_modules/lodash-es/_arrayShuffle.js", "../../../../node_modules/lodash-es/_baseShuffle.js", "../../../../node_modules/lodash-es/shuffle.js", "../../../../node_modules/lodash-es/size.js", "../../../../node_modules/lodash-es/slice.js", "../../../../node_modules/lodash-es/snakeCase.js", "../../../../node_modules/lodash-es/_baseSome.js", "../../../../node_modules/lodash-es/some.js", "../../../../node_modules/lodash-es/sortBy.js", "../../../../node_modules/lodash-es/_baseSortedIndexBy.js", "../../../../node_modules/lodash-es/_baseSortedIndex.js", "../../../../node_modules/lodash-es/sortedIndex.js", "../../../../node_modules/lodash-es/sortedIndexBy.js", "../../../../node_modules/lodash-es/sortedIndexOf.js", "../../../../node_modules/lodash-es/sortedLastIndex.js", "../../../../node_modules/lodash-es/sortedLastIndexBy.js", "../../../../node_modules/lodash-es/sortedLastIndexOf.js", "../../../../node_modules/lodash-es/_baseSortedUniq.js", "../../../../node_modules/lodash-es/sortedUniq.js", "../../../../node_modules/lodash-es/sortedUniqBy.js", "../../../../node_modules/lodash-es/split.js", "../../../../node_modules/lodash-es/spread.js", "../../../../node_modules/lodash-es/startCase.js", "../../../../node_modules/lodash-es/startsWith.js", "../../../../node_modules/lodash-es/stubObject.js", "../../../../node_modules/lodash-es/stubString.js", "../../../../node_modules/lodash-es/stubTrue.js", "../../../../node_modules/lodash-es/subtract.js", "../../../../node_modules/lodash-es/sum.js", "../../../../node_modules/lodash-es/sumBy.js", "../../../../node_modules/lodash-es/tail.js", "../../../../node_modules/lodash-es/take.js", "../../../../node_modules/lodash-es/takeRight.js", "../../../../node_modules/lodash-es/takeRightWhile.js", "../../../../node_modules/lodash-es/takeWhile.js", "../../../../node_modules/lodash-es/tap.js", "../../../../node_modules/lodash-es/_customDefaultsAssignIn.js", "../../../../node_modules/lodash-es/_escapeStringChar.js", "../../../../node_modules/lodash-es/_reInterpolate.js", "../../../../node_modules/lodash-es/_reEscape.js", "../../../../node_modules/lodash-es/_reEvaluate.js", "../../../../node_modules/lodash-es/templateSettings.js", "../../../../node_modules/lodash-es/template.js", "../../../../node_modules/lodash-es/throttle.js", "../../../../node_modules/lodash-es/thru.js", "../../../../node_modules/lodash-es/times.js", "../../../../node_modules/lodash-es/toIterator.js", "../../../../node_modules/lodash-es/_baseWrapperValue.js", "../../../../node_modules/lodash-es/wrapperValue.js", "../../../../node_modules/lodash-es/toLower.js", "../../../../node_modules/lodash-es/toPath.js", "../../../../node_modules/lodash-es/toSafeInteger.js", "../../../../node_modules/lodash-es/toUpper.js", "../../../../node_modules/lodash-es/transform.js", "../../../../node_modules/lodash-es/_charsEndIndex.js", "../../../../node_modules/lodash-es/_charsStartIndex.js", "../../../../node_modules/lodash-es/trim.js", "../../../../node_modules/lodash-es/trimEnd.js", "../../../../node_modules/lodash-es/trimStart.js", "../../../../node_modules/lodash-es/truncate.js", "../../../../node_modules/lodash-es/unary.js", "../../../../node_modules/lodash-es/_unescapeHtmlChar.js", "../../../../node_modules/lodash-es/unescape.js", "../../../../node_modules/lodash-es/_createSet.js", "../../../../node_modules/lodash-es/_baseUniq.js", "../../../../node_modules/lodash-es/union.js", "../../../../node_modules/lodash-es/unionBy.js", "../../../../node_modules/lodash-es/unionWith.js", "../../../../node_modules/lodash-es/uniq.js", "../../../../node_modules/lodash-es/uniqBy.js", "../../../../node_modules/lodash-es/uniqWith.js", "../../../../node_modules/lodash-es/uniqueId.js", "../../../../node_modules/lodash-es/unset.js", "../../../../node_modules/lodash-es/unzip.js", "../../../../node_modules/lodash-es/unzipWith.js", "../../../../node_modules/lodash-es/_baseUpdate.js", "../../../../node_modules/lodash-es/update.js", "../../../../node_modules/lodash-es/updateWith.js", "../../../../node_modules/lodash-es/upperCase.js", "../../../../node_modules/lodash-es/valuesIn.js", "../../../../node_modules/lodash-es/without.js", "../../../../node_modules/lodash-es/wrap.js", "../../../../node_modules/lodash-es/wrapperAt.js", "../../../../node_modules/lodash-es/wrapperChain.js", "../../../../node_modules/lodash-es/wrapperReverse.js", "../../../../node_modules/lodash-es/_baseXor.js", "../../../../node_modules/lodash-es/xor.js", "../../../../node_modules/lodash-es/xorBy.js", "../../../../node_modules/lodash-es/xorWith.js", "../../../../node_modules/lodash-es/zip.js", "../../../../node_modules/lodash-es/_baseZipObject.js", "../../../../node_modules/lodash-es/zipObject.js", "../../../../node_modules/lodash-es/zipObjectDeep.js", "../../../../node_modules/lodash-es/zipWith.js", "../../../../node_modules/lodash-es/array.default.js", "../../../../node_modules/lodash-es/collection.default.js", "../../../../node_modules/lodash-es/date.default.js", "../../../../node_modules/lodash-es/function.default.js", "../../../../node_modules/lodash-es/lang.default.js", "../../../../node_modules/lodash-es/math.default.js", "../../../../node_modules/lodash-es/number.default.js", "../../../../node_modules/lodash-es/object.default.js", "../../../../node_modules/lodash-es/seq.default.js", "../../../../node_modules/lodash-es/string.default.js", "../../../../node_modules/lodash-es/util.default.js", "../../../../node_modules/lodash-es/_lazyClone.js", "../../../../node_modules/lodash-es/_lazyReverse.js", "../../../../node_modules/lodash-es/_getView.js", "../../../../node_modules/lodash-es/_lazyValue.js", "../../../../node_modules/lodash-es/lodash.default.js", "../../../../node_modules/dagre-d3-es/src/graphlib/graph.js", "../../../../node_modules/dagre-d3-es/src/dagre/util.js", "../../../../node_modules/dagre-d3-es/src/dagre/add-border-segments.js", "../../../../node_modules/dagre-d3-es/src/dagre/coordinate-system.js", "../../../../node_modules/dagre-d3-es/src/dagre/data/list.js", "../../../../node_modules/dagre-d3-es/src/dagre/greedy-fas.js", "../../../../node_modules/dagre-d3-es/src/dagre/acyclic.js", "../../../../node_modules/dagre-d3-es/src/dagre/normalize.js", "../../../../node_modules/dagre-d3-es/src/dagre/rank/util.js", "../../../../node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js", "../../../../node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js", "../../../../node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js", "../../../../node_modules/dagre-d3-es/src/graphlib/alg/topsort.js", "../../../../node_modules/dagre-d3-es/src/graphlib/alg/dfs.js", "../../../../node_modules/dagre-d3-es/src/graphlib/alg/postorder.js", "../../../../node_modules/dagre-d3-es/src/graphlib/alg/preorder.js", "../../../../node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js", "../../../../node_modules/dagre-d3-es/src/dagre/rank/index.js", "../../../../node_modules/dagre-d3-es/src/dagre/nesting-graph.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/cross-count.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/init-order.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/barycenter.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/sort.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js", "../../../../node_modules/dagre-d3-es/src/dagre/order/index.js", "../../../../node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js", "../../../../node_modules/dagre-d3-es/src/dagre/position/bk.js", "../../../../node_modules/dagre-d3-es/src/dagre/position/index.js", "../../../../node_modules/dagre-d3-es/src/dagre/layout.js"], - "sourcesContent": ["import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n", "import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\nfunction baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n}\n\nexport default baseToNumber;\n", "/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n", "import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n", "import baseToNumber from './_baseToNumber.js';\nimport baseToString from './_baseToString.js';\n\n/**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\nfunction createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n}\n\nexport default createMathOperation;\n", "import createMathOperation from './_createMathOperation.js';\n\n/**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\nvar add = createMathOperation(function(augend, addend) {\n return augend + addend;\n}, 0);\n\nexport default add;\n", "/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n", "import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n", "import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n", "import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n", "import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n", "import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\nfunction after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\nexport default after;\n", "import WeakMap from './_WeakMap.js';\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nexport default metaMap;\n", "import identity from './identity.js';\nimport metaMap from './_metaMap.js';\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nexport default baseSetData;\n", "import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nexport default createCtor;\n", "import createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nexport default createBind;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nexport default composeArgs;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nexport default composeArgsRight;\n", "/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nexport default countHolders;\n", "/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nexport default baseLodash;\n", "import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nexport default LazyWrapper;\n", "/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n", "import metaMap from './_metaMap.js';\nimport noop from './noop.js';\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nexport default getData;\n", "/** Used to lookup unminified function names. */\nvar realNames = {};\n\nexport default realNames;\n", "import realNames from './_realNames.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nexport default getFuncName;\n", "import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nexport default LodashWrapper;\n", "import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nexport default wrapperClone;\n", "import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseLodash from './_baseLodash.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nexport default lodash;\n", "import LazyWrapper from './_LazyWrapper.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport lodash from './wrapperLodash.js';\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nexport default isLaziable;\n", "import baseSetData from './_baseSetData.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nexport default setData;\n", "/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nexport default getWrapDetails;\n", "/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nexport default insertWrapDetails;\n", "/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n", "/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n", "/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n", "/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n", "import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n", "import arrayEach from './_arrayEach.js';\nimport arrayIncludes from './_arrayIncludes.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nexport default updateWrapDetails;\n", "import getWrapDetails from './_getWrapDetails.js';\nimport insertWrapDetails from './_insertWrapDetails.js';\nimport setToString from './_setToString.js';\nimport updateWrapDetails from './_updateWrapDetails.js';\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nexport default setWrapToString;\n", "import isLaziable from './_isLaziable.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nexport default createRecurry;\n", "/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nexport default getHolder;\n", "import copyArray from './_copyArray.js';\nimport isIndex from './_isIndex.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nexport default reorder;\n", "/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nexport default replaceHolders;\n", "import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport countHolders from './_countHolders.js';\nimport createCtor from './_createCtor.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport reorder from './_reorder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nexport default createHybrid;\n", "import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport createHybrid from './_createHybrid.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nexport default createCurry;\n", "import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nexport default createPartial;\n", "import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nexport default mergeData;\n", "import baseSetData from './_baseSetData.js';\nimport createBind from './_createBind.js';\nimport createCurry from './_createCurry.js';\nimport createHybrid from './_createHybrid.js';\nimport createPartial from './_createPartial.js';\nimport getData from './_getData.js';\nimport mergeData from './_mergeData.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nexport default createWrap;\n", "import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nexport default ary;\n", "import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n", "import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n", "import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nexport default assignIn;\n", "import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nexport default assignInWith;\n", "import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n/**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n});\n\nexport default assignWith;\n", "import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n", "import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n", "import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n", "import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n", "import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n", "import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n", "import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n", "import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n", "import get from './get.js';\n\n/**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\nfunction baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n}\n\nexport default baseAt;\n", "/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n", "import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n", "import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n", "import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n", "import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n", "import baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\nvar at = flatRest(baseAt);\n\nexport default at;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nexport default isError;\n", "import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport isError from './isError.js';\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nexport default attempt;\n", "import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\nexport default before;\n", "import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nexport default bind;\n", "import arrayEach from './_arrayEach.js';\nimport baseAssignValue from './_baseAssignValue.js';\nimport bind from './bind.js';\nimport flatRest from './_flatRest.js';\nimport toKey from './_toKey.js';\n\n/**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\nvar bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n});\n\nexport default bindAll;\n", "import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\nvar bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n});\n\n// Assign default placeholders.\nbindKey.placeholder = {};\n\nexport default bindKey;\n", "/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n", "import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n", "/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n", "import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n", "import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n", "import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n", "import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n", "/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n", "/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n", "import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n", "import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n", "/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n", "/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n 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',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n", "import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n", "import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n", "import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n", "import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n", "import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\nexport default createRound;\n", "import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\nvar ceil = createRound('ceil');\n\nexport default ceil;\n", "import lodash from './wrapperLodash.js';\n\n/**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\nfunction chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n}\n\nexport default chain;\n", "import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n", "/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n", "import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n", "import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n", "import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n", "/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n", "/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n", "import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n", "import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n", "import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n", "import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n", "import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n", "import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n", "import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n", "/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n", "import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n", "import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n", "import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n", "import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n", "import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneDeepWith;\n", "import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\nfunction cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneWith;\n", "import LodashWrapper from './_LodashWrapper.js';\n\n/**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\nfunction wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n}\n\nexport default wrapperCommit;\n", "/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n", "import arrayPush from './_arrayPush.js';\nimport baseFlatten from './_baseFlatten.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nexport default concat;\n", "/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n", "/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n", "import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n", "/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n", "/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n", "import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n", "/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n", "/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n", "import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n", "import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n", "import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n", "import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n", "import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n", "import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n", "import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n", "/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n", "import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n", "/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n", "import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n", "import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n", "import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n", "/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n", "import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n", "import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n", "import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n", "import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\nfunction cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = baseIteratee;\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n}\n\nexport default cond;\n", "/**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\nfunction baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport default baseConformsTo;\n", "import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n}\n\nexport default baseConforms;\n", "import baseClone from './_baseClone.js';\nimport baseConforms from './_baseConforms.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\nfunction conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default conforms;\n", "import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\nfunction conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n}\n\nexport default conformsTo;\n", "/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n", "import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n", "import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n", "import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n", "import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n", "import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\nvar countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n});\n\nexport default countBy;\n", "import baseAssign from './_baseAssign.js';\nimport baseCreate from './_baseCreate.js';\n\n/**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\nfunction create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n}\n\nexport default create;\n", "import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nexport default curry;\n", "import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_RIGHT_FLAG = 16;\n\n/**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\nfunction curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurryRight.placeholder = {};\n\nexport default curryRight;\n", "import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n", "import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n", "/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nexport default defaultTo;\n", "import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n", "import baseMerge from './_baseMerge.js';\nimport isObject from './isObject.js';\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nexport default customDefaultsMerge;\n", "import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n", "import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport customDefaultsMerge from './_customDefaultsMerge.js';\nimport mergeWith from './mergeWith.js';\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nexport default defaultsDeep;\n", "/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n", "import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n", "import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nexport default delay;\n", "/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n", "import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n", "import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n", "/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n", "import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default differenceBy;\n", "import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nexport default differenceWith;\n", "import createMathOperation from './_createMathOperation.js';\n\n/**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\nvar divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n}, 1);\n\nexport default divide;\n", "import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n", "import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n", "import baseSlice from './_baseSlice.js';\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nexport default baseWhile;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true, true)\n : [];\n}\n\nexport default dropRightWhile;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true)\n : [];\n}\n\nexport default dropWhile;\n", "import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n", "import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n", "/**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEachRight;\n", "import createBaseFor from './_createBaseFor.js';\n\n/**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseForRight = createBaseFor(true);\n\nexport default baseForRight;\n", "import baseForRight from './_baseForRight.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n}\n\nexport default baseForOwnRight;\n", "import baseForOwnRight from './_baseForOwnRight.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEachRight = createBaseEach(baseForOwnRight, true);\n\nexport default baseEachRight;\n", "import arrayEachRight from './_arrayEachRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\nfunction forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEachRight;\n", "import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\nfunction endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n}\n\nexport default endsWith;\n", "import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\nfunction baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n}\n\nexport default baseToPairs;\n", "/**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\nfunction setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n}\n\nexport default setToPairs;\n", "import baseToPairs from './_baseToPairs.js';\nimport getTag from './_getTag.js';\nimport mapToArray from './_mapToArray.js';\nimport setToPairs from './_setToPairs.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\nfunction createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n}\n\nexport default createToPairs;\n", "import createToPairs from './_createToPairs.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\nvar toPairs = createToPairs(keys);\n\nexport default toPairs;\n", "import createToPairs from './_createToPairs.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\nvar toPairsIn = createToPairs(keysIn);\n\nexport default toPairsIn;\n", "import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n", "import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n", "import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n", "/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nexport default arrayEvery;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nexport default baseEvery;\n", "import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default every;\n", "import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\nfunction toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n}\n\nexport default toLength;\n", "import toInteger from './toInteger.js';\nimport toLength from './toLength.js';\n\n/**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\nfunction baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n}\n\nexport default baseFill;\n", "import baseFill from './_baseFill.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\nfunction fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n}\n\nexport default fill;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n", "import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n", "import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n", "import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n", "/**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nexport default baseFindKey;\n", "import baseFindKey from './_baseFindKey.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\nfunction findKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn);\n}\n\nexport default findKey;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nexport default findLastIndex;\n", "import createFind from './_createFind.js';\nimport findLastIndex from './findLastIndex.js';\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nexport default findLast;\n", "import baseFindKey from './_baseFindKey.js';\nimport baseForOwnRight from './_baseForOwnRight.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\nfunction findLastKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwnRight);\n}\n\nexport default findLastKey;\n", "/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n", "import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n", "import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n", "import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nexport default flatMap;\n", "import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n}\n\nexport default flatMapDeep;\n", "import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\nimport toInteger from './toInteger.js';\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\nfunction flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n}\n\nexport default flatMapDepth;\n", "import baseFlatten from './_baseFlatten.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nexport default flattenDeep;\n", "import baseFlatten from './_baseFlatten.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\nfunction flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n}\n\nexport default flattenDepth;\n", "import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\nfunction flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n}\n\nexport default flip;\n", "import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\nvar floor = createRound('floor');\n\nexport default floor;\n", "import LodashWrapper from './_LodashWrapper.js';\nimport flatRest from './_flatRest.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport isArray from './isArray.js';\nimport isLaziable from './_isLaziable.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nexport default createFlow;\n", "import createFlow from './_createFlow.js';\n\n/**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flow = createFlow();\n\nexport default flow;\n", "import createFlow from './_createFlow.js';\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nexport default flowRight;\n", "import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n", "import baseForRight from './_baseForRight.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\nfunction forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, castFunction(iteratee), keysIn);\n}\n\nexport default forInRight;\n", "import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n", "import baseForOwnRight from './_baseForOwnRight.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\nfunction forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, castFunction(iteratee));\n}\n\nexport default forOwnRight;\n", "/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nexport default fromPairs;\n", "import arrayFilter from './_arrayFilter.js';\nimport isFunction from './isFunction.js';\n\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nexport default baseFunctions;\n", "import baseFunctions from './_baseFunctions.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nexport default functions;\n", "import baseFunctions from './_baseFunctions.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\nfunction functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n}\n\nexport default functionsIn;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\n", "/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n", "import toNumber from './toNumber.js';\n\n/**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\nfunction createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n}\n\nexport default createRelationalOperation;\n", "import baseGt from './_baseGt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\nvar gt = createRelationalOperation(baseGt);\n\nexport default gt;\n", "import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\nvar gte = createRelationalOperation(function(value, other) {\n return value >= other;\n});\n\nexport default gte;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n", "import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n", "import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n", "import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n", "import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n", "import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n", "import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n", "import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n", "import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\nfunction initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n}\n\nexport default initial;\n", "import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n", "import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n", "import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n", "import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default intersectionBy;\n", "import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\nvar intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n});\n\nexport default intersectionWith;\n", "import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n", "import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n", "import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n", "import baseIteratee from './_baseIteratee.js';\nimport createInverter from './_createInverter.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\nvar invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n}, baseIteratee);\n\nexport default invertBy;\n", "import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n", "import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n", "import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n", "import apply from './_apply.js';\nimport baseEach from './_baseEach.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\nvar invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n});\n\nexport default invokeMap;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\n\n/**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\nfunction baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n}\n\nexport default baseIsArrayBuffer;\n", "import baseIsArrayBuffer from './_baseIsArrayBuffer.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;\n\n/**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\nvar isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\nexport default isArrayBuffer;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n", "import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n", "import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n", "import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n", "import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n", "import root from './_root.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n}\n\nexport default isFinite;\n", "import toInteger from './toInteger.js';\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\nexport default isInteger;\n", "import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\nfunction isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n}\n\nexport default isMatch;\n", "import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\nfunction isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n}\n\nexport default isMatchWith;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n", "import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n", "import coreJsData from './_coreJsData.js';\nimport isFunction from './isFunction.js';\nimport stubFalse from './stubFalse.js';\n\n/**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\nvar isMaskable = coreJsData ? isFunction : stubFalse;\n\nexport default isMaskable;\n", "import baseIsNative from './_baseIsNative.js';\nimport isMaskable from './_isMaskable.js';\n\n/** Error message constants. */\nvar CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';\n\n/**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n}\n\nexport default isNative;\n", "/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n", "/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n", "import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n", "import isInteger from './isInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\nfunction isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isSafeInteger;\n", "/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n", "import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nexport default isWeakMap;\n", "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakSetTag = '[object WeakSet]';\n\n/**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\nfunction isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n}\n\nexport default isWeakSet;\n", "import baseClone from './_baseClone.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nexport default iteratee;\n", "/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeJoin = arrayProto.join;\n\n/**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\nfunction join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n}\n\nexport default join;\n", "import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nexport default keyBy;\n", "/**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n}\n\nexport default strictLastIndexOf;\n", "import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictLastIndexOf from './_strictLastIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\nfunction lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n}\n\nexport default lastIndexOf;\n", "import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nexport default lowerCase;\n", "import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\nvar lowerFirst = createCaseFirst('toLowerCase');\n\nexport default lowerFirst;\n", "/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n", "import baseLt from './_baseLt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\nvar lt = createRelationalOperation(baseLt);\n\nexport default lt;\n", "import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\nvar lte = createRelationalOperation(function(value, other) {\n return value <= other;\n});\n\nexport default lte;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n", "import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n", "import baseClone from './_baseClone.js';\nimport baseMatches from './_baseMatches.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default matches;\n", "import baseClone from './_baseClone.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n}\n\nexport default matchesProperty;\n", "import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nexport default maxBy;\n", "/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n", "import baseSum from './_baseSum.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\nfunction baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n}\n\nexport default baseMean;\n", "import baseMean from './_baseMean.js';\nimport identity from './identity.js';\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nexport default mean;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseMean from './_baseMean.js';\n\n/**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\nfunction meanBy(array, iteratee) {\n return baseMean(array, baseIteratee(iteratee, 2));\n}\n\nexport default meanBy;\n", "import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\nvar method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default method;\n", "import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\nvar methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default methodOf;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n", "import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n", "import arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseFunctions from './_baseFunctions.js';\nimport copyArray from './_copyArray.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\n\n/**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\nfunction mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n}\n\nexport default mixin;\n", "import createMathOperation from './_createMathOperation.js';\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nexport default multiply;\n", "/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n", "/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\nexport default iteratorToArray;\n", "import Symbol from './_Symbol.js';\nimport copyArray from './_copyArray.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport iteratorToArray from './_iteratorToArray.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\nimport stringToArray from './_stringToArray.js';\nimport values from './values.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\n\n/**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n}\n\nexport default toArray;\n", "import toArray from './toArray.js';\n\n/**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\nfunction wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n}\n\nexport default wrapperNext;\n", "import isIndex from './_isIndex.js';\n\n/**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\nfunction baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n}\n\nexport default baseNth;\n", "import baseNth from './_baseNth.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\nfunction nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n}\n\nexport default nth;\n", "import baseNth from './_baseNth.js';\nimport baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\nfunction nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n}\n\nexport default nthArg;\n", "import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n", "import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n", "import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n", "import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n", "import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n", "import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n", "import baseIteratee from './_baseIteratee.js';\nimport negate from './negate.js';\nimport pickBy from './pickBy.js';\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nexport default omitBy;\n", "import before from './before.js';\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nexport default once;\n", "/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n", "import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n", "import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n", "import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n", "import baseOrderBy from './_baseOrderBy.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nexport default orderBy;\n", "import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\nfunction createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n}\n\nexport default createOver;\n", "import arrayMap from './_arrayMap.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\nvar over = createOver(arrayMap);\n\nexport default over;\n", "import baseRest from './_baseRest.js';\n\n/**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nvar castRest = baseRest;\n\nexport default castRest;\n", "import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport castRest from './_castRest.js';\nimport isArray from './isArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\nvar overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(baseIteratee))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n});\n\nexport default overArgs;\n", "import arrayEvery from './_arrayEvery.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\nvar overEvery = createOver(arrayEvery);\n\nexport default overEvery;\n", "import arraySome from './_arraySome.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\nvar overSome = createOver(arraySome);\n\nexport default overSome;\n", "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n", "import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n", "/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n", "import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n", "import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n", "import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeFloor = Math.floor;\n\n/**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\nfunction pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n}\n\nexport default pad;\n", "import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\nfunction padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n}\n\nexport default padEnd;\n", "import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n", "import root from './_root.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeParseInt = root.parseInt;\n\n/**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\nfunction parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n}\n\nexport default parseInt;\n", "import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\nvar partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartial.placeholder = {};\n\nexport default partial;\n", "import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nexport default partialRight;\n", "import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n", "import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n", "import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n", "import baseLodash from './_baseLodash.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\nfunction wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n}\n\nexport default wrapperPlant;\n", "import baseGet from './_baseGet.js';\n\n/**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\nfunction propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n}\n\nexport default propertyOf;\n", "/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseIndexOfWith;\n", "import arrayMap from './_arrayMap.js';\nimport baseIndexOf from './_baseIndexOf.js';\nimport baseIndexOfWith from './_baseIndexOfWith.js';\nimport baseUnary from './_baseUnary.js';\nimport copyArray from './_copyArray.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nexport default basePullAll;\n", "import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nexport default pullAll;\n", "import baseRest from './_baseRest.js';\nimport pullAll from './pullAll.js';\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nexport default pull;\n", "import baseIteratee from './_baseIteratee.js';\nimport basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\nfunction pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, baseIteratee(iteratee, 2))\n : array;\n}\n\nexport default pullAllBy;\n", "import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\nfunction pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n}\n\nexport default pullAllWith;\n", "import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n", "import arrayMap from './_arrayMap.js';\nimport baseAt from './_baseAt.js';\nimport basePullAt from './_basePullAt.js';\nimport compareAscending from './_compareAscending.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\n\n/**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\nvar pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n});\n\nexport default pullAt;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nexport default baseRandom;\n", "import baseRandom from './_baseRandom.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min,\n nativeRandom = Math.random;\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n}\n\nexport default random;\n", "/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n", "import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n", "import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n", "import createRange from './_createRange.js';\n\n/**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\nvar rangeRight = createRange(true);\n\nexport default rangeRight;\n", "import createWrap from './_createWrap.js';\nimport flatRest from './_flatRest.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nexport default rearg;\n", "/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n", "import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n", "/**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n}\n\nexport default arrayReduceRight;\n", "import arrayReduceRight from './_arrayReduceRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\nfunction reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n}\n\nexport default reduceRight;\n", "import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n", "import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n", "import baseRepeat from './_baseRepeat.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nexport default repeat;\n", "import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n", "import baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n}\n\nexport default rest;\n", "import castPath from './_castPath.js';\nimport isFunction from './isFunction.js';\nimport toKey from './_toKey.js';\n\n/**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\nfunction result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n}\n\nexport default result;\n", "/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeReverse = arrayProto.reverse;\n\n/**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n}\n\nexport default reverse;\n", "import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nexport default round;\n", "import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\nfunction arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n}\n\nexport default arraySample;\n", "import arraySample from './_arraySample.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\nfunction baseSample(collection) {\n return arraySample(values(collection));\n}\n\nexport default baseSample;\n", "import arraySample from './_arraySample.js';\nimport baseSample from './_baseSample.js';\nimport isArray from './isArray.js';\n\n/**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\nfunction sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n}\n\nexport default sample;\n", "import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nexport default shuffleSelf;\n", "import baseClamp from './_baseClamp.js';\nimport copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n}\n\nexport default arraySampleSize;\n", "import baseClamp from './_baseClamp.js';\nimport shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n}\n\nexport default baseSampleSize;\n", "import arraySampleSize from './_arraySampleSize.js';\nimport baseSampleSize from './_baseSampleSize.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\nfunction sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n}\n\nexport default sampleSize;\n", "import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n", "import baseSet from './_baseSet.js';\n\n/**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n}\n\nexport default setWith;\n", "import copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nexport default arrayShuffle;\n", "import shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nexport default baseShuffle;\n", "import arrayShuffle from './_arrayShuffle.js';\nimport baseShuffle from './_baseShuffle.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nexport default shuffle;\n", "import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n", "import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n", "import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n", "import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n", "import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n", "import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n", "import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n", "import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n", "import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\nfunction sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2));\n}\n\nexport default sortedIndexBy;\n", "import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\nfunction sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedIndexOf;\n", "import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\nfunction sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n}\n\nexport default sortedLastIndex;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\nfunction sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2), true);\n}\n\nexport default sortedLastIndexBy;\n", "import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\nfunction sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedLastIndexOf;\n", "import eq from './eq.js';\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nexport default baseSortedUniq;\n", "import baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nexport default sortedUniq;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\nfunction sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, baseIteratee(iteratee, 2))\n : [];\n}\n\nexport default sortedUniqBy;\n", "import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport isRegExp from './isRegExp.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\nfunction split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n}\n\nexport default split;\n", "import apply from './_apply.js';\nimport arrayPush from './_arrayPush.js';\nimport baseRest from './_baseRest.js';\nimport castSlice from './_castSlice.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\nfunction spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n}\n\nexport default spread;\n", "import createCompounder from './_createCompounder.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nexport default startCase;\n", "import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nexport default startsWith;\n", "/**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\nfunction stubObject() {\n return {};\n}\n\nexport default stubObject;\n", "/**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\nfunction stubString() {\n return '';\n}\n\nexport default stubString;\n", "/**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\nfunction stubTrue() {\n return true;\n}\n\nexport default stubTrue;\n", "import createMathOperation from './_createMathOperation.js';\n\n/**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\nvar subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n}, 0);\n\nexport default subtract;\n", "import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseSum from './_baseSum.js';\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nexport default sumBy;\n", "import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\nfunction tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n}\n\nexport default tail;\n", "import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default take;\n", "import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default takeRight;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nexport default takeRightWhile;\n", "import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\nfunction takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3))\n : [];\n}\n\nexport default takeWhile;\n", "/**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\nfunction tap(value, interceptor) {\n interceptor(value);\n return value;\n}\n\nexport default tap;\n", "import eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nexport default customDefaultsAssignIn;\n", "/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nexport default escapeStringChar;\n", "/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nexport default reInterpolate;\n", "/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nexport default reEscape;\n", "/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nexport default reEvaluate;\n", "import escape from './escape.js';\nimport reEscape from './_reEscape.js';\nimport reEvaluate from './_reEvaluate.js';\nimport reInterpolate from './_reInterpolate.js';\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nexport default templateSettings;\n", "import assignInWith from './assignInWith.js';\nimport attempt from './attempt.js';\nimport baseValues from './_baseValues.js';\nimport customDefaultsAssignIn from './_customDefaultsAssignIn.js';\nimport escapeStringChar from './_escapeStringChar.js';\nimport isError from './isError.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keys from './keys.js';\nimport reInterpolate from './_reInterpolate.js';\nimport templateSettings from './templateSettings.js';\nimport toString from './toString.js';\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === codes.slash) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === codes.greaterThan) {\n const name = buffer.toLowerCase()\n\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n if (asciiAlpha(code) && buffer.length < constants.htmlRawSizeMax) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === codes.greaterThan) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === codes.dash && marker === constants.htmlComment) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.htmlFlowData)\n return continuationAfter(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(types.htmlFlow)\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return after\n }\n\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(markdownLineEnding(code), 'expected a line ending')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return effects.attempt(blankLine, ok, nok)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\n/** @type {Construct} */\nexport const htmlText = {name: 'htmlText', tokenize: tokenizeHtmlText}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.lessThan, 'expected `<`')\n effects.enter(types.htmlText)\n effects.enter(types.htmlTextData)\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === codes.exclamationMark) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === codes.slash) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === codes.questionMark) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return commentOpenInside\n }\n\n if (code === codes.leftSquareBracket) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return commentEnd\n }\n\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (code === codes.dash) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return commentEnd\n }\n\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === codes.greaterThan\n ? end(code)\n : code === codes.dash\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = constants.cdataOpeningString\n\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === codes.greaterThan) {\n return end(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === codes.eof || code === codes.greaterThan) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (code === codes.questionMark) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === codes.greaterThan ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === codes.dash || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === codes.dash || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === codes.slash) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === codes.colon || code === codes.underscore || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === codes.dash ||\n code === codes.dot ||\n code === codes.colon ||\n code === codes.underscore ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === codes.equalsTo) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === codes.eof ||\n code === codes.lessThan ||\n code === codes.equalsTo ||\n code === codes.greaterThan ||\n code === codes.graveAccent\n ) {\n return nok(code)\n }\n\n if (code === codes.quotationMark || code === codes.apostrophe) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === codes.eof ||\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.lessThan ||\n code === codes.equalsTo ||\n code === codes.graveAccent\n ) {\n return nok(code)\n }\n\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === codes.greaterThan) {\n effects.consume(code)\n effects.exit(types.htmlTextData)\n effects.exit(types.htmlText)\n return ok\n }\n\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n assert(returnState, 'expected return state')\n assert(markdownLineEnding(code), 'expected eol')\n effects.exit(types.htmlTextData)\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(types.htmlTextData)\n return returnState(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {tokenize: tokenizeResource}\n/** @type {Construct} */\nconst referenceFullConstruct = {tokenize: tokenizeReferenceFull}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {tokenize: tokenizeReferenceCollapsed}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n\n while (++index < events.length) {\n const token = events[index][1]\n\n if (\n token.type === types.labelImage ||\n token.type === types.labelLink ||\n token.type === types.labelEnd\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === types.labelImage ? 4 : 2)\n token.type = types.data\n index++\n }\n }\n\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === types.link ||\n (token.type === types.labelLink && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === types.labelLink) {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === types.labelImage || token.type === types.labelLink) &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== types.labelLink) {\n offset = 2\n break\n }\n }\n } else if (token.type === types.labelEnd) {\n close = index\n }\n }\n\n assert(open !== undefined, '`open` is supposed to be found')\n assert(close !== undefined, '`close` is supposed to be found')\n\n const group = {\n type: events[open][1].type === types.labelLink ? types.link : types.image,\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n const label = {\n type: types.label,\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n\n const text = {\n type: types.labelText,\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n assert(\n context.parser.constructs.insideSpan.null,\n 'expected `insideSpan.null` to be populated'\n )\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n\n splice(events, open, events.length, media)\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === types.labelImage ||\n self.events[index][1].type === types.labelLink) &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.rightSquareBracket, 'expected `]`')\n\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({start: labelStart.end, end: self.now()})\n )\n )\n effects.enter(types.labelEnd)\n effects.enter(types.labelMarker)\n effects.consume(code)\n effects.exit(types.labelMarker)\n effects.exit(types.labelEnd)\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === codes.leftParenthesis) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === codes.leftSquareBracket) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n assert(code === codes.leftParenthesis, 'expected left paren')\n effects.enter(types.resource)\n effects.enter(types.resourceMarker)\n effects.consume(code)\n effects.exit(types.resourceMarker)\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === codes.rightParenthesis) {\n return resourceEnd(code)\n }\n\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n types.resourceDestination,\n types.resourceDestinationLiteral,\n types.resourceDestinationLiteralMarker,\n types.resourceDestinationRaw,\n types.resourceDestinationString,\n constants.linkResourceDestinationBalanceMax\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.leftParenthesis\n ) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n types.resourceTitle,\n types.resourceTitleMarker,\n types.resourceTitleString\n )(code)\n }\n\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === codes.rightParenthesis) {\n effects.enter(types.resourceMarker)\n effects.consume(code)\n effects.exit(types.resourceMarker)\n effects.exit(types.resource)\n return ok\n }\n\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n assert(code === codes.leftSquareBracket, 'expected left bracket')\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n types.reference,\n types.referenceMarker,\n types.referenceString\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n assert(code === codes.leftSquareBracket, 'expected left bracket')\n effects.enter(types.reference)\n effects.enter(types.referenceMarker)\n effects.consume(code)\n effects.exit(types.referenceMarker)\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === codes.rightSquareBracket) {\n effects.enter(types.referenceMarker)\n effects.consume(code)\n effects.exit(types.referenceMarker)\n effects.exit(types.reference)\n return ok\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.exclamationMark, 'expected `!`')\n effects.enter(types.labelImage)\n effects.enter(types.labelImageMarker)\n effects.consume(code)\n effects.exit(types.labelImageMarker)\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === codes.leftSquareBracket) {\n effects.enter(types.labelMarker)\n effects.consume(code)\n effects.exit(types.labelMarker)\n effects.exit(types.labelImage)\n return after\n }\n\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === codes.caret &&\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.leftSquareBracket, 'expected `[`')\n effects.enter(types.labelLink)\n effects.enter(types.labelMarker)\n effects.consume(code)\n effects.exit(types.labelMarker)\n effects.exit(types.labelLink)\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === codes.caret &&\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\n/** @type {Construct} */\nexport const lineEnding = {name: 'lineEnding', tokenize: tokenizeLineEnding}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n assert(markdownLineEnding(code), 'expected eol')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return factorySpace(effects, ok, types.linePrefix)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(types.thematicBreak)\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n assert(\n code === codes.asterisk ||\n code === codes.dash ||\n code === codes.underscore,\n 'expected `*`, `-`, or `_`'\n )\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(types.thematicBreakSequence)\n return sequence(code)\n }\n\n if (\n size >= constants.thematicBreakMarkerCountMin &&\n (code === codes.eof || markdownLineEnding(code))\n ) {\n effects.exit(types.thematicBreak)\n return ok(code)\n }\n\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit(types.thematicBreakSequence)\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, types.whitespace)(code)\n : atBreak(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {tokenize: tokenizeListContinuation},\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {tokenize: tokenizeIndent, partial: true}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === types.linePrefix\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n\n return start\n\n /** @type {State} */\n function start(code) {\n assert(self.containerState, 'expected state')\n const kind =\n self.containerState.type ||\n (code === codes.asterisk || code === codes.plusSign || code === codes.dash\n ? types.listUnordered\n : types.listOrdered)\n\n if (\n kind === types.listUnordered\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {_container: true})\n }\n\n if (kind === types.listUnordered) {\n effects.enter(types.listItemPrefix)\n return code === codes.asterisk || code === codes.dash\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === codes.digit1) {\n effects.enter(types.listItemPrefix)\n effects.enter(types.listItemValue)\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n assert(self.containerState, 'expected state')\n if (asciiDigit(code) && ++size < constants.listItemValueSizeMax) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === codes.rightParenthesis || code === codes.dot)\n ) {\n effects.exit(types.listItemValue)\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n assert(self.containerState, 'expected state')\n assert(code !== codes.eof, 'eof (`null`) is not a marker')\n effects.enter(types.listItemMarker)\n effects.consume(code)\n effects.exit(types.listItemMarker)\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n assert(self.containerState, 'expected state')\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(types.listItemPrefixWhitespace)\n effects.consume(code)\n effects.exit(types.listItemPrefixWhitespace)\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n assert(self.containerState, 'expected state')\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit(types.listItemPrefix), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n\n assert(self.containerState, 'expected state')\n self.containerState._closeFlow = undefined\n\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n assert(self.containerState, 'expected state')\n assert(typeof self.containerState.size === 'number', 'expected size')\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n types.listItemIndent,\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n assert(self.containerState, 'expected state')\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n assert(self.containerState, 'expected state')\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n\n assert(self.containerState, 'expected state')\n assert(typeof self.containerState.size === 'number', 'expected size')\n\n return factorySpace(\n effects,\n afterPrefix,\n types.listItemIndent,\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n assert(self.containerState, 'expected state')\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === types.listItemIndent &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n assert(this.containerState, 'expected state')\n assert(typeof this.containerState.type === 'string', 'expected type')\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n return factorySpace(\n effects,\n afterPrefix,\n types.listItemPrefixWhitespace,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === types.listItemPrefixWhitespace\n ? ok(code)\n : nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === types.content) {\n content = index\n break\n }\n\n if (events[index][1].type === types.paragraph) {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === types.content) {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === types.definition) {\n definition = index\n }\n }\n }\n\n assert(text !== undefined, 'expected a `text` index to be found')\n assert(content !== undefined, 'expected a `text` index to be found')\n\n const heading = {\n type: types.setextHeading,\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = types.setextHeadingText\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n\n assert(\n code === codes.dash || code === codes.equalsTo,\n 'expected `=` or `-`'\n )\n\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== types.lineEnding &&\n self.events[index][1].type !== types.linePrefix &&\n self.events[index][1].type !== types.content\n ) {\n paragraph = self.events[index][1].type === types.paragraph\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(types.setextHeadingLine)\n marker = code\n return before(code)\n }\n\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(types.setextHeadingLineSequence)\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n\n effects.exit(types.setextHeadingLineSequence)\n\n return markdownSpace(code)\n ? factorySpace(effects, after, types.lineSuffix)(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.setextHeadingLine)\n return ok(code)\n }\n\n return nok(code)\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\n/** @type {InitialConstruct} */\nexport const flow = {tokenize: initializeFlow}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n types.linePrefix\n )\n )\n )\n\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n assert(\n code === codes.eof || markdownLineEnding(code),\n 'expected eol or eof'\n )\n\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.lineEndingBlank)\n effects.consume(code)\n effects.exit(types.lineEndingBlank)\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n assert(\n code === codes.eof || markdownLineEnding(code),\n 'expected eol or eof'\n )\n\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n self.currentConstruct = undefined\n return initial\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {ok as assert} from 'uvu/assert'\n\nexport const resolver = {resolveAll: createResolver()}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.data)\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(types.data)\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === codes.eof) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n // Always populated by defaults.\n assert(Array.isArray(list), 'expected `disable.null` to be populated')\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === types.data) {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== types.data) {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === types.lineEnding) &&\n events[eventIndex - 1][1].type === types.data\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === codes.space) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === codes.horizontalTab) {\n tabs = true\n size++\n } else if (chunk === codes.virtualSpace) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length ||\n tabs ||\n size < constants.hardBreakPrefixSizeMin\n ? types.lineSuffix\n : types.hardBreakTrailing,\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n", "/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport createDebug from 'debug'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {values} from 'micromark-util-symbol/values.js'\nimport {ok as assert} from 'uvu/assert'\n\nconst debug = createDebug('micromark')\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from ? Object.assign({}, from) : {line: 1, column: 1, offset: 0},\n {_index: 0, _bufferIndex: -1}\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {interrupt: true})\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: codes.eof,\n code: codes.eof,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== codes.eof) {\n return []\n }\n\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {line, column, offset, _index, _bufferIndex}\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n debug('position: define skip: `%j`', point)\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n assert(consumed === true, 'expected character to be consumed')\n consumed = undefined\n debug('main: passing `%s` to %s', code, state && state.name)\n expectedCode = code\n assert(typeof state === 'function', 'expected state')\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n assert(code === expectedCode, 'expected given code to equal expected code')\n\n debug('consume: `%s`', code)\n\n assert(\n consumed === undefined,\n 'expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used'\n )\n assert(\n code === null\n ? context.events.length === 0 ||\n context.events[context.events.length - 1][0] === 'exit'\n : context.events[context.events.length - 1][0] === 'enter',\n 'expected last token to be open'\n )\n\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === codes.carriageReturnLineFeed ? 2 : 1\n accountForPotentialSkip()\n debug('position: after eol: `%j`', point)\n } else if (code !== codes.virtualSpace) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n\n assert(typeof type === 'string', 'expected string type')\n assert(type.length > 0, 'expected non-empty string')\n debug('enter: `%s`', type)\n\n context.events.push(['enter', token, context])\n\n stack.push(token)\n\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n assert(typeof type === 'string', 'expected string type')\n assert(type.length > 0, 'expected non-empty string')\n\n const token = stack.pop()\n assert(token, 'cannot close w/o open tokens')\n token.end = now()\n\n assert(type === token.type, 'expected exit token to match current token')\n\n assert(\n !(\n token.start._index === token.end._index &&\n token.start._bufferIndex === token.end._bufferIndex\n ),\n 'expected non-empty token (`' + type + '`)'\n )\n\n debug('exit: `%s`', token.type)\n context.events.push(['exit', token, context])\n\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n assert(bogusState, 'expected `bogusState` to be given')\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n assert(\n context.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n assert(code === expectedCode, 'expected code')\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n assert(code === expectedCode, 'expected code')\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n\n assert(\n construct.partial ||\n context.events.length === 0 ||\n context.events[context.events.length - 1][0] === 'exit',\n 'expected last token to end'\n )\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n\n return {restore, from: startEventsIndex}\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n debug('position: restore: `%j`', point)\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n\n if (startIndex === endIndex) {\n assert(endBufferIndex > -1, 'expected non-negative end buffer index')\n assert(startBufferIndex > -1, 'expected non-negative start buffer index')\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n assert(startBufferIndex === 0, 'expected `startBufferIndex` to be `0`')\n view.shift()\n }\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case codes.carriageReturn: {\n value = values.cr\n\n break\n }\n\n case codes.lineFeed: {\n value = values.lf\n\n break\n }\n\n case codes.carriageReturnLineFeed: {\n value = values.cr + values.lf\n\n break\n }\n\n case codes.horizontalTab: {\n value = expandTabs ? values.space : values.ht\n\n break\n }\n\n case codes.virtualSpace: {\n if (!expandTabs && atTab) continue\n value = values.space\n\n break\n }\n\n default: {\n assert(typeof chunk === 'number', 'expected number')\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === codes.horizontalTab\n result.push(value)\n }\n\n return result.join('')\n}\n", "/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [codes.asterisk]: list,\n [codes.plusSign]: list,\n [codes.dash]: list,\n [codes.digit0]: list,\n [codes.digit1]: list,\n [codes.digit2]: list,\n [codes.digit3]: list,\n [codes.digit4]: list,\n [codes.digit5]: list,\n [codes.digit6]: list,\n [codes.digit7]: list,\n [codes.digit8]: list,\n [codes.digit9]: list,\n [codes.greaterThan]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [codes.leftSquareBracket]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [codes.horizontalTab]: codeIndented,\n [codes.virtualSpace]: codeIndented,\n [codes.space]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [codes.numberSign]: headingAtx,\n [codes.asterisk]: thematicBreak,\n [codes.dash]: [setextUnderline, thematicBreak],\n [codes.lessThan]: htmlFlow,\n [codes.equalsTo]: setextUnderline,\n [codes.underscore]: thematicBreak,\n [codes.graveAccent]: codeFenced,\n [codes.tilde]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [codes.ampersand]: characterReference,\n [codes.backslash]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [codes.carriageReturn]: lineEnding,\n [codes.lineFeed]: lineEnding,\n [codes.carriageReturnLineFeed]: lineEnding,\n [codes.exclamationMark]: labelStartImage,\n [codes.ampersand]: characterReference,\n [codes.asterisk]: attention,\n [codes.lessThan]: [autolink, htmlText],\n [codes.leftSquareBracket]: labelStartLink,\n [codes.backslash]: [hardBreakEscape, characterEscape],\n [codes.rightSquareBracket]: labelEnd,\n [codes.underscore]: attention,\n [codes.graveAccent]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {null: [attention, resolveText]}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {null: [codes.asterisk, codes.underscore]}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {null: []}\n", "/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs = /** @type {FullNormalizedExtension} */ (\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n )\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === codes.byteOrderMarker) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (\n code === codes.lf &&\n startPosition === endPosition &&\n atCarriageReturn\n ) {\n chunks.push(codes.carriageReturnLineFeed)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(codes.carriageReturn)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case codes.nul: {\n chunks.push(codes.replacementCharacter)\n column++\n\n break\n }\n\n case codes.ht: {\n next = Math.ceil(column / constants.tabSize) * constants.tabSize\n chunks.push(codes.horizontalTab)\n while (column++ < next) chunks.push(codes.virtualSpace)\n\n break\n }\n\n case codes.lf: {\n chunks.push(codes.lineFeed)\n column = 1\n\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(codes.carriageReturn)\n if (buffer) chunks.push(buffer)\n chunks.push(codes.eof)\n }\n\n return chunks\n }\n}\n", "/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n", "import {codes} from 'micromark-util-symbol/codes.js'\nimport {values} from 'micromark-util-symbol/values.js'\n\n/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < codes.ht ||\n code === codes.vt ||\n (code > codes.cr && code < codes.space) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > codes.tilde && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) ||\n /* eslint-disable no-bitwise */\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 ||\n /* eslint-enable no-bitwise */\n // Out of range\n code > 1114111\n ) {\n return values.replacementCharacter\n }\n\n return String.fromCharCode(code)\n}\n", "import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\n\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n\n if (head === codes.numberSign) {\n const head = $2.charCodeAt(1)\n const hex = head === codes.lowercaseX || head === codes.uppercaseX\n return decodeNumericCharacterReference(\n $2.slice(hex ? 2 : 1),\n hex ? constants.numericBaseHexadecimal : constants.numericBaseDecimal\n )\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n", "/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n", "/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {ok as assert} from 'uvu/assert'\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {codes} from 'micromark-util-symbol/codes.js'\nimport {constants} from 'micromark-util-symbol/constants.js'\nimport {types} from 'micromark-util-symbol/types.js'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n (\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n )\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {type: 'root', children: []}\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === types.listOrdered ||\n events[index][1].type === types.listUnordered\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n assert(typeof tail === 'number', 'expected list ot be open')\n index = prepareList(events, tail, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {sliceSerialize: events[index][2].sliceSerialize},\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0 ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === types.listUnordered ||\n event[1].type === types.listOrdered ||\n event[1].type === types.blockQuote\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === types.lineEndingBlank) {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === types.linePrefix ||\n event[1].type === types.listItemValue ||\n event[1].type === types.listItemMarker ||\n event[1].type === types.listItemPrefix ||\n event[1].type === types.listItemPrefixWhitespace\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === types.listItemPrefix) ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === types.listUnordered ||\n event[1].type === types.listOrdered))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === types.lineEnding ||\n tailEvent[1].type === types.lineEndingBlank\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = types.lineEndingBlank\n listSpread = true\n }\n\n tailEvent[1].type = types.lineEnding\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === types.linePrefix ||\n tailEvent[1].type === types.blockQuotePrefix ||\n tailEvent[1].type === types.blockQuotePrefixWhitespace ||\n tailEvent[1].type === types.blockQuoteMarker ||\n tailEvent[1].type === types.listItemIndent\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === types.listItemPrefix) {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n assert(parent, 'expected `parent`')\n assert('children' in parent, 'expected `parent`')\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {start: point(token.start)}\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n assert(node, 'expected `node`')\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n\n assert(node.type !== 'fragment', 'unexpected fragment `exit`ed')\n assert(node.position, 'expected `position` to be defined')\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n assert(ancestor, 'expected nodes on stack')\n assert(ancestor.type === 'list', 'expected list on stack')\n ancestor.start = Number.parseInt(\n this.sliceSerialize(token),\n constants.numericBaseDecimal\n )\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'definition', 'expected definition on stack')\n\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'definition', 'expected definition on stack')\n\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'definition', 'expected definition on stack')\n\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'heading', 'expected heading on stack')\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n\n assert(\n depth === 1 ||\n depth === 2 ||\n depth === 3 ||\n depth === 4 ||\n depth === 5 ||\n depth === 6,\n 'expected `depth` between `1` and `6`'\n )\n\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'heading', 'expected heading on stack')\n\n node.depth =\n this.sliceSerialize(token).charCodeAt(0) === codes.equalsTo ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert('children' in node, 'expected parent on stack')\n\n let tail = node.children[node.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {start: point(token.start)}\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n assert(tail, 'expected a `node` to be on the stack')\n assert('value' in tail, 'expected a `literal` to be on the stack')\n assert(tail.position, 'expected `node` to have an open position')\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n assert(context, 'expected `node`')\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n assert('children' in context, 'expected `parent`')\n const tail = context.children[context.children.length - 1]\n assert(tail.position, 'expected tail to have a starting position')\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'html', 'expected html on stack')\n\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'html', 'expected html on stack')\n\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'inlineCode', 'expected inline code on stack')\n\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'link', 'expected link on stack')\n\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'image', 'expected image on stack')\n\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n assert(ancestor, 'expected ancestor on stack')\n assert(\n ancestor.type === 'image' || ancestor.type === 'link',\n 'expected image or link on stack'\n )\n\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n assert(fragment, 'expected node on stack')\n assert(fragment.type === 'fragment', 'expected fragment on stack')\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image or link on stack'\n )\n\n // Assume a reference.\n setData('inReference', true)\n\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image or link on stack'\n )\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image or link on stack'\n )\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image reference or link reference on stack'\n )\n\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n assert(\n token.type === 'characterReferenceMarkerNumeric' ||\n token.type === 'characterReferenceMarkerHexadecimal'\n )\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === types.characterReferenceMarkerNumeric\n ? constants.numericBaseDecimal\n : constants.numericBaseHexadecimal\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n assert(result !== false, 'expected reference to decode')\n value = result\n }\n\n const tail = this.stack.pop()\n assert(tail, 'expected `node`')\n assert(tail.position, 'expected `node.position`')\n assert('value' in tail, 'expected `node.value`')\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'link', 'expected link on stack')\n\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'link', 'expected link on stack')\n\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {type: 'heading', depth: undefined, children: []}\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {type: 'break'}\n }\n\n /** @returns {HTML} */\n function html() {\n return {type: 'html', value: ''}\n }\n\n /** @returns {Image} */\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n /** @returns {Link} */\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n /** @returns {Strong} */\n function strong() {\n return {type: 'strong', children: []}\n }\n\n /** @returns {Text} */\n function text() {\n return {type: 'text', value: ''}\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({start: left.start, end: left.end}) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({start: right.start, end: right.end}) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({start: right.start, end: right.end}) +\n ') is still open'\n )\n }\n}\n", "import { l as log, J as decodeEntities } from \"./mermaid-934d9bea.js\";\nimport { fromMarkdown } from \"mdast-util-from-markdown\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown) {\n const withoutMultipleNewlines = markdown.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n return withoutExtraSpaces;\n}\nfunction markdownToLines(markdown) {\n const preprocessedMarkdown = preprocessMarkdown(markdown);\n const { children } = fromMarkdown(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.value.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"emphasis\") {\n node.children.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n }\n }\n children.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.children.forEach((contentNode) => {\n processNode(contentNode);\n });\n }\n });\n return lines;\n}\nfunction markdownToHTML(markdown) {\n const { children } = fromMarkdown(markdown);\n function output(node) {\n if (node.type === \"text\") {\n return node.value.replace(/\\n/g, \"
\");\n } else if (node.type === \"strong\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"emphasis\") {\n return `${node.children.map(output).join(\"\")}`;\n } else if (node.type === \"paragraph\") {\n return `

${node.children.map(output).join(\"\")}

`;\n }\n return `Unsupported markdown: ${node.type}`;\n }\n return children.map(output).join(\"\");\n}\nfunction splitTextToChars(text) {\n if (Intl.Segmenter) {\n return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);\n }\n return [...text];\n}\nfunction splitWordToFitWidth(checkFit, word) {\n const characters = splitTextToChars(word.content);\n return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);\n}\nfunction splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {\n if (remainingChars.length === 0) {\n return [\n { content: usedChars.join(\"\"), type },\n { content: \"\", type }\n ];\n }\n const [nextChar, ...rest] = remainingChars;\n const newWord = [...usedChars, nextChar];\n if (checkFit([{ content: newWord.join(\"\"), type }])) {\n return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);\n }\n if (usedChars.length === 0 && nextChar) {\n usedChars.push(nextChar);\n remainingChars.shift();\n }\n return [\n { content: usedChars.join(\"\"), type },\n { content: remainingChars.join(\"\"), type }\n ];\n}\nfunction splitLineToFitWidth(line, checkFit) {\n if (line.some(({ content }) => content.includes(\"\\n\"))) {\n throw new Error(\"splitLineToFitWidth does not support newlines in the line\");\n }\n return splitLineToFitWidthRecursion(line, checkFit);\n}\nfunction splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {\n if (words.length === 0) {\n if (newLine.length > 0) {\n lines.push(newLine);\n }\n return lines.length > 0 ? lines : [];\n }\n let joiner = \"\";\n if (words[0].content === \" \") {\n joiner = \" \";\n words.shift();\n }\n const nextWord = words.shift() ?? { content: \" \", type: \"normal\" };\n const lineWithNextWord = [...newLine];\n if (joiner !== \"\") {\n lineWithNextWord.push({ content: joiner, type: \"normal\" });\n }\n lineWithNextWord.push(nextWord);\n if (checkFit(lineWithNextWord)) {\n return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);\n }\n if (newLine.length > 0) {\n lines.push(newLine);\n words.unshift(nextWord);\n } else if (nextWord.content) {\n const [line, rest] = splitWordToFitWidth(checkFit, nextWord);\n lines.push([line]);\n if (rest.content) {\n words.unshift(rest);\n }\n }\n return splitLineToFitWidthRecursion(words, checkFit, lines);\n}\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlSpan(element, node, width, classes, addBackground = false) {\n const fo = element.append(\"foreignObject\");\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n `\n \" + label + \"\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"max-width\", width + \"px\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n fo.style(\"width\", bbox.width);\n fo.style(\"height\", bbox.height);\n return fo.node();\n}\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\nfunction computeWidthOfText(parentNode, lineHeight, line) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, line);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\nfunction computeDimensionOfText(parentNode, lineHeight, text) {\n var _a;\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textDimension = (_a = testSpan.node()) == null ? void 0 : _a.getBoundingClientRect();\n if (textDimension) {\n testElement.remove();\n }\n return textDimension;\n}\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n const bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n for (const line of structuredText) {\n const checkWidth = (line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width;\n const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);\n for (const preparedLine of linesUnderWidth) {\n const tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, preparedLine);\n lineIndex++;\n }\n }\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", -padding).attr(\"y\", -padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"emphasis\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\nconst createText = (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width = 200,\n addSvgBackground = false\n} = {}) => {\n log.info(\"createText\", text, style, isTitle, classes, useHtmlLabels, isNode, addSvgBackground);\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text);\n const node = {\n isNode,\n label: decodeEntities(htmlText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n const vertexNode = addHtmlSpan(el, node, width, classes, addSvgBackground);\n return vertexNode;\n } else {\n const structuredText = markdownToLines(text);\n const svgLabel = createFormattedText(width, el, structuredText, addSvgBackground);\n return svgLabel;\n }\n};\nexport {\n createText as a,\n computeDimensionOfText as c\n};\n"], - "mappings": "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", - "names": ["parse", "createDebug", "disable", "debug", "index", "index", "has", "chars", "diff", "value", "line", "obj", "dedent", "dedent", "values", "index", "list", "all", "index", "extension", "list", "ok", "previous", "document", "point", "index", "ok", "constructs", "index", "index", "text", "ok", "attentionMarkers", "previous", "point", "ok", "ok", "ok", "ok", "characterReference", "ok", "ok", "effects", "nok", "start", "ok", "furtherStart", "index", "ok", "index", "previous", "start", "content", "ok", "previous", "ok", "ok", "ok", "ok", "ok", "titleBefore", "ok", "content", "text", "ok", "index", "ok", "ok", "index", "index", "text", "ok", "ok", "ok", "ok", "ok", "ok", "index", "content", "text", "definition", "ok", "content", "constructs", "text", "list", "index", "createDebug", "point", "exit", "line", "constructs", "all", "list", "ok", "from", "index", "document", "flow", "string", "text", "document", "flow", "string", "text", "constructs", "document", "head", "point", "blockQuote", "codeText", "definition", "list", "thematicBreak", "exit", "index", "point", "listItem", "node", "data", "text", "string", "extension", "lines", "node", "index", "text", "line", "content", "element", "line2", "htmlText"] -} diff --git a/.vuepress/.cache/deps/chunk-ULQHWUKP.js b/.vuepress/.cache/deps/chunk-ULQHWUKP.js deleted file mode 100644 index fe8f49949..000000000 --- a/.vuepress/.cache/deps/chunk-ULQHWUKP.js +++ /dev/null @@ -1,1667 +0,0 @@ -import { - createText -} from "./chunk-TQDBUXIK.js"; -import { - basis_default, - decodeEntities, - evaluate, - getConfig, - line_default, - log$1, - sanitizeText$2, - select_default, - utils -} from "./chunk-MILIJ3F3.js"; - -// node_modules/mermaid/dist/edges-80f1ebb6.js -var insertMarkers = (elem, markerArray, type, id) => { - markerArray.forEach((markerName) => { - markers[markerName](elem, type, id); - }); -}; -var extension = (elem, type, id) => { - log$1.trace("Making markers for ", id); - elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionStart").attr("class", "marker extension " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"); - elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionEnd").attr("class", "marker extension " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); -}; -var composition = (elem, type, id) => { - elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionStart").attr("class", "marker composition " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionEnd").attr("class", "marker composition " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); -}; -var aggregation = (elem, type, id) => { - elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationStart").attr("class", "marker aggregation " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationEnd").attr("class", "marker aggregation " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); -}; -var dependency = (elem, type, id) => { - elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyStart").attr("class", "marker dependency " + type).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyEnd").attr("class", "marker dependency " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); -}; -var lollipop = (elem, type, id) => { - elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopStart").attr("class", "marker lollipop " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); - elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopEnd").attr("class", "marker lollipop " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6); -}; -var point = (elem, type, id) => { - elem.append("marker").attr("id", id + "_" + type + "-pointEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 6).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); - elem.append("marker").attr("id", id + "_" + type + "-pointStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); -}; -var circle$1 = (elem, type, id) => { - elem.append("marker").attr("id", id + "_" + type + "-circleEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); - elem.append("marker").attr("id", id + "_" + type + "-circleStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); -}; -var cross = (elem, type, id) => { - elem.append("marker").attr("id", id + "_" + type + "-crossEnd").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); - elem.append("marker").attr("id", id + "_" + type + "-crossStart").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0"); -}; -var barb = (elem, type, id) => { - elem.append("defs").append("marker").attr("id", id + "_" + type + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); -}; -var markers = { - extension, - composition, - aggregation, - dependency, - lollipop, - point, - circle: circle$1, - cross, - barb -}; -var insertMarkers$1 = insertMarkers; -function applyStyle(dom, styleFn) { - if (styleFn) { - dom.attr("style", styleFn); - } -} -function addHtmlLabel(node) { - const fo = select_default(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")); - const div = fo.append("xhtml:div"); - const label = node.label; - const labelClass = node.isNode ? "nodeLabel" : "edgeLabel"; - div.html( - '" + label + "" - ); - applyStyle(div, node.labelStyle); - div.style("display", "inline-block"); - div.style("white-space", "nowrap"); - div.attr("xmlns", "http://www.w3.org/1999/xhtml"); - return fo.node(); -} -var createLabel = (_vertexText, style, isTitle, isNode) => { - let vertexText = _vertexText || ""; - if (typeof vertexText === "object") { - vertexText = vertexText[0]; - } - if (evaluate(getConfig().flowchart.htmlLabels)) { - vertexText = vertexText.replace(/\\n|\n/g, "
"); - log$1.info("vertexText" + vertexText); - const node = { - isNode, - label: decodeEntities(vertexText).replace( - /fa[blrs]?:fa-[\w-]+/g, - (s) => `` - ), - labelStyle: style.replace("fill:", "color:") - }; - let vertexNode = addHtmlLabel(node); - return vertexNode; - } else { - const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text"); - svgLabel.setAttribute("style", style.replace("color:", "fill:")); - let rows = []; - if (typeof vertexText === "string") { - rows = vertexText.split(/\\n|\n|/gi); - } else if (Array.isArray(vertexText)) { - rows = vertexText; - } else { - rows = []; - } - for (const row of rows) { - const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); - tspan.setAttribute("dy", "1em"); - tspan.setAttribute("x", "0"); - if (isTitle) { - tspan.setAttribute("class", "title-row"); - } else { - tspan.setAttribute("class", "row"); - } - tspan.textContent = row.trim(); - svgLabel.appendChild(tspan); - } - return svgLabel; - } -}; -var createLabel$1 = createLabel; -var labelHelper = async (parent, node, _classes, isNode) => { - let classes; - const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels); - if (!_classes) { - classes = "node default"; - } else { - classes = _classes; - } - const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); - const label = shapeSvg.insert("g").attr("class", "label").attr("style", node.labelStyle); - let labelText; - if (node.labelText === void 0) { - labelText = ""; - } else { - labelText = typeof node.labelText === "string" ? node.labelText : node.labelText[0]; - } - const textNode = label.node(); - let text; - if (node.labelType === "markdown") { - text = createText(label, sanitizeText$2(decodeEntities(labelText), getConfig()), { - useHtmlLabels, - width: node.width || getConfig().flowchart.wrappingWidth, - classes: "markdown-node-label" - }); - } else { - text = textNode.appendChild( - createLabel$1( - sanitizeText$2(decodeEntities(labelText), getConfig()), - node.labelStyle, - false, - isNode - ) - ); - } - let bbox = text.getBBox(); - const halfPadding = node.padding / 2; - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = text.children[0]; - const dv = select_default(text); - const images = div.getElementsByTagName("img"); - if (images) { - const noImgText = labelText.replace(/]*>/g, "").trim() === ""; - await Promise.all( - [...images].map( - (img) => new Promise((res) => { - function setupImage() { - img.style.display = "flex"; - img.style.flexDirection = "column"; - if (noImgText) { - const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize; - const enlargingFactor = 5; - img.style.width = parseInt(bodyFontSize, 10) * enlargingFactor + "px"; - } else { - img.style.width = "100%"; - } - res(img); - } - setTimeout(() => { - if (img.complete) { - setupImage(); - } - }); - img.addEventListener("error", setupImage); - img.addEventListener("load", setupImage); - }) - ) - ); - } - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - if (useHtmlLabels) { - label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); - } else { - label.attr("transform", "translate(0, " + -bbox.height / 2 + ")"); - } - if (node.centerLabel) { - label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); - } - label.insert("rect", ":first-child"); - return { shapeSvg, bbox, halfPadding, label }; -}; -var updateNodeBounds = (node, element) => { - const bbox = element.node().getBBox(); - node.width = bbox.width; - node.height = bbox.height; -}; -function insertPolygonShape(parent, w, h, points) { - return parent.insert("polygon", ":first-child").attr( - "points", - points.map(function(d) { - return d.x + "," + d.y; - }).join(" ") - ).attr("class", "label-container").attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")"); -} -function intersectNode(node, point2) { - return node.intersect(point2); -} -function intersectEllipse(node, rx, ry, point2) { - var cx = node.x; - var cy = node.y; - var px = cx - point2.x; - var py = cy - point2.y; - var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px); - var dx = Math.abs(rx * ry * px / det); - if (point2.x < cx) { - dx = -dx; - } - var dy = Math.abs(rx * ry * py / det); - if (point2.y < cy) { - dy = -dy; - } - return { x: cx + dx, y: cy + dy }; -} -function intersectCircle(node, rx, point2) { - return intersectEllipse(node, rx, rx, point2); -} -function intersectLine(p1, p2, q1, q2) { - var a1, a2, b1, b2, c1, c2; - var r1, r2, r3, r4; - var denom, offset, num; - var x, y; - a1 = p2.y - p1.y; - b1 = p1.x - p2.x; - c1 = p2.x * p1.y - p1.x * p2.y; - r3 = a1 * q1.x + b1 * q1.y + c1; - r4 = a1 * q2.x + b1 * q2.y + c1; - if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) { - return; - } - a2 = q2.y - q1.y; - b2 = q1.x - q2.x; - c2 = q2.x * q1.y - q1.x * q2.y; - r1 = a2 * p1.x + b2 * p1.y + c2; - r2 = a2 * p2.x + b2 * p2.y + c2; - if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) { - return; - } - denom = a1 * b2 - a2 * b1; - if (denom === 0) { - return; - } - offset = Math.abs(denom / 2); - num = b1 * c2 - b2 * c1; - x = num < 0 ? (num - offset) / denom : (num + offset) / denom; - num = a2 * c1 - a1 * c2; - y = num < 0 ? (num - offset) / denom : (num + offset) / denom; - return { x, y }; -} -function sameSign(r1, r2) { - return r1 * r2 > 0; -} -function intersectPolygon(node, polyPoints, point2) { - var x1 = node.x; - var y1 = node.y; - var intersections = []; - var minX = Number.POSITIVE_INFINITY; - var minY = Number.POSITIVE_INFINITY; - if (typeof polyPoints.forEach === "function") { - polyPoints.forEach(function(entry) { - minX = Math.min(minX, entry.x); - minY = Math.min(minY, entry.y); - }); - } else { - minX = Math.min(minX, polyPoints.x); - minY = Math.min(minY, polyPoints.y); - } - var left = x1 - node.width / 2 - minX; - var top = y1 - node.height / 2 - minY; - for (var i = 0; i < polyPoints.length; i++) { - var p1 = polyPoints[i]; - var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0]; - var intersect2 = intersectLine( - node, - point2, - { x: left + p1.x, y: top + p1.y }, - { x: left + p2.x, y: top + p2.y } - ); - if (intersect2) { - intersections.push(intersect2); - } - } - if (!intersections.length) { - return node; - } - if (intersections.length > 1) { - intersections.sort(function(p, q) { - var pdx = p.x - point2.x; - var pdy = p.y - point2.y; - var distp = Math.sqrt(pdx * pdx + pdy * pdy); - var qdx = q.x - point2.x; - var qdy = q.y - point2.y; - var distq = Math.sqrt(qdx * qdx + qdy * qdy); - return distp < distq ? -1 : distp === distq ? 0 : 1; - }); - } - return intersections[0]; -} -var intersectRect = (node, point2) => { - var x = node.x; - var y = node.y; - var dx = point2.x - x; - var dy = point2.y - y; - var w = node.width / 2; - var h = node.height / 2; - var sx, sy; - if (Math.abs(dy) * w > Math.abs(dx) * h) { - if (dy < 0) { - h = -h; - } - sx = dy === 0 ? 0 : h * dx / dy; - sy = h; - } else { - if (dx < 0) { - w = -w; - } - sx = w; - sy = dx === 0 ? 0 : w * dy / dx; - } - return { x: x + sx, y: y + sy }; -}; -var intersectRect$1 = intersectRect; -var intersect = { - node: intersectNode, - circle: intersectCircle, - ellipse: intersectEllipse, - polygon: intersectPolygon, - rect: intersectRect$1 -}; -var note = async (parent, node) => { - const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels; - if (!useHtmlLabels) { - node.centerLabel = true; - } - const { shapeSvg, bbox, halfPadding } = await labelHelper( - parent, - node, - "node " + node.classes, - true - ); - log$1.info("Classes = ", node.classes); - const rect2 = shapeSvg.insert("rect", ":first-child"); - rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); - updateNodeBounds(node, rect2); - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -var note$1 = note; -var formatClass = (str) => { - if (str) { - return " " + str; - } - return ""; -}; -var getClassesFromNode = (node, otherClasses) => { - return `${otherClasses ? otherClasses : "node default"}${formatClass(node.classes)} ${formatClass( - node.class - )}`; -}; -var question = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const s = w + h; - const points = [ - { x: s / 2, y: 0 }, - { x: s, y: -s / 2 }, - { x: s / 2, y: -s }, - { x: 0, y: -s / 2 } - ]; - log$1.info("Question main (Circle)"); - const questionElem = insertPolygonShape(shapeSvg, s, s, points); - questionElem.attr("style", node.style); - updateNodeBounds(node, questionElem); - node.intersect = function(point2) { - log$1.warn("Intersect called"); - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var choice = (parent, node) => { - const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); - const s = 28; - const points = [ - { x: 0, y: s / 2 }, - { x: s / 2, y: 0 }, - { x: 0, y: -s / 2 }, - { x: -s / 2, y: 0 } - ]; - const choice2 = shapeSvg.insert("polygon", ":first-child").attr( - "points", - points.map(function(d) { - return d.x + "," + d.y; - }).join(" ") - ); - choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28); - node.width = 28; - node.height = 28; - node.intersect = function(point2) { - return intersect.circle(node, 14, point2); - }; - return shapeSvg; -}; -var hexagon = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const f = 4; - const h = bbox.height + node.padding; - const m = h / f; - const w = bbox.width + 2 * m + node.padding; - const points = [ - { x: m, y: 0 }, - { x: w - m, y: 0 }, - { x: w, y: -h / 2 }, - { x: w - m, y: -h }, - { x: m, y: -h }, - { x: 0, y: -h / 2 } - ]; - const hex = insertPolygonShape(shapeSvg, w, h, points); - hex.attr("style", node.style); - updateNodeBounds(node, hex); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var rect_left_inv_arrow = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: -h / 2, y: 0 }, - { x: w, y: 0 }, - { x: w, y: -h }, - { x: -h / 2, y: -h }, - { x: 0, y: -h / 2 } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - node.width = w + h; - node.height = h; - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var lean_right = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: -2 * h / 6, y: 0 }, - { x: w - h / 6, y: 0 }, - { x: w + 2 * h / 6, y: -h }, - { x: h / 6, y: -h } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - updateNodeBounds(node, el); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var lean_left = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: 2 * h / 6, y: 0 }, - { x: w + h / 6, y: 0 }, - { x: w - 2 * h / 6, y: -h }, - { x: -h / 6, y: -h } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - updateNodeBounds(node, el); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var trapezoid = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: -2 * h / 6, y: 0 }, - { x: w + 2 * h / 6, y: 0 }, - { x: w - h / 6, y: -h }, - { x: h / 6, y: -h } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - updateNodeBounds(node, el); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var inv_trapezoid = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: h / 6, y: 0 }, - { x: w - h / 6, y: 0 }, - { x: w + 2 * h / 6, y: -h }, - { x: -2 * h / 6, y: -h } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - updateNodeBounds(node, el); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var rect_right_inv_arrow = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: 0, y: 0 }, - { x: w + h / 2, y: 0 }, - { x: w, y: -h / 2 }, - { x: w + h / 2, y: -h }, - { x: 0, y: -h } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - updateNodeBounds(node, el); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var cylinder = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const rx = w / 2; - const ry = rx / (2.5 + w / 50); - const h = bbox.height + ry + node.padding; - const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h; - const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node.style).attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")"); - updateNodeBounds(node, el); - node.intersect = function(point2) { - const pos = intersect.rect(node, point2); - const x = pos.x - node.x; - if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) { - let y = ry * ry * (1 - x * x / (rx * rx)); - if (y != 0) { - y = Math.sqrt(y); - } - y = ry - y; - if (point2.y - node.y > 0) { - y = -y; - } - pos.y += y; - } - return pos; - }; - return shapeSvg; -}; -var rect = async (parent, node) => { - const { shapeSvg, bbox, halfPadding } = await labelHelper( - parent, - node, - "node " + node.classes + " " + node.class, - true - ); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const totalWidth = bbox.width + node.padding; - const totalHeight = bbox.height + node.padding; - rect2.attr("class", "basic label-container").attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", totalWidth).attr("height", totalHeight); - if (node.props) { - const propKeys = new Set(Object.keys(node.props)); - if (node.props.borders) { - applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); - propKeys.delete("borders"); - } - propKeys.forEach((propKey) => { - log$1.warn(`Unknown node property ${propKey}`); - }); - } - updateNodeBounds(node, rect2); - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -var labelRect = async (parent, node) => { - const { shapeSvg } = await labelHelper(parent, node, "label", true); - log$1.trace("Classes = ", node.class); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const totalWidth = 0; - const totalHeight = 0; - rect2.attr("width", totalWidth).attr("height", totalHeight); - shapeSvg.attr("class", "label edgeLabel"); - if (node.props) { - const propKeys = new Set(Object.keys(node.props)); - if (node.props.borders) { - applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight); - propKeys.delete("borders"); - } - propKeys.forEach((propKey) => { - log$1.warn(`Unknown node property ${propKey}`); - }); - } - updateNodeBounds(node, rect2); - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) { - const strokeDashArray = []; - const addBorder = (length) => { - strokeDashArray.push(length, 0); - }; - const skipBorder = (length) => { - strokeDashArray.push(0, length); - }; - if (borders.includes("t")) { - log$1.debug("add top border"); - addBorder(totalWidth); - } else { - skipBorder(totalWidth); - } - if (borders.includes("r")) { - log$1.debug("add right border"); - addBorder(totalHeight); - } else { - skipBorder(totalHeight); - } - if (borders.includes("b")) { - log$1.debug("add bottom border"); - addBorder(totalWidth); - } else { - skipBorder(totalWidth); - } - if (borders.includes("l")) { - log$1.debug("add left border"); - addBorder(totalHeight); - } else { - skipBorder(totalHeight); - } - rect2.attr("stroke-dasharray", strokeDashArray.join(" ")); -} -var rectWithTitle = (parent, node) => { - let classes; - if (!node.classes) { - classes = "node default"; - } else { - classes = "node " + node.classes; - } - const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const innerLine = shapeSvg.insert("line"); - const label = shapeSvg.insert("g").attr("class", "label"); - const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText; - let title = ""; - if (typeof text2 === "object") { - title = text2[0]; - } else { - title = text2; - } - log$1.info("Label text abc79", title, text2, typeof text2 === "object"); - const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true)); - let bbox = { width: 0, height: 0 }; - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = text.children[0]; - const dv = select_default(text); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - log$1.info("Text 2", text2); - const textRows = text2.slice(1, text2.length); - let titleBox = text.getBBox(); - const descr = label.node().appendChild( - createLabel$1(textRows.join ? textRows.join("
") : textRows, node.labelStyle, true, true) - ); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = descr.children[0]; - const dv = select_default(descr); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - const halfPadding = node.padding / 2; - select_default(descr).attr( - "transform", - "translate( " + // (titleBox.width - bbox.width) / 2 + - (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")" - ); - select_default(text).attr( - "transform", - "translate( " + // (titleBox.width - bbox.width) / 2 + - (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)" - ); - bbox = label.node().getBBox(); - label.attr( - "transform", - "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")" - ); - rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); - innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding); - updateNodeBounds(node, rect2); - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -var stadium = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const h = bbox.height + node.padding; - const w = bbox.width + h / 4 + node.padding; - const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h); - updateNodeBounds(node, rect2); - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -var circle = async (parent, node) => { - const { shapeSvg, bbox, halfPadding } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const circle2 = shapeSvg.insert("circle", ":first-child"); - circle2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); - log$1.info("Circle main"); - updateNodeBounds(node, circle2); - node.intersect = function(point2) { - log$1.info("Circle intersect", node, bbox.width / 2 + halfPadding, point2); - return intersect.circle(node, bbox.width / 2 + halfPadding, point2); - }; - return shapeSvg; -}; -var doublecircle = async (parent, node) => { - const { shapeSvg, bbox, halfPadding } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const gap = 5; - const circleGroup = shapeSvg.insert("g", ":first-child"); - const outerCircle = circleGroup.insert("circle"); - const innerCircle = circleGroup.insert("circle"); - circleGroup.attr("class", node.class); - outerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node.padding + gap * 2).attr("height", bbox.height + node.padding + gap * 2); - innerCircle.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node.padding).attr("height", bbox.height + node.padding); - log$1.info("DoubleCircle main"); - updateNodeBounds(node, outerCircle); - node.intersect = function(point2) { - log$1.info("DoubleCircle intersect", node, bbox.width / 2 + halfPadding + gap, point2); - return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2); - }; - return shapeSvg; -}; -var subroutine = async (parent, node) => { - const { shapeSvg, bbox } = await labelHelper( - parent, - node, - getClassesFromNode(node, void 0), - true - ); - const w = bbox.width + node.padding; - const h = bbox.height + node.padding; - const points = [ - { x: 0, y: 0 }, - { x: w, y: 0 }, - { x: w, y: -h }, - { x: 0, y: -h }, - { x: 0, y: 0 }, - { x: -8, y: 0 }, - { x: w + 8, y: 0 }, - { x: w + 8, y: -h }, - { x: -8, y: -h }, - { x: -8, y: 0 } - ]; - const el = insertPolygonShape(shapeSvg, w, h, points); - el.attr("style", node.style); - updateNodeBounds(node, el); - node.intersect = function(point2) { - return intersect.polygon(node, points, point2); - }; - return shapeSvg; -}; -var start = (parent, node) => { - const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); - const circle2 = shapeSvg.insert("circle", ":first-child"); - circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14); - updateNodeBounds(node, circle2); - node.intersect = function(point2) { - return intersect.circle(node, 7, point2); - }; - return shapeSvg; -}; -var forkJoin = (parent, node, dir) => { - const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); - let width = 70; - let height = 10; - if (dir === "LR") { - width = 10; - height = 70; - } - const shape = shapeSvg.append("rect").attr("x", -1 * width / 2).attr("y", -1 * height / 2).attr("width", width).attr("height", height).attr("class", "fork-join"); - updateNodeBounds(node, shape); - node.height = node.height + node.padding / 2; - node.width = node.width + node.padding / 2; - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -var end = (parent, node) => { - const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node.domId || node.id); - const innerCircle = shapeSvg.insert("circle", ":first-child"); - const circle2 = shapeSvg.insert("circle", ":first-child"); - circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14); - innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10); - updateNodeBounds(node, circle2); - node.intersect = function(point2) { - return intersect.circle(node, 7, point2); - }; - return shapeSvg; -}; -var class_box = (parent, node) => { - const halfPadding = node.padding / 2; - const rowPadding = 4; - const lineHeight = 8; - let classes; - if (!node.classes) { - classes = "node default"; - } else { - classes = "node " + node.classes; - } - const shapeSvg = parent.insert("g").attr("class", classes).attr("id", node.domId || node.id); - const rect2 = shapeSvg.insert("rect", ":first-child"); - const topLine = shapeSvg.insert("line"); - const bottomLine = shapeSvg.insert("line"); - let maxWidth = 0; - let maxHeight = rowPadding; - const labelContainer = shapeSvg.insert("g").attr("class", "label"); - let verticalPos = 0; - const hasInterface = node.classData.annotations && node.classData.annotations[0]; - const interfaceLabelText = node.classData.annotations[0] ? "«" + node.classData.annotations[0] + "»" : ""; - const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true)); - let interfaceBBox = interfaceLabel.getBBox(); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = interfaceLabel.children[0]; - const dv = select_default(interfaceLabel); - interfaceBBox = div.getBoundingClientRect(); - dv.attr("width", interfaceBBox.width); - dv.attr("height", interfaceBBox.height); - } - if (node.classData.annotations[0]) { - maxHeight += interfaceBBox.height + rowPadding; - maxWidth += interfaceBBox.width; - } - let classTitleString = node.classData.label; - if (node.classData.type !== void 0 && node.classData.type !== "") { - if (getConfig().flowchart.htmlLabels) { - classTitleString += "<" + node.classData.type + ">"; - } else { - classTitleString += "<" + node.classData.type + ">"; - } - } - const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true)); - select_default(classTitleLabel).attr("class", "classTitle"); - let classTitleBBox = classTitleLabel.getBBox(); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = classTitleLabel.children[0]; - const dv = select_default(classTitleLabel); - classTitleBBox = div.getBoundingClientRect(); - dv.attr("width", classTitleBBox.width); - dv.attr("height", classTitleBBox.height); - } - maxHeight += classTitleBBox.height + rowPadding; - if (classTitleBBox.width > maxWidth) { - maxWidth = classTitleBBox.width; - } - const classAttributes = []; - node.classData.members.forEach((member) => { - const parsedInfo = member.getDisplayDetails(); - let parsedText = parsedInfo.displayText; - if (getConfig().flowchart.htmlLabels) { - parsedText = parsedText.replace(//g, ">"); - } - const lbl = labelContainer.node().appendChild( - createLabel$1( - parsedText, - parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, - true, - true - ) - ); - let bbox = lbl.getBBox(); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = lbl.children[0]; - const dv = select_default(lbl); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - if (bbox.width > maxWidth) { - maxWidth = bbox.width; - } - maxHeight += bbox.height + rowPadding; - classAttributes.push(lbl); - }); - maxHeight += lineHeight; - const classMethods = []; - node.classData.methods.forEach((member) => { - const parsedInfo = member.getDisplayDetails(); - let displayText = parsedInfo.displayText; - if (getConfig().flowchart.htmlLabels) { - displayText = displayText.replace(//g, ">"); - } - const lbl = labelContainer.node().appendChild( - createLabel$1( - displayText, - parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, - true, - true - ) - ); - let bbox = lbl.getBBox(); - if (evaluate(getConfig().flowchart.htmlLabels)) { - const div = lbl.children[0]; - const dv = select_default(lbl); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - if (bbox.width > maxWidth) { - maxWidth = bbox.width; - } - maxHeight += bbox.height + rowPadding; - classMethods.push(lbl); - }); - maxHeight += lineHeight; - if (hasInterface) { - let diffX2 = (maxWidth - interfaceBBox.width) / 2; - select_default(interfaceLabel).attr( - "transform", - "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")" - ); - verticalPos = interfaceBBox.height + rowPadding; - } - let diffX = (maxWidth - classTitleBBox.width) / 2; - select_default(classTitleLabel).attr( - "transform", - "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")" - ); - verticalPos += classTitleBBox.height + rowPadding; - topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos); - verticalPos += lineHeight; - classAttributes.forEach((lbl) => { - select_default(lbl).attr( - "transform", - "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")" - ); - const memberBBox = lbl == null ? void 0 : lbl.getBBox(); - verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding; - }); - verticalPos += lineHeight; - bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos); - verticalPos += lineHeight; - classMethods.forEach((lbl) => { - select_default(lbl).attr( - "transform", - "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")" - ); - const memberBBox = lbl == null ? void 0 : lbl.getBBox(); - verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding; - }); - rect2.attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node.padding).attr("height", maxHeight + node.padding); - updateNodeBounds(node, rect2); - node.intersect = function(point2) { - return intersect.rect(node, point2); - }; - return shapeSvg; -}; -var shapes = { - rhombus: question, - question, - rect, - labelRect, - rectWithTitle, - choice, - circle, - doublecircle, - stadium, - hexagon, - rect_left_inv_arrow, - lean_right, - lean_left, - trapezoid, - inv_trapezoid, - rect_right_inv_arrow, - cylinder, - start, - end, - note: note$1, - subroutine, - fork: forkJoin, - join: forkJoin, - class_box -}; -var nodeElems = {}; -var insertNode = async (elem, node, dir) => { - let newEl; - let el; - if (node.link) { - let target; - if (getConfig().securityLevel === "sandbox") { - target = "_top"; - } else if (node.linkTarget) { - target = node.linkTarget || "_blank"; - } - newEl = elem.insert("svg:a").attr("xlink:href", node.link).attr("target", target); - el = await shapes[node.shape](newEl, node, dir); - } else { - el = await shapes[node.shape](elem, node, dir); - newEl = el; - } - if (node.tooltip) { - el.attr("title", node.tooltip); - } - if (node.class) { - el.attr("class", "node default " + node.class); - } - nodeElems[node.id] = newEl; - if (node.haveCallback) { - nodeElems[node.id].attr("class", nodeElems[node.id].attr("class") + " clickable"); - } - return newEl; -}; -var setNodeElem = (elem, node) => { - nodeElems[node.id] = elem; -}; -var clear$1 = () => { - nodeElems = {}; -}; -var positionNode = (node) => { - const el = nodeElems[node.id]; - log$1.trace( - "Transforming node", - node.diff, - node, - "translate(" + (node.x - node.width / 2 - 5) + ", " + node.width / 2 + ")" - ); - const padding = 8; - const diff = node.diff || 0; - if (node.clusterNode) { - el.attr( - "transform", - "translate(" + (node.x + diff - node.width / 2) + ", " + (node.y - node.height / 2 - padding) + ")" - ); - } else { - el.attr("transform", "translate(" + node.x + ", " + node.y + ")"); - } - return diff; -}; -var markerOffsets = { - aggregation: 18, - extension: 18, - composition: 18, - dependency: 6, - lollipop: 13.5, - arrow_point: 5.3 -}; -function calculateDeltaAndAngle(point1, point2) { - point1 = pointTransformer(point1); - point2 = pointTransformer(point2); - const [x1, y1] = [point1.x, point1.y]; - const [x2, y2] = [point2.x, point2.y]; - const deltaX = x2 - x1; - const deltaY = y2 - y1; - return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY }; -} -var pointTransformer = (data) => { - if (Array.isArray(data)) { - return { x: data[0], y: data[1] }; - } - return data; -}; -var getLineFunctionsWithOffset = (edge) => { - return { - x: function(d, i, data) { - let offset = 0; - if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { - const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]); - offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1); - } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) { - const { angle, deltaX } = calculateDeltaAndAngle( - data[data.length - 1], - data[data.length - 2] - ); - offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1); - } - return pointTransformer(d).x + offset; - }, - y: function(d, i, data) { - let offset = 0; - if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) { - const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]); - offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1); - } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) { - const { angle, deltaY } = calculateDeltaAndAngle( - data[data.length - 1], - data[data.length - 2] - ); - offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1); - } - return pointTransformer(d).y + offset; - } - }; -}; -var edgeLabels = {}; -var terminalLabels = {}; -var clear = () => { - edgeLabels = {}; - terminalLabels = {}; -}; -var insertEdgeLabel = (elem, edge) => { - const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels); - const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, { - style: edge.labelStyle, - useHtmlLabels, - addSvgBackground: true - }) : createLabel$1(edge.label, edge.labelStyle); - log$1.info("abc82", edge, edge.labelType); - const edgeLabel = elem.insert("g").attr("class", "edgeLabel"); - const label = edgeLabel.insert("g").attr("class", "label"); - label.node().appendChild(labelElement); - let bbox = labelElement.getBBox(); - if (useHtmlLabels) { - const div = labelElement.children[0]; - const dv = select_default(labelElement); - bbox = div.getBoundingClientRect(); - dv.attr("width", bbox.width); - dv.attr("height", bbox.height); - } - label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")"); - edgeLabels[edge.id] = edgeLabel; - edge.width = bbox.width; - edge.height = bbox.height; - let fo; - if (edge.startLabelLeft) { - const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle); - const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals"); - const inner = startEdgeLabelLeft.insert("g").attr("class", "inner"); - fo = inner.node().appendChild(startLabelElement); - const slBox = startLabelElement.getBBox(); - inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); - if (!terminalLabels[edge.id]) { - terminalLabels[edge.id] = {}; - } - terminalLabels[edge.id].startLeft = startEdgeLabelLeft; - setTerminalWidth(fo, edge.startLabelLeft); - } - if (edge.startLabelRight) { - const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle); - const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals"); - const inner = startEdgeLabelRight.insert("g").attr("class", "inner"); - fo = startEdgeLabelRight.node().appendChild(startLabelElement); - inner.node().appendChild(startLabelElement); - const slBox = startLabelElement.getBBox(); - inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); - if (!terminalLabels[edge.id]) { - terminalLabels[edge.id] = {}; - } - terminalLabels[edge.id].startRight = startEdgeLabelRight; - setTerminalWidth(fo, edge.startLabelRight); - } - if (edge.endLabelLeft) { - const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle); - const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals"); - const inner = endEdgeLabelLeft.insert("g").attr("class", "inner"); - fo = inner.node().appendChild(endLabelElement); - const slBox = endLabelElement.getBBox(); - inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); - endEdgeLabelLeft.node().appendChild(endLabelElement); - if (!terminalLabels[edge.id]) { - terminalLabels[edge.id] = {}; - } - terminalLabels[edge.id].endLeft = endEdgeLabelLeft; - setTerminalWidth(fo, edge.endLabelLeft); - } - if (edge.endLabelRight) { - const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle); - const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals"); - const inner = endEdgeLabelRight.insert("g").attr("class", "inner"); - fo = inner.node().appendChild(endLabelElement); - const slBox = endLabelElement.getBBox(); - inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")"); - endEdgeLabelRight.node().appendChild(endLabelElement); - if (!terminalLabels[edge.id]) { - terminalLabels[edge.id] = {}; - } - terminalLabels[edge.id].endRight = endEdgeLabelRight; - setTerminalWidth(fo, edge.endLabelRight); - } - return labelElement; -}; -function setTerminalWidth(fo, value) { - if (getConfig().flowchart.htmlLabels && fo) { - fo.style.width = value.length * 9 + "px"; - fo.style.height = "12px"; - } -} -var positionEdgeLabel = (edge, paths) => { - log$1.info("Moving label abc78 ", edge.id, edge.label, edgeLabels[edge.id]); - let path = paths.updatedPath ? paths.updatedPath : paths.originalPath; - if (edge.label) { - const el = edgeLabels[edge.id]; - let x = edge.x; - let y = edge.y; - if (path) { - const pos = utils.calcLabelPosition(path); - log$1.info( - "Moving label " + edge.label + " from (", - x, - ",", - y, - ") to (", - pos.x, - ",", - pos.y, - ") abc78" - ); - if (paths.updatedPath) { - x = pos.x; - y = pos.y; - } - } - el.attr("transform", "translate(" + x + ", " + y + ")"); - } - if (edge.startLabelLeft) { - const el = terminalLabels[edge.id].startLeft; - let x = edge.x; - let y = edge.y; - if (path) { - const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path); - x = pos.x; - y = pos.y; - } - el.attr("transform", "translate(" + x + ", " + y + ")"); - } - if (edge.startLabelRight) { - const el = terminalLabels[edge.id].startRight; - let x = edge.x; - let y = edge.y; - if (path) { - const pos = utils.calcTerminalLabelPosition( - edge.arrowTypeStart ? 10 : 0, - "start_right", - path - ); - x = pos.x; - y = pos.y; - } - el.attr("transform", "translate(" + x + ", " + y + ")"); - } - if (edge.endLabelLeft) { - const el = terminalLabels[edge.id].endLeft; - let x = edge.x; - let y = edge.y; - if (path) { - const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path); - x = pos.x; - y = pos.y; - } - el.attr("transform", "translate(" + x + ", " + y + ")"); - } - if (edge.endLabelRight) { - const el = terminalLabels[edge.id].endRight; - let x = edge.x; - let y = edge.y; - if (path) { - const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path); - x = pos.x; - y = pos.y; - } - el.attr("transform", "translate(" + x + ", " + y + ")"); - } -}; -var outsideNode = (node, point2) => { - const x = node.x; - const y = node.y; - const dx = Math.abs(point2.x - x); - const dy = Math.abs(point2.y - y); - const w = node.width / 2; - const h = node.height / 2; - if (dx >= w || dy >= h) { - return true; - } - return false; -}; -var intersection = (node, outsidePoint, insidePoint) => { - log$1.warn(`intersection calc abc89: - outsidePoint: ${JSON.stringify(outsidePoint)} - insidePoint : ${JSON.stringify(insidePoint)} - node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`); - const x = node.x; - const y = node.y; - const dx = Math.abs(x - insidePoint.x); - const w = node.width / 2; - let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx; - const h = node.height / 2; - const Q = Math.abs(outsidePoint.y - insidePoint.y); - const R = Math.abs(outsidePoint.x - insidePoint.x); - if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { - let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y; - r = R * q / Q; - const res = { - x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r, - y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q - }; - if (r === 0) { - res.x = outsidePoint.x; - res.y = outsidePoint.y; - } - if (R === 0) { - res.x = outsidePoint.x; - } - if (Q === 0) { - res.y = outsidePoint.y; - } - log$1.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res); - return res; - } else { - if (insidePoint.x < outsidePoint.x) { - r = outsidePoint.x - w - x; - } else { - r = x - w - outsidePoint.x; - } - let q = Q * r / R; - let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r; - let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q; - log$1.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y }); - if (r === 0) { - _x = outsidePoint.x; - _y = outsidePoint.y; - } - if (R === 0) { - _x = outsidePoint.x; - } - if (Q === 0) { - _y = outsidePoint.y; - } - return { x: _x, y: _y }; - } -}; -var cutPathAtIntersect = (_points, boundryNode) => { - log$1.warn("abc88 cutPathAtIntersect", _points, boundryNode); - let points = []; - let lastPointOutside = _points[0]; - let isInside = false; - _points.forEach((point2) => { - log$1.info("abc88 checking point", point2, boundryNode); - if (!outsideNode(boundryNode, point2) && !isInside) { - const inter = intersection(boundryNode, lastPointOutside, point2); - log$1.warn("abc88 inside", point2, lastPointOutside, inter); - log$1.warn("abc88 intersection", inter); - let pointPresent = false; - points.forEach((p) => { - pointPresent = pointPresent || p.x === inter.x && p.y === inter.y; - }); - if (!points.some((e) => e.x === inter.x && e.y === inter.y)) { - points.push(inter); - } else { - log$1.warn("abc88 no intersect", inter, points); - } - isInside = true; - } else { - log$1.warn("abc88 outside", point2, lastPointOutside); - lastPointOutside = point2; - if (!isInside) { - points.push(point2); - } - } - }); - log$1.warn("abc88 returning points", points); - return points; -}; -var insertEdge = function(elem, e, edge, clusterDb, diagramType, graph, id) { - let points = edge.points; - let pointsHasChanged = false; - const tail = graph.node(e.v); - var head = graph.node(e.w); - log$1.info("abc88 InsertEdge: ", edge); - if (head.intersect && tail.intersect) { - points = points.slice(1, edge.points.length - 1); - points.unshift(tail.intersect(points[0])); - log$1.info( - "Last point", - points[points.length - 1], - head, - head.intersect(points[points.length - 1]) - ); - points.push(head.intersect(points[points.length - 1])); - } - if (edge.toCluster) { - log$1.info("to cluster abc88", clusterDb[edge.toCluster]); - points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node); - pointsHasChanged = true; - } - if (edge.fromCluster) { - log$1.info("from cluster abc88", clusterDb[edge.fromCluster]); - points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse(); - pointsHasChanged = true; - } - const lineData = points.filter((p) => !Number.isNaN(p.y)); - let curve = basis_default; - if (edge.curve && (diagramType === "graph" || diagramType === "flowchart")) { - curve = edge.curve; - } - const { x, y } = getLineFunctionsWithOffset(edge); - const lineFunction = line_default().x(x).y(y).curve(curve); - let strokeClasses; - switch (edge.thickness) { - case "normal": - strokeClasses = "edge-thickness-normal"; - break; - case "thick": - strokeClasses = "edge-thickness-thick"; - break; - case "invisible": - strokeClasses = "edge-thickness-thick"; - break; - default: - strokeClasses = ""; - } - switch (edge.pattern) { - case "solid": - strokeClasses += " edge-pattern-solid"; - break; - case "dotted": - strokeClasses += " edge-pattern-dotted"; - break; - case "dashed": - strokeClasses += " edge-pattern-dashed"; - break; - } - const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style); - let url = ""; - if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - log$1.info("arrowTypeStart", edge.arrowTypeStart); - log$1.info("arrowTypeEnd", edge.arrowTypeEnd); - switch (edge.arrowTypeStart) { - case "arrow_cross": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-crossStart)" - ); - break; - case "arrow_point": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-pointStart)" - ); - break; - case "arrow_barb": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-barbStart)" - ); - break; - case "arrow_circle": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-circleStart)" - ); - break; - case "aggregation": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-aggregationStart)" - ); - break; - case "extension": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-extensionStart)" - ); - break; - case "composition": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-compositionStart)" - ); - break; - case "dependency": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-dependencyStart)" - ); - break; - case "lollipop": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-lollipopStart)" - ); - break; - } - switch (edge.arrowTypeEnd) { - case "arrow_cross": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-crossEnd)"); - break; - case "arrow_point": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-pointEnd)"); - break; - case "arrow_barb": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-barbEnd)"); - break; - case "arrow_circle": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-circleEnd)"); - break; - case "aggregation": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-aggregationEnd)" - ); - break; - case "extension": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-extensionEnd)" - ); - break; - case "composition": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-compositionEnd)" - ); - break; - case "dependency": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-dependencyEnd)" - ); - break; - case "lollipop": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-lollipopEnd)" - ); - break; - } - let paths = {}; - if (pointsHasChanged) { - paths.updatedPath = points; - } - paths.originalPath = edge.points; - return paths; -}; - -export { - insertMarkers$1, - createLabel$1, - labelHelper, - updateNodeBounds, - intersectRect$1, - insertNode, - setNodeElem, - clear$1, - positionNode, - getLineFunctionsWithOffset, - clear, - insertEdgeLabel, - positionEdgeLabel, - insertEdge -}; -//# sourceMappingURL=chunk-ULQHWUKP.js.map diff --git a/.vuepress/.cache/deps/chunk-ULQHWUKP.js.map b/.vuepress/.cache/deps/chunk-ULQHWUKP.js.map deleted file mode 100644 index f59f3db26..000000000 --- a/.vuepress/.cache/deps/chunk-ULQHWUKP.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/edges-80f1ebb6.js"], - "sourcesContent": ["import { l as log, m as evaluate, c as getConfig, J as decodeEntities, d as sanitizeText, u as utils } from \"./mermaid-934d9bea.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { a as createText } from \"./createText-aebacdfe.js\";\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\nconst extension = (elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n};\nconst composition = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n};\nconst aggregation = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n};\nconst dependency = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n};\nconst lollipop = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n};\nconst point = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 6).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n};\nconst circle$1 = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n};\nconst cross = (elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n};\nconst barb = (elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"strokeWidth\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n};\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle: circle$1,\n cross,\n barb\n};\nconst insertMarkers$1 = insertMarkers;\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\nfunction addHtmlLabel(node) {\n const fo = select(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const label = node.label;\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n div.html(\n '\" + label + \"\"\n );\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
\");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n let vertexNode = addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\nconst createLabel$1 = createLabel;\nconst labelHelper = async (parent, node, _classes, isNode) => {\n let classes;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig().flowchart.htmlLabels);\n if (!_classes) {\n classes = \"node default\";\n } else {\n classes = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", node.labelStyle);\n let labelText;\n if (node.labelText === void 0) {\n labelText = \"\";\n } else {\n labelText = typeof node.labelText === \"string\" ? node.labelText : node.labelText[0];\n }\n const textNode = label.node();\n let text;\n if (node.labelType === \"markdown\") {\n text = createText(label, sanitizeText(decodeEntities(labelText), getConfig()), {\n useHtmlLabels,\n width: node.width || getConfig().flowchart.wrappingWidth,\n classes: \"markdown-node-label\"\n });\n } else {\n text = textNode.appendChild(\n createLabel$1(\n sanitizeText(decodeEntities(labelText), getConfig()),\n node.labelStyle,\n false,\n isNode\n )\n );\n }\n let bbox = text.getBBox();\n const halfPadding = node.padding / 2;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = labelText.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n img.style.width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n label.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n label.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label };\n};\nconst updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nfunction intersectNode(node, point2) {\n return node.intersect(point2);\n}\nfunction intersectEllipse(node, rx, ry, point2) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point2.x;\n var py = cy - point2.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point2.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point2.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\nfunction intersectCircle(node, rx, point2) {\n return intersectEllipse(node, rx, rx, point2);\n}\nfunction intersectLine(p1, p2, q1, q2) {\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return;\n }\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n offset = Math.abs(denom / 2);\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n}\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\nfunction intersectPolygon(node, polyPoints, point2) {\n var x1 = node.x;\n var y1 = node.y;\n var intersections = [];\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect2 = intersectLine(\n node,\n point2,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect2) {\n intersections.push(intersect2);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n var pdx = p.x - point2.x;\n var pdy = p.y - point2.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n var qdx = q.x - point2.x;\n var qdy = q.y - point2.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\nconst intersectRect = (node, point2) => {\n var x = node.x;\n var y = node.y;\n var dx = point2.x - x;\n var dy = point2.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n};\nconst intersectRect$1 = intersectRect;\nconst intersect = {\n node: intersectNode,\n circle: intersectCircle,\n ellipse: intersectEllipse,\n polygon: intersectPolygon,\n rect: intersectRect$1\n};\nconst note = async (parent, node) => {\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart.htmlLabels;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes,\n true\n );\n log.info(\"Classes = \", node.classes);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst note$1 = note;\nconst formatClass = (str) => {\n if (str) {\n return \" \" + str;\n }\n return \"\";\n};\nconst getClassesFromNode = (node, otherClasses) => {\n return `${otherClasses ? otherClasses : \"node default\"}${formatClass(node.classes)} ${formatClass(\n node.class\n )}`;\n};\nconst question = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n log.info(\"Question main (Circle)\");\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr(\"style\", node.style);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point2) {\n log.warn(\"Intersect called\");\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst choice = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const choice2 = shapeSvg.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n );\n choice2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 28).attr(\"height\", 28);\n node.width = 28;\n node.height = 28;\n node.intersect = function(point2) {\n return intersect.circle(node, 14, point2);\n };\n return shapeSvg;\n};\nconst hexagon = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr(\"style\", node.style);\n updateNodeBounds(node, hex);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_left_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n node.width = w + h;\n node.height = h;\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_right = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(parent, node, getClassesFromNode(node), true);\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst lean_left = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst inv_trapezoid = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst rect_right_inv_arrow = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst cylinder = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const el = shapeSvg.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"style\", node.style).attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n const pos = intersect.rect(node, point2);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point2.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n};\nconst rect = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n \"node \" + node.classes + \" \" + node.class,\n true\n );\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = bbox.width + node.padding;\n const totalHeight = bbox.height + node.padding;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst labelRect = async (parent, node) => {\n const { shapeSvg } = await labelHelper(parent, node, \"label\", true);\n log.trace(\"Classes = \", node.class);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0;\n const totalHeight = 0;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n if (node.props) {\n const propKeys = new Set(Object.keys(node.props));\n if (node.props.borders) {\n applyNodePropertyBorders(rect2, node.props.borders, totalWidth, totalHeight);\n propKeys.delete(\"borders\");\n }\n propKeys.forEach((propKey) => {\n log.warn(`Unknown node property ${propKey}`);\n });\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nfunction applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {\n const strokeDashArray = [];\n const addBorder = (length) => {\n strokeDashArray.push(length, 0);\n };\n const skipBorder = (length) => {\n strokeDashArray.push(0, length);\n };\n if (borders.includes(\"t\")) {\n log.debug(\"add top border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"r\")) {\n log.debug(\"add right border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n if (borders.includes(\"b\")) {\n log.debug(\"add bottom border\");\n addBorder(totalWidth);\n } else {\n skipBorder(totalWidth);\n }\n if (borders.includes(\"l\")) {\n log.debug(\"add left border\");\n addBorder(totalHeight);\n } else {\n skipBorder(totalHeight);\n }\n rect2.attr(\"stroke-dasharray\", strokeDashArray.join(\" \"));\n}\nconst rectWithTitle = (parent, node) => {\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const innerLine = shapeSvg.insert(\"line\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n let title = \"\";\n if (typeof text2 === \"object\") {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info(\"Label text abc79\", title, text2, typeof text2 === \"object\");\n const text = label.node().appendChild(createLabel$1(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label.node().appendChild(\n createLabel$1(textRows.join ? textRows.join(\"
\") : textRows, node.labelStyle, true, true)\n );\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const halfPadding = node.padding / 2;\n select(descr).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select(text).attr(\n \"transform\",\n \"translate( \" + // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst stadium = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\").attr(\"style\", node.style).attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst circle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"Circle main\");\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n log.info(\"Circle intersect\", node, bbox.width / 2 + halfPadding, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point2);\n };\n return shapeSvg;\n};\nconst doublecircle = async (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const gap = 5;\n const circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", node.class);\n outerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding + gap).attr(\"width\", bbox.width + node.padding + gap * 2).attr(\"height\", bbox.height + node.padding + gap * 2);\n innerCircle.attr(\"style\", node.style).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"r\", bbox.width / 2 + halfPadding).attr(\"width\", bbox.width + node.padding).attr(\"height\", bbox.height + node.padding);\n log.info(\"DoubleCircle main\");\n updateNodeBounds(node, outerCircle);\n node.intersect = function(point2) {\n log.info(\"DoubleCircle intersect\", node, bbox.width / 2 + halfPadding + gap, point2);\n return intersect.circle(node, bbox.width / 2 + halfPadding + gap, point2);\n };\n return shapeSvg;\n};\nconst subroutine = async (parent, node) => {\n const { shapeSvg, bbox } = await labelHelper(\n parent,\n node,\n getClassesFromNode(node, void 0),\n true\n );\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr(\"style\", node.style);\n updateNodeBounds(node, el);\n node.intersect = function(point2) {\n return intersect.polygon(node, points, point2);\n };\n return shapeSvg;\n};\nconst start = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let width = 70;\n let height = 10;\n if (dir === \"LR\") {\n width = 10;\n height = 70;\n }\n const shape = shapeSvg.append(\"rect\").attr(\"x\", -1 * width / 2).attr(\"y\", -1 * height / 2).attr(\"width\", width).attr(\"height\", height).attr(\"class\", \"fork-join\");\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst end = (parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const innerCircle = shapeSvg.insert(\"circle\", \":first-child\");\n const circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n innerCircle.attr(\"class\", \"state-end\").attr(\"r\", 5).attr(\"width\", 10).attr(\"height\", 10);\n updateNodeBounds(node, circle2);\n node.intersect = function(point2) {\n return intersect.circle(node, 7, point2);\n };\n return shapeSvg;\n};\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n let classes;\n if (!node.classes) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const topLine = shapeSvg.insert(\"line\");\n const bottomLine = shapeSvg.insert(\"line\");\n let maxWidth = 0;\n let maxHeight = rowPadding;\n const labelContainer = shapeSvg.insert(\"g\").attr(\"class\", \"label\");\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n const interfaceLabelText = node.classData.annotations[0] ? \"«\" + node.classData.annotations[0] + \"»\" : \"\";\n const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr(\"width\", interfaceBBox.width);\n dv.attr(\"height\", interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n let classTitleString = node.classData.label;\n if (node.classData.type !== void 0 && node.classData.type !== \"\") {\n if (getConfig().flowchart.htmlLabels) {\n classTitleString += \"<\" + node.classData.type + \">\";\n } else {\n classTitleString += \"<\" + node.classData.type + \">\";\n }\n }\n const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr(\"class\", \"classTitle\");\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr(\"width\", classTitleBBox.width);\n dv.attr(\"height\", classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let parsedText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n parsedText = parsedText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n parsedText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n maxHeight += lineHeight;\n const classMethods = [];\n node.classData.methods.forEach((member) => {\n const parsedInfo = member.getDisplayDetails();\n let displayText = parsedInfo.displayText;\n if (getConfig().flowchart.htmlLabels) {\n displayText = displayText.replace(//g, \">\");\n }\n const lbl = labelContainer.node().appendChild(\n createLabel$1(\n displayText,\n parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle,\n true,\n true\n )\n );\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classMethods.push(lbl);\n });\n maxHeight += lineHeight;\n if (hasInterface) {\n let diffX2 = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX2) + \", \" + -1 * maxHeight / 2 + \")\"\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n \"transform\",\n \"translate( \" + (-1 * maxWidth / 2 + diffX) + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n verticalPos += classTitleBBox.height + rowPadding;\n topLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + \")\"\n );\n const memberBBox = lbl == null ? void 0 : lbl.getBBox();\n verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding;\n });\n verticalPos += lineHeight;\n bottomLine.attr(\"class\", \"divider\").attr(\"x1\", -maxWidth / 2 - halfPadding).attr(\"x2\", maxWidth / 2 + halfPadding).attr(\"y1\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr(\"y2\", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n verticalPos += lineHeight;\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n \"transform\",\n \"translate( \" + -maxWidth / 2 + \", \" + (-1 * maxHeight / 2 + verticalPos) + \")\"\n );\n const memberBBox = lbl == null ? void 0 : lbl.getBBox();\n verticalPos += ((memberBBox == null ? void 0 : memberBBox.height) ?? 0) + rowPadding;\n });\n rect2.attr(\"class\", \"outer title-state\").attr(\"x\", -maxWidth / 2 - halfPadding).attr(\"y\", -(maxHeight / 2) - halfPadding).attr(\"width\", maxWidth + node.padding).attr(\"height\", maxHeight + node.padding);\n updateNodeBounds(node, rect2);\n node.intersect = function(point2) {\n return intersect.rect(node, point2);\n };\n return shapeSvg;\n};\nconst shapes = {\n rhombus: question,\n question,\n rect,\n labelRect,\n rectWithTitle,\n choice,\n circle,\n doublecircle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note: note$1,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box\n};\nlet nodeElems = {};\nconst insertNode = async (elem, node, dir) => {\n let newEl;\n let el;\n if (node.link) {\n let target;\n if (getConfig().securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target);\n el = await shapes[node.shape](newEl, node, dir);\n } else {\n el = await shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n if (node.class) {\n el.attr(\"class\", \"node default \" + node.class);\n }\n nodeElems[node.id] = newEl;\n if (node.haveCallback) {\n nodeElems[node.id].attr(\"class\", nodeElems[node.id].attr(\"class\") + \" clickable\");\n }\n return newEl;\n};\nconst setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nconst clear$1 = () => {\n nodeElems = {};\n};\nconst positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n};\nconst markerOffsets = {\n aggregation: 18,\n extension: 18,\n composition: 18,\n dependency: 6,\n lollipop: 13.5,\n arrow_point: 5.3\n};\nfunction calculateDeltaAndAngle(point1, point2) {\n point1 = pointTransformer(point1);\n point2 = pointTransformer(point2);\n const [x1, y1] = [point1.x, point1.y];\n const [x2, y2] = [point2.x, point2.y];\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };\n}\nconst pointTransformer = (data) => {\n if (Array.isArray(data)) {\n return { x: data[0], y: data[1] };\n }\n return data;\n};\nconst getLineFunctionsWithOffset = (edge) => {\n return {\n x: function(d, i, data) {\n let offset = 0;\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaX } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n }\n return pointTransformer(d).x + offset;\n },\n y: function(d, i, data) {\n let offset = 0;\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaY } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n }\n return pointTransformer(d).y + offset;\n }\n };\n};\nlet edgeLabels = {};\nlet terminalLabels = {};\nconst clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\nconst insertEdgeLabel = (elem, edge) => {\n const useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const labelElement = edge.labelType === \"markdown\" ? createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true\n }) : createLabel$1(edge.label, edge.labelStyle);\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels[edge.id] = edgeLabel;\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n};\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\nconst positionEdgeLabel = (edge, paths) => {\n log.info(\"Moving label abc78 \", edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcLabelPosition(path);\n log.info(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc78\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n }\n};\nconst outsideNode = (node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\nconst intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n};\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundryNode);\n if (!outsideNode(boundryNode, point2) && !isInside) {\n const inter = intersection(boundryNode, lastPointOutside, point2);\n log.warn(\"abc88 inside\", point2, lastPointOutside, inter);\n log.warn(\"abc88 intersection\", inter);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.warn(\"abc88 returning points\", points);\n return points;\n};\nconst insertEdge = function(elem, e, edge, clusterDb, diagramType, graph, id) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n log.info(\"abc88 InsertEdge: \", edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n \"Last point\",\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.info(\"from cluster abc88\", clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n pointsHasChanged = true;\n }\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n let curve = curveBasis;\n if (edge.curve && (diagramType === \"graph\" || diagramType === \"flowchart\")) {\n curve = edge.curve;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n default:\n strokeClasses = \"\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n }\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edge.style);\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n switch (edge.arrowTypeStart) {\n case \"arrow_cross\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-crossStart)\"\n );\n break;\n case \"arrow_point\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-pointStart)\"\n );\n break;\n case \"arrow_barb\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-barbStart)\"\n );\n break;\n case \"arrow_circle\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-circleStart)\"\n );\n break;\n case \"aggregation\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-aggregationStart)\"\n );\n break;\n case \"extension\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-extensionStart)\"\n );\n break;\n case \"composition\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-compositionStart)\"\n );\n break;\n case \"dependency\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-dependencyStart)\"\n );\n break;\n case \"lollipop\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-lollipopStart)\"\n );\n break;\n }\n switch (edge.arrowTypeEnd) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-crossEnd)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-pointEnd)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-barbEnd)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-circleEnd)\");\n break;\n case \"aggregation\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-aggregationEnd)\"\n );\n break;\n case \"extension\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-extensionEnd)\"\n );\n break;\n case \"composition\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-compositionEnd)\"\n );\n break;\n case \"dependency\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-dependencyEnd)\"\n );\n break;\n case \"lollipop\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-lollipopEnd)\"\n );\n break;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\nexport {\n insertMarkers$1 as a,\n clear$1 as b,\n createLabel$1 as c,\n clear as d,\n insertNode as e,\n insertEdgeLabel as f,\n insertEdge as g,\n positionEdgeLabel as h,\n intersectRect$1 as i,\n getLineFunctionsWithOffset as j,\n labelHelper as l,\n positionNode as p,\n setNodeElem as s,\n updateNodeBounds as u\n};\n"], - "mappings": "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", - "names": [] -} diff --git a/.vuepress/.cache/deps/chunk-UV6QJ4UL.js b/.vuepress/.cache/deps/chunk-UV6QJ4UL.js deleted file mode 100644 index 7e5686c14..000000000 --- a/.vuepress/.cache/deps/chunk-UV6QJ4UL.js +++ /dev/null @@ -1,108 +0,0 @@ -import { - lineBreakRegex, - require_dist -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/svgDrawCommon-ad5ef572.js -var import_sanitize_url = __toESM(require_dist(), 1); -var drawRect = (element, rectData) => { - const rectElement = element.append("rect"); - rectElement.attr("x", rectData.x); - rectElement.attr("y", rectData.y); - rectElement.attr("fill", rectData.fill); - rectElement.attr("stroke", rectData.stroke); - rectElement.attr("width", rectData.width); - rectElement.attr("height", rectData.height); - rectData.rx !== void 0 && rectElement.attr("rx", rectData.rx); - rectData.ry !== void 0 && rectElement.attr("ry", rectData.ry); - if (rectData.attrs !== void 0) { - for (const attrKey in rectData.attrs) { - rectElement.attr(attrKey, rectData.attrs[attrKey]); - } - } - rectData.class !== void 0 && rectElement.attr("class", rectData.class); - return rectElement; -}; -var drawBackgroundRect = (element, bounds) => { - const rectData = { - x: bounds.startx, - y: bounds.starty, - width: bounds.stopx - bounds.startx, - height: bounds.stopy - bounds.starty, - fill: bounds.fill, - stroke: bounds.stroke, - class: "rect" - }; - const rectElement = drawRect(element, rectData); - rectElement.lower(); -}; -var drawText = (element, textData) => { - const nText = textData.text.replace(lineBreakRegex, " "); - const textElem = element.append("text"); - textElem.attr("x", textData.x); - textElem.attr("y", textData.y); - textElem.attr("class", "legend"); - textElem.style("text-anchor", textData.anchor); - textData.class !== void 0 && textElem.attr("class", textData.class); - const tspan = textElem.append("tspan"); - tspan.attr("x", textData.x + textData.textMargin * 2); - tspan.text(nText); - return textElem; -}; -var drawImage = (elem, x, y, link) => { - const imageElement = elem.append("image"); - imageElement.attr("x", x); - imageElement.attr("y", y); - const sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(link); - imageElement.attr("xlink:href", sanitizedLink); -}; -var drawEmbeddedImage = (element, x, y, link) => { - const imageElement = element.append("use"); - imageElement.attr("x", x); - imageElement.attr("y", y); - const sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(link); - imageElement.attr("xlink:href", `#${sanitizedLink}`); -}; -var getNoteRect = () => { - const noteRectData = { - x: 0, - y: 0, - width: 100, - height: 100, - fill: "#EDF2AE", - stroke: "#666", - anchor: "start", - rx: 0, - ry: 0 - }; - return noteRectData; -}; -var getTextObj = () => { - const testObject = { - x: 0, - y: 0, - width: 100, - height: 100, - "text-anchor": "start", - style: "#666", - textMargin: 0, - rx: 0, - ry: 0, - tspan: true - }; - return testObject; -}; - -export { - drawRect, - drawBackgroundRect, - drawText, - drawImage, - drawEmbeddedImage, - getNoteRect, - getTextObj -}; -//# sourceMappingURL=chunk-UV6QJ4UL.js.map diff --git a/.vuepress/.cache/deps/chunk-UV6QJ4UL.js.map b/.vuepress/.cache/deps/chunk-UV6QJ4UL.js.map deleted file mode 100644 index 6dfea8fdd..000000000 --- a/.vuepress/.cache/deps/chunk-UV6QJ4UL.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/svgDrawCommon-ad5ef572.js"], - "sourcesContent": ["import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport { H as lineBreakRegex } from \"./mermaid-934d9bea.js\";\nconst drawRect = (element, rectData) => {\n const rectElement = element.append(\"rect\");\n rectElement.attr(\"x\", rectData.x);\n rectElement.attr(\"y\", rectData.y);\n rectElement.attr(\"fill\", rectData.fill);\n rectElement.attr(\"stroke\", rectData.stroke);\n rectElement.attr(\"width\", rectData.width);\n rectElement.attr(\"height\", rectData.height);\n rectData.rx !== void 0 && rectElement.attr(\"rx\", rectData.rx);\n rectData.ry !== void 0 && rectElement.attr(\"ry\", rectData.ry);\n if (rectData.attrs !== void 0) {\n for (const attrKey in rectData.attrs) {\n rectElement.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n rectData.class !== void 0 && rectElement.attr(\"class\", rectData.class);\n return rectElement;\n};\nconst drawBackgroundRect = (element, bounds) => {\n const rectData = {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n };\n const rectElement = drawRect(element, rectData);\n rectElement.lower();\n};\nconst drawText = (element, textData) => {\n const nText = textData.text.replace(lineBreakRegex, \" \");\n const textElem = element.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n textData.class !== void 0 && textElem.attr(\"class\", textData.class);\n const tspan = textElem.append(\"tspan\");\n tspan.attr(\"x\", textData.x + textData.textMargin * 2);\n tspan.text(nText);\n return textElem;\n};\nconst drawImage = (elem, x, y, link) => {\n const imageElement = elem.append(\"image\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", sanitizedLink);\n};\nconst drawEmbeddedImage = (element, x, y, link) => {\n const imageElement = element.append(\"use\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", `#${sanitizedLink}`);\n};\nconst getNoteRect = () => {\n const noteRectData = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n return noteRectData;\n};\nconst getTextObj = () => {\n const testObject = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true\n };\n return testObject;\n};\nexport {\n drawBackgroundRect as a,\n drawEmbeddedImage as b,\n drawImage as c,\n drawRect as d,\n getTextObj as e,\n drawText as f,\n getNoteRect as g\n};\n"], - "mappings": ";;;;;;;;;AAAA,0BAA4B;AAE5B,IAAM,WAAW,CAAC,SAAS,aAAa;AACtC,QAAM,cAAc,QAAQ,OAAO,MAAM;AACzC,cAAY,KAAK,KAAK,SAAS,CAAC;AAChC,cAAY,KAAK,KAAK,SAAS,CAAC;AAChC,cAAY,KAAK,QAAQ,SAAS,IAAI;AACtC,cAAY,KAAK,UAAU,SAAS,MAAM;AAC1C,cAAY,KAAK,SAAS,SAAS,KAAK;AACxC,cAAY,KAAK,UAAU,SAAS,MAAM;AAC1C,WAAS,OAAO,UAAU,YAAY,KAAK,MAAM,SAAS,EAAE;AAC5D,WAAS,OAAO,UAAU,YAAY,KAAK,MAAM,SAAS,EAAE;AAC5D,MAAI,SAAS,UAAU,QAAQ;AAC7B,eAAW,WAAW,SAAS,OAAO;AACpC,kBAAY,KAAK,SAAS,SAAS,MAAM,OAAO,CAAC;AAAA,IACnD;AAAA,EACF;AACA,WAAS,UAAU,UAAU,YAAY,KAAK,SAAS,SAAS,KAAK;AACrE,SAAO;AACT;AACA,IAAM,qBAAqB,CAAC,SAAS,WAAW;AAC9C,QAAM,WAAW;AAAA,IACf,GAAG,OAAO;AAAA,IACV,GAAG,OAAO;AAAA,IACV,OAAO,OAAO,QAAQ,OAAO;AAAA,IAC7B,QAAQ,OAAO,QAAQ,OAAO;AAAA,IAC9B,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,OAAO;AAAA,EACT;AACA,QAAM,cAAc,SAAS,SAAS,QAAQ;AAC9C,cAAY,MAAM;AACpB;AACA,IAAM,WAAW,CAAC,SAAS,aAAa;AACtC,QAAM,QAAQ,SAAS,KAAK,QAAQ,gBAAgB,GAAG;AACvD,QAAM,WAAW,QAAQ,OAAO,MAAM;AACtC,WAAS,KAAK,KAAK,SAAS,CAAC;AAC7B,WAAS,KAAK,KAAK,SAAS,CAAC;AAC7B,WAAS,KAAK,SAAS,QAAQ;AAC/B,WAAS,MAAM,eAAe,SAAS,MAAM;AAC7C,WAAS,UAAU,UAAU,SAAS,KAAK,SAAS,SAAS,KAAK;AAClE,QAAM,QAAQ,SAAS,OAAO,OAAO;AACrC,QAAM,KAAK,KAAK,SAAS,IAAI,SAAS,aAAa,CAAC;AACpD,QAAM,KAAK,KAAK;AAChB,SAAO;AACT;AACA,IAAM,YAAY,CAAC,MAAM,GAAG,GAAG,SAAS;AACtC,QAAM,eAAe,KAAK,OAAO,OAAO;AACxC,eAAa,KAAK,KAAK,CAAC;AACxB,eAAa,KAAK,KAAK,CAAC;AACxB,QAAM,oBAAgB,iCAAY,IAAI;AACtC,eAAa,KAAK,cAAc,aAAa;AAC/C;AACA,IAAM,oBAAoB,CAAC,SAAS,GAAG,GAAG,SAAS;AACjD,QAAM,eAAe,QAAQ,OAAO,KAAK;AACzC,eAAa,KAAK,KAAK,CAAC;AACxB,eAAa,KAAK,KAAK,CAAC;AACxB,QAAM,oBAAgB,iCAAY,IAAI;AACtC,eAAa,KAAK,cAAc,IAAI,aAAa,EAAE;AACrD;AACA,IAAM,cAAc,MAAM;AACxB,QAAM,eAAe;AAAA,IACnB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,SAAO;AACT;AACA,IAAM,aAAa,MAAM;AACvB,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,EACT;AACA,SAAO;AACT;", - "names": [] -} diff --git a/.vuepress/.cache/deps/classDiagram-48ab76fb-5VDHWXIK.js b/.vuepress/.cache/deps/classDiagram-48ab76fb-5VDHWXIK.js deleted file mode 100644 index 79698c398..000000000 --- a/.vuepress/.cache/deps/classDiagram-48ab76fb-5VDHWXIK.js +++ /dev/null @@ -1,377 +0,0 @@ -import { - db, - parser$1, - styles -} from "./chunk-LEUM4LB3.js"; -import { - Graph, - layout -} from "./chunk-C55JCHDM.js"; -import { - basis_default, - configureSvgSize, - getConfig, - line_default, - log$1, - parseGenericTypes, - require_dayjs_min, - require_dist, - select_default, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/classDiagram-48ab76fb.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var edgeCount = 0; -var drawEdge = function(elem, path, relation, conf, diagObj) { - const getRelationType = function(type) { - switch (type) { - case diagObj.db.relationType.AGGREGATION: - return "aggregation"; - case diagObj.db.relationType.EXTENSION: - return "extension"; - case diagObj.db.relationType.COMPOSITION: - return "composition"; - case diagObj.db.relationType.DEPENDENCY: - return "dependency"; - case diagObj.db.relationType.LOLLIPOP: - return "lollipop"; - } - }; - path.points = path.points.filter((p) => !Number.isNaN(p.y)); - const lineData = path.points; - const lineFunction = line_default().x(function(d) { - return d.x; - }).y(function(d) { - return d.y; - }).curve(basis_default); - const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation"); - let url = ""; - if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - if (relation.relation.lineType == 1) { - svgPath.attr("class", "relation dashed-line"); - } - if (relation.relation.lineType == 10) { - svgPath.attr("class", "relation dotted-line"); - } - if (relation.relation.type1 !== "none") { - svgPath.attr( - "marker-start", - "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)" - ); - } - if (relation.relation.type2 !== "none") { - svgPath.attr( - "marker-end", - "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)" - ); - } - let x, y; - const l = path.points.length; - let labelPosition = utils.calcLabelPosition(path.points); - x = labelPosition.x; - y = labelPosition.y; - let p1_card_x, p1_card_y; - let p2_card_x, p2_card_y; - if (l % 2 !== 0 && l > 1) { - let cardinality_1_point = utils.calcCardinalityPosition( - relation.relation.type1 !== "none", - path.points, - path.points[0] - ); - let cardinality_2_point = utils.calcCardinalityPosition( - relation.relation.type2 !== "none", - path.points, - path.points[l - 1] - ); - log$1.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point)); - log$1.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point)); - p1_card_x = cardinality_1_point.x; - p1_card_y = cardinality_1_point.y; - p2_card_x = cardinality_2_point.x; - p2_card_y = cardinality_2_point.y; - } - if (relation.title !== void 0) { - const g = elem.append("g").attr("class", "classLabel"); - const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title); - window.label = label; - const bounds = label.node().getBBox(); - g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding); - } - log$1.info("Rendering relation " + JSON.stringify(relation)); - if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") { - const g = elem.append("g").attr("class", "cardinality"); - g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1); - } - if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") { - const g = elem.append("g").attr("class", "cardinality"); - g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2); - } - edgeCount++; -}; -var drawClass = function(elem, classDef, conf, diagObj) { - log$1.debug("Rendering class ", classDef, conf); - const id = classDef.id; - const classInfo = { - id, - label: classDef.id, - width: 0, - height: 0 - }; - const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup"); - let title; - if (classDef.link) { - title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); - } else { - title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); - } - let isFirst = true; - classDef.annotations.forEach(function(member) { - const titleText2 = title.append("tspan").text("«" + member + "»"); - if (!isFirst) { - titleText2.attr("dy", conf.textHeight); - } - isFirst = false; - }); - let classTitleString = getClassTitleString(classDef); - const classTitle = title.append("tspan").text(classTitleString).attr("class", "title"); - if (!isFirst) { - classTitle.attr("dy", conf.textHeight); - } - const titleHeight = title.node().getBBox().height; - let membersLine; - let membersBox; - let methodsLine; - if (classDef.members.length > 0) { - membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2); - const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText"); - isFirst = true; - classDef.members.forEach(function(member) { - addTspan(members, member, isFirst, conf); - isFirst = false; - }); - membersBox = members.node().getBBox(); - } - if (classDef.methods.length > 0) { - methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height); - const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText"); - isFirst = true; - classDef.methods.forEach(function(method) { - addTspan(methods, method, isFirst, conf); - isFirst = false; - }); - } - const classBox = g.node().getBBox(); - var cssClassStr = " "; - if (classDef.cssClasses.length > 0) { - cssClassStr = cssClassStr + classDef.cssClasses.join(" "); - } - const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr); - const rectWidth = rect.node().getBBox().width; - title.node().childNodes.forEach(function(x) { - x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); - }); - if (classDef.tooltip) { - title.insert("title").text(classDef.tooltip); - } - if (membersLine) { - membersLine.attr("x2", rectWidth); - } - if (methodsLine) { - methodsLine.attr("x2", rectWidth); - } - classInfo.width = rectWidth; - classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; - return classInfo; -}; -var getClassTitleString = function(classDef) { - let classTitleString = classDef.id; - if (classDef.type) { - classTitleString += "<" + parseGenericTypes(classDef.type) + ">"; - } - return classTitleString; -}; -var drawNote = function(elem, note, conf, diagObj) { - log$1.debug("Rendering note ", note, conf); - const id = note.id; - const noteInfo = { - id, - text: note.text, - width: 0, - height: 0 - }; - const g = elem.append("g").attr("id", id).attr("class", "classGroup"); - let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0); - const lines = JSON.parse(`"${note.text}"`).split("\n"); - lines.forEach(function(line2) { - log$1.debug(`Adding line: ${line2}`); - text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight); - }); - const noteBox = g.node().getBBox(); - const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr( - "height", - noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin - ); - const rectWidth = rect.node().getBBox().width; - text.node().childNodes.forEach(function(x) { - x.setAttribute("x", (rectWidth - x.getBBox().width) / 2); - }); - noteInfo.width = rectWidth; - noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin; - return noteInfo; -}; -var addTspan = function(textEl, member, isFirst, conf) { - const { displayText, cssStyle } = member.getDisplayDetails(); - const tSpan = textEl.append("tspan").attr("x", conf.padding).text(displayText); - if (cssStyle !== "") { - tSpan.attr("style", member.cssStyle); - } - if (!isFirst) { - tSpan.attr("dy", conf.textHeight); - } -}; -var svgDraw = { - getClassTitleString, - drawClass, - drawEdge, - drawNote -}; -var idCache = {}; -var padding = 20; -var getGraphId = function(label) { - const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label); - if (foundEntry) { - return foundEntry[0]; - } -}; -var insertMarkers = function(elem) { - elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"); - elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"); - elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); -}; -var draw = function(text, id, _version, diagObj) { - const conf = getConfig().class; - idCache = {}; - log$1.info("Rendering diagram " + text); - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const diagram2 = root.select(`[id='${id}']`); - insertMarkers(diagram2); - const g = new Graph({ - multigraph: true - }); - g.setGraph({ - isMultiGraph: true - }); - g.setDefaultEdgeLabel(function() { - return {}; - }); - const classes = diagObj.db.getClasses(); - const keys = Object.keys(classes); - for (const key of keys) { - const classDef = classes[key]; - const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj); - idCache[node.id] = node; - g.setNode(node.id, node); - log$1.info("Org height: " + node.height); - } - const relations = diagObj.db.getRelations(); - relations.forEach(function(relation) { - log$1.info( - "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation) - ); - g.setEdge( - getGraphId(relation.id1), - getGraphId(relation.id2), - { - relation - }, - relation.title || "DEFAULT" - ); - }); - const notes = diagObj.db.getNotes(); - notes.forEach(function(note) { - log$1.debug(`Adding note: ${JSON.stringify(note)}`); - const node = svgDraw.drawNote(diagram2, note, conf, diagObj); - idCache[node.id] = node; - g.setNode(node.id, node); - if (note.class && note.class in classes) { - g.setEdge( - note.id, - getGraphId(note.class), - { - relation: { - id1: note.id, - id2: note.class, - relation: { - type1: "none", - type2: "none", - lineType: 10 - } - } - }, - "DEFAULT" - ); - } - }); - layout(g); - g.nodes().forEach(function(v) { - if (v !== void 0 && g.node(v) !== void 0) { - log$1.debug("Node " + v + ": " + JSON.stringify(g.node(v))); - root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr( - "transform", - "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )" - ); - } - }); - g.edges().forEach(function(e) { - if (e !== void 0 && g.edge(e) !== void 0) { - log$1.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e))); - svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj); - } - }); - const svgBounds = diagram2.node().getBBox(); - const width = svgBounds.width + padding * 2; - const height = svgBounds.height + padding * 2; - configureSvgSize(diagram2, height, width, conf.useMaxWidth); - const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; - log$1.debug(`viewBox ${vBox}`); - diagram2.attr("viewBox", vBox); -}; -var renderer = { - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: (cnf) => { - if (!cnf.class) { - cnf.class = {}; - } - cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - db.clear(); - } -}; -export { - diagram -}; -//# sourceMappingURL=classDiagram-48ab76fb-5VDHWXIK.js.map diff --git a/.vuepress/.cache/deps/classDiagram-48ab76fb-5VDHWXIK.js.map b/.vuepress/.cache/deps/classDiagram-48ab76fb-5VDHWXIK.js.map deleted file mode 100644 index 0217b00ce..000000000 --- a/.vuepress/.cache/deps/classDiagram-48ab76fb-5VDHWXIK.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/classDiagram-48ab76fb.js"], - "sourcesContent": ["import { p as parser, d as db, s as styles } from \"./styles-4ba6ed67.js\";\nimport { line, curveBasis, select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { u as utils, l as log, v as parseGenericTypes, c as getConfig, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nlet edgeCount = 0;\nconst drawEdge = function(elem, path, relation, conf, diagObj) {\n const getRelationType = function(type) {\n switch (type) {\n case diagObj.db.relationType.AGGREGATION:\n return \"aggregation\";\n case diagObj.db.relationType.EXTENSION:\n return \"extension\";\n case diagObj.db.relationType.COMPOSITION:\n return \"composition\";\n case diagObj.db.relationType.DEPENDENCY:\n return \"dependency\";\n case diagObj.db.relationType.LOLLIPOP:\n return \"lollipop\";\n }\n };\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"relation\");\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n if (relation.relation.lineType == 1) {\n svgPath.attr(\"class\", \"relation dashed-line\");\n }\n if (relation.relation.lineType == 10) {\n svgPath.attr(\"class\", \"relation dotted-line\");\n }\n if (relation.relation.type1 !== \"none\") {\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + getRelationType(relation.relation.type1) + \"Start)\"\n );\n }\n if (relation.relation.type2 !== \"none\") {\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(relation.relation.type2) + \"End)\"\n );\n }\n let x, y;\n const l = path.points.length;\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== \"none\",\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== \"none\",\n path.points,\n path.points[l - 1]\n );\n log.debug(\"cardinality_1_point \" + JSON.stringify(cardinality_1_point));\n log.debug(\"cardinality_2_point \" + JSON.stringify(cardinality_2_point));\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n if (relation.title !== void 0) {\n const g = elem.append(\"g\").attr(\"class\", \"classLabel\");\n const label = g.append(\"text\").attr(\"class\", \"label\").attr(\"x\", x).attr(\"y\", y).attr(\"fill\", \"red\").attr(\"text-anchor\", \"middle\").text(relation.title);\n window.label = label;\n const bounds = label.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", bounds.x - conf.padding / 2).attr(\"y\", bounds.y - conf.padding / 2).attr(\"width\", bounds.width + conf.padding).attr(\"height\", bounds.height + conf.padding);\n }\n log.info(\"Rendering relation \" + JSON.stringify(relation));\n if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== \"none\") {\n const g = elem.append(\"g\").attr(\"class\", \"cardinality\");\n g.append(\"text\").attr(\"class\", \"type1\").attr(\"x\", p1_card_x).attr(\"y\", p1_card_y).attr(\"fill\", \"black\").attr(\"font-size\", \"6\").text(relation.relationTitle1);\n }\n if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== \"none\") {\n const g = elem.append(\"g\").attr(\"class\", \"cardinality\");\n g.append(\"text\").attr(\"class\", \"type2\").attr(\"x\", p2_card_x).attr(\"y\", p2_card_y).attr(\"fill\", \"black\").attr(\"font-size\", \"6\").text(relation.relationTitle2);\n }\n edgeCount++;\n};\nconst drawClass = function(elem, classDef, conf, diagObj) {\n log.debug(\"Rendering class \", classDef, conf);\n const id = classDef.id;\n const classInfo = {\n id,\n label: classDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", diagObj.db.lookUpDomId(id)).attr(\"class\", \"classGroup\");\n let title;\n if (classDef.link) {\n title = g.append(\"svg:a\").attr(\"xlink:href\", classDef.link).attr(\"target\", classDef.linkTarget).append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n } else {\n title = g.append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n }\n let isFirst = true;\n classDef.annotations.forEach(function(member) {\n const titleText2 = title.append(\"tspan\").text(\"«\" + member + \"»\");\n if (!isFirst) {\n titleText2.attr(\"dy\", conf.textHeight);\n }\n isFirst = false;\n });\n let classTitleString = getClassTitleString(classDef);\n const classTitle = title.append(\"tspan\").text(classTitleString).attr(\"class\", \"title\");\n if (!isFirst) {\n classTitle.attr(\"dy\", conf.textHeight);\n }\n const titleHeight = title.node().getBBox().height;\n let membersLine;\n let membersBox;\n let methodsLine;\n if (classDef.members.length > 0) {\n membersLine = g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", conf.padding + titleHeight + conf.dividerMargin / 2).attr(\"y2\", conf.padding + titleHeight + conf.dividerMargin / 2);\n const members = g.append(\"text\").attr(\"x\", conf.padding).attr(\"y\", titleHeight + conf.dividerMargin + conf.textHeight).attr(\"fill\", \"white\").attr(\"class\", \"classText\");\n isFirst = true;\n classDef.members.forEach(function(member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n membersBox = members.node().getBBox();\n }\n if (classDef.methods.length > 0) {\n methodsLine = g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr(\"y2\", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n const methods = g.append(\"text\").attr(\"x\", conf.padding).attr(\"y\", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr(\"fill\", \"white\").attr(\"class\", \"classText\");\n isFirst = true;\n classDef.methods.forEach(function(method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n }\n const classBox = g.node().getBBox();\n var cssClassStr = \" \";\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(\" \");\n }\n const rect = g.insert(\"rect\", \":first-child\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", classBox.width + 2 * conf.padding).attr(\"height\", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr(\"class\", cssClassStr);\n const rectWidth = rect.node().getBBox().width;\n title.node().childNodes.forEach(function(x) {\n x.setAttribute(\"x\", (rectWidth - x.getBBox().width) / 2);\n });\n if (classDef.tooltip) {\n title.insert(\"title\").text(classDef.tooltip);\n }\n if (membersLine) {\n membersLine.attr(\"x2\", rectWidth);\n }\n if (methodsLine) {\n methodsLine.attr(\"x2\", rectWidth);\n }\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n return classInfo;\n};\nconst getClassTitleString = function(classDef) {\n let classTitleString = classDef.id;\n if (classDef.type) {\n classTitleString += \"<\" + parseGenericTypes(classDef.type) + \">\";\n }\n return classTitleString;\n};\nconst drawNote = function(elem, note, conf, diagObj) {\n log.debug(\"Rendering note \", note, conf);\n const id = note.id;\n const noteInfo = {\n id,\n text: note.text,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"classGroup\");\n let text = g.append(\"text\").attr(\"y\", conf.textHeight + conf.padding).attr(\"x\", 0);\n const lines = JSON.parse(`\"${note.text}\"`).split(\"\\n\");\n lines.forEach(function(line2) {\n log.debug(`Adding line: ${line2}`);\n text.append(\"tspan\").text(line2).attr(\"class\", \"title\").attr(\"dy\", conf.textHeight);\n });\n const noteBox = g.node().getBBox();\n const rect = g.insert(\"rect\", \":first-child\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", noteBox.width + 2 * conf.padding).attr(\n \"height\",\n noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin\n );\n const rectWidth = rect.node().getBBox().width;\n text.node().childNodes.forEach(function(x) {\n x.setAttribute(\"x\", (rectWidth - x.getBBox().width) / 2);\n });\n noteInfo.width = rectWidth;\n noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;\n return noteInfo;\n};\nconst addTspan = function(textEl, member, isFirst, conf) {\n const { displayText, cssStyle } = member.getDisplayDetails();\n const tSpan = textEl.append(\"tspan\").attr(\"x\", conf.padding).text(displayText);\n if (cssStyle !== \"\") {\n tSpan.attr(\"style\", member.cssStyle);\n }\n if (!isFirst) {\n tSpan.attr(\"dy\", conf.textHeight);\n }\n};\nconst svgDraw = {\n getClassTitleString,\n drawClass,\n drawEdge,\n drawNote\n};\nlet idCache = {};\nconst padding = 20;\nconst getGraphId = function(label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n if (foundEntry) {\n return foundEntry[0];\n }\n};\nconst insertMarkers = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"extensionStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"extensionEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"compositionStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"compositionEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"aggregationStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"aggregationEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyStart\").attr(\"class\", \"extension\").attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n};\nconst draw = function(text, id, _version, diagObj) {\n const conf = getConfig().class;\n idCache = {};\n log.info(\"Rendering diagram \" + text);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const g = new graphlib.Graph({\n multigraph: true\n });\n g.setGraph({\n isMultiGraph: true\n });\n g.setDefaultEdgeLabel(function() {\n return {};\n });\n const classes = diagObj.db.getClasses();\n const keys = Object.keys(classes);\n for (const key of keys) {\n const classDef = classes[key];\n const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);\n idCache[node.id] = node;\n g.setNode(node.id, node);\n log.info(\"Org height: \" + node.height);\n }\n const relations = diagObj.db.getRelations();\n relations.forEach(function(relation) {\n log.info(\n \"tjoho\" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation\n },\n relation.title || \"DEFAULT\"\n );\n });\n const notes = diagObj.db.getNotes();\n notes.forEach(function(note) {\n log.debug(`Adding note: ${JSON.stringify(note)}`);\n const node = svgDraw.drawNote(diagram2, note, conf, diagObj);\n idCache[node.id] = node;\n g.setNode(node.id, node);\n if (note.class && note.class in classes) {\n g.setEdge(\n note.id,\n getGraphId(note.class),\n {\n relation: {\n id1: note.id,\n id2: note.class,\n relation: {\n type1: \"none\",\n type2: \"none\",\n lineType: 10\n }\n }\n },\n \"DEFAULT\"\n );\n }\n });\n layout(g);\n g.nodes().forEach(function(v) {\n if (v !== void 0 && g.node(v) !== void 0) {\n log.debug(\"Node \" + v + \": \" + JSON.stringify(g.node(v)));\n root.select(\"#\" + (diagObj.db.lookUpDomId(v) || v)).attr(\n \"transform\",\n \"translate(\" + (g.node(v).x - g.node(v).width / 2) + \",\" + (g.node(v).y - g.node(v).height / 2) + \" )\"\n );\n }\n });\n g.edges().forEach(function(e) {\n if (e !== void 0 && g.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);\n }\n });\n const svgBounds = diagram2.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram2.attr(\"viewBox\", vBox);\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,mBAAO;AACP,0BAAO;AAOP,IAAI,YAAY;AAChB,IAAM,WAAW,SAAS,MAAM,MAAM,UAAU,MAAM,SAAS;AAC7D,QAAM,kBAAkB,SAAS,MAAM;AACrC,YAAQ,MAAM;AAAA,MACZ,KAAK,QAAQ,GAAG,aAAa;AAC3B,eAAO;AAAA,MACT,KAAK,QAAQ,GAAG,aAAa;AAC3B,eAAO;AAAA,MACT,KAAK,QAAQ,GAAG,aAAa;AAC3B,eAAO;AAAA,MACT,KAAK,QAAQ,GAAG,aAAa;AAC3B,eAAO;AAAA,MACT,KAAK,QAAQ,GAAG,aAAa;AAC3B,eAAO;AAAA,IACX;AAAA,EACF;AACA,OAAK,SAAS,KAAK,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;AAC1D,QAAM,WAAW,KAAK;AACtB,QAAM,eAAe,aAAK,EAAE,EAAE,SAAS,GAAG;AACxC,WAAO,EAAE;AAAA,EACX,CAAC,EAAE,EAAE,SAAS,GAAG;AACf,WAAO,EAAE;AAAA,EACX,CAAC,EAAE,MAAM,aAAU;AACnB,QAAM,UAAU,KAAK,OAAO,MAAM,EAAE,KAAK,KAAK,aAAa,QAAQ,CAAC,EAAE,KAAK,MAAM,SAAS,SAAS,EAAE,KAAK,SAAS,UAAU;AAC7H,MAAI,MAAM;AACV,MAAI,KAAK,qBAAqB;AAC5B,UAAM,OAAO,SAAS,WAAW,OAAO,OAAO,SAAS,OAAO,OAAO,SAAS,WAAW,OAAO,SAAS;AAC1G,UAAM,IAAI,QAAQ,OAAO,KAAK;AAC9B,UAAM,IAAI,QAAQ,OAAO,KAAK;AAAA,EAChC;AACA,MAAI,SAAS,SAAS,YAAY,GAAG;AACnC,YAAQ,KAAK,SAAS,sBAAsB;AAAA,EAC9C;AACA,MAAI,SAAS,SAAS,YAAY,IAAI;AACpC,YAAQ,KAAK,SAAS,sBAAsB;AAAA,EAC9C;AACA,MAAI,SAAS,SAAS,UAAU,QAAQ;AACtC,YAAQ;AAAA,MACN;AAAA,MACA,SAAS,MAAM,MAAM,gBAAgB,SAAS,SAAS,KAAK,IAAI;AAAA,IAClE;AAAA,EACF;AACA,MAAI,SAAS,SAAS,UAAU,QAAQ;AACtC,YAAQ;AAAA,MACN;AAAA,MACA,SAAS,MAAM,MAAM,gBAAgB,SAAS,SAAS,KAAK,IAAI;AAAA,IAClE;AAAA,EACF;AACA,MAAI,GAAG;AACP,QAAM,IAAI,KAAK,OAAO;AACtB,MAAI,gBAAgB,MAAM,kBAAkB,KAAK,MAAM;AACvD,MAAI,cAAc;AAClB,MAAI,cAAc;AAClB,MAAI,WAAW;AACf,MAAI,WAAW;AACf,MAAI,IAAI,MAAM,KAAK,IAAI,GAAG;AACxB,QAAI,sBAAsB,MAAM;AAAA,MAC9B,SAAS,SAAS,UAAU;AAAA,MAC5B,KAAK;AAAA,MACL,KAAK,OAAO,CAAC;AAAA,IACf;AACA,QAAI,sBAAsB,MAAM;AAAA,MAC9B,SAAS,SAAS,UAAU;AAAA,MAC5B,KAAK;AAAA,MACL,KAAK,OAAO,IAAI,CAAC;AAAA,IACnB;AACA,UAAI,MAAM,yBAAyB,KAAK,UAAU,mBAAmB,CAAC;AACtE,UAAI,MAAM,yBAAyB,KAAK,UAAU,mBAAmB,CAAC;AACtE,gBAAY,oBAAoB;AAChC,gBAAY,oBAAoB;AAChC,gBAAY,oBAAoB;AAChC,gBAAY,oBAAoB;AAAA,EAClC;AACA,MAAI,SAAS,UAAU,QAAQ;AAC7B,UAAM,IAAI,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,YAAY;AACrD,UAAM,QAAQ,EAAE,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,QAAQ,KAAK,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,SAAS,KAAK;AACrJ,WAAO,QAAQ;AACf,UAAM,SAAS,MAAM,KAAK,EAAE,QAAQ;AACpC,MAAE,OAAO,QAAQ,cAAc,EAAE,KAAK,SAAS,KAAK,EAAE,KAAK,KAAK,OAAO,IAAI,KAAK,UAAU,CAAC,EAAE,KAAK,KAAK,OAAO,IAAI,KAAK,UAAU,CAAC,EAAE,KAAK,SAAS,OAAO,QAAQ,KAAK,OAAO,EAAE,KAAK,UAAU,OAAO,SAAS,KAAK,OAAO;AAAA,EAC5N;AACA,QAAI,KAAK,wBAAwB,KAAK,UAAU,QAAQ,CAAC;AACzD,MAAI,SAAS,mBAAmB,UAAU,SAAS,mBAAmB,QAAQ;AAC5E,UAAM,IAAI,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,aAAa;AACtD,MAAE,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,aAAa,GAAG,EAAE,KAAK,SAAS,cAAc;AAAA,EAC7J;AACA,MAAI,SAAS,mBAAmB,UAAU,SAAS,mBAAmB,QAAQ;AAC5E,UAAM,IAAI,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,aAAa;AACtD,MAAE,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,aAAa,GAAG,EAAE,KAAK,SAAS,cAAc;AAAA,EAC7J;AACA;AACF;AACA,IAAM,YAAY,SAAS,MAAM,UAAU,MAAM,SAAS;AACxD,QAAI,MAAM,oBAAoB,UAAU,IAAI;AAC5C,QAAM,KAAK,SAAS;AACpB,QAAM,YAAY;AAAA,IAChB;AAAA,IACA,OAAO,SAAS;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACA,QAAM,IAAI,KAAK,OAAO,GAAG,EAAE,KAAK,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC,EAAE,KAAK,SAAS,YAAY;AAC5F,MAAI;AACJ,MAAI,SAAS,MAAM;AACjB,YAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,cAAc,SAAS,IAAI,EAAE,KAAK,UAAU,SAAS,UAAU,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,KAAK,aAAa,KAAK,OAAO,EAAE,KAAK,KAAK,CAAC;AAAA,EACtK,OAAO;AACL,YAAQ,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,KAAK,aAAa,KAAK,OAAO,EAAE,KAAK,KAAK,CAAC;AAAA,EAChF;AACA,MAAI,UAAU;AACd,WAAS,YAAY,QAAQ,SAAS,QAAQ;AAC5C,UAAM,aAAa,MAAM,OAAO,OAAO,EAAE,KAAK,MAAM,SAAS,GAAG;AAChE,QAAI,CAAC,SAAS;AACZ,iBAAW,KAAK,MAAM,KAAK,UAAU;AAAA,IACvC;AACA,cAAU;AAAA,EACZ,CAAC;AACD,MAAI,mBAAmB,oBAAoB,QAAQ;AACnD,QAAM,aAAa,MAAM,OAAO,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,OAAO;AACrF,MAAI,CAAC,SAAS;AACZ,eAAW,KAAK,MAAM,KAAK,UAAU;AAAA,EACvC;AACA,QAAM,cAAc,MAAM,KAAK,EAAE,QAAQ,EAAE;AAC3C,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,SAAS,QAAQ,SAAS,GAAG;AAC/B,kBAAc,EAAE,OAAO,MAAM,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,KAAK,UAAU,cAAc,KAAK,gBAAgB,CAAC,EAAE,KAAK,MAAM,KAAK,UAAU,cAAc,KAAK,gBAAgB,CAAC;AAC3K,UAAM,UAAU,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,KAAK,OAAO,EAAE,KAAK,KAAK,cAAc,KAAK,gBAAgB,KAAK,UAAU,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,SAAS,WAAW;AACtK,cAAU;AACV,aAAS,QAAQ,QAAQ,SAAS,QAAQ;AACxC,eAAS,SAAS,QAAQ,SAAS,IAAI;AACvC,gBAAU;AAAA,IACZ,CAAC;AACD,iBAAa,QAAQ,KAAK,EAAE,QAAQ;AAAA,EACtC;AACA,MAAI,SAAS,QAAQ,SAAS,GAAG;AAC/B,kBAAc,EAAE,OAAO,MAAM,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,KAAK,UAAU,cAAc,KAAK,gBAAgB,WAAW,MAAM,EAAE,KAAK,MAAM,KAAK,UAAU,cAAc,KAAK,gBAAgB,WAAW,MAAM;AAC3M,UAAM,UAAU,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,KAAK,OAAO,EAAE,KAAK,KAAK,cAAc,IAAI,KAAK,gBAAgB,WAAW,SAAS,KAAK,UAAU,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,SAAS,WAAW;AAC9L,cAAU;AACV,aAAS,QAAQ,QAAQ,SAAS,QAAQ;AACxC,eAAS,SAAS,QAAQ,SAAS,IAAI;AACvC,gBAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACA,QAAM,WAAW,EAAE,KAAK,EAAE,QAAQ;AAClC,MAAI,cAAc;AAClB,MAAI,SAAS,WAAW,SAAS,GAAG;AAClC,kBAAc,cAAc,SAAS,WAAW,KAAK,GAAG;AAAA,EAC1D;AACA,QAAM,OAAO,EAAE,OAAO,QAAQ,cAAc,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,SAAS,SAAS,QAAQ,IAAI,KAAK,OAAO,EAAE,KAAK,UAAU,SAAS,SAAS,KAAK,UAAU,MAAM,KAAK,aAAa,EAAE,KAAK,SAAS,WAAW;AAC5N,QAAM,YAAY,KAAK,KAAK,EAAE,QAAQ,EAAE;AACxC,QAAM,KAAK,EAAE,WAAW,QAAQ,SAAS,GAAG;AAC1C,MAAE,aAAa,MAAM,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC;AAAA,EACzD,CAAC;AACD,MAAI,SAAS,SAAS;AACpB,UAAM,OAAO,OAAO,EAAE,KAAK,SAAS,OAAO;AAAA,EAC7C;AACA,MAAI,aAAa;AACf,gBAAY,KAAK,MAAM,SAAS;AAAA,EAClC;AACA,MAAI,aAAa;AACf,gBAAY,KAAK,MAAM,SAAS;AAAA,EAClC;AACA,YAAU,QAAQ;AAClB,YAAU,SAAS,SAAS,SAAS,KAAK,UAAU,MAAM,KAAK;AAC/D,SAAO;AACT;AACA,IAAM,sBAAsB,SAAS,UAAU;AAC7C,MAAI,mBAAmB,SAAS;AAChC,MAAI,SAAS,MAAM;AACjB,wBAAoB,MAAM,kBAAkB,SAAS,IAAI,IAAI;AAAA,EAC/D;AACA,SAAO;AACT;AACA,IAAM,WAAW,SAAS,MAAM,MAAM,MAAM,SAAS;AACnD,QAAI,MAAM,mBAAmB,MAAM,IAAI;AACvC,QAAM,KAAK,KAAK;AAChB,QAAM,WAAW;AAAA,IACf;AAAA,IACA,MAAM,KAAK;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACA,QAAM,IAAI,KAAK,OAAO,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,KAAK,SAAS,YAAY;AACpE,MAAI,OAAO,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,KAAK,aAAa,KAAK,OAAO,EAAE,KAAK,KAAK,CAAC;AACjF,QAAM,QAAQ,KAAK,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI;AACrD,QAAM,QAAQ,SAAS,OAAO;AAC5B,UAAI,MAAM,gBAAgB,KAAK,EAAE;AACjC,SAAK,OAAO,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,KAAK,MAAM,KAAK,UAAU;AAAA,EACpF,CAAC;AACD,QAAM,UAAU,EAAE,KAAK,EAAE,QAAQ;AACjC,QAAM,OAAO,EAAE,OAAO,QAAQ,cAAc,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,SAAS,QAAQ,QAAQ,IAAI,KAAK,OAAO,EAAE;AAAA,IACtH;AAAA,IACA,QAAQ,SAAS,MAAM,SAAS,KAAK,aAAa,KAAK,UAAU,MAAM,KAAK;AAAA,EAC9E;AACA,QAAM,YAAY,KAAK,KAAK,EAAE,QAAQ,EAAE;AACxC,OAAK,KAAK,EAAE,WAAW,QAAQ,SAAS,GAAG;AACzC,MAAE,aAAa,MAAM,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC;AAAA,EACzD,CAAC;AACD,WAAS,QAAQ;AACjB,WAAS,SAAS,QAAQ,SAAS,MAAM,SAAS,KAAK,aAAa,KAAK,UAAU,MAAM,KAAK;AAC9F,SAAO;AACT;AACA,IAAM,WAAW,SAAS,QAAQ,QAAQ,SAAS,MAAM;AACvD,QAAM,EAAE,aAAa,SAAS,IAAI,OAAO,kBAAkB;AAC3D,QAAM,QAAQ,OAAO,OAAO,OAAO,EAAE,KAAK,KAAK,KAAK,OAAO,EAAE,KAAK,WAAW;AAC7E,MAAI,aAAa,IAAI;AACnB,UAAM,KAAK,SAAS,OAAO,QAAQ;AAAA,EACrC;AACA,MAAI,CAAC,SAAS;AACZ,UAAM,KAAK,MAAM,KAAK,UAAU;AAAA,EAClC;AACF;AACA,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAI,UAAU,CAAC;AACf,IAAM,UAAU;AAChB,IAAM,aAAa,SAAS,OAAO;AACjC,QAAM,aAAa,OAAO,QAAQ,OAAO,EAAE,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,UAAU,KAAK;AACnF,MAAI,YAAY;AACd,WAAO,WAAW,CAAC;AAAA,EACrB;AACF;AACA,IAAM,gBAAgB,SAAS,MAAM;AACnC,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,gBAAgB,EAAE,KAAK,SAAS,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,GAAG,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,oBAAoB;AACpP,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,cAAc,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,oBAAoB;AACtN,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,kBAAkB,EAAE,KAAK,SAAS,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,GAAG,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,0BAA0B;AAC5P,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,gBAAgB,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,0BAA0B;AAC9N,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,kBAAkB,EAAE,KAAK,SAAS,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,GAAG,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,0BAA0B;AAC5P,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,gBAAgB,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,0BAA0B;AAC9N,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,iBAAiB,EAAE,KAAK,SAAS,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,GAAG,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,yBAAyB;AAC1P,OAAK,OAAO,MAAM,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,eAAe,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,2BAA2B;AAChO;AACA,IAAM,OAAO,SAAS,MAAM,IAAI,UAAU,SAAS;AACjD,QAAM,OAAO,UAAU,EAAE;AACzB,YAAU,CAAC;AACX,QAAI,KAAK,uBAAuB,IAAI;AACpC,QAAM,gBAAgB,UAAU,EAAE;AAClC,MAAI;AACJ,MAAI,kBAAkB,WAAW;AAC/B,qBAAiB,eAAO,OAAO,EAAE;AAAA,EACnC;AACA,QAAM,OAAO,kBAAkB,YAAY,eAAO,eAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,IAAI,eAAO,MAAM;AACjH,QAAM,WAAW,KAAK,OAAO,QAAQ,EAAE,IAAI;AAC3C,gBAAc,QAAQ;AACtB,QAAM,IAAI,IAAa,MAAM;AAAA,IAC3B,YAAY;AAAA,EACd,CAAC;AACD,IAAE,SAAS;AAAA,IACT,cAAc;AAAA,EAChB,CAAC;AACD,IAAE,oBAAoB,WAAW;AAC/B,WAAO,CAAC;AAAA,EACV,CAAC;AACD,QAAM,UAAU,QAAQ,GAAG,WAAW;AACtC,QAAM,OAAO,OAAO,KAAK,OAAO;AAChC,aAAW,OAAO,MAAM;AACtB,UAAM,WAAW,QAAQ,GAAG;AAC5B,UAAM,OAAO,QAAQ,UAAU,UAAU,UAAU,MAAM,OAAO;AAChE,YAAQ,KAAK,EAAE,IAAI;AACnB,MAAE,QAAQ,KAAK,IAAI,IAAI;AACvB,UAAI,KAAK,iBAAiB,KAAK,MAAM;AAAA,EACvC;AACA,QAAM,YAAY,QAAQ,GAAG,aAAa;AAC1C,YAAU,QAAQ,SAAS,UAAU;AACnC,UAAI;AAAA,MACF,UAAU,WAAW,SAAS,GAAG,IAAI,WAAW,SAAS,GAAG,IAAI,KAAK,UAAU,QAAQ;AAAA,IACzF;AACA,MAAE;AAAA,MACA,WAAW,SAAS,GAAG;AAAA,MACvB,WAAW,SAAS,GAAG;AAAA,MACvB;AAAA,QACE;AAAA,MACF;AAAA,MACA,SAAS,SAAS;AAAA,IACpB;AAAA,EACF,CAAC;AACD,QAAM,QAAQ,QAAQ,GAAG,SAAS;AAClC,QAAM,QAAQ,SAAS,MAAM;AAC3B,UAAI,MAAM,gBAAgB,KAAK,UAAU,IAAI,CAAC,EAAE;AAChD,UAAM,OAAO,QAAQ,SAAS,UAAU,MAAM,MAAM,OAAO;AAC3D,YAAQ,KAAK,EAAE,IAAI;AACnB,MAAE,QAAQ,KAAK,IAAI,IAAI;AACvB,QAAI,KAAK,SAAS,KAAK,SAAS,SAAS;AACvC,QAAE;AAAA,QACA,KAAK;AAAA,QACL,WAAW,KAAK,KAAK;AAAA,QACrB;AAAA,UACE,UAAU;AAAA,YACR,KAAK,KAAK;AAAA,YACV,KAAK,KAAK;AAAA,YACV,UAAU;AAAA,cACR,OAAO;AAAA,cACP,OAAO;AAAA,cACP,UAAU;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO,CAAC;AACR,IAAE,MAAM,EAAE,QAAQ,SAAS,GAAG;AAC5B,QAAI,MAAM,UAAU,EAAE,KAAK,CAAC,MAAM,QAAQ;AACxC,YAAI,MAAM,UAAU,IAAI,OAAO,KAAK,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,WAAK,OAAO,OAAO,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE;AAAA,QAClD;AAAA,QACA,gBAAgB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,QAAQ,KAAK,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK;AAAA,MACpG;AAAA,IACF;AAAA,EACF,CAAC;AACD,IAAE,MAAM,EAAE,QAAQ,SAAS,GAAG;AAC5B,QAAI,MAAM,UAAU,EAAE,KAAK,CAAC,MAAM,QAAQ;AACxC,YAAI,MAAM,UAAU,EAAE,IAAI,SAAS,EAAE,IAAI,OAAO,KAAK,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE,cAAQ,SAAS,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,UAAU,MAAM,OAAO;AAAA,IACzE;AAAA,EACF,CAAC;AACD,QAAM,YAAY,SAAS,KAAK,EAAE,QAAQ;AAC1C,QAAM,QAAQ,UAAU,QAAQ,UAAU;AAC1C,QAAM,SAAS,UAAU,SAAS,UAAU;AAC5C,mBAAiB,UAAU,QAAQ,OAAO,KAAK,WAAW;AAC1D,QAAM,OAAO,GAAG,UAAU,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,IAAI,KAAK,IAAI,MAAM;AACjF,QAAI,MAAM,WAAW,IAAI,EAAE;AAC3B,WAAS,KAAK,WAAW,IAAI;AAC/B;AACA,IAAM,WAAW;AAAA,EACf;AACF;AACA,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM,CAAC,QAAQ;AACb,QAAI,CAAC,IAAI,OAAO;AACd,UAAI,QAAQ,CAAC;AAAA,IACf;AACA,QAAI,MAAM,sBAAsB,IAAI;AACpC,OAAG,MAAM;AAAA,EACX;AACF;", - "names": [] -} diff --git a/.vuepress/.cache/deps/classDiagram-v2-8ecb0bfc-ITO7QYAQ.js b/.vuepress/.cache/deps/classDiagram-v2-8ecb0bfc-ITO7QYAQ.js deleted file mode 100644 index f40bbb5b6..000000000 --- a/.vuepress/.cache/deps/classDiagram-v2-8ecb0bfc-ITO7QYAQ.js +++ /dev/null @@ -1,313 +0,0 @@ -import { - db, - parser$1, - styles -} from "./chunk-LEUM4LB3.js"; -import { - render -} from "./chunk-6ESK7MQZ.js"; -import "./chunk-ULQHWUKP.js"; -import { - Graph -} from "./chunk-C55JCHDM.js"; -import "./chunk-TQDBUXIK.js"; -import { - common$1, - getConfig, - getStylesFromArray, - interpolateToCurve, - linear_default, - log$1, - require_dayjs_min, - require_dist, - select_default, - setupGraphViewbox$1, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/classDiagram-v2-8ecb0bfc.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var sanitizeText = (txt) => common$1.sanitizeText(txt, getConfig()); -var conf = { - dividerMargin: 10, - padding: 5, - textHeight: 10, - curve: void 0 -}; -var addNamespaces = function(namespaces, g, _id, diagObj) { - const keys = Object.keys(namespaces); - log$1.info("keys:", keys); - log$1.info(namespaces); - keys.forEach(function(id) { - var _a, _b; - const vertex = namespaces[id]; - const shape = "rect"; - const node = { - shape, - id: vertex.id, - domId: vertex.domId, - labelText: sanitizeText(vertex.id), - labelStyle: "", - style: "fill: none; stroke: black", - // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release - padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) - }; - g.setNode(vertex.id, node); - addClasses(vertex.classes, g, _id, diagObj, vertex.id); - log$1.info("setNode", node); - }); -}; -var addClasses = function(classes, g, _id, diagObj, parent) { - const keys = Object.keys(classes); - log$1.info("keys:", keys); - log$1.info(classes); - keys.filter((id) => classes[id].parent == parent).forEach(function(id) { - var _a, _b; - const vertex = classes[id]; - const cssClassStr = vertex.cssClasses.join(" "); - const styles2 = { labelStyle: "", style: "" }; - const vertexText = vertex.label ?? vertex.id; - const radius = 0; - const shape = "class_box"; - const node = { - labelStyle: styles2.labelStyle, - shape, - labelText: sanitizeText(vertexText), - classData: vertex, - rx: radius, - ry: radius, - class: cssClassStr, - style: styles2.style, - id: vertex.id, - domId: vertex.domId, - tooltip: diagObj.db.getTooltip(vertex.id, parent) || "", - haveCallback: vertex.haveCallback, - link: vertex.link, - width: vertex.type === "group" ? 500 : void 0, - type: vertex.type, - // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release - padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) - }; - g.setNode(vertex.id, node); - if (parent) { - g.setParent(vertex.id, parent); - } - log$1.info("setNode", node); - }); -}; -var addNotes = function(notes, g, startEdgeId, classes) { - log$1.info(notes); - notes.forEach(function(note, i) { - var _a, _b; - const vertex = note; - const cssNoteStr = ""; - const styles2 = { labelStyle: "", style: "" }; - const vertexText = vertex.text; - const radius = 0; - const shape = "note"; - const node = { - labelStyle: styles2.labelStyle, - shape, - labelText: sanitizeText(vertexText), - noteData: vertex, - rx: radius, - ry: radius, - class: cssNoteStr, - style: styles2.style, - id: vertex.id, - domId: vertex.id, - tooltip: "", - type: "note", - // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release - padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding) - }; - g.setNode(vertex.id, node); - log$1.info("setNode", node); - if (!vertex.class || !(vertex.class in classes)) { - return; - } - const edgeId = startEdgeId + i; - const edgeData = { - id: `edgeNote${edgeId}`, - //Set relationship style and line type - classes: "relation", - pattern: "dotted", - // Set link type for rendering - arrowhead: "none", - //Set edge extra labels - startLabelRight: "", - endLabelLeft: "", - //Set relation arrow types - arrowTypeStart: "none", - arrowTypeEnd: "none", - style: "fill:none", - labelStyle: "", - curve: interpolateToCurve(conf.curve, linear_default) - }; - g.setEdge(vertex.id, vertex.class, edgeData, edgeId); - }); -}; -var addRelations = function(relations, g) { - const conf2 = getConfig().flowchart; - let cnt = 0; - relations.forEach(function(edge) { - var _a; - cnt++; - const edgeData = { - //Set relationship style and line type - classes: "relation", - pattern: edge.relation.lineType == 1 ? "dashed" : "solid", - id: "id" + cnt, - // Set link type for rendering - arrowhead: edge.type === "arrow_open" ? "none" : "normal", - //Set edge extra labels - startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1, - endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2, - //Set relation arrow types - arrowTypeStart: getArrowMarker(edge.relation.type1), - arrowTypeEnd: getArrowMarker(edge.relation.type2), - style: "fill:none", - labelStyle: "", - curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, linear_default) - }; - log$1.info(edgeData, edge); - if (edge.style !== void 0) { - const styles2 = getStylesFromArray(edge.style); - edgeData.style = styles2.style; - edgeData.labelStyle = styles2.labelStyle; - } - edge.text = edge.title; - if (edge.text === void 0) { - if (edge.style !== void 0) { - edgeData.arrowheadStyle = "fill: #333"; - } - } else { - edgeData.arrowheadStyle = "fill: #333"; - edgeData.labelpos = "c"; - if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) { - edgeData.labelType = "html"; - edgeData.label = '' + edge.text + ""; - } else { - edgeData.labelType = "text"; - edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n"); - if (edge.style === void 0) { - edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none"; - } - edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); - } - } - g.setEdge(edge.id1, edge.id2, edgeData, cnt); - }); -}; -var setConf = function(cnf) { - conf = { - ...conf, - ...cnf - }; -}; -var draw = async function(text, id, _version, diagObj) { - log$1.info("Drawing class - ", id); - const conf2 = getConfig().flowchart ?? getConfig().class; - const securityLevel = getConfig().securityLevel; - log$1.info("config:", conf2); - const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50; - const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50; - const g = new Graph({ - multigraph: true, - compound: true - }).setGraph({ - rankdir: diagObj.db.getDirection(), - nodesep: nodeSpacing, - ranksep: rankSpacing, - marginx: 8, - marginy: 8 - }).setDefaultEdgeLabel(function() { - return {}; - }); - const namespaces = diagObj.db.getNamespaces(); - const classes = diagObj.db.getClasses(); - const relations = diagObj.db.getRelations(); - const notes = diagObj.db.getNotes(); - log$1.info(relations); - addNamespaces(namespaces, g, id, diagObj); - addClasses(classes, g, id, diagObj); - addRelations(relations, g); - addNotes(notes, g, relations.length + 1, classes); - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select(`[id="${id}"]`); - const element = root.select("#" + id + " g"); - await render( - element, - g, - ["aggregation", "extension", "composition", "dependency", "lollipop"], - "classDiagram", - id - ); - utils.insertTitle(svg, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle()); - setupGraphViewbox$1(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth); - if (!(conf2 == null ? void 0 : conf2.htmlLabels)) { - const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; - const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); - for (const label of labels) { - const dim = label.getBBox(); - const rect = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.setAttribute("rx", 0); - rect.setAttribute("ry", 0); - rect.setAttribute("width", dim.width); - rect.setAttribute("height", dim.height); - label.insertBefore(rect, label.firstChild); - } - } -}; -function getArrowMarker(type) { - let marker; - switch (type) { - case 0: - marker = "aggregation"; - break; - case 1: - marker = "extension"; - break; - case 2: - marker = "composition"; - break; - case 3: - marker = "dependency"; - break; - case 4: - marker = "lollipop"; - break; - default: - marker = "none"; - } - return marker; -} -var renderer = { - setConf, - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: (cnf) => { - if (!cnf.class) { - cnf.class = {}; - } - cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - db.clear(); - } -}; -export { - diagram -}; -//# sourceMappingURL=classDiagram-v2-8ecb0bfc-ITO7QYAQ.js.map diff --git a/.vuepress/.cache/deps/classDiagram-v2-8ecb0bfc-ITO7QYAQ.js.map b/.vuepress/.cache/deps/classDiagram-v2-8ecb0bfc-ITO7QYAQ.js.map deleted file mode 100644 index dc493370f..000000000 --- a/.vuepress/.cache/deps/classDiagram-v2-8ecb0bfc-ITO7QYAQ.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/classDiagram-v2-8ecb0bfc.js"], - "sourcesContent": ["import { p as parser, d as db, s as styles } from \"./styles-4ba6ed67.js\";\nimport { select, curveLinear } from \"d3\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { l as log, c as getConfig, u as utils, o as setupGraphViewbox, n as interpolateToCurve, k as getStylesFromArray, e as common } from \"./mermaid-934d9bea.js\";\nimport { r as render } from \"./index-67a42d7d.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-80f1ebb6.js\";\nimport \"./createText-aebacdfe.js\";\nimport \"mdast-util-from-markdown\";\nconst sanitizeText = (txt) => common.sanitizeText(txt, getConfig());\nlet conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n curve: void 0\n};\nconst addNamespaces = function(namespaces, g, _id, diagObj) {\n const keys = Object.keys(namespaces);\n log.info(\"keys:\", keys);\n log.info(namespaces);\n keys.forEach(function(id) {\n var _a, _b;\n const vertex = namespaces[id];\n const shape = \"rect\";\n const node = {\n shape,\n id: vertex.id,\n domId: vertex.domId,\n labelText: sanitizeText(vertex.id),\n labelStyle: \"\",\n style: \"fill: none; stroke: black\",\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n addClasses(vertex.classes, g, _id, diagObj, vertex.id);\n log.info(\"setNode\", node);\n });\n};\nconst addClasses = function(classes, g, _id, diagObj, parent) {\n const keys = Object.keys(classes);\n log.info(\"keys:\", keys);\n log.info(classes);\n keys.filter((id) => classes[id].parent == parent).forEach(function(id) {\n var _a, _b;\n const vertex = classes[id];\n const cssClassStr = vertex.cssClasses.join(\" \");\n const styles2 = { labelStyle: \"\", style: \"\" };\n const vertexText = vertex.label ?? vertex.id;\n const radius = 0;\n const shape = \"class_box\";\n const node = {\n labelStyle: styles2.labelStyle,\n shape,\n labelText: sanitizeText(vertexText),\n classData: vertex,\n rx: radius,\n ry: radius,\n class: cssClassStr,\n style: styles2.style,\n id: vertex.id,\n domId: vertex.domId,\n tooltip: diagObj.db.getTooltip(vertex.id, parent) || \"\",\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === \"group\" ? 500 : void 0,\n type: vertex.type,\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n if (parent) {\n g.setParent(vertex.id, parent);\n }\n log.info(\"setNode\", node);\n });\n};\nconst addNotes = function(notes, g, startEdgeId, classes) {\n log.info(notes);\n notes.forEach(function(note, i) {\n var _a, _b;\n const vertex = note;\n const cssNoteStr = \"\";\n const styles2 = { labelStyle: \"\", style: \"\" };\n const vertexText = vertex.text;\n const radius = 0;\n const shape = \"note\";\n const node = {\n labelStyle: styles2.labelStyle,\n shape,\n labelText: sanitizeText(vertexText),\n noteData: vertex,\n rx: radius,\n ry: radius,\n class: cssNoteStr,\n style: styles2.style,\n id: vertex.id,\n domId: vertex.id,\n tooltip: \"\",\n type: \"note\",\n // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release\n padding: ((_a = getConfig().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig().class) == null ? void 0 : _b.padding)\n };\n g.setNode(vertex.id, node);\n log.info(\"setNode\", node);\n if (!vertex.class || !(vertex.class in classes)) {\n return;\n }\n const edgeId = startEdgeId + i;\n const edgeData = {\n id: `edgeNote${edgeId}`,\n //Set relationship style and line type\n classes: \"relation\",\n pattern: \"dotted\",\n // Set link type for rendering\n arrowhead: \"none\",\n //Set edge extra labels\n startLabelRight: \"\",\n endLabelLeft: \"\",\n //Set relation arrow types\n arrowTypeStart: \"none\",\n arrowTypeEnd: \"none\",\n style: \"fill:none\",\n labelStyle: \"\",\n curve: interpolateToCurve(conf.curve, curveLinear)\n };\n g.setEdge(vertex.id, vertex.class, edgeData, edgeId);\n });\n};\nconst addRelations = function(relations, g) {\n const conf2 = getConfig().flowchart;\n let cnt = 0;\n relations.forEach(function(edge) {\n var _a;\n cnt++;\n const edgeData = {\n //Set relationship style and line type\n classes: \"relation\",\n pattern: edge.relation.lineType == 1 ? \"dashed\" : \"solid\",\n id: \"id\" + cnt,\n // Set link type for rendering\n arrowhead: edge.type === \"arrow_open\" ? \"none\" : \"normal\",\n //Set edge extra labels\n startLabelRight: edge.relationTitle1 === \"none\" ? \"\" : edge.relationTitle1,\n endLabelLeft: edge.relationTitle2 === \"none\" ? \"\" : edge.relationTitle2,\n //Set relation arrow types\n arrowTypeStart: getArrowMarker(edge.relation.type1),\n arrowTypeEnd: getArrowMarker(edge.relation.type2),\n style: \"fill:none\",\n labelStyle: \"\",\n curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)\n };\n log.info(edgeData, edge);\n if (edge.style !== void 0) {\n const styles2 = getStylesFromArray(edge.style);\n edgeData.style = styles2.style;\n edgeData.labelStyle = styles2.labelStyle;\n }\n edge.text = edge.title;\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n if (((_a = getConfig().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig().htmlLabels) {\n edgeData.labelType = \"html\";\n edgeData.label = '' + edge.text + \"\";\n } else {\n edgeData.labelType = \"text\";\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n }\n }\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\nconst setConf = function(cnf) {\n conf = {\n ...conf,\n ...cnf\n };\n};\nconst draw = async function(text, id, _version, diagObj) {\n log.info(\"Drawing class - \", id);\n const conf2 = getConfig().flowchart ?? getConfig().class;\n const securityLevel = getConfig().securityLevel;\n log.info(\"config:\", conf2);\n const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;\n const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: diagObj.db.getDirection(),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const namespaces = diagObj.db.getNamespaces();\n const classes = diagObj.db.getClasses();\n const relations = diagObj.db.getRelations();\n const notes = diagObj.db.getNotes();\n log.info(relations);\n addNamespaces(namespaces, g, id, diagObj);\n addClasses(classes, g, id, diagObj);\n addRelations(relations, g);\n addNotes(notes, g, relations.length + 1, classes);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(\n element,\n g,\n [\"aggregation\", \"extension\", \"composition\", \"dependency\", \"lollipop\"],\n \"classDiagram\",\n id\n );\n utils.insertTitle(svg, \"classTitleText\", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());\n setupGraphViewbox(g, svg, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);\n if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n};\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = \"aggregation\";\n break;\n case 1:\n marker = \"extension\";\n break;\n case 2:\n marker = \"composition\";\n break;\n case 3:\n marker = \"dependency\";\n break;\n case 4:\n marker = \"lollipop\";\n break;\n default:\n marker = \"none\";\n }\n return marker;\n}\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.class) {\n cnf.class = {};\n }\n cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": [] -} diff --git a/.vuepress/.cache/deps/erDiagram-9cfc3649-7UJHKQCG.js b/.vuepress/.cache/deps/erDiagram-9cfc3649-7UJHKQCG.js deleted file mode 100644 index 92b159fab..000000000 --- a/.vuepress/.cache/deps/erDiagram-9cfc3649-7UJHKQCG.js +++ /dev/null @@ -1,1516 +0,0 @@ -import { - Graph, - layout -} from "./chunk-C55JCHDM.js"; -import { - basis_default, - clear, - configureSvgSize, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - line_default, - log$1, - parseGenericTypes, - require_dayjs_min, - require_dist, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/rng.js -var rnds8 = new Uint8Array(16); - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/regex.js -var regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/validate.js -function validate(uuid) { - return typeof uuid === "string" && regex_default.test(uuid); -} -var validate_default = validate; - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/stringify.js -var byteToHex = []; -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 256).toString(16).slice(1)); -} -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]]; -} - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/parse.js -function parse(uuid) { - if (!validate_default(uuid)) { - throw TypeError("Invalid UUID"); - } - let v; - const arr = new Uint8Array(16); - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 255; - arr[2] = v >>> 8 & 255; - arr[3] = v & 255; - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 255; - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 255; - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 255; - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255; - arr[11] = v / 4294967296 & 255; - arr[12] = v >>> 24 & 255; - arr[13] = v >>> 16 & 255; - arr[14] = v >>> 8 & 255; - arr[15] = v & 255; - return arr; -} -var parse_default = parse; - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/v35.js -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); - const bytes = []; - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - return bytes; -} -var DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; -var URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; -function v35(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - var _namespace; - if (typeof value === "string") { - value = stringToBytes(value); - } - if (typeof namespace === "string") { - namespace = parse_default(namespace); - } - if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { - throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); - } - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 15 | version; - bytes[8] = bytes[8] & 63 | 128; - if (buf) { - offset = offset || 0; - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - return buf; - } - return unsafeStringify(bytes); - } - try { - generateUUID.name = name; - } catch (err) { - } - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/md5.js -function md5(bytes) { - if (typeof bytes === "string") { - const msg = unescape(encodeURIComponent(bytes)); - bytes = new Uint8Array(msg.length); - for (let i = 0; i < msg.length; ++i) { - bytes[i] = msg.charCodeAt(i); - } - } - return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8)); -} -function md5ToHexEncodedArray(input) { - const output = []; - const length32 = input.length * 32; - const hexTab = "0123456789abcdef"; - for (let i = 0; i < length32; i += 8) { - const x = input[i >> 5] >>> i % 32 & 255; - const hex = parseInt(hexTab.charAt(x >>> 4 & 15) + hexTab.charAt(x & 15), 16); - output.push(hex); - } - return output; -} -function getOutputLength(inputLength8) { - return (inputLength8 + 64 >>> 9 << 4) + 14 + 1; -} -function wordsToMd5(x, len) { - x[len >> 5] |= 128 << len % 32; - x[getOutputLength(len) - 1] = len; - let a = 1732584193; - let b = -271733879; - let c = -1732584194; - let d = 271733878; - for (let i = 0; i < x.length; i += 16) { - const olda = a; - const oldb = b; - const oldc = c; - const oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - return [a, b, c, d]; -} -function bytesToWords(input) { - if (input.length === 0) { - return []; - } - const length8 = input.length * 8; - const output = new Uint32Array(getOutputLength(length8)); - for (let i = 0; i < length8; i += 8) { - output[i >> 5] |= (input[i / 8] & 255) << i % 32; - } - return output; -} -function safeAdd(x, y) { - const lsw = (x & 65535) + (y & 65535); - const msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return msw << 16 | lsw & 65535; -} -function bitRotateLeft(num, cnt) { - return num << cnt | num >>> 32 - cnt; -} -function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); -} -function md5ff(a, b, c, d, x, s, t) { - return md5cmn(b & c | ~b & d, a, b, x, s, t); -} -function md5gg(a, b, c, d, x, s, t) { - return md5cmn(b & d | c & ~d, a, b, x, s, t); -} -function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); -} -function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); -} -var md5_default = md5; - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/v3.js -var v3 = v35("v3", 48, md5_default); - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/native.js -var randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/sha1.js -function f(s, x, y, z) { - switch (s) { - case 0: - return x & y ^ ~x & z; - case 1: - return x ^ y ^ z; - case 2: - return x & y ^ x & z ^ y & z; - case 3: - return x ^ y ^ z; - } -} -function ROTL(x, n) { - return x << n | x >>> 32 - n; -} -function sha1(bytes) { - const K = [1518500249, 1859775393, 2400959708, 3395469782]; - const H = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; - if (typeof bytes === "string") { - const msg = unescape(encodeURIComponent(bytes)); - bytes = []; - for (let i = 0; i < msg.length; ++i) { - bytes.push(msg.charCodeAt(i)); - } - } else if (!Array.isArray(bytes)) { - bytes = Array.prototype.slice.call(bytes); - } - bytes.push(128); - const l = bytes.length / 4 + 2; - const N = Math.ceil(l / 16); - const M = new Array(N); - for (let i = 0; i < N; ++i) { - const arr = new Uint32Array(16); - for (let j = 0; j < 16; ++j) { - arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3]; - } - M[i] = arr; - } - M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32); - M[N - 1][14] = Math.floor(M[N - 1][14]); - M[N - 1][15] = (bytes.length - 1) * 8 & 4294967295; - for (let i = 0; i < N; ++i) { - const W = new Uint32Array(80); - for (let t = 0; t < 16; ++t) { - W[t] = M[i][t]; - } - for (let t = 16; t < 80; ++t) { - W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1); - } - let a = H[0]; - let b = H[1]; - let c = H[2]; - let d = H[3]; - let e = H[4]; - for (let t = 0; t < 80; ++t) { - const s = Math.floor(t / 20); - const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0; - e = d; - d = c; - c = ROTL(b, 30) >>> 0; - b = a; - a = T; - } - H[0] = H[0] + a >>> 0; - H[1] = H[1] + b >>> 0; - H[2] = H[2] + c >>> 0; - H[3] = H[3] + d >>> 0; - H[4] = H[4] + e >>> 0; - } - return [H[0] >> 24 & 255, H[0] >> 16 & 255, H[0] >> 8 & 255, H[0] & 255, H[1] >> 24 & 255, H[1] >> 16 & 255, H[1] >> 8 & 255, H[1] & 255, H[2] >> 24 & 255, H[2] >> 16 & 255, H[2] >> 8 & 255, H[2] & 255, H[3] >> 24 & 255, H[3] >> 16 & 255, H[3] >> 8 & 255, H[3] & 255, H[4] >> 24 & 255, H[4] >> 16 & 255, H[4] >> 8 & 255, H[4] & 255]; -} -var sha1_default = sha1; - -// node_modules/mermaid/node_modules/uuid/dist/esm-browser/v5.js -var v5 = v35("v5", 80, sha1_default); -var v5_default = v5; - -// node_modules/mermaid/dist/erDiagram-9cfc3649.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "entityName": 11, "relSpec": 12, ":": 13, "role": 14, "BLOCK_START": 15, "attributes": 16, "BLOCK_STOP": 17, "SQS": 18, "SQE": 19, "title": 20, "title_value": 21, "acc_title": 22, "acc_title_value": 23, "acc_descr": 24, "acc_descr_value": 25, "acc_descr_multiline_value": 26, "ALPHANUM": 27, "ENTITY_NAME": 28, "attribute": 29, "attributeType": 30, "attributeName": 31, "attributeKeyTypeList": 32, "attributeComment": 33, "ATTRIBUTE_WORD": 34, "attributeKeyType": 35, "COMMA": 36, "ATTRIBUTE_KEY": 37, "COMMENT": 38, "cardinality": 39, "relType": 40, "ZERO_OR_ONE": 41, "ZERO_OR_MORE": 42, "ONE_OR_MORE": 43, "ONLY_ONE": 44, "MD_PARENT": 45, "NON_IDENTIFYING": 46, "IDENTIFYING": 47, "WORD": 48, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 13: ":", 15: "BLOCK_START", 17: "BLOCK_STOP", 18: "SQS", 19: "SQE", 20: "title", 21: "title_value", 22: "acc_title", 23: "acc_title_value", 24: "acc_descr", 25: "acc_descr_value", 26: "acc_descr_multiline_value", 27: "ALPHANUM", 28: "ENTITY_NAME", 34: "ATTRIBUTE_WORD", 36: "COMMA", 37: "ATTRIBUTE_KEY", 38: "COMMENT", 41: "ZERO_OR_ONE", 42: "ZERO_OR_MORE", 43: "ONE_OR_MORE", 44: "ONLY_ONE", 45: "MD_PARENT", 46: "NON_IDENTIFYING", 47: "IDENTIFYING", 48: "WORD" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 1: - break; - case 2: - this.$ = []; - break; - case 3: - $$[$0 - 1].push($$[$0]); - this.$ = $$[$0 - 1]; - break; - case 4: - case 5: - this.$ = $$[$0]; - break; - case 6: - case 7: - this.$ = []; - break; - case 8: - yy.addEntity($$[$0 - 4]); - yy.addEntity($$[$0 - 2]); - yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]); - break; - case 9: - yy.addEntity($$[$0 - 3]); - yy.addAttributes($$[$0 - 3], $$[$0 - 1]); - break; - case 10: - yy.addEntity($$[$0 - 2]); - break; - case 11: - yy.addEntity($$[$0]); - break; - case 12: - yy.addEntity($$[$0 - 6], $$[$0 - 4]); - yy.addAttributes($$[$0 - 6], $$[$0 - 1]); - break; - case 13: - yy.addEntity($$[$0 - 5], $$[$0 - 3]); - break; - case 14: - yy.addEntity($$[$0 - 3], $$[$0 - 1]); - break; - case 15: - case 16: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 17: - case 18: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 19: - case 43: - this.$ = $$[$0]; - break; - case 20: - case 41: - case 42: - this.$ = $$[$0].replace(/"/g, ""); - break; - case 21: - case 29: - this.$ = [$$[$0]]; - break; - case 22: - $$[$0].push($$[$0 - 1]); - this.$ = $$[$0]; - break; - case 23: - this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] }; - break; - case 24: - this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] }; - break; - case 25: - this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] }; - break; - case 26: - this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] }; - break; - case 27: - case 28: - case 31: - this.$ = $$[$0]; - break; - case 30: - $$[$0 - 2].push($$[$0]); - this.$ = $$[$0 - 2]; - break; - case 32: - this.$ = $$[$0].replace(/"/g, ""); - break; - case 33: - this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] }; - break; - case 34: - this.$ = yy.Cardinality.ZERO_OR_ONE; - break; - case 35: - this.$ = yy.Cardinality.ZERO_OR_MORE; - break; - case 36: - this.$ = yy.Cardinality.ONE_OR_MORE; - break; - case 37: - this.$ = yy.Cardinality.ONLY_ONE; - break; - case 38: - this.$ = yy.Cardinality.MD_PARENT; - break; - case 39: - this.$ = yy.Identification.NON_IDENTIFYING; - break; - case 40: - this.$ = yy.Identification.IDENTIFYING; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])], - defaultActions: { 34: [2, 27], 41: [2, 22] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse2(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - this.begin("acc_title"); - return 22; - case 1: - this.popState(); - return "acc_title_value"; - case 2: - this.begin("acc_descr"); - return 24; - case 3: - this.popState(); - return "acc_descr_value"; - case 4: - this.begin("acc_descr_multiline"); - break; - case 5: - this.popState(); - break; - case 6: - return "acc_descr_multiline_value"; - case 7: - return 10; - case 8: - break; - case 9: - return 8; - case 10: - return 28; - case 11: - return 48; - case 12: - return 4; - case 13: - this.begin("block"); - return 15; - case 14: - return 36; - case 15: - break; - case 16: - return 37; - case 17: - return 34; - case 18: - return 34; - case 19: - return 38; - case 20: - break; - case 21: - this.popState(); - return 17; - case 22: - return yy_.yytext[0]; - case 23: - return 18; - case 24: - return 19; - case 25: - return 41; - case 26: - return 43; - case 27: - return 43; - case 28: - return 43; - case 29: - return 41; - case 30: - return 41; - case 31: - return 42; - case 32: - return 42; - case 33: - return 42; - case 34: - return 42; - case 35: - return 42; - case 36: - return 43; - case 37: - return 42; - case 38: - return 43; - case 39: - return 44; - case 40: - return 44; - case 41: - return 44; - case 42: - return 44; - case 43: - return 41; - case 44: - return 42; - case 45: - return 43; - case 46: - return 45; - case 47: - return 46; - case 48: - return 47; - case 49: - return 47; - case 50: - return 46; - case 51: - return 46; - case 52: - return 46; - case 53: - return 27; - case 54: - return yy_.yytext[0]; - case 55: - return 6; - } - }, - rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\s*u\b)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i], - conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "block": { "rules": [14, 15, 16, 17, 18, 19, 20, 21, 22], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var erParser = parser; -var entities = {}; -var relationships = []; -var Cardinality = { - ZERO_OR_ONE: "ZERO_OR_ONE", - ZERO_OR_MORE: "ZERO_OR_MORE", - ONE_OR_MORE: "ONE_OR_MORE", - ONLY_ONE: "ONLY_ONE", - MD_PARENT: "MD_PARENT" -}; -var Identification = { - NON_IDENTIFYING: "NON_IDENTIFYING", - IDENTIFYING: "IDENTIFYING" -}; -var addEntity = function(name, alias = void 0) { - if (entities[name] === void 0) { - entities[name] = { attributes: [], alias }; - log$1.info("Added new entity :", name); - } else if (entities[name] && !entities[name].alias && alias) { - entities[name].alias = alias; - log$1.info(`Add alias '${alias}' to entity '${name}'`); - } - return entities[name]; -}; -var getEntities = () => entities; -var addAttributes = function(entityName, attribs) { - let entity = addEntity(entityName); - let i; - for (i = attribs.length - 1; i >= 0; i--) { - entity.attributes.push(attribs[i]); - log$1.debug("Added attribute ", attribs[i].attributeName); - } -}; -var addRelationship = function(entA, rolA, entB, rSpec) { - let rel = { - entityA: entA, - roleA: rolA, - entityB: entB, - relSpec: rSpec - }; - relationships.push(rel); - log$1.debug("Added new relationship :", rel); -}; -var getRelationships = () => relationships; -var clear2 = function() { - entities = {}; - relationships = []; - clear(); -}; -var erDb = { - Cardinality, - Identification, - getConfig: () => getConfig().er, - addEntity, - addAttributes, - getEntities, - addRelationship, - getRelationships, - clear: clear2, - setAccTitle, - getAccTitle, - setAccDescription, - getAccDescription, - setDiagramTitle, - getDiagramTitle -}; -var ERMarkers = { - ONLY_ONE_START: "ONLY_ONE_START", - ONLY_ONE_END: "ONLY_ONE_END", - ZERO_OR_ONE_START: "ZERO_OR_ONE_START", - ZERO_OR_ONE_END: "ZERO_OR_ONE_END", - ONE_OR_MORE_START: "ONE_OR_MORE_START", - ONE_OR_MORE_END: "ONE_OR_MORE_END", - ZERO_OR_MORE_START: "ZERO_OR_MORE_START", - ZERO_OR_MORE_END: "ZERO_OR_MORE_END", - MD_PARENT_END: "MD_PARENT_END", - MD_PARENT_START: "MD_PARENT_START" -}; -var insertMarkers = function(elem, conf2) { - let marker; - elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_START).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_END).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18"); - elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18"); - marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"); - marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6); - marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18"); - marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto"); - marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6); - marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18"); - elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"); - elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"); - marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"); - marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6); - marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18"); - marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto"); - marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6); - marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18"); - return; -}; -var erMarkers = { - ERMarkers, - insertMarkers -}; -var BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g; -var conf = {}; -var entityNameIds = /* @__PURE__ */ new Map(); -var setConf = function(cnf) { - const keys = Object.keys(cnf); - for (const key of keys) { - conf[key] = cnf[key]; - } -}; -var drawAttributes = (groupNode, entityTextNode, attributes) => { - const heightPadding = conf.entityPadding / 3; - const widthPadding = conf.entityPadding / 3; - const attrFontSize = conf.fontSize * 0.85; - const labelBBox = entityTextNode.node().getBBox(); - const attributeNodes = []; - let hasKeyType = false; - let hasComment = false; - let maxTypeWidth = 0; - let maxNameWidth = 0; - let maxKeyWidth = 0; - let maxCommentWidth = 0; - let cumulativeHeight = labelBBox.height + heightPadding * 2; - let attrNum = 1; - attributes.forEach((item) => { - if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) { - hasKeyType = true; - } - if (item.attributeComment !== void 0) { - hasComment = true; - } - }); - attributes.forEach((item) => { - const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`; - let nodeHeight = 0; - const attributeType = parseGenericTypes(item.attributeType); - const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(attributeType); - const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName); - const attributeNode = {}; - attributeNode.tn = typeNode; - attributeNode.nn = nameNode; - const typeBBox = typeNode.node().getBBox(); - const nameBBox = nameNode.node().getBBox(); - maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width); - maxNameWidth = Math.max(maxNameWidth, nameBBox.width); - nodeHeight = Math.max(typeBBox.height, nameBBox.height); - if (hasKeyType) { - const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : ""; - const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText); - attributeNode.kn = keyTypeNode; - const keyTypeBBox = keyTypeNode.node().getBBox(); - maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width); - nodeHeight = Math.max(nodeHeight, keyTypeBBox.height); - } - if (hasComment) { - const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || ""); - attributeNode.cn = commentNode; - const commentNodeBBox = commentNode.node().getBBox(); - maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width); - nodeHeight = Math.max(nodeHeight, commentNodeBBox.height); - } - attributeNode.height = nodeHeight; - attributeNodes.push(attributeNode); - cumulativeHeight += nodeHeight + heightPadding * 2; - attrNum += 1; - }); - let widthPaddingFactor = 4; - if (hasKeyType) { - widthPaddingFactor += 2; - } - if (hasComment) { - widthPaddingFactor += 2; - } - const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth; - const bBox = { - width: Math.max( - conf.minEntityWidth, - Math.max( - labelBBox.width + conf.entityPadding * 2, - maxWidth + widthPadding * widthPaddingFactor - ) - ), - height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2) - }; - if (attributes.length > 0) { - const spareColumnWidth = Math.max( - 0, - (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2) - ); - entityTextNode.attr( - "transform", - "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")" - ); - let heightOffset = labelBBox.height + heightPadding * 2; - let attribStyle = "attributeBoxOdd"; - attributeNodes.forEach((attributeNode) => { - const alignY = heightOffset + heightPadding + attributeNode.height / 2; - attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")"); - const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); - const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width")); - attributeNode.nn.attr( - "transform", - "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")" - ); - const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); - let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width")); - if (hasKeyType) { - attributeNode.kn.attr( - "transform", - "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")" - ); - const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); - keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width")); - } - if (hasComment) { - attributeNode.cn.attr( - "transform", - "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")" - ); - groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2); - } - heightOffset += attributeNode.height + heightPadding * 2; - attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd"; - }); - } else { - bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight); - entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")"); - } - return bBox; -}; -var drawEntities = function(svgNode, entities2, graph) { - const keys = Object.keys(entities2); - let firstOne; - keys.forEach(function(entityName) { - const entityId = generateId(entityName, "entity"); - entityNameIds.set(entityName, entityId); - const groupNode = svgNode.append("g").attr("id", entityId); - firstOne = firstOne === void 0 ? entityId : firstOne; - const textId = "text-" + entityId; - const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(entities2[entityName].alias ?? entityName); - const { width: entityWidth, height: entityHeight } = drawAttributes( - groupNode, - textNode, - entities2[entityName].attributes - ); - const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight); - const rectBBox = rectNode.node().getBBox(); - graph.setNode(entityId, { - width: rectBBox.width, - height: rectBBox.height, - shape: "rect", - id: entityId - }); - }); - return firstOne; -}; -var adjustEntities = function(svgNode, graph) { - graph.nodes().forEach(function(v) { - if (v !== void 0 && graph.node(v) !== void 0) { - svgNode.select("#" + v).attr( - "transform", - "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )" - ); - } - }); -}; -var getEdgeName = function(rel) { - return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, ""); -}; -var addRelationships = function(relationships2, g) { - relationships2.forEach(function(r) { - g.setEdge( - entityNameIds.get(r.entityA), - entityNameIds.get(r.entityB), - { relationship: r }, - getEdgeName(r) - ); - }); - return relationships2; -}; -var relCnt = 0; -var drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) { - relCnt++; - const edge = g.edge( - entityNameIds.get(rel.entityA), - entityNameIds.get(rel.entityB), - getEdgeName(rel) - ); - const lineFunction = line_default().x(function(d) { - return d.x; - }).y(function(d) { - return d.y; - }).curve(basis_default); - const svgPath = svg.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf.stroke).style("fill", "none"); - if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) { - svgPath.attr("stroke-dasharray", "8,8"); - } - let url = ""; - if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - switch (rel.relSpec.cardA) { - case diagObj.db.Cardinality.ZERO_OR_ONE: - svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")"); - break; - case diagObj.db.Cardinality.ZERO_OR_MORE: - svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")"); - break; - case diagObj.db.Cardinality.ONE_OR_MORE: - svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")"); - break; - case diagObj.db.Cardinality.ONLY_ONE: - svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")"); - break; - case diagObj.db.Cardinality.MD_PARENT: - svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_END + ")"); - break; - } - switch (rel.relSpec.cardB) { - case diagObj.db.Cardinality.ZERO_OR_ONE: - svgPath.attr( - "marker-start", - "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")" - ); - break; - case diagObj.db.Cardinality.ZERO_OR_MORE: - svgPath.attr( - "marker-start", - "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")" - ); - break; - case diagObj.db.Cardinality.ONE_OR_MORE: - svgPath.attr( - "marker-start", - "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")" - ); - break; - case diagObj.db.Cardinality.ONLY_ONE: - svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")"); - break; - case diagObj.db.Cardinality.MD_PARENT: - svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_START + ")"); - break; - } - const len = svgPath.node().getTotalLength(); - const labelPoint = svgPath.node().getPointAtLength(len * 0.5); - const labelId = "rel" + relCnt; - const labelNode = svg.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig().fontFamily).style("font-size", conf.fontSize + "px").text(rel.roleA); - const labelBBox = labelNode.node().getBBox(); - svg.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height); -}; -var draw = function(text, id, _version, diagObj) { - conf = getConfig().er; - log$1.info("Drawing ER diagram"); - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select(`[id='${id}']`); - erMarkers.insertMarkers(svg, conf); - let g; - g = new Graph({ - multigraph: true, - directed: true, - compound: false - }).setGraph({ - rankdir: conf.layoutDirection, - marginx: 20, - marginy: 20, - nodesep: 100, - edgesep: 100, - ranksep: 100 - }).setDefaultEdgeLabel(function() { - return {}; - }); - const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g); - const relationships2 = addRelationships(diagObj.db.getRelationships(), g); - layout(g); - adjustEntities(svg, g); - relationships2.forEach(function(rel) { - drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj); - }); - const padding = conf.diagramPadding; - utils.insertTitle(svg, "entityTitleText", conf.titleTopMargin, diagObj.db.getDiagramTitle()); - const svgBounds = svg.node().getBBox(); - const width = svgBounds.width + padding * 2; - const height = svgBounds.height + padding * 2; - configureSvgSize(svg, height, width, conf.useMaxWidth); - svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); -}; -var MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c"; -function generateId(str = "", prefix = "") { - const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, ""); - return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5_default( - str, - MERMAID_ERDIAGRAM_UUID - )}`; -} -function strWithHyphen(str = "") { - return str.length > 0 ? `${str}-` : ""; -} -var erRenderer = { - setConf, - draw -}; -var getStyles = (options) => ` - .entityBox { - fill: ${options.mainBkg}; - stroke: ${options.nodeBorder}; - } - - .attributeBoxOdd { - fill: ${options.attributeBackgroundColorOdd}; - stroke: ${options.nodeBorder}; - } - - .attributeBoxEven { - fill: ${options.attributeBackgroundColorEven}; - stroke: ${options.nodeBorder}; - } - - .relationshipLabelBox { - fill: ${options.tertiaryColor}; - opacity: 0.7; - background-color: ${options.tertiaryColor}; - rect { - opacity: 0.5; - } - } - - .relationshipLine { - stroke: ${options.lineColor}; - } - - .entityTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${options.textColor}; - } - #MD_PARENT_START { - fill: #f5f5f5 !important; - stroke: ${options.lineColor} !important; - stroke-width: 1; - } - #MD_PARENT_END { - fill: #f5f5f5 !important; - stroke: ${options.lineColor} !important; - stroke-width: 1; - } - -`; -var erStyles = getStyles; -var diagram = { - parser: erParser, - db: erDb, - renderer: erRenderer, - styles: erStyles -}; -export { - diagram -}; -//# sourceMappingURL=erDiagram-9cfc3649-7UJHKQCG.js.map diff --git a/.vuepress/.cache/deps/erDiagram-9cfc3649-7UJHKQCG.js.map b/.vuepress/.cache/deps/erDiagram-9cfc3649-7UJHKQCG.js.map deleted file mode 100644 index 5ff5594ae..000000000 --- a/.vuepress/.cache/deps/erDiagram-9cfc3649-7UJHKQCG.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/rng.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/regex.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/validate.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/stringify.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/parse.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/v35.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/md5.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/v3.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/native.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/sha1.js", "../../../../node_modules/mermaid/node_modules/uuid/dist/esm-browser/v5.js", "../../../../node_modules/mermaid/dist/erDiagram-9cfc3649.js"], - "sourcesContent": ["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}", "export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;", "import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n 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]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;", "import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nexport default md5;", "import v35 from './v35.js';\nimport md5 from './md5.js';\nconst v3 = v35('v3', 0x30, md5);\nexport default v3;", "const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};", "// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;", "import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;", "import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, q as setDiagramTitle, r as getDiagramTitle, l as log, t as clear$1, u as utils, i as configureSvgSize, v as parseGenericTypes } from \"./mermaid-934d9bea.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, line, curveBasis } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport { v5 } from \"uuid\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 20, 22, 24, 26, 27, 28], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 14], $V6 = [1, 15], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 25], $Vc = [6, 8, 10, 13, 15, 18, 19, 20, 22, 24, 26, 27, 28, 41, 42, 43, 44, 45], $Vd = [1, 34], $Ve = [27, 28, 46, 47], $Vf = [41, 42, 43, 44, 45], $Vg = [17, 34], $Vh = [1, 54], $Vi = [1, 53], $Vj = [17, 34, 36, 38];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"ER_DIAGRAM\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"entityName\": 11, \"relSpec\": 12, \":\": 13, \"role\": 14, \"BLOCK_START\": 15, \"attributes\": 16, \"BLOCK_STOP\": 17, \"SQS\": 18, \"SQE\": 19, \"title\": 20, \"title_value\": 21, \"acc_title\": 22, \"acc_title_value\": 23, \"acc_descr\": 24, \"acc_descr_value\": 25, \"acc_descr_multiline_value\": 26, \"ALPHANUM\": 27, \"ENTITY_NAME\": 28, \"attribute\": 29, \"attributeType\": 30, \"attributeName\": 31, \"attributeKeyTypeList\": 32, \"attributeComment\": 33, \"ATTRIBUTE_WORD\": 34, \"attributeKeyType\": 35, \"COMMA\": 36, \"ATTRIBUTE_KEY\": 37, \"COMMENT\": 38, \"cardinality\": 39, \"relType\": 40, \"ZERO_OR_ONE\": 41, \"ZERO_OR_MORE\": 42, \"ONE_OR_MORE\": 43, \"ONLY_ONE\": 44, \"MD_PARENT\": 45, \"NON_IDENTIFYING\": 46, \"IDENTIFYING\": 47, \"WORD\": 48, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ER_DIAGRAM\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 13: \":\", 15: \"BLOCK_START\", 17: \"BLOCK_STOP\", 18: \"SQS\", 19: \"SQE\", 20: \"title\", 21: \"title_value\", 22: \"acc_title\", 23: \"acc_title_value\", 24: \"acc_descr\", 25: \"acc_descr_value\", 26: \"acc_descr_multiline_value\", 27: \"ALPHANUM\", 28: \"ENTITY_NAME\", 34: \"ATTRIBUTE_WORD\", 36: \"COMMA\", 37: \"ATTRIBUTE_KEY\", 38: \"COMMENT\", 41: \"ZERO_OR_ONE\", 42: \"ZERO_OR_MORE\", 43: \"ONE_OR_MORE\", 44: \"ONLY_ONE\", 45: \"MD_PARENT\", 46: \"NON_IDENTIFYING\", 47: \"IDENTIFYING\", 48: \"WORD\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 4], [9, 3], [9, 1], [9, 7], [9, 6], [9, 4], [9, 2], [9, 2], [9, 2], [9, 1], [11, 1], [11, 1], [16, 1], [16, 2], [29, 2], [29, 3], [29, 3], [29, 4], [30, 1], [31, 1], [32, 1], [32, 3], [35, 1], [33, 1], [12, 3], [39, 1], [39, 1], [39, 1], [39, 1], [39, 1], [40, 1], [40, 1], [14, 1], [14, 1], [14, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n break;\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.addEntity($$[$0 - 4]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n break;\n case 9:\n yy.addEntity($$[$0 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 10:\n yy.addEntity($$[$0 - 2]);\n break;\n case 11:\n yy.addEntity($$[$0]);\n break;\n case 12:\n yy.addEntity($$[$0 - 6], $$[$0 - 4]);\n yy.addAttributes($$[$0 - 6], $$[$0 - 1]);\n break;\n case 13:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n break;\n case 14:\n yy.addEntity($$[$0 - 3], $$[$0 - 1]);\n break;\n case 15:\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n case 43:\n this.$ = $$[$0];\n break;\n case 20:\n case 41:\n case 42:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 21:\n case 29:\n this.$ = [$$[$0]];\n break;\n case 22:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 23:\n this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };\n break;\n case 24:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };\n break;\n case 25:\n this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 26:\n this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };\n break;\n case 27:\n case 28:\n case 31:\n this.$ = $$[$0];\n break;\n case 30:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 32:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 33:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 34:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 35:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 36:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 37:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 38:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 39:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 40:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 16, 11: 9, 20: $V1, 22: $V2, 24: $V3, 26: $V4, 27: $V5, 28: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 11], { 12: 17, 39: 20, 15: [1, 18], 18: [1, 19], 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }), { 21: [1, 26] }, { 23: [1, 27] }, { 25: [1, 28] }, o($V0, [2, 18]), o($Vc, [2, 19]), o($Vc, [2, 20]), o($V0, [2, 4]), { 11: 29, 27: $V5, 28: $V6 }, { 16: 30, 17: [1, 31], 29: 32, 30: 33, 34: $Vd }, { 11: 35, 27: $V5, 28: $V6 }, { 40: 36, 46: [1, 37], 47: [1, 38] }, o($Ve, [2, 34]), o($Ve, [2, 35]), o($Ve, [2, 36]), o($Ve, [2, 37]), o($Ve, [2, 38]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), { 13: [1, 39] }, { 17: [1, 40] }, o($V0, [2, 10]), { 16: 41, 17: [2, 21], 29: 32, 30: 33, 34: $Vd }, { 31: 42, 34: [1, 43] }, { 34: [2, 27] }, { 19: [1, 44] }, { 39: 45, 41: $V7, 42: $V8, 43: $V9, 44: $Va, 45: $Vb }, o($Vf, [2, 39]), o($Vf, [2, 40]), { 14: 46, 27: [1, 49], 28: [1, 48], 48: [1, 47] }, o($V0, [2, 9]), { 17: [2, 22] }, o($Vg, [2, 23], { 32: 50, 33: 51, 35: 52, 37: $Vh, 38: $Vi }), o([17, 34, 37, 38], [2, 28]), o($V0, [2, 14], { 15: [1, 55] }), o([27, 28], [2, 33]), o($V0, [2, 8]), o($V0, [2, 41]), o($V0, [2, 42]), o($V0, [2, 43]), o($Vg, [2, 24], { 33: 56, 36: [1, 57], 38: $Vi }), o($Vg, [2, 25]), o($Vj, [2, 29]), o($Vg, [2, 32]), o($Vj, [2, 31]), { 16: 58, 17: [1, 59], 29: 32, 30: 33, 34: $Vd }, o($Vg, [2, 26]), { 35: 60, 37: $Vh }, { 17: [1, 61] }, o($V0, [2, 13]), o($Vj, [2, 30]), o($V0, [2, 12])],\n defaultActions: { 34: [2, 27], 41: [2, 22] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 22;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 24;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n case 7:\n return 10;\n case 8:\n break;\n case 9:\n return 8;\n case 10:\n return 28;\n case 11:\n return 48;\n case 12:\n return 4;\n case 13:\n this.begin(\"block\");\n return 15;\n case 14:\n return 36;\n case 15:\n break;\n case 16:\n return 37;\n case 17:\n return 34;\n case 18:\n return 34;\n case 19:\n return 38;\n case 20:\n break;\n case 21:\n this.popState();\n return 17;\n case 22:\n return yy_.yytext[0];\n case 23:\n return 18;\n case 24:\n return 19;\n case 25:\n return 41;\n case 26:\n return 43;\n case 27:\n return 43;\n case 28:\n return 43;\n case 29:\n return 41;\n case 30:\n return 41;\n case 31:\n return 42;\n case 32:\n return 42;\n case 33:\n return 42;\n case 34:\n return 42;\n case 35:\n return 42;\n case 36:\n return 43;\n case 37:\n return 42;\n case 38:\n return 43;\n case 39:\n return 44;\n case 40:\n return 44;\n case 41:\n return 44;\n case 42:\n return 44;\n case 43:\n return 41;\n case 44:\n return 42;\n case 45:\n return 43;\n case 46:\n return 45;\n case 47:\n return 46;\n case 48:\n return 47;\n case 49:\n return 47;\n case 50:\n return 46;\n case 51:\n return 46;\n case 52:\n return 46;\n case 53:\n return 27;\n case 54:\n return yy_.yytext[0];\n case 55:\n return 6;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:,)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[\\*A-Za-z_][A-Za-z0-9\\-_\\[\\]\\(\\)]*)/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:one or zero\\b)/i, /^(?:one or more\\b)/i, /^(?:one or many\\b)/i, /^(?:1\\+)/i, /^(?:\\|o\\b)/i, /^(?:zero or one\\b)/i, /^(?:zero or more\\b)/i, /^(?:zero or many\\b)/i, /^(?:0\\+)/i, /^(?:\\}o\\b)/i, /^(?:many\\(0\\))/i, /^(?:many\\(1\\))/i, /^(?:many\\b)/i, /^(?:\\}\\|)/i, /^(?:one\\b)/i, /^(?:only one\\b)/i, /^(?:1\\b)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:\\s*u\\b)/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:[A-Za-z_][A-Za-z0-9\\-_]*)/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"block\": { \"rules\": [14, 15, 16, 17, 18, 19, 20, 21, 22], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst erParser = parser;\nlet entities = {};\nlet relationships = [];\nconst Cardinality = {\n ZERO_OR_ONE: \"ZERO_OR_ONE\",\n ZERO_OR_MORE: \"ZERO_OR_MORE\",\n ONE_OR_MORE: \"ONE_OR_MORE\",\n ONLY_ONE: \"ONLY_ONE\",\n MD_PARENT: \"MD_PARENT\"\n};\nconst Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n};\nconst addEntity = function(name, alias = void 0) {\n if (entities[name] === void 0) {\n entities[name] = { attributes: [], alias };\n log.info(\"Added new entity :\", name);\n } else if (entities[name] && !entities[name].alias && alias) {\n entities[name].alias = alias;\n log.info(`Add alias '${alias}' to entity '${name}'`);\n }\n return entities[name];\n};\nconst getEntities = () => entities;\nconst addAttributes = function(entityName, attribs) {\n let entity = addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].attributeName);\n }\n};\nconst addRelationship = function(entA, rolA, entB, rSpec) {\n let rel = {\n entityA: entA,\n roleA: rolA,\n entityB: entB,\n relSpec: rSpec\n };\n relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n};\nconst getRelationships = () => relationships;\nconst clear = function() {\n entities = {};\n relationships = [];\n clear$1();\n};\nconst erDb = {\n Cardinality,\n Identification,\n getConfig: () => getConfig().er,\n addEntity,\n addAttributes,\n getEntities,\n addRelationship,\n getRelationships,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\nconst ERMarkers = {\n ONLY_ONE_START: \"ONLY_ONE_START\",\n ONLY_ONE_END: \"ONLY_ONE_END\",\n ZERO_OR_ONE_START: \"ZERO_OR_ONE_START\",\n ZERO_OR_ONE_END: \"ZERO_OR_ONE_END\",\n ONE_OR_MORE_START: \"ONE_OR_MORE_START\",\n ONE_OR_MORE_END: \"ONE_OR_MORE_END\",\n ZERO_OR_MORE_START: \"ZERO_OR_MORE_START\",\n ZERO_OR_MORE_END: \"ZERO_OR_MORE_END\",\n MD_PARENT_END: \"MD_PARENT_END\",\n MD_PARENT_START: \"MD_PARENT_START\"\n};\nconst insertMarkers = function(elem, conf2) {\n let marker;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_START).attr(\"refX\", 0).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.MD_PARENT_END).attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONLY_ONE_END).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_START).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M9,0 L9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_ONE_END).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,0 L21,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ONE_OR_MORE_END).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_START).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n marker = elem.append(\"defs\").append(\"marker\").attr(\"id\", ERMarkers.ZERO_OR_MORE_END).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n marker.append(\"circle\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n marker.append(\"path\").attr(\"stroke\", conf2.stroke).attr(\"fill\", \"none\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n return;\n};\nconst erMarkers = {\n ERMarkers,\n insertMarkers\n};\nconst BAD_ID_CHARS_REGEXP = /[^\\dA-Za-z](\\W)*/g;\nlet conf = {};\nlet entityNameIds = /* @__PURE__ */ new Map();\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst drawAttributes = (groupNode, entityTextNode, attributes) => {\n const heightPadding = conf.entityPadding / 3;\n const widthPadding = conf.entityPadding / 3;\n const attrFontSize = conf.fontSize * 0.85;\n const labelBBox = entityTextNode.node().getBBox();\n const attributeNodes = [];\n let hasKeyType = false;\n let hasComment = false;\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeyWidth = 0;\n let maxCommentWidth = 0;\n let cumulativeHeight = labelBBox.height + heightPadding * 2;\n let attrNum = 1;\n attributes.forEach((item) => {\n if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {\n hasKeyType = true;\n }\n if (item.attributeComment !== void 0) {\n hasComment = true;\n }\n });\n attributes.forEach((item) => {\n const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;\n let nodeHeight = 0;\n const attributeType = parseGenericTypes(item.attributeType);\n const typeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-type`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(attributeType);\n const nameNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-name`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeName);\n const attributeNode = {};\n attributeNode.tn = typeNode;\n attributeNode.nn = nameNode;\n const typeBBox = typeNode.node().getBBox();\n const nameBBox = nameNode.node().getBBox();\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);\n maxNameWidth = Math.max(maxNameWidth, nameBBox.width);\n nodeHeight = Math.max(typeBBox.height, nameBBox.height);\n if (hasKeyType) {\n const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(\",\") : \"\";\n const keyTypeNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-key`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(keyTypeNodeText);\n attributeNode.kn = keyTypeNode;\n const keyTypeBBox = keyTypeNode.node().getBBox();\n maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);\n nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);\n }\n if (hasComment) {\n const commentNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", `${attrPrefix}-comment`).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"left\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", attrFontSize + \"px\").text(item.attributeComment || \"\");\n attributeNode.cn = commentNode;\n const commentNodeBBox = commentNode.node().getBBox();\n maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);\n nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);\n }\n attributeNode.height = nodeHeight;\n attributeNodes.push(attributeNode);\n cumulativeHeight += nodeHeight + heightPadding * 2;\n attrNum += 1;\n });\n let widthPaddingFactor = 4;\n if (hasKeyType) {\n widthPaddingFactor += 2;\n }\n if (hasComment) {\n widthPaddingFactor += 2;\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;\n const bBox = {\n width: Math.max(\n conf.minEntityWidth,\n Math.max(\n labelBBox.width + conf.entityPadding * 2,\n maxWidth + widthPadding * widthPaddingFactor\n )\n ),\n height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)\n };\n if (attributes.length > 0) {\n const spareColumnWidth = Math.max(\n 0,\n (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)\n );\n entityTextNode.attr(\n \"transform\",\n \"translate(\" + bBox.width / 2 + \",\" + (heightPadding + labelBBox.height / 2) + \")\"\n );\n let heightOffset = labelBBox.height + heightPadding * 2;\n let attribStyle = \"attributeBoxOdd\";\n attributeNodes.forEach((attributeNode) => {\n const alignY = heightOffset + heightPadding + attributeNode.height / 2;\n attributeNode.tn.attr(\"transform\", \"translate(\" + widthPadding + \",\" + alignY + \")\");\n const typeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", 0).attr(\"y\", heightOffset).attr(\"width\", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n const nameXOffset = parseFloat(typeRect.attr(\"x\")) + parseFloat(typeRect.attr(\"width\"));\n attributeNode.nn.attr(\n \"transform\",\n \"translate(\" + (nameXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const nameRect = groupNode.insert(\"rect\", \"#\" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", nameXOffset).attr(\"y\", heightOffset).attr(\"width\", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n let keyTypeAndCommentXOffset = parseFloat(nameRect.attr(\"x\")) + parseFloat(nameRect.attr(\"width\"));\n if (hasKeyType) {\n attributeNode.kn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n const keyTypeRect = groupNode.insert(\"rect\", \"#\" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr(\"x\")) + parseFloat(keyTypeRect.attr(\"width\"));\n }\n if (hasComment) {\n attributeNode.cn.attr(\n \"transform\",\n \"translate(\" + (keyTypeAndCommentXOffset + widthPadding) + \",\" + alignY + \")\"\n );\n groupNode.insert(\"rect\", \"#\" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, \"true\").attr(\"x\", keyTypeAndCommentXOffset).attr(\"y\", heightOffset).attr(\"width\", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr(\"height\", attributeNode.height + heightPadding * 2);\n }\n heightOffset += attributeNode.height + heightPadding * 2;\n attribStyle = attribStyle === \"attributeBoxOdd\" ? \"attributeBoxEven\" : \"attributeBoxOdd\";\n });\n } else {\n bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight);\n entityTextNode.attr(\"transform\", \"translate(\" + bBox.width / 2 + \",\" + bBox.height / 2 + \")\");\n }\n return bBox;\n};\nconst drawEntities = function(svgNode, entities2, graph) {\n const keys = Object.keys(entities2);\n let firstOne;\n keys.forEach(function(entityName) {\n const entityId = generateId(entityName, \"entity\");\n entityNameIds.set(entityName, entityId);\n const groupNode = svgNode.append(\"g\").attr(\"id\", entityId);\n firstOne = firstOne === void 0 ? entityId : firstOne;\n const textId = \"text-\" + entityId;\n const textNode = groupNode.append(\"text\").classed(\"er entityLabel\", true).attr(\"id\", textId).attr(\"x\", 0).attr(\"y\", 0).style(\"dominant-baseline\", \"middle\").style(\"text-anchor\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(entities2[entityName].alias ?? entityName);\n const { width: entityWidth, height: entityHeight } = drawAttributes(\n groupNode,\n textNode,\n entities2[entityName].attributes\n );\n const rectNode = groupNode.insert(\"rect\", \"#\" + textId).classed(\"er entityBox\", true).attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", entityWidth).attr(\"height\", entityHeight);\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(entityId, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: entityId\n });\n });\n return firstOne;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n};\nconst getEdgeName = function(rel) {\n return (rel.entityA + rel.roleA + rel.entityB).replace(/\\s/g, \"\");\n};\nconst addRelationships = function(relationships2, g) {\n relationships2.forEach(function(r) {\n g.setEdge(\n entityNameIds.get(r.entityA),\n entityNameIds.get(r.entityB),\n { relationship: r },\n getEdgeName(r)\n );\n });\n return relationships2;\n};\nlet relCnt = 0;\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n relCnt++;\n const edge = g.edge(\n entityNameIds.get(rel.entityA),\n entityNameIds.get(rel.entityB),\n getEdgeName(rel)\n );\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = svg.insert(\"path\", \"#\" + insert).classed(\"er relationshipLine\", true).attr(\"d\", lineFunction(edge.points)).style(\"stroke\", conf.stroke).style(\"fill\", \"none\");\n if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {\n svgPath.attr(\"stroke-dasharray\", \"8,8\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (rel.relSpec.cardA) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_END + \")\");\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_END + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_END + \")\");\n break;\n }\n switch (rel.relSpec.cardB) {\n case diagObj.db.Cardinality.ZERO_OR_ONE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_ONE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ZERO_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ZERO_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONE_OR_MORE:\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONE_OR_MORE_START + \")\"\n );\n break;\n case diagObj.db.Cardinality.ONLY_ONE:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.ONLY_ONE_START + \")\");\n break;\n case diagObj.db.Cardinality.MD_PARENT:\n svgPath.attr(\"marker-start\", \"url(\" + url + \"#\" + erMarkers.ERMarkers.MD_PARENT_START + \")\");\n break;\n }\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n const labelNode = svg.append(\"text\").classed(\"er relationshipLabel\", true).attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).style(\"text-anchor\", \"middle\").style(\"dominant-baseline\", \"middle\").style(\"font-family\", getConfig().fontFamily).style(\"font-size\", conf.fontSize + \"px\").text(rel.roleA);\n const labelBBox = labelNode.node().getBBox();\n svg.insert(\"rect\", \"#\" + labelId).classed(\"er relationshipLabelBox\", true).attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height);\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().er;\n log.info(\"Drawing ER diagram\");\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n erMarkers.insertMarkers(svg, conf);\n let g;\n g = new graphlib.Graph({\n multigraph: true,\n directed: true,\n compound: false\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const firstEntity = drawEntities(svg, diagObj.db.getEntities(), g);\n const relationships2 = addRelationships(diagObj.db.getRelationships(), g);\n layout(g);\n adjustEntities(svg, g);\n relationships2.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);\n });\n const padding = conf.diagramPadding;\n utils.insertTitle(svg, \"entityTitleText\", conf.titleTopMargin, diagObj.db.getDiagramTitle());\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst MERMAID_ERDIAGRAM_UUID = \"28e9f9db-3c8d-5aa5-9faf-44286ae5937c\";\nfunction generateId(str = \"\", prefix = \"\") {\n const simplifiedStr = str.replace(BAD_ID_CHARS_REGEXP, \"\");\n return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${v5(\n str,\n MERMAID_ERDIAGRAM_UUID\n )}`;\n}\nfunction strWithHyphen(str = \"\") {\n return str.length > 0 ? `${str}-` : \"\";\n}\nconst erRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${options.attributeBackgroundColorOdd};\n stroke: ${options.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${options.attributeBackgroundColorEven};\n stroke: ${options.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${options.tertiaryColor};\n opacity: 0.7;\n background-color: ${options.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${options.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n } \n #MD_PARENT_START {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n #MD_PARENT_END {\n fill: #f5f5f5 !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n \n`;\nconst erStyles = getStyles;\nconst diagram = {\n parser: erParser,\n db: erDb,\n renderer: erRenderer,\n styles: erStyles\n};\nexport {\n diagram\n};\n"], - "mappings": "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C,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAA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", - "names": ["parse", "clear"] -} diff --git a/.vuepress/.cache/deps/flowDiagram-61eb444c-STRM2QHE.js b/.vuepress/.cache/deps/flowDiagram-61eb444c-STRM2QHE.js deleted file mode 100644 index b119c229a..000000000 --- a/.vuepress/.cache/deps/flowDiagram-61eb444c-STRM2QHE.js +++ /dev/null @@ -1,1334 +0,0 @@ -import { - addHtmlLabel, - applyClass, - applyStyle, - applyTransition, - edgeToId, - flowRendererV2, - flowStyles, - isSubgraph -} from "./chunk-CGPJAAKM.js"; -import "./chunk-6ESK7MQZ.js"; -import { - flowDb, - parser$1 -} from "./chunk-THAGWN3R.js"; -import "./chunk-ULQHWUKP.js"; -import { - Graph, - defaults_default, - forEach_default, - has_default, - layout, - pick_default, - range_default, - uniqueId_default -} from "./chunk-C55JCHDM.js"; -import "./chunk-TQDBUXIK.js"; -import { - common$1, - evaluate, - getConfig, - getStylesFromArray, - interpolateToCurve, - line_default, - linear_default, - log$1, - require_dayjs_min, - require_dist, - selectAll_default, - select_default, - setupGraphViewbox$1, - svg -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/dagre-d3-es/src/dagre-js/arrows.js -var arrows = { - normal, - vee, - undirected -}; -function setArrows(value) { - arrows = value; -} -function normal(parent, id, edge, type) { - var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); - var path = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); - applyStyle(path, edge[type + "Style"]); - if (edge[type + "Class"]) { - path.attr("class", edge[type + "Class"]); - } -} -function vee(parent, id, edge, type) { - var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); - var path = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width", 1).style("stroke-dasharray", "1,0"); - applyStyle(path, edge[type + "Style"]); - if (edge[type + "Class"]) { - path.attr("class", edge[type + "Class"]); - } -} -function undirected(parent, id, edge, type) { - var marker = parent.append("marker").attr("id", id).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); - var path = marker.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0"); - applyStyle(path, edge[type + "Style"]); - if (edge[type + "Class"]) { - path.attr("class", edge[type + "Class"]); - } -} - -// node_modules/dagre-d3-es/src/dagre-js/label/add-svg-label.js -function addSVGLabel(root, node) { - var domNode = root; - domNode.node().appendChild(node.label); - applyStyle(domNode, node.labelStyle); - return domNode; -} - -// node_modules/dagre-d3-es/src/dagre-js/label/add-text-label.js -function addTextLabel(root, node) { - var domNode = root.append("text"); - var lines = processEscapeSequences(node.label).split("\n"); - for (var i = 0; i < lines.length; i++) { - domNode.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(lines[i]); - } - applyStyle(domNode, node.labelStyle); - return domNode; -} -function processEscapeSequences(text) { - var newText = ""; - var escaped = false; - var ch; - for (var i = 0; i < text.length; ++i) { - ch = text[i]; - if (escaped) { - switch (ch) { - case "n": - newText += "\n"; - break; - default: - newText += ch; - } - escaped = false; - } else if (ch === "\\") { - escaped = true; - } else { - newText += ch; - } - } - return newText; -} - -// node_modules/dagre-d3-es/src/dagre-js/label/add-label.js -function addLabel(root, node, location2) { - var label = node.label; - var labelSvg = root.append("g"); - if (node.labelType === "svg") { - addSVGLabel(labelSvg, node); - } else if (typeof label !== "string" || node.labelType === "html") { - addHtmlLabel(labelSvg, node); - } else { - addTextLabel(labelSvg, node); - } - var labelBBox = labelSvg.node().getBBox(); - var y; - switch (location2) { - case "top": - y = -node.height / 2; - break; - case "bottom": - y = node.height / 2 - labelBBox.height; - break; - default: - y = -labelBBox.height / 2; - } - labelSvg.attr("transform", "translate(" + -labelBBox.width / 2 + "," + y + ")"); - return labelSvg; -} - -// node_modules/dagre-d3-es/src/dagre-js/create-clusters.js -var createClusters = function(selection, g) { - var clusters = g.nodes().filter(function(v) { - return isSubgraph(g, v); - }); - var svgClusters = selection.selectAll("g.cluster").data(clusters, function(v) { - return v; - }); - applyTransition(svgClusters.exit(), g).style("opacity", 0).remove(); - var enterSelection = svgClusters.enter().append("g").attr("class", "cluster").attr("id", function(v) { - var node = g.node(v); - return node.id; - }).style("opacity", 0).each(function(v) { - var node = g.node(v); - var thisGroup = select_default(this); - select_default(this).append("rect"); - var labelGroup = thisGroup.append("g").attr("class", "label"); - addLabel(labelGroup, node, node.clusterLabelPos); - }); - svgClusters = svgClusters.merge(enterSelection); - svgClusters = applyTransition(svgClusters, g).style("opacity", 1); - svgClusters.selectAll("rect").each(function(c) { - var node = g.node(c); - var domCluster = select_default(this); - applyStyle(domCluster, node.style); - }); - return svgClusters; -}; -function setCreateClusters(value) { - createClusters = value; -} - -// node_modules/dagre-d3-es/src/dagre-js/create-edge-labels.js -var createEdgeLabels = function(selection, g) { - var svgEdgeLabels = selection.selectAll("g.edgeLabel").data(g.edges(), function(e) { - return edgeToId(e); - }).classed("update", true); - svgEdgeLabels.exit().remove(); - svgEdgeLabels.enter().append("g").classed("edgeLabel", true).style("opacity", 0); - svgEdgeLabels = selection.selectAll("g.edgeLabel"); - svgEdgeLabels.each(function(e) { - var root = select_default(this); - root.select(".label").remove(); - var edge = g.edge(e); - var label = addLabel(root, g.edge(e), 0).classed("label", true); - var bbox = label.node().getBBox(); - if (edge.labelId) { - label.attr("id", edge.labelId); - } - if (!has_default(edge, "width")) { - edge.width = bbox.width; - } - if (!has_default(edge, "height")) { - edge.height = bbox.height; - } - }); - var exitSelection; - if (svgEdgeLabels.exit) { - exitSelection = svgEdgeLabels.exit(); - } else { - exitSelection = svgEdgeLabels.selectAll(null); - } - applyTransition(exitSelection, g).style("opacity", 0).remove(); - return svgEdgeLabels; -}; -function setCreateEdgeLabels(value) { - createEdgeLabels = value; -} - -// node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-node.js -function intersectNode(node, point) { - return node.intersect(point); -} - -// node_modules/dagre-d3-es/src/dagre-js/create-edge-paths.js -var createEdgePaths = function(selection, g, arrows2) { - var previousPaths = selection.selectAll("g.edgePath").data(g.edges(), function(e) { - return edgeToId(e); - }).classed("update", true); - var newPaths = enter(previousPaths, g); - exit(previousPaths, g); - var svgPaths = previousPaths.merge !== void 0 ? previousPaths.merge(newPaths) : previousPaths; - applyTransition(svgPaths, g).style("opacity", 1); - svgPaths.each(function(e) { - var domEdge = select_default(this); - var edge = g.edge(e); - edge.elem = this; - if (edge.id) { - domEdge.attr("id", edge.id); - } - applyClass( - domEdge, - edge["class"], - (domEdge.classed("update") ? "update " : "") + "edgePath" - ); - }); - svgPaths.selectAll("path.path").each(function(e) { - var edge = g.edge(e); - edge.arrowheadId = uniqueId_default("arrowhead"); - var domEdge = select_default(this).attr("marker-end", function() { - return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")"; - }).style("fill", "none"); - applyTransition(domEdge, g).attr("d", function(e2) { - return calcPoints(g, e2); - }); - applyStyle(domEdge, edge.style); - }); - svgPaths.selectAll("defs *").remove(); - svgPaths.selectAll("defs").each(function(e) { - var edge = g.edge(e); - var arrowhead = arrows2[edge.arrowhead]; - arrowhead(select_default(this), edge.arrowheadId, edge, "arrowhead"); - }); - return svgPaths; -}; -function setCreateEdgePaths(value) { - createEdgePaths = value; -} -function makeFragmentRef(url, fragmentId) { - var baseUrl = url.split("#")[0]; - return baseUrl + "#" + fragmentId; -} -function calcPoints(g, e) { - var edge = g.edge(e); - var tail = g.node(e.v); - var head = g.node(e.w); - var points = edge.points.slice(1, edge.points.length - 1); - points.unshift(intersectNode(tail, points[0])); - points.push(intersectNode(head, points[points.length - 1])); - return createLine(edge, points); -} -function createLine(edge, points) { - var line = (line_default || svg.line)().x(function(d) { - return d.x; - }).y(function(d) { - return d.y; - }); - (line.curve || line.interpolate)(edge.curve); - return line(points); -} -function getCoords(elem) { - var bbox = elem.getBBox(); - var matrix = elem.ownerSVGElement.getScreenCTM().inverse().multiply(elem.getScreenCTM()).translate(bbox.width / 2, bbox.height / 2); - return { x: matrix.e, y: matrix.f }; -} -function enter(svgPaths, g) { - var svgPathsEnter = svgPaths.enter().append("g").attr("class", "edgePath").style("opacity", 0); - svgPathsEnter.append("path").attr("class", "path").attr("d", function(e) { - var edge = g.edge(e); - var sourceElem = g.node(e.v).elem; - var points = range_default(edge.points.length).map(function() { - return getCoords(sourceElem); - }); - return createLine(edge, points); - }); - svgPathsEnter.append("defs"); - return svgPathsEnter; -} -function exit(svgPaths, g) { - var svgPathExit = svgPaths.exit(); - applyTransition(svgPathExit, g).style("opacity", 0).remove(); -} - -// node_modules/dagre-d3-es/src/dagre-js/create-nodes.js -var createNodes = function(selection, g, shapes2) { - var simpleNodes = g.nodes().filter(function(v) { - return !isSubgraph(g, v); - }); - var svgNodes = selection.selectAll("g.node").data(simpleNodes, function(v) { - return v; - }).classed("update", true); - svgNodes.exit().remove(); - svgNodes.enter().append("g").attr("class", "node").style("opacity", 0); - svgNodes = selection.selectAll("g.node"); - svgNodes.each(function(v) { - var node = g.node(v); - var thisGroup = select_default(this); - applyClass( - thisGroup, - node["class"], - (thisGroup.classed("update") ? "update " : "") + "node" - ); - thisGroup.select("g.label").remove(); - var labelGroup = thisGroup.append("g").attr("class", "label"); - var labelDom = addLabel(labelGroup, node); - var shape = shapes2[node.shape]; - var bbox = pick_default(labelDom.node().getBBox(), "width", "height"); - node.elem = this; - if (node.id) { - thisGroup.attr("id", node.id); - } - if (node.labelId) { - labelGroup.attr("id", node.labelId); - } - if (has_default(node, "width")) { - bbox.width = node.width; - } - if (has_default(node, "height")) { - bbox.height = node.height; - } - bbox.width += node.paddingLeft + node.paddingRight; - bbox.height += node.paddingTop + node.paddingBottom; - labelGroup.attr( - "transform", - "translate(" + (node.paddingLeft - node.paddingRight) / 2 + "," + (node.paddingTop - node.paddingBottom) / 2 + ")" - ); - var root = select_default(this); - root.select(".label-container").remove(); - var shapeSvg = shape(root, bbox, node).classed("label-container", true); - applyStyle(shapeSvg, node.style); - var shapeBBox = shapeSvg.node().getBBox(); - node.width = shapeBBox.width; - node.height = shapeBBox.height; - }); - var exitSelection; - if (svgNodes.exit) { - exitSelection = svgNodes.exit(); - } else { - exitSelection = svgNodes.selectAll(null); - } - applyTransition(exitSelection, g).style("opacity", 0).remove(); - return svgNodes; -}; -function setCreateNodes(value) { - createNodes = value; -} - -// node_modules/dagre-d3-es/src/dagre-js/position-clusters.js -function positionClusters(selection, g) { - var created = selection.filter(function() { - return !select_default(this).classed("update"); - }); - function translate(v) { - var node = g.node(v); - return "translate(" + node.x + "," + node.y + ")"; - } - created.attr("transform", translate); - applyTransition(selection, g).style("opacity", 1).attr("transform", translate); - applyTransition(created.selectAll("rect"), g).attr("width", function(v) { - return g.node(v).width; - }).attr("height", function(v) { - return g.node(v).height; - }).attr("x", function(v) { - var node = g.node(v); - return -node.width / 2; - }).attr("y", function(v) { - var node = g.node(v); - return -node.height / 2; - }); -} - -// node_modules/dagre-d3-es/src/dagre-js/position-edge-labels.js -function positionEdgeLabels(selection, g) { - var created = selection.filter(function() { - return !select_default(this).classed("update"); - }); - function translate(e) { - var edge = g.edge(e); - return has_default(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : ""; - } - created.attr("transform", translate); - applyTransition(selection, g).style("opacity", 1).attr("transform", translate); -} - -// node_modules/dagre-d3-es/src/dagre-js/position-nodes.js -function positionNodes(selection, g) { - var created = selection.filter(function() { - return !select_default(this).classed("update"); - }); - function translate(v) { - var node = g.node(v); - return "translate(" + node.x + "," + node.y + ")"; - } - created.attr("transform", translate); - applyTransition(selection, g).style("opacity", 1).attr("transform", translate); -} - -// node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-ellipse.js -function intersectEllipse(node, rx, ry, point) { - var cx = node.x; - var cy = node.y; - var px = cx - point.x; - var py = cy - point.y; - var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px); - var dx = Math.abs(rx * ry * px / det); - if (point.x < cx) { - dx = -dx; - } - var dy = Math.abs(rx * ry * py / det); - if (point.y < cy) { - dy = -dy; - } - return { x: cx + dx, y: cy + dy }; -} - -// node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-circle.js -function intersectCircle(node, rx, point) { - return intersectEllipse(node, rx, rx, point); -} - -// node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-line.js -function intersectLine(p1, p2, q1, q2) { - var a1, a2, b1, b2, c1, c2; - var r1, r2, r3, r4; - var denom, offset, num; - var x, y; - a1 = p2.y - p1.y; - b1 = p1.x - p2.x; - c1 = p2.x * p1.y - p1.x * p2.y; - r3 = a1 * q1.x + b1 * q1.y + c1; - r4 = a1 * q2.x + b1 * q2.y + c1; - if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) { - return; - } - a2 = q2.y - q1.y; - b2 = q1.x - q2.x; - c2 = q2.x * q1.y - q1.x * q2.y; - r1 = a2 * p1.x + b2 * p1.y + c2; - r2 = a2 * p2.x + b2 * p2.y + c2; - if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) { - return; - } - denom = a1 * b2 - a2 * b1; - if (denom === 0) { - return; - } - offset = Math.abs(denom / 2); - num = b1 * c2 - b2 * c1; - x = num < 0 ? (num - offset) / denom : (num + offset) / denom; - num = a2 * c1 - a1 * c2; - y = num < 0 ? (num - offset) / denom : (num + offset) / denom; - return { x, y }; -} -function sameSign(r1, r2) { - return r1 * r2 > 0; -} - -// node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js -function intersectPolygon(node, polyPoints, point) { - var x1 = node.x; - var y1 = node.y; - var intersections = []; - var minX = Number.POSITIVE_INFINITY; - var minY = Number.POSITIVE_INFINITY; - polyPoints.forEach(function(entry) { - minX = Math.min(minX, entry.x); - minY = Math.min(minY, entry.y); - }); - var left = x1 - node.width / 2 - minX; - var top = y1 - node.height / 2 - minY; - for (var i = 0; i < polyPoints.length; i++) { - var p1 = polyPoints[i]; - var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0]; - var intersect = intersectLine( - node, - point, - { x: left + p1.x, y: top + p1.y }, - { x: left + p2.x, y: top + p2.y } - ); - if (intersect) { - intersections.push(intersect); - } - } - if (!intersections.length) { - console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node); - return node; - } - if (intersections.length > 1) { - intersections.sort(function(p, q) { - var pdx = p.x - point.x; - var pdy = p.y - point.y; - var distp = Math.sqrt(pdx * pdx + pdy * pdy); - var qdx = q.x - point.x; - var qdy = q.y - point.y; - var distq = Math.sqrt(qdx * qdx + qdy * qdy); - return distp < distq ? -1 : distp === distq ? 0 : 1; - }); - } - return intersections[0]; -} - -// node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-rect.js -function intersectRect(node, point) { - var x = node.x; - var y = node.y; - var dx = point.x - x; - var dy = point.y - y; - var w = node.width / 2; - var h = node.height / 2; - var sx, sy; - if (Math.abs(dy) * w > Math.abs(dx) * h) { - if (dy < 0) { - h = -h; - } - sx = dy === 0 ? 0 : h * dx / dy; - sy = h; - } else { - if (dx < 0) { - w = -w; - } - sx = w; - sy = dx === 0 ? 0 : w * dy / dx; - } - return { x: x + sx, y: y + sy }; -} - -// node_modules/dagre-d3-es/src/dagre-js/shapes.js -var shapes = { - rect, - ellipse, - circle, - diamond -}; -function setShapes(value) { - shapes = value; -} -function rect(parent, bbox, node) { - var shapeSvg = parent.insert("rect", ":first-child").attr("rx", node.rx).attr("ry", node.ry).attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("width", bbox.width).attr("height", bbox.height); - node.intersect = function(point) { - return intersectRect(node, point); - }; - return shapeSvg; -} -function ellipse(parent, bbox, node) { - var rx = bbox.width / 2; - var ry = bbox.height / 2; - var shapeSvg = parent.insert("ellipse", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("rx", rx).attr("ry", ry); - node.intersect = function(point) { - return intersectEllipse(node, rx, ry, point); - }; - return shapeSvg; -} -function circle(parent, bbox, node) { - var r = Math.max(bbox.width, bbox.height) / 2; - var shapeSvg = parent.insert("circle", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("r", r); - node.intersect = function(point) { - return intersectCircle(node, r, point); - }; - return shapeSvg; -} -function diamond(parent, bbox, node) { - var w = bbox.width * Math.SQRT2 / 2; - var h = bbox.height * Math.SQRT2 / 2; - var points = [ - { x: 0, y: -h }, - { x: -w, y: 0 }, - { x: 0, y: h }, - { x: w, y: 0 } - ]; - var shapeSvg = parent.insert("polygon", ":first-child").attr( - "points", - points.map(function(p) { - return p.x + "," + p.y; - }).join(" ") - ); - node.intersect = function(p) { - return intersectPolygon(node, points, p); - }; - return shapeSvg; -} - -// node_modules/dagre-d3-es/src/dagre-js/render.js -function render() { - var fn = function(svg2, g) { - preProcessGraph(g); - var outputGroup = createOrSelectGroup(svg2, "output"); - var clustersGroup = createOrSelectGroup(outputGroup, "clusters"); - var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths"); - var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g); - var nodes = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes); - layout(g); - positionNodes(nodes, g); - positionEdgeLabels(edgeLabels, g); - createEdgePaths(edgePathsGroup, g, arrows); - var clusters = createClusters(clustersGroup, g); - positionClusters(clusters, g); - postProcessGraph(g); - }; - fn.createNodes = function(value) { - if (!arguments.length) - return createNodes; - setCreateNodes(value); - return fn; - }; - fn.createClusters = function(value) { - if (!arguments.length) - return createClusters; - setCreateClusters(value); - return fn; - }; - fn.createEdgeLabels = function(value) { - if (!arguments.length) - return createEdgeLabels; - setCreateEdgeLabels(value); - return fn; - }; - fn.createEdgePaths = function(value) { - if (!arguments.length) - return createEdgePaths; - setCreateEdgePaths(value); - return fn; - }; - fn.shapes = function(value) { - if (!arguments.length) - return shapes; - setShapes(value); - return fn; - }; - fn.arrows = function(value) { - if (!arguments.length) - return arrows; - setArrows(value); - return fn; - }; - return fn; -} -var NODE_DEFAULT_ATTRS = { - paddingLeft: 10, - paddingRight: 10, - paddingTop: 10, - paddingBottom: 10, - rx: 0, - ry: 0, - shape: "rect" -}; -var EDGE_DEFAULT_ATTRS = { - arrowhead: "normal", - curve: linear_default -}; -function preProcessGraph(g) { - g.nodes().forEach(function(v) { - var node = g.node(v); - if (!has_default(node, "label") && !g.children(v).length) { - node.label = v; - } - if (has_default(node, "paddingX")) { - defaults_default(node, { - paddingLeft: node.paddingX, - paddingRight: node.paddingX - }); - } - if (has_default(node, "paddingY")) { - defaults_default(node, { - paddingTop: node.paddingY, - paddingBottom: node.paddingY - }); - } - if (has_default(node, "padding")) { - defaults_default(node, { - paddingLeft: node.padding, - paddingRight: node.padding, - paddingTop: node.padding, - paddingBottom: node.padding - }); - } - defaults_default(node, NODE_DEFAULT_ATTRS); - forEach_default(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) { - node[k] = Number(node[k]); - }); - if (has_default(node, "width")) { - node._prevWidth = node.width; - } - if (has_default(node, "height")) { - node._prevHeight = node.height; - } - }); - g.edges().forEach(function(e) { - var edge = g.edge(e); - if (!has_default(edge, "label")) { - edge.label = ""; - } - defaults_default(edge, EDGE_DEFAULT_ATTRS); - }); -} -function postProcessGraph(g) { - forEach_default(g.nodes(), function(v) { - var node = g.node(v); - if (has_default(node, "_prevWidth")) { - node.width = node._prevWidth; - } else { - delete node.width; - } - if (has_default(node, "_prevHeight")) { - node.height = node._prevHeight; - } else { - delete node.height; - } - delete node._prevWidth; - delete node._prevHeight; - }); -} -function createOrSelectGroup(root, name) { - var selection = root.select("g." + name); - if (selection.empty()) { - selection = root.append("g").attr("class", name); - } - return selection; -} - -// node_modules/mermaid/dist/flowDiagram-61eb444c.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -function question(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const s = (w + h) * 0.9; - const points = [ - { x: s / 2, y: 0 }, - { x: s, y: -s / 2 }, - { x: s / 2, y: -s }, - { x: 0, y: -s / 2 } - ]; - const shapeSvg = insertPolygonShape(parent, s, s, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function hexagon(parent, bbox, node) { - const f = 4; - const h = bbox.height; - const m = h / f; - const w = bbox.width + 2 * m; - const points = [ - { x: m, y: 0 }, - { x: w - m, y: 0 }, - { x: w, y: -h / 2 }, - { x: w - m, y: -h }, - { x: m, y: -h }, - { x: 0, y: -h / 2 } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function rect_left_inv_arrow(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: -h / 2, y: 0 }, - { x: w, y: 0 }, - { x: w, y: -h }, - { x: -h / 2, y: -h }, - { x: 0, y: -h / 2 } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function lean_right(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: -2 * h / 6, y: 0 }, - { x: w - h / 6, y: 0 }, - { x: w + 2 * h / 6, y: -h }, - { x: h / 6, y: -h } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function lean_left(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: 2 * h / 6, y: 0 }, - { x: w + h / 6, y: 0 }, - { x: w - 2 * h / 6, y: -h }, - { x: -h / 6, y: -h } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function trapezoid(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: -2 * h / 6, y: 0 }, - { x: w + 2 * h / 6, y: 0 }, - { x: w - h / 6, y: -h }, - { x: h / 6, y: -h } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function inv_trapezoid(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: h / 6, y: 0 }, - { x: w - h / 6, y: 0 }, - { x: w + 2 * h / 6, y: -h }, - { x: -2 * h / 6, y: -h } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function rect_right_inv_arrow(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: 0, y: 0 }, - { x: w + h / 2, y: 0 }, - { x: w, y: -h / 2 }, - { x: w + h / 2, y: -h }, - { x: 0, y: -h } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function stadium(parent, bbox, node) { - const h = bbox.height; - const w = bbox.width + h / 4; - const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h); - node.intersect = function(point) { - return intersectRect(node, point); - }; - return shapeSvg; -} -function subroutine(parent, bbox, node) { - const w = bbox.width; - const h = bbox.height; - const points = [ - { x: 0, y: 0 }, - { x: w, y: 0 }, - { x: w, y: -h }, - { x: 0, y: -h }, - { x: 0, y: 0 }, - { x: -8, y: 0 }, - { x: w + 8, y: 0 }, - { x: w + 8, y: -h }, - { x: -8, y: -h }, - { x: -8, y: 0 } - ]; - const shapeSvg = insertPolygonShape(parent, w, h, points); - node.intersect = function(point) { - return intersectPolygon(node, points, point); - }; - return shapeSvg; -} -function cylinder(parent, bbox, node) { - const w = bbox.width; - const rx = w / 2; - const ry = rx / (2.5 + w / 50); - const h = bbox.height + ry; - const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 a " + rx + "," + ry + " 0,0,0 " + -w + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w + " 0 l 0," + -h; - const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w / 2 + "," + -(h / 2 + ry) + ")"); - node.intersect = function(point) { - const pos = intersectRect(node, point); - const x = pos.x - node.x; - if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) { - let y = ry * ry * (1 - x * x / (rx * rx)); - if (y != 0) { - y = Math.sqrt(y); - } - y = ry - y; - if (point.y - node.y > 0) { - y = -y; - } - pos.y += y; - } - return pos; - }; - return shapeSvg; -} -function addToRender(render2) { - render2.shapes().question = question; - render2.shapes().hexagon = hexagon; - render2.shapes().stadium = stadium; - render2.shapes().subroutine = subroutine; - render2.shapes().cylinder = cylinder; - render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow; - render2.shapes().lean_right = lean_right; - render2.shapes().lean_left = lean_left; - render2.shapes().trapezoid = trapezoid; - render2.shapes().inv_trapezoid = inv_trapezoid; - render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow; -} -function addToRenderV2(addShape) { - addShape({ question }); - addShape({ hexagon }); - addShape({ stadium }); - addShape({ subroutine }); - addShape({ cylinder }); - addShape({ rect_left_inv_arrow }); - addShape({ lean_right }); - addShape({ lean_left }); - addShape({ trapezoid }); - addShape({ inv_trapezoid }); - addShape({ rect_right_inv_arrow }); -} -function insertPolygonShape(parent, w, h, points) { - return parent.insert("polygon", ":first-child").attr( - "points", - points.map(function(d) { - return d.x + "," + d.y; - }).join(" ") - ).attr("transform", "translate(" + -w / 2 + "," + h / 2 + ")"); -} -var flowChartShapes = { - addToRender, - addToRenderV2 -}; -var conf = {}; -var setConf = function(cnf) { - const keys = Object.keys(cnf); - for (const key of keys) { - conf[key] = cnf[key]; - } -}; -var addVertices = function(vert, g, svgId, root, _doc, diagObj) { - const svg2 = !root ? select_default(`[id="${svgId}"]`) : root.select(`[id="${svgId}"]`); - const doc = !_doc ? document : _doc; - const keys = Object.keys(vert); - keys.forEach(function(id) { - const vertex = vert[id]; - let classStr = "default"; - if (vertex.classes.length > 0) { - classStr = vertex.classes.join(" "); - } - const styles = getStylesFromArray(vertex.styles); - let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; - let vertexNode; - if (evaluate(getConfig().flowchart.htmlLabels)) { - const node = { - label: vertexText.replace( - /fa[blrs]?:fa-[\w-]+/g, - (s) => `` - ) - }; - vertexNode = addHtmlLabel(svg2, node).node(); - vertexNode.parentNode.removeChild(vertexNode); - } else { - const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); - svgLabel.setAttribute("style", styles.labelStyle.replace("color:", "fill:")); - const rows = vertexText.split(common$1.lineBreakRegex); - for (const row of rows) { - const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); - tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); - tspan.setAttribute("dy", "1em"); - tspan.setAttribute("x", "1"); - tspan.textContent = row; - svgLabel.appendChild(tspan); - } - vertexNode = svgLabel; - } - let radious = 0; - let _shape = ""; - switch (vertex.type) { - case "round": - radious = 5; - _shape = "rect"; - break; - case "square": - _shape = "rect"; - break; - case "diamond": - _shape = "question"; - break; - case "hexagon": - _shape = "hexagon"; - break; - case "odd": - _shape = "rect_left_inv_arrow"; - break; - case "lean_right": - _shape = "lean_right"; - break; - case "lean_left": - _shape = "lean_left"; - break; - case "trapezoid": - _shape = "trapezoid"; - break; - case "inv_trapezoid": - _shape = "inv_trapezoid"; - break; - case "odd_right": - _shape = "rect_left_inv_arrow"; - break; - case "circle": - _shape = "circle"; - break; - case "ellipse": - _shape = "ellipse"; - break; - case "stadium": - _shape = "stadium"; - break; - case "subroutine": - _shape = "subroutine"; - break; - case "cylinder": - _shape = "cylinder"; - break; - case "group": - _shape = "rect"; - break; - default: - _shape = "rect"; - } - log$1.warn("Adding node", vertex.id, vertex.domId); - g.setNode(diagObj.db.lookUpDomId(vertex.id), { - labelType: "svg", - labelStyle: styles.labelStyle, - shape: _shape, - label: vertexNode, - rx: radious, - ry: radious, - class: classStr, - style: styles.style, - id: diagObj.db.lookUpDomId(vertex.id) - }); - }); -}; -var addEdges = function(edges, g, diagObj) { - let cnt = 0; - let defaultStyle; - let defaultLabelStyle; - if (edges.defaultStyle !== void 0) { - const defaultStyles = getStylesFromArray(edges.defaultStyle); - defaultStyle = defaultStyles.style; - defaultLabelStyle = defaultStyles.labelStyle; - } - edges.forEach(function(edge) { - cnt++; - const linkId = "L-" + edge.start + "-" + edge.end; - const linkNameStart = "LS-" + edge.start; - const linkNameEnd = "LE-" + edge.end; - const edgeData = {}; - if (edge.type === "arrow_open") { - edgeData.arrowhead = "none"; - } else { - edgeData.arrowhead = "normal"; - } - let style = ""; - let labelStyle = ""; - if (edge.style !== void 0) { - const styles = getStylesFromArray(edge.style); - style = styles.style; - labelStyle = styles.labelStyle; - } else { - switch (edge.stroke) { - case "normal": - style = "fill:none"; - if (defaultStyle !== void 0) { - style = defaultStyle; - } - if (defaultLabelStyle !== void 0) { - labelStyle = defaultLabelStyle; - } - break; - case "dotted": - style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; - break; - case "thick": - style = " stroke-width: 3.5px;fill:none"; - break; - } - } - edgeData.style = style; - edgeData.labelStyle = labelStyle; - if (edge.interpolate !== void 0) { - edgeData.curve = interpolateToCurve(edge.interpolate, linear_default); - } else if (edges.defaultInterpolate !== void 0) { - edgeData.curve = interpolateToCurve(edges.defaultInterpolate, linear_default); - } else { - edgeData.curve = interpolateToCurve(conf.curve, linear_default); - } - if (edge.text === void 0) { - if (edge.style !== void 0) { - edgeData.arrowheadStyle = "fill: #333"; - } - } else { - edgeData.arrowheadStyle = "fill: #333"; - edgeData.labelpos = "c"; - if (evaluate(getConfig().flowchart.htmlLabels)) { - edgeData.labelType = "html"; - edgeData.label = `${edge.text.replace( - /fa[blrs]?:fa-[\w-]+/g, - (s) => `` - )}`; - } else { - edgeData.labelType = "text"; - edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n"); - if (edge.style === void 0) { - edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none"; - } - edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); - } - } - edgeData.id = linkId; - edgeData.class = linkNameStart + " " + linkNameEnd; - edgeData.minlen = edge.length || 1; - g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt); - }); -}; -var getClasses = function(text, diagObj) { - log$1.info("Extracting classes"); - return diagObj.db.getClasses(); -}; -var draw = function(text, id, _version, diagObj) { - log$1.info("Drawing flowchart"); - const { securityLevel, flowchart: conf2 } = getConfig(); - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; - let dir = diagObj.db.getDirection(); - if (dir === void 0) { - dir = "TD"; - } - const nodeSpacing = conf2.nodeSpacing || 50; - const rankSpacing = conf2.rankSpacing || 50; - const g = new Graph({ - multigraph: true, - compound: true - }).setGraph({ - rankdir: dir, - nodesep: nodeSpacing, - ranksep: rankSpacing, - marginx: 8, - marginy: 8 - }).setDefaultEdgeLabel(function() { - return {}; - }); - let subG; - const subGraphs = diagObj.db.getSubGraphs(); - for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) { - subG = subGraphs[i2]; - diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes); - } - const vert = diagObj.db.getVertices(); - log$1.warn("Get vertices", vert); - const edges = diagObj.db.getEdges(); - let i = 0; - for (i = subGraphs.length - 1; i >= 0; i--) { - subG = subGraphs[i]; - selectAll_default("cluster").append("text"); - for (let j = 0; j < subG.nodes.length; j++) { - log$1.warn( - "Setting subgraph", - subG.nodes[j], - diagObj.db.lookUpDomId(subG.nodes[j]), - diagObj.db.lookUpDomId(subG.id) - ); - g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id)); - } - } - addVertices(vert, g, id, root, doc, diagObj); - addEdges(edges, g, diagObj); - const render$1 = new render(); - flowChartShapes.addToRender(render$1); - render$1.arrows().none = function normal2(parent, id2, edge, type) { - const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); - const path = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z"); - applyStyle(path, edge[type + "Style"]); - }; - render$1.arrows().normal = function normal2(parent, id2) { - const marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto"); - marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0"); - }; - const svg2 = root.select(`[id="${id}"]`); - const element = root.select("#" + id + " g"); - render$1(element, g); - element.selectAll("g.node").attr("title", function() { - return diagObj.db.getTooltip(this.id); - }); - diagObj.db.indexNodes("subGraph" + i); - for (i = 0; i < subGraphs.length; i++) { - subG = subGraphs[i]; - if (subG.title !== "undefined") { - const clusterRects = doc.querySelectorAll( - "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect' - ); - const clusterEl = doc.querySelectorAll( - "#" + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]' - ); - const xPos = clusterRects[0].x.baseVal.value; - const yPos = clusterRects[0].y.baseVal.value; - const _width = clusterRects[0].width.baseVal.value; - const cluster = select_default(clusterEl[0]); - const te = cluster.select(".label"); - te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`); - te.attr("id", id + "Text"); - for (let j = 0; j < subG.classes.length; j++) { - clusterEl[0].classList.add(subG.classes[j]); - } - } - } - if (!conf2.htmlLabels) { - const labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); - for (const label of labels) { - const dim = label.getBBox(); - const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect2.setAttribute("rx", 0); - rect2.setAttribute("ry", 0); - rect2.setAttribute("width", dim.width); - rect2.setAttribute("height", dim.height); - label.insertBefore(rect2, label.firstChild); - } - } - setupGraphViewbox$1(g, svg2, conf2.diagramPadding, conf2.useMaxWidth); - const keys = Object.keys(vert); - keys.forEach(function(key) { - const vertex = vert[key]; - if (vertex.link) { - const node = root.select("#" + id + ' [id="' + diagObj.db.lookUpDomId(key) + '"]'); - if (node) { - const link = doc.createElementNS("http://www.w3.org/2000/svg", "a"); - link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" ")); - link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link); - link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener"); - if (securityLevel === "sandbox") { - link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top"); - } else if (vertex.linkTarget) { - link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget); - } - const linkNode = node.insert(function() { - return link; - }, ":first-child"); - const shape = node.select(".label-container"); - if (shape) { - linkNode.append(function() { - return shape.node(); - }); - } - const label = node.select(".label"); - if (label) { - linkNode.append(function() { - return label.node(); - }); - } - } - } - }); -}; -var flowRenderer = { - setConf, - addVertices, - addEdges, - getClasses, - draw -}; -var diagram = { - parser: parser$1, - db: flowDb, - renderer: flowRendererV2, - styles: flowStyles, - init: (cnf) => { - if (!cnf.flowchart) { - cnf.flowchart = {}; - } - cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - flowRenderer.setConf(cnf.flowchart); - flowDb.clear(); - flowDb.setGen("gen-1"); - } -}; -export { - diagram -}; -//# sourceMappingURL=flowDiagram-61eb444c-STRM2QHE.js.map diff --git a/.vuepress/.cache/deps/flowDiagram-61eb444c-STRM2QHE.js.map b/.vuepress/.cache/deps/flowDiagram-61eb444c-STRM2QHE.js.map deleted file mode 100644 index e61dca42b..000000000 --- a/.vuepress/.cache/deps/flowDiagram-61eb444c-STRM2QHE.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/dagre-d3-es/src/dagre-js/arrows.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/label/add-svg-label.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/label/add-text-label.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/label/add-label.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/create-clusters.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/create-edge-labels.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-node.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/create-edge-paths.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/create-nodes.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/position-clusters.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/position-edge-labels.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/position-nodes.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-ellipse.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-circle.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-line.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/intersect/intersect-rect.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/shapes.js", "../../../../node_modules/dagre-d3-es/src/dagre-js/render.js", "../../../../node_modules/mermaid/dist/flowDiagram-61eb444c.js"], - "sourcesContent": ["import * as util from './util.js';\n\nexport { arrows, setArrows };\n\nvar arrows = {\n normal,\n vee,\n undirected,\n};\n\nfunction setArrows(value) {\n arrows = value;\n}\n\nfunction normal(parent, id, edge, type) {\n var marker = parent\n .append('marker')\n .attr('id', id)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'strokeWidth')\n .attr('markerWidth', 8)\n .attr('markerHeight', 6)\n .attr('orient', 'auto');\n\n var path = marker\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n util.applyStyle(path, edge[type + 'Style']);\n if (edge[type + 'Class']) {\n path.attr('class', edge[type + 'Class']);\n }\n}\n\nfunction vee(parent, id, edge, type) {\n var marker = parent\n .append('marker')\n .attr('id', id)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'strokeWidth')\n .attr('markerWidth', 8)\n .attr('markerHeight', 6)\n .attr('orient', 'auto');\n\n var path = marker\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 L 4 5 z')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n util.applyStyle(path, edge[type + 'Style']);\n if (edge[type + 'Class']) {\n path.attr('class', edge[type + 'Class']);\n }\n}\n\nfunction undirected(parent, id, edge, type) {\n var marker = parent\n .append('marker')\n .attr('id', id)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'strokeWidth')\n .attr('markerWidth', 8)\n .attr('markerHeight', 6)\n .attr('orient', 'auto');\n\n var path = marker\n .append('path')\n .attr('d', 'M 0 5 L 10 5')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n util.applyStyle(path, edge[type + 'Style']);\n if (edge[type + 'Class']) {\n path.attr('class', edge[type + 'Class']);\n }\n}\n", "import * as util from '../util.js';\n\nexport { addSVGLabel };\n\nfunction addSVGLabel(root, node) {\n var domNode = root;\n\n domNode.node().appendChild(node.label);\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n", "import * as util from '../util.js';\n\nexport { addTextLabel };\n\n/*\n * Attaches a text label to the specified root. Handles escape sequences.\n */\nfunction addTextLabel(root, node) {\n var domNode = root.append('text');\n\n var lines = processEscapeSequences(node.label).split('\\n');\n for (var i = 0; i < lines.length; i++) {\n domNode\n .append('tspan')\n .attr('xml:space', 'preserve')\n .attr('dy', '1em')\n .attr('x', '1')\n .text(lines[i]);\n }\n\n util.applyStyle(domNode, node.labelStyle);\n\n return domNode;\n}\n\nfunction processEscapeSequences(text) {\n var newText = '';\n var escaped = false;\n var ch;\n for (var i = 0; i < text.length; ++i) {\n ch = text[i];\n if (escaped) {\n switch (ch) {\n case 'n':\n newText += '\\n';\n break;\n default:\n newText += ch;\n }\n escaped = false;\n } else if (ch === '\\\\') {\n escaped = true;\n } else {\n newText += ch;\n }\n }\n return newText;\n}\n", "import { addHtmlLabel } from './add-html-label.js';\nimport { addSVGLabel } from './add-svg-label.js';\nimport { addTextLabel } from './add-text-label.js';\n\nexport { addLabel };\n\nfunction addLabel(root, node, location) {\n var label = node.label;\n var labelSvg = root.append('g');\n\n // Allow the label to be a string, a function that returns a DOM element, or\n // a DOM element itself.\n if (node.labelType === 'svg') {\n addSVGLabel(labelSvg, node);\n } else if (typeof label !== 'string' || node.labelType === 'html') {\n addHtmlLabel(labelSvg, node);\n } else {\n addTextLabel(labelSvg, node);\n }\n\n var labelBBox = labelSvg.node().getBBox();\n var y;\n switch (location) {\n case 'top':\n y = -node.height / 2;\n break;\n case 'bottom':\n y = node.height / 2 - labelBBox.height;\n break;\n default:\n y = -labelBBox.height / 2;\n }\n labelSvg.attr('transform', 'translate(' + -labelBBox.width / 2 + ',' + y + ')');\n\n return labelSvg;\n}\n", "import * as d3 from 'd3';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createClusters, setCreateClusters };\n\nvar createClusters = function (selection, g) {\n var clusters = g.nodes().filter(function (v) {\n return util.isSubgraph(g, v);\n });\n var svgClusters = selection.selectAll('g.cluster').data(clusters, function (v) {\n return v;\n });\n\n util.applyTransition(svgClusters.exit(), g).style('opacity', 0).remove();\n\n var enterSelection = svgClusters\n .enter()\n .append('g')\n .attr('class', 'cluster')\n .attr('id', function (v) {\n var node = g.node(v);\n return node.id;\n })\n .style('opacity', 0)\n .each(function (v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n d3.select(this).append('rect');\n var labelGroup = thisGroup.append('g').attr('class', 'label');\n addLabel(labelGroup, node, node.clusterLabelPos);\n });\n\n svgClusters = svgClusters.merge(enterSelection);\n\n svgClusters = util.applyTransition(svgClusters, g).style('opacity', 1);\n\n svgClusters.selectAll('rect').each(function (c) {\n var node = g.node(c);\n var domCluster = d3.select(this);\n util.applyStyle(domCluster, node.style);\n });\n\n return svgClusters;\n};\n\nfunction setCreateClusters(value) {\n createClusters = value;\n}\n", "import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createEdgeLabels, setCreateEdgeLabels };\n\nlet createEdgeLabels = function (selection, g) {\n var svgEdgeLabels = selection\n .selectAll('g.edgeLabel')\n .data(g.edges(), function (e) {\n return util.edgeToId(e);\n })\n .classed('update', true);\n\n svgEdgeLabels.exit().remove();\n svgEdgeLabels.enter().append('g').classed('edgeLabel', true).style('opacity', 0);\n\n svgEdgeLabels = selection.selectAll('g.edgeLabel');\n\n svgEdgeLabels.each(function (e) {\n var root = d3.select(this);\n root.select('.label').remove();\n var edge = g.edge(e);\n var label = addLabel(root, g.edge(e), 0).classed('label', true);\n var bbox = label.node().getBBox();\n\n if (edge.labelId) {\n label.attr('id', edge.labelId);\n }\n if (!_.has(edge, 'width')) {\n edge.width = bbox.width;\n }\n if (!_.has(edge, 'height')) {\n edge.height = bbox.height;\n }\n });\n\n var exitSelection;\n\n if (svgEdgeLabels.exit) {\n exitSelection = svgEdgeLabels.exit();\n } else {\n exitSelection = svgEdgeLabels.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g).style('opacity', 0).remove();\n\n return svgEdgeLabels;\n};\n\nfunction setCreateEdgeLabels(value) {\n createEdgeLabels = value;\n}\n", "export { intersectNode };\n\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n", "import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { intersectNode } from './intersect/intersect-node.js';\nimport * as util from './util.js';\n\nexport { createEdgePaths, setCreateEdgePaths };\n\nvar createEdgePaths = function (selection, g, arrows) {\n var previousPaths = selection\n .selectAll('g.edgePath')\n .data(g.edges(), function (e) {\n return util.edgeToId(e);\n })\n .classed('update', true);\n\n var newPaths = enter(previousPaths, g);\n exit(previousPaths, g);\n\n var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;\n util.applyTransition(svgPaths, g).style('opacity', 1);\n\n // Save DOM element in the path group, and set ID and class\n svgPaths.each(function (e) {\n var domEdge = d3.select(this);\n var edge = g.edge(e);\n edge.elem = this;\n\n if (edge.id) {\n domEdge.attr('id', edge.id);\n }\n\n util.applyClass(\n domEdge,\n edge['class'],\n (domEdge.classed('update') ? 'update ' : '') + 'edgePath'\n );\n });\n\n svgPaths.selectAll('path.path').each(function (e) {\n var edge = g.edge(e);\n edge.arrowheadId = _.uniqueId('arrowhead');\n\n var domEdge = d3\n .select(this)\n .attr('marker-end', function () {\n return 'url(' + makeFragmentRef(location.href, edge.arrowheadId) + ')';\n })\n .style('fill', 'none');\n\n util.applyTransition(domEdge, g).attr('d', function (e) {\n return calcPoints(g, e);\n });\n\n util.applyStyle(domEdge, edge.style);\n });\n\n svgPaths.selectAll('defs *').remove();\n svgPaths.selectAll('defs').each(function (e) {\n var edge = g.edge(e);\n var arrowhead = arrows[edge.arrowhead];\n arrowhead(d3.select(this), edge.arrowheadId, edge, 'arrowhead');\n });\n\n return svgPaths;\n};\n\nfunction setCreateEdgePaths(value) {\n createEdgePaths = value;\n}\n\nfunction makeFragmentRef(url, fragmentId) {\n var baseUrl = url.split('#')[0];\n return baseUrl + '#' + fragmentId;\n}\n\nfunction calcPoints(g, e) {\n var edge = g.edge(e);\n var tail = g.node(e.v);\n var head = g.node(e.w);\n var points = edge.points.slice(1, edge.points.length - 1);\n points.unshift(intersectNode(tail, points[0]));\n points.push(intersectNode(head, points[points.length - 1]));\n\n return createLine(edge, points);\n}\n\nfunction createLine(edge, points) {\n // @ts-expect-error\n var line = (d3.line || d3.svg.line)()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n });\n\n (line.curve || line.interpolate)(edge.curve);\n\n return line(points);\n}\n\nfunction getCoords(elem) {\n var bbox = elem.getBBox();\n var matrix = elem.ownerSVGElement\n .getScreenCTM()\n .inverse()\n .multiply(elem.getScreenCTM())\n .translate(bbox.width / 2, bbox.height / 2);\n return { x: matrix.e, y: matrix.f };\n}\n\nfunction enter(svgPaths, g) {\n var svgPathsEnter = svgPaths.enter().append('g').attr('class', 'edgePath').style('opacity', 0);\n svgPathsEnter\n .append('path')\n .attr('class', 'path')\n .attr('d', function (e) {\n var edge = g.edge(e);\n var sourceElem = g.node(e.v).elem;\n var points = _.range(edge.points.length).map(function () {\n return getCoords(sourceElem);\n });\n return createLine(edge, points);\n });\n svgPathsEnter.append('defs');\n return svgPathsEnter;\n}\n\nfunction exit(svgPaths, g) {\n var svgPathExit = svgPaths.exit();\n util.applyTransition(svgPathExit, g).style('opacity', 0).remove();\n}\n", "import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { addLabel } from './label/add-label.js';\nimport * as util from './util.js';\n\nexport { createNodes, setCreateNodes };\n\nvar createNodes = function (selection, g, shapes) {\n var simpleNodes = g.nodes().filter(function (v) {\n return !util.isSubgraph(g, v);\n });\n var svgNodes = selection\n .selectAll('g.node')\n .data(simpleNodes, function (v) {\n return v;\n })\n .classed('update', true);\n\n svgNodes.exit().remove();\n\n svgNodes.enter().append('g').attr('class', 'node').style('opacity', 0);\n\n svgNodes = selection.selectAll('g.node');\n\n svgNodes.each(function (v) {\n var node = g.node(v);\n var thisGroup = d3.select(this);\n util.applyClass(\n thisGroup,\n node['class'],\n (thisGroup.classed('update') ? 'update ' : '') + 'node'\n );\n\n thisGroup.select('g.label').remove();\n var labelGroup = thisGroup.append('g').attr('class', 'label');\n var labelDom = addLabel(labelGroup, node);\n var shape = shapes[node.shape];\n var bbox = _.pick(labelDom.node().getBBox(), 'width', 'height');\n\n node.elem = this;\n\n if (node.id) {\n thisGroup.attr('id', node.id);\n }\n if (node.labelId) {\n labelGroup.attr('id', node.labelId);\n }\n\n if (_.has(node, 'width')) {\n bbox.width = node.width;\n }\n if (_.has(node, 'height')) {\n bbox.height = node.height;\n }\n\n bbox.width += node.paddingLeft + node.paddingRight;\n bbox.height += node.paddingTop + node.paddingBottom;\n labelGroup.attr(\n 'transform',\n 'translate(' +\n (node.paddingLeft - node.paddingRight) / 2 +\n ',' +\n (node.paddingTop - node.paddingBottom) / 2 +\n ')'\n );\n\n var root = d3.select(this);\n root.select('.label-container').remove();\n var shapeSvg = shape(root, bbox, node).classed('label-container', true);\n util.applyStyle(shapeSvg, node.style);\n\n var shapeBBox = shapeSvg.node().getBBox();\n node.width = shapeBBox.width;\n node.height = shapeBBox.height;\n });\n\n var exitSelection;\n\n if (svgNodes.exit) {\n exitSelection = svgNodes.exit();\n } else {\n exitSelection = svgNodes.selectAll(null); // empty selection\n }\n\n util.applyTransition(exitSelection, g).style('opacity', 0).remove();\n\n return svgNodes;\n};\n\nfunction setCreateNodes(value) {\n createNodes = value;\n}\n", "import * as d3 from 'd3';\nimport * as util from './util.js';\n\nexport { positionClusters };\n\nfunction positionClusters(selection, g) {\n var created = selection.filter(function () {\n return !d3.select(this).classed('update');\n });\n\n function translate(v) {\n var node = g.node(v);\n return 'translate(' + node.x + ',' + node.y + ')';\n }\n\n created.attr('transform', translate);\n\n util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n\n util\n .applyTransition(created.selectAll('rect'), g)\n .attr('width', function (v) {\n return g.node(v).width;\n })\n .attr('height', function (v) {\n return g.node(v).height;\n })\n .attr('x', function (v) {\n var node = g.node(v);\n return -node.width / 2;\n })\n .attr('y', function (v) {\n var node = g.node(v);\n return -node.height / 2;\n });\n}\n", "import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport * as util from './util.js';\n\nexport { positionEdgeLabels };\n\nfunction positionEdgeLabels(selection, g) {\n var created = selection.filter(function () {\n return !d3.select(this).classed('update');\n });\n\n function translate(e) {\n var edge = g.edge(e);\n return _.has(edge, 'x') ? 'translate(' + edge.x + ',' + edge.y + ')' : '';\n }\n\n created.attr('transform', translate);\n\n util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n}\n", "import * as d3 from 'd3';\nimport * as util from './util.js';\n\nexport { positionNodes };\n\nfunction positionNodes(selection, g) {\n var created = selection.filter(function () {\n return !d3.select(this).classed('update');\n });\n\n function translate(v) {\n var node = g.node(v);\n return 'translate(' + node.x + ',' + node.y + ')';\n }\n\n created.attr('transform', translate);\n\n util.applyTransition(selection, g).style('opacity', 1).attr('transform', translate);\n}\n", "export { intersectEllipse };\n\nfunction intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n", "import { intersectEllipse } from './intersect-ellipse.js';\n\nexport { intersectCircle };\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n", "export { intersectLine };\n\n/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n", "import { intersectLine } from './intersect-line.js';\n\nexport { intersectPolygon };\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n", "export { intersectRect };\n\nfunction intersectRect(node, point) {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n", "import { intersectCircle } from './intersect/intersect-circle.js';\nimport { intersectEllipse } from './intersect/intersect-ellipse.js';\nimport { intersectPolygon } from './intersect/intersect-polygon.js';\nimport { intersectRect } from './intersect/intersect-rect.js';\n\nexport { shapes, setShapes };\n\nvar shapes = {\n rect,\n ellipse,\n circle,\n diamond,\n};\n\nfunction setShapes(value) {\n shapes = value;\n}\n\nfunction rect(parent, bbox, node) {\n var shapeSvg = parent\n .insert('rect', ':first-child')\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2)\n .attr('y', -bbox.height / 2)\n .attr('width', bbox.width)\n .attr('height', bbox.height);\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n}\n\nfunction ellipse(parent, bbox, node) {\n var rx = bbox.width / 2;\n var ry = bbox.height / 2;\n var shapeSvg = parent\n .insert('ellipse', ':first-child')\n .attr('x', -bbox.width / 2)\n .attr('y', -bbox.height / 2)\n .attr('rx', rx)\n .attr('ry', ry);\n\n node.intersect = function (point) {\n return intersectEllipse(node, rx, ry, point);\n };\n\n return shapeSvg;\n}\n\nfunction circle(parent, bbox, node) {\n var r = Math.max(bbox.width, bbox.height) / 2;\n var shapeSvg = parent\n .insert('circle', ':first-child')\n .attr('x', -bbox.width / 2)\n .attr('y', -bbox.height / 2)\n .attr('r', r);\n\n node.intersect = function (point) {\n return intersectCircle(node, r, point);\n };\n\n return shapeSvg;\n}\n\n// Circumscribe an ellipse for the bounding box with a diamond shape. I derived\n// the function to calculate the diamond shape from:\n// http://mathforum.org/kb/message.jspa?messageID=3750236\nfunction diamond(parent, bbox, node) {\n var w = (bbox.width * Math.SQRT2) / 2;\n var h = (bbox.height * Math.SQRT2) / 2;\n var points = [\n { x: 0, y: -h },\n { x: -w, y: 0 },\n { x: 0, y: h },\n { x: w, y: 0 },\n ];\n var shapeSvg = parent.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (p) {\n return p.x + ',' + p.y;\n })\n .join(' ')\n );\n\n node.intersect = function (p) {\n return intersectPolygon(node, points, p);\n };\n\n return shapeSvg;\n}\n", "import * as d3 from 'd3';\nimport * as _ from 'lodash-es';\nimport { layout } from '../dagre/index.js';\nimport { arrows, setArrows } from './arrows.js';\nimport { createClusters, setCreateClusters } from './create-clusters.js';\nimport { createEdgeLabels, setCreateEdgeLabels } from './create-edge-labels.js';\nimport { createEdgePaths, setCreateEdgePaths } from './create-edge-paths.js';\nimport { createNodes, setCreateNodes } from './create-nodes.js';\nimport { positionClusters } from './position-clusters.js';\nimport { positionEdgeLabels } from './position-edge-labels.js';\nimport { positionNodes } from './position-nodes.js';\nimport { shapes, setShapes } from './shapes.js';\n\nexport { render };\n\n// This design is based on http://bost.ocks.org/mike/chart/.\nfunction render() {\n var fn = function (svg, g) {\n preProcessGraph(g);\n\n var outputGroup = createOrSelectGroup(svg, 'output');\n var clustersGroup = createOrSelectGroup(outputGroup, 'clusters');\n var edgePathsGroup = createOrSelectGroup(outputGroup, 'edgePaths');\n var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, 'edgeLabels'), g);\n var nodes = createNodes(createOrSelectGroup(outputGroup, 'nodes'), g, shapes);\n\n layout(g);\n\n positionNodes(nodes, g);\n positionEdgeLabels(edgeLabels, g);\n createEdgePaths(edgePathsGroup, g, arrows);\n\n var clusters = createClusters(clustersGroup, g);\n positionClusters(clusters, g);\n\n postProcessGraph(g);\n };\n\n fn.createNodes = function (value) {\n if (!arguments.length) return createNodes;\n setCreateNodes(value);\n return fn;\n };\n\n fn.createClusters = function (value) {\n if (!arguments.length) return createClusters;\n setCreateClusters(value);\n return fn;\n };\n\n fn.createEdgeLabels = function (value) {\n if (!arguments.length) return createEdgeLabels;\n setCreateEdgeLabels(value);\n return fn;\n };\n\n fn.createEdgePaths = function (value) {\n if (!arguments.length) return createEdgePaths;\n setCreateEdgePaths(value);\n return fn;\n };\n\n fn.shapes = function (value) {\n if (!arguments.length) return shapes;\n setShapes(value);\n return fn;\n };\n\n fn.arrows = function (value) {\n if (!arguments.length) return arrows;\n setArrows(value);\n return fn;\n };\n\n return fn;\n}\n\nvar NODE_DEFAULT_ATTRS = {\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 10,\n paddingBottom: 10,\n rx: 0,\n ry: 0,\n shape: 'rect',\n};\n\nvar EDGE_DEFAULT_ATTRS = {\n arrowhead: 'normal',\n curve: d3.curveLinear,\n};\n\nfunction preProcessGraph(g) {\n g.nodes().forEach(function (v) {\n var node = g.node(v);\n if (!_.has(node, 'label') && !g.children(v).length) {\n node.label = v;\n }\n\n if (_.has(node, 'paddingX')) {\n _.defaults(node, {\n paddingLeft: node.paddingX,\n paddingRight: node.paddingX,\n });\n }\n\n if (_.has(node, 'paddingY')) {\n _.defaults(node, {\n paddingTop: node.paddingY,\n paddingBottom: node.paddingY,\n });\n }\n\n if (_.has(node, 'padding')) {\n _.defaults(node, {\n paddingLeft: node.padding,\n paddingRight: node.padding,\n paddingTop: node.padding,\n paddingBottom: node.padding,\n });\n }\n\n _.defaults(node, NODE_DEFAULT_ATTRS);\n\n _.each(['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'], function (k) {\n node[k] = Number(node[k]);\n });\n\n // Save dimensions for restore during post-processing\n if (_.has(node, 'width')) {\n node._prevWidth = node.width;\n }\n if (_.has(node, 'height')) {\n node._prevHeight = node.height;\n }\n });\n\n g.edges().forEach(function (e) {\n var edge = g.edge(e);\n if (!_.has(edge, 'label')) {\n edge.label = '';\n }\n _.defaults(edge, EDGE_DEFAULT_ATTRS);\n });\n}\n\nfunction postProcessGraph(g) {\n _.each(g.nodes(), function (v) {\n var node = g.node(v);\n\n // Restore original dimensions\n if (_.has(node, '_prevWidth')) {\n node.width = node._prevWidth;\n } else {\n delete node.width;\n }\n\n if (_.has(node, '_prevHeight')) {\n node.height = node._prevHeight;\n } else {\n delete node.height;\n }\n\n delete node._prevWidth;\n delete node._prevHeight;\n });\n}\n\nfunction createOrSelectGroup(root, name) {\n var selection = root.select('g.' + name);\n if (selection.empty()) {\n selection = root.append('g').attr('class', name);\n }\n return selection;\n}\n", "import { p as parser, f as flowDb } from \"./flowDb-170db09d.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select, curveLinear, selectAll } from \"d3\";\nimport { k as getStylesFromArray, m as evaluate, c as getConfig, e as common, l as log, n as interpolateToCurve, o as setupGraphViewbox } from \"./mermaid-934d9bea.js\";\nimport { render } from \"dagre-d3-es\";\nimport { applyStyle } from \"dagre-d3-es/src/dagre-js/util.js\";\nimport { addHtmlLabel } from \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport { intersectPolygon } from \"dagre-d3-es/src/dagre-js/intersect/intersect-polygon.js\";\nimport { intersectRect } from \"dagre-d3-es/src/dagre-js/intersect/intersect-rect.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-b966c4ae.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"./index-67a42d7d.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-80f1ebb6.js\";\nimport \"./createText-aebacdfe.js\";\nimport \"mdast-util-from-markdown\";\nfunction question(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const s = (w + h) * 0.9;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, s, s, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction hexagon(parent, bbox, node) {\n const f = 4;\n const h = bbox.height;\n const m = h / f;\n const w = bbox.width + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction rect_left_inv_arrow(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction lean_right(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction lean_left(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 2 * h / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - 2 * h / 6, y: -h },\n { x: -h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction trapezoid(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: -2 * h / 6, y: 0 },\n { x: w + 2 * h / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction inv_trapezoid(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + 2 * h / 6, y: -h },\n { x: -2 * h / 6, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction rect_right_inv_arrow(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction stadium(parent, bbox, node) {\n const h = bbox.height;\n const w = bbox.width + h / 4;\n const shapeSvg = parent.insert(\"rect\", \":first-child\").attr(\"rx\", h / 2).attr(\"ry\", h / 2).attr(\"x\", -w / 2).attr(\"y\", -h / 2).attr(\"width\", w).attr(\"height\", h);\n node.intersect = function(point) {\n return intersectRect(node, point);\n };\n return shapeSvg;\n}\nfunction subroutine(parent, bbox, node) {\n const w = bbox.width;\n const h = bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n const shapeSvg = insertPolygonShape(parent, w, h, points);\n node.intersect = function(point) {\n return intersectPolygon(node, points, point);\n };\n return shapeSvg;\n}\nfunction cylinder(parent, bbox, node) {\n const w = bbox.width;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry;\n const shape = \"M 0,\" + ry + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 a \" + rx + \",\" + ry + \" 0,0,0 \" + -w + \" 0 l 0,\" + h + \" a \" + rx + \",\" + ry + \" 0,0,0 \" + w + \" 0 l 0,\" + -h;\n const shapeSvg = parent.attr(\"label-offset-y\", ry).insert(\"path\", \":first-child\").attr(\"d\", shape).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + -(h / 2 + ry) + \")\");\n node.intersect = function(point) {\n const pos = intersectRect(node, point);\n const x = pos.x - node.x;\n if (rx != 0 && (Math.abs(x) < node.width / 2 || Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y != 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - node.y > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\nfunction addToRender(render2) {\n render2.shapes().question = question;\n render2.shapes().hexagon = hexagon;\n render2.shapes().stadium = stadium;\n render2.shapes().subroutine = subroutine;\n render2.shapes().cylinder = cylinder;\n render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow;\n render2.shapes().lean_right = lean_right;\n render2.shapes().lean_left = lean_left;\n render2.shapes().trapezoid = trapezoid;\n render2.shapes().inv_trapezoid = inv_trapezoid;\n render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow;\n}\nfunction addToRenderV2(addShape) {\n addShape({ question });\n addShape({ hexagon });\n addShape({ stadium });\n addShape({ subroutine });\n addShape({ cylinder });\n addShape({ rect_left_inv_arrow });\n addShape({ lean_right });\n addShape({ lean_left });\n addShape({ trapezoid });\n addShape({ inv_trapezoid });\n addShape({ rect_right_inv_arrow });\n}\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\nconst flowChartShapes = {\n addToRender,\n addToRenderV2\n};\nconst conf = {};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n conf[key] = cnf[key];\n }\n};\nconst addVertices = function(vert, g, svgId, root, _doc, diagObj) {\n const svg = !root ? select(`[id=\"${svgId}\"]`) : root.select(`[id=\"${svgId}\"]`);\n const doc = !_doc ? document : _doc;\n const keys = Object.keys(vert);\n keys.forEach(function(id) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n const styles = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n let vertexNode;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const node = {\n label: vertexText.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n )\n };\n vertexNode = addHtmlLabel(svg, node).node();\n vertexNode.parentNode.removeChild(vertexNode);\n } else {\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", styles.labelStyle.replace(\"color:\", \"fill:\"));\n const rows = vertexText.split(common.lineBreakRegex);\n for (const row of rows) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"1\");\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n vertexNode = svgLabel;\n }\n let radious = 0;\n let _shape = \"\";\n switch (vertex.type) {\n case \"round\":\n radious = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n default:\n _shape = \"rect\";\n }\n log.warn(\"Adding node\", vertex.id, vertex.domId);\n g.setNode(diagObj.db.lookUpDomId(vertex.id), {\n labelType: \"svg\",\n labelStyle: styles.labelStyle,\n shape: _shape,\n label: vertexNode,\n rx: radious,\n ry: radious,\n class: classStr,\n style: styles.style,\n id: diagObj.db.lookUpDomId(vertex.id)\n });\n });\n};\nconst addEdges = function(edges, g, diagObj) {\n let cnt = 0;\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n edges.forEach(function(edge) {\n cnt++;\n const linkId = \"L-\" + edge.start + \"-\" + edge.end;\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = {};\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n let style = \"\";\n let labelStyle = \"\";\n if (edge.style !== void 0) {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n break;\n case \"dotted\":\n style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n style = \" stroke-width: 3.5px;fill:none\";\n break;\n }\n }\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n edgeData.labelType = \"html\";\n edgeData.label = `${edge.text.replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n )}`;\n } else {\n edgeData.labelType = \"text\";\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n }\n }\n edgeData.id = linkId;\n edgeData.class = linkNameStart + \" \" + linkNameEnd;\n edgeData.minlen = edge.length || 1;\n g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);\n });\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n return diagObj.db.getClasses();\n};\nconst draw = function(text, id, _version, diagObj) {\n log.info(\"Drawing flowchart\");\n const { securityLevel, flowchart: conf2 } = getConfig();\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n let dir = diagObj.db.getDirection();\n if (dir === void 0) {\n dir = \"TD\";\n }\n const nodeSpacing = conf2.nodeSpacing || 50;\n const rankSpacing = conf2.rankSpacing || 50;\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n for (let i2 = subGraphs.length - 1; i2 >= 0; i2--) {\n subG = subGraphs[i2];\n diagObj.db.addVertex(subG.id, subG.title, \"group\", void 0, subG.classes);\n }\n const vert = diagObj.db.getVertices();\n log.warn(\"Get vertices\", vert);\n const edges = diagObj.db.getEdges();\n let i = 0;\n for (i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n selectAll(\"cluster\").append(\"text\");\n for (let j = 0; j < subG.nodes.length; j++) {\n log.warn(\n \"Setting subgraph\",\n subG.nodes[j],\n diagObj.db.lookUpDomId(subG.nodes[j]),\n diagObj.db.lookUpDomId(subG.id)\n );\n g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));\n }\n }\n addVertices(vert, g, id, root, doc, diagObj);\n addEdges(edges, g, diagObj);\n const render$1 = new render();\n flowChartShapes.addToRender(render$1);\n render$1.arrows().none = function normal(parent, id2, edge, type) {\n const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n const path = marker.append(\"path\").attr(\"d\", \"M 0 0 L 0 0 L 0 0 z\");\n applyStyle(path, edge[type + \"Style\"]);\n };\n render$1.arrows().normal = function normal(parent, id2) {\n const marker = parent.append(\"marker\").attr(\"id\", id2).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerUnits\", \"strokeWidth\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 6).attr(\"orient\", \"auto\");\n marker.append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowheadPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n };\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n render$1(element, g);\n element.selectAll(\"g.node\").attr(\"title\", function() {\n return diagObj.db.getTooltip(this.id);\n });\n diagObj.db.indexNodes(\"subGraph\" + i);\n for (i = 0; i < subGraphs.length; i++) {\n subG = subGraphs[i];\n if (subG.title !== \"undefined\") {\n const clusterRects = doc.querySelectorAll(\n \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"] rect'\n );\n const clusterEl = doc.querySelectorAll(\n \"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(subG.id) + '\"]'\n );\n const xPos = clusterRects[0].x.baseVal.value;\n const yPos = clusterRects[0].y.baseVal.value;\n const _width = clusterRects[0].width.baseVal.value;\n const cluster = select(clusterEl[0]);\n const te = cluster.select(\".label\");\n te.attr(\"transform\", `translate(${xPos + _width / 2}, ${yPos + 14})`);\n te.attr(\"id\", id + \"Text\");\n for (let j = 0; j < subG.classes.length; j++) {\n clusterEl[0].classList.add(subG.classes[j]);\n }\n }\n }\n if (!conf2.htmlLabels) {\n const labels = doc.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n }\n setupGraphViewbox(g, svg, conf2.diagramPadding, conf2.useMaxWidth);\n const keys = Object.keys(vert);\n keys.forEach(function(key) {\n const vertex = vert[key];\n if (vertex.link) {\n const node = root.select(\"#\" + id + ' [id=\"' + diagObj.db.lookUpDomId(key) + '\"]');\n if (node) {\n const link = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"a\");\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"class\", vertex.classes.join(\" \"));\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"href\", vertex.link);\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"rel\", \"noopener\");\n if (securityLevel === \"sandbox\") {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", \"_top\");\n } else if (vertex.linkTarget) {\n link.setAttributeNS(\"http://www.w3.org/2000/svg\", \"target\", vertex.linkTarget);\n }\n const linkNode = node.insert(function() {\n return link;\n }, \":first-child\");\n const shape = node.select(\".label-container\");\n if (shape) {\n linkNode.append(function() {\n return shape.node();\n });\n }\n const label = node.select(\".label\");\n if (label) {\n linkNode.append(function() {\n return label.node();\n });\n }\n }\n }\n });\n};\nconst flowRenderer = {\n setConf,\n addVertices,\n addEdges,\n getClasses,\n draw\n};\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n flowRenderer.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-1\");\n }\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": ["location", "arrows", "e", "shapes", "svg", "svg", "normal", "rect"] -} diff --git a/.vuepress/.cache/deps/flowDiagram-v2-2f8f667a-H2Z4FXNM.js b/.vuepress/.cache/deps/flowDiagram-v2-2f8f667a-H2Z4FXNM.js deleted file mode 100644 index 57874b5b3..000000000 --- a/.vuepress/.cache/deps/flowDiagram-v2-2f8f667a-H2Z4FXNM.js +++ /dev/null @@ -1,44 +0,0 @@ -import { - flowRendererV2, - flowStyles -} from "./chunk-CGPJAAKM.js"; -import "./chunk-6ESK7MQZ.js"; -import { - flowDb, - parser$1 -} from "./chunk-THAGWN3R.js"; -import "./chunk-ULQHWUKP.js"; -import "./chunk-C55JCHDM.js"; -import "./chunk-TQDBUXIK.js"; -import { - require_dayjs_min, - require_dist, - setConfig -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/flowDiagram-v2-2f8f667a.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var diagram = { - parser: parser$1, - db: flowDb, - renderer: flowRendererV2, - styles: flowStyles, - init: (cnf) => { - if (!cnf.flowchart) { - cnf.flowchart = {}; - } - cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } }); - flowRendererV2.setConf(cnf.flowchart); - flowDb.clear(); - flowDb.setGen("gen-2"); - } -}; -export { - diagram -}; -//# sourceMappingURL=flowDiagram-v2-2f8f667a-H2Z4FXNM.js.map diff --git a/.vuepress/.cache/deps/flowDiagram-v2-2f8f667a-H2Z4FXNM.js.map b/.vuepress/.cache/deps/flowDiagram-v2-2f8f667a-H2Z4FXNM.js.map deleted file mode 100644 index 12c2495de..000000000 --- a/.vuepress/.cache/deps/flowDiagram-v2-2f8f667a-H2Z4FXNM.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/flowDiagram-v2-2f8f667a.js"], - "sourcesContent": ["import { p as parser, f as flowDb } from \"./flowDb-170db09d.js\";\nimport { f as flowRendererV2, a as flowStyles } from \"./styles-b966c4ae.js\";\nimport { p as setConfig } from \"./mermaid-934d9bea.js\";\nimport \"d3\";\nimport \"dagre-d3-es/src/graphlib/index.js\";\nimport \"./index-67a42d7d.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-80f1ebb6.js\";\nimport \"./createText-aebacdfe.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"dagre-d3-es/src/dagre-js/label/add-html-label.js\";\nimport \"khroma\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst diagram = {\n parser,\n db: flowDb,\n renderer: flowRendererV2,\n styles: flowStyles,\n init: (cnf) => {\n if (!cnf.flowchart) {\n cnf.flowchart = {};\n }\n cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });\n flowRendererV2.setConf(cnf.flowchart);\n flowDb.clear();\n flowDb.setGen(\"gen-2\");\n }\n};\nexport {\n diagram\n};\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAcA,mBAAO;AACP,0BAAO;AAMP,IAAM,UAAU;AAAA,EACd;AAAA,EACA,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,MAAM,CAAC,QAAQ;AACb,QAAI,CAAC,IAAI,WAAW;AAClB,UAAI,YAAY,CAAC;AAAA,IACnB;AACA,QAAI,UAAU,sBAAsB,IAAI;AACxC,cAAU,EAAE,WAAW,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AACzE,mBAAe,QAAQ,IAAI,SAAS;AACpC,WAAO,MAAM;AACb,WAAO,OAAO,OAAO;AAAA,EACvB;AACF;", - "names": [] -} diff --git a/.vuepress/.cache/deps/flowchart-elk-definition-e097735e-DFDQS2GD.js b/.vuepress/.cache/deps/flowchart-elk-definition-e097735e-DFDQS2GD.js deleted file mode 100644 index ad471b281..000000000 --- a/.vuepress/.cache/deps/flowchart-elk-definition-e097735e-DFDQS2GD.js +++ /dev/null @@ -1,89800 +0,0 @@ -import { - db, - parser$1 -} from "./chunk-THAGWN3R.js"; -import { - getLineFunctionsWithOffset, - insertEdgeLabel, - insertMarkers$1, - insertNode, - labelHelper -} from "./chunk-ULQHWUKP.js"; -import "./chunk-TQDBUXIK.js"; -import { - common$1, - getConfig$1, - getStylesFromArray, - interpolateToCurve, - line_default, - linear_default, - log$1, - require_dayjs_min, - require_dist, - select_default, - setupGraphViewbox$1 -} from "./chunk-MILIJ3F3.js"; -import { - __commonJS, - __require, - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/elkjs/lib/elk.bundled.js -var require_elk_bundled = __commonJS({ - "node_modules/elkjs/lib/elk.bundled.js"(exports, module) { - (function(f) { - if (typeof exports === "object" && typeof module !== "undefined") { - module.exports = f(); - } else if (typeof define === "function" && define.amd) { - define([], f); - } else { - var g; - if (typeof window !== "undefined") { - g = window; - } else if (typeof global !== "undefined") { - g = global; - } else if (typeof self !== "undefined") { - g = self; - } else { - g = this; - } - g.ELK = f(); - } - })(function() { - var define2, module2, exports2; - return (/* @__PURE__ */ function() { - function r(e, n, t) { - function o(i2, f) { - if (!n[i2]) { - if (!e[i2]) { - var c = "function" == typeof __require && __require; - if (!f && c) - return c(i2, true); - if (u) - return u(i2, true); - var a = new Error("Cannot find module '" + i2 + "'"); - throw a.code = "MODULE_NOT_FOUND", a; - } - var p = n[i2] = { exports: {} }; - e[i2][0].call(p.exports, function(r2) { - var n2 = e[i2][1][r2]; - return o(n2 || r2); - }, p, p.exports, r, e, n, t); - } - return n[i2].exports; - } - for (var u = "function" == typeof __require && __require, i = 0; i < t.length; i++) - o(t[i]); - return o; - } - return r; - }())({ 1: [function(require2, module3, exports3) { - "use strict"; - Object.defineProperty(exports3, "__esModule", { - value: true - }); - var _createClass = /* @__PURE__ */ function() { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - return function(Constructor, protoProps, staticProps) { - if (protoProps) - defineProperties(Constructor.prototype, protoProps); - if (staticProps) - defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - var ELK2 = function() { - function ELK3() { - var _this = this; - var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref.workerFactory, workerUrl = _ref.workerUrl; - _classCallCheck(this, ELK3); - this.defaultLayoutOptions = defaultLayoutOptions; - this.initialized = false; - if (typeof workerUrl === "undefined" && typeof workerFactory === "undefined") { - throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); - } - var factory = workerFactory; - if (typeof workerUrl !== "undefined" && typeof workerFactory === "undefined") { - factory = function factory2(url) { - return new Worker(url); - }; - } - var worker = factory(workerUrl); - if (typeof worker.postMessage !== "function") { - throw new TypeError("Created worker does not provide the required 'postMessage' function."); - } - this.worker = new PromisedWorker(worker); - this.worker.postMessage({ - cmd: "register", - algorithms - }).then(function(r) { - return _this.initialized = true; - }).catch(console.err); - } - _createClass(ELK3, [{ - key: "layout", - value: function layout(graph) { - var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$layoutOptions = _ref2.layoutOptions, layoutOptions = _ref2$layoutOptions === void 0 ? this.defaultLayoutOptions : _ref2$layoutOptions, _ref2$logging = _ref2.logging, logging = _ref2$logging === void 0 ? false : _ref2$logging, _ref2$measureExecutio = _ref2.measureExecutionTime, measureExecutionTime = _ref2$measureExecutio === void 0 ? false : _ref2$measureExecutio; - if (!graph) { - return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); - } - return this.worker.postMessage({ - cmd: "layout", - graph, - layoutOptions, - options: { - logging, - measureExecutionTime - } - }); - } - }, { - key: "knownLayoutAlgorithms", - value: function knownLayoutAlgorithms() { - return this.worker.postMessage({ cmd: "algorithms" }); - } - }, { - key: "knownLayoutOptions", - value: function knownLayoutOptions() { - return this.worker.postMessage({ cmd: "options" }); - } - }, { - key: "knownLayoutCategories", - value: function knownLayoutCategories() { - return this.worker.postMessage({ cmd: "categories" }); - } - }, { - key: "terminateWorker", - value: function terminateWorker() { - this.worker.terminate(); - } - }]); - return ELK3; - }(); - exports3.default = ELK2; - var PromisedWorker = function() { - function PromisedWorker2(worker) { - var _this2 = this; - _classCallCheck(this, PromisedWorker2); - if (worker === void 0) { - throw new Error("Missing mandatory parameter 'worker'."); - } - this.resolvers = {}; - this.worker = worker; - this.worker.onmessage = function(answer) { - setTimeout(function() { - _this2.receive(_this2, answer); - }, 0); - }; - } - _createClass(PromisedWorker2, [{ - key: "postMessage", - value: function postMessage(msg) { - var id = this.id || 0; - this.id = id + 1; - msg.id = id; - var self2 = this; - return new Promise(function(resolve, reject) { - self2.resolvers[id] = function(err, res) { - if (err) { - self2.convertGwtStyleError(err); - reject(err); - } else { - resolve(res); - } - }; - self2.worker.postMessage(msg); - }); - } - }, { - key: "receive", - value: function receive(self2, answer) { - var json = answer.data; - var resolver = self2.resolvers[json.id]; - if (resolver) { - delete self2.resolvers[json.id]; - if (json.error) { - resolver(json.error); - } else { - resolver(null, json.data); - } - } - } - }, { - key: "terminate", - value: function terminate() { - if (this.worker.terminate) { - this.worker.terminate(); - } - } - }, { - key: "convertGwtStyleError", - value: function convertGwtStyleError(err) { - if (!err) { - return; - } - var javaException = err["__java$exception"]; - if (javaException) { - if (javaException.cause && javaException.cause.backingJsObject) { - err.cause = javaException.cause.backingJsObject; - this.convertGwtStyleError(err.cause); - } - delete err["__java$exception"]; - } - } - }]); - return PromisedWorker2; - }(); - }, {}], 2: [function(require2, module3, exports3) { - (function(global2) { - (function() { - "use strict"; - var $wnd; - if (typeof window !== "undefined") - $wnd = window; - else if (typeof global2 !== "undefined") - $wnd = global2; - else if (typeof self !== "undefined") - $wnd = self; - var $moduleName, $moduleBase; - var g, i, o; - function nb() { - } - function xb() { - } - function Fd() { - } - function $g() { - } - function _p() { - } - function yq() { - } - function Sq() { - } - function Es() { - } - function Jw() { - } - function Vw() { - } - function VA() { - } - function dA() { - } - function MA() { - } - function PA() { - } - function PB() { - } - function bx() { - } - function cx() { - } - function vy() { - } - function Nz() { - } - function Yz() { - } - function Ylb() { - } - function Ymb() { - } - function xmb() { - } - function Fmb() { - } - function Qmb() { - } - function gcb() { - } - function ccb() { - } - function jcb() { - } - function jtb() { - } - function otb() { - } - function qtb() { - } - function _fb() { - } - function bpb() { - } - function kpb() { - } - function ppb() { - } - function Gpb() { - } - function drb() { - } - function dzb() { - } - function fzb() { - } - function fxb() { - } - function Vxb() { - } - function Ovb() { - } - function byb() { - } - function zyb() { - } - function Zyb() { - } - function _yb() { - } - function hzb() { - } - function jzb() { - } - function lzb() { - } - function nzb() { - } - function rzb() { - } - function zzb() { - } - function Czb() { - } - function Ezb() { - } - function Gzb() { - } - function Izb() { - } - function Mzb() { - } - function bBb() { - } - function NBb() { - } - function PBb() { - } - function RBb() { - } - function iCb() { - } - function OCb() { - } - function SCb() { - } - function GDb() { - } - function JDb() { - } - function fEb() { - } - function xEb() { - } - function CEb() { - } - function GEb() { - } - function yFb() { - } - function KGb() { - } - function tIb() { - } - function vIb() { - } - function xIb() { - } - function zIb() { - } - function OIb() { - } - function SIb() { - } - function TJb() { - } - function VJb() { - } - function XJb() { - } - function XKb() { - } - function fKb() { - } - function VKb() { - } - function VLb() { - } - function jLb() { - } - function nLb() { - } - function GLb() { - } - function KLb() { - } - function MLb() { - } - function OLb() { - } - function RLb() { - } - function YLb() { - } - function bMb() { - } - function gMb() { - } - function lMb() { - } - function pMb() { - } - function wMb() { - } - function zMb() { - } - function CMb() { - } - function FMb() { - } - function LMb() { - } - function zNb() { - } - function PNb() { - } - function kOb() { - } - function pOb() { - } - function tOb() { - } - function yOb() { - } - function FOb() { - } - function GPb() { - } - function aQb() { - } - function cQb() { - } - function eQb() { - } - function gQb() { - } - function iQb() { - } - function CQb() { - } - function MQb() { - } - function OQb() { - } - function ASb() { - } - function fTb() { - } - function kTb() { - } - function STb() { - } - function fUb() { - } - function DUb() { - } - function VUb() { - } - function YUb() { - } - function _Ub() { - } - function _Wb() { - } - function QWb() { - } - function XWb() { - } - function jVb() { - } - function DVb() { - } - function VVb() { - } - function $Vb() { - } - function dXb() { - } - function hXb() { - } - function lXb() { - } - function gYb() { - } - function HYb() { - } - function SYb() { - } - function VYb() { - } - function dZb() { - } - function P$b() { - } - function T$b() { - } - function h1b() { - } - function m1b() { - } - function q1b() { - } - function u1b() { - } - function y1b() { - } - function C1b() { - } - function e2b() { - } - function g2b() { - } - function m2b() { - } - function q2b() { - } - function u2b() { - } - function S2b() { - } - function U2b() { - } - function W2b() { - } - function _2b() { - } - function e3b() { - } - function h3b() { - } - function p3b() { - } - function t3b() { - } - function w3b() { - } - function y3b() { - } - function A3b() { - } - function M3b() { - } - function Q3b() { - } - function U3b() { - } - function Y3b() { - } - function l4b() { - } - function q4b() { - } - function s4b() { - } - function u4b() { - } - function w4b() { - } - function y4b() { - } - function L4b() { - } - function N4b() { - } - function P4b() { - } - function R4b() { - } - function T4b() { - } - function X4b() { - } - function I5b() { - } - function Q5b() { - } - function T5b() { - } - function Z5b() { - } - function l6b() { - } - function o6b() { - } - function t6b() { - } - function z6b() { - } - function L6b() { - } - function M6b() { - } - function P6b() { - } - function X6b() { - } - function $6b() { - } - function a7b() { - } - function c7b() { - } - function g7b() { - } - function j7b() { - } - function m7b() { - } - function r7b() { - } - function x7b() { - } - function D7b() { - } - function D9b() { - } - function b9b() { - } - function h9b() { - } - function j9b() { - } - function l9b() { - } - function w9b() { - } - function F9b() { - } - function hac() { - } - function jac() { - } - function pac() { - } - function uac() { - } - function Iac() { - } - function Kac() { - } - function Sac() { - } - function obc() { - } - function rbc() { - } - function vbc() { - } - function Fbc() { - } - function Jbc() { - } - function Xbc() { - } - function ccc() { - } - function fcc() { - } - function lcc() { - } - function occ() { - } - function tcc() { - } - function ycc() { - } - function Acc() { - } - function Ccc() { - } - function Ecc() { - } - function Gcc() { - } - function Zcc() { - } - function _cc() { - } - function bdc() { - } - function fdc() { - } - function jdc() { - } - function pdc() { - } - function sdc() { - } - function ydc() { - } - function Adc() { - } - function Cdc() { - } - function Edc() { - } - function Idc() { - } - function Ndc() { - } - function Qdc() { - } - function Sdc() { - } - function Udc() { - } - function Wdc() { - } - function Ydc() { - } - function aec() { - } - function hec() { - } - function jec() { - } - function lec() { - } - function nec() { - } - function uec() { - } - function wec() { - } - function yec() { - } - function Aec() { - } - function Fec() { - } - function Jec() { - } - function Lec() { - } - function Nec() { - } - function Rec() { - } - function Uec() { - } - function Zec() { - } - function Zfc() { - } - function lfc() { - } - function tfc() { - } - function xfc() { - } - function zfc() { - } - function Ffc() { - } - function Jfc() { - } - function Nfc() { - } - function Pfc() { - } - function Vfc() { - } - function _fc() { - } - function fgc() { - } - function jgc() { - } - function lgc() { - } - function Bgc() { - } - function ehc() { - } - function ghc() { - } - function ihc() { - } - function khc() { - } - function mhc() { - } - function ohc() { - } - function qhc() { - } - function yhc() { - } - function Ahc() { - } - function Ghc() { - } - function Ihc() { - } - function Khc() { - } - function Mhc() { - } - function Shc() { - } - function Uhc() { - } - function Whc() { - } - function dic() { - } - function dlc() { - } - function blc() { - } - function flc() { - } - function hlc() { - } - function jlc() { - } - function Glc() { - } - function Ilc() { - } - function Klc() { - } - function Mlc() { - } - function Mjc() { - } - function Qjc() { - } - function Qlc() { - } - function Ulc() { - } - function Ylc() { - } - function Lkc() { - } - function Nkc() { - } - function Pkc() { - } - function Rkc() { - } - function Xkc() { - } - function _kc() { - } - function gmc() { - } - function kmc() { - } - function zmc() { - } - function Fmc() { - } - function Wmc() { - } - function $mc() { - } - function anc() { - } - function mnc() { - } - function wnc() { - } - function Hnc() { - } - function Jnc() { - } - function Lnc() { - } - function Nnc() { - } - function Pnc() { - } - function Ync() { - } - function eoc() { - } - function Aoc() { - } - function Coc() { - } - function Eoc() { - } - function Joc() { - } - function Loc() { - } - function Zoc() { - } - function _oc() { - } - function bpc() { - } - function hpc() { - } - function kpc() { - } - function ppc() { - } - function pFc() { - } - function Ryc() { - } - function QCc() { - } - function PDc() { - } - function xGc() { - } - function HGc() { - } - function JGc() { - } - function NGc() { - } - function GIc() { - } - function iKc() { - } - function mKc() { - } - function wKc() { - } - function yKc() { - } - function AKc() { - } - function EKc() { - } - function KKc() { - } - function OKc() { - } - function QKc() { - } - function SKc() { - } - function UKc() { - } - function YKc() { - } - function aLc() { - } - function fLc() { - } - function hLc() { - } - function nLc() { - } - function pLc() { - } - function tLc() { - } - function vLc() { - } - function zLc() { - } - function BLc() { - } - function DLc() { - } - function FLc() { - } - function sMc() { - } - function JMc() { - } - function hNc() { - } - function RNc() { - } - function ZNc() { - } - function _Nc() { - } - function bOc() { - } - function dOc() { - } - function fOc() { - } - function hOc() { - } - function hRc() { - } - function jRc() { - } - function KRc() { - } - function NRc() { - } - function NQc() { - } - function LQc() { - } - function _Qc() { - } - function cPc() { - } - function iPc() { - } - function kPc() { - } - function mPc() { - } - function xPc() { - } - function zPc() { - } - function zSc() { - } - function BSc() { - } - function GSc() { - } - function ISc() { - } - function NSc() { - } - function TSc() { - } - function NTc() { - } - function NVc() { - } - function oVc() { - } - function SVc() { - } - function VVc() { - } - function XVc() { - } - function ZVc() { - } - function bWc() { - } - function bXc() { - } - function CXc() { - } - function FXc() { - } - function IXc() { - } - function MXc() { - } - function UXc() { - } - function bYc() { - } - function fYc() { - } - function oYc() { - } - function qYc() { - } - function uYc() { - } - function pZc() { - } - function G$c() { - } - function h0c() { - } - function N0c() { - } - function k1c() { - } - function I1c() { - } - function Q1c() { - } - function f2c() { - } - function i2c() { - } - function k2c() { - } - function w2c() { - } - function O2c() { - } - function S2c() { - } - function Z2c() { - } - function v3c() { - } - function x3c() { - } - function R3c() { - } - function U3c() { - } - function e4c() { - } - function w4c() { - } - function x4c() { - } - function z4c() { - } - function B4c() { - } - function D4c() { - } - function F4c() { - } - function H4c() { - } - function J4c() { - } - function L4c() { - } - function N4c() { - } - function P4c() { - } - function R4c() { - } - function T4c() { - } - function V4c() { - } - function X4c() { - } - function Z4c() { - } - function _4c() { - } - function _7c() { - } - function b5c() { - } - function d5c() { - } - function f5c() { - } - function h5c() { - } - function H5c() { - } - function Hfd() { - } - function Zfd() { - } - function Zed() { - } - function ged() { - } - function Jed() { - } - function Ned() { - } - function Red() { - } - function Ved() { - } - function bbd() { - } - function mdd() { - } - function _fd() { - } - function fgd() { - } - function kgd() { - } - function Mgd() { - } - function Ahd() { - } - function Ald() { - } - function Tld() { - } - function xkd() { - } - function rmd() { - } - function knd() { - } - function Jod() { - } - function JCd() { - } - function Bpd() { - } - function BFd() { - } - function oFd() { - } - function bqd() { - } - function bvd() { - } - function jvd() { - } - function yud() { - } - function Hxd() { - } - function EBd() { - } - function aDd() { - } - function MGd() { - } - function vHd() { - } - function RHd() { - } - function wNd() { - } - function zNd() { - } - function CNd() { - } - function KNd() { - } - function XNd() { - } - function $Nd() { - } - function HPd() { - } - function lUd() { - } - function XUd() { - } - function DWd() { - } - function GWd() { - } - function JWd() { - } - function MWd() { - } - function PWd() { - } - function SWd() { - } - function VWd() { - } - function YWd() { - } - function _Wd() { - } - function xYd() { - } - function BYd() { - } - function mZd() { - } - function EZd() { - } - function GZd() { - } - function JZd() { - } - function MZd() { - } - function PZd() { - } - function SZd() { - } - function VZd() { - } - function YZd() { - } - function _Zd() { - } - function c$d() { - } - function f$d() { - } - function i$d() { - } - function l$d() { - } - function o$d() { - } - function r$d() { - } - function u$d() { - } - function x$d() { - } - function A$d() { - } - function D$d() { - } - function G$d() { - } - function J$d() { - } - function M$d() { - } - function P$d() { - } - function S$d() { - } - function V$d() { - } - function Y$d() { - } - function _$d() { - } - function c_d() { - } - function f_d() { - } - function i_d() { - } - function l_d() { - } - function o_d() { - } - function r_d() { - } - function u_d() { - } - function x_d() { - } - function A_d() { - } - function D_d() { - } - function G_d() { - } - function J_d() { - } - function M_d() { - } - function P_d() { - } - function S_d() { - } - function V_d() { - } - function Y_d() { - } - function h5d() { - } - function U6d() { - } - function U9d() { - } - function _8d() { - } - function fae() { - } - function hae() { - } - function kae() { - } - function nae() { - } - function qae() { - } - function tae() { - } - function wae() { - } - function zae() { - } - function Cae() { - } - function Fae() { - } - function Iae() { - } - function Lae() { - } - function Oae() { - } - function Rae() { - } - function Uae() { - } - function Xae() { - } - function $ae() { - } - function bbe() { - } - function ebe() { - } - function hbe() { - } - function kbe() { - } - function nbe() { - } - function qbe() { - } - function tbe() { - } - function wbe() { - } - function zbe() { - } - function Cbe() { - } - function Fbe() { - } - function Ibe() { - } - function Lbe() { - } - function Obe() { - } - function Rbe() { - } - function Ube() { - } - function Xbe() { - } - function $be() { - } - function bce() { - } - function ece() { - } - function hce() { - } - function kce() { - } - function nce() { - } - function qce() { - } - function tce() { - } - function wce() { - } - function zce() { - } - function Cce() { - } - function Fce() { - } - function Ice() { - } - function Lce() { - } - function Oce() { - } - function Rce() { - } - function Uce() { - } - function Xce() { - } - function ude() { - } - function Vge() { - } - function dhe() { - } - function s_b(a) { - } - function jSd(a) { - } - function ol() { - wb(); - } - function oPb() { - nPb(); - } - function EPb() { - CPb(); - } - function gFb() { - fFb(); - } - function TRb() { - SRb(); - } - function ySb() { - wSb(); - } - function PSb() { - OSb(); - } - function dTb() { - bTb(); - } - function i4b() { - b4b(); - } - function D2b() { - x2b(); - } - function J6b() { - D6b(); - } - function u9b() { - q9b(); - } - function $9b() { - I9b(); - } - function Umc() { - Imc(); - } - function abc() { - Vac(); - } - function ZCc() { - VCc(); - } - function kCc() { - hCc(); - } - function rCc() { - oCc(); - } - function Tcc() { - Occ(); - } - function xkc() { - gkc(); - } - function xDc() { - rDc(); - } - function iDc() { - cDc(); - } - function kwc() { - jwc(); - } - function tJc() { - jJc(); - } - function dJc() { - aJc(); - } - function Pyc() { - Nyc(); - } - function VBc() { - SBc(); - } - function CFc() { - yFc(); - } - function CUc() { - wUc(); - } - function lUc() { - fUc(); - } - function sUc() { - pUc(); - } - function IUc() { - GUc(); - } - function IWc() { - HWc(); - } - function _Wc() { - ZWc(); - } - function fHc() { - dHc(); - } - function f0c() { - d0c(); - } - function B0c() { - A0c(); - } - function L0c() { - J0c(); - } - function LTc() { - JTc(); - } - function sTc() { - rTc(); - } - function KLc() { - ILc(); - } - function wNc() { - tNc(); - } - function PYc() { - OYc(); - } - function nZc() { - lZc(); - } - function q3c() { - p3c(); - } - function Z7c() { - X7c(); - } - function Z9c() { - Y9c(); - } - function _ad() { - Zad(); - } - function kdd() { - idd(); - } - function $md() { - Smd(); - } - function HGd() { - tGd(); - } - function hLd() { - NKd(); - } - function J6d() { - Uge(); - } - function Mvb(a) { - uCb(a); - } - function Yb(a) { - this.a = a; - } - function cc(a) { - this.a = a; - } - function cj(a) { - this.a = a; - } - function ij(a) { - this.a = a; - } - function Dj(a) { - this.a = a; - } - function df(a) { - this.a = a; - } - function kf(a) { - this.a = a; - } - function ah(a) { - this.a = a; - } - function lh(a) { - this.a = a; - } - function th(a) { - this.a = a; - } - function Ph(a) { - this.a = a; - } - function vi(a) { - this.a = a; - } - function Ci(a) { - this.a = a; - } - function Fk(a) { - this.a = a; - } - function Ln(a) { - this.a = a; - } - function ap(a) { - this.a = a; - } - function zp(a) { - this.a = a; - } - function Yp(a) { - this.a = a; - } - function qq(a) { - this.a = a; - } - function Dq(a) { - this.a = a; - } - function wr(a) { - this.a = a; - } - function Ir(a) { - this.b = a; - } - function sj(a) { - this.c = a; - } - function sw(a) { - this.a = a; - } - function fw(a) { - this.a = a; - } - function xw(a) { - this.a = a; - } - function Cw(a) { - this.a = a; - } - function Qw(a) { - this.a = a; - } - function Rw(a) { - this.a = a; - } - function Xw(a) { - this.a = a; - } - function Xv(a) { - this.a = a; - } - function Sv(a) { - this.a = a; - } - function eu(a) { - this.a = a; - } - function Zx(a) { - this.a = a; - } - function _x(a) { - this.a = a; - } - function xy(a) { - this.a = a; - } - function xB(a) { - this.a = a; - } - function HB(a) { - this.a = a; - } - function TB(a) { - this.a = a; - } - function fC(a) { - this.a = a; - } - function wB() { - this.a = []; - } - function MBb(a, b) { - a.a = b; - } - function w_b(a, b) { - a.a = b; - } - function x_b(a, b) { - a.b = b; - } - function YOb(a, b) { - a.b = b; - } - function $Ob(a, b) { - a.b = b; - } - function ZGb(a, b) { - a.j = b; - } - function qNb(a, b) { - a.g = b; - } - function rNb(a, b) { - a.i = b; - } - function dRb(a, b) { - a.c = b; - } - function eRb(a, b) { - a.d = b; - } - function z_b(a, b) { - a.d = b; - } - function y_b(a, b) { - a.c = b; - } - function __b(a, b) { - a.k = b; - } - function E0b(a, b) { - a.c = b; - } - function njc(a, b) { - a.c = b; - } - function mjc(a, b) { - a.a = b; - } - function dFc(a, b) { - a.a = b; - } - function eFc(a, b) { - a.f = b; - } - function nOc(a, b) { - a.a = b; - } - function oOc(a, b) { - a.b = b; - } - function pOc(a, b) { - a.d = b; - } - function qOc(a, b) { - a.i = b; - } - function rOc(a, b) { - a.o = b; - } - function sOc(a, b) { - a.r = b; - } - function $Pc(a, b) { - a.a = b; - } - function _Pc(a, b) { - a.b = b; - } - function DVc(a, b) { - a.e = b; - } - function EVc(a, b) { - a.f = b; - } - function FVc(a, b) { - a.g = b; - } - function SZc(a, b) { - a.e = b; - } - function TZc(a, b) { - a.f = b; - } - function c$c(a, b) { - a.f = b; - } - function bJd(a, b) { - a.n = b; - } - function A1d(a, b) { - a.a = b; - } - function J1d(a, b) { - a.a = b; - } - function B1d(a, b) { - a.c = b; - } - function K1d(a, b) { - a.c = b; - } - function L1d(a, b) { - a.d = b; - } - function M1d(a, b) { - a.e = b; - } - function N1d(a, b) { - a.g = b; - } - function d2d(a, b) { - a.a = b; - } - function e2d(a, b) { - a.c = b; - } - function f2d(a, b) { - a.d = b; - } - function g2d(a, b) { - a.e = b; - } - function h2d(a, b) { - a.f = b; - } - function i2d(a, b) { - a.j = b; - } - function Z8d(a, b) { - a.a = b; - } - function $8d(a, b) { - a.b = b; - } - function g9d(a, b) { - a.a = b; - } - function Cic(a) { - a.b = a.a; - } - function Dg(a) { - a.c = a.d.d; - } - function vib(a) { - this.d = a; - } - function eib(a) { - this.a = a; - } - function Pib(a) { - this.a = a; - } - function Vib(a) { - this.a = a; - } - function $ib(a) { - this.a = a; - } - function mcb(a) { - this.a = a; - } - function Mcb(a) { - this.a = a; - } - function Xcb(a) { - this.a = a; - } - function Ndb(a) { - this.a = a; - } - function _db(a) { - this.a = a; - } - function teb(a) { - this.a = a; - } - function Qeb(a) { - this.a = a; - } - function djb(a) { - this.a = a; - } - function Gjb(a) { - this.a = a; - } - function Njb(a) { - this.a = a; - } - function Bjb(a) { - this.b = a; - } - function lnb(a) { - this.b = a; - } - function Dnb(a) { - this.b = a; - } - function anb(a) { - this.a = a; - } - function Mob(a) { - this.a = a; - } - function Rob(a) { - this.a = a; - } - function iob(a) { - this.c = a; - } - function olb(a) { - this.c = a; - } - function qub(a) { - this.c = a; - } - function Tub(a) { - this.a = a; - } - function Vub(a) { - this.a = a; - } - function Xub(a) { - this.a = a; - } - function Zub(a) { - this.a = a; - } - function tpb(a) { - this.a = a; - } - function _pb(a) { - this.a = a; - } - function Wqb(a) { - this.a = a; - } - function nsb(a) { - this.a = a; - } - function Rxb(a) { - this.a = a; - } - function Txb(a) { - this.a = a; - } - function Xxb(a) { - this.a = a; - } - function bzb(a) { - this.a = a; - } - function tzb(a) { - this.a = a; - } - function vzb(a) { - this.a = a; - } - function xzb(a) { - this.a = a; - } - function Kzb(a) { - this.a = a; - } - function Ozb(a) { - this.a = a; - } - function iAb(a) { - this.a = a; - } - function kAb(a) { - this.a = a; - } - function mAb(a) { - this.a = a; - } - function BAb(a) { - this.a = a; - } - function hBb(a) { - this.a = a; - } - function jBb(a) { - this.a = a; - } - function nBb(a) { - this.a = a; - } - function TBb(a) { - this.a = a; - } - function XBb(a) { - this.a = a; - } - function QCb(a) { - this.a = a; - } - function WCb(a) { - this.a = a; - } - function _Cb(a) { - this.a = a; - } - function dEb(a) { - this.a = a; - } - function QGb(a) { - this.a = a; - } - function YGb(a) { - this.a = a; - } - function tKb(a) { - this.a = a; - } - function CLb(a) { - this.a = a; - } - function JMb(a) { - this.a = a; - } - function RNb(a) { - this.a = a; - } - function kQb(a) { - this.a = a; - } - function mQb(a) { - this.a = a; - } - function FQb(a) { - this.a = a; - } - function ETb(a) { - this.a = a; - } - function UTb(a) { - this.a = a; - } - function dUb(a) { - this.a = a; - } - function hUb(a) { - this.a = a; - } - function EZb(a) { - this.a = a; - } - function j$b(a) { - this.a = a; - } - function v$b(a) { - this.e = a; - } - function J0b(a) { - this.a = a; - } - function M0b(a) { - this.a = a; - } - function R0b(a) { - this.a = a; - } - function U0b(a) { - this.a = a; - } - function i2b(a) { - this.a = a; - } - function k2b(a) { - this.a = a; - } - function o2b(a) { - this.a = a; - } - function s2b(a) { - this.a = a; - } - function G2b(a) { - this.a = a; - } - function I2b(a) { - this.a = a; - } - function K2b(a) { - this.a = a; - } - function M2b(a) { - this.a = a; - } - function W3b(a) { - this.a = a; - } - function $3b(a) { - this.a = a; - } - function V4b(a) { - this.a = a; - } - function u5b(a) { - this.a = a; - } - function A7b(a) { - this.a = a; - } - function G7b(a) { - this.a = a; - } - function J7b(a) { - this.a = a; - } - function M7b(a) { - this.a = a; - } - function Mbc(a) { - this.a = a; - } - function Pbc(a) { - this.a = a; - } - function lac(a) { - this.a = a; - } - function nac(a) { - this.a = a; - } - function qcc(a) { - this.a = a; - } - function Gdc(a) { - this.a = a; - } - function $dc(a) { - this.a = a; - } - function cec(a) { - this.a = a; - } - function _ec(a) { - this.a = a; - } - function pfc(a) { - this.a = a; - } - function Bfc(a) { - this.a = a; - } - function Lfc(a) { - this.a = a; - } - function ygc(a) { - this.a = a; - } - function Dgc(a) { - this.a = a; - } - function shc(a) { - this.a = a; - } - function uhc(a) { - this.a = a; - } - function whc(a) { - this.a = a; - } - function Chc(a) { - this.a = a; - } - function Ehc(a) { - this.a = a; - } - function Ohc(a) { - this.a = a; - } - function Yhc(a) { - this.a = a; - } - function Tkc(a) { - this.a = a; - } - function Vkc(a) { - this.a = a; - } - function Olc(a) { - this.a = a; - } - function pnc(a) { - this.a = a; - } - function rnc(a) { - this.a = a; - } - function dpc(a) { - this.a = a; - } - function fpc(a) { - this.a = a; - } - function GCc(a) { - this.a = a; - } - function KCc(a) { - this.a = a; - } - function mDc(a) { - this.a = a; - } - function jEc(a) { - this.a = a; - } - function HEc(a) { - this.a = a; - } - function FEc(a) { - this.c = a; - } - function qoc(a) { - this.b = a; - } - function bFc(a) { - this.a = a; - } - function GFc(a) { - this.a = a; - } - function iGc(a) { - this.a = a; - } - function kGc(a) { - this.a = a; - } - function mGc(a) { - this.a = a; - } - function $Gc(a) { - this.a = a; - } - function hIc(a) { - this.a = a; - } - function lIc(a) { - this.a = a; - } - function pIc(a) { - this.a = a; - } - function tIc(a) { - this.a = a; - } - function xIc(a) { - this.a = a; - } - function zIc(a) { - this.a = a; - } - function CIc(a) { - this.a = a; - } - function LIc(a) { - this.a = a; - } - function CKc(a) { - this.a = a; - } - function IKc(a) { - this.a = a; - } - function MKc(a) { - this.a = a; - } - function $Kc(a) { - this.a = a; - } - function cLc(a) { - this.a = a; - } - function jLc(a) { - this.a = a; - } - function rLc(a) { - this.a = a; - } - function xLc(a) { - this.a = a; - } - function OMc(a) { - this.a = a; - } - function ZOc(a) { - this.a = a; - } - function ZRc(a) { - this.a = a; - } - function aSc(a) { - this.a = a; - } - function I$c(a) { - this.a = a; - } - function K$c(a) { - this.a = a; - } - function M$c(a) { - this.a = a; - } - function O$c(a) { - this.a = a; - } - function U$c(a) { - this.a = a; - } - function n1c(a) { - this.a = a; - } - function z1c(a) { - this.a = a; - } - function B1c(a) { - this.a = a; - } - function Q2c(a) { - this.a = a; - } - function U2c(a) { - this.a = a; - } - function z3c(a) { - this.a = a; - } - function med(a) { - this.a = a; - } - function Xed(a) { - this.a = a; - } - function _ed(a) { - this.a = a; - } - function Qfd(a) { - this.a = a; - } - function Bgd(a) { - this.a = a; - } - function $gd(a) { - this.a = a; - } - function lrd(a) { - this.a = a; - } - function urd(a) { - this.a = a; - } - function vrd(a) { - this.a = a; - } - function wrd(a) { - this.a = a; - } - function xrd(a) { - this.a = a; - } - function yrd(a) { - this.a = a; - } - function zrd(a) { - this.a = a; - } - function Ard(a) { - this.a = a; - } - function Brd(a) { - this.a = a; - } - function Crd(a) { - this.a = a; - } - function Ird(a) { - this.a = a; - } - function Krd(a) { - this.a = a; - } - function Lrd(a) { - this.a = a; - } - function Mrd(a) { - this.a = a; - } - function Nrd(a) { - this.a = a; - } - function Prd(a) { - this.a = a; - } - function Srd(a) { - this.a = a; - } - function Yrd(a) { - this.a = a; - } - function Zrd(a) { - this.a = a; - } - function _rd(a) { - this.a = a; - } - function asd(a) { - this.a = a; - } - function bsd(a) { - this.a = a; - } - function csd(a) { - this.a = a; - } - function dsd(a) { - this.a = a; - } - function msd(a) { - this.a = a; - } - function osd(a) { - this.a = a; - } - function qsd(a) { - this.a = a; - } - function ssd(a) { - this.a = a; - } - function Wsd(a) { - this.a = a; - } - function Lsd(a) { - this.b = a; - } - function thd(a) { - this.f = a; - } - function qtd(a) { - this.a = a; - } - function yBd(a) { - this.a = a; - } - function GBd(a) { - this.a = a; - } - function MBd(a) { - this.a = a; - } - function SBd(a) { - this.a = a; - } - function iCd(a) { - this.a = a; - } - function YMd(a) { - this.a = a; - } - function GNd(a) { - this.a = a; - } - function EPd(a) { - this.a = a; - } - function EQd(a) { - this.a = a; - } - function NTd(a) { - this.a = a; - } - function qOd(a) { - this.b = a; - } - function lVd(a) { - this.c = a; - } - function VVd(a) { - this.e = a; - } - function iYd(a) { - this.a = a; - } - function RYd(a) { - this.a = a; - } - function ZYd(a) { - this.a = a; - } - function z0d(a) { - this.a = a; - } - function O0d(a) { - this.a = a; - } - function s0d(a) { - this.d = a; - } - function W5d(a) { - this.a = a; - } - function cge(a) { - this.a = a; - } - function xfe(a) { - this.e = a; - } - function Tfd() { - this.a = 0; - } - function jkb() { - Vjb(this); - } - function Rkb() { - Ckb(this); - } - function Lqb() { - Uhb(this); - } - function lEb() { - kEb(this); - } - function A_b() { - s_b(this); - } - function UQd() { - this.c = FQd; - } - function v6d(a, b) { - b.Wb(a); - } - function moc(a, b) { - a.b += b; - } - function yXb(a) { - a.b = new Ji(); - } - function vbb(a) { - return a.e; - } - function DB(a) { - return a.a; - } - function LB(a) { - return a.a; - } - function ZB(a) { - return a.a; - } - function lC(a) { - return a.a; - } - function EC(a) { - return a.a; - } - function wC() { - return null; - } - function SB() { - return null; - } - function hcb() { - mvd(); - ovd(); - } - function zJb(a) { - a.b.tf(a.e); - } - function j5b(a, b) { - a.b = b - a.b; - } - function g5b(a, b) { - a.a = b - a.a; - } - function PXc(a, b) { - b.ad(a.a); - } - function plc(a, b) { - G0b(b, a); - } - function hp(a, b, c) { - a.Od(c, b); - } - function As(a, b) { - a.e = b; - b.b = a; - } - function Zl(a) { - Ql(); - this.a = a; - } - function jq(a) { - Ql(); - this.a = a; - } - function sq(a) { - Ql(); - this.a = a; - } - function Fq(a) { - im(); - this.a = a; - } - function Sz(a) { - Rz(); - Qz.be(a); - } - function gz() { - Xy.call(this); - } - function xcb() { - Xy.call(this); - } - function pcb() { - gz.call(this); - } - function tcb() { - gz.call(this); - } - function Bdb() { - gz.call(this); - } - function Vdb() { - gz.call(this); - } - function Ydb() { - gz.call(this); - } - function Geb() { - gz.call(this); - } - function bgb() { - gz.call(this); - } - function Apb() { - gz.call(this); - } - function Jpb() { - gz.call(this); - } - function utb() { - gz.call(this); - } - function x2c() { - gz.call(this); - } - function rQd() { - this.a = this; - } - function MPd() { - this.Bb |= 256; - } - function tTb() { - this.b = new mt(); - } - function fA() { - fA = ccb; - new Lqb(); - } - function rcb() { - pcb.call(this); - } - function dCb(a, b) { - a.length = b; - } - function Tvb(a, b) { - Ekb(a.a, b); - } - function sKb(a, b) { - UHb(a.c, b); - } - function SMc(a, b) { - Qqb(a.b, b); - } - function vBd(a, b) { - uAd(a.a, b); - } - function wBd(a, b) { - vAd(a.a, b); - } - function GLd(a, b) { - Uhd(a.e, b); - } - function d7d(a) { - D2d(a.c, a.b); - } - function mj(a, b) { - a.kc().Nb(b); - } - function Odb(a) { - this.a = Tdb(a); - } - function Tqb() { - this.a = new Lqb(); - } - function gyb() { - this.a = new Lqb(); - } - function Wvb() { - this.a = new Rkb(); - } - function KFb() { - this.a = new Rkb(); - } - function PFb() { - this.a = new Rkb(); - } - function FFb() { - this.a = new yFb(); - } - function pGb() { - this.a = new MFb(); - } - function ZQb() { - this.a = new MQb(); - } - function Gxb() { - this.a = new Pwb(); - } - function jUb() { - this.a = new PTb(); - } - function sDb() { - this.a = new oDb(); - } - function zDb() { - this.a = new tDb(); - } - function CWb() { - this.a = new Rkb(); - } - function HXb() { - this.a = new Rkb(); - } - function nYb() { - this.a = new Rkb(); - } - function BYb() { - this.a = new Rkb(); - } - function fLb() { - this.d = new Rkb(); - } - function vYb() { - this.a = new Tqb(); - } - function a2b() { - this.a = new Lqb(); - } - function wZb() { - this.b = new Lqb(); - } - function TCc() { - this.b = new Rkb(); - } - function zJc() { - this.e = new Rkb(); - } - function uMc() { - this.d = new Rkb(); - } - function wdc() { - this.a = new xkc(); - } - function vKc() { - Rkb.call(this); - } - function twb() { - Wvb.call(this); - } - function oHb() { - $Gb.call(this); - } - function LXb() { - HXb.call(this); - } - function L_b() { - H_b.call(this); - } - function H_b() { - A_b.call(this); - } - function p0b() { - A_b.call(this); - } - function s0b() { - p0b.call(this); - } - function WMc() { - VMc.call(this); - } - function bNc() { - VMc.call(this); - } - function EPc() { - CPc.call(this); - } - function JPc() { - CPc.call(this); - } - function OPc() { - CPc.call(this); - } - function w1c() { - s1c.call(this); - } - function s7c() { - Psb.call(this); - } - function apd() { - Ald.call(this); - } - function ppd() { - Ald.call(this); - } - function lDd() { - YCd.call(this); - } - function NDd() { - YCd.call(this); - } - function mFd() { - Lqb.call(this); - } - function vFd() { - Lqb.call(this); - } - function GFd() { - Lqb.call(this); - } - function KPd() { - Tqb.call(this); - } - function OJd() { - hJd.call(this); - } - function aQd() { - MPd.call(this); - } - function SSd() { - FId.call(this); - } - function rUd() { - FId.call(this); - } - function oUd() { - Lqb.call(this); - } - function NYd() { - Lqb.call(this); - } - function cZd() { - Lqb.call(this); - } - function R8d() { - MGd.call(this); - } - function o9d() { - MGd.call(this); - } - function i9d() { - R8d.call(this); - } - function hee() { - ude.call(this); - } - function Dd(a) { - yd.call(this, a); - } - function Hd(a) { - yd.call(this, a); - } - function ph(a) { - lh.call(this, a); - } - function Sh(a) { - Wc.call(this, a); - } - function oi(a) { - Sh.call(this, a); - } - function Ii(a) { - Wc.call(this, a); - } - function Zdd() { - this.a = new Psb(); - } - function CPc() { - this.a = new Tqb(); - } - function s1c() { - this.a = new Lqb(); - } - function QSc() { - this.a = new Rkb(); - } - function D2c() { - this.j = new Rkb(); - } - function QXc() { - this.a = new UXc(); - } - function e_c() { - this.a = new d_c(); - } - function YCd() { - this.a = new aDd(); - } - function _k() { - _k = ccb; - $k = new al(); - } - function Lk() { - Lk = ccb; - Kk = new Mk(); - } - function wb() { - wb = ccb; - vb = new xb(); - } - function hs() { - hs = ccb; - gs = new is(); - } - function rs(a) { - Sh.call(this, a); - } - function Gp(a) { - Sh.call(this, a); - } - function xp(a) { - Lo.call(this, a); - } - function Ep(a) { - Lo.call(this, a); - } - function Tp(a) { - Wn.call(this, a); - } - function wx(a) { - un.call(this, a); - } - function ov(a) { - dv.call(this, a); - } - function Mv(a) { - Br.call(this, a); - } - function Ov(a) { - Br.call(this, a); - } - function Lw(a) { - Br.call(this, a); - } - function hz(a) { - Yy.call(this, a); - } - function MB(a) { - hz.call(this, a); - } - function eC() { - fC.call(this, {}); - } - function Ftb(a) { - Atb(); - this.a = a; - } - function zwb(a) { - a.b = null; - a.c = 0; - } - function Vy(a, b) { - a.e = b; - Sy(a, b); - } - function LVb(a, b) { - a.a = b; - NVb(a); - } - function lIb(a, b, c) { - a.a[b.g] = c; - } - function vfd(a, b, c) { - Dfd(c, a, b); - } - function Odc(a, b) { - rjc(b.i, a.n); - } - function Wyc(a, b) { - Xyc(a).td(b); - } - function ERb(a, b) { - return a * a / b; - } - function Xr(a, b) { - return a.g - b.g; - } - function tC(a) { - return new TB(a); - } - function vC(a) { - return new yC(a); - } - function ocb(a) { - hz.call(this, a); - } - function qcb(a) { - hz.call(this, a); - } - function ucb(a) { - hz.call(this, a); - } - function vcb(a) { - Yy.call(this, a); - } - function fGc(a) { - LFc(); - this.a = a; - } - function c0d(a) { - kzd(); - this.a = a; - } - function bhd(a) { - Rgd(); - this.f = a; - } - function dhd(a) { - Rgd(); - this.f = a; - } - function Cdb(a) { - hz.call(this, a); - } - function Wdb(a) { - hz.call(this, a); - } - function Zdb(a) { - hz.call(this, a); - } - function Feb(a) { - hz.call(this, a); - } - function Heb(a) { - hz.call(this, a); - } - function Ccb(a) { - return uCb(a), a; - } - function Edb(a) { - return uCb(a), a; - } - function Gdb(a) { - return uCb(a), a; - } - function jfb(a) { - return uCb(a), a; - } - function tfb(a) { - return uCb(a), a; - } - function akb(a) { - return a.b == a.c; - } - function Hwb(a) { - return !!a && a.b; - } - function pIb(a) { - return !!a && a.k; - } - function qIb(a) { - return !!a && a.j; - } - function amb(a) { - uCb(a); - this.a = a; - } - function wVb(a) { - qVb(a); - return a; - } - function Blb(a) { - Glb(a, a.length); - } - function cgb(a) { - hz.call(this, a); - } - function cqd(a) { - hz.call(this, a); - } - function n8d(a) { - hz.call(this, a); - } - function y2c(a) { - hz.call(this, a); - } - function z2c(a) { - hz.call(this, a); - } - function mde(a) { - hz.call(this, a); - } - function pc(a) { - qc.call(this, a, 0); - } - function Ji() { - Ki.call(this, 12, 3); - } - function Kz() { - Kz = ccb; - Jz = new Nz(); - } - function jz() { - jz = ccb; - iz = new nb(); - } - function KA() { - KA = ccb; - JA = new MA(); - } - function OB() { - OB = ccb; - NB = new PB(); - } - function jc() { - throw vbb(new bgb()); - } - function zh() { - throw vbb(new bgb()); - } - function Pi() { - throw vbb(new bgb()); - } - function Pj() { - throw vbb(new bgb()); - } - function Qj() { - throw vbb(new bgb()); - } - function Ym() { - throw vbb(new bgb()); - } - function Gb() { - this.a = GD(Qb(She)); - } - function oy(a) { - Ql(); - this.a = Qb(a); - } - function Bs(a, b) { - a.Td(b); - b.Sd(a); - } - function iw(a, b) { - a.a.ec().Mc(b); - } - function CYb(a, b, c) { - a.c.lf(b, c); - } - function scb(a) { - qcb.call(this, a); - } - function Oeb(a) { - Wdb.call(this, a); - } - function Hfb() { - mcb.call(this, ""); - } - function Ifb() { - mcb.call(this, ""); - } - function Ufb() { - mcb.call(this, ""); - } - function Vfb() { - mcb.call(this, ""); - } - function Xfb(a) { - qcb.call(this, a); - } - function zob(a) { - lnb.call(this, a); - } - function Yob(a) { - Inb.call(this, a); - } - function Gob(a) { - zob.call(this, a); - } - function Mk() { - Fk.call(this, null); - } - function al() { - Fk.call(this, null); - } - function Az() { - Az = ccb; - !!(Rz(), Qz); - } - function wrb() { - wrb = ccb; - vrb = yrb(); - } - function Mtb(a) { - return a.a ? a.b : 0; - } - function Vtb(a) { - return a.a ? a.b : 0; - } - function Lcb(a, b) { - return a.a - b.a; - } - function Wcb(a, b) { - return a.a - b.a; - } - function Peb(a, b) { - return a.a - b.a; - } - function eCb(a, b) { - return PC(a, b); - } - function GC(a, b) { - return rdb(a, b); - } - function _B(b, a) { - return a in b.a; - } - function _Db(a, b) { - a.f = b; - return a; - } - function ZDb(a, b) { - a.b = b; - return a; - } - function $Db(a, b) { - a.c = b; - return a; - } - function aEb(a, b) { - a.g = b; - return a; - } - function HGb(a, b) { - a.a = b; - return a; - } - function IGb(a, b) { - a.f = b; - return a; - } - function JGb(a, b) { - a.k = b; - return a; - } - function dLb(a, b) { - a.a = b; - return a; - } - function eLb(a, b) { - a.e = b; - return a; - } - function zVb(a, b) { - a.e = b; - return a; - } - function AVb(a, b) { - a.f = b; - return a; - } - function KOb(a, b) { - a.b = true; - a.d = b; - } - function DHb(a, b) { - a.b = new g7c(b); - } - function uvb(a, b, c) { - b.td(a.a[c]); - } - function zvb(a, b, c) { - b.we(a.a[c]); - } - function wJc(a, b) { - return a.b - b.b; - } - function kOc(a, b) { - return a.g - b.g; - } - function WQc(a, b) { - return a.s - b.s; - } - function Lic(a, b) { - return a ? 0 : b - 1; - } - function SFc(a, b) { - return a ? 0 : b - 1; - } - function RFc(a, b) { - return a ? b - 1 : 0; - } - function M2c(a, b) { - return b.Yf(a); - } - function M3c(a, b) { - a.b = b; - return a; - } - function L3c(a, b) { - a.a = b; - return a; - } - function N3c(a, b) { - a.c = b; - return a; - } - function O3c(a, b) { - a.d = b; - return a; - } - function P3c(a, b) { - a.e = b; - return a; - } - function Q3c(a, b) { - a.f = b; - return a; - } - function b4c(a, b) { - a.a = b; - return a; - } - function c4c(a, b) { - a.b = b; - return a; - } - function d4c(a, b) { - a.c = b; - return a; - } - function z5c(a, b) { - a.c = b; - return a; - } - function y5c(a, b) { - a.b = b; - return a; - } - function A5c(a, b) { - a.d = b; - return a; - } - function B5c(a, b) { - a.e = b; - return a; - } - function C5c(a, b) { - a.f = b; - return a; - } - function D5c(a, b) { - a.g = b; - return a; - } - function E5c(a, b) { - a.a = b; - return a; - } - function F5c(a, b) { - a.i = b; - return a; - } - function G5c(a, b) { - a.j = b; - return a; - } - function Vdd(a, b) { - a.k = b; - return a; - } - function Wdd(a, b) { - a.j = b; - return a; - } - function ykc(a, b) { - gkc(); - F0b(b, a); - } - function T$c(a, b, c) { - R$c(a.a, b, c); - } - function RGc(a) { - cEc.call(this, a); - } - function iHc(a) { - cEc.call(this, a); - } - function t7c(a) { - Qsb.call(this, a); - } - function aPb(a) { - _Ob.call(this, a); - } - function Ixd(a) { - zud.call(this, a); - } - function dCd(a) { - ZBd.call(this, a); - } - function fCd(a) { - ZBd.call(this, a); - } - function p_b() { - q_b.call(this, ""); - } - function d7c() { - this.a = 0; - this.b = 0; - } - function aPc() { - this.b = 0; - this.a = 0; - } - function NJd(a, b) { - a.b = 0; - DId(a, b); - } - function X1d(a, b) { - a.c = b; - a.b = true; - } - function Oc(a, b) { - return a.c._b(b); - } - function gdb(a) { - return a.e && a.e(); - } - function Vd(a) { - return !a ? null : a.d; - } - function sn(a, b) { - return Gv(a.b, b); - } - function Fv(a) { - return !a ? null : a.g; - } - function Kv(a) { - return !a ? null : a.i; - } - function hdb(a) { - fdb(a); - return a.o; - } - function Fhd() { - Fhd = ccb; - Ehd = ond(); - } - function Hhd() { - Hhd = ccb; - Ghd = Cod(); - } - function LFd() { - LFd = ccb; - KFd = qZd(); - } - function p8d() { - p8d = ccb; - o8d = Y9d(); - } - function r8d() { - r8d = ccb; - q8d = dae(); - } - function mvd() { - mvd = ccb; - lvd = n4c(); - } - function Srb() { - throw vbb(new bgb()); - } - function enb() { - throw vbb(new bgb()); - } - function fnb() { - throw vbb(new bgb()); - } - function gnb() { - throw vbb(new bgb()); - } - function jnb() { - throw vbb(new bgb()); - } - function Cnb() { - throw vbb(new bgb()); - } - function Uqb(a) { - this.a = new Mqb(a); - } - function tgb(a) { - lgb(); - ngb(this, a); - } - function Hxb(a) { - this.a = new Qwb(a); - } - function _ub(a, b) { - while (a.ye(b)) - ; - } - function Sub(a, b) { - while (a.sd(b)) - ; - } - function Bfb(a, b) { - a.a += b; - return a; - } - function Cfb(a, b) { - a.a += b; - return a; - } - function Ffb(a, b) { - a.a += b; - return a; - } - function Lfb(a, b) { - a.a += b; - return a; - } - function WAb(a) { - Tzb(a); - return a.a; - } - function Wsb(a) { - return a.b != a.d.c; - } - function pD(a) { - return a.l | a.m << 22; - } - function aIc(a, b) { - return a.d[b.p]; - } - function h2c(a, b) { - return c2c(a, b); - } - function cCb(a, b, c) { - a.splice(b, c); - } - function WHb(a) { - a.c ? VHb(a) : XHb(a); - } - function jVc(a) { - this.a = 0; - this.b = a; - } - function ZUc() { - this.a = new L2c(K$); - } - function tRc() { - this.b = new L2c(h$); - } - function Q$c() { - this.b = new L2c(J_); - } - function d_c() { - this.b = new L2c(J_); - } - function OCd() { - throw vbb(new bgb()); - } - function PCd() { - throw vbb(new bgb()); - } - function QCd() { - throw vbb(new bgb()); - } - function RCd() { - throw vbb(new bgb()); - } - function SCd() { - throw vbb(new bgb()); - } - function TCd() { - throw vbb(new bgb()); - } - function UCd() { - throw vbb(new bgb()); - } - function VCd() { - throw vbb(new bgb()); - } - function WCd() { - throw vbb(new bgb()); - } - function XCd() { - throw vbb(new bgb()); - } - function ahe() { - throw vbb(new utb()); - } - function bhe() { - throw vbb(new utb()); - } - function Rge(a) { - this.a = new ege(a); - } - function ege(a) { - dge(this, a, Vee()); - } - function Fhe(a) { - return !a || Ehe(a); - } - function dde(a) { - return $ce[a] != -1; - } - function Iz() { - xz != 0 && (xz = 0); - zz = -1; - } - function Ybb() { - Wbb == null && (Wbb = []); - } - function ONd(a, b) { - Rxd(ZKd(a.a), b); - } - function TNd(a, b) { - Rxd(ZKd(a.a), b); - } - function Yf(a, b) { - zf.call(this, a, b); - } - function $f(a, b) { - Yf.call(this, a, b); - } - function Hf(a, b) { - this.b = a; - this.c = b; - } - function rk(a, b) { - this.b = a; - this.a = b; - } - function ek(a, b) { - this.a = a; - this.b = b; - } - function gk(a, b) { - this.a = a; - this.b = b; - } - function pk(a, b) { - this.a = a; - this.b = b; - } - function yk(a, b) { - this.a = a; - this.b = b; - } - function Ak(a, b) { - this.a = a; - this.b = b; - } - function Fj(a, b) { - this.a = a; - this.b = b; - } - function _j(a, b) { - this.a = a; - this.b = b; - } - function dr(a, b) { - this.a = a; - this.b = b; - } - function zr(a, b) { - this.b = a; - this.a = b; - } - function So(a, b) { - this.b = a; - this.a = b; - } - function qp(a, b) { - this.b = a; - this.a = b; - } - function $q(a, b) { - this.b = a; - this.a = b; - } - function $r(a, b) { - this.f = a; - this.g = b; - } - function ne(a, b) { - this.e = a; - this.d = b; - } - function Wo(a, b) { - this.g = a; - this.i = b; - } - function bu(a, b) { - this.a = a; - this.b = b; - } - function qu(a, b) { - this.a = a; - this.f = b; - } - function qv(a, b) { - this.b = a; - this.c = b; - } - function ox(a, b) { - this.a = a; - this.b = b; - } - function Px(a, b) { - this.a = a; - this.b = b; - } - function mC(a, b) { - this.a = a; - this.b = b; - } - function Wc(a) { - Lb(a.dc()); - this.c = a; - } - function rf(a) { - this.b = BD(Qb(a), 83); - } - function Zv(a) { - this.a = BD(Qb(a), 83); - } - function dv(a) { - this.a = BD(Qb(a), 15); - } - function $u(a) { - this.a = BD(Qb(a), 15); - } - function Br(a) { - this.b = BD(Qb(a), 47); - } - function eB() { - this.q = new $wnd.Date(); - } - function Zfb() { - Zfb = ccb; - Yfb = new jcb(); - } - function Emb() { - Emb = ccb; - Dmb = new Fmb(); - } - function Vhb(a) { - return a.f.c + a.g.c; - } - function hnb(a, b) { - return a.b.Hc(b); - } - function inb(a, b) { - return a.b.Ic(b); - } - function knb(a, b) { - return a.b.Qc(b); - } - function Dob(a, b) { - return a.b.Hc(b); - } - function dob(a, b) { - return a.c.uc(b); - } - function Rqb(a, b) { - return a.a._b(b); - } - function fob(a, b) { - return pb(a.c, b); - } - function jt(a, b) { - return Mhb(a.b, b); - } - function Lp(a, b) { - return a > b && b < Iie; - } - function Ryb(a, b) { - return a.Gc(b), a; - } - function Syb(a, b) { - return ye(a, b), a; - } - function sC(a) { - return GB(), a ? FB : EB; - } - function Mqb(a) { - Whb.call(this, a, 0); - } - function Pwb() { - Qwb.call(this, null); - } - function yAb() { - Vzb.call(this, null); - } - function Gqb(a) { - this.c = a; - Dqb(this); - } - function Psb() { - Csb(this); - Osb(this); - } - function MAb(a, b) { - Tzb(a); - a.a.Nb(b); - } - function Myb(a, b) { - a.Gc(b); - return a; - } - function qDb(a, b) { - a.a.f = b; - return a; - } - function wDb(a, b) { - a.a.d = b; - return a; - } - function xDb(a, b) { - a.a.g = b; - return a; - } - function yDb(a, b) { - a.a.j = b; - return a; - } - function BFb(a, b) { - a.a.a = b; - return a; - } - function CFb(a, b) { - a.a.d = b; - return a; - } - function DFb(a, b) { - a.a.e = b; - return a; - } - function EFb(a, b) { - a.a.g = b; - return a; - } - function oGb(a, b) { - a.a.f = b; - return a; - } - function TGb(a) { - a.b = false; - return a; - } - function Ltb() { - Ltb = ccb; - Ktb = new Otb(); - } - function Utb() { - Utb = ccb; - Ttb = new Wtb(); - } - function $xb() { - $xb = ccb; - Zxb = new byb(); - } - function $Yb() { - $Yb = ccb; - ZYb = new dZb(); - } - function cPb() { - cPb = ccb; - bPb = new dPb(); - } - function EAb() { - EAb = ccb; - DAb = new PBb(); - } - function a$b() { - a$b = ccb; - _Zb = new P$b(); - } - function FDb() { - FDb = ccb; - EDb = new GDb(); - } - function xUb() { - xUb = ccb; - wUb = new DUb(); - } - function x2b() { - x2b = ccb; - w2b = new d7c(); - } - function iVb() { - iVb = ccb; - hVb = new jVb(); - } - function nVb() { - nVb = ccb; - mVb = new OVb(); - } - function LWb() { - LWb = ccb; - KWb = new QWb(); - } - function b4b() { - b4b = ccb; - a4b = new l4b(); - } - function q9b() { - q9b = ccb; - p9b = new w9b(); - } - function qgc() { - qgc = ccb; - pgc = new dic(); - } - function Imc() { - Imc = ccb; - Hmc = new Wmc(); - } - function GUc() { - GUc = ccb; - FUc = new j3c(); - } - function i_c() { - i_c = ccb; - h_c = new k_c(); - } - function s_c() { - s_c = ccb; - r_c = new t_c(); - } - function R0c() { - R0c = ccb; - Q0c = new T0c(); - } - function Vyc() { - Vyc = ccb; - Uyc = new Ved(); - } - function DCc() { - vCc(); - this.c = new Ji(); - } - function k_c() { - $r.call(this, Une, 0); - } - function r4c(a, b) { - Xrb(a.c.b, b.c, b); - } - function s4c(a, b) { - Xrb(a.c.c, b.b, b); - } - function B3c(a, b, c) { - Shb(a.d, b.f, c); - } - function kKb(a, b, c, d) { - jKb(a, d, b, c); - } - function E3b(a, b, c, d) { - J3b(d, a, b, c); - } - function e9b(a, b, c, d) { - f9b(d, a, b, c); - } - function g3c(a, b) { - a.a = b.g; - return a; - } - function DQd(a, b) { - return qA(a.a, b); - } - function nQd(a) { - return a.b ? a.b : a.a; - } - function $Oc(a) { - return (a.c + a.a) / 2; - } - function Pgd() { - Pgd = ccb; - Ogd = new Ahd(); - } - function AFd() { - AFd = ccb; - zFd = new BFd(); - } - function tFd() { - tFd = ccb; - sFd = new vFd(); - } - function EFd() { - EFd = ccb; - DFd = new GFd(); - } - function yFd() { - yFd = ccb; - xFd = new oUd(); - } - function JFd() { - JFd = ccb; - IFd = new cZd(); - } - function nRd() { - nRd = ccb; - mRd = new u4d(); - } - function LRd() { - LRd = ccb; - KRd = new y4d(); - } - function g5d() { - g5d = ccb; - f5d = new h5d(); - } - function Q6d() { - Q6d = ccb; - P6d = new U6d(); - } - function pEd() { - pEd = ccb; - oEd = new Lqb(); - } - function tZd() { - tZd = ccb; - rZd = new Rkb(); - } - function Xge() { - Xge = ccb; - Wge = new dhe(); - } - function Hz(a) { - $wnd.clearTimeout(a); - } - function jw(a) { - this.a = BD(Qb(a), 224); - } - function Lv(a) { - return BD(a, 42).cd(); - } - function sib(a) { - return a.b < a.d.gc(); - } - function Lpb(a, b) { - return tqb(a.a, b); - } - function Dbb(a, b) { - return ybb(a, b) > 0; - } - function Gbb(a, b) { - return ybb(a, b) < 0; - } - function Crb(a, b) { - return a.a.get(b); - } - function icb(b, a) { - return a.split(b); - } - function Vrb(a, b) { - return Mhb(a.e, b); - } - function Nvb(a) { - return uCb(a), false; - } - function Rub(a) { - Kub.call(this, a, 21); - } - function wcb(a, b) { - Zy.call(this, a, b); - } - function mxb(a, b) { - $r.call(this, a, b); - } - function Gyb(a, b) { - $r.call(this, a, b); - } - function zx(a) { - yx(); - Wn.call(this, a); - } - function zlb(a, b) { - Dlb(a, a.length, b); - } - function Alb(a, b) { - Flb(a, a.length, b); - } - function ABb(a, b, c) { - b.ud(a.a.Ge(c)); - } - function uBb(a, b, c) { - b.we(a.a.Fe(c)); - } - function GBb(a, b, c) { - b.td(a.a.Kb(c)); - } - function Zq(a, b, c) { - a.Mb(c) && b.td(c); - } - function aCb(a, b, c) { - a.splice(b, 0, c); - } - function lDb(a, b) { - return uqb(a.e, b); - } - function pjb(a, b) { - this.d = a; - this.e = b; - } - function kqb(a, b) { - this.b = a; - this.a = b; - } - function VBb(a, b) { - this.b = a; - this.a = b; - } - function BEb(a, b) { - this.b = a; - this.a = b; - } - function sBb(a, b) { - this.a = a; - this.b = b; - } - function yBb(a, b) { - this.a = a; - this.b = b; - } - function EBb(a, b) { - this.a = a; - this.b = b; - } - function KBb(a, b) { - this.a = a; - this.b = b; - } - function aDb(a, b) { - this.a = a; - this.b = b; - } - function tMb(a, b) { - this.b = a; - this.a = b; - } - function oOb(a, b) { - this.b = a; - this.a = b; - } - function SOb(a, b) { - $r.call(this, a, b); - } - function SMb(a, b) { - $r.call(this, a, b); - } - function NEb(a, b) { - $r.call(this, a, b); - } - function VEb(a, b) { - $r.call(this, a, b); - } - function sFb(a, b) { - $r.call(this, a, b); - } - function hHb(a, b) { - $r.call(this, a, b); - } - function OHb(a, b) { - $r.call(this, a, b); - } - function FIb(a, b) { - $r.call(this, a, b); - } - function wLb(a, b) { - $r.call(this, a, b); - } - function YRb(a, b) { - $r.call(this, a, b); - } - function zTb(a, b) { - $r.call(this, a, b); - } - function rUb(a, b) { - $r.call(this, a, b); - } - function oWb(a, b) { - $r.call(this, a, b); - } - function SXb(a, b) { - $r.call(this, a, b); - } - function k0b(a, b) { - $r.call(this, a, b); - } - function z5b(a, b) { - $r.call(this, a, b); - } - function T8b(a, b) { - $r.call(this, a, b); - } - function ibc(a, b) { - $r.call(this, a, b); - } - function Cec(a, b) { - this.a = a; - this.b = b; - } - function rfc(a, b) { - this.a = a; - this.b = b; - } - function Rfc(a, b) { - this.a = a; - this.b = b; - } - function Tfc(a, b) { - this.a = a; - this.b = b; - } - function bgc(a, b) { - this.a = a; - this.b = b; - } - function ngc(a, b) { - this.a = a; - this.b = b; - } - function Qhc(a, b) { - this.a = a; - this.b = b; - } - function $hc(a, b) { - this.a = a; - this.b = b; - } - function Z0b(a, b) { - this.a = a; - this.b = b; - } - function ZVb(a, b) { - this.b = a; - this.a = b; - } - function Dfc(a, b) { - this.b = a; - this.a = b; - } - function dgc(a, b) { - this.b = a; - this.a = b; - } - function Bmc(a, b) { - this.b = a; - this.a = b; - } - function cWb(a, b) { - this.c = a; - this.d = b; - } - function I$b(a, b) { - this.e = a; - this.d = b; - } - function Unc(a, b) { - this.a = a; - this.b = b; - } - function Oic(a, b) { - this.b = b; - this.c = a; - } - function Bjc(a, b) { - $r.call(this, a, b); - } - function Yjc(a, b) { - $r.call(this, a, b); - } - function Gkc(a, b) { - $r.call(this, a, b); - } - function Bpc(a, b) { - $r.call(this, a, b); - } - function Jpc(a, b) { - $r.call(this, a, b); - } - function Tpc(a, b) { - $r.call(this, a, b); - } - function cqc(a, b) { - $r.call(this, a, b); - } - function oqc(a, b) { - $r.call(this, a, b); - } - function yqc(a, b) { - $r.call(this, a, b); - } - function Hqc(a, b) { - $r.call(this, a, b); - } - function Uqc(a, b) { - $r.call(this, a, b); - } - function arc(a, b) { - $r.call(this, a, b); - } - function mrc(a, b) { - $r.call(this, a, b); - } - function zrc(a, b) { - $r.call(this, a, b); - } - function Prc(a, b) { - $r.call(this, a, b); - } - function Yrc(a, b) { - $r.call(this, a, b); - } - function fsc(a, b) { - $r.call(this, a, b); - } - function nsc(a, b) { - $r.call(this, a, b); - } - function nzc(a, b) { - $r.call(this, a, b); - } - function zzc(a, b) { - $r.call(this, a, b); - } - function Kzc(a, b) { - $r.call(this, a, b); - } - function Xzc(a, b) { - $r.call(this, a, b); - } - function Dtc(a, b) { - $r.call(this, a, b); - } - function lAc(a, b) { - $r.call(this, a, b); - } - function uAc(a, b) { - $r.call(this, a, b); - } - function CAc(a, b) { - $r.call(this, a, b); - } - function LAc(a, b) { - $r.call(this, a, b); - } - function UAc(a, b) { - $r.call(this, a, b); - } - function aBc(a, b) { - $r.call(this, a, b); - } - function uBc(a, b) { - $r.call(this, a, b); - } - function DBc(a, b) { - $r.call(this, a, b); - } - function MBc(a, b) { - $r.call(this, a, b); - } - function sGc(a, b) { - $r.call(this, a, b); - } - function VIc(a, b) { - $r.call(this, a, b); - } - function EIc(a, b) { - this.b = a; - this.a = b; - } - function qKc(a, b) { - this.a = a; - this.b = b; - } - function GKc(a, b) { - this.a = a; - this.b = b; - } - function lLc(a, b) { - this.a = a; - this.b = b; - } - function mMc(a, b) { - this.a = a; - this.b = b; - } - function fMc(a, b) { - $r.call(this, a, b); - } - function ZLc(a, b) { - $r.call(this, a, b); - } - function ZMc(a, b) { - this.b = a; - this.d = b; - } - function IOc(a, b) { - $r.call(this, a, b); - } - function GQc(a, b) { - $r.call(this, a, b); - } - function PQc(a, b) { - this.a = a; - this.b = b; - } - function RQc(a, b) { - this.a = a; - this.b = b; - } - function ARc(a, b) { - $r.call(this, a, b); - } - function rSc(a, b) { - $r.call(this, a, b); - } - function TTc(a, b) { - $r.call(this, a, b); - } - function _Tc(a, b) { - $r.call(this, a, b); - } - function RUc(a, b) { - $r.call(this, a, b); - } - function uVc(a, b) { - $r.call(this, a, b); - } - function hWc(a, b) { - $r.call(this, a, b); - } - function rWc(a, b) { - $r.call(this, a, b); - } - function kXc(a, b) { - $r.call(this, a, b); - } - function uXc(a, b) { - $r.call(this, a, b); - } - function AYc(a, b) { - $r.call(this, a, b); - } - function l$c(a, b) { - $r.call(this, a, b); - } - function Z$c(a, b) { - $r.call(this, a, b); - } - function D_c(a, b) { - $r.call(this, a, b); - } - function O_c(a, b) { - $r.call(this, a, b); - } - function c1c(a, b) { - $r.call(this, a, b); - } - function cVb(a, b) { - return uqb(a.c, b); - } - function nnc(a, b) { - return uqb(b.b, a); - } - function x1c(a, b) { - return -a.b.Je(b); - } - function D3c(a, b) { - return uqb(a.g, b); - } - function O5c(a, b) { - $r.call(this, a, b); - } - function a6c(a, b) { - $r.call(this, a, b); - } - function m2c(a, b) { - this.a = a; - this.b = b; - } - function W2c(a, b) { - this.a = a; - this.b = b; - } - function f7c(a, b) { - this.a = a; - this.b = b; - } - function G7c(a, b) { - $r.call(this, a, b); - } - function j8c(a, b) { - $r.call(this, a, b); - } - function iad(a, b) { - $r.call(this, a, b); - } - function rad(a, b) { - $r.call(this, a, b); - } - function Bad(a, b) { - $r.call(this, a, b); - } - function Nad(a, b) { - $r.call(this, a, b); - } - function ibd(a, b) { - $r.call(this, a, b); - } - function tbd(a, b) { - $r.call(this, a, b); - } - function Ibd(a, b) { - $r.call(this, a, b); - } - function Ubd(a, b) { - $r.call(this, a, b); - } - function gcd(a, b) { - $r.call(this, a, b); - } - function scd(a, b) { - $r.call(this, a, b); - } - function Ycd(a, b) { - $r.call(this, a, b); - } - function udd(a, b) { - $r.call(this, a, b); - } - function Jdd(a, b) { - $r.call(this, a, b); - } - function Eed(a, b) { - $r.call(this, a, b); - } - function bfd(a, b) { - this.a = a; - this.b = b; - } - function dfd(a, b) { - this.a = a; - this.b = b; - } - function ffd(a, b) { - this.a = a; - this.b = b; - } - function Kfd(a, b) { - this.a = a; - this.b = b; - } - function Mfd(a, b) { - this.a = a; - this.b = b; - } - function Ofd(a, b) { - this.a = a; - this.b = b; - } - function vgd(a, b) { - this.a = a; - this.b = b; - } - function qgd(a, b) { - $r.call(this, a, b); - } - function jrd(a, b) { - this.a = a; - this.b = b; - } - function krd(a, b) { - this.a = a; - this.b = b; - } - function mrd(a, b) { - this.a = a; - this.b = b; - } - function nrd(a, b) { - this.a = a; - this.b = b; - } - function qrd(a, b) { - this.a = a; - this.b = b; - } - function rrd(a, b) { - this.a = a; - this.b = b; - } - function srd(a, b) { - this.b = a; - this.a = b; - } - function trd(a, b) { - this.b = a; - this.a = b; - } - function Drd(a, b) { - this.b = a; - this.a = b; - } - function Frd(a, b) { - this.b = a; - this.a = b; - } - function Hrd(a, b) { - this.a = a; - this.b = b; - } - function Jrd(a, b) { - this.a = a; - this.b = b; - } - function Ord(a, b) { - Xqd(a.a, BD(b, 56)); - } - function BIc(a, b) { - gIc(a.a, BD(b, 11)); - } - function fIc(a, b) { - FHc(); - return b != a; - } - function Arb() { - wrb(); - return new vrb(); - } - function CMc() { - wMc(); - this.b = new Tqb(); - } - function NNc() { - FNc(); - this.a = new Tqb(); - } - function eCc() { - ZBc(); - aCc.call(this); - } - function Dsd(a, b) { - $r.call(this, a, b); - } - function Urd(a, b) { - this.a = a; - this.b = b; - } - function Wrd(a, b) { - this.a = a; - this.b = b; - } - function kGd(a, b) { - this.a = a; - this.b = b; - } - function nGd(a, b) { - this.a = a; - this.b = b; - } - function bUd(a, b) { - this.a = a; - this.b = b; - } - function zVd(a, b) { - this.a = a; - this.b = b; - } - function C1d(a, b) { - this.d = a; - this.b = b; - } - function MLd(a, b) { - this.d = a; - this.e = b; - } - function Wud(a, b) { - this.f = a; - this.c = b; - } - function f7d(a, b) { - this.b = a; - this.c = b; - } - function _zd(a, b) { - this.i = a; - this.g = b; - } - function Y1d(a, b) { - this.e = a; - this.a = b; - } - function c8d(a, b) { - this.a = a; - this.b = b; - } - function $Id(a, b) { - a.i = null; - _Id(a, b); - } - function ivd(a, b) { - !!a && Rhb(cvd, a, b); - } - function hCd(a, b) { - return qAd(a.a, b); - } - function e7d(a) { - return R2d(a.c, a.b); - } - function Wd(a) { - return !a ? null : a.dd(); - } - function PD(a) { - return a == null ? null : a; - } - function KD(a) { - return typeof a === Khe; - } - function LD(a) { - return typeof a === Lhe; - } - function ND(a) { - return typeof a === Mhe; - } - function Em(a, b) { - return a.Hd().Xb(b); - } - function Kq(a, b) { - return hr(a.Kc(), b); - } - function Bbb(a, b) { - return ybb(a, b) == 0; - } - function Ebb(a, b) { - return ybb(a, b) >= 0; - } - function Kbb(a, b) { - return ybb(a, b) != 0; - } - function Jdb(a) { - return "" + (uCb(a), a); - } - function pfb(a, b) { - return a.substr(b); - } - function cg(a) { - ag(a); - return a.d.gc(); - } - function oVb(a) { - pVb(a, a.c); - return a; - } - function RD(a) { - CCb(a == null); - return a; - } - function Dfb(a, b) { - a.a += "" + b; - return a; - } - function Efb(a, b) { - a.a += "" + b; - return a; - } - function Nfb(a, b) { - a.a += "" + b; - return a; - } - function Pfb(a, b) { - a.a += "" + b; - return a; - } - function Qfb(a, b) { - a.a += "" + b; - return a; - } - function Mfb(a, b) { - return a.a += "" + b, a; - } - function Esb(a, b) { - Gsb(a, b, a.a, a.a.a); - } - function Fsb(a, b) { - Gsb(a, b, a.c.b, a.c); - } - function Mqd(a, b, c) { - Rpd(b, kqd(a, c)); - } - function Nqd(a, b, c) { - Rpd(b, kqd(a, c)); - } - function Dhe(a, b) { - Hhe(new Fyd(a), b); - } - function cB(a, b) { - a.q.setTime(Sbb(b)); - } - function fvb(a, b) { - bvb.call(this, a, b); - } - function jvb(a, b) { - bvb.call(this, a, b); - } - function nvb(a, b) { - bvb.call(this, a, b); - } - function Nqb(a) { - Uhb(this); - Ld(this, a); - } - function wmb(a) { - tCb(a, 0); - return null; - } - function X6c(a) { - a.a = 0; - a.b = 0; - return a; - } - function f3c(a, b) { - a.a = b.g + 1; - return a; - } - function PJc(a, b) { - return a.j[b.p] == 2; - } - function _Pb(a) { - return VPb(BD(a, 79)); - } - function yJb() { - yJb = ccb; - xJb = as(wJb()); - } - function Y8b() { - Y8b = ccb; - X8b = as(W8b()); - } - function mt() { - this.b = new Mqb(Cv(12)); - } - function Otb() { - this.b = 0; - this.a = false; - } - function Wtb() { - this.b = 0; - this.a = false; - } - function sl(a) { - this.a = a; - ol.call(this); - } - function vl(a) { - this.a = a; - ol.call(this); - } - function Nsd(a, b) { - Msd.call(this, a, b); - } - function $zd(a, b) { - Cyd.call(this, a, b); - } - function nNd(a, b) { - _zd.call(this, a, b); - } - function s4d(a, b) { - p4d.call(this, a, b); - } - function w4d(a, b) { - qRd.call(this, a, b); - } - function rEd(a, b) { - pEd(); - Rhb(oEd, a, b); - } - function lcb(a, b) { - return qfb(a.a, 0, b); - } - function ww(a, b) { - return a.a.a.a.cc(b); - } - function mb(a, b) { - return PD(a) === PD(b); - } - function Mdb(a, b) { - return Kdb(a.a, b.a); - } - function $db(a, b) { - return beb(a.a, b.a); - } - function seb(a, b) { - return ueb(a.a, b.a); - } - function hfb(a, b) { - return a.indexOf(b); - } - function Ny(a, b) { - return a == b ? 0 : a ? 1 : -1; - } - function kB(a) { - return a < 10 ? "0" + a : "" + a; - } - function Mq(a) { - return Qb(a), new sl(a); - } - function SC(a) { - return TC(a.l, a.m, a.h); - } - function Hdb(a) { - return QD((uCb(a), a)); - } - function Idb(a) { - return QD((uCb(a), a)); - } - function NIb(a, b) { - return beb(a.g, b.g); - } - function Fbb(a) { - return typeof a === Lhe; - } - function mWb(a) { - return a == hWb || a == kWb; - } - function nWb(a) { - return a == hWb || a == iWb; - } - function G1b(a) { - return Jkb(a.b.b, a, 0); - } - function lrb(a) { - this.a = Arb(); - this.b = a; - } - function Frb(a) { - this.a = Arb(); - this.b = a; - } - function swb(a, b) { - Ekb(a.a, b); - return b; - } - function Z1c(a, b) { - Ekb(a.c, b); - return a; - } - function E2c(a, b) { - d3c(a.a, b); - return a; - } - function _gc(a, b) { - Hgc(); - return b.a += a; - } - function bhc(a, b) { - Hgc(); - return b.a += a; - } - function ahc(a, b) { - Hgc(); - return b.c += a; - } - function Nlb(a, b) { - Klb(a, 0, a.length, b); - } - function zsb() { - Wqb.call(this, new $rb()); - } - function I_b() { - B_b.call(this, 0, 0, 0, 0); - } - function I6c() { - J6c.call(this, 0, 0, 0, 0); - } - function g7c(a) { - this.a = a.a; - this.b = a.b; - } - function fad(a) { - return a == aad || a == bad; - } - function gad(a) { - return a == dad || a == _9c; - } - function Jzc(a) { - return a == Fzc || a == Ezc; - } - function fcd(a) { - return a != bcd && a != ccd; - } - function oid(a) { - return a.Lg() && a.Mg(); - } - function Gfd(a) { - return Kkd(BD(a, 118)); - } - function k3c(a) { - return d3c(new j3c(), a); - } - function y2d(a, b) { - return new p4d(b, a); - } - function z2d(a, b) { - return new p4d(b, a); - } - function ukd(a, b, c) { - vkd(a, b); - wkd(a, c); - } - function _kd(a, b, c) { - cld(a, b); - ald(a, c); - } - function bld(a, b, c) { - dld(a, b); - eld(a, c); - } - function gmd(a, b, c) { - hmd(a, b); - imd(a, c); - } - function nmd(a, b, c) { - omd(a, b); - pmd(a, c); - } - function iKd(a, b) { - $Jd(a, b); - _Jd(a, a.D); - } - function _ud(a) { - Wud.call(this, a, true); - } - function Xg(a, b, c) { - Vg.call(this, a, b, c); - } - function Ygb(a) { - Hgb(); - Zgb.call(this, a); - } - function rxb() { - mxb.call(this, "Head", 1); - } - function wxb() { - mxb.call(this, "Tail", 3); - } - function Ckb(a) { - a.c = KC(SI, Uhe, 1, 0, 5, 1); - } - function Vjb(a) { - a.a = KC(SI, Uhe, 1, 8, 5, 1); - } - function MGb(a) { - Hkb(a.xf(), new QGb(a)); - } - function xtb(a) { - return a != null ? tb(a) : 0; - } - function b2b(a, b) { - return ntd(b, mpd(a)); - } - function c2b(a, b) { - return ntd(b, mpd(a)); - } - function dAb(a, b) { - return a[a.length] = b; - } - function gAb(a, b) { - return a[a.length] = b; - } - function Vq(a) { - return lr(a.b.Kc(), a.a); - } - function dqd(a, b) { - return _o(qo(a.d), b); - } - function eqd(a, b) { - return _o(qo(a.g), b); - } - function fqd(a, b) { - return _o(qo(a.j), b); - } - function Osd(a, b) { - Msd.call(this, a.b, b); - } - function q0b(a) { - B_b.call(this, a, a, a, a); - } - function HOb(a) { - a.b && LOb(a); - return a.a; - } - function IOb(a) { - a.b && LOb(a); - return a.c; - } - function uyb(a, b) { - if (lyb) { - return; - } - a.b = b; - } - function lzd(a, b, c) { - NC(a, b, c); - return c; - } - function mBc(a, b, c) { - NC(a.c[b.g], b.g, c); - } - function _Hd(a, b, c) { - BD(a.c, 69).Xh(b, c); - } - function wfd(a, b, c) { - bld(c, c.i + a, c.j + b); - } - function UOd(a, b) { - wtd(VKd(a.a), XOd(b)); - } - function bTd(a, b) { - wtd(QSd(a.a), eTd(b)); - } - function Lge(a) { - wfe(); - xfe.call(this, a); - } - function CAd(a) { - return a == null ? 0 : tb(a); - } - function fNc() { - fNc = ccb; - eNc = new Rpb(v1); - } - function h0d() { - h0d = ccb; - new i0d(); - new Rkb(); - } - function i0d() { - new Lqb(); - new Lqb(); - new Lqb(); - } - function GA() { - GA = ccb; - fA(); - FA = new Lqb(); - } - function Iy() { - Iy = ccb; - $wnd.Math.log(2); - } - function UVd() { - UVd = ccb; - TVd = (AFd(), zFd); - } - function _ge() { - throw vbb(new cgb(Cxe)); - } - function ohe() { - throw vbb(new cgb(Cxe)); - } - function che() { - throw vbb(new cgb(Dxe)); - } - function rhe() { - throw vbb(new cgb(Dxe)); - } - function Mg(a) { - this.a = a; - Gg.call(this, a); - } - function up(a) { - this.a = a; - rf.call(this, a); - } - function Bp(a) { - this.a = a; - rf.call(this, a); - } - function Okb(a, b) { - Mlb(a.c, a.c.length, b); - } - function llb(a) { - return a.a < a.c.c.length; - } - function Eqb(a) { - return a.a < a.c.a.length; - } - function Ntb(a, b) { - return a.a ? a.b : b.De(); - } - function beb(a, b) { - return a < b ? -1 : a > b ? 1 : 0; - } - function Deb(a, b) { - return ybb(a, b) > 0 ? a : b; - } - function TC(a, b, c) { - return { l: a, m: b, h: c }; - } - function Ctb(a, b) { - a.a != null && BIc(b, a.a); - } - function Csb(a) { - a.a = new jtb(); - a.c = new jtb(); - } - function hDb(a) { - this.b = a; - this.a = new Rkb(); - } - function dOb(a) { - this.b = new pOb(); - this.a = a; - } - function q_b(a) { - n_b.call(this); - this.a = a; - } - function txb() { - mxb.call(this, "Range", 2); - } - function bUb() { - ZTb(); - this.a = new L2c(zP); - } - function Bh(a, b) { - Qb(b); - Ah(a).Jc(new Vw()); - } - function fKc(a, b) { - FJc(); - return b.n.b += a; - } - function Tgc(a, b, c) { - return Rhb(a.g, c, b); - } - function LJc(a, b, c) { - return Rhb(a.k, c, b); - } - function r1c(a, b) { - return Rhb(a.a, b.a, b); - } - function jBc(a, b, c) { - return hBc(b, c, a.c); - } - function E6c(a) { - return new f7c(a.c, a.d); - } - function F6c(a) { - return new f7c(a.c, a.d); - } - function R6c(a) { - return new f7c(a.a, a.b); - } - function CQd(a, b) { - return hA(a.a, b, null); - } - function fec(a) { - QZb(a, null); - RZb(a, null); - } - function AOc(a) { - BOc(a, null); - COc(a, null); - } - function u4d() { - qRd.call(this, null, null); - } - function y4d() { - RRd.call(this, null, null); - } - function a7d(a) { - this.a = a; - Lqb.call(this); - } - function Pp(a) { - this.b = (mmb(), new iob(a)); - } - function Py(a) { - a.j = KC(VI, nie, 310, 0, 0, 1); - } - function oAd(a, b, c) { - a.c.Vc(b, BD(c, 133)); - } - function GAd(a, b, c) { - a.c.ji(b, BD(c, 133)); - } - function JLd(a, b) { - Uxd(a); - a.Gc(BD(b, 15)); - } - function b7d(a, b) { - return t2d(a.c, a.b, b); - } - function Bv(a, b) { - return new Qv(a.Kc(), b); - } - function Lq(a, b) { - return rr(a.Kc(), b) != -1; - } - function Sqb(a, b) { - return a.a.Bc(b) != null; - } - function pr(a) { - return a.Ob() ? a.Pb() : null; - } - function yfb(a) { - return zfb(a, 0, a.length); - } - function JD(a, b) { - return a != null && AD(a, b); - } - function $A(a, b) { - a.q.setHours(b); - YA(a, b); - } - function Yrb(a, b) { - if (a.c) { - jsb(b); - isb(b); - } - } - function nk(a, b, c) { - BD(a.Kb(c), 164).Nb(b); - } - function RJc(a, b, c) { - SJc(a, b, c); - return c; - } - function Eub(a, b, c) { - a.a = b ^ 1502; - a.b = c ^ kke; - } - function xHb(a, b, c) { - return a.a[b.g][c.g]; - } - function REc(a, b) { - return a.a[b.c.p][b.p]; - } - function aEc(a, b) { - return a.e[b.c.p][b.p]; - } - function tEc(a, b) { - return a.c[b.c.p][b.p]; - } - function OJc(a, b) { - return a.j[b.p] = aKc(b); - } - function k5c(a, b) { - return cfb(a.f, b.tg()); - } - function Isd(a, b) { - return cfb(a.b, b.tg()); - } - function Sfd(a, b) { - return a.a < Kcb(b) ? -1 : 1; - } - function ZDc(a, b, c) { - return c ? b != 0 : b != a - 1; - } - function _6c(a, b, c) { - a.a = b; - a.b = c; - return a; - } - function Y6c(a, b) { - a.a *= b; - a.b *= b; - return a; - } - function mud(a, b, c) { - NC(a.g, b, c); - return c; - } - function CHb(a, b, c, d) { - NC(a.a[b.g], c.g, d); - } - function EQb(a, b) { - O6c(b, a.a.a.a, a.a.a.b); - } - function Ozd(a) { - a.a = BD(Ajd(a.b.a, 4), 126); - } - function Wzd(a) { - a.a = BD(Ajd(a.b.a, 4), 126); - } - function otd(a) { - ytb(a, hue); - Rld(a, gtd(a)); - } - function Atb() { - Atb = ccb; - ztb = new Ftb(null); - } - function Ivb() { - Ivb = ccb; - Ivb(); - Hvb = new Ovb(); - } - function FId() { - this.Bb |= 256; - this.Bb |= 512; - } - function Fyd(a) { - this.i = a; - this.f = this.i.j; - } - function xMd(a, b, c) { - pMd.call(this, a, b, c); - } - function BMd(a, b, c) { - xMd.call(this, a, b, c); - } - function K4d(a, b, c) { - xMd.call(this, a, b, c); - } - function N4d(a, b, c) { - BMd.call(this, a, b, c); - } - function X4d(a, b, c) { - pMd.call(this, a, b, c); - } - function _4d(a, b, c) { - pMd.call(this, a, b, c); - } - function C4d(a, b, c) { - k2d.call(this, a, b, c); - } - function G4d(a, b, c) { - k2d.call(this, a, b, c); - } - function I4d(a, b, c) { - C4d.call(this, a, b, c); - } - function c5d(a, b, c) { - X4d.call(this, a, b, c); - } - function zf(a, b) { - this.a = a; - rf.call(this, b); - } - function aj(a, b) { - this.a = a; - pc.call(this, b); - } - function kj(a, b) { - this.a = a; - pc.call(this, b); - } - function Jj(a, b) { - this.a = a; - pc.call(this, b); - } - function Rj(a) { - this.a = a; - sj.call(this, a.d); - } - function she(a) { - this.c = a; - this.a = this.c.a; - } - function xl(a, b) { - this.a = b; - pc.call(this, a); - } - function Qo(a, b) { - this.a = b; - Lo.call(this, a); - } - function op(a, b) { - this.a = a; - Lo.call(this, b); - } - function rj(a, b) { - return Rl(Xm(a.c)).Xb(b); - } - function Eb(a, b) { - return Db(a, new Ufb(), b).a; - } - function ur(a, b) { - Qb(b); - return new Gr(a, b); - } - function Gr(a, b) { - this.a = b; - Br.call(this, a); - } - function Hs(a) { - this.b = a; - this.a = this.b.a.e; - } - function Eg(a) { - a.b.Qb(); - --a.d.f.d; - bg(a.d); - } - function Uk(a) { - Fk.call(this, BD(Qb(a), 35)); - } - function il(a) { - Fk.call(this, BD(Qb(a), 35)); - } - function is() { - $r.call(this, "INSTANCE", 0); - } - function Lb(a) { - if (!a) { - throw vbb(new Vdb()); - } - } - function Ub(a) { - if (!a) { - throw vbb(new Ydb()); - } - } - function ot(a) { - if (!a) { - throw vbb(new utb()); - } - } - function I6d() { - I6d = ccb; - g5d(); - H6d = new J6d(); - } - function Bcb() { - Bcb = ccb; - zcb = false; - Acb = true; - } - function Jfb(a) { - mcb.call(this, (uCb(a), a)); - } - function Wfb(a) { - mcb.call(this, (uCb(a), a)); - } - function Inb(a) { - lnb.call(this, a); - this.a = a; - } - function Xnb(a) { - Dnb.call(this, a); - this.a = a; - } - function Zob(a) { - zob.call(this, a); - this.a = a; - } - function Xy() { - Py(this); - Ry(this); - this._d(); - } - function Qv(a, b) { - this.a = b; - Br.call(this, a); - } - function au(a, b) { - return new xu(a.a, a.b, b); - } - function kfb(a, b) { - return a.lastIndexOf(b); - } - function ifb(a, b, c) { - return a.indexOf(b, c); - } - function xfb(a) { - return a == null ? Xhe : fcb(a); - } - function nz(a) { - return a == null ? null : a.name; - } - function Etb(a) { - return a.a != null ? a.a : null; - } - function or(a) { - return Wsb(a.a) ? nr(a) : null; - } - function Fxb(a, b) { - return Jwb(a.a, b) != null; - } - function uqb(a, b) { - return !!b && a.b[b.g] == b; - } - function FCb(a) { - return a.$H || (a.$H = ++ECb); - } - function aD(a) { - return a.l + a.m * Hje + a.h * Ije; - } - function pDb(a, b) { - Ekb(b.a, a.a); - return a.a; - } - function vDb(a, b) { - Ekb(b.b, a.a); - return a.a; - } - function nGb(a, b) { - Ekb(b.a, a.a); - return a.a; - } - function Btb(a) { - sCb(a.a != null); - return a.a; - } - function Asb(a) { - Wqb.call(this, new _rb(a)); - } - function GUb(a, b) { - HUb.call(this, a, b, null); - } - function cxb(a) { - this.a = a; - Bjb.call(this, a); - } - function CKb() { - CKb = ccb; - BKb = new Msd(tle, 0); - } - function NFb(a, b) { - ++a.b; - return Ekb(a.a, b); - } - function OFb(a, b) { - ++a.b; - return Lkb(a.a, b); - } - function n6b(a, b) { - return Kdb(a.n.a, b.n.a); - } - function WKb(a, b) { - return Kdb(a.c.d, b.c.d); - } - function gLb(a, b) { - return Kdb(a.c.c, b.c.c); - } - function zXb(a, b) { - return BD(Qc(a.b, b), 15); - } - function s7b(a, b) { - return a.n.b = (uCb(b), b); - } - function t7b(a, b) { - return a.n.b = (uCb(b), b); - } - function a1b(a) { - return llb(a.a) || llb(a.b); - } - function fBc(a, b, c) { - return gBc(a, b, c, a.b); - } - function iBc(a, b, c) { - return gBc(a, b, c, a.c); - } - function i3c(a, b, c) { - BD(B2c(a, b), 21).Fc(c); - } - function xBd(a, b, c) { - vAd(a.a, c); - uAd(a.a, b); - } - function qRd(a, b) { - nRd(); - this.a = a; - this.b = b; - } - function RRd(a, b) { - LRd(); - this.b = a; - this.c = b; - } - function hhd(a, b) { - Rgd(); - this.f = b; - this.d = a; - } - function qc(a, b) { - Sb(b, a); - this.d = a; - this.c = b; - } - function n5b(a) { - var b; - b = a.a; - a.a = a.b; - a.b = b; - } - function chc(a) { - Hgc(); - return !!a && !a.dc(); - } - function Afe(a) { - ++vfe; - return new lge(3, a); - } - function jm(a, b) { - return new Vp(a, a.gc(), b); - } - function ns(a) { - hs(); - return es((qs(), ps), a); - } - function Oyd(a) { - this.d = a; - Fyd.call(this, a); - } - function $yd(a) { - this.c = a; - Fyd.call(this, a); - } - function bzd(a) { - this.c = a; - Oyd.call(this, a); - } - function sgc() { - qgc(); - this.b = new ygc(this); - } - function Pu(a) { - Xj(a, Jie); - return new Skb(a); - } - function Vz(a) { - Rz(); - return parseInt(a) || -1; - } - function qfb(a, b, c) { - return a.substr(b, c - b); - } - function gfb(a, b, c) { - return ifb(a, wfb(b), c); - } - function Pkb(a) { - return ZBb(a.c, a.c.length); - } - function Yr(a) { - return a.f != null ? a.f : "" + a.g; - } - function Zr(a) { - return a.f != null ? a.f : "" + a.g; - } - function Hsb(a) { - sCb(a.b != 0); - return a.a.a.c; - } - function Isb(a) { - sCb(a.b != 0); - return a.c.b.c; - } - function Cmd(a) { - JD(a, 150) && BD(a, 150).Gh(); - } - function Wwb(a) { - return a.b = BD(tib(a.a), 42); - } - function Ptb(a) { - Ltb(); - this.b = a; - this.a = true; - } - function Xtb(a) { - Utb(); - this.b = a; - this.a = true; - } - function Trb(a) { - a.d = new ksb(a); - a.e = new Lqb(); - } - function mkb(a) { - if (!a) { - throw vbb(new Apb()); - } - } - function lCb(a) { - if (!a) { - throw vbb(new Vdb()); - } - } - function yCb(a) { - if (!a) { - throw vbb(new Ydb()); - } - } - function qCb(a) { - if (!a) { - throw vbb(new tcb()); - } - } - function sCb(a) { - if (!a) { - throw vbb(new utb()); - } - } - function ksb(a) { - lsb.call(this, a, null, null); - } - function dPb() { - $r.call(this, "POLYOMINO", 0); - } - function Cg(a, b, c, d) { - qg.call(this, a, b, c, d); - } - function zkc(a, b) { - gkc(); - return Rc(a, b.e, b); - } - function azc(a, b, c) { - Vyc(); - return c.qg(a, b); - } - function wNb(a, b) { - return !!a.q && Mhb(a.q, b); - } - function JRb(a, b) { - return a > 0 ? b * b / a : b * b * 100; - } - function CRb(a, b) { - return a > 0 ? b / (a * a) : b * 100; - } - function G2c(a, b, c) { - return Ekb(b, I2c(a, c)); - } - function t3c(a, b, c) { - p3c(); - a.Xe(b) && c.td(a); - } - function St(a, b, c) { - var d; - d = a.Zc(b); - d.Rb(c); - } - function O6c(a, b, c) { - a.a += b; - a.b += c; - return a; - } - function Z6c(a, b, c) { - a.a *= b; - a.b *= c; - return a; - } - function b7c(a, b, c) { - a.a -= b; - a.b -= c; - return a; - } - function a7c(a, b) { - a.a = b.a; - a.b = b.b; - return a; - } - function V6c(a) { - a.a = -a.a; - a.b = -a.b; - return a; - } - function Dic(a) { - this.c = a; - this.a = 1; - this.b = 1; - } - function xed(a) { - this.c = a; - dld(a, 0); - eld(a, 0); - } - function u7c(a) { - Psb.call(this); - n7c(this, a); - } - function AXb(a) { - xXb(); - yXb(this); - this.mf(a); - } - function GRd(a, b) { - nRd(); - qRd.call(this, a, b); - } - function dSd(a, b) { - LRd(); - RRd.call(this, a, b); - } - function hSd(a, b) { - LRd(); - RRd.call(this, a, b); - } - function fSd(a, b) { - LRd(); - dSd.call(this, a, b); - } - function sId(a, b, c) { - dId.call(this, a, b, c, 2); - } - function zXd(a, b) { - UVd(); - nXd.call(this, a, b); - } - function BXd(a, b) { - UVd(); - zXd.call(this, a, b); - } - function DXd(a, b) { - UVd(); - zXd.call(this, a, b); - } - function FXd(a, b) { - UVd(); - DXd.call(this, a, b); - } - function PXd(a, b) { - UVd(); - nXd.call(this, a, b); - } - function RXd(a, b) { - UVd(); - PXd.call(this, a, b); - } - function XXd(a, b) { - UVd(); - nXd.call(this, a, b); - } - function pAd(a, b) { - return a.c.Fc(BD(b, 133)); - } - function w1d(a, b, c) { - return V1d(p1d(a, b), c); - } - function N2d(a, b, c) { - return b.Qk(a.e, a.c, c); - } - function P2d(a, b, c) { - return b.Rk(a.e, a.c, c); - } - function a3d(a, b) { - return xid(a.e, BD(b, 49)); - } - function aTd(a, b, c) { - vtd(QSd(a.a), b, eTd(c)); - } - function TOd(a, b, c) { - vtd(VKd(a.a), b, XOd(c)); - } - function ypb(a, b) { - b.$modCount = a.$modCount; - } - function MUc() { - MUc = ccb; - LUc = new Lsd("root"); - } - function LCd() { - LCd = ccb; - KCd = new lDd(); - new NDd(); - } - function KVc() { - this.a = new Hp(); - this.b = new Hp(); - } - function FUd() { - hJd.call(this); - this.Bb |= Tje; - } - function t_c() { - $r.call(this, "GROW_TREE", 0); - } - function C9d(a) { - return a == null ? null : cde(a); - } - function G9d(a) { - return a == null ? null : jde(a); - } - function J9d(a) { - return a == null ? null : fcb(a); - } - function K9d(a) { - return a == null ? null : fcb(a); - } - function fdb(a) { - if (a.o != null) { - return; - } - vdb(a); - } - function DD(a) { - CCb(a == null || KD(a)); - return a; - } - function ED(a) { - CCb(a == null || LD(a)); - return a; - } - function GD(a) { - CCb(a == null || ND(a)); - return a; - } - function gB(a) { - this.q = new $wnd.Date(Sbb(a)); - } - function Mf(a, b) { - this.c = a; - ne.call(this, a, b); - } - function Sf(a, b) { - this.a = a; - Mf.call(this, a, b); - } - function Hg(a, b) { - this.d = a; - Dg(this); - this.b = b; - } - function bAb(a, b) { - Vzb.call(this, a); - this.a = b; - } - function vAb(a, b) { - Vzb.call(this, a); - this.a = b; - } - function sNb(a) { - pNb.call(this, 0, 0); - this.f = a; - } - function Vg(a, b, c) { - dg.call(this, a, b, c, null); - } - function Yg(a, b, c) { - dg.call(this, a, b, c, null); - } - function Pxb(a, b, c) { - return a.ue(b, c) <= 0 ? c : b; - } - function Qxb(a, b, c) { - return a.ue(b, c) <= 0 ? b : c; - } - function g4c(a, b) { - return BD(Wrb(a.b, b), 149); - } - function i4c(a, b) { - return BD(Wrb(a.c, b), 229); - } - function wic(a) { - return BD(Ikb(a.a, a.b), 287); - } - function B6c(a) { - return new f7c(a.c, a.d + a.a); - } - function eLc(a) { - return FJc(), Jzc(BD(a, 197)); - } - function $Jb() { - $Jb = ccb; - ZJb = pqb((tdd(), sdd)); - } - function fOb(a, b) { - b.a ? gOb(a, b) : Fxb(a.a, b.b); - } - function qyb(a, b) { - if (lyb) { - return; - } - Ekb(a.a, b); - } - function F2b(a, b) { - x2b(); - return f_b(b.d.i, a); - } - function _9b(a, b) { - I9b(); - return new gac(b, a); - } - function _Hb(a, b) { - ytb(b, lle); - a.f = b; - return a; - } - function Kld(a, b, c) { - c = _hd(a, b, 3, c); - return c; - } - function bmd(a, b, c) { - c = _hd(a, b, 6, c); - return c; - } - function kpd(a, b, c) { - c = _hd(a, b, 9, c); - return c; - } - function Cvd(a, b, c) { - ++a.j; - a.Ki(); - Atd(a, b, c); - } - function Avd(a, b, c) { - ++a.j; - a.Hi(b, a.oi(b, c)); - } - function bRd(a, b, c) { - var d; - d = a.Zc(b); - d.Rb(c); - } - function c7d(a, b, c) { - return C2d(a.c, a.b, b, c); - } - function DAd(a, b) { - return (b & Ohe) % a.d.length; - } - function Msd(a, b) { - Lsd.call(this, a); - this.a = b; - } - function uVd(a, b) { - lVd.call(this, a); - this.a = b; - } - function sYd(a, b) { - lVd.call(this, a); - this.a = b; - } - function zyd(a, b) { - this.c = a; - zud.call(this, b); - } - function YOd(a, b) { - this.a = a; - qOd.call(this, b); - } - function fTd(a, b) { - this.a = a; - qOd.call(this, b); - } - function Xp(a) { - this.a = (Xj(a, Jie), new Skb(a)); - } - function cq(a) { - this.a = (Xj(a, Jie), new Skb(a)); - } - function LA(a) { - !a.a && (a.a = new VA()); - return a.a; - } - function XMb(a) { - if (a > 8) { - return 0; - } - return a + 1; - } - function Ecb(a, b) { - Bcb(); - return a == b ? 0 : a ? 1 : -1; - } - function Opb(a, b, c) { - return Npb(a, BD(b, 22), c); - } - function Bz(a, b, c) { - return a.apply(b, c); - var d; - } - function Sfb(a, b, c) { - a.a += zfb(b, 0, c); - return a; - } - function ijb(a, b) { - var c; - c = a.e; - a.e = b; - return c; - } - function trb(a, b) { - var c; - c = a[hke]; - c.call(a, b); - } - function urb(a, b) { - var c; - c = a[hke]; - c.call(a, b); - } - function Aib(a, b) { - a.a.Vc(a.b, b); - ++a.b; - a.c = -1; - } - function Urb(a) { - Uhb(a.e); - a.d.b = a.d; - a.d.a = a.d; - } - function _f(a) { - a.b ? _f(a.b) : a.f.c.zc(a.e, a.d); - } - function _Ab(a, b, c) { - EAb(); - MBb(a, b.Ce(a.a, c)); - } - function Bxb(a, b) { - return Vd(Cwb(a.a, b, true)); - } - function Cxb(a, b) { - return Vd(Dwb(a.a, b, true)); - } - function _Bb(a, b) { - return eCb(new Array(b), a); - } - function HD(a) { - return String.fromCharCode(a); - } - function mz(a) { - return a == null ? null : a.message; - } - function gRb() { - this.a = new Rkb(); - this.b = new Rkb(); - } - function iTb() { - this.a = new MQb(); - this.b = new tTb(); - } - function tDb() { - this.b = new d7c(); - this.c = new Rkb(); - } - function _Qb() { - this.d = new d7c(); - this.e = new d7c(); - } - function n_b() { - this.n = new d7c(); - this.o = new d7c(); - } - function $Gb() { - this.n = new p0b(); - this.i = new I6c(); - } - function sec() { - this.a = new Umc(); - this.b = new mnc(); - } - function NIc() { - this.a = new Rkb(); - this.d = new Rkb(); - } - function LDc() { - this.b = new Tqb(); - this.a = new Tqb(); - } - function hSc() { - this.b = new Lqb(); - this.a = new Lqb(); - } - function HRc() { - this.b = new tRc(); - this.a = new hRc(); - } - function aHb() { - $Gb.call(this); - this.a = new d7c(); - } - function Ywb(a) { - Zwb.call(this, a, (lxb(), hxb)); - } - function J_b(a, b, c, d) { - B_b.call(this, a, b, c, d); - } - function sqd(a, b, c) { - c != null && kmd(b, Wqd(a, c)); - } - function tqd(a, b, c) { - c != null && lmd(b, Wqd(a, c)); - } - function Tod(a, b, c) { - c = _hd(a, b, 11, c); - return c; - } - function P6c(a, b) { - a.a += b.a; - a.b += b.b; - return a; - } - function c7c(a, b) { - a.a -= b.a; - a.b -= b.b; - return a; - } - function u7b(a, b) { - return a.n.a = (uCb(b), b) + 10; - } - function v7b(a, b) { - return a.n.a = (uCb(b), b) + 10; - } - function dLd(a, b) { - return b == a || pud(UKd(b), a); - } - function PYd(a, b) { - return Rhb(a.a, b, "") == null; - } - function E2b(a, b) { - x2b(); - return !f_b(b.d.i, a); - } - function rjc(a, b) { - fad(a.f) ? sjc(a, b) : tjc(a, b); - } - function h1d(a, b) { - var c; - c = b.Hh(a.a); - return c; - } - function Cyd(a, b) { - qcb.call(this, gve + a + mue + b); - } - function gUd(a, b, c, d) { - cUd.call(this, a, b, c, d); - } - function Q4d(a, b, c, d) { - cUd.call(this, a, b, c, d); - } - function U4d(a, b, c, d) { - Q4d.call(this, a, b, c, d); - } - function n5d(a, b, c, d) { - i5d.call(this, a, b, c, d); - } - function p5d(a, b, c, d) { - i5d.call(this, a, b, c, d); - } - function v5d(a, b, c, d) { - i5d.call(this, a, b, c, d); - } - function t5d(a, b, c, d) { - p5d.call(this, a, b, c, d); - } - function A5d(a, b, c, d) { - p5d.call(this, a, b, c, d); - } - function y5d(a, b, c, d) { - v5d.call(this, a, b, c, d); - } - function D5d(a, b, c, d) { - A5d.call(this, a, b, c, d); - } - function d6d(a, b, c, d) { - Y5d.call(this, a, b, c, d); - } - function Vp(a, b, c) { - this.a = a; - qc.call(this, b, c); - } - function tk(a, b, c) { - this.c = b; - this.b = c; - this.a = a; - } - function ik(a, b, c) { - return a.d = BD(b.Kb(c), 164); - } - function j6d(a, b) { - return a.Aj().Nh().Kh(a, b); - } - function h6d(a, b) { - return a.Aj().Nh().Ih(a, b); - } - function Fdb(a, b) { - return uCb(a), PD(a) === PD(b); - } - function dfb(a, b) { - return uCb(a), PD(a) === PD(b); - } - function Dxb(a, b) { - return Vd(Cwb(a.a, b, false)); - } - function Exb(a, b) { - return Vd(Dwb(a.a, b, false)); - } - function vBb(a, b) { - return a.b.sd(new yBb(a, b)); - } - function BBb(a, b) { - return a.b.sd(new EBb(a, b)); - } - function HBb(a, b) { - return a.b.sd(new KBb(a, b)); - } - function lfb(a, b, c) { - return a.lastIndexOf(b, c); - } - function uTb(a, b, c) { - return Kdb(a[b.b], a[c.b]); - } - function RTb(a, b) { - return yNb(b, (Nyc(), Cwc), a); - } - function fmc(a, b) { - return beb(b.a.d.p, a.a.d.p); - } - function emc(a, b) { - return beb(a.a.d.p, b.a.d.p); - } - function _Oc(a, b) { - return Kdb(a.c - a.s, b.c - b.s); - } - function S_b(a) { - return !a.c ? -1 : Jkb(a.c.a, a, 0); - } - function Vxd(a) { - return a < 100 ? null : new Ixd(a); - } - function ecd(a) { - return a == Zbd || a == _bd || a == $bd; - } - function zAd(a, b) { - return JD(b, 15) && Btd(a.c, b); - } - function vyb(a, b) { - if (lyb) { - return; - } - !!b && (a.d = b); - } - function ujb(a, b) { - var c; - c = b; - return !!Awb(a, c); - } - function czd(a, b) { - this.c = a; - Pyd.call(this, a, b); - } - function fBb(a) { - this.c = a; - nvb.call(this, rie, 0); - } - function Avb(a, b) { - Bvb.call(this, a, a.length, b); - } - function aId(a, b, c) { - return BD(a.c, 69).lk(b, c); - } - function bId(a, b, c) { - return BD(a.c, 69).mk(b, c); - } - function O2d(a, b, c) { - return N2d(a, BD(b, 332), c); - } - function Q2d(a, b, c) { - return P2d(a, BD(b, 332), c); - } - function i3d(a, b, c) { - return h3d(a, BD(b, 332), c); - } - function k3d(a, b, c) { - return j3d(a, BD(b, 332), c); - } - function tn(a, b) { - return b == null ? null : Hv(a.b, b); - } - function Kcb(a) { - return LD(a) ? (uCb(a), a) : a.ke(); - } - function Ldb(a) { - return !isNaN(a) && !isFinite(a); - } - function Wn(a) { - Ql(); - this.a = (mmb(), new zob(a)); - } - function dIc(a) { - FHc(); - this.d = a; - this.a = new jkb(); - } - function xqb(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function Nrb(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function $sb(a, b, c) { - this.d = a; - this.b = c; - this.a = b; - } - function Qsb(a) { - Csb(this); - Osb(this); - ye(this, a); - } - function Tkb(a) { - Ckb(this); - bCb(this.c, 0, a.Pc()); - } - function Xwb(a) { - uib(a.a); - Kwb(a.c, a.b); - a.b = null; - } - function iyb(a) { - this.a = a; - Zfb(); - Cbb(Date.now()); - } - function JCb() { - JCb = ccb; - GCb = new nb(); - ICb = new nb(); - } - function ntb() { - ntb = ccb; - ltb = new otb(); - mtb = new qtb(); - } - function kzd() { - kzd = ccb; - jzd = KC(SI, Uhe, 1, 0, 5, 1); - } - function tGd() { - tGd = ccb; - sGd = KC(SI, Uhe, 1, 0, 5, 1); - } - function $Gd() { - $Gd = ccb; - ZGd = KC(SI, Uhe, 1, 0, 5, 1); - } - function Ql() { - Ql = ccb; - new Zl((mmb(), mmb(), jmb)); - } - function pxb(a) { - lxb(); - return es((zxb(), yxb), a); - } - function Hyb(a) { - Fyb(); - return es((Kyb(), Jyb), a); - } - function OEb(a) { - MEb(); - return es((REb(), QEb), a); - } - function WEb(a) { - UEb(); - return es((ZEb(), YEb), a); - } - function tFb(a) { - rFb(); - return es((wFb(), vFb), a); - } - function iHb(a) { - gHb(); - return es((lHb(), kHb), a); - } - function PHb(a) { - NHb(); - return es((SHb(), RHb), a); - } - function GIb(a) { - EIb(); - return es((JIb(), IIb), a); - } - function vJb(a) { - qJb(); - return es((yJb(), xJb), a); - } - function xLb(a) { - vLb(); - return es((ALb(), zLb), a); - } - function TMb(a) { - RMb(); - return es((WMb(), VMb), a); - } - function TOb(a) { - ROb(); - return es((WOb(), VOb), a); - } - function ePb(a) { - cPb(); - return es((hPb(), gPb), a); - } - function ZRb(a) { - XRb(); - return es((aSb(), _Rb), a); - } - function ATb(a) { - yTb(); - return es((DTb(), CTb), a); - } - function sUb(a) { - qUb(); - return es((vUb(), uUb), a); - } - function rWb(a) { - lWb(); - return es((uWb(), tWb), a); - } - function TXb(a) { - RXb(); - return es((WXb(), VXb), a); - } - function Mb(a, b) { - if (!a) { - throw vbb(new Wdb(b)); - } - } - function l0b(a) { - j0b(); - return es((o0b(), n0b), a); - } - function r0b(a) { - B_b.call(this, a.d, a.c, a.a, a.b); - } - function K_b(a) { - B_b.call(this, a.d, a.c, a.a, a.b); - } - function mKb(a, b, c) { - this.b = a; - this.c = b; - this.a = c; - } - function BZb(a, b, c) { - this.b = a; - this.a = b; - this.c = c; - } - function TNb(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function uOb(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function S3b(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function Z6b(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function n9b(a, b, c) { - this.b = a; - this.a = b; - this.c = c; - } - function x$b(a, b, c) { - this.e = b; - this.b = a; - this.d = c; - } - function $Ab(a, b, c) { - EAb(); - a.a.Od(b, c); - return b; - } - function LGb(a) { - var b; - b = new KGb(); - b.e = a; - return b; - } - function iLb(a) { - var b; - b = new fLb(); - b.b = a; - return b; - } - function D6b() { - D6b = ccb; - B6b = new M6b(); - C6b = new P6b(); - } - function Hgc() { - Hgc = ccb; - Fgc = new ghc(); - Ggc = new ihc(); - } - function jbc(a) { - gbc(); - return es((mbc(), lbc), a); - } - function Cjc(a) { - Ajc(); - return es((Fjc(), Ejc), a); - } - function Clc(a) { - Alc(); - return es((Flc(), Elc), a); - } - function Cpc(a) { - Apc(); - return es((Fpc(), Epc), a); - } - function Kpc(a) { - Ipc(); - return es((Npc(), Mpc), a); - } - function Wpc(a) { - Rpc(); - return es((Zpc(), Ypc), a); - } - function $jc(a) { - Xjc(); - return es((bkc(), akc), a); - } - function Hkc(a) { - Fkc(); - return es((Kkc(), Jkc), a); - } - function dqc(a) { - bqc(); - return es((gqc(), fqc), a); - } - function rqc(a) { - mqc(); - return es((uqc(), tqc), a); - } - function zqc(a) { - xqc(); - return es((Cqc(), Bqc), a); - } - function Iqc(a) { - Gqc(); - return es((Lqc(), Kqc), a); - } - function Vqc(a) { - Sqc(); - return es((Yqc(), Xqc), a); - } - function brc(a) { - _qc(); - return es((erc(), drc), a); - } - function nrc(a) { - lrc(); - return es((qrc(), prc), a); - } - function Arc(a) { - yrc(); - return es((Drc(), Crc), a); - } - function Qrc(a) { - Orc(); - return es((Trc(), Src), a); - } - function Zrc(a) { - Xrc(); - return es((asc(), _rc), a); - } - function gsc(a) { - esc(); - return es((jsc(), isc), a); - } - function osc(a) { - msc(); - return es((rsc(), qsc), a); - } - function Etc(a) { - Ctc(); - return es((Htc(), Gtc), a); - } - function qzc(a) { - lzc(); - return es((tzc(), szc), a); - } - function Azc(a) { - xzc(); - return es((Dzc(), Czc), a); - } - function Mzc(a) { - Izc(); - return es((Pzc(), Ozc), a); - } - function MAc(a) { - KAc(); - return es((PAc(), OAc), a); - } - function mAc(a) { - kAc(); - return es((pAc(), oAc), a); - } - function vAc(a) { - tAc(); - return es((yAc(), xAc), a); - } - function DAc(a) { - BAc(); - return es((GAc(), FAc), a); - } - function VAc(a) { - TAc(); - return es((YAc(), XAc), a); - } - function $zc(a) { - Vzc(); - return es((bAc(), aAc), a); - } - function bBc(a) { - _Ac(); - return es((eBc(), dBc), a); - } - function vBc(a) { - tBc(); - return es((yBc(), xBc), a); - } - function EBc(a) { - CBc(); - return es((HBc(), GBc), a); - } - function NBc(a) { - LBc(); - return es((QBc(), PBc), a); - } - function tGc(a) { - rGc(); - return es((wGc(), vGc), a); - } - function WIc(a) { - UIc(); - return es((ZIc(), YIc), a); - } - function $Lc(a) { - YLc(); - return es((bMc(), aMc), a); - } - function gMc(a) { - eMc(); - return es((jMc(), iMc), a); - } - function JOc(a) { - HOc(); - return es((MOc(), LOc), a); - } - function HQc(a) { - FQc(); - return es((KQc(), JQc), a); - } - function DRc(a) { - yRc(); - return es((GRc(), FRc), a); - } - function tSc(a) { - qSc(); - return es((wSc(), vSc), a); - } - function UTc(a) { - STc(); - return es((XTc(), WTc), a); - } - function UUc(a) { - PUc(); - return es((XUc(), WUc), a); - } - function aUc(a) { - $Tc(); - return es((dUc(), cUc), a); - } - function wVc(a) { - tVc(); - return es((zVc(), yVc), a); - } - function iWc(a) { - fWc(); - return es((lWc(), kWc), a); - } - function sWc(a) { - pWc(); - return es((vWc(), uWc), a); - } - function lXc(a) { - iXc(); - return es((oXc(), nXc), a); - } - function vXc(a) { - sXc(); - return es((yXc(), xXc), a); - } - function BYc(a) { - zYc(); - return es((EYc(), DYc), a); - } - function m$c(a) { - k$c(); - return es((p$c(), o$c), a); - } - function $$c(a) { - Y$c(); - return es((b_c(), a_c), a); - } - function n_c(a) { - i_c(); - return es((q_c(), p_c), a); - } - function w_c(a) { - s_c(); - return es((z_c(), y_c), a); - } - function E_c(a) { - C_c(); - return es((H_c(), G_c), a); - } - function P_c(a) { - N_c(); - return es((S_c(), R_c), a); - } - function W0c(a) { - R0c(); - return es((Z0c(), Y0c), a); - } - function f1c(a) { - a1c(); - return es((i1c(), h1c), a); - } - function P5c(a) { - N5c(); - return es((S5c(), R5c), a); - } - function b6c(a) { - _5c(); - return es((e6c(), d6c), a); - } - function H7c(a) { - F7c(); - return es((K7c(), J7c), a); - } - function k8c(a) { - i8c(); - return es((n8c(), m8c), a); - } - function V8b(a) { - S8b(); - return es((Y8b(), X8b), a); - } - function A5b(a) { - y5b(); - return es((D5b(), C5b), a); - } - function jad(a) { - ead(); - return es((mad(), lad), a); - } - function sad(a) { - qad(); - return es((vad(), uad), a); - } - function Cad(a) { - Aad(); - return es((Fad(), Ead), a); - } - function Oad(a) { - Mad(); - return es((Rad(), Qad), a); - } - function jbd(a) { - hbd(); - return es((mbd(), lbd), a); - } - function ubd(a) { - rbd(); - return es((xbd(), wbd), a); - } - function Kbd(a) { - Hbd(); - return es((Nbd(), Mbd), a); - } - function Vbd(a) { - Tbd(); - return es((Ybd(), Xbd), a); - } - function hcd(a) { - dcd(); - return es((kcd(), jcd), a); - } - function vcd(a) { - rcd(); - return es((ycd(), xcd), a); - } - function vdd(a) { - tdd(); - return es((ydd(), xdd), a); - } - function Kdd(a) { - Idd(); - return es((Ndd(), Mdd), a); - } - function $cd(a) { - Ucd(); - return es((cdd(), bdd), a); - } - function Fed(a) { - Ded(); - return es((Ied(), Hed), a); - } - function rgd(a) { - pgd(); - return es((ugd(), tgd), a); - } - function Esd(a) { - Csd(); - return es((Hsd(), Gsd), a); - } - function Yoc(a, b) { - return (uCb(a), a) + (uCb(b), b); - } - function NNd(a, b) { - Zfb(); - return wtd(ZKd(a.a), b); - } - function SNd(a, b) { - Zfb(); - return wtd(ZKd(a.a), b); - } - function bPc(a, b) { - this.c = a; - this.a = b; - this.b = b - a; - } - function nYc(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function L1c(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function T1c(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function Rrd(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function zCd(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - } - function IVd(a, b, c) { - this.e = a; - this.a = b; - this.c = c; - } - function kWd(a, b, c) { - UVd(); - cWd.call(this, a, b, c); - } - function HXd(a, b, c) { - UVd(); - oXd.call(this, a, b, c); - } - function TXd(a, b, c) { - UVd(); - oXd.call(this, a, b, c); - } - function ZXd(a, b, c) { - UVd(); - oXd.call(this, a, b, c); - } - function JXd(a, b, c) { - UVd(); - HXd.call(this, a, b, c); - } - function LXd(a, b, c) { - UVd(); - HXd.call(this, a, b, c); - } - function NXd(a, b, c) { - UVd(); - LXd.call(this, a, b, c); - } - function VXd(a, b, c) { - UVd(); - TXd.call(this, a, b, c); - } - function _Xd(a, b, c) { - UVd(); - ZXd.call(this, a, b, c); - } - function $j(a, b) { - Qb(a); - Qb(b); - return new _j(a, b); - } - function Nq(a, b) { - Qb(a); - Qb(b); - return new Wq(a, b); - } - function Rq(a, b) { - Qb(a); - Qb(b); - return new ar(a, b); - } - function lr(a, b) { - Qb(a); - Qb(b); - return new zr(a, b); - } - function BD(a, b) { - CCb(a == null || AD(a, b)); - return a; - } - function Nu(a) { - var b; - b = new Rkb(); - fr(b, a); - return b; - } - function Ex(a) { - var b; - b = new Tqb(); - fr(b, a); - return b; - } - function Hx(a) { - var b; - b = new Gxb(); - Jq(b, a); - return b; - } - function Ru(a) { - var b; - b = new Psb(); - Jq(b, a); - return b; - } - function YEc(a) { - !a.e && (a.e = new Rkb()); - return a.e; - } - function SMd(a) { - !a.c && (a.c = new xYd()); - return a.c; - } - function Ekb(a, b) { - a.c[a.c.length] = b; - return true; - } - function WA(a, b) { - this.c = a; - this.b = b; - this.a = false; - } - function Gg(a) { - this.d = a; - Dg(this); - this.b = ed(a.d); - } - function pzb() { - this.a = ";,;"; - this.b = ""; - this.c = ""; - } - function Bvb(a, b, c) { - qvb.call(this, b, c); - this.a = a; - } - function fAb(a, b, c) { - this.b = a; - fvb.call(this, b, c); - } - function lsb(a, b, c) { - this.c = a; - pjb.call(this, b, c); - } - function bCb(a, b, c) { - $Bb(c, 0, a, b, c.length, false); - } - function HVb(a, b, c, d, e) { - a.b = b; - a.c = c; - a.d = d; - a.a = e; - } - function eBb(a, b) { - if (b) { - a.b = b; - a.a = (Tzb(b), b.a); - } - } - function v_b(a, b, c, d, e) { - a.d = b; - a.c = c; - a.a = d; - a.b = e; - } - function h5b(a) { - var b, c; - b = a.b; - c = a.c; - a.b = c; - a.c = b; - } - function k5b(a) { - var b, c; - c = a.d; - b = a.a; - a.d = b; - a.a = c; - } - function Lbb(a) { - return zbb(iD(Fbb(a) ? Rbb(a) : a)); - } - function rlc(a, b) { - return beb(D0b(a.d), D0b(b.d)); - } - function uic(a, b) { - return b == (Ucd(), Tcd) ? a.c : a.d; - } - function FHc() { - FHc = ccb; - DHc = (Ucd(), Tcd); - EHc = zcd; - } - function DRb() { - this.b = Edb(ED(Ksd((wSb(), vSb)))); - } - function aBb(a) { - return EAb(), KC(SI, Uhe, 1, a, 5, 1); - } - function C6c(a) { - return new f7c(a.c + a.b, a.d + a.a); - } - function Vmc(a, b) { - Imc(); - return beb(a.d.p, b.d.p); - } - function Lsb(a) { - sCb(a.b != 0); - return Nsb(a, a.a.a); - } - function Msb(a) { - sCb(a.b != 0); - return Nsb(a, a.c.b); - } - function rCb(a, b) { - if (!a) { - throw vbb(new ucb(b)); - } - } - function mCb(a, b) { - if (!a) { - throw vbb(new Wdb(b)); - } - } - function dWb(a, b, c) { - cWb.call(this, a, b); - this.b = c; - } - function pMd(a, b, c) { - MLd.call(this, a, b); - this.c = c; - } - function Dnc(a, b, c) { - Cnc.call(this, b, c); - this.d = a; - } - function _Gd(a) { - $Gd(); - MGd.call(this); - this.th(a); - } - function PNd(a, b, c) { - this.a = a; - nNd.call(this, b, c); - } - function UNd(a, b, c) { - this.a = a; - nNd.call(this, b, c); - } - function k2d(a, b, c) { - MLd.call(this, a, b); - this.c = c; - } - function y1d() { - T0d(); - z1d.call(this, (yFd(), xFd)); - } - function gFd(a) { - return a != null && !OEd(a, CEd, DEd); - } - function dFd(a, b) { - return (jFd(a) << 4 | jFd(b)) & aje; - } - function ln(a, b) { - return Vm(), Wj(a, b), new iy(a, b); - } - function Sdd(a, b) { - var c; - if (a.n) { - c = b; - Ekb(a.f, c); - } - } - function Upd(a, b, c) { - var d; - d = new yC(c); - cC(a, b, d); - } - function WUd(a, b) { - var c; - c = a.c; - VUd(a, b); - return c; - } - function Ydd(a, b) { - b < 0 ? a.g = -1 : a.g = b; - return a; - } - function $6c(a, b) { - W6c(a); - a.a *= b; - a.b *= b; - return a; - } - function G6c(a, b, c, d, e) { - a.c = b; - a.d = c; - a.b = d; - a.a = e; - } - function Dsb(a, b) { - Gsb(a, b, a.c.b, a.c); - return true; - } - function jsb(a) { - a.a.b = a.b; - a.b.a = a.a; - a.a = a.b = null; - } - function Aq(a) { - this.b = a; - this.a = Wm(this.b.a).Ed(); - } - function Wq(a, b) { - this.b = a; - this.a = b; - ol.call(this); - } - function ar(a, b) { - this.a = a; - this.b = b; - ol.call(this); - } - function vvb(a, b) { - qvb.call(this, b, 1040); - this.a = a; - } - function Eeb(a) { - return a == 0 || isNaN(a) ? a : a < 0 ? -1 : 1; - } - function WPb(a) { - QPb(); - return jtd(a) == Xod(ltd(a)); - } - function XPb(a) { - QPb(); - return ltd(a) == Xod(jtd(a)); - } - function iYb(a, b) { - return hYb(a, new cWb(b.a, b.b)); - } - function NZb(a) { - return !OZb(a) && a.c.i.c == a.d.i.c; - } - function _Gb(a) { - var b; - b = a.n; - return a.a.b + b.d + b.a; - } - function YHb(a) { - var b; - b = a.n; - return a.e.b + b.d + b.a; - } - function ZHb(a) { - var b; - b = a.n; - return a.e.a + b.b + b.c; - } - function zfe(a) { - wfe(); - ++vfe; - return new ige(0, a); - } - function o_b(a) { - if (a.a) { - return a.a; - } - return JZb(a); - } - function CCb(a) { - if (!a) { - throw vbb(new Cdb(null)); - } - } - function X6d() { - X6d = ccb; - W6d = (mmb(), new anb(Fwe)); - } - function ex() { - ex = ccb; - new gx((_k(), $k), (Lk(), Kk)); - } - function oeb() { - oeb = ccb; - neb = KC(JI, nie, 19, 256, 0, 1); - } - function d$c(a, b, c, d) { - e$c.call(this, a, b, c, d, 0, 0); - } - function sQc(a, b, c) { - return Rhb(a.b, BD(c.b, 17), b); - } - function tQc(a, b, c) { - return Rhb(a.b, BD(c.b, 17), b); - } - function xfd(a, b) { - return Ekb(a, new f7c(b.a, b.b)); - } - function Bic(a, b) { - return a.c < b.c ? -1 : a.c == b.c ? 0 : 1; - } - function B0b(a) { - return a.e.c.length + a.g.c.length; - } - function D0b(a) { - return a.e.c.length - a.g.c.length; - } - function Ojc(a) { - return a.b.c.length - a.e.c.length; - } - function dKc(a) { - FJc(); - return (Ucd(), Ecd).Hc(a.j); - } - function lHd(a) { - $Gd(); - _Gd.call(this, a); - this.a = -1; - } - function R7d(a, b) { - f7d.call(this, a, b); - this.a = this; - } - function odb(a, b) { - var c; - c = ldb(a, b); - c.i = 2; - return c; - } - function Evd(a, b) { - var c; - ++a.j; - c = a.Ti(b); - return c; - } - function e3c(a, b, c) { - a.a = -1; - i3c(a, b.g, c); - return a; - } - function Qrd(a, b, c) { - Kqd(a.a, a.b, a.c, BD(b, 202), c); - } - function OHd(a, b) { - PHd(a, b == null ? null : (uCb(b), b)); - } - function SUd(a, b) { - UUd(a, b == null ? null : (uCb(b), b)); - } - function TUd(a, b) { - UUd(a, b == null ? null : (uCb(b), b)); - } - function Zj(a, b, c) { - return new tk(oAb(a).Ie(), c, b); - } - function IC(a, b, c, d, e, f) { - return JC(a, b, c, d, e, 0, f); - } - function Ucb() { - Ucb = ccb; - Tcb = KC(xI, nie, 217, 256, 0, 1); - } - function Ceb() { - Ceb = ccb; - Beb = KC(MI, nie, 162, 256, 0, 1); - } - function Yeb() { - Yeb = ccb; - Xeb = KC(UI, nie, 184, 256, 0, 1); - } - function ddb() { - ddb = ccb; - cdb = KC(yI, nie, 172, 128, 0, 1); - } - function IVb() { - HVb(this, false, false, false, false); - } - function my(a) { - im(); - this.a = (mmb(), new anb(Qb(a))); - } - function ir(a) { - Qb(a); - while (a.Ob()) { - a.Pb(); - a.Qb(); - } - } - function Tw(a) { - a.a.cd(); - BD(a.a.dd(), 14).gc(); - zh(); - } - function mf(a) { - this.c = a; - this.b = this.c.d.vc().Kc(); - } - function fqb(a) { - this.c = a; - this.a = new Gqb(this.c.a); - } - function Vqb(a) { - this.a = new Mqb(a.gc()); - ye(this, a); - } - function Bsb(a) { - Wqb.call(this, new $rb()); - ye(this, a); - } - function Rfb(a, b) { - a.a += zfb(b, 0, b.length); - return a; - } - function Ikb(a, b) { - tCb(b, a.c.length); - return a.c[b]; - } - function $lb(a, b) { - tCb(b, a.a.length); - return a.a[b]; - } - function YAb(a, b) { - EAb(); - Vzb.call(this, a); - this.a = b; - } - function Qyb(a, b) { - return Aeb(wbb(Aeb(a.a).a, b.a)); - } - function jpb(a, b) { - return uCb(a), Fcb(a, (uCb(b), b)); - } - function opb(a, b) { - return uCb(b), Fcb(b, (uCb(a), a)); - } - function Oyb(a, b) { - return NC(b, 0, Bzb(b[0], Aeb(1))); - } - function Bzb(a, b) { - return Qyb(BD(a, 162), BD(b, 162)); - } - function vic(a) { - return a.c - BD(Ikb(a.a, a.b), 287).b; - } - function uNb(a) { - return !a.q ? (mmb(), mmb(), kmb) : a.q; - } - function Xi(a) { - return a.e.Hd().gc() * a.c.Hd().gc(); - } - function onc(a, b, c) { - return beb(b.d[a.g], c.d[a.g]); - } - function YHc(a, b, c) { - return beb(a.d[b.p], a.d[c.p]); - } - function ZHc(a, b, c) { - return beb(a.d[b.p], a.d[c.p]); - } - function $Hc(a, b, c) { - return beb(a.d[b.p], a.d[c.p]); - } - function _Hc(a, b, c) { - return beb(a.d[b.p], a.d[c.p]); - } - function q$c(a, b, c) { - return $wnd.Math.min(c / a, 1 / b); - } - function sEc(a, b) { - return a ? 0 : $wnd.Math.max(0, b - 1); - } - function Elb(a, b) { - var c; - for (c = 0; c < b; ++c) { - a[c] = -1; - } - } - function bVc(a) { - var b; - b = hVc(a); - return !b ? a : bVc(b); - } - function Voc(a, b) { - a.a == null && Toc(a); - return a.a[b]; - } - function qed(a) { - if (a.c) { - return a.c.f; - } - return a.e.b; - } - function red(a) { - if (a.c) { - return a.c.g; - } - return a.e.a; - } - function pFd(a) { - zud.call(this, a.gc()); - ytd(this, a); - } - function nXd(a, b) { - UVd(); - VVd.call(this, b); - this.a = a; - } - function KYd(a, b, c) { - this.a = a; - xMd.call(this, b, c, 2); - } - function B_b(a, b, c, d) { - s_b(this); - v_b(this, a, b, c, d); - } - function ige(a, b) { - wfe(); - xfe.call(this, a); - this.a = b; - } - function jgd(a) { - this.b = new Psb(); - this.a = a; - this.c = -1; - } - function MOb() { - this.d = new f7c(0, 0); - this.e = new Tqb(); - } - function Nr(a) { - qc.call(this, 0, 0); - this.a = a; - this.b = 0; - } - function ejc(a) { - this.a = a; - this.c = new Lqb(); - $ic(this); - } - function ju(a) { - if (a.e.c != a.b) { - throw vbb(new Apb()); - } - } - function bt(a) { - if (a.c.e != a.a) { - throw vbb(new Apb()); - } - } - function Tbb(a) { - if (Fbb(a)) { - return a | 0; - } - return pD(a); - } - function Bfe(a, b) { - wfe(); - ++vfe; - return new rge(a, b); - } - function SEd(a, b) { - return a == null ? b == null : dfb(a, b); - } - function TEd(a, b) { - return a == null ? b == null : efb(a, b); - } - function Npb(a, b, c) { - rqb(a.a, b); - return Qpb(a, b.g, c); - } - function Mlb(a, b, c) { - oCb(0, b, a.length); - Klb(a, 0, b, c); - } - function Dkb(a, b, c) { - wCb(b, a.c.length); - aCb(a.c, b, c); - } - function Dlb(a, b, c) { - var d; - for (d = 0; d < b; ++d) { - a[d] = c; - } - } - function qqb(a, b) { - var c; - c = pqb(a); - nmb(c, b); - return c; - } - function Oz(a, b) { - !a && (a = []); - a[a.length] = b; - return a; - } - function Brb(a, b) { - return !(a.a.get(b) === void 0); - } - function Wyb(a, b) { - return Nyb(new rzb(), new bzb(a), b); - } - function Itb(a) { - return a == null ? ztb : new Ftb(uCb(a)); - } - function tqb(a, b) { - return JD(b, 22) && uqb(a, BD(b, 22)); - } - function vqb(a, b) { - return JD(b, 22) && wqb(a, BD(b, 22)); - } - function Aub(a) { - return Cub(a, 26) * ike + Cub(a, 27) * jke; - } - function MC(a) { - return Array.isArray(a) && a.im === gcb; - } - function bg(a) { - a.b ? bg(a.b) : a.d.dc() && a.f.c.Bc(a.e); - } - function $Nb(a, b) { - P6c(a.c, b); - a.b.c += b.a; - a.b.d += b.b; - } - function ZNb(a, b) { - $Nb(a, c7c(new f7c(b.a, b.b), a.c)); - } - function BLb(a, b) { - this.b = new Psb(); - this.a = a; - this.c = b; - } - function OVb() { - this.b = new $Vb(); - this.c = new SVb(this); - } - function oEb() { - this.d = new CEb(); - this.e = new uEb(this); - } - function aCc() { - ZBc(); - this.f = new Psb(); - this.e = new Psb(); - } - function $Jc() { - FJc(); - this.k = new Lqb(); - this.d = new Tqb(); - } - function Rgd() { - Rgd = ccb; - Qgd = new Osd((Y9c(), s9c), 0); - } - function Mr() { - Mr = ccb; - Lr = new Nr(KC(SI, Uhe, 1, 0, 5, 1)); - } - function gfc(a, b, c) { - bfc(c, a, 1); - Ekb(b, new Tfc(c, a)); - } - function hfc(a, b, c) { - cfc(c, a, 1); - Ekb(b, new dgc(c, a)); - } - function R$c(a, b, c) { - return Qqb(a, new aDb(b.a, c.a)); - } - function ACc(a, b, c) { - return -beb(a.f[b.p], a.f[c.p]); - } - function mHb(a, b, c) { - var d; - if (a) { - d = a.i; - d.c = b; - d.b = c; - } - } - function nHb(a, b, c) { - var d; - if (a) { - d = a.i; - d.d = b; - d.a = c; - } - } - function c3c(a, b, c) { - a.a = -1; - i3c(a, b.g + 1, c); - return a; - } - function Dod(a, b, c) { - c = _hd(a, BD(b, 49), 7, c); - return c; - } - function JHd(a, b, c) { - c = _hd(a, BD(b, 49), 3, c); - return c; - } - function JMd(a, b, c) { - this.a = a; - BMd.call(this, b, c, 22); - } - function UTd(a, b, c) { - this.a = a; - BMd.call(this, b, c, 14); - } - function eXd(a, b, c, d) { - UVd(); - nWd.call(this, a, b, c, d); - } - function lXd(a, b, c, d) { - UVd(); - nWd.call(this, a, b, c, d); - } - function FNd(a, b) { - (b.Bb & ote) != 0 && !a.a.o && (a.a.o = b); - } - function MD(a) { - return a != null && OD(a) && !(a.im === gcb); - } - function ID(a) { - return !Array.isArray(a) && a.im === gcb; - } - function ed(a) { - return JD(a, 15) ? BD(a, 15).Yc() : a.Kc(); - } - function De(a) { - return a.Qc(KC(SI, Uhe, 1, a.gc(), 5, 1)); - } - function u1d(a, b) { - return W1d(p1d(a, b)) ? b.Qh() : null; - } - function uvd(a) { - a ? Ty(a, (Zfb(), Yfb), "") : (Zfb(), Yfb); - } - function Sr(a) { - this.a = (Mr(), Lr); - this.d = BD(Qb(a), 47); - } - function qg(a, b, c, d) { - this.a = a; - dg.call(this, a, b, c, d); - } - function Yge(a) { - Xge(); - this.a = 0; - this.b = a - 1; - this.c = 1; - } - function Yy(a) { - Py(this); - this.g = a; - Ry(this); - this._d(); - } - function Wm(a) { - if (a.c) { - return a.c; - } - return a.c = a.Id(); - } - function Xm(a) { - if (a.d) { - return a.d; - } - return a.d = a.Jd(); - } - function Rl(a) { - var b; - b = a.c; - return !b ? a.c = a.Dd() : b; - } - function fe(a) { - var b; - b = a.f; - return !b ? a.f = a.Dc() : b; - } - function Ec(a) { - var b; - b = a.i; - return !b ? a.i = a.bc() : b; - } - function Ffe(a) { - wfe(); - ++vfe; - return new Hge(10, a, 0); - } - function Ubb(a) { - if (Fbb(a)) { - return "" + a; - } - return qD(a); - } - function a4d(a) { - if (a.e.j != a.d) { - throw vbb(new Apb()); - } - } - function Nbb(a, b) { - return zbb(kD(Fbb(a) ? Rbb(a) : a, b)); - } - function Obb(a, b) { - return zbb(lD(Fbb(a) ? Rbb(a) : a, b)); - } - function Pbb(a, b) { - return zbb(mD(Fbb(a) ? Rbb(a) : a, b)); - } - function Dcb(a, b) { - return Ecb((uCb(a), a), (uCb(b), b)); - } - function Ddb(a, b) { - return Kdb((uCb(a), a), (uCb(b), b)); - } - function fx(a, b) { - return Qb(b), a.a.Ad(b) && !a.b.Ad(b); - } - function dD(a, b) { - return TC(a.l & b.l, a.m & b.m, a.h & b.h); - } - function jD(a, b) { - return TC(a.l | b.l, a.m | b.m, a.h | b.h); - } - function rD(a, b) { - return TC(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); - } - function QAb(a, b) { - return TAb(a, (uCb(b), new Rxb(b))); - } - function RAb(a, b) { - return TAb(a, (uCb(b), new Txb(b))); - } - function g1b(a) { - return z0b(), BD(a, 11).e.c.length != 0; - } - function l1b(a) { - return z0b(), BD(a, 11).g.c.length != 0; - } - function bac(a, b) { - I9b(); - return Kdb(b.a.o.a, a.a.o.a); - } - function Rnc(a, b, c) { - return Snc(a, BD(b, 11), BD(c, 11)); - } - function koc(a) { - if (a.e) { - return poc(a.e); - } - return null; - } - function Iub(a) { - if (!a.d) { - a.d = a.b.Kc(); - a.c = a.b.gc(); - } - } - function pBb(a, b, c) { - if (a.a.Mb(c)) { - a.b = true; - b.td(c); - } - } - function _vb(a, b) { - if (a < 0 || a >= b) { - throw vbb(new rcb()); - } - } - function Pyb(a, b, c) { - NC(b, 0, Bzb(b[0], c[0])); - return b; - } - function _yc(a, b, c) { - b.Ye(c, Edb(ED(Ohb(a.b, c))) * a.a); - } - function n6c(a, b, c) { - i6c(); - return m6c(a, b) && m6c(a, c); - } - function tcd(a) { - rcd(); - return !a.Hc(ncd) && !a.Hc(pcd); - } - function D6c(a) { - return new f7c(a.c + a.b / 2, a.d + a.a / 2); - } - function oOd(a, b) { - return b.kh() ? xid(a.b, BD(b, 49)) : b; - } - function bvb(a, b) { - this.e = a; - this.d = (b & 64) != 0 ? b | oie : b; - } - function qvb(a, b) { - this.c = 0; - this.d = a; - this.b = b | 64 | oie; - } - function gub(a) { - this.b = new Skb(11); - this.a = (ipb(), a); - } - function Qwb(a) { - this.b = null; - this.a = (ipb(), !a ? fpb : a); - } - function nHc(a) { - this.a = lHc(a.a); - this.b = new Tkb(a.b); - } - function Pzd(a) { - this.b = a; - Oyd.call(this, a); - Ozd(this); - } - function Xzd(a) { - this.b = a; - bzd.call(this, a); - Wzd(this); - } - function jUd(a, b, c) { - this.a = a; - gUd.call(this, b, c, 5, 6); - } - function Y5d(a, b, c, d) { - this.b = a; - xMd.call(this, b, c, d); - } - function nSd(a, b, c, d, e) { - oSd.call(this, a, b, c, d, e, -1); - } - function DSd(a, b, c, d, e) { - ESd.call(this, a, b, c, d, e, -1); - } - function cUd(a, b, c, d) { - xMd.call(this, a, b, c); - this.b = d; - } - function i5d(a, b, c, d) { - pMd.call(this, a, b, c); - this.b = d; - } - function x0d(a) { - Wud.call(this, a, false); - this.a = false; - } - function Lj(a, b) { - this.b = a; - sj.call(this, a.b); - this.a = b; - } - function px(a, b) { - im(); - ox.call(this, a, Dm(new amb(b))); - } - function Cfe(a, b) { - wfe(); - ++vfe; - return new Dge(a, b, 0); - } - function Efe(a, b) { - wfe(); - ++vfe; - return new Dge(6, a, b); - } - function nfb(a, b) { - return dfb(a.substr(0, b.length), b); - } - function Mhb(a, b) { - return ND(b) ? Qhb(a, b) : !!irb(a.f, b); - } - function Rrb(a, b) { - uCb(b); - while (a.Ob()) { - b.td(a.Pb()); - } - } - function Vgb(a, b, c) { - Hgb(); - this.e = a; - this.d = b; - this.a = c; - } - function amc(a, b, c, d) { - var e; - e = a.i; - e.i = b; - e.a = c; - e.b = d; - } - function xJc(a) { - var b; - b = a; - while (b.f) { - b = b.f; - } - return b; - } - function fkb(a) { - var b; - b = bkb(a); - sCb(b != null); - return b; - } - function gkb(a) { - var b; - b = ckb(a); - sCb(b != null); - return b; - } - function cv(a, b) { - var c; - c = a.a.gc(); - Sb(b, c); - return c - b; - } - function Glb(a, b) { - var c; - for (c = 0; c < b; ++c) { - a[c] = false; - } - } - function Clb(a, b, c, d) { - var e; - for (e = b; e < c; ++e) { - a[e] = d; - } - } - function ylb(a, b, c, d) { - oCb(b, c, a.length); - Clb(a, b, c, d); - } - function Vvb(a, b, c) { - _vb(c, a.a.c.length); - Nkb(a.a, c, b); - } - function Lyb(a, b, c) { - this.c = a; - this.a = b; - mmb(); - this.b = c; - } - function Qpb(a, b, c) { - var d; - d = a.b[b]; - a.b[b] = c; - return d; - } - function Qqb(a, b) { - var c; - c = a.a.zc(b, a); - return c == null; - } - function zjb(a) { - if (!a) { - throw vbb(new utb()); - } - return a.d; - } - function vCb(a, b) { - if (a == null) { - throw vbb(new Heb(b)); - } - } - function Goc(a, b) { - if (!b) { - return false; - } - return ye(a, b); - } - function K2c(a, b, c) { - C2c(a, b.g, c); - rqb(a.c, b); - return a; - } - function vVb(a) { - tVb(a, (ead(), aad)); - a.d = true; - return a; - } - function c2d(a) { - !a.j && i2d(a, d1d(a.g, a.b)); - return a.j; - } - function nlb(a) { - yCb(a.b != -1); - Kkb(a.c, a.a = a.b); - a.b = -1; - } - function Uhb(a) { - a.f = new lrb(a); - a.g = new Frb(a); - zpb(a); - } - function Plb(a) { - return new YAb(null, Olb(a, a.length)); - } - function ul(a) { - return new Sr(new xl(a.a.length, a.a)); - } - function iD(a) { - return TC(~a.l & Eje, ~a.m & Eje, ~a.h & Fje); - } - function OD(a) { - return typeof a === Jhe || typeof a === Nhe; - } - function D9d(a) { - return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a; - } - function F9d(a) { - return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a; - } - function yRb(a, b) { - return a > 0 ? $wnd.Math.log(a / b) : -100; - } - function ueb(a, b) { - return ybb(a, b) < 0 ? -1 : ybb(a, b) > 0 ? 1 : 0; - } - function HMb(a, b, c) { - return IMb(a, BD(b, 46), BD(c, 167)); - } - function iq(a, b) { - return BD(Rl(Wm(a.a)).Xb(b), 42).cd(); - } - function Olb(a, b) { - return avb(b, a.length), new vvb(a, b); - } - function Pyd(a, b) { - this.d = a; - Fyd.call(this, a); - this.e = b; - } - function Lub(a) { - this.d = (uCb(a), a); - this.a = 0; - this.c = rie; - } - function rge(a, b) { - xfe.call(this, 1); - this.a = a; - this.b = b; - } - function Rzb(a, b) { - !a.c ? Ekb(a.b, b) : Rzb(a.c, b); - return a; - } - function uB(a, b, c) { - var d; - d = tB(a, b); - vB(a, b, c); - return d; - } - function ZBb(a, b) { - var c; - c = a.slice(0, b); - return PC(c, a); - } - function Flb(a, b, c) { - var d; - for (d = 0; d < b; ++d) { - NC(a, d, c); - } - } - function ffb(a, b, c, d, e) { - while (b < c) { - d[e++] = bfb(a, b++); - } - } - function hLb(a, b) { - return Kdb(a.c.c + a.c.b, b.c.c + b.c.b); - } - function Axb(a, b) { - return Iwb(a.a, b, (Bcb(), zcb)) == null; - } - function Vsb(a, b) { - Gsb(a.d, b, a.b.b, a.b); - ++a.a; - a.c = null; - } - function d3d(a, b) { - JLd(a, JD(b, 153) ? b : BD(b, 1937).gl()); - } - function hkc(a, b) { - MAb(NAb(a.Oc(), new Rkc()), new Tkc(b)); - } - function kkc(a, b, c, d, e) { - jkc(a, BD(Qc(b.k, c), 15), c, d, e); - } - function lOc(a) { - a.s = NaN; - a.c = NaN; - mOc(a, a.e); - mOc(a, a.j); - } - function it(a) { - a.a = null; - a.e = null; - Uhb(a.b); - a.d = 0; - ++a.c; - } - function gKc(a) { - return $wnd.Math.abs(a.d.e - a.e.e) - a.a; - } - function MAd(a, b, c) { - return BD(a.c._c(b, BD(c, 133)), 42); - } - function os() { - hs(); - return OC(GC(yG, 1), Kie, 538, 0, [gs]); - } - function VPb(a) { - QPb(); - return Xod(jtd(a)) == Xod(ltd(a)); - } - function aRb(a) { - _Qb.call(this); - this.a = a; - Ekb(a.a, this); - } - function tPc(a, b) { - this.d = DPc(a); - this.c = b; - this.a = 0.5 * b; - } - function A6d() { - $rb.call(this); - this.a = true; - this.b = true; - } - function aLd(a) { - return (a.i == null && TKd(a), a.i).length; - } - function oRd(a) { - return JD(a, 99) && (BD(a, 18).Bb & ote) != 0; - } - function w2d(a, b) { - ++a.j; - t3d(a, a.i, b); - v2d(a, BD(b, 332)); - } - function vId(a, b) { - b = a.nk(null, b); - return uId(a, null, b); - } - function ytd(a, b) { - a.hi() && (b = Dtd(a, b)); - return a.Wh(b); - } - function mdb(a, b, c) { - var d; - d = ldb(a, b); - zdb(c, d); - return d; - } - function ldb(a, b) { - var c; - c = new jdb(); - c.j = a; - c.d = b; - return c; - } - function Qb(a) { - if (a == null) { - throw vbb(new Geb()); - } - return a; - } - function Fc(a) { - var b; - b = a.j; - return !b ? a.j = new Cw(a) : b; - } - function Vi(a) { - var b; - b = a.f; - return !b ? a.f = new Rj(a) : b; - } - function ci(a) { - var b; - return b = a.k, !b ? a.k = new th(a) : b; - } - function Uc(a) { - var b; - return b = a.k, !b ? a.k = new th(a) : b; - } - function Pc(a) { - var b; - return b = a.g, !b ? a.g = new lh(a) : b; - } - function Yi(a) { - var b; - return b = a.i, !b ? a.i = new Ci(a) : b; - } - function qo(a) { - var b; - b = a.d; - return !b ? a.d = new ap(a) : b; - } - function Fb(a) { - Qb(a); - return JD(a, 475) ? BD(a, 475) : fcb(a); - } - function Ix(a) { - if (JD(a, 607)) { - return a; - } - return new by(a); - } - function qj(a, b) { - Pb(b, a.c.b.c.gc()); - return new Fj(a, b); - } - function Dfe(a, b, c) { - wfe(); - ++vfe; - return new zge(a, b, c); - } - function NC(a, b, c) { - qCb(c == null || FC(a, c)); - return a[b] = c; - } - function bv(a, b) { - var c; - c = a.a.gc(); - Pb(b, c); - return c - 1 - b; - } - function Afb(a, b) { - a.a += String.fromCharCode(b); - return a; - } - function Kfb(a, b) { - a.a += String.fromCharCode(b); - return a; - } - function ovb(a, b) { - uCb(b); - while (a.c < a.d) { - a.ze(b, a.c++); - } - } - function Ohb(a, b) { - return ND(b) ? Phb(a, b) : Wd(irb(a.f, b)); - } - function ZPb(a, b) { - QPb(); - return a == jtd(b) ? ltd(b) : jtd(b); - } - function isd(a, b) { - Qpd(a, new yC(b.f != null ? b.f : "" + b.g)); - } - function ksd(a, b) { - Qpd(a, new yC(b.f != null ? b.f : "" + b.g)); - } - function dVb(a) { - this.b = new Rkb(); - this.a = new Rkb(); - this.c = a; - } - function H1b(a) { - this.c = new d7c(); - this.a = new Rkb(); - this.b = a; - } - function pRb(a) { - _Qb.call(this); - this.a = new d7c(); - this.c = a; - } - function yC(a) { - if (a == null) { - throw vbb(new Geb()); - } - this.a = a; - } - function HA(a) { - fA(); - this.b = new Rkb(); - this.a = a; - sA(this, a); - } - function v4c(a) { - this.c = a; - this.a = new Psb(); - this.b = new Psb(); - } - function GB() { - GB = ccb; - EB = new HB(false); - FB = new HB(true); - } - function im() { - im = ccb; - Ql(); - hm = new ux((mmb(), mmb(), jmb)); - } - function yx() { - yx = ccb; - Ql(); - xx = new zx((mmb(), mmb(), lmb)); - } - function NFd() { - NFd = ccb; - MFd = BZd(); - !!(jGd(), PFd) && DZd(); - } - function aac(a, b) { - I9b(); - return BD(Mpb(a, b.d), 15).Fc(b); - } - function pTb(a, b, c, d) { - return c == 0 || (c - d) / c < a.e || b >= a.g; - } - function NHc(a, b, c) { - var d; - d = THc(a, b, c); - return MHc(a, d); - } - function Qpd(a, b) { - var c; - c = a.a.length; - tB(a, c); - vB(a, c, b); - } - function gCb(a, b) { - var c; - c = console[a]; - c.call(console, b); - } - function Bvd(a, b) { - var c; - ++a.j; - c = a.Vi(); - a.Ii(a.oi(c, b)); - } - function E1c(a, b, c) { - BD(b.b, 65); - Hkb(b.a, new L1c(a, c, b)); - } - function oXd(a, b, c) { - VVd.call(this, b); - this.a = a; - this.b = c; - } - function Dge(a, b, c) { - xfe.call(this, a); - this.a = b; - this.b = c; - } - function dYd(a, b, c) { - this.a = a; - lVd.call(this, b); - this.b = c; - } - function f0d(a, b, c) { - this.a = a; - mxd.call(this, 8, b, null, c); - } - function z1d(a) { - this.a = (uCb(Rve), Rve); - this.b = a; - new oUd(); - } - function ct(a) { - this.c = a; - this.b = this.c.a; - this.a = this.c.e; - } - function usb(a) { - this.c = a; - this.b = a.a.d.a; - ypb(a.a.e, this); - } - function uib(a) { - yCb(a.c != -1); - a.d.$c(a.c); - a.b = a.c; - a.c = -1; - } - function U6c(a) { - return $wnd.Math.sqrt(a.a * a.a + a.b * a.b); - } - function Uvb(a, b) { - return _vb(b, a.a.c.length), Ikb(a.a, b); - } - function Hb(a, b) { - return PD(a) === PD(b) || a != null && pb(a, b); - } - function oAb(a) { - if (0 >= a) { - return new yAb(); - } - return pAb(a - 1); - } - function Nfe(a) { - if (!bfe) - return false; - return Qhb(bfe, a); - } - function Ehe(a) { - if (a) - return a.dc(); - return !a.Kc().Ob(); - } - function Q_b(a) { - if (!a.a && !!a.c) { - return a.c.b; - } - return a.a; - } - function LHd(a) { - !a.a && (a.a = new xMd(m5, a, 4)); - return a.a; - } - function LQd(a) { - !a.d && (a.d = new xMd(j5, a, 1)); - return a.d; - } - function uCb(a) { - if (a == null) { - throw vbb(new Geb()); - } - return a; - } - function Qzb(a) { - if (!a.c) { - a.d = true; - Szb(a); - } else { - a.c.He(); - } - } - function Tzb(a) { - if (!a.c) { - Uzb(a); - a.d = true; - } else { - Tzb(a.c); - } - } - function Kpb(a) { - Ae(a.a); - a.b = KC(SI, Uhe, 1, a.b.length, 5, 1); - } - function qlc(a, b) { - return beb(b.j.c.length, a.j.c.length); - } - function igd(a, b) { - a.c < 0 || a.b.b < a.c ? Fsb(a.b, b) : a.a._e(b); - } - function Did(a, b) { - var c; - c = a.Yg(b); - c >= 0 ? a.Bh(c) : vid(a, b); - } - function WHc(a) { - var b, c; - b = a.c.i.c; - c = a.d.i.c; - return b == c; - } - function Wwd(a) { - if (a.p != 4) - throw vbb(new Ydb()); - return a.e; - } - function Vwd(a) { - if (a.p != 3) - throw vbb(new Ydb()); - return a.e; - } - function Ywd(a) { - if (a.p != 6) - throw vbb(new Ydb()); - return a.f; - } - function fxd(a) { - if (a.p != 6) - throw vbb(new Ydb()); - return a.k; - } - function cxd(a) { - if (a.p != 3) - throw vbb(new Ydb()); - return a.j; - } - function dxd(a) { - if (a.p != 4) - throw vbb(new Ydb()); - return a.j; - } - function AYd(a) { - !a.b && (a.b = new RYd(new NYd())); - return a.b; - } - function $1d(a) { - a.c == -2 && e2d(a, X0d(a.g, a.b)); - return a.c; - } - function pdb(a, b) { - var c; - c = ldb("", a); - c.n = b; - c.i = 1; - return c; - } - function MNb(a, b) { - $Nb(BD(b.b, 65), a); - Hkb(b.a, new RNb(a)); - } - function Cnd(a, b) { - wtd((!a.a && (a.a = new fTd(a, a)), a.a), b); - } - function Qzd(a, b) { - this.b = a; - Pyd.call(this, a, b); - Ozd(this); - } - function Yzd(a, b) { - this.b = a; - czd.call(this, a, b); - Wzd(this); - } - function Ms(a, b, c, d) { - Wo.call(this, a, b); - this.d = c; - this.a = d; - } - function $o(a, b, c, d) { - Wo.call(this, a, c); - this.a = b; - this.f = d; - } - function iy(a, b) { - Pp.call(this, umb(Qb(a), Qb(b))); - this.a = b; - } - function cae() { - fod.call(this, Ewe, (p8d(), o8d)); - $9d(this); - } - function AZd() { - fod.call(this, _ve, (LFd(), KFd)); - uZd(this); - } - function T0c() { - $r.call(this, "DELAUNAY_TRIANGULATION", 0); - } - function vfb(a) { - return String.fromCharCode.apply(null, a); - } - function Rhb(a, b, c) { - return ND(b) ? Shb(a, b, c) : jrb(a.f, b, c); - } - function tmb(a) { - mmb(); - return !a ? (ipb(), ipb(), hpb) : a.ve(); - } - function d2c(a, b, c) { - Y1c(); - return c.pg(a, BD(b.cd(), 146)); - } - function ix(a, b) { - ex(); - return new gx(new il(a), new Uk(b)); - } - function Iu(a) { - Xj(a, Mie); - return Oy(wbb(wbb(5, a), a / 10 | 0)); - } - function Vm() { - Vm = ccb; - Um = new wx(OC(GC(CK, 1), zie, 42, 0, [])); - } - function hob(a) { - !a.d && (a.d = new lnb(a.c.Cc())); - return a.d; - } - function eob(a) { - !a.a && (a.a = new Gob(a.c.vc())); - return a.a; - } - function gob(a) { - !a.b && (a.b = new zob(a.c.ec())); - return a.b; - } - function keb(a, b) { - while (b-- > 0) { - a = a << 1 | (a < 0 ? 1 : 0); - } - return a; - } - function wtb(a, b) { - return PD(a) === PD(b) || a != null && pb(a, b); - } - function Gbc(a, b) { - return Bcb(), BD(b.b, 19).a < a ? true : false; - } - function Hbc(a, b) { - return Bcb(), BD(b.a, 19).a < a ? true : false; - } - function Mpb(a, b) { - return tqb(a.a, b) ? a.b[BD(b, 22).g] : null; - } - function kcb(a, b, c, d) { - a.a = qfb(a.a, 0, b) + ("" + d) + pfb(a.a, c); - } - function OJb(a, b) { - a.u.Hc((rcd(), ncd)) && MJb(a, b); - QJb(a, b); - } - function bfb(a, b) { - BCb(b, a.length); - return a.charCodeAt(b); - } - function vtb() { - hz.call(this, "There is no more element."); - } - function xkb(a) { - this.d = a; - this.a = this.d.b; - this.b = this.d.c; - } - function kEb(a) { - a.b = false; - a.c = false; - a.d = false; - a.a = false; - } - function Znd(a, b, c, d) { - Ynd(a, b, c, false); - LPd(a, d); - return a; - } - function h3c(a) { - a.j.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a = -1; - return a; - } - function Old(a) { - !a.c && (a.c = new y5d(z2, a, 5, 8)); - return a.c; - } - function Nld(a) { - !a.b && (a.b = new y5d(z2, a, 4, 7)); - return a.b; - } - function Kkd(a) { - !a.n && (a.n = new cUd(D2, a, 1, 7)); - return a.n; - } - function Yod(a) { - !a.c && (a.c = new cUd(F2, a, 9, 9)); - return a.c; - } - function a2d(a) { - a.e == Gwe && g2d(a, a1d(a.g, a.b)); - return a.e; - } - function b2d(a) { - a.f == Gwe && h2d(a, b1d(a.g, a.b)); - return a.f; - } - function Ah(a) { - var b; - b = a.b; - !b && (a.b = b = new Ph(a)); - return b; - } - function Ae(a) { - var b; - for (b = a.Kc(); b.Ob(); ) { - b.Pb(); - b.Qb(); - } - } - function Fg(a) { - ag(a.d); - if (a.d.d != a.c) { - throw vbb(new Apb()); - } - } - function Xx(a, b) { - this.b = a; - this.c = b; - this.a = new Gqb(this.b); - } - function Zeb(a, b, c) { - this.a = Zie; - this.d = a; - this.b = b; - this.c = c; - } - function Mub(a, b) { - this.d = (uCb(a), a); - this.a = 16449; - this.c = b; - } - function nqd(a, b) { - ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y"))); - } - function Aqd(a, b) { - ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y"))); - } - function JAb(a, b) { - Uzb(a); - return new YAb(a, new qBb(b, a.a)); - } - function NAb(a, b) { - Uzb(a); - return new YAb(a, new IBb(b, a.a)); - } - function OAb(a, b) { - Uzb(a); - return new bAb(a, new wBb(b, a.a)); - } - function PAb(a, b) { - Uzb(a); - return new vAb(a, new CBb(b, a.a)); - } - function Cy(a, b) { - return new Ay(BD(Qb(a), 62), BD(Qb(b), 62)); - } - function PWb(a, b) { - LWb(); - return Kdb((uCb(a), a), (uCb(b), b)); - } - function fPb() { - cPb(); - return OC(GC(GO, 1), Kie, 481, 0, [bPb]); - } - function o_c() { - i_c(); - return OC(GC(N_, 1), Kie, 482, 0, [h_c]); - } - function x_c() { - s_c(); - return OC(GC(O_, 1), Kie, 551, 0, [r_c]); - } - function X0c() { - R0c(); - return OC(GC(W_, 1), Kie, 530, 0, [Q0c]); - } - function cEc(a) { - this.a = new Rkb(); - this.e = KC(WD, nie, 48, a, 0, 2); - } - function l$b(a, b, c, d) { - this.a = a; - this.e = b; - this.d = c; - this.c = d; - } - function QIc(a, b, c, d) { - this.a = a; - this.c = b; - this.b = c; - this.d = d; - } - function rKc(a, b, c, d) { - this.c = a; - this.b = b; - this.a = c; - this.d = d; - } - function WKc(a, b, c, d) { - this.c = a; - this.b = b; - this.d = c; - this.a = d; - } - function J6c(a, b, c, d) { - this.c = a; - this.d = b; - this.b = c; - this.a = d; - } - function gPc(a, b, c, d) { - this.a = a; - this.d = b; - this.c = c; - this.b = d; - } - function Blc(a, b, c, d) { - $r.call(this, a, b); - this.a = c; - this.b = d; - } - function Ggd(a, b, c, d) { - this.a = a; - this.c = b; - this.d = c; - this.b = d; - } - function pec(a, b, c) { - Pmc(a.a, c); - dmc(c); - enc(a.b, c); - xmc(b, c); - } - function Pid(a, b, c) { - var d, e; - d = QEd(a); - e = b.Kh(c, d); - return e; - } - function KPb(a, b) { - var c, d; - c = a / b; - d = QD(c); - c > d && ++d; - return d; - } - function Nnd(a) { - var b, c; - c = (b = new UQd(), b); - NQd(c, a); - return c; - } - function Ond(a) { - var b, c; - c = (b = new UQd(), b); - RQd(c, a); - return c; - } - function hqd(a, b) { - var c; - c = Ohb(a.f, b); - Yqd(b, c); - return null; - } - function JZb(a) { - var b; - b = P2b(a); - if (b) { - return b; - } - return null; - } - function Wod(a) { - !a.b && (a.b = new cUd(B2, a, 12, 3)); - return a.b; - } - function YEd(a) { - return a != null && hnb(GEd, a.toLowerCase()); - } - function ied(a, b) { - return Kdb(red(a) * qed(a), red(b) * qed(b)); - } - function jed(a, b) { - return Kdb(red(a) * qed(a), red(b) * qed(b)); - } - function wEb(a, b) { - return Kdb(a.d.c + a.d.b / 2, b.d.c + b.d.b / 2); - } - function UVb(a, b) { - return Kdb(a.g.c + a.g.b / 2, b.g.c + b.g.b / 2); - } - function pQb(a, b, c) { - c.a ? eld(a, b.b - a.f / 2) : dld(a, b.a - a.g / 2); - } - function prd(a, b, c, d) { - this.a = a; - this.b = b; - this.c = c; - this.d = d; - } - function ord(a, b, c, d) { - this.a = a; - this.b = b; - this.c = c; - this.d = d; - } - function JVd(a, b, c, d) { - this.e = a; - this.a = b; - this.c = c; - this.d = d; - } - function ZVd(a, b, c, d) { - this.a = a; - this.c = b; - this.d = c; - this.b = d; - } - function cXd(a, b, c, d) { - UVd(); - mWd.call(this, b, c, d); - this.a = a; - } - function jXd(a, b, c, d) { - UVd(); - mWd.call(this, b, c, d); - this.a = a; - } - function Ng(a, b) { - this.a = a; - Hg.call(this, a, BD(a.d, 15).Zc(b)); - } - function ZBd(a) { - this.f = a; - this.c = this.f.e; - a.f > 0 && YBd(this); - } - function lBb(a, b, c, d) { - this.b = a; - this.c = d; - nvb.call(this, b, c); - } - function tib(a) { - sCb(a.b < a.d.gc()); - return a.d.Xb(a.c = a.b++); - } - function Osb(a) { - a.a.a = a.c; - a.c.b = a.a; - a.a.b = a.c.a = null; - a.b = 0; - } - function u_b(a, b) { - a.b = b.b; - a.c = b.c; - a.d = b.d; - a.a = b.a; - return a; - } - function Ry(a) { - if (a.n) { - a.e !== Sie && a._d(); - a.j = null; - } - return a; - } - function FD(a) { - CCb(a == null || OD(a) && !(a.im === gcb)); - return a; - } - function p4b(a) { - this.b = new Rkb(); - Gkb(this.b, this.b); - this.a = a; - } - function QPb() { - QPb = ccb; - PPb = new Rkb(); - OPb = new Lqb(); - NPb = new Rkb(); - } - function mmb() { - mmb = ccb; - jmb = new xmb(); - kmb = new Qmb(); - lmb = new Ymb(); - } - function ipb() { - ipb = ccb; - fpb = new kpb(); - gpb = new kpb(); - hpb = new ppb(); - } - function ODb() { - ODb = ccb; - LDb = new JDb(); - NDb = new oEb(); - MDb = new fEb(); - } - function MCb() { - if (HCb == 256) { - GCb = ICb; - ICb = new nb(); - HCb = 0; - } - ++HCb; - } - function nd(a) { - var b; - return b = a.f, !b ? a.f = new ne(a, a.c) : b; - } - function d2b(a) { - return Qld(a) && Ccb(DD(hkd(a, (Nyc(), gxc)))); - } - function mcc(a, b) { - return Rc(a, BD(vNb(b, (Nyc(), Nxc)), 19), b); - } - function POc(a, b) { - return vPc(a.j, b.s, b.c) + vPc(b.e, a.s, a.c); - } - function ooc(a, b) { - if (!!a.e && !a.e.a) { - moc(a.e, b); - ooc(a.e, b); - } - } - function noc(a, b) { - if (!!a.d && !a.d.a) { - moc(a.d, b); - noc(a.d, b); - } - } - function hed(a, b) { - return -Kdb(red(a) * qed(a), red(b) * qed(b)); - } - function cgd(a) { - return BD(a.cd(), 146).tg() + ":" + fcb(a.dd()); - } - function Zgc(a) { - Hgc(); - var b; - b = BD(a.g, 10); - b.n.a = a.d.c + b.d.b; - } - function wgc(a, b, c) { - qgc(); - return iEb(BD(Ohb(a.e, b), 522), c); - } - function Y2c(a, b) { - rb(a); - rb(b); - return Xr(BD(a, 22), BD(b, 22)); - } - function oic(a, b, c) { - a.i = 0; - a.e = 0; - if (b == c) { - return; - } - kic(a, b, c); - } - function pic(a, b, c) { - a.i = 0; - a.e = 0; - if (b == c) { - return; - } - lic(a, b, c); - } - function Spd(a, b, c) { - var d, e; - d = Kcb(c); - e = new TB(d); - cC(a, b, e); - } - function FSd(a, b, c, d, e, f) { - ESd.call(this, a, b, c, d, e, f ? -2 : -1); - } - function U5d(a, b, c, d) { - MLd.call(this, b, c); - this.b = a; - this.a = d; - } - function QRc(a, b) { - new Psb(); - this.a = new s7c(); - this.b = a; - this.c = b; - } - function Hec(a, b) { - BD(vNb(a, (wtc(), Qsc)), 15).Fc(b); - return b; - } - function Rb(a, b) { - if (a == null) { - throw vbb(new Heb(b)); - } - return a; - } - function WKd(a) { - !a.q && (a.q = new cUd(n5, a, 11, 10)); - return a.q; - } - function ZKd(a) { - !a.s && (a.s = new cUd(t5, a, 21, 17)); - return a.s; - } - function Vod(a) { - !a.a && (a.a = new cUd(E2, a, 10, 11)); - return a.a; - } - function Dx(a) { - return JD(a, 14) ? new Vqb(BD(a, 14)) : Ex(a.Kc()); - } - function Ni(a) { - return new aj(a, a.e.Hd().gc() * a.c.Hd().gc()); - } - function Zi(a) { - return new kj(a, a.e.Hd().gc() * a.c.Hd().gc()); - } - function rz(a) { - return !!a && !!a.hashCode ? a.hashCode() : FCb(a); - } - function Qhb(a, b) { - return b == null ? !!irb(a.f, null) : Brb(a.g, b); - } - function Oq(a) { - Qb(a); - return mr(new Sr(ur(a.a.Kc(), new Sq()))); - } - function vmb(a) { - mmb(); - return JD(a, 54) ? new Yob(a) : new Inb(a); - } - function VDb(a, b, c) { - if (a.f) { - return a.f.Ne(b, c); - } - return false; - } - function Gfb(a, b) { - a.a = qfb(a.a, 0, b) + "" + pfb(a.a, b + 1); - return a; - } - function fVb(a, b) { - var c; - c = Sqb(a.a, b); - c && (b.d = null); - return c; - } - function zpb(a) { - var b, c; - c = a; - b = c.$modCount | 0; - c.$modCount = b + 1; - } - function pu(a) { - this.b = a; - this.c = a; - a.e = null; - a.c = null; - this.a = 1; - } - function hOb(a) { - this.b = a; - this.a = new Hxb(BD(Qb(new kOb()), 62)); - } - function uEb(a) { - this.c = a; - this.b = new Hxb(BD(Qb(new xEb()), 62)); - } - function SVb(a) { - this.c = a; - this.b = new Hxb(BD(Qb(new VVb()), 62)); - } - function FYb() { - this.a = new HXb(); - this.b = new LXb(); - this.d = new SYb(); - } - function UZb() { - this.a = new s7c(); - this.b = (Xj(3, Jie), new Skb(3)); - } - function VMc() { - this.b = new Tqb(); - this.d = new Psb(); - this.e = new twb(); - } - function K6c(a) { - this.c = a.c; - this.d = a.d; - this.b = a.b; - this.a = a.a; - } - function Ay(a, b) { - oi.call(this, new Qwb(a)); - this.a = a; - this.b = b; - } - function eod() { - bod(this, new $md()); - this.wb = (NFd(), MFd); - LFd(); - } - function eHc(a) { - Odd(a, "No crossing minimization", 1); - Qdd(a); - } - function Gz(a) { - Az(); - $wnd.setTimeout(function() { - throw a; - }, 0); - } - function _Kd(a) { - if (!a.u) { - $Kd(a); - a.u = new YOd(a, a); - } - return a.u; - } - function wjd(a) { - var b; - b = BD(Ajd(a, 16), 26); - return !b ? a.zh() : b; - } - function Jsd(a, b) { - return JD(b, 146) && dfb(a.b, BD(b, 146).tg()); - } - function t0d(a, b) { - return a.a ? b.Wg().Kc() : BD(b.Wg(), 69).Zh(); - } - function u3b(a) { - return a.k == (j0b(), h0b) && wNb(a, (wtc(), Csc)); - } - function ux(a) { - this.a = (mmb(), JD(a, 54) ? new Yob(a) : new Inb(a)); - } - function Rz() { - Rz = ccb; - var a, b; - b = !Xz(); - a = new dA(); - Qz = b ? new Yz() : a; - } - function Wy(a, b) { - var c; - c = hdb(a.gm); - return b == null ? c : c + ": " + b; - } - function Eob(a, b) { - var c; - c = a.b.Qc(b); - Fob(c, a.b.gc()); - return c; - } - function ytb(a, b) { - if (a == null) { - throw vbb(new Heb(b)); - } - return a; - } - function irb(a, b) { - return grb(a, b, hrb(a, b == null ? 0 : a.b.se(b))); - } - function ofb(a, b, c) { - return c >= 0 && dfb(a.substr(c, b.length), b); - } - function H2d(a, b, c, d, e, f, g10) { - return new O7d(a.e, b, c, d, e, f, g10); - } - function Cxd(a, b, c, d, e, f) { - this.a = a; - nxd.call(this, b, c, d, e, f); - } - function vyd(a, b, c, d, e, f) { - this.a = a; - nxd.call(this, b, c, d, e, f); - } - function $Ec(a, b) { - this.g = a; - this.d = OC(GC(OQ, 1), kne, 10, 0, [b]); - } - function KVd(a, b) { - this.e = a; - this.a = SI; - this.b = R5d(b); - this.c = b; - } - function cIb(a, b) { - $Gb.call(this); - THb(this); - this.a = a; - this.c = b; - } - function kBc(a, b, c, d) { - NC(a.c[b.g], c.g, d); - NC(a.c[c.g], b.g, d); - } - function nBc(a, b, c, d) { - NC(a.c[b.g], b.g, c); - NC(a.b[b.g], b.g, d); - } - function cBc() { - _Ac(); - return OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc]); - } - function crc() { - _qc(); - return OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc]); - } - function Aqc() { - xqc(); - return OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc]); - } - function Lpc() { - Ipc(); - return OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc]); - } - function psc() { - msc(); - return OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc]); - } - function EAc() { - BAc(); - return OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc]); - } - function XIc() { - UIc(); - return OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc]); - } - function KOc() { - HOc(); - return OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc]); - } - function _Lc() { - YLc(); - return OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc]); - } - function hMc() { - eMc(); - return OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc]); - } - function IQc() { - FQc(); - return OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc]); - } - function bUc() { - $Tc(); - return OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc]); - } - function VTc() { - STc(); - return OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc]); - } - function VUc() { - PUc(); - return OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc]); - } - function jWc() { - fWc(); - return OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc]); - } - function g1c() { - a1c(); - return OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c]); - } - function F_c() { - C_c(); - return OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c]); - } - function PEb() { - MEb(); - return OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb]); - } - function XEb() { - UEb(); - return OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb]); - } - function $Rb() { - XRb(); - return OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb]); - } - function B5b() { - y5b(); - return OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b]); - } - function lid(a, b, c, d) { - return c >= 0 ? a.jh(b, c, d) : a.Sg(null, c, d); - } - function hgd(a) { - if (a.b.b == 0) { - return a.a.$e(); - } - return Lsb(a.b); - } - function Xwd(a) { - if (a.p != 5) - throw vbb(new Ydb()); - return Tbb(a.f); - } - function exd(a) { - if (a.p != 5) - throw vbb(new Ydb()); - return Tbb(a.k); - } - function pNd(a) { - PD(a.a) === PD((NKd(), MKd)) && qNd(a); - return a.a; - } - function by(a) { - this.a = BD(Qb(a), 271); - this.b = (mmb(), new Zob(a)); - } - function bQc(a, b) { - $Pc(this, new f7c(a.a, a.b)); - _Pc(this, Ru(b)); - } - function FQc() { - FQc = ccb; - DQc = new GQc(jle, 0); - EQc = new GQc(kle, 1); - } - function YLc() { - YLc = ccb; - XLc = new ZLc(kle, 0); - WLc = new ZLc(jle, 1); - } - function Hp() { - Gp.call(this, new Mqb(Cv(12))); - Lb(true); - this.a = 2; - } - function Hge(a, b, c) { - wfe(); - xfe.call(this, a); - this.b = b; - this.a = c; - } - function cWd(a, b, c) { - UVd(); - VVd.call(this, b); - this.a = a; - this.b = c; - } - function aIb(a) { - $Gb.call(this); - THb(this); - this.a = a; - this.c = true; - } - function isb(a) { - var b; - b = a.c.d.b; - a.b = b; - a.a = a.c.d; - b.a = a.c.d.b = a; - } - function $Cb(a) { - var b; - NGb(a.a); - MGb(a.a); - b = new YGb(a.a); - UGb(b); - } - function iKb(a, b) { - hKb(a, true); - Hkb(a.e.wf(), new mKb(a, true, b)); - } - function tlb(a, b) { - pCb(b); - return vlb(a, KC(WD, oje, 25, b, 15, 1), b); - } - function YPb(a, b) { - QPb(); - return a == Xod(jtd(b)) || a == Xod(ltd(b)); - } - function Phb(a, b) { - return b == null ? Wd(irb(a.f, null)) : Crb(a.g, b); - } - function Ksb(a) { - return a.b == 0 ? null : (sCb(a.b != 0), Nsb(a, a.a.a)); - } - function QD(a) { - return Math.max(Math.min(a, Ohe), -2147483648) | 0; - } - function uz(a, b) { - var c = tz[a.charCodeAt(0)]; - return c == null ? a : c; - } - function Cx(a, b) { - Rb(a, "set1"); - Rb(b, "set2"); - return new Px(a, b); - } - function QUb(a, b) { - var c; - c = zUb(a.f, b); - return P6c(V6c(c), a.f.d); - } - function Jwb(a, b) { - var c, d; - c = b; - d = new fxb(); - Lwb(a, c, d); - return d.d; - } - function NJb(a, b, c, d) { - var e; - e = new aHb(); - b.a[c.g] = e; - Npb(a.b, d, e); - } - function zid(a, b, c) { - var d; - d = a.Yg(b); - d >= 0 ? a.sh(d, c) : uid(a, b, c); - } - function hvd(a, b, c) { - evd(); - !!a && Rhb(dvd, a, b); - !!a && Rhb(cvd, a, c); - } - function g_c(a, b, c) { - this.i = new Rkb(); - this.b = a; - this.g = b; - this.a = c; - } - function VZc(a, b, c) { - this.c = new Rkb(); - this.e = a; - this.f = b; - this.b = c; - } - function b$c(a, b, c) { - this.a = new Rkb(); - this.e = a; - this.f = b; - this.c = c; - } - function Zy(a, b) { - Py(this); - this.f = b; - this.g = a; - Ry(this); - this._d(); - } - function ZA(a, b) { - var c; - c = a.q.getHours(); - a.q.setDate(b); - YA(a, c); - } - function no(a, b) { - var c; - Qb(b); - for (c = a.a; c; c = c.c) { - b.Od(c.g, c.i); - } - } - function Fx(a) { - var b; - b = new Uqb(Cv(a.length)); - nmb(b, a); - return b; - } - function ecb(a) { - function b() { - } - ; - b.prototype = a || {}; - return new b(); - } - function dkb(a, b) { - if (Zjb(a, b)) { - wkb(a); - return true; - } - return false; - } - function aC(a, b) { - if (b == null) { - throw vbb(new Geb()); - } - return bC(a, b); - } - function tdb(a) { - if (a.qe()) { - return null; - } - var b = a.n; - return _bb[b]; - } - function Mld(a) { - if (a.Db >> 16 != 3) - return null; - return BD(a.Cb, 33); - } - function mpd(a) { - if (a.Db >> 16 != 9) - return null; - return BD(a.Cb, 33); - } - function fmd(a) { - if (a.Db >> 16 != 6) - return null; - return BD(a.Cb, 79); - } - function Ind(a) { - if (a.Db >> 16 != 7) - return null; - return BD(a.Cb, 235); - } - function Fod(a) { - if (a.Db >> 16 != 7) - return null; - return BD(a.Cb, 160); - } - function Xod(a) { - if (a.Db >> 16 != 11) - return null; - return BD(a.Cb, 33); - } - function nid(a, b) { - var c; - c = a.Yg(b); - return c >= 0 ? a.lh(c) : tid(a, b); - } - function Dtd(a, b) { - var c; - c = new Bsb(b); - Ve(c, a); - return new Tkb(c); - } - function Uud(a) { - var b; - b = a.d; - b = a.si(a.f); - wtd(a, b); - return b.Ob(); - } - function t_b(a, b) { - a.b += b.b; - a.c += b.c; - a.d += b.d; - a.a += b.a; - return a; - } - function A4b(a, b) { - return $wnd.Math.abs(a) < $wnd.Math.abs(b) ? a : b; - } - function Zod(a) { - return !a.a && (a.a = new cUd(E2, a, 10, 11)), a.a.i > 0; - } - function oDb() { - this.a = new zsb(); - this.e = new Tqb(); - this.g = 0; - this.i = 0; - } - function BGc(a) { - this.a = a; - this.b = KC(SX, nie, 1944, a.e.length, 0, 2); - } - function RHc(a, b, c) { - var d; - d = SHc(a, b, c); - a.b = new BHc(d.c.length); - } - function eMc() { - eMc = ccb; - cMc = new fMc(vle, 0); - dMc = new fMc("UP", 1); - } - function STc() { - STc = ccb; - QTc = new TTc(Yqe, 0); - RTc = new TTc("FAN", 1); - } - function evd() { - evd = ccb; - dvd = new Lqb(); - cvd = new Lqb(); - ivd(hK, new jvd()); - } - function Swd(a) { - if (a.p != 0) - throw vbb(new Ydb()); - return Kbb(a.f, 0); - } - function _wd(a) { - if (a.p != 0) - throw vbb(new Ydb()); - return Kbb(a.k, 0); - } - function MHd(a) { - if (a.Db >> 16 != 3) - return null; - return BD(a.Cb, 147); - } - function ZJd(a) { - if (a.Db >> 16 != 6) - return null; - return BD(a.Cb, 235); - } - function WId(a) { - if (a.Db >> 16 != 17) - return null; - return BD(a.Cb, 26); - } - function rdb(a, b) { - var c = a.a = a.a || []; - return c[b] || (c[b] = a.le(b)); - } - function hrb(a, b) { - var c; - c = a.a.get(b); - return c == null ? new Array() : c; - } - function aB(a, b) { - var c; - c = a.q.getHours(); - a.q.setMonth(b); - YA(a, c); - } - function Shb(a, b, c) { - return b == null ? jrb(a.f, null, c) : Drb(a.g, b, c); - } - function FLd(a, b, c, d, e, f) { - return new pSd(a.e, b, a.aj(), c, d, e, f); - } - function Tfb(a, b, c) { - a.a = qfb(a.a, 0, b) + ("" + c) + pfb(a.a, b); - return a; - } - function bq(a, b, c) { - Ekb(a.a, (Vm(), Wj(b, c), new Wo(b, c))); - return a; - } - function uu(a) { - ot(a.c); - a.e = a.a = a.c; - a.c = a.c.c; - ++a.d; - return a.a.f; - } - function vu(a) { - ot(a.e); - a.c = a.a = a.e; - a.e = a.e.e; - --a.d; - return a.a.f; - } - function RZb(a, b) { - !!a.d && Lkb(a.d.e, a); - a.d = b; - !!a.d && Ekb(a.d.e, a); - } - function QZb(a, b) { - !!a.c && Lkb(a.c.g, a); - a.c = b; - !!a.c && Ekb(a.c.g, a); - } - function $_b(a, b) { - !!a.c && Lkb(a.c.a, a); - a.c = b; - !!a.c && Ekb(a.c.a, a); - } - function F0b(a, b) { - !!a.i && Lkb(a.i.j, a); - a.i = b; - !!a.i && Ekb(a.i.j, a); - } - function jDb(a, b, c) { - this.a = b; - this.c = a; - this.b = (Qb(c), new Tkb(c)); - } - function qXb(a, b, c) { - this.a = b; - this.c = a; - this.b = (Qb(c), new Tkb(c)); - } - function aOb(a, b) { - this.a = a; - this.c = R6c(this.a); - this.b = new K6c(b); - } - function IAb(a) { - var b; - Uzb(a); - b = new Tqb(); - return JAb(a, new jBb(b)); - } - function wCb(a, b) { - if (a < 0 || a > b) { - throw vbb(new qcb(Ake + a + Bke + b)); - } - } - function Ppb(a, b) { - return vqb(a.a, b) ? Qpb(a, BD(b, 22).g, null) : null; - } - function WUb(a) { - LUb(); - return Bcb(), BD(a.a, 81).d.e != 0 ? true : false; - } - function qs() { - qs = ccb; - ps = as((hs(), OC(GC(yG, 1), Kie, 538, 0, [gs]))); - } - function SBc() { - SBc = ccb; - RBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b)); - } - function ZBc() { - ZBc = ccb; - YBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b)); - } - function oCc() { - oCc = ccb; - nCc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b)); - } - function aJc() { - aJc = ccb; - _Ic = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b)); - } - function FJc() { - FJc = ccb; - EJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b)); - } - function ILc() { - ILc = ccb; - HLc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b)); - } - function wMc() { - wMc = ccb; - vMc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b)); - } - function fUc() { - fUc = ccb; - eUc = c3c(new j3c(), (yRc(), xRc), (qSc(), kSc)); - } - function DOc(a, b, c, d) { - this.c = a; - this.d = d; - BOc(this, b); - COc(this, c); - } - function W3c(a) { - this.c = new Psb(); - this.b = a.b; - this.d = a.c; - this.a = a.a; - } - function e7c(a) { - this.a = $wnd.Math.cos(a); - this.b = $wnd.Math.sin(a); - } - function BOc(a, b) { - !!a.a && Lkb(a.a.k, a); - a.a = b; - !!a.a && Ekb(a.a.k, a); - } - function COc(a, b) { - !!a.b && Lkb(a.b.f, a); - a.b = b; - !!a.b && Ekb(a.b.f, a); - } - function D1c(a, b) { - E1c(a, a.b, a.c); - BD(a.b.b, 65); - !!b && BD(b.b, 65).b; - } - function BUd(a, b) { - CUd(a, b); - JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2); - } - function cJd(a, b) { - JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4); - pnd(a, b); - } - function lKd(a, b) { - JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null); - pnd(a, b); - } - function T2d(a, b) { - return Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a); - } - function jsd(a, b) { - var c, d; - c = b.c; - d = c != null; - d && Qpd(a, new yC(b.c)); - } - function XOd(a) { - var b, c; - c = (LFd(), b = new UQd(), b); - NQd(c, a); - return c; - } - function eTd(a) { - var b, c; - c = (LFd(), b = new UQd(), b); - NQd(c, a); - return c; - } - function yCc(a, b) { - var c; - c = new H1b(a); - b.c[b.c.length] = c; - return c; - } - function Aw(a, b) { - var c; - c = BD(Hv(nd(a.a), b), 14); - return !c ? 0 : c.gc(); - } - function UAb(a) { - var b; - Uzb(a); - b = (ipb(), ipb(), gpb); - return VAb(a, b); - } - function nr(a) { - var b; - while (true) { - b = a.Pb(); - if (!a.Ob()) { - return b; - } - } - } - function Ki(a, b) { - Ii.call(this, new Mqb(Cv(a))); - Xj(b, mie); - this.a = b; - } - function Jib(a, b, c) { - xCb(b, c, a.gc()); - this.c = a; - this.a = b; - this.b = c - b; - } - function Mkb(a, b, c) { - var d; - xCb(b, c, a.c.length); - d = c - b; - cCb(a.c, b, d); - } - function Fub(a, b) { - Eub(a, Tbb(xbb(Obb(b, 24), nke)), Tbb(xbb(b, nke))); - } - function tCb(a, b) { - if (a < 0 || a >= b) { - throw vbb(new qcb(Ake + a + Bke + b)); - } - } - function BCb(a, b) { - if (a < 0 || a >= b) { - throw vbb(new Xfb(Ake + a + Bke + b)); - } - } - function Kub(a, b) { - this.b = (uCb(a), a); - this.a = (b & Rje) == 0 ? b | 64 | oie : b; - } - function kkb(a) { - Vjb(this); - dCb(this.a, geb($wnd.Math.max(8, a)) << 1); - } - function A0b(a) { - return l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])); - } - function Iyb() { - Fyb(); - return OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb]); - } - function jHb() { - gHb(); - return OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]); - } - function QHb() { - NHb(); - return OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb]); - } - function HIb() { - EIb(); - return OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb]); - } - function UXb() { - RXb(); - return OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb]); - } - function BTb() { - yTb(); - return OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb]); - } - function Bzc() { - xzc(); - return OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc]); - } - function Xpc() { - Rpc(); - return OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc]); - } - function eqc() { - bqc(); - return OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc]); - } - function Jqc() { - Gqc(); - return OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc]); - } - function Ikc() { - Fkc(); - return OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]); - } - function hsc() { - esc(); - return OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc]); - } - function $rc() { - Xrc(); - return OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc]); - } - function NAc() { - KAc(); - return OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc]); - } - function wAc() { - tAc(); - return OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc]); - } - function WAc() { - TAc(); - return OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc]); - } - function OBc() { - LBc(); - return OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc]); - } - function wBc() { - tBc(); - return OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc]); - } - function FBc() { - CBc(); - return OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc]); - } - function uGc() { - rGc(); - return OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc]); - } - function xVc() { - tVc(); - return OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc]); - } - function tWc() { - pWc(); - return OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc]); - } - function CYc() { - zYc(); - return OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc]); - } - function wXc() { - sXc(); - return OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc]); - } - function _$c() { - Y$c(); - return OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c]); - } - function kbd() { - hbd(); - return OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd]); - } - function tad() { - qad(); - return OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad]); - } - function o3d(a, b) { - return p3d(a, b, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0); - } - function LZc(a, b, c) { - var d; - d = MZc(a, b, false); - return d.b <= b && d.a <= c; - } - function tMc(a, b, c) { - var d; - d = new sMc(); - d.b = b; - d.a = c; - ++b.b; - Ekb(a.d, d); - } - function fs(a, b) { - var c; - c = (uCb(a), a).g; - lCb(!!c); - uCb(b); - return c(b); - } - function av(a, b) { - var c, d; - d = cv(a, b); - c = a.a.Zc(d); - return new qv(a, c); - } - function cKd(a) { - if (a.Db >> 16 != 6) - return null; - return BD(aid(a), 235); - } - function Uwd(a) { - if (a.p != 2) - throw vbb(new Ydb()); - return Tbb(a.f) & aje; - } - function bxd(a) { - if (a.p != 2) - throw vbb(new Ydb()); - return Tbb(a.k) & aje; - } - function Z1d(a) { - a.a == (T0d(), S0d) && d2d(a, U0d(a.g, a.b)); - return a.a; - } - function _1d(a) { - a.d == (T0d(), S0d) && f2d(a, Y0d(a.g, a.b)); - return a.d; - } - function mlb(a) { - sCb(a.a < a.c.c.length); - a.b = a.a++; - return a.c.c[a.b]; - } - function hEb(a, b) { - a.b = a.b | b.b; - a.c = a.c | b.c; - a.d = a.d | b.d; - a.a = a.a | b.a; - } - function xbb(a, b) { - return zbb(dD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b)); - } - function Mbb(a, b) { - return zbb(jD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b)); - } - function Vbb(a, b) { - return zbb(rD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b)); - } - function Dub(a) { - return wbb(Nbb(Cbb(Cub(a, 32)), 32), Cbb(Cub(a, 32))); - } - function Mu(a) { - Qb(a); - return JD(a, 14) ? new Tkb(BD(a, 14)) : Nu(a.Kc()); - } - function EWb(a, b) { - AWb(); - return a.c == b.c ? Kdb(b.d, a.d) : Kdb(a.c, b.c); - } - function FWb(a, b) { - AWb(); - return a.c == b.c ? Kdb(a.d, b.d) : Kdb(a.c, b.c); - } - function HWb(a, b) { - AWb(); - return a.c == b.c ? Kdb(a.d, b.d) : Kdb(b.c, a.c); - } - function GWb(a, b) { - AWb(); - return a.c == b.c ? Kdb(b.d, a.d) : Kdb(b.c, a.c); - } - function WGb(a, b) { - var c; - c = Edb(ED(a.a.We((Y9c(), Q9c)))); - XGb(a, b, c); - } - function Rgc(a, b) { - var c; - c = BD(Ohb(a.g, b), 57); - Hkb(b.d, new Qhc(a, c)); - } - function GYb(a, b) { - var c, d; - c = d_b(a); - d = d_b(b); - return c < d ? -1 : c > d ? 1 : 0; - } - function bjc(a, b) { - var c, d; - c = ajc(b); - d = c; - return BD(Ohb(a.c, d), 19).a; - } - function iSc(a, b) { - var c; - c = a + ""; - while (c.length < b) { - c = "0" + c; - } - return c; - } - function WRc(a) { - return a.c == null || a.c.length == 0 ? "n_" + a.g : "n_" + a.c; - } - function oRb(a) { - return a.c == null || a.c.length == 0 ? "n_" + a.b : "n_" + a.c; - } - function qz(a, b) { - return !!a && !!a.equals ? a.equals(b) : PD(a) === PD(b); - } - function dkd(a, b) { - if (b == 0) { - return !!a.o && a.o.f != 0; - } - return mid(a, b); - } - function Tdd(a, b, c) { - var d; - if (a.n && !!b && !!c) { - d = new kgd(); - Ekb(a.e, d); - } - } - function cIc(a, b, c) { - var d; - d = a.d[b.p]; - a.d[b.p] = a.d[c.p]; - a.d[c.p] = d; - } - function kxd(a, b, c) { - this.d = a; - this.j = b; - this.e = c; - this.o = -1; - this.p = 3; - } - function lxd(a, b, c) { - this.d = a; - this.k = b; - this.f = c; - this.o = -1; - this.p = 5; - } - function zge(a, b, c) { - xfe.call(this, 25); - this.b = a; - this.a = b; - this.c = c; - } - function $fe(a) { - wfe(); - xfe.call(this, a); - this.c = false; - this.a = false; - } - function sSd(a, b, c, d, e, f) { - rSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function uSd(a, b, c, d, e, f) { - tSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function wSd(a, b, c, d, e, f) { - vSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function ySd(a, b, c, d, e, f) { - xSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function ASd(a, b, c, d, e, f) { - zSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function CSd(a, b, c, d, e, f) { - BSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function HSd(a, b, c, d, e, f) { - GSd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function JSd(a, b, c, d, e, f) { - ISd.call(this, a, b, c, d, e); - f && (this.o = -2); - } - function nWd(a, b, c, d) { - VVd.call(this, c); - this.b = a; - this.c = b; - this.d = d; - } - function x$c(a, b) { - this.a = new Rkb(); - this.d = new Rkb(); - this.f = a; - this.c = b; - } - function PTb() { - this.c = new bUb(); - this.a = new FYb(); - this.b = new wZb(); - $Yb(); - } - function b2c() { - Y1c(); - this.b = new Lqb(); - this.a = new Lqb(); - this.c = new Rkb(); - } - function j2d(a, b) { - this.g = a; - this.d = (T0d(), S0d); - this.a = S0d; - this.b = b; - } - function O1d(a, b) { - this.f = a; - this.a = (T0d(), R0d); - this.c = R0d; - this.b = b; - } - function h9d(a, b) { - !a.c && (a.c = new u3d(a, 0)); - f3d(a.c, (Q8d(), I8d), b); - } - function $Tc() { - $Tc = ccb; - ZTc = new _Tc("DFS", 0); - YTc = new _Tc("BFS", 1); - } - function Cc(a, b, c) { - var d; - d = BD(a.Zb().xc(b), 14); - return !!d && d.Hc(c); - } - function Gc(a, b, c) { - var d; - d = BD(a.Zb().xc(b), 14); - return !!d && d.Mc(c); - } - function Ofb(a, b, c, d) { - a.a += "" + qfb(b == null ? Xhe : fcb(b), c, d); - return a; - } - function Xnd(a, b, c, d, e, f) { - Ynd(a, b, c, f); - eLd(a, d); - fLd(a, e); - return a; - } - function Ysb(a) { - sCb(a.b.b != a.d.a); - a.c = a.b = a.b.b; - --a.a; - return a.c.c; - } - function Jgb(a) { - while (a.d > 0 && a.a[--a.d] == 0) - ; - a.a[a.d++] == 0 && (a.e = 0); - } - function wwb(a) { - return !a.a ? a.c : a.e.length == 0 ? a.a.a : a.a.a + ("" + a.e); - } - function RSd(a) { - return !!a.a && QSd(a.a.a).i != 0 && !(!!a.b && QTd(a.b)); - } - function cLd(a) { - return !!a.u && VKd(a.u.a).i != 0 && !(!!a.n && FMd(a.n)); - } - function $i(a) { - return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 16, new ij(a)); - } - function XA(a, b) { - return ueb(Cbb(a.q.getTime()), Cbb(b.q.getTime())); - } - function k_b(a) { - return BD(Qkb(a, KC(AQ, jne, 17, a.c.length, 0, 1)), 474); - } - function l_b(a) { - return BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193); - } - function cKc(a) { - FJc(); - return !OZb(a) && !(!OZb(a) && a.c.i.c == a.d.i.c); - } - function kDb(a, b, c) { - var d; - d = (Qb(a), new Tkb(a)); - iDb(new jDb(d, b, c)); - } - function rXb(a, b, c) { - var d; - d = (Qb(a), new Tkb(a)); - pXb(new qXb(d, b, c)); - } - function Nwb(a, b) { - var c; - c = 1 - b; - a.a[c] = Owb(a.a[c], c); - return Owb(a, b); - } - function YXc(a, b) { - var c; - a.e = new QXc(); - c = gVc(b); - Okb(c, a.c); - ZXc(a, c, 0); - } - function o4c(a, b, c, d) { - var e; - e = new w4c(); - e.a = b; - e.b = c; - e.c = d; - Dsb(a.a, e); - } - function p4c(a, b, c, d) { - var e; - e = new w4c(); - e.a = b; - e.b = c; - e.c = d; - Dsb(a.b, e); - } - function i6d(a) { - var b, c, d; - b = new A6d(); - c = s6d(b, a); - z6d(b); - d = c; - return d; - } - function vZd() { - var a, b, c; - b = (c = (a = new UQd(), a), c); - Ekb(rZd, b); - return b; - } - function H2c(a) { - a.j.c = KC(SI, Uhe, 1, 0, 5, 1); - Ae(a.c); - h3c(a.a); - return a; - } - function tgc(a) { - qgc(); - if (JD(a.g, 10)) { - return BD(a.g, 10); - } - return null; - } - function Zw(a) { - if (Ah(a).dc()) { - return false; - } - Bh(a, new bx()); - return true; - } - function _y(b) { - if (!("stack" in b)) { - try { - throw b; - } catch (a) { - } - } - return b; - } - function Pb(a, b) { - if (a < 0 || a >= b) { - throw vbb(new qcb(Ib(a, b))); - } - return a; - } - function Tb(a, b, c) { - if (a < 0 || b < a || b > c) { - throw vbb(new qcb(Kb(a, b, c))); - } - } - function eVb(a, b) { - Qqb(a.a, b); - if (b.d) { - throw vbb(new hz(Hke)); - } - b.d = a; - } - function xpb(a, b) { - if (b.$modCount != a.$modCount) { - throw vbb(new Apb()); - } - } - function $pb(a, b) { - if (JD(b, 42)) { - return Jd(a.a, BD(b, 42)); - } - return false; - } - function dib(a, b) { - if (JD(b, 42)) { - return Jd(a.a, BD(b, 42)); - } - return false; - } - function msb(a, b) { - if (JD(b, 42)) { - return Jd(a.a, BD(b, 42)); - } - return false; - } - function qAb(a, b) { - if (a.a <= a.b) { - b.ud(a.a++); - return true; - } - return false; - } - function Sbb(a) { - var b; - if (Fbb(a)) { - b = a; - return b == -0 ? 0 : b; - } - return oD(a); - } - function tAb(a) { - var b; - Tzb(a); - b = new drb(); - _ub(a.a, new BAb(b)); - return b; - } - function Yzb(a) { - var b; - Tzb(a); - b = new Gpb(); - _ub(a.a, new mAb(b)); - return b; - } - function Bib(a, b) { - this.a = a; - vib.call(this, a); - wCb(b, a.gc()); - this.b = b; - } - function orb(a) { - this.e = a; - this.b = this.e.a.entries(); - this.a = new Array(); - } - function Oi(a) { - return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 273, new cj(a)); - } - function Qu(a) { - return new Skb((Xj(a, Mie), Oy(wbb(wbb(5, a), a / 10 | 0)))); - } - function m_b(a) { - return BD(Qkb(a, KC(aR, lne, 11, a.c.length, 0, 1)), 1943); - } - function sMb(a, b, c) { - return c.f.c.length > 0 ? HMb(a.a, b, c) : HMb(a.b, b, c); - } - function SZb(a, b, c) { - !!a.d && Lkb(a.d.e, a); - a.d = b; - !!a.d && Dkb(a.d.e, c, a); - } - function a5b(a, b) { - i5b(b, a); - k5b(a.d); - k5b(BD(vNb(a, (Nyc(), wxc)), 207)); - } - function _4b(a, b) { - f5b(b, a); - h5b(a.d); - h5b(BD(vNb(a, (Nyc(), wxc)), 207)); - } - function Ypd(a, b) { - var c, d; - c = aC(a, b); - d = null; - !!c && (d = c.fe()); - return d; - } - function Zpd(a, b) { - var c, d; - c = tB(a, b); - d = null; - !!c && (d = c.ie()); - return d; - } - function $pd(a, b) { - var c, d; - c = aC(a, b); - d = null; - !!c && (d = c.ie()); - return d; - } - function _pd(a, b) { - var c, d; - c = aC(a, b); - d = null; - !!c && (d = aqd(c)); - return d; - } - function Tqd(a, b, c) { - var d; - d = Wpd(c); - ro(a.g, d, b); - ro(a.i, b, c); - return b; - } - function Ez(a, b, c) { - var d; - d = Cz(); - try { - return Bz(a, b, c); - } finally { - Fz(d); - } - } - function C6d(a) { - var b; - b = a.Wg(); - this.a = JD(b, 69) ? BD(b, 69).Zh() : b.Kc(); - } - function j3c() { - D2c.call(this); - this.j.c = KC(SI, Uhe, 1, 0, 5, 1); - this.a = -1; - } - function mxd(a, b, c, d) { - this.d = a; - this.n = b; - this.g = c; - this.o = d; - this.p = -1; - } - function jk(a, b, c, d) { - this.e = d; - this.d = null; - this.c = a; - this.a = b; - this.b = c; - } - function uEc(a, b, c) { - this.d = new HEc(this); - this.e = a; - this.i = b; - this.f = c; - } - function msc() { - msc = ccb; - ksc = new nsc(gle, 0); - lsc = new nsc("TOP_LEFT", 1); - } - function cDc() { - cDc = ccb; - bDc = ix(meb(1), meb(4)); - aDc = ix(meb(1), meb(2)); - } - function z_c() { - z_c = ccb; - y_c = as((s_c(), OC(GC(O_, 1), Kie, 551, 0, [r_c]))); - } - function q_c() { - q_c = ccb; - p_c = as((i_c(), OC(GC(N_, 1), Kie, 482, 0, [h_c]))); - } - function Z0c() { - Z0c = ccb; - Y0c = as((R0c(), OC(GC(W_, 1), Kie, 530, 0, [Q0c]))); - } - function hPb() { - hPb = ccb; - gPb = as((cPb(), OC(GC(GO, 1), Kie, 481, 0, [bPb]))); - } - function yLb() { - vLb(); - return OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb]); - } - function qxb() { - lxb(); - return OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb]); - } - function UOb() { - ROb(); - return OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb]); - } - function UMb() { - RMb(); - return OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb]); - } - function sWb() { - lWb(); - return OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb]); - } - function kbc() { - gbc(); - return OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc]); - } - function Vc(a, b, c, d) { - return JD(c, 54) ? new Cg(a, b, c, d) : new qg(a, b, c, d); - } - function Djc() { - Ajc(); - return OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc]); - } - function okc(a) { - var b; - return a.j == (Ucd(), Rcd) && (b = pkc(a), uqb(b, zcd)); - } - function Mdc(a, b) { - var c; - c = b.a; - QZb(c, b.c.d); - RZb(c, b.d.d); - q7c(c.a, a.n); - } - function Smc(a, b) { - return BD(Btb(QAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113); - } - function Tmc(a, b) { - return BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113); - } - function _w(a) { - return new Kub(rmb(BD(a.a.dd(), 14).gc(), a.a.cd()), 16); - } - function Qq(a) { - if (JD(a, 14)) { - return BD(a, 14).dc(); - } - return !a.Kc().Ob(); - } - function ugc(a) { - qgc(); - if (JD(a.g, 145)) { - return BD(a.g, 145); - } - return null; - } - function Ko(a) { - if (a.e.g != a.b) { - throw vbb(new Apb()); - } - return !!a.c && a.d > 0; - } - function Xsb(a) { - sCb(a.b != a.d.c); - a.c = a.b; - a.b = a.b.a; - ++a.a; - return a.c.c; - } - function Xjb(a, b) { - uCb(b); - NC(a.a, a.c, b); - a.c = a.c + 1 & a.a.length - 1; - _jb(a); - } - function Wjb(a, b) { - uCb(b); - a.b = a.b - 1 & a.a.length - 1; - NC(a.a, a.b, b); - _jb(a); - } - function A2c(a, b) { - var c; - for (c = a.j.c.length; c < b; c++) { - Ekb(a.j, a.rg()); - } - } - function gBc(a, b, c, d) { - var e; - e = d[b.g][c.g]; - return Edb(ED(vNb(a.a, e))); - } - function goc(a, b, c, d, e) { - this.i = a; - this.a = b; - this.e = c; - this.j = d; - this.f = e; - } - function DZc(a, b, c, d, e) { - this.a = a; - this.e = b; - this.f = c; - this.b = d; - this.g = e; - } - function Fz(a) { - a && Mz((Kz(), Jz)); - --xz; - if (a) { - if (zz != -1) { - Hz(zz); - zz = -1; - } - } - } - function Nzc() { - Izc(); - return OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc]); - } - function ERc() { - yRc(); - return OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc]); - } - function mXc() { - iXc(); - return OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc]); - } - function wdd() { - tdd(); - return OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd]); - } - function vbd() { - rbd(); - return OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd]); - } - function Dad() { - Aad(); - return OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad]); - } - function Ged() { - Ded(); - return OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed]); - } - function sgd() { - pgd(); - return OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd]); - } - function gvd(a) { - evd(); - return Mhb(dvd, a) ? BD(Ohb(dvd, a), 331).ug() : null; - } - function cid(a, b, c) { - return b < 0 ? tid(a, c) : BD(c, 66).Nj().Sj(a, a.yh(), b); - } - function Sqd(a, b, c) { - var d; - d = Wpd(c); - ro(a.d, d, b); - Rhb(a.e, b, c); - return b; - } - function Uqd(a, b, c) { - var d; - d = Wpd(c); - ro(a.j, d, b); - Rhb(a.k, b, c); - return b; - } - function dtd(a) { - var b, c; - b = (Fhd(), c = new Tld(), c); - !!a && Rld(b, a); - return b; - } - function wud(a) { - var b; - b = a.ri(a.i); - a.i > 0 && $fb(a.g, 0, b, 0, a.i); - return b; - } - function qEd(a, b) { - pEd(); - var c; - c = BD(Ohb(oEd, a), 55); - return !c || c.wj(b); - } - function Twd(a) { - if (a.p != 1) - throw vbb(new Ydb()); - return Tbb(a.f) << 24 >> 24; - } - function axd(a) { - if (a.p != 1) - throw vbb(new Ydb()); - return Tbb(a.k) << 24 >> 24; - } - function gxd(a) { - if (a.p != 7) - throw vbb(new Ydb()); - return Tbb(a.k) << 16 >> 16; - } - function Zwd(a) { - if (a.p != 7) - throw vbb(new Ydb()); - return Tbb(a.f) << 16 >> 16; - } - function sr(a) { - var b; - b = 0; - while (a.Ob()) { - a.Pb(); - b = wbb(b, 1); - } - return Oy(b); - } - function nx(a, b) { - var c; - c = new Vfb(); - a.xd(c); - c.a += ".."; - b.yd(c); - return c.a; - } - function Sgc(a, b, c) { - var d; - d = BD(Ohb(a.g, c), 57); - Ekb(a.a.c, new vgd(b, d)); - } - function VCb(a, b, c) { - return Ddb(ED(Wd(irb(a.f, b))), ED(Wd(irb(a.f, c)))); - } - function E2d(a, b, c) { - return F2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0); - } - function L2d(a, b, c) { - return M2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0); - } - function q3d(a, b, c) { - return r3d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0); - } - function JJc(a, b) { - return a == (j0b(), h0b) && b == h0b ? 4 : a == h0b || b == h0b ? 8 : 32; - } - function Nd(a, b) { - return PD(b) === PD(a) ? "(this Map)" : b == null ? Xhe : fcb(b); - } - function kFd(a, b) { - return BD(b == null ? Wd(irb(a.f, null)) : Crb(a.g, b), 281); - } - function Rqd(a, b, c) { - var d; - d = Wpd(c); - Rhb(a.b, d, b); - Rhb(a.c, b, c); - return b; - } - function Bfd(a, b) { - var c; - c = b; - while (c) { - O6c(a, c.i, c.j); - c = Xod(c); - } - return a; - } - function kt(a, b) { - var c; - c = vmb(Nu(new wu(a, b))); - ir(new wu(a, b)); - return c; - } - function R6d(a, b) { - Q6d(); - var c; - c = BD(a, 66).Mj(); - kVd(c, b); - return c.Ok(b); - } - function TOc(a, b, c, d, e) { - var f; - f = OOc(e, c, d); - Ekb(b, tOc(e, f)); - XOc(a, e, b); - } - function mic(a, b, c) { - a.i = 0; - a.e = 0; - if (b == c) { - return; - } - lic(a, b, c); - kic(a, b, c); - } - function dB(a, b) { - var c; - c = a.q.getHours(); - a.q.setFullYear(b + nje); - YA(a, c); - } - function dC(d, a, b) { - if (b) { - var c = b.ee(); - d.a[a] = c(b); - } else { - delete d.a[a]; - } - } - function vB(d, a, b) { - if (b) { - var c = b.ee(); - b = c(b); - } else { - b = void 0; - } - d.a[a] = b; - } - function pCb(a) { - if (a < 0) { - throw vbb(new Feb("Negative array size: " + a)); - } - } - function VKd(a) { - if (!a.n) { - $Kd(a); - a.n = new JMd(a, j5, a); - _Kd(a); - } - return a.n; - } - function Fqb(a) { - sCb(a.a < a.c.a.length); - a.b = a.a; - Dqb(a); - return a.c.b[a.b]; - } - function Yjb(a) { - if (a.b == a.c) { - return; - } - a.a = KC(SI, Uhe, 1, 8, 5, 1); - a.b = 0; - a.c = 0; - } - function AQb(a) { - this.b = new Lqb(); - this.c = new Lqb(); - this.d = new Lqb(); - this.a = a; - } - function lge(a, b) { - wfe(); - xfe.call(this, a); - this.a = b; - this.c = -1; - this.b = -1; - } - function lSd(a, b, c, d) { - kxd.call(this, 1, c, d); - jSd(this); - this.c = a; - this.b = b; - } - function mSd(a, b, c, d) { - lxd.call(this, 1, c, d); - jSd(this); - this.c = a; - this.b = b; - } - function O7d(a, b, c, d, e, f, g10) { - nxd.call(this, b, d, e, f, g10); - this.c = a; - this.a = c; - } - function LVd(a, b, c) { - this.e = a; - this.a = SI; - this.b = R5d(b); - this.c = b; - this.d = c; - } - function Lo(a) { - this.e = a; - this.c = this.e.a; - this.b = this.e.g; - this.d = this.e.i; - } - function nYd(a) { - this.c = a; - this.a = BD(wId(a), 148); - this.b = this.a.Aj().Nh(); - } - function Irb(a) { - this.d = a; - this.b = this.d.a.entries(); - this.a = this.b.next(); - } - function $rb() { - Lqb.call(this); - Trb(this); - this.d.b = this.d; - this.d.a = this.d; - } - function mRb(a, b) { - _Qb.call(this); - this.a = a; - this.b = b; - Ekb(this.a.b, this); - } - function uFd(a, b) { - var c; - return c = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c); - } - function FFd(a, b) { - var c; - return c = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c); - } - function Fob(a, b) { - var c; - for (c = 0; c < b; ++c) { - NC(a, c, new Rob(BD(a[c], 42))); - } - } - function Lgb(a, b) { - var c; - for (c = a.d - 1; c >= 0 && a.a[c] === b[c]; c--) - ; - return c < 0; - } - function Ucc(a, b) { - Occ(); - var c; - c = a.j.g - b.j.g; - if (c != 0) { - return c; - } - return 0; - } - function Dtb(a, b) { - uCb(b); - if (a.a != null) { - return Itb(b.Kb(a.a)); - } - return ztb; - } - function Gx(a) { - var b; - if (a) { - return new Bsb(a); - } - b = new zsb(); - Jq(b, a); - return b; - } - function GAb(a, b) { - var c; - return b.b.Kb(SAb(a, b.c.Ee(), (c = new TBb(b), c))); - } - function Hub(a) { - zub(); - Eub(this, Tbb(xbb(Obb(a, 24), nke)), Tbb(xbb(a, nke))); - } - function REb() { - REb = ccb; - QEb = as((MEb(), OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb]))); - } - function ZEb() { - ZEb = ccb; - YEb = as((UEb(), OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb]))); - } - function aSb() { - aSb = ccb; - _Rb = as((XRb(), OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb]))); - } - function D5b() { - D5b = ccb; - C5b = as((y5b(), OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b]))); - } - function Cqc() { - Cqc = ccb; - Bqc = as((xqc(), OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc]))); - } - function erc() { - erc = ccb; - drc = as((_qc(), OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc]))); - } - function eBc() { - eBc = ccb; - dBc = as((_Ac(), OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc]))); - } - function GAc() { - GAc = ccb; - FAc = as((BAc(), OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc]))); - } - function Npc() { - Npc = ccb; - Mpc = as((Ipc(), OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc]))); - } - function rsc() { - rsc = ccb; - qsc = as((msc(), OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc]))); - } - function MOc() { - MOc = ccb; - LOc = as((HOc(), OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc]))); - } - function ZIc() { - ZIc = ccb; - YIc = as((UIc(), OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc]))); - } - function bMc() { - bMc = ccb; - aMc = as((YLc(), OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc]))); - } - function jMc() { - jMc = ccb; - iMc = as((eMc(), OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc]))); - } - function KQc() { - KQc = ccb; - JQc = as((FQc(), OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc]))); - } - function dUc() { - dUc = ccb; - cUc = as(($Tc(), OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc]))); - } - function XUc() { - XUc = ccb; - WUc = as((PUc(), OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc]))); - } - function XTc() { - XTc = ccb; - WTc = as((STc(), OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc]))); - } - function lWc() { - lWc = ccb; - kWc = as((fWc(), OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc]))); - } - function i1c() { - i1c = ccb; - h1c = as((a1c(), OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c]))); - } - function H_c() { - H_c = ccb; - G_c = as((C_c(), OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c]))); - } - function UIc() { - UIc = ccb; - TIc = new VIc("UPPER", 0); - SIc = new VIc("LOWER", 1); - } - function Lqd(a, b) { - var c; - c = new eC(); - Spd(c, "x", b.a); - Spd(c, "y", b.b); - Qpd(a, c); - } - function Oqd(a, b) { - var c; - c = new eC(); - Spd(c, "x", b.a); - Spd(c, "y", b.b); - Qpd(a, c); - } - function Jic(a, b) { - var c, d; - d = false; - do { - c = Mic(a, b); - d = d | c; - } while (c); - return d; - } - function zHc(a, b) { - var c, d; - c = b; - d = 0; - while (c > 0) { - d += a.a[c]; - c -= c & -c; - } - return d; - } - function Cfd(a, b) { - var c; - c = b; - while (c) { - O6c(a, -c.i, -c.j); - c = Xod(c); - } - return a; - } - function reb(a, b) { - var c, d; - uCb(b); - for (d = a.Kc(); d.Ob(); ) { - c = d.Pb(); - b.td(c); - } - } - function me(a, b) { - var c; - c = b.cd(); - return new Wo(c, a.e.pc(c, BD(b.dd(), 14))); - } - function Gsb(a, b, c, d) { - var e; - e = new jtb(); - e.c = b; - e.b = c; - e.a = d; - d.b = c.a = e; - ++a.b; - } - function Nkb(a, b, c) { - var d; - d = (tCb(b, a.c.length), a.c[b]); - a.c[b] = c; - return d; - } - function lFd(a, b, c) { - return BD(b == null ? jrb(a.f, null, c) : Drb(a.g, b, c), 281); - } - function fRb(a) { - return !!a.c && !!a.d ? oRb(a.c) + "->" + oRb(a.d) : "e_" + FCb(a); - } - function FAb(a, b) { - return (Uzb(a), WAb(new YAb(a, new qBb(b, a.a)))).sd(DAb); - } - function tUb() { - qUb(); - return OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb]); - } - function _cd() { - Ucd(); - return OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]); - } - function Dz(b) { - Az(); - return function() { - return Ez(b, this, arguments); - var a; - }; - } - function sz() { - if (Date.now) { - return Date.now(); - } - return (/* @__PURE__ */ new Date()).getTime(); - } - function OZb(a) { - if (!a.c || !a.d) { - return false; - } - return !!a.c.i && a.c.i == a.d.i; - } - function pv(a) { - if (!a.c.Sb()) { - throw vbb(new utb()); - } - a.a = true; - return a.c.Ub(); - } - function ko(a) { - a.i = 0; - Alb(a.b, null); - Alb(a.c, null); - a.a = null; - a.e = null; - ++a.g; - } - function ycb(a) { - wcb.call(this, a == null ? Xhe : fcb(a), JD(a, 78) ? BD(a, 78) : null); - } - function PYb(a) { - MYb(); - yXb(this); - this.a = new Psb(); - NYb(this, a); - Dsb(this.a, a); - } - function jYb() { - Ckb(this); - this.b = new f7c(Pje, Pje); - this.a = new f7c(Qje, Qje); - } - function rAb(a, b) { - this.c = 0; - this.b = b; - jvb.call(this, a, 17493); - this.a = this.c; - } - function wyb(a) { - oyb(); - if (lyb) { - return; - } - this.c = a; - this.e = true; - this.a = new Rkb(); - } - function oyb() { - oyb = ccb; - lyb = true; - jyb = false; - kyb = false; - nyb = false; - myb = false; - } - function C3c(a, b) { - if (JD(b, 149)) { - return dfb(a.c, BD(b, 149).c); - } - return false; - } - function zUc(a, b) { - var c; - c = 0; - !!a && (c += a.f.a / 2); - !!b && (c += b.f.a / 2); - return c; - } - function j4c(a, b) { - var c; - c = BD(Wrb(a.d, b), 23); - return c ? c : BD(Wrb(a.e, b), 23); - } - function Lzd(a) { - this.b = a; - Fyd.call(this, a); - this.a = BD(Ajd(this.b.a, 4), 126); - } - function Uzd(a) { - this.b = a; - $yd.call(this, a); - this.a = BD(Ajd(this.b.a, 4), 126); - } - function $Kd(a) { - if (!a.t) { - a.t = new YMd(a); - vtd(new c0d(a), 0, a.t); - } - return a.t; - } - function kad() { - ead(); - return OC(GC(t1, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad]); - } - function Wbd() { - Tbd(); - return OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd]); - } - function Q5c() { - N5c(); - return OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c]); - } - function Q_c() { - N_c(); - return OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c]); - } - function _zc() { - Vzc(); - return OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc]); - } - function sqc() { - mqc(); - return OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc]); - } - function n$c() { - k$c(); - return OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c]); - } - function _jc() { - Xjc(); - return OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc]); - } - function Ftc() { - Ctc(); - return OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc]); - } - function T0d() { - T0d = ccb; - var a, b; - R0d = (LFd(), b = new MPd(), b); - S0d = (a = new OJd(), a); - } - function yUd(a) { - var b; - if (!a.c) { - b = a.r; - JD(b, 88) && (a.c = BD(b, 26)); - } - return a.c; - } - function zc(a) { - a.e = 3; - a.d = a.Yb(); - if (a.e != 2) { - a.e = 0; - return true; - } - return false; - } - function RC(a) { - var b, c, d; - b = a & Eje; - c = a >> 22 & Eje; - d = a < 0 ? Fje : 0; - return TC(b, c, d); - } - function uy(a) { - var b, c, d, e; - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Qzb(b); - } - } - function Tc(a, b) { - var c, d; - c = BD(Iv(a.c, b), 14); - if (c) { - d = c.gc(); - c.$b(); - a.d -= d; - } - } - function tjb(a, b) { - var c, d; - c = b.cd(); - d = Awb(a, c); - return !!d && wtb(d.e, b.dd()); - } - function Qgb(a, b) { - if (b == 0 || a.e == 0) { - return a; - } - return b > 0 ? ihb(a, b) : lhb(a, -b); - } - function Rgb(a, b) { - if (b == 0 || a.e == 0) { - return a; - } - return b > 0 ? lhb(a, b) : ihb(a, -b); - } - function Rr(a) { - if (Qr(a)) { - a.c = a.a; - return a.a.Pb(); - } else { - throw vbb(new utb()); - } - } - function Yac(a) { - var b, c; - b = a.c.i; - c = a.d.i; - return b.k == (j0b(), e0b) && c.k == e0b; - } - function kZb(a) { - var b; - b = new UZb(); - tNb(b, a); - yNb(b, (Nyc(), jxc), null); - return b; - } - function hid(a, b, c) { - var d; - return d = a.Yg(b), d >= 0 ? a._g(d, c, true) : sid(a, b, c); - } - function uHb(a, b, c, d) { - var e; - for (e = 0; e < rHb; e++) { - nHb(a.a[b.g][e], c, d[b.g]); - } - } - function vHb(a, b, c, d) { - var e; - for (e = 0; e < sHb; e++) { - mHb(a.a[e][b.g], c, d[b.g]); - } - } - function vSd(a, b, c, d, e) { - kxd.call(this, b, d, e); - jSd(this); - this.c = a; - this.a = c; - } - function zSd(a, b, c, d, e) { - lxd.call(this, b, d, e); - jSd(this); - this.c = a; - this.a = c; - } - function ISd(a, b, c, d, e) { - oxd.call(this, b, d, e); - jSd(this); - this.c = a; - this.a = c; - } - function qSd(a, b, c, d, e) { - oxd.call(this, b, d, e); - jSd(this); - this.c = a; - this.b = c; - } - function mWd(a, b, c) { - VVd.call(this, c); - this.b = a; - this.c = b; - this.d = (CWd(), AWd); - } - function oxd(a, b, c) { - this.d = a; - this.k = b ? 1 : 0; - this.f = c ? 1 : 0; - this.o = -1; - this.p = 0; - } - function _6d(a, b, c) { - var d; - d = new a7d(a.a); - Ld(d, a.a.a); - jrb(d.f, b, c); - a.a.a = d; - } - function lud(a, b) { - a.qi(a.i + 1); - mud(a, a.i, a.oi(a.i, b)); - a.bi(a.i++, b); - a.ci(); - } - function oud(a) { - var b, c; - ++a.j; - b = a.g; - c = a.i; - a.g = null; - a.i = 0; - a.di(c, b); - a.ci(); - } - function Ou(a) { - var b, c; - Qb(a); - b = Iu(a.length); - c = new Skb(b); - nmb(c, a); - return c; - } - function km(a) { - var b; - b = (Qb(a), a ? new Tkb(a) : Nu(a.Kc())); - smb(b); - return Dm(b); - } - function Kkb(a, b) { - var c; - c = (tCb(b, a.c.length), a.c[b]); - cCb(a.c, b, 1); - return c; - } - function Qc(a, b) { - var c; - c = BD(a.c.xc(b), 14); - !c && (c = a.ic(b)); - return a.pc(b, c); - } - function cfb(a, b) { - var c, d; - c = (uCb(a), a); - d = (uCb(b), b); - return c == d ? 0 : c < d ? -1 : 1; - } - function Fpb(a) { - var b; - b = a.e + a.f; - if (isNaN(b) && Ldb(a.d)) { - return a.d; - } - return b; - } - function uwb(a, b) { - !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b); - Nfb(a.a, b); - return a; - } - function Sb(a, b) { - if (a < 0 || a > b) { - throw vbb(new qcb(Jb(a, b, "index"))); - } - return a; - } - function zhb(a, b, c, d) { - var e; - e = KC(WD, oje, 25, b, 15, 1); - Ahb(e, a, b, c, d); - return e; - } - function _A(a, b) { - var c; - c = a.q.getHours() + (b / 60 | 0); - a.q.setMinutes(b); - YA(a, c); - } - function A$c(a, b) { - return $wnd.Math.min(S6c(b.a, a.d.d.c), S6c(b.b, a.d.d.c)); - } - function Thb(a, b) { - return ND(b) ? b == null ? krb(a.f, null) : Erb(a.g, b) : krb(a.f, b); - } - function b1b(a) { - this.c = a; - this.a = new olb(this.c.a); - this.b = new olb(this.c.b); - } - function kRb() { - this.e = new Rkb(); - this.c = new Rkb(); - this.d = new Rkb(); - this.b = new Rkb(); - } - function MFb() { - this.g = new PFb(); - this.b = new PFb(); - this.a = new Rkb(); - this.k = new Rkb(); - } - function Gjc(a, b, c) { - this.a = a; - this.c = b; - this.d = c; - Ekb(b.e, this); - Ekb(c.b, this); - } - function wBb(a, b) { - fvb.call(this, b.rd(), b.qd() & -6); - uCb(a); - this.a = a; - this.b = b; - } - function CBb(a, b) { - jvb.call(this, b.rd(), b.qd() & -6); - uCb(a); - this.a = a; - this.b = b; - } - function IBb(a, b) { - nvb.call(this, b.rd(), b.qd() & -6); - uCb(a); - this.a = a; - this.b = b; - } - function BQc(a, b, c) { - this.a = a; - this.b = b; - this.c = c; - Ekb(a.t, this); - Ekb(b.i, this); - } - function SRc() { - this.b = new Psb(); - this.a = new Psb(); - this.b = new Psb(); - this.a = new Psb(); - } - function g6c() { - g6c = ccb; - f6c = new Lsd("org.eclipse.elk.labels.labelManager"); - } - function Vac() { - Vac = ccb; - Uac = new Msd("separateLayerConnections", (gbc(), fbc)); - } - function HOc() { - HOc = ccb; - GOc = new IOc("REGULAR", 0); - FOc = new IOc("CRITICAL", 1); - } - function _Ac() { - _Ac = ccb; - $Ac = new aBc("STACKED", 0); - ZAc = new aBc("SEQUENCED", 1); - } - function C_c() { - C_c = ccb; - B_c = new D_c("FIXED", 0); - A_c = new D_c("CENTER_NODE", 1); - } - function PHc(a, b) { - var c; - c = VHc(a, b); - a.b = new BHc(c.c.length); - return OHc(a, c); - } - function KAd(a, b, c) { - var d; - ++a.e; - --a.f; - d = BD(a.d[b].$c(c), 133); - return d.dd(); - } - function JJd(a) { - var b; - if (!a.a) { - b = a.r; - JD(b, 148) && (a.a = BD(b, 148)); - } - return a.a; - } - function poc(a) { - if (a.a) { - if (a.e) { - return poc(a.e); - } - } else { - return a; - } - return null; - } - function ODc(a, b) { - if (a.p < b.p) { - return 1; - } else if (a.p > b.p) { - return -1; - } - return 0; - } - function pvb(a, b) { - uCb(b); - if (a.c < a.d) { - a.ze(b, a.c++); - return true; - } - return false; - } - function QYd(a, b) { - if (Mhb(a.a, b)) { - Thb(a.a, b); - return true; - } else { - return false; - } - } - function fd(a) { - var b, c; - b = a.cd(); - c = BD(a.dd(), 14); - return $j(c.Nc(), new ah(b)); - } - function sqb(a) { - var b; - b = BD(ZBb(a.b, a.b.length), 9); - return new xqb(a.a, b, a.c); - } - function _zb(a) { - var b; - Uzb(a); - b = new fAb(a, a.a.e, a.a.d | 4); - return new bAb(a, b); - } - function HAb(a) { - var b; - Tzb(a); - b = 0; - while (a.a.sd(new RBb())) { - b = wbb(b, 1); - } - return b; - } - function UDc(a, b, c) { - var d, e; - d = 0; - for (e = 0; e < b.length; e++) { - d += a.$f(b[e], d, c); - } - } - function QJb(a, b) { - var c; - if (a.C) { - c = BD(Mpb(a.b, b), 124).n; - c.d = a.C.d; - c.a = a.C.a; - } - } - function Mi(a, b, c) { - Pb(b, a.e.Hd().gc()); - Pb(c, a.c.Hd().gc()); - return a.a[b][c]; - } - function Ugb(a, b) { - Hgb(); - this.e = a; - this.d = 1; - this.a = OC(GC(WD, 1), oje, 25, 15, [b]); - } - function dg(a, b, c, d) { - this.f = a; - this.e = b; - this.d = c; - this.b = d; - this.c = !d ? null : d.d; - } - function o5b(a) { - var b, c, d, e; - e = a.d; - b = a.a; - c = a.b; - d = a.c; - a.d = c; - a.a = d; - a.b = e; - a.c = b; - } - function Y2d(a, b, c, d) { - X2d(a, b, c, M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)); - } - function tac(a, b) { - Odd(b, "Label management", 1); - RD(vNb(a, (g6c(), f6c))); - Qdd(b); - } - function Skb(a) { - Ckb(this); - mCb(a >= 0, "Initial capacity must not be negative"); - } - function lHb() { - lHb = ccb; - kHb = as((gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]))); - } - function SHb() { - SHb = ccb; - RHb = as((NHb(), OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb]))); - } - function JIb() { - JIb = ccb; - IIb = as((EIb(), OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb]))); - } - function Kyb() { - Kyb = ccb; - Jyb = as((Fyb(), OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb]))); - } - function DTb() { - DTb = ccb; - CTb = as((yTb(), OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb]))); - } - function WXb() { - WXb = ccb; - VXb = as((RXb(), OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb]))); - } - function Zpc() { - Zpc = ccb; - Ypc = as((Rpc(), OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc]))); - } - function gqc() { - gqc = ccb; - fqc = as((bqc(), OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc]))); - } - function Lqc() { - Lqc = ccb; - Kqc = as((Gqc(), OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc]))); - } - function Kkc() { - Kkc = ccb; - Jkc = as((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]))); - } - function jsc() { - jsc = ccb; - isc = as((esc(), OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc]))); - } - function asc() { - asc = ccb; - _rc = as((Xrc(), OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc]))); - } - function Dzc() { - Dzc = ccb; - Czc = as((xzc(), OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc]))); - } - function YAc() { - YAc = ccb; - XAc = as((TAc(), OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc]))); - } - function yAc() { - yAc = ccb; - xAc = as((tAc(), OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc]))); - } - function PAc() { - PAc = ccb; - OAc = as((KAc(), OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc]))); - } - function QBc() { - QBc = ccb; - PBc = as((LBc(), OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc]))); - } - function yBc() { - yBc = ccb; - xBc = as((tBc(), OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc]))); - } - function HBc() { - HBc = ccb; - GBc = as((CBc(), OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc]))); - } - function wGc() { - wGc = ccb; - vGc = as((rGc(), OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc]))); - } - function zVc() { - zVc = ccb; - yVc = as((tVc(), OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc]))); - } - function vWc() { - vWc = ccb; - uWc = as((pWc(), OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc]))); - } - function EYc() { - EYc = ccb; - DYc = as((zYc(), OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc]))); - } - function yXc() { - yXc = ccb; - xXc = as((sXc(), OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc]))); - } - function b_c() { - b_c = ccb; - a_c = as((Y$c(), OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c]))); - } - function mbd() { - mbd = ccb; - lbd = as((hbd(), OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd]))); - } - function vad() { - vad = ccb; - uad = as((qad(), OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad]))); - } - function icd() { - dcd(); - return OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd]); - } - function ikd(a, b) { - return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), qAd(a.o, b); - } - function NAd(a) { - !a.g && (a.g = new JCd()); - !a.g.d && (a.g.d = new MBd(a)); - return a.g.d; - } - function yAd(a) { - !a.g && (a.g = new JCd()); - !a.g.a && (a.g.a = new SBd(a)); - return a.g.a; - } - function EAd(a) { - !a.g && (a.g = new JCd()); - !a.g.b && (a.g.b = new GBd(a)); - return a.g.b; - } - function FAd(a) { - !a.g && (a.g = new JCd()); - !a.g.c && (a.g.c = new iCd(a)); - return a.g.c; - } - function A2d(a, b, c) { - var d, e; - e = new p4d(b, a); - for (d = 0; d < c; ++d) { - d4d(e); - } - return e; - } - function Atd(a, b, c) { - var d, e; - if (c != null) { - for (d = 0; d < b; ++d) { - e = c[d]; - a.fi(d, e); - } - } - } - function uhb(a, b, c, d) { - var e; - e = KC(WD, oje, 25, b + 1, 15, 1); - vhb(e, a, b, c, d); - return e; - } - function KC(a, b, c, d, e, f) { - var g10; - g10 = LC(e, d); - e != 10 && OC(GC(a, f), b, c, e, g10); - return g10; - } - function bYd(a, b, c, d) { - !!c && (d = c.gh(b, bLd(c.Tg(), a.c.Lj()), null, d)); - return d; - } - function cYd(a, b, c, d) { - !!c && (d = c.ih(b, bLd(c.Tg(), a.c.Lj()), null, d)); - return d; - } - function KNb(a, b, c) { - BD(a.b, 65); - BD(a.b, 65); - BD(a.b, 65); - Hkb(a.a, new TNb(c, b, a)); - } - function ACb(a, b, c) { - if (a < 0 || b > c || b < a) { - throw vbb(new Xfb(xke + a + zke + b + oke + c)); - } - } - function zCb(a) { - if (!a) { - throw vbb(new Zdb("Unable to add element to queue")); - } - } - function Vzb(a) { - if (!a) { - this.c = null; - this.b = new Rkb(); - } else { - this.c = a; - this.b = null; - } - } - function exb(a, b) { - pjb.call(this, a, b); - this.a = KC(dL, zie, 436, 2, 0, 1); - this.b = true; - } - function _rb(a) { - Whb.call(this, a, 0); - Trb(this); - this.d.b = this.d; - this.d.a = this.d; - } - function VRc(a) { - var b; - b = a.b; - if (b.b == 0) { - return null; - } - return BD(Ut(b, 0), 188).b; - } - function Kwb(a, b) { - var c; - c = new fxb(); - c.c = true; - c.d = b.dd(); - return Lwb(a, b.cd(), c); - } - function bB(a, b) { - var c; - c = a.q.getHours() + (b / 3600 | 0); - a.q.setSeconds(b); - YA(a, c); - } - function zGc(a, b, c) { - var d; - d = a.b[c.c.p][c.p]; - d.b += b.b; - d.c += b.c; - d.a += b.a; - ++d.a; - } - function S6c(a, b) { - var c, d; - c = a.a - b.a; - d = a.b - b.b; - return $wnd.Math.sqrt(c * c + d * d); - } - function Ipc() { - Ipc = ccb; - Gpc = new Jpc("QUADRATIC", 0); - Hpc = new Jpc("SCANLINE", 1); - } - function hCc() { - hCc = ccb; - gCc = c3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), pUb, J8b); - } - function l8c() { - i8c(); - return OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c]); - } - function I7c() { - F7c(); - return OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c]); - } - function Dpc() { - Apc(); - return OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]); - } - function Brc() { - yrc(); - return OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc]); - } - function orc() { - lrc(); - return OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc]); - } - function rzc() { - lzc(); - return OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc]); - } - function Wqc() { - Sqc(); - return OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc]); - } - function uSc() { - qSc(); - return OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc]); - } - function wcd() { - rcd(); - return OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd]); - } - function Pad() { - Mad(); - return OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had]); - } - function m0b() { - j0b(); - return OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b]); - } - function mib(a) { - yCb(!!a.c); - xpb(a.e, a); - a.c.Qb(); - a.c = null; - a.b = kib(a); - ypb(a.e, a); - } - function tsb(a) { - xpb(a.c.a.e, a); - sCb(a.b != a.c.a.d); - a.a = a.b; - a.b = a.b.a; - return a.a; - } - function kSd(a) { - var b; - if (!a.a && a.b != -1) { - b = a.c.Tg(); - a.a = XKd(b, a.b); - } - return a.a; - } - function wtd(a, b) { - if (a.hi() && a.Hc(b)) { - return false; - } else { - a.Yh(b); - return true; - } - } - function $Hb(a, b) { - ytb(b, "Horizontal alignment cannot be null"); - a.b = b; - return a; - } - function Lfe(a, b, c) { - wfe(); - var d; - d = Kfe(a, b); - c && !!d && Nfe(a) && (d = null); - return d; - } - function vXb(a, b, c) { - var d, e; - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 37); - uXb(d, b, c); - } - } - function tXb(a, b) { - var c, d; - for (d = b.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 37); - sXb(a, c, 0, 0); - } - } - function ojc(a, b, c) { - var d; - a.d[b.g] = c; - d = a.g.c; - d[b.g] = $wnd.Math.max(d[b.g], c + 1); - } - function KZc(a, b) { - var c, d, e; - e = a.r; - d = a.d; - c = MZc(a, b, true); - return c.b != e || c.a != d; - } - function Jjc(a, b) { - Vrb(a.e, b) || Xrb(a.e, b, new Pjc(b)); - return BD(Wrb(a.e, b), 113); - } - function Byb(a, b, c, d) { - uCb(a); - uCb(b); - uCb(c); - uCb(d); - return new Lyb(a, b, new Vxb()); - } - function dId(a, b, c, d) { - this.rj(); - this.a = b; - this.b = a; - this.c = new Y5d(this, b, c, d); - } - function oSd(a, b, c, d, e, f) { - mxd.call(this, b, d, e, f); - jSd(this); - this.c = a; - this.b = c; - } - function ESd(a, b, c, d, e, f) { - mxd.call(this, b, d, e, f); - jSd(this); - this.c = a; - this.a = c; - } - function Bqd(a, b, c) { - var d, e, f; - d = aC(a, c); - e = null; - !!d && (e = aqd(d)); - f = e; - Vqd(b, c, f); - } - function Cqd(a, b, c) { - var d, e, f; - d = aC(a, c); - e = null; - !!d && (e = aqd(d)); - f = e; - Vqd(b, c, f); - } - function v1d(a, b, c) { - var d, e; - e = (d = nUd(a.b, b), d); - return !e ? null : V1d(p1d(a, e), c); - } - function gid(a, b) { - var c; - return c = a.Yg(b), c >= 0 ? a._g(c, true, true) : sid(a, b, true); - } - function s6b(a, b) { - return Kdb(Edb(ED(vNb(a, (wtc(), htc)))), Edb(ED(vNb(b, htc)))); - } - function pUc() { - pUc = ccb; - oUc = b3c(b3c(g3c(new j3c(), (yRc(), vRc)), (qSc(), pSc)), lSc); - } - function IHc(a, b, c) { - var d; - d = SHc(a, b, c); - a.b = new BHc(d.c.length); - return KHc(a, d); - } - function qhe(a) { - if (a.b <= 0) - throw vbb(new utb()); - --a.b; - a.a -= a.c.c; - return meb(a.a); - } - function ptd(a) { - var b; - if (!a.a) { - throw vbb(new vtb()); - } - b = a.a; - a.a = Xod(a.a); - return b; - } - function dBb(a) { - while (!a.a) { - if (!HBb(a.c, new hBb(a))) { - return false; - } - } - return true; - } - function vr(a) { - var b; - Qb(a); - if (JD(a, 198)) { - b = BD(a, 198); - return b; - } - return new wr(a); - } - function r3c(a) { - p3c(); - BD(a.We((Y9c(), x9c)), 174).Fc((rcd(), ocd)); - a.Ye(w9c, null); - } - function p3c() { - p3c = ccb; - m3c = new v3c(); - o3c = new x3c(); - n3c = mn((Y9c(), w9c), m3c, b9c, o3c); - } - function fWc() { - fWc = ccb; - dWc = new hWc("LEAF_NUMBER", 0); - eWc = new hWc("NODE_SIZE", 1); - } - function UMc(a, b, c) { - a.a = b; - a.c = c; - a.b.a.$b(); - Osb(a.d); - a.e.a.c = KC(SI, Uhe, 1, 0, 5, 1); - } - function yHc(a) { - a.a = KC(WD, oje, 25, a.b + 1, 15, 1); - a.c = KC(WD, oje, 25, a.b, 15, 1); - a.d = 0; - } - function MWb(a, b) { - if (a.a.ue(b.d, a.b) > 0) { - Ekb(a.c, new dWb(b.c, b.d, a.d)); - a.b = b.d; - } - } - function nud(a, b) { - if (a.g == null || b >= a.i) - throw vbb(new $zd(b, a.i)); - return a.g[b]; - } - function pOd(a, b, c) { - Itd(a, c); - if (c != null && !a.wj(c)) { - throw vbb(new tcb()); - } - return c; - } - function KLd(a) { - var b; - if (a.Ek()) { - for (b = a.i - 1; b >= 0; --b) { - qud(a, b); - } - } - return wud(a); - } - function Bwb(a) { - var b, c; - if (!a.b) { - return null; - } - c = a.b; - while (b = c.a[0]) { - c = b; - } - return c; - } - function ulb(a, b) { - var c, d; - pCb(b); - return c = (d = a.slice(0, b), PC(d, a)), c.length = b, c; - } - function Klb(a, b, c, d) { - var e; - d = (ipb(), !d ? fpb : d); - e = a.slice(b, c); - Llb(e, a, b, c, -b, d); - } - function bid(a, b, c, d, e) { - return b < 0 ? sid(a, c, d) : BD(c, 66).Nj().Pj(a, a.yh(), b, d, e); - } - function hZd(a) { - if (JD(a, 172)) { - return "" + BD(a, 172).a; - } - return a == null ? null : fcb(a); - } - function iZd(a) { - if (JD(a, 172)) { - return "" + BD(a, 172).a; - } - return a == null ? null : fcb(a); - } - function nDb(a, b) { - if (b.a) { - throw vbb(new hz(Hke)); - } - Qqb(a.a, b); - b.a = a; - !a.j && (a.j = b); - } - function qBb(a, b) { - nvb.call(this, b.rd(), b.qd() & -16449); - uCb(a); - this.a = a; - this.c = b; - } - function Ti(a, b) { - var c, d; - d = b / a.c.Hd().gc() | 0; - c = b % a.c.Hd().gc(); - return Mi(a, d, c); - } - function NHb() { - NHb = ccb; - LHb = new OHb(jle, 0); - KHb = new OHb(gle, 1); - MHb = new OHb(kle, 2); - } - function lxb() { - lxb = ccb; - hxb = new mxb("All", 0); - ixb = new rxb(); - jxb = new txb(); - kxb = new wxb(); - } - function zxb() { - zxb = ccb; - yxb = as((lxb(), OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb]))); - } - function uWb() { - uWb = ccb; - tWb = as((lWb(), OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb]))); - } - function ALb() { - ALb = ccb; - zLb = as((vLb(), OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb]))); - } - function WMb() { - WMb = ccb; - VMb = as((RMb(), OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb]))); - } - function WOb() { - WOb = ccb; - VOb = as((ROb(), OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb]))); - } - function GRc() { - GRc = ccb; - FRc = as((yRc(), OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc]))); - } - function mbc() { - mbc = ccb; - lbc = as((gbc(), OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc]))); - } - function oXc() { - oXc = ccb; - nXc = as((iXc(), OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc]))); - } - function Fjc() { - Fjc = ccb; - Ejc = as((Ajc(), OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc]))); - } - function Pzc() { - Pzc = ccb; - Ozc = as((Izc(), OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc]))); - } - function ugd() { - ugd = ccb; - tgd = as((pgd(), OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd]))); - } - function xbd() { - xbd = ccb; - wbd = as((rbd(), OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd]))); - } - function Fad() { - Fad = ccb; - Ead = as((Aad(), OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad]))); - } - function Ied() { - Ied = ccb; - Hed = as((Ded(), OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed]))); - } - function ydd() { - ydd = ccb; - xdd = as((tdd(), OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd]))); - } - function A9d() { - A9d = ccb; - Smd(); - x9d = Pje; - w9d = Qje; - z9d = new Ndb(Pje); - y9d = new Ndb(Qje); - } - function _qc() { - _qc = ccb; - $qc = new arc(ane, 0); - Zqc = new arc("IMPROVE_STRAIGHTNESS", 1); - } - function eIc(a, b) { - FHc(); - return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length))); - } - function gIc(a, b) { - FHc(); - return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length))); - } - function PC(a, b) { - HC(b) != 10 && OC(rb(b), b.hm, b.__elementTypeId$, HC(b), a); - return a; - } - function Lkb(a, b) { - var c; - c = Jkb(a, b, 0); - if (c == -1) { - return false; - } - Kkb(a, c); - return true; - } - function Zrb(a, b) { - var c; - c = BD(Thb(a.e, b), 387); - if (c) { - jsb(c); - return c.e; - } - return null; - } - function Jbb(a) { - var b; - if (Fbb(a)) { - b = 0 - a; - if (!isNaN(b)) { - return b; - } - } - return zbb(hD(a)); - } - function Jkb(a, b, c) { - for (; c < a.c.length; ++c) { - if (wtb(b, a.c[c])) { - return c; - } - } - return -1; - } - function SAb(a, b, c) { - var d; - Tzb(a); - d = new NBb(); - d.a = b; - a.a.Nb(new VBb(d, c)); - return d.a; - } - function aAb(a) { - var b; - Tzb(a); - b = KC(UD, Vje, 25, 0, 15, 1); - _ub(a.a, new kAb(b)); - return b; - } - function ajc(a) { - var b, c; - c = BD(Ikb(a.j, 0), 11); - b = BD(vNb(c, (wtc(), $sc)), 11); - return b; - } - function yc(a) { - var b; - if (!xc(a)) { - throw vbb(new utb()); - } - a.e = 1; - b = a.d; - a.d = null; - return b; - } - function wu(a, b) { - var c; - this.f = a; - this.b = b; - c = BD(Ohb(a.b, b), 283); - this.c = !c ? null : c.b; - } - function Ygc() { - Hgc(); - this.b = new Lqb(); - this.f = new Lqb(); - this.g = new Lqb(); - this.e = new Lqb(); - } - function Tnc(a, b) { - this.a = KC(OQ, kne, 10, a.a.c.length, 0, 1); - Qkb(a.a, this.a); - this.b = b; - } - function zoc(a) { - var b; - for (b = a.p + 1; b < a.c.a.c.length; ++b) { - --BD(Ikb(a.c.a, b), 10).p; - } - } - function Rwd(a) { - var b; - b = a.Ai(); - b != null && a.d != -1 && BD(b, 92).Ng(a); - !!a.i && a.i.Fi(); - } - function rFd(a) { - Py(this); - this.g = !a ? null : Wy(a, a.$d()); - this.f = a; - Ry(this); - this._d(); - } - function pSd(a, b, c, d, e, f, g10) { - nxd.call(this, b, d, e, f, g10); - jSd(this); - this.c = a; - this.b = c; - } - function Ayb(a, b, c, d, e) { - uCb(a); - uCb(b); - uCb(c); - uCb(d); - uCb(e); - return new Lyb(a, b, d); - } - function B2c(a, b) { - if (b < 0) { - throw vbb(new qcb(ese + b)); - } - A2c(a, b + 1); - return Ikb(a.j, b); - } - function Ob(a, b, c, d) { - if (!a) { - throw vbb(new Wdb(hc(b, OC(GC(SI, 1), Uhe, 1, 5, [c, d])))); - } - } - function dDb(a, b) { - return wtb(b, Ikb(a.f, 0)) || wtb(b, Ikb(a.f, 1)) || wtb(b, Ikb(a.f, 2)); - } - function ghd(a, b) { - ecd(BD(BD(a.f, 33).We((Y9c(), t9c)), 98)) && NCd(Yod(BD(a.f, 33)), b); - } - function p1d(a, b) { - var c, d; - c = BD(b, 675); - d = c.Oh(); - !d && c.Rh(d = new Y1d(a, b)); - return d; - } - function q1d(a, b) { - var c, d; - c = BD(b, 677); - d = c.pk(); - !d && c.tk(d = new j2d(a, b)); - return d; - } - function QSd(a) { - if (!a.b) { - a.b = new UTd(a, j5, a); - !a.a && (a.a = new fTd(a, a)); - } - return a.b; - } - function yTb() { - yTb = ccb; - wTb = new zTb("XY", 0); - vTb = new zTb("X", 1); - xTb = new zTb("Y", 2); - } - function EIb() { - EIb = ccb; - DIb = new FIb("TOP", 0); - CIb = new FIb(gle, 1); - BIb = new FIb(mle, 2); - } - function esc() { - esc = ccb; - csc = new fsc(ane, 0); - dsc = new fsc("TOP", 1); - bsc = new fsc(mle, 2); - } - function BAc() { - BAc = ccb; - zAc = new CAc("INPUT_ORDER", 0); - AAc = new CAc("PORT_DEGREE", 1); - } - function wD() { - wD = ccb; - sD = TC(Eje, Eje, 524287); - tD = TC(0, 0, Gje); - uD = RC(1); - RC(2); - vD = RC(0); - } - function WDc(a, b, c) { - a.a.c = KC(SI, Uhe, 1, 0, 5, 1); - $Dc(a, b, c); - a.a.c.length == 0 || TDc(a, b); - } - function rfb(a) { - var b, c; - c = a.length; - b = KC(TD, $ie, 25, c, 15, 1); - ffb(a, 0, c, b, 0); - return b; - } - function Aid(a) { - var b; - if (!a.dh()) { - b = aLd(a.Tg()) - a.Ah(); - a.ph().bk(b); - } - return a.Pg(); - } - function xjd(a) { - var b; - b = CD(Ajd(a, 32)); - if (b == null) { - yjd(a); - b = CD(Ajd(a, 32)); - } - return b; - } - function iid(a, b) { - var c; - c = bLd(a.d, b); - return c >= 0 ? fid(a, c, true, true) : sid(a, b, true); - } - function vgc(a, b) { - qgc(); - var c, d; - c = ugc(a); - d = ugc(b); - return !!c && !!d && !omb(c.k, d.k); - } - function Gqd(a, b) { - dld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b)); - } - function Hqd(a, b) { - eld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b)); - } - function Iqd(a, b) { - cld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b)); - } - function Jqd(a, b) { - ald(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b)); - } - function agd(a) { - (!this.q ? (mmb(), mmb(), kmb) : this.q).Ac(!a.q ? (mmb(), mmb(), kmb) : a.q); - } - function S2d(a, b) { - return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a); - } - function U2d(a, b) { - return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a); - } - function INb(a, b) { - HNb = new tOb(); - FNb = b; - GNb = a; - BD(GNb.b, 65); - KNb(GNb, HNb, null); - JNb(GNb); - } - function uud(a, b, c) { - var d; - d = a.g[b]; - mud(a, b, a.oi(b, c)); - a.gi(b, c, d); - a.ci(); - return d; - } - function Ftd(a, b) { - var c; - c = a.Xc(b); - if (c >= 0) { - a.$c(c); - return true; - } else { - return false; - } - } - function YId(a) { - var b; - if (a.d != a.r) { - b = wId(a); - a.e = !!b && b.Cj() == Bve; - a.d = b; - } - return a.e; - } - function fr(a, b) { - var c; - Qb(a); - Qb(b); - c = false; - while (b.Ob()) { - c = c | a.Fc(b.Pb()); - } - return c; - } - function Wrb(a, b) { - var c; - c = BD(Ohb(a.e, b), 387); - if (c) { - Yrb(a, c); - return c.e; - } - return null; - } - function UA(a) { - var b, c; - b = a / 60 | 0; - c = a % 60; - if (c == 0) { - return "" + b; - } - return "" + b + ":" + ("" + c); - } - function LAb(a, b) { - var c, d; - Uzb(a); - d = new IBb(b, a.a); - c = new fBb(d); - return new YAb(a, c); - } - function tB(d, a) { - var b = d.a[a]; - var c = (rC(), qC)[typeof b]; - return c ? c(b) : xC(typeof b); - } - function yzc(a) { - switch (a.g) { - case 0: - return Ohe; - case 1: - return -1; - default: - return 0; - } - } - function oD(a) { - if (eD(a, (wD(), vD)) < 0) { - return -aD(hD(a)); - } - return a.l + a.m * Hje + a.h * Ije; - } - function HC(a) { - return a.__elementTypeCategory$ == null ? 10 : a.__elementTypeCategory$; - } - function dub(a) { - var b; - b = a.b.c.length == 0 ? null : Ikb(a.b, 0); - b != null && fub(a, 0); - return b; - } - function uA(a, b) { - while (b[0] < a.length && hfb(" \r\n", wfb(bfb(a, b[0]))) >= 0) { - ++b[0]; - } - } - function sgb(a, b) { - this.e = b; - this.a = vgb(a); - this.a < 54 ? this.f = Sbb(a) : this.c = ghb(a); - } - function vge(a, b, c, d) { - wfe(); - xfe.call(this, 26); - this.c = a; - this.a = b; - this.d = c; - this.b = d; - } - function EA(a, b, c) { - var d, e; - d = 10; - for (e = 0; e < c - 1; e++) { - b < d && (a.a += "0", a); - d *= 10; - } - a.a += b; - } - function Hhe(a, b) { - var c; - c = 0; - while (a.e != a.i.gc()) { - Qrd(b, Dyd(a), meb(c)); - c != Ohe && ++c; - } - } - function xHc(a, b) { - var c; - ++a.d; - ++a.c[b]; - c = b + 1; - while (c < a.a.length) { - ++a.a[c]; - c += c & -c; - } - } - function Qgc(a, b) { - var c, d, e; - e = b.c.i; - c = BD(Ohb(a.f, e), 57); - d = c.d.c - c.e.c; - p7c(b.a, d, 0); - } - function Scb(a) { - var b, c; - b = a + 128; - c = (Ucb(), Tcb)[b]; - !c && (c = Tcb[b] = new Mcb(a)); - return c; - } - function es(a, b) { - var c; - uCb(b); - c = a[":" + b]; - nCb(!!c, OC(GC(SI, 1), Uhe, 1, 5, [b])); - return c; - } - function Mz(a) { - var b, c; - if (a.b) { - c = null; - do { - b = a.b; - a.b = null; - c = Pz(b, c); - } while (a.b); - a.b = c; - } - } - function Lz(a) { - var b, c; - if (a.a) { - c = null; - do { - b = a.a; - a.a = null; - c = Pz(b, c); - } while (a.a); - a.a = c; - } - } - function Dqb(a) { - var b; - ++a.a; - for (b = a.c.a.length; a.a < b; ++a.a) { - if (a.c.b[a.a]) { - return; - } - } - } - function S9b(a, b) { - var c, d; - d = b.c; - for (c = d + 1; c <= b.f; c++) { - a.a[c] > a.a[d] && (d = c); - } - return d; - } - function fic(a, b) { - var c; - c = Jy(a.e.c, b.e.c); - if (c == 0) { - return Kdb(a.e.d, b.e.d); - } - return c; - } - function Ogb(a, b) { - if (b.e == 0) { - return Ggb; - } - if (a.e == 0) { - return Ggb; - } - return Dhb(), Ehb(a, b); - } - function nCb(a, b) { - if (!a) { - throw vbb(new Wdb(DCb("Enum constant undefined: %s", b))); - } - } - function AWb() { - AWb = ccb; - xWb = new XWb(); - yWb = new _Wb(); - vWb = new dXb(); - wWb = new hXb(); - zWb = new lXb(); - } - function UEb() { - UEb = ccb; - SEb = new VEb("BY_SIZE", 0); - TEb = new VEb("BY_SIZE_AND_SHAPE", 1); - } - function XRb() { - XRb = ccb; - VRb = new YRb("EADES", 0); - WRb = new YRb("FRUCHTERMAN_REINGOLD", 1); - } - function xqc() { - xqc = ccb; - vqc = new yqc("READING_DIRECTION", 0); - wqc = new yqc("ROTATION", 1); - } - function uqc() { - uqc = ccb; - tqc = as((mqc(), OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc]))); - } - function bAc() { - bAc = ccb; - aAc = as((Vzc(), OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc]))); - } - function bkc() { - bkc = ccb; - akc = as((Xjc(), OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc]))); - } - function Htc() { - Htc = ccb; - Gtc = as((Ctc(), OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc]))); - } - function S_c() { - S_c = ccb; - R_c = as((N_c(), OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c]))); - } - function S5c() { - S5c = ccb; - R5c = as((N5c(), OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c]))); - } - function p$c() { - p$c = ccb; - o$c = as((k$c(), OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c]))); - } - function vUb() { - vUb = ccb; - uUb = as((qUb(), OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb]))); - } - function mad() { - mad = ccb; - lad = as((ead(), OC(GC(t1, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad]))); - } - function Ybd() { - Ybd = ccb; - Xbd = as((Tbd(), OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd]))); - } - function cdd() { - cdd = ccb; - bdd = as((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]))); - } - function _1c(a, b) { - var c; - c = BD(Ohb(a.a, b), 134); - if (!c) { - c = new zNb(); - Rhb(a.a, b, c); - } - return c; - } - function hoc(a) { - var b; - b = BD(vNb(a, (wtc(), usc)), 305); - if (b) { - return b.a == a; - } - return false; - } - function ioc(a) { - var b; - b = BD(vNb(a, (wtc(), usc)), 305); - if (b) { - return b.i == a; - } - return false; - } - function Jub(a, b) { - uCb(b); - Iub(a); - if (a.d.Ob()) { - b.td(a.d.Pb()); - return true; - } - return false; - } - function Oy(a) { - if (ybb(a, Ohe) > 0) { - return Ohe; - } - if (ybb(a, Rie) < 0) { - return Rie; - } - return Tbb(a); - } - function Cv(a) { - if (a < 3) { - Xj(a, Hie); - return a + 1; - } - if (a < Iie) { - return QD(a / 0.75 + 1); - } - return Ohe; - } - function XKd(a, b) { - var c; - c = (a.i == null && TKd(a), a.i); - return b >= 0 && b < c.length ? c[b] : null; - } - function cC(a, b, c) { - var d; - if (b == null) { - throw vbb(new Geb()); - } - d = aC(a, b); - dC(a, b, c); - return d; - } - function Emc(a) { - a.a >= -0.01 && a.a <= ple && (a.a = 0); - a.b >= -0.01 && a.b <= ple && (a.b = 0); - return a; - } - function sfb(a, b) { - return b == (ntb(), ntb(), mtb) ? a.toLocaleLowerCase() : a.toLowerCase(); - } - function idb(a) { - return ((a.i & 2) != 0 ? "interface " : (a.i & 1) != 0 ? "" : "class ") + (fdb(a), a.o); - } - function Pnd(a) { - var b, c; - c = (b = new SSd(), b); - wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), c); - } - function Pdd(a, b) { - var c; - c = b > 0 ? b - 1 : b; - return Vdd(Wdd(Xdd(Ydd(new Zdd(), c), a.n), a.j), a.k); - } - function u2d(a, b, c, d) { - var e; - a.j = -1; - Qxd(a, I2d(a, b, c), (Q6d(), e = BD(b, 66).Mj(), e.Ok(d))); - } - function VWb(a) { - this.g = a; - this.f = new Rkb(); - this.a = $wnd.Math.min(this.g.c.c, this.g.d.c); - } - function mDb(a) { - this.b = new Rkb(); - this.a = new Rkb(); - this.c = new Rkb(); - this.d = new Rkb(); - this.e = a; - } - function Cnc(a, b) { - this.a = new Lqb(); - this.e = new Lqb(); - this.b = (xzc(), wzc); - this.c = a; - this.b = b; - } - function bIb(a, b, c) { - $Gb.call(this); - THb(this); - this.a = a; - this.c = c; - this.b = b.d; - this.f = b.e; - } - function yd(a) { - this.d = a; - this.c = a.c.vc().Kc(); - this.b = null; - this.a = null; - this.e = (hs(), gs); - } - function zud(a) { - if (a < 0) { - throw vbb(new Wdb("Illegal Capacity: " + a)); - } - this.g = this.ri(a); - } - function avb(a, b) { - if (0 > a || a > b) { - throw vbb(new scb("fromIndex: 0, toIndex: " + a + oke + b)); - } - } - function Gs(a) { - var b; - if (a.a == a.b.a) { - throw vbb(new utb()); - } - b = a.a; - a.c = b; - a.a = a.a.e; - return b; - } - function Zsb(a) { - var b; - yCb(!!a.c); - b = a.c.a; - Nsb(a.d, a.c); - a.b == a.c ? a.b = b : --a.a; - a.c = null; - } - function VAb(a, b) { - var c; - Uzb(a); - c = new lBb(a, a.a.rd(), a.a.qd() | 4, b); - return new YAb(a, c); - } - function ke(a, b) { - var c, d; - c = BD(Hv(a.d, b), 14); - if (!c) { - return null; - } - d = b; - return a.e.pc(d, c); - } - function xac(a, b) { - var c, d; - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 70); - yNb(c, (wtc(), Ssc), b); - } - } - function t9b(a) { - var b; - b = Edb(ED(vNb(a, (Nyc(), Zwc)))); - if (b < 0) { - b = 0; - yNb(a, Zwc, b); - } - return b; - } - function ifc(a, b, c) { - var d; - d = $wnd.Math.max(0, a.b / 2 - 0.5); - cfc(c, d, 1); - Ekb(b, new rfc(c, d)); - } - function NMc(a, b, c) { - var d; - d = a.a.e[BD(b.a, 10).p] - a.a.e[BD(c.a, 10).p]; - return QD(Eeb(d)); - } - function iZb(a, b, c, d, e, f) { - var g10; - g10 = kZb(d); - QZb(g10, e); - RZb(g10, f); - Rc(a.a, d, new BZb(g10, b, c.f)); - } - function Bid(a, b) { - var c; - c = YKd(a.Tg(), b); - if (!c) { - throw vbb(new Wdb(ite + b + lte)); - } - return c; - } - function ntd(a, b) { - var c; - c = a; - while (Xod(c)) { - c = Xod(c); - if (c == b) { - return true; - } - } - return false; - } - function Uw(a, b) { - var c, d, e; - d = b.a.cd(); - c = BD(b.a.dd(), 14).gc(); - for (e = 0; e < c; e++) { - a.td(d); - } - } - function Hkb(a, b) { - var c, d, e, f; - uCb(b); - for (d = a.c, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - b.td(c); - } - } - function Nsb(a, b) { - var c; - c = b.c; - b.a.b = b.b; - b.b.a = b.a; - b.a = b.b = null; - b.c = null; - --a.b; - return c; - } - function wqb(a, b) { - if (!!b && a.b[b.g] == b) { - NC(a.b, b.g, null); - --a.c; - return true; - } - return false; - } - function lo(a, b) { - return !!vo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))); - } - function w$b(a, b) { - ecd(BD(vNb(BD(a.e, 10), (Nyc(), Vxc)), 98)) && (mmb(), Okb(BD(a.e, 10).j, b)); - } - function THb(a) { - a.b = (NHb(), KHb); - a.f = (EIb(), CIb); - a.d = (Xj(2, Jie), new Skb(2)); - a.e = new d7c(); - } - function gHb() { - gHb = ccb; - dHb = new hHb("BEGIN", 0); - eHb = new hHb(gle, 1); - fHb = new hHb("END", 2); - } - function qad() { - qad = ccb; - nad = new rad(gle, 0); - oad = new rad("HEAD", 1); - pad = new rad("TAIL", 2); - } - function Fsd() { - Csd(); - return OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd]); - } - function c6c() { - _5c(); - return OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c]); - } - function Dlc() { - Alc(); - return OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]); - } - function nAc() { - kAc(); - return OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc]); - } - function kcd() { - kcd = ccb; - jcd = as((dcd(), OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd]))); - } - function tHb() { - tHb = ccb; - sHb = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length; - rHb = sHb; - } - function wed(a) { - this.b = (Qb(a), new Tkb(a)); - this.a = new Rkb(); - this.d = new Rkb(); - this.e = new d7c(); - } - function W6c(a) { - var b; - b = $wnd.Math.sqrt(a.a * a.a + a.b * a.b); - if (b > 0) { - a.a /= b; - a.b /= b; - } - return a; - } - function bKd(a) { - var b; - if (a.w) { - return a.w; - } else { - b = cKd(a); - !!b && !b.kh() && (a.w = b); - return b; - } - } - function gZd(a) { - var b; - if (a == null) { - return null; - } else { - b = BD(a, 190); - return Umd(b, b.length); - } - } - function qud(a, b) { - if (a.g == null || b >= a.i) - throw vbb(new $zd(b, a.i)); - return a.li(b, a.g[b]); - } - function Mmc(a) { - var b, c; - b = a.a.d.j; - c = a.c.d.j; - while (b != c) { - rqb(a.b, b); - b = Xcd(b); - } - rqb(a.b, b); - } - function Jmc(a) { - var b; - for (b = 0; b < a.c.length; b++) { - (tCb(b, a.c.length), BD(a.c[b], 11)).p = b; - } - } - function bEc(a, b, c) { - var d, e, f; - e = b[c]; - for (d = 0; d < e.length; d++) { - f = e[d]; - a.e[f.c.p][f.p] = d; - } - } - function ZEc(a, b) { - var c, d, e, f; - for (d = a.d, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - REc(a.g, c).a = b; - } - } - function q7c(a, b) { - var c, d; - for (d = Jsb(a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 8); - P6c(c, b); - } - return a; - } - function zUb(a, b) { - var c; - c = c7c(R6c(BD(Ohb(a.g, b), 8)), E6c(BD(Ohb(a.f, b), 460).b)); - return c; - } - function lib(a) { - var b; - xpb(a.e, a); - sCb(a.b); - a.c = a.a; - b = BD(a.a.Pb(), 42); - a.b = kib(a); - return b; - } - function CD(a) { - var b; - CCb(a == null || Array.isArray(a) && (b = HC(a), !(b >= 14 && b <= 16))); - return a; - } - function dcb(a, b, c) { - var d = function() { - return a.apply(d, arguments); - }; - b.apply(d, c); - return d; - } - function TLc(a, b, c) { - var d, e; - d = b; - do { - e = Edb(a.p[d.p]) + c; - a.p[d.p] = e; - d = a.a[d.p]; - } while (d != b); - } - function NQd(a, b) { - var c, d; - d = a.a; - c = OQd(a, b, null); - d != b && !a.e && (c = QQd(a, b, c)); - !!c && c.Fi(); - } - function ADb(a, b) { - return Iy(), My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b); - } - function Ky(a, b) { - Iy(); - My(Qie); - return $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b); - } - function Akc(a, b) { - gkc(); - return beb(a.b.c.length - a.e.c.length, b.b.c.length - b.e.c.length); - } - function oo(a, b) { - return Kv(uo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))))); - } - function o0b() { - o0b = ccb; - n0b = as((j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b]))); - } - function n8c() { - n8c = ccb; - m8c = as((i8c(), OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c]))); - } - function K7c() { - K7c = ccb; - J7c = as((F7c(), OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c]))); - } - function Fpc() { - Fpc = ccb; - Epc = as((Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]))); - } - function Drc() { - Drc = ccb; - Crc = as((yrc(), OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc]))); - } - function qrc() { - qrc = ccb; - prc = as((lrc(), OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc]))); - } - function tzc() { - tzc = ccb; - szc = as((lzc(), OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc]))); - } - function Yqc() { - Yqc = ccb; - Xqc = as((Sqc(), OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc]))); - } - function wSc() { - wSc = ccb; - vSc = as((qSc(), OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc]))); - } - function ycd() { - ycd = ccb; - xcd = as((rcd(), OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd]))); - } - function Rad() { - Rad = ccb; - Qad = as((Mad(), OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had]))); - } - function Lbd() { - Hbd(); - return OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd]); - } - function vkd(a, b) { - var c; - c = a.a; - a.a = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 0, c, a.a)); - } - function wkd(a, b) { - var c; - c = a.b; - a.b = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c, a.b)); - } - function hmd(a, b) { - var c; - c = a.b; - a.b = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c, a.b)); - } - function ald(a, b) { - var c; - c = a.f; - a.f = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c, a.f)); - } - function cld(a, b) { - var c; - c = a.g; - a.g = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c, a.g)); - } - function dld(a, b) { - var c; - c = a.i; - a.i = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 5, c, a.i)); - } - function eld(a, b) { - var c; - c = a.j; - a.j = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 6, c, a.j)); - } - function omd(a, b) { - var c; - c = a.j; - a.j = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c, a.j)); - } - function imd(a, b) { - var c; - c = a.c; - a.c = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c, a.c)); - } - function pmd(a, b) { - var c; - c = a.k; - a.k = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 2, c, a.k)); - } - function qQd(a, b) { - var c; - c = a.d; - a.d = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 2, c, a.d)); - } - function AId(a, b) { - var c; - c = a.s; - a.s = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 4, c, a.s)); - } - function DId(a, b) { - var c; - c = a.t; - a.t = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 5, c, a.t)); - } - function _Jd(a, b) { - var c; - c = a.F; - a.F = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, c, b)); - } - function izd(a, b) { - var c; - c = BD(Ohb((pEd(), oEd), a), 55); - return c ? c.xj(b) : KC(SI, Uhe, 1, b, 5, 1); - } - function Xpd(a, b) { - var c, d; - c = b in a.a; - if (c) { - d = aC(a, b).he(); - if (d) { - return d.a; - } - } - return null; - } - function ftd(a, b) { - var c, d, e; - c = (d = (Fhd(), e = new Jod(), e), !!b && God(d, b), d); - Hod(c, a); - return c; - } - function LLd(a, b, c) { - Itd(a, c); - if (!a.Bk() && c != null && !a.wj(c)) { - throw vbb(new tcb()); - } - return c; - } - function Xdd(a, b) { - a.n = b; - if (a.n) { - a.f = new Rkb(); - a.e = new Rkb(); - } else { - a.f = null; - a.e = null; - } - return a; - } - function ndb(a, b, c, d, e, f) { - var g10; - g10 = ldb(a, b); - zdb(c, g10); - g10.i = e ? 8 : 0; - g10.f = d; - g10.e = e; - g10.g = f; - return g10; - } - function rSd(a, b, c, d, e) { - this.d = b; - this.k = d; - this.f = e; - this.o = -1; - this.p = 1; - this.c = a; - this.a = c; - } - function tSd(a, b, c, d, e) { - this.d = b; - this.k = d; - this.f = e; - this.o = -1; - this.p = 2; - this.c = a; - this.a = c; - } - function BSd(a, b, c, d, e) { - this.d = b; - this.k = d; - this.f = e; - this.o = -1; - this.p = 6; - this.c = a; - this.a = c; - } - function GSd(a, b, c, d, e) { - this.d = b; - this.k = d; - this.f = e; - this.o = -1; - this.p = 7; - this.c = a; - this.a = c; - } - function xSd(a, b, c, d, e) { - this.d = b; - this.j = d; - this.e = e; - this.o = -1; - this.p = 4; - this.c = a; - this.a = c; - } - function rDb(a, b) { - var c, d, e, f; - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - nDb(a.a, c); - } - return a; - } - function pl(a) { - var b, c, d, e; - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Qb(b); - } - return new vl(a); - } - function Uz(a) { - var b = /function(?:\s+([\w$]+))?\s*\(/; - var c = b.exec(a); - return c && c[1] || Xie; - } - function zdb(a, b) { - var c; - if (!a) { - return; - } - b.n = a; - var d = tdb(b); - if (!d) { - _bb[a] = [b]; - return; - } - d.gm = b; - } - function vlb(a, b, c) { - var d, e; - e = a.length; - d = $wnd.Math.min(c, e); - $Bb(a, 0, b, 0, d, true); - return b; - } - function RPb(a, b, c) { - var d, e; - for (e = b.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 79); - Qqb(a, BD(c.Kb(d), 33)); - } - } - function Xbb() { - Ybb(); - var a = Wbb; - for (var b = 0; b < arguments.length; b++) { - a.push(arguments[b]); - } - } - function n7c(a, b) { - var c, d, e, f; - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - Gsb(a, c, a.c.b, a.c); - } - } - function s$c(a, b) { - a.b = $wnd.Math.max(a.b, b.d); - a.e += b.r + (a.a.c.length == 0 ? 0 : a.c); - Ekb(a.a, b); - } - function wkb(a) { - yCb(a.c >= 0); - if (ekb(a.d, a.c) < 0) { - a.a = a.a - 1 & a.d.a.length - 1; - a.b = a.d.c; - } - a.c = -1; - } - function pgb(a) { - if (a.a < 54) { - return a.f < 0 ? -1 : a.f > 0 ? 1 : 0; - } - return (!a.c && (a.c = fhb(a.f)), a.c).e; - } - function My(a) { - if (!(a >= 0)) { - throw vbb(new Wdb("tolerance (" + a + ") must be >= 0")); - } - return a; - } - function n4c() { - if (!f4c) { - f4c = new m4c(); - l4c(f4c, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()])); - } - return f4c; - } - function KAc() { - KAc = ccb; - JAc = new LAc(ole, 0); - HAc = new LAc("INPUT", 1); - IAc = new LAc("OUTPUT", 2); - } - function bqc() { - bqc = ccb; - $pc = new cqc("ARD", 0); - aqc = new cqc("MSD", 1); - _pc = new cqc("MANUAL", 2); - } - function rGc() { - rGc = ccb; - oGc = new sGc("BARYCENTER", 0); - pGc = new sGc(Bne, 1); - qGc = new sGc(Cne, 2); - } - function ztd(a, b) { - var c; - c = a.gc(); - if (b < 0 || b > c) - throw vbb(new Cyd(b, c)); - return new czd(a, b); - } - function JAd(a, b) { - var c; - if (JD(b, 42)) { - return a.c.Mc(b); - } else { - c = qAd(a, b); - LAd(a, b); - return c; - } - } - function $nd(a, b, c) { - yId(a, b); - pnd(a, c); - AId(a, 0); - DId(a, 1); - CId(a, true); - BId(a, true); - return a; - } - function Xj(a, b) { - if (a < 0) { - throw vbb(new Wdb(b + " cannot be negative but was: " + a)); - } - return a; - } - function Bt(a, b) { - var c, d; - for (c = 0, d = a.gc(); c < d; ++c) { - if (wtb(b, a.Xb(c))) { - return c; - } - } - return -1; - } - function Nc(a) { - var b, c; - for (c = a.c.Cc().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 14); - b.$b(); - } - a.c.$b(); - a.d = 0; - } - function Ri(a) { - var b, c, d, e; - for (c = a.a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Flb(b, b.length, null); - } - } - function ieb(a) { - var b, c; - if (a == 0) { - return 32; - } else { - c = 0; - for (b = 1; (b & a) == 0; b <<= 1) { - ++c; - } - return c; - } - } - function NGb(a) { - var b, c; - for (c = new olb(ahd(a)); c.a < c.c.c.length; ) { - b = BD(mlb(c), 680); - b.Gf(); - } - } - function CUb(a) { - xUb(); - this.g = new Lqb(); - this.f = new Lqb(); - this.b = new Lqb(); - this.c = new Hp(); - this.i = a; - } - function XZb() { - this.f = new d7c(); - this.d = new s0b(); - this.c = new d7c(); - this.a = new Rkb(); - this.b = new Rkb(); - } - function c6d(a, b, c, d) { - this.rj(); - this.a = b; - this.b = a; - this.c = null; - this.c = new d6d(this, b, c, d); - } - function nxd(a, b, c, d, e) { - this.d = a; - this.n = b; - this.g = c; - this.o = d; - this.p = -1; - e || (this.o = -2 - d - 1); - } - function hJd() { - FId.call(this); - this.n = -1; - this.g = null; - this.i = null; - this.j = null; - this.Bb |= zte; - } - function Ldd() { - Idd(); - return OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd]); - } - function uFb() { - rFb(); - return OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb]); - } - function qeb() { - qeb = ccb; - peb = OC(GC(WD, 1), oje, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]); - } - function vCc() { - vCc = ccb; - uCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b); - } - function VCc() { - VCc = ccb; - UCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b); - } - function rDc() { - rDc = ccb; - qDc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b); - } - function yFc() { - yFc = ccb; - xFc = c3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb, y8b); - } - function Rpc() { - Rpc = ccb; - Ppc = new Tpc("LAYER_SWEEP", 0); - Opc = new Tpc(Tne, 1); - Qpc = new Tpc(ane, 2); - } - function RLc(a, b) { - var c, d; - c = a.c; - d = b.e[a.p]; - if (d > 0) { - return BD(Ikb(c.a, d - 1), 10); - } - return null; - } - function Lkd(a, b) { - var c; - c = a.k; - a.k = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c, a.k)); - } - function kmd(a, b) { - var c; - c = a.f; - a.f = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c, a.f)); - } - function lmd(a, b) { - var c; - c = a.i; - a.i = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, c, a.i)); - } - function Hod(a, b) { - var c; - c = a.a; - a.a = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c, a.a)); - } - function zpd(a, b) { - var c; - c = a.b; - a.b = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c, a.b)); - } - function UUd(a, b) { - var c; - c = a.b; - a.b = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c, a.b)); - } - function VUd(a, b) { - var c; - c = a.c; - a.c = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.c)); - } - function Apd(a, b) { - var c; - c = a.c; - a.c = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.c)); - } - function pQd(a, b) { - var c; - c = a.c; - a.c = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, c, a.c)); - } - function PHd(a, b) { - var c; - c = a.d; - a.d = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.d)); - } - function jKd(a, b) { - var c; - c = a.D; - a.D = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c, a.D)); - } - function Rdd(a, b) { - if (a.r > 0 && a.c < a.r) { - a.c += b; - !!a.i && a.i.d > 0 && a.g != 0 && Rdd(a.i, b / a.r * a.i.d); - } - } - function dge(a, b, c) { - var d; - a.b = b; - a.a = c; - d = (a.a & 512) == 512 ? new hee() : new ude(); - a.c = ode(d, a.b, a.a); - } - function g3d(a, b) { - return T6d(a.e, b) ? (Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a)) : new c8d(b, a); - } - function _o(a, b) { - return Fv(vo(a.a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))))); - } - function Nyb(a, b, c) { - return Ayb(a, new Kzb(b), new Mzb(), new Ozb(c), OC(GC(xL, 1), Kie, 132, 0, [])); - } - function pAb(a) { - var b, c; - if (0 > a) { - return new yAb(); - } - b = a + 1; - c = new rAb(b, a); - return new vAb(null, c); - } - function umb(a, b) { - mmb(); - var c; - c = new Mqb(1); - ND(a) ? Shb(c, a, b) : jrb(c.f, a, b); - return new iob(c); - } - function aMb(a, b) { - var c, d; - c = a.o + a.p; - d = b.o + b.p; - if (c < d) { - return -1; - } - if (c == d) { - return 0; - } - return 1; - } - function P2b(a) { - var b; - b = vNb(a, (wtc(), $sc)); - if (JD(b, 160)) { - return O2b(BD(b, 160)); - } - return null; - } - function Kp(a) { - var b; - a = $wnd.Math.max(a, 2); - b = geb(a); - if (a > b) { - b <<= 1; - return b > 0 ? b : Iie; - } - return b; - } - function xc(a) { - Ub(a.e != 3); - switch (a.e) { - case 2: - return false; - case 0: - return true; - } - return zc(a); - } - function T6c(a, b) { - var c; - if (JD(b, 8)) { - c = BD(b, 8); - return a.a == c.a && a.b == c.b; - } else { - return false; - } - } - function _Mb(a, b, c) { - var d, e, f; - f = b >> 5; - e = b & 31; - d = xbb(Pbb(a.n[c][f], Tbb(Nbb(e, 1))), 3); - return d; - } - function IAd(a, b) { - var c, d; - for (d = b.vc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 42); - HAd(a, c.cd(), c.dd()); - } - } - function N1c(a, b) { - var c; - c = new tOb(); - BD(b.b, 65); - BD(b.b, 65); - BD(b.b, 65); - Hkb(b.a, new T1c(a, c, b)); - } - function DUd(a, b) { - var c; - c = a.b; - a.b = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 21, c, a.b)); - } - function jmd(a, b) { - var c; - c = a.d; - a.d = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, c, a.d)); - } - function _Id(a, b) { - var c; - c = a.j; - a.j = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 13, c, a.j)); - } - function $jb(a, b, c) { - var d, e, f; - f = a.a.length - 1; - for (e = a.b, d = 0; d < c; e = e + 1 & f, ++d) { - NC(b, d, a.a[e]); - } - } - function rqb(a, b) { - var c; - uCb(b); - c = b.g; - if (!a.b[c]) { - NC(a.b, c, b); - ++a.c; - return true; - } - return false; - } - function eub(a, b) { - var c; - c = b == null ? -1 : Jkb(a.b, b, 0); - if (c < 0) { - return false; - } - fub(a, c); - return true; - } - function fub(a, b) { - var c; - c = Kkb(a.b, a.b.c.length - 1); - if (b < a.b.c.length) { - Nkb(a.b, b, c); - bub(a, b); - } - } - function eyb(a, b) { - ((oyb(), lyb) ? null : b.c).length == 0 && qyb(b, new zyb()); - Shb(a.a, lyb ? null : b.c, b); - } - function M5b(a, b) { - Odd(b, "Hierarchical port constraint processing", 1); - N5b(a); - P5b(a); - Qdd(b); - } - function GOb(a, b) { - var c, d; - for (d = b.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 266); - a.b = true; - Qqb(a.e, c); - c.b = a; - } - } - function Owb(a, b) { - var c, d; - c = 1 - b; - d = a.a[c]; - a.a[c] = d.a[b]; - d.a[b] = a; - a.b = true; - d.b = false; - return d; - } - function Gec(a, b) { - var c, d; - c = BD(vNb(a, (Nyc(), ayc)), 8); - d = BD(vNb(b, ayc), 8); - return Kdb(c.b, d.b); - } - function jfc(a) { - oEb.call(this); - this.b = Edb(ED(vNb(a, (Nyc(), lyc)))); - this.a = BD(vNb(a, Swc), 218); - } - function XGc(a, b, c) { - uEc.call(this, a, b, c); - this.a = new Lqb(); - this.b = new Lqb(); - this.d = new $Gc(this); - } - function ku(a) { - this.e = a; - this.d = new Uqb(Cv(Ec(this.e).gc())); - this.c = this.e.a; - this.b = this.e.c; - } - function BHc(a) { - this.b = a; - this.a = KC(WD, oje, 25, a + 1, 15, 1); - this.c = KC(WD, oje, 25, a, 15, 1); - this.d = 0; - } - function THc(a, b, c) { - var d; - d = new Rkb(); - UHc(a, b, d, c, true, true); - a.b = new BHc(d.c.length); - return d; - } - function nMc(a, b) { - var c; - c = BD(Ohb(a.c, b), 458); - if (!c) { - c = new uMc(); - c.c = b; - Rhb(a.c, c.c, c); - } - return c; - } - function $B(e, a) { - var b = e.a; - var c = 0; - for (var d in b) { - b.hasOwnProperty(d) && (a[c++] = d); - } - return a; - } - function pRd(a) { - var b; - if (a.b == null) { - return LRd(), LRd(), KRd; - } - b = a.Lk() ? a.Kk() : a.Jk(); - return b; - } - function r$c(a) { - var b, c; - for (c = new Fyd(a); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 33); - dld(b, 0); - eld(b, 0); - } - } - function HSb() { - HSb = ccb; - FSb = new Lsd(Ime); - GSb = new Lsd(Jme); - ESb = new Lsd(Kme); - DSb = new Lsd(Lme); - } - function y5b() { - y5b = ccb; - x5b = new z5b("TO_INTERNAL_LTR", 0); - w5b = new z5b("TO_INPUT_DIRECTION", 1); - } - function PUc() { - PUc = ccb; - NUc = new RUc("P1_NODE_PLACEMENT", 0); - OUc = new RUc("P2_EDGE_ROUTING", 1); - } - function Fkc() { - Fkc = ccb; - Ekc = new Gkc("START", 0); - Dkc = new Gkc("MIDDLE", 1); - Ckc = new Gkc("END", 2); - } - function I9b() { - I9b = ccb; - H9b = new Msd("edgelabelcenterednessanalysis.includelabel", (Bcb(), zcb)); - } - function Zyc(a, b) { - MAb(JAb(new YAb(null, new Kub(new Pib(a.b), 1)), new bfd(a, b)), new ffd(a, b)); - } - function $Xc() { - this.c = new jVc(0); - this.b = new jVc(Tqe); - this.d = new jVc(Sqe); - this.a = new jVc(cme); - } - function $Fc(a) { - var b, c; - for (c = a.c.a.ec().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 214); - eFc(b, new oHc(b.e)); - } - } - function ZFc(a) { - var b, c; - for (c = a.c.a.ec().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 214); - dFc(b, new nHc(b.f)); - } - } - function pnd(a, b) { - var c; - c = a.zb; - a.zb = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c, a.zb)); - } - function cod(a, b) { - var c; - c = a.xb; - a.xb = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, c, a.xb)); - } - function dod(a, b) { - var c; - c = a.yb; - a.yb = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c, a.yb)); - } - function Knd(a, b) { - var c, d; - c = (d = new OJd(), d); - c.n = b; - wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), c); - } - function Qnd(a, b) { - var c, d; - d = (c = new FUd(), c); - d.n = b; - wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), d); - } - function ktb(a, b) { - var c, d; - c = a.Pc(); - Klb(c, 0, c.length, b); - for (d = 0; d < c.length; d++) { - a._c(d, c[d]); - } - } - function ye(a, b) { - var c, d, e; - uCb(b); - c = false; - for (e = b.Kc(); e.Ob(); ) { - d = e.Pb(); - c = c | a.Fc(d); - } - return c; - } - function Bx(a) { - var b, c, d; - b = 0; - for (d = a.Kc(); d.Ob(); ) { - c = d.Pb(); - b += c != null ? tb(c) : 0; - b = ~~b; - } - return b; - } - function SA(a) { - var b; - if (a == 0) { - return "UTC"; - } - if (a < 0) { - a = -a; - b = "UTC+"; - } else { - b = "UTC-"; - } - return b + UA(a); - } - function Jq(a, b) { - var c; - if (JD(b, 14)) { - c = BD(b, 14); - return a.Gc(c); - } - return fr(a, BD(Qb(b), 20).Kc()); - } - function Bnc(a, b, c) { - Cnc.call(this, b, c); - this.d = KC(OQ, kne, 10, a.a.c.length, 0, 1); - Qkb(a.a, this.d); - } - function IMc(a) { - a.a = null; - a.e = null; - a.b.c = KC(SI, Uhe, 1, 0, 5, 1); - a.f.c = KC(SI, Uhe, 1, 0, 5, 1); - a.c = null; - } - function gKd(a, b) { - if (b) { - if (a.B == null) { - a.B = a.D; - a.D = null; - } - } else if (a.B != null) { - a.D = a.B; - a.B = null; - } - } - function Poc(a, b) { - return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new fpc(a)), b)))); - } - function Soc(a, b) { - return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new dpc(a)), b)))); - } - function Q2b(a, b) { - Odd(b, zne, 1); - MAb(LAb(new YAb(null, new Kub(a.b, 16)), new U2b()), new W2b()); - Qdd(b); - } - function SXc(a, b) { - var c, d; - c = BD(hkd(a, (ZWc(), SWc)), 19); - d = BD(hkd(b, SWc), 19); - return beb(c.a, d.a); - } - function p7c(a, b, c) { - var d, e; - for (e = Jsb(a, 0); e.b != e.d.c; ) { - d = BD(Xsb(e), 8); - d.a += b; - d.b += c; - } - return a; - } - function uo(a, b, c) { - var d; - for (d = a.b[c & a.f]; d; d = d.b) { - if (c == d.a && Hb(b, d.g)) { - return d; - } - } - return null; - } - function vo(a, b, c) { - var d; - for (d = a.c[c & a.f]; d; d = d.d) { - if (c == d.f && Hb(b, d.i)) { - return d; - } - } - return null; - } - function khb(a, b, c) { - var d, e, f; - d = 0; - for (e = 0; e < c; e++) { - f = b[e]; - a[e] = f << 1 | d; - d = f >>> 31; - } - d != 0 && (a[c] = d); - } - function rmb(a, b) { - mmb(); - var c, d; - d = new Rkb(); - for (c = 0; c < a; ++c) { - d.c[d.c.length] = b; - } - return new Yob(d); - } - function Zzb(a) { - var b; - b = Yzb(a); - if (Bbb(b.a, 0)) { - return Ltb(), Ltb(), Ktb; - } - return Ltb(), new Ptb(b.b); - } - function $zb(a) { - var b; - b = Yzb(a); - if (Bbb(b.a, 0)) { - return Ltb(), Ltb(), Ktb; - } - return Ltb(), new Ptb(b.c); - } - function uAb(a) { - var b; - b = tAb(a); - if (Bbb(b.a, 0)) { - return Utb(), Utb(), Ttb; - } - return Utb(), new Xtb(b.b); - } - function zZb(a) { - if (a.b.c.i.k == (j0b(), e0b)) { - return BD(vNb(a.b.c.i, (wtc(), $sc)), 11); - } - return a.b.c; - } - function AZb(a) { - if (a.b.d.i.k == (j0b(), e0b)) { - return BD(vNb(a.b.d.i, (wtc(), $sc)), 11); - } - return a.b.d; - } - function Vnd(a, b, c, d, e, f, g10, h, i10, j, k, l, m) { - aod(a, b, c, d, e, f, g10, h, i10, j, k, l, m); - MJd(a, false); - return a; - } - function tJb(a, b, c, d, e, f, g10) { - $r.call(this, a, b); - this.d = c; - this.e = d; - this.c = e; - this.b = f; - this.a = Ou(g10); - } - function $bb(a, b) { - typeof window === Jhe && typeof window["$gwt"] === Jhe && (window["$gwt"][a] = b); - } - function pWb(a, b) { - lWb(); - return a == hWb && b == kWb || a == kWb && b == hWb || a == jWb && b == iWb || a == iWb && b == jWb; - } - function qWb(a, b) { - lWb(); - return a == hWb && b == iWb || a == hWb && b == jWb || a == kWb && b == jWb || a == kWb && b == iWb; - } - function IJb(a, b) { - return Iy(), My(ple), $wnd.Math.abs(0 - b) <= ple || 0 == b || isNaN(0) && isNaN(b) ? 0 : a / b; - } - function Rrc() { - Orc(); - return OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc]); - } - function NKd() { - NKd = ccb; - KKd = new KPd(); - MKd = OC(GC(t5, 1), Mve, 170, 0, []); - LKd = OC(GC(n5, 1), Nve, 59, 0, []); - } - function CBc() { - CBc = ccb; - BBc = new DBc("NO", 0); - zBc = new DBc("GREEDY", 1); - ABc = new DBc("LOOK_BACK", 2); - } - function z0b() { - z0b = ccb; - w0b = new m1b(); - u0b = new h1b(); - v0b = new q1b(); - t0b = new u1b(); - x0b = new y1b(); - y0b = new C1b(); - } - function J9b(a) { - var b, c, d; - d = 0; - for (c = new olb(a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 29); - b.p = d; - ++d; - } - } - function nfd(a, b) { - var c; - c = sfd(a); - return mfd(new f7c(c.c, c.d), new f7c(c.b, c.a), a.rf(), b, a.Hf()); - } - function Udd(a, b) { - var c; - if (a.b) { - return null; - } else { - c = Pdd(a, a.g); - Dsb(a.a, c); - c.i = a; - a.d = b; - return c; - } - } - function kUc(a, b, c) { - Odd(c, "DFS Treeifying phase", 1); - jUc(a, b); - hUc(a, b); - a.a = null; - a.b = null; - Qdd(c); - } - function zic(a, b, c) { - this.g = a; - this.d = b; - this.e = c; - this.a = new Rkb(); - xic(this); - mmb(); - Okb(this.a, null); - } - function Aud(a) { - this.i = a.gc(); - if (this.i > 0) { - this.g = this.ri(this.i + (this.i / 8 | 0) + 1); - a.Qc(this.g); - } - } - function u3d(a, b) { - k2d.call(this, D9, a, b); - this.b = this; - this.a = S6d(a.Tg(), XKd(this.e.Tg(), this.c)); - } - function Ld(a, b) { - var c, d; - uCb(b); - for (d = b.vc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 42); - a.zc(c.cd(), c.dd()); - } - } - function G2d(a, b, c) { - var d; - for (d = c.Kc(); d.Ob(); ) { - if (!E2d(a, b, d.Pb())) { - return false; - } - } - return true; - } - function sVd(a, b, c, d, e) { - var f; - if (c) { - f = bLd(b.Tg(), a.c); - e = c.gh(b, -1 - (f == -1 ? d : f), null, e); - } - return e; - } - function tVd(a, b, c, d, e) { - var f; - if (c) { - f = bLd(b.Tg(), a.c); - e = c.ih(b, -1 - (f == -1 ? d : f), null, e); - } - return e; - } - function Mgb(a) { - var b; - if (a.b == -2) { - if (a.e == 0) { - b = -1; - } else { - for (b = 0; a.a[b] == 0; b++) - ; - } - a.b = b; - } - return a.b; - } - function Z4b(a) { - switch (a.g) { - case 2: - return Ucd(), Tcd; - case 4: - return Ucd(), zcd; - default: - return a; - } - } - function $4b(a) { - switch (a.g) { - case 1: - return Ucd(), Rcd; - case 3: - return Ucd(), Acd; - default: - return a; - } - } - function nkc(a) { - var b, c, d; - return a.j == (Ucd(), Acd) && (b = pkc(a), c = uqb(b, zcd), d = uqb(b, Tcd), d || d && c); - } - function oqb(a) { - var b, c; - b = BD(a.e && a.e(), 9); - c = BD(ZBb(b, b.length), 9); - return new xqb(b, c, b.length); - } - function l7b(a, b) { - Odd(b, zne, 1); - UGb(TGb(new YGb((a$b(), new l$b(a, false, false, new T$b()))))); - Qdd(b); - } - function Fcb(a, b) { - Bcb(); - return ND(a) ? cfb(a, GD(b)) : LD(a) ? Ddb(a, ED(b)) : KD(a) ? Dcb(a, DD(b)) : a.wd(b); - } - function WZc(a, b) { - b.q = a; - a.d = $wnd.Math.max(a.d, b.r); - a.b += b.d + (a.a.c.length == 0 ? 0 : a.c); - Ekb(a.a, b); - } - function m6c(a, b) { - var c, d, e, f; - e = a.c; - c = a.c + a.b; - f = a.d; - d = a.d + a.a; - return b.a > e && b.a < c && b.b > f && b.b < d; - } - function Ynd(a, b, c, d) { - JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null); - pnd(a, c); - !!b && hKd(a, b); - d && a.xk(true); - } - function Yqd(a, b) { - var c; - c = BD(b, 183); - Spd(c, "x", a.i); - Spd(c, "y", a.j); - Spd(c, Gte, a.g); - Spd(c, Fte, a.f); - } - function LFc() { - LFc = ccb; - KFc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b); - } - function dHc() { - dHc = ccb; - cHc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b); - } - function sXc() { - sXc = ccb; - qXc = new uXc(ane, 0); - rXc = new uXc("POLAR_COORDINATE", 1); - pXc = new uXc("ID", 2); - } - function TAc() { - TAc = ccb; - QAc = new UAc("EQUALLY", 0); - RAc = new UAc(xle, 1); - SAc = new UAc("NORTH_SOUTH", 2); - } - function pAc() { - pAc = ccb; - oAc = as((kAc(), OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc]))); - } - function Flc() { - Flc = ccb; - Elc = as((Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]))); - } - function e6c() { - e6c = ccb; - d6c = as((_5c(), OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c]))); - } - function Hsd() { - Hsd = ccb; - Gsd = as((Csd(), OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd]))); - } - function XNb() { - XNb = ccb; - VNb = new Msd("debugSVG", (Bcb(), false)); - WNb = new Msd("overlapsExisted", true); - } - function Xyb(a, b) { - return Ayb(new tzb(a), new vzb(b), new xzb(b), new zzb(), OC(GC(xL, 1), Kie, 132, 0, [])); - } - function hyb() { - var a; - if (!dyb) { - dyb = new gyb(); - a = new wyb(""); - uyb(a, ($xb(), Zxb)); - eyb(dyb, a); - } - return dyb; - } - function hr(a, b) { - var c; - Qb(b); - while (a.Ob()) { - c = a.Pb(); - if (!QNc(BD(c, 10))) { - return false; - } - } - return true; - } - function T3c(a, b) { - var c; - c = h4c(n4c(), a); - if (c) { - jkd(b, (Y9c(), F9c), c); - return true; - } else { - return false; - } - } - function d3c(a, b) { - var c; - for (c = 0; c < b.j.c.length; c++) { - BD(B2c(a, c), 21).Gc(BD(B2c(b, c), 14)); - } - return a; - } - function M9b(a, b) { - var c, d; - for (d = new olb(b.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - a.a[c.p] = _$b(c); - } - } - function stb(a, b) { - var c, d; - uCb(b); - for (d = a.vc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 42); - b.Od(c.cd(), c.dd()); - } - } - function cId(a, b) { - var c; - if (JD(b, 83)) { - BD(a.c, 76).Xj(); - c = BD(b, 83); - IAd(a, c); - } else { - BD(a.c, 76).Wb(b); - } - } - function Su(a) { - return JD(a, 152) ? km(BD(a, 152)) : JD(a, 131) ? BD(a, 131).a : JD(a, 54) ? new ov(a) : new dv(a); - } - function fac(a, b) { - return b < a.b.gc() ? BD(a.b.Xb(b), 10) : b == a.b.gc() ? a.a : BD(Ikb(a.e, b - a.b.gc() - 1), 10); - } - function crb(a, b) { - a.a = wbb(a.a, 1); - a.c = $wnd.Math.min(a.c, b); - a.b = $wnd.Math.max(a.b, b); - a.d = wbb(a.d, b); - } - function n3b(a, b) { - var c; - Odd(b, "Edge and layer constraint edge reversal", 1); - c = m3b(a); - l3b(c); - Qdd(b); - } - function tAd(a) { - var b; - if (a.d == null) { - ++a.e; - a.f = 0; - sAd(null); - } else { - ++a.e; - b = a.d; - a.d = null; - a.f = 0; - sAd(b); - } - } - function zbb(a) { - var b; - b = a.h; - if (b == 0) { - return a.l + a.m * Hje; - } - if (b == Fje) { - return a.l + a.m * Hje - Ije; - } - return a; - } - function aKb(a) { - $Jb(); - if (a.A.Hc((tdd(), pdd))) { - if (!a.B.Hc((Idd(), Ddd))) { - return _Jb(a); - } - } - return null; - } - function Zgb(a) { - uCb(a); - if (a.length == 0) { - throw vbb(new Oeb("Zero length BigInteger")); - } - dhb(this, a); - } - function Vb(a) { - if (!a) { - throw vbb(new Zdb("no calls to next() since the last call to remove()")); - } - } - function Cbb(a) { - if (Kje < a && a < Ije) { - return a < 0 ? $wnd.Math.ceil(a) : $wnd.Math.floor(a); - } - return zbb(fD(a)); - } - function Yyb(a, b) { - var c, d, e; - c = a.c.Ee(); - for (e = b.Kc(); e.Ob(); ) { - d = e.Pb(); - a.a.Od(c, d); - } - return a.b.Kb(c); - } - function Uhd(a, b) { - var c, d, e; - c = a.Jg(); - if (c != null && a.Mg()) { - for (d = 0, e = c.length; d < e; ++d) { - c[d].ui(b); - } - } - } - function f_b(a, b) { - var c, d; - c = a; - d = Q_b(c).e; - while (d) { - c = d; - if (c == b) { - return true; - } - d = Q_b(c).e; - } - return false; - } - function lDc(a, b, c) { - var d, e; - d = a.a.f[b.p]; - e = a.a.f[c.p]; - if (d < e) { - return -1; - } - if (d == e) { - return 0; - } - return 1; - } - function Si(a, b, c) { - var d, e; - e = BD(tn(a.d, b), 19); - d = BD(tn(a.b, c), 19); - return !e || !d ? null : Mi(a, e.a, d.a); - } - function cYc(a, b) { - var c, d; - for (d = new Fyd(a); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 33); - bld(c, c.i + b.b, c.j + b.d); - } - } - function qjc(a, b) { - var c, d; - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 70); - Ekb(a.d, c); - ujc(a, c); - } - } - function pQc(a, b) { - var c, d; - d = new Rkb(); - c = b; - do { - d.c[d.c.length] = c; - c = BD(Ohb(a.k, c), 17); - } while (c); - return d; - } - function Ajd(a, b) { - var c; - if ((a.Db & b) != 0) { - c = zjd(a, b); - return c == -1 ? a.Eb : CD(a.Eb)[c]; - } else { - return null; - } - } - function Lnd(a, b) { - var c, d; - c = (d = new hLd(), d); - c.G = b; - !a.rb && (a.rb = new jUd(a, d5, a)); - wtd(a.rb, c); - return c; - } - function Mnd(a, b) { - var c, d; - c = (d = new MPd(), d); - c.G = b; - !a.rb && (a.rb = new jUd(a, d5, a)); - wtd(a.rb, c); - return c; - } - function Hkd(a, b) { - switch (b) { - case 1: - return !!a.n && a.n.i != 0; - case 2: - return a.k != null; - } - return dkd(a, b); - } - function gNc(a) { - switch (a.a.g) { - case 1: - return new NNc(); - case 3: - return new vQc(); - default: - return new wNc(); - } - } - function MRd(a) { - var b; - if (a.g > 1 || a.Ob()) { - ++a.a; - a.g = 0; - b = a.i; - a.Ob(); - return b; - } else { - throw vbb(new utb()); - } - } - function kNc(a) { - fNc(); - var b; - if (!Lpb(eNc, a)) { - b = new hNc(); - b.a = a; - Opb(eNc, a, b); - } - return BD(Mpb(eNc, a), 635); - } - function Rbb(a) { - var b, c, d, e; - e = a; - d = 0; - if (e < 0) { - e += Ije; - d = Fje; - } - c = QD(e / Hje); - b = QD(e - c * Hje); - return TC(b, c, d); - } - function Ox(a) { - var b, c, d; - d = 0; - for (c = new Gqb(a.a); c.a < c.c.a.length; ) { - b = Fqb(c); - a.b.Hc(b) && ++d; - } - return d; - } - function Ku(a) { - var b, c, d; - b = 1; - for (d = a.Kc(); d.Ob(); ) { - c = d.Pb(); - b = 31 * b + (c == null ? 0 : tb(c)); - b = ~~b; - } - return b; - } - function Zwb(a, b) { - var c; - this.c = a; - c = new Rkb(); - Ewb(a, c, b, a.b, null, false, null, false); - this.a = new Bib(c, 0); - } - function p4d(a, b) { - this.b = a; - this.e = b; - this.d = b.j; - this.f = (Q6d(), BD(a, 66).Oj()); - this.k = S6d(b.e.Tg(), a); - } - function xwb(a, b, c) { - this.b = (uCb(a), a); - this.d = (uCb(b), b); - this.e = (uCb(c), c); - this.c = this.d + ("" + this.e); - } - function xRb() { - this.a = BD(Ksd((wSb(), eSb)), 19).a; - this.c = Edb(ED(Ksd(uSb))); - this.b = Edb(ED(Ksd(qSb))); - } - function Nbd() { - Nbd = ccb; - Mbd = as((Hbd(), OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd]))); - } - function wFb() { - wFb = ccb; - vFb = as((rFb(), OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb]))); - } - function vLb() { - vLb = ccb; - uLb = new wLb("UP", 0); - rLb = new wLb(vle, 1); - sLb = new wLb(jle, 2); - tLb = new wLb(kle, 3); - } - function rTc() { - rTc = ccb; - qTc = (STc(), QTc); - pTc = new Nsd(Zqe, qTc); - oTc = ($Tc(), ZTc); - nTc = new Nsd($qe, oTc); - } - function Xrc() { - Xrc = ccb; - Vrc = new Yrc("ONE_SIDED", 0); - Wrc = new Yrc("TWO_SIDED", 1); - Urc = new Yrc("OFF", 2); - } - function TQc(a) { - a.r = new Tqb(); - a.w = new Tqb(); - a.t = new Rkb(); - a.i = new Rkb(); - a.d = new Tqb(); - a.a = new I6c(); - a.c = new Lqb(); - } - function uOc(a) { - this.n = new Rkb(); - this.e = new Psb(); - this.j = new Psb(); - this.k = new Rkb(); - this.f = new Rkb(); - this.p = a; - } - function PEc(a, b) { - if (a.c) { - QEc(a, b, true); - MAb(new YAb(null, new Kub(b, 16)), new bFc(a)); - } - QEc(a, b, false); - } - function wFc(a, b, c) { - return a == (rGc(), qGc) ? new pFc() : Cub(b, 1) != 0 ? new iHc(c.length) : new RGc(c.length); - } - function tNb(a, b) { - var c; - if (!b) { - return a; - } - c = b.Ve(); - c.dc() || (!a.q ? a.q = new Nqb(c) : Ld(a.q, c)); - return a; - } - function Erb(a, b) { - var c; - c = a.a.get(b); - if (c === void 0) { - ++a.d; - } else { - urb(a.a, b); - --a.c; - zpb(a.b); - } - return c; - } - function UYb(a, b) { - var c, d, e; - c = b.p - a.p; - if (c == 0) { - d = a.f.a * a.f.b; - e = b.f.a * b.f.b; - return Kdb(d, e); - } - return c; - } - function XLb(a, b) { - var c, d; - c = a.f.c.length; - d = b.f.c.length; - if (c < d) { - return -1; - } - if (c == d) { - return 0; - } - return 1; - } - function KZb(a) { - if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) { - return BD(Ikb(a.b, 0), 70).a; - } - return JZb(a); - } - function Pq(a) { - var b; - if (a) { - b = a; - if (b.dc()) { - throw vbb(new utb()); - } - return b.Xb(b.gc() - 1); - } - return nr(a.Kc()); - } - function vgb(a) { - var b; - ybb(a, 0) < 0 && (a = Lbb(a)); - return b = Tbb(Obb(a, 32)), 64 - (b != 0 ? heb(b) : heb(Tbb(a)) + 32); - } - function QNc(a) { - var b; - b = BD(vNb(a, (wtc(), Hsc)), 61); - return a.k == (j0b(), e0b) && (b == (Ucd(), Tcd) || b == zcd); - } - function bZb(a, b, c) { - var d, e; - e = BD(vNb(a, (Nyc(), jxc)), 74); - if (e) { - d = new s7c(); - o7c(d, 0, e); - q7c(d, c); - ye(b, d); - } - } - function M_b(a, b, c) { - var d, e, f, g10; - g10 = Q_b(a); - d = g10.d; - e = g10.c; - f = a.n; - b && (f.a = f.a - d.b - e.a); - c && (f.b = f.b - d.d - e.b); - } - function dcc(a, b) { - var c, d; - c = a.j; - d = b.j; - return c != d ? c.g - d.g : a.p == b.p ? 0 : c == (Ucd(), Acd) ? a.p - b.p : b.p - a.p; - } - function dmc(a) { - var b, c; - bmc(a); - for (c = new olb(a.d); c.a < c.c.c.length; ) { - b = BD(mlb(c), 101); - !!b.i && cmc(b); - } - } - function lBc(a, b, c, d, e) { - NC(a.c[b.g], c.g, d); - NC(a.c[c.g], b.g, d); - NC(a.b[b.g], c.g, e); - NC(a.b[c.g], b.g, e); - } - function G1c(a, b, c, d) { - BD(c.b, 65); - BD(c.b, 65); - BD(d.b, 65); - BD(d.b, 65); - BD(d.b, 65); - Hkb(d.a, new L1c(a, b, d)); - } - function WDb(a, b) { - a.d == (ead(), aad) || a.d == dad ? BD(b.a, 57).c.Fc(BD(b.b, 57)) : BD(b.b, 57).c.Fc(BD(b.a, 57)); - } - function Gkd(a, b, c, d) { - if (c == 1) { - return !a.n && (a.n = new cUd(D2, a, 1, 7)), Txd(a.n, b, d); - } - return ckd(a, b, c, d); - } - function Gnd(a, b) { - var c, d; - d = (c = new BYd(), c); - pnd(d, b); - wtd((!a.A && (a.A = new K4d(u5, a, 7)), a.A), d); - return d; - } - function Zqd(a, b, c) { - var d, e, f, g10; - f = null; - g10 = b; - e = Ypd(g10, Jte); - d = new jrd(a, c); - f = (lqd(d.a, d.b, e), e); - return f; - } - function KJd(a) { - var b; - if (!a.a || (a.Bb & 1) == 0 && a.a.kh()) { - b = wId(a); - JD(b, 148) && (a.a = BD(b, 148)); - } - return a.a; - } - function Be(a, b) { - var c, d; - uCb(b); - for (d = b.Kc(); d.Ob(); ) { - c = d.Pb(); - if (!a.Hc(c)) { - return false; - } - } - return true; - } - function cD(a, b) { - var c, d, e; - c = a.l + b.l; - d = a.m + b.m + (c >> 22); - e = a.h + b.h + (d >> 22); - return TC(c & Eje, d & Eje, e & Fje); - } - function nD(a, b) { - var c, d, e; - c = a.l - b.l; - d = a.m - b.m + (c >> 22); - e = a.h - b.h + (d >> 22); - return TC(c & Eje, d & Eje, e & Fje); - } - function bdb(a) { - var b; - if (a < 128) { - b = (ddb(), cdb)[a]; - !b && (b = cdb[a] = new Xcb(a)); - return b; - } - return new Xcb(a); - } - function ubb(a) { - var b; - if (JD(a, 78)) { - return a; - } - b = a && a.__java$exception; - if (!b) { - b = new lz(a); - Sz(b); - } - return b; - } - function btd(a) { - if (JD(a, 186)) { - return BD(a, 118); - } else if (!a) { - throw vbb(new Heb(gue)); - } else { - return null; - } - } - function Zjb(a, b) { - if (b == null) { - return false; - } - while (a.a != a.b) { - if (pb(b, vkb(a))) { - return true; - } - } - return false; - } - function kib(a) { - if (a.a.Ob()) { - return true; - } - if (a.a != a.d) { - return false; - } - a.a = new orb(a.e.f); - return a.a.Ob(); - } - function Gkb(a, b) { - var c, d; - c = b.Pc(); - d = c.length; - if (d == 0) { - return false; - } - bCb(a.c, a.c.length, c); - return true; - } - function Vyb(a, b, c) { - var d, e; - for (e = b.vc().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 42); - a.yc(d.cd(), d.dd(), c); - } - return a; - } - function yac(a, b) { - var c, d; - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 70); - yNb(c, (wtc(), Ssc), b); - } - } - function FZc(a, b, c) { - var d, e; - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 33); - bld(d, d.i + b, d.j + c); - } - } - function Nb(a, b) { - if (!a) { - throw vbb(new Wdb(hc("value already present: %s", OC(GC(SI, 1), Uhe, 1, 5, [b])))); - } - } - function mEb(a, b) { - if (!a || !b || a == b) { - return false; - } - return CDb(a.d.c, b.d.c + b.d.b) && CDb(b.d.c, a.d.c + a.d.b); - } - function xyb() { - oyb(); - if (lyb) { - return new wyb(null); - } - return fyb(hyb(), "com.google.common.base.Strings"); - } - function J2c(a, b) { - var c; - c = Pu(b.a.gc()); - MAb(VAb(new YAb(null, new Kub(b, 1)), a.i), new W2c(a, c)); - return c; - } - function Hnd(a) { - var b, c; - c = (b = new BYd(), b); - pnd(c, "T"); - wtd((!a.d && (a.d = new K4d(u5, a, 11)), a.d), c); - return c; - } - function Etd(a) { - var b, c, d, e; - b = 1; - for (c = 0, e = a.gc(); c < e; ++c) { - d = a.ki(c); - b = 31 * b + (d == null ? 0 : tb(d)); - } - return b; - } - function Wi(a, b, c, d) { - var e; - Pb(b, a.e.Hd().gc()); - Pb(c, a.c.Hd().gc()); - e = a.a[b][c]; - NC(a.a[b], c, d); - return e; - } - function OC(a, b, c, d, e) { - e.gm = a; - e.hm = b; - e.im = gcb; - e.__elementTypeId$ = c; - e.__elementTypeCategory$ = d; - return e; - } - function p6c(a, b, c, d, e) { - i6c(); - return $wnd.Math.min(A6c(a, b, c, d, e), A6c(c, d, a, b, V6c(new f7c(e.a, e.b)))); - } - function gbc() { - gbc = ccb; - fbc = new ibc(ane, 0); - dbc = new ibc(Gne, 1); - ebc = new ibc(Hne, 2); - cbc = new ibc("BOTH", 3); - } - function Ajc() { - Ajc = ccb; - wjc = new Bjc(gle, 0); - xjc = new Bjc(jle, 1); - yjc = new Bjc(kle, 2); - zjc = new Bjc("TOP", 3); - } - function lWb() { - lWb = ccb; - hWb = new oWb("Q1", 0); - kWb = new oWb("Q4", 1); - iWb = new oWb("Q2", 2); - jWb = new oWb("Q3", 3); - } - function LBc() { - LBc = ccb; - JBc = new MBc("OFF", 0); - KBc = new MBc("SINGLE_EDGE", 1); - IBc = new MBc("MULTI_EDGE", 2); - } - function a1c() { - a1c = ccb; - _0c = new c1c("MINIMUM_SPANNING_TREE", 0); - $0c = new c1c("MAXIMUM_SPANNING_TREE", 1); - } - function Y1c() { - Y1c = ccb; - new Lsd("org.eclipse.elk.addLayoutConfig"); - W1c = new k2c(); - V1c = new f2c(); - X1c = new i2c(); - } - function URc(a) { - var b, c, d; - b = new Psb(); - for (d = Jsb(a.d, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 188); - Dsb(b, c.c); - } - return b; - } - function dVc(a) { - var b, c, d, e; - e = new Rkb(); - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 33); - b = gVc(c); - Gkb(e, b); - } - return e; - } - function xcc(a) { - var b; - PZb(a, true); - b = _ie; - wNb(a, (Nyc(), cyc)) && (b += BD(vNb(a, cyc), 19).a); - yNb(a, cyc, meb(b)); - } - function q1c(a, b, c) { - var d; - Uhb(a.a); - Hkb(c.i, new B1c(a)); - d = new hDb(BD(Ohb(a.a, b.b), 65)); - p1c(a, d, b); - c.f = d; - } - function QLc(a, b) { - var c, d; - c = a.c; - d = b.e[a.p]; - if (d < c.a.c.length - 1) { - return BD(Ikb(c.a, d + 1), 10); - } - return null; - } - function rr(a, b) { - var c, d; - Rb(b, "predicate"); - for (d = 0; a.Ob(); d++) { - c = a.Pb(); - if (b.Lb(c)) { - return d; - } - } - return -1; - } - function ZEd(a, b) { - var c, d; - d = 0; - if (a < 64 && a <= b) { - b = b < 64 ? b : 63; - for (c = a; c <= b; c++) { - d = Mbb(d, Nbb(1, c)); - } - } - return d; - } - function pmb(a) { - mmb(); - var b, c, d; - d = 0; - for (c = a.Kc(); c.Ob(); ) { - b = c.Pb(); - d = d + (b != null ? tb(b) : 0); - d = d | 0; - } - return d; - } - function etd(a) { - var b, c; - c = (Fhd(), b = new rmd(), b); - !!a && wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c); - return c; - } - function TA(a) { - var b; - b = new PA(); - b.a = a; - b.b = RA(a); - b.c = KC(ZI, nie, 2, 2, 6, 1); - b.c[0] = SA(a); - b.c[1] = SA(a); - return b; - } - function fkd(a, b) { - switch (b) { - case 0: - !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)); - a.o.c.$b(); - return; - } - Cid(a, b); - } - function jEb(a, b, c) { - switch (c.g) { - case 2: - a.b = b; - break; - case 1: - a.c = b; - break; - case 4: - a.d = b; - break; - case 3: - a.a = b; - } - } - function sbd(a) { - switch (a.g) { - case 1: - return obd; - case 2: - return nbd; - case 3: - return pbd; - default: - return qbd; - } - } - function Zac(a) { - switch (BD(vNb(a, (Nyc(), mxc)), 163).g) { - case 2: - case 4: - return true; - default: - return false; - } - } - function Trc() { - Trc = ccb; - Src = as((Orc(), OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc]))); - } - function Ndd() { - Ndd = ccb; - Mdd = as((Idd(), OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd]))); - } - function wUc() { - wUc = ccb; - vUc = e3c(b3c(b3c(g3c(e3c(new j3c(), (yRc(), vRc), (qSc(), pSc)), wRc), mSc), nSc), xRc, oSc); - } - function Gqc() { - Gqc = ccb; - Eqc = new Hqc(ane, 0); - Dqc = new Hqc("INCOMING_ONLY", 1); - Fqc = new Hqc("OUTGOING_ONLY", 2); - } - function rC() { - rC = ccb; - qC = { "boolean": sC, "number": tC, "string": vC, "object": uC, "function": uC, "undefined": wC }; - } - function Whb(a, b) { - mCb(a >= 0, "Negative initial capacity"); - mCb(b >= 0, "Non-positive load factor"); - Uhb(this); - } - function _Ed(a, b, c) { - if (a >= 128) - return false; - return a < 64 ? Kbb(xbb(Nbb(1, a), c), 0) : Kbb(xbb(Nbb(1, a - 64), b), 0); - } - function bOb(a, b) { - if (!a || !b || a == b) { - return false; - } - return Jy(a.b.c, b.b.c + b.b.b) < 0 && Jy(b.b.c, a.b.c + a.b.b) < 0; - } - function I4b(a) { - var b, c, d; - c = a.n; - d = a.o; - b = a.d; - return new J6c(c.a - b.b, c.b - b.d, d.a + (b.b + b.c), d.b + (b.d + b.a)); - } - function $ic(a) { - var b, c, d, e; - for (c = a.a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - djc(a, b, (Ucd(), Rcd)); - djc(a, b, Acd); - } - } - function Uy(a) { - var b, c, d, e; - for (b = (a.j == null && (a.j = (Rz(), e = Qz.ce(a), Tz(e))), a.j), c = 0, d = b.length; c < d; ++c) - ; - } - function hD(a) { - var b, c, d; - b = ~a.l + 1 & Eje; - c = ~a.m + (b == 0 ? 1 : 0) & Eje; - d = ~a.h + (b == 0 && c == 0 ? 1 : 0) & Fje; - return TC(b, c, d); - } - function C$c(a, b) { - var c, d; - c = BD(BD(Ohb(a.g, b.a), 46).a, 65); - d = BD(BD(Ohb(a.g, b.b), 46).a, 65); - return _Nb(c, d); - } - function xtd(a, b, c) { - var d; - d = a.gc(); - if (b > d) - throw vbb(new Cyd(b, d)); - a.hi() && (c = Dtd(a, c)); - return a.Vh(b, c); - } - function xNb(a, b, c) { - return c == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c)), a; - } - function yNb(a, b, c) { - c == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c)); - return a; - } - function TQb(a) { - var b, c; - c = new kRb(); - tNb(c, a); - yNb(c, (HSb(), FSb), a); - b = new Lqb(); - VQb(a, c, b); - UQb(a, c, b); - return c; - } - function j6c(a) { - i6c(); - var b, c, d; - c = KC(m1, nie, 8, 2, 0, 1); - d = 0; - for (b = 0; b < 2; b++) { - d += 0.5; - c[b] = r6c(d, a); - } - return c; - } - function Mic(a, b) { - var c, d, e, f; - c = false; - d = a.a[b].length; - for (f = 0; f < d - 1; f++) { - e = f + 1; - c = c | Nic(a, b, f, e); - } - return c; - } - function nNb(a, b, c, d, e) { - var f, g10; - for (g10 = c; g10 <= e; g10++) { - for (f = b; f <= d; f++) { - YMb(a, f, g10) || aNb(a, f, g10, true, false); - } - } - } - function rNd(a, b) { - this.b = a; - nNd.call(this, (BD(qud(ZKd((NFd(), MFd).o), 10), 18), b.i), b.g); - this.a = (NKd(), MKd); - } - function hj(a, b) { - this.c = a; - this.d = b; - this.b = this.d / this.c.c.Hd().gc() | 0; - this.a = this.d % this.c.c.Hd().gc(); - } - function jdb() { - ++edb; - this.o = null; - this.k = null; - this.j = null; - this.d = null; - this.b = null; - this.n = null; - this.a = null; - } - function fB(a, b, c) { - this.q = new $wnd.Date(); - this.q.setFullYear(a + nje, b, c); - this.q.setHours(0, 0, 0, 0); - YA(this, 0); - } - function tAc() { - tAc = ccb; - rAc = new uAc(ane, 0); - qAc = new uAc("NODES_AND_EDGES", 1); - sAc = new uAc("PREFER_EDGES", 2); - } - function RA(a) { - var b; - if (a == 0) { - return "Etc/GMT"; - } - if (a < 0) { - a = -a; - b = "Etc/GMT-"; - } else { - b = "Etc/GMT+"; - } - return b + UA(a); - } - function geb(a) { - var b; - if (a < 0) { - return Rie; - } else if (a == 0) { - return 0; - } else { - for (b = Iie; (b & a) == 0; b >>= 1) - ; - return b; - } - } - function $C(a) { - var b, c; - c = heb(a.h); - if (c == 32) { - b = heb(a.m); - return b == 32 ? heb(a.l) + 32 : b + 20 - 10; - } else { - return c - 12; - } - } - function bkb(a) { - var b; - b = a.a[a.b]; - if (b == null) { - return null; - } - NC(a.a, a.b, null); - a.b = a.b + 1 & a.a.length - 1; - return b; - } - function EDc(a) { - var b, c; - b = a.t - a.k[a.o.p] * a.d + a.j[a.o.p] > a.f; - c = a.u + a.e[a.o.p] * a.d > a.f * a.s * a.d; - return b || c; - } - function Iwb(a, b, c) { - var d, e; - d = new exb(b, c); - e = new fxb(); - a.b = Gwb(a, a.b, d, e); - e.b || ++a.c; - a.b.b = false; - return e.d; - } - function djc(a, b, c) { - var d, e, f, g10; - g10 = CHc(b, c); - f = 0; - for (e = g10.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 11); - Rhb(a.c, d, meb(f++)); - } - } - function xVb(a) { - var b, c; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - b.g.c = -b.g.c - b.g.b; - } - sVb(a); - } - function XDb(a) { - var b, c; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - b.d.c = -b.d.c - b.d.b; - } - RDb(a); - } - function AUd(a) { - var b; - if (!a.c || (a.Bb & 1) == 0 && (a.c.Db & 64) != 0) { - b = wId(a); - JD(b, 88) && (a.c = BD(b, 26)); - } - return a.c; - } - function ZC(a) { - var b, c, d; - b = ~a.l + 1 & Eje; - c = ~a.m + (b == 0 ? 1 : 0) & Eje; - d = ~a.h + (b == 0 && c == 0 ? 1 : 0) & Fje; - a.l = b; - a.m = c; - a.h = d; - } - function l7c(a) { - var b, c, d, e, f; - b = new d7c(); - for (d = a, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - b.a += c.a; - b.b += c.b; - } - return b; - } - function nmb(a, b) { - mmb(); - var c, d, e, f, g10; - g10 = false; - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - g10 = g10 | a.Fc(c); - } - return g10; - } - function w6c(a) { - i6c(); - var b, c; - c = -17976931348623157e292; - for (b = 0; b < a.length; b++) { - a[b] > c && (c = a[b]); - } - return c; - } - function SHc(a, b, c) { - var d; - d = new Rkb(); - UHc(a, b, d, (Ucd(), zcd), true, false); - UHc(a, c, d, Tcd, false, false); - return d; - } - function crd(a, b, c) { - var d, e, f, g10; - f = null; - g10 = b; - e = Ypd(g10, "labels"); - d = new Hrd(a, c); - f = (Dqd(d.a, d.b, e), e); - return f; - } - function j1d(a, b, c, d) { - var e; - e = r1d(a, b, c, d); - if (!e) { - e = i1d(a, c, d); - if (!!e && !e1d(a, b, e)) { - return null; - } - } - return e; - } - function m1d(a, b, c, d) { - var e; - e = s1d(a, b, c, d); - if (!e) { - e = l1d(a, c, d); - if (!!e && !e1d(a, b, e)) { - return null; - } - } - return e; - } - function Xb(a, b) { - var c; - for (c = 0; c < a.a.a.length; c++) { - if (!BD($lb(a.a, c), 169).Lb(b)) { - return false; - } - } - return true; - } - function Cb(a, b, c) { - Qb(b); - if (c.Ob()) { - Mfb(b, Fb(c.Pb())); - while (c.Ob()) { - Mfb(b, a.a); - Mfb(b, Fb(c.Pb())); - } - } - return b; - } - function qmb(a) { - mmb(); - var b, c, d; - d = 1; - for (c = a.Kc(); c.Ob(); ) { - b = c.Pb(); - d = 31 * d + (b != null ? tb(b) : 0); - d = d | 0; - } - return d; - } - function WC(a, b, c, d, e) { - var f; - f = lD(a, b); - c && ZC(f); - if (e) { - a = YC(a, b); - d ? QC = hD(a) : QC = TC(a.l, a.m, a.h); - } - return f; - } - function Xzb(b, c) { - var d; - try { - c.Vd(); - } catch (a) { - a = ubb(a); - if (JD(a, 78)) { - d = a; - b.c[b.c.length] = d; - } else - throw vbb(a); - } - } - function jRb(a, b, c) { - var d, e; - if (JD(b, 144) && !!c) { - d = BD(b, 144); - e = c; - return a.a[d.b][e.b] + a.a[e.b][d.b]; - } - return 0; - } - function xld(a, b) { - switch (b) { - case 7: - return !!a.e && a.e.i != 0; - case 8: - return !!a.d && a.d.i != 0; - } - return Ykd(a, b); - } - function YQb(a, b) { - switch (b.g) { - case 0: - JD(a.b, 631) || (a.b = new xRb()); - break; - case 1: - JD(a.b, 632) || (a.b = new DRb()); - } - } - function Ghe(a, b) { - while (a.g == null && !a.c ? Uud(a) : a.g == null || a.i != 0 && BD(a.g[a.i - 1], 47).Ob()) { - Ord(b, Vud(a)); - } - } - function kic(a, b, c) { - a.g = qic(a, b, (Ucd(), zcd), a.b); - a.d = qic(a, c, zcd, a.b); - if (a.g.c == 0 || a.d.c == 0) { - return; - } - nic(a); - } - function lic(a, b, c) { - a.g = qic(a, b, (Ucd(), Tcd), a.j); - a.d = qic(a, c, Tcd, a.j); - if (a.g.c == 0 || a.d.c == 0) { - return; - } - nic(a); - } - function $yc(a, b, c) { - return !WAb(JAb(new YAb(null, new Kub(a.c, 16)), new Xxb(new dfd(b, c)))).sd((EAb(), DAb)); - } - function KAb(a) { - var b; - Tzb(a); - b = new NBb(); - if (a.a.sd(b)) { - return Atb(), new Ftb(uCb(b.a)); - } - return Atb(), Atb(), ztb; - } - function nA(a) { - var b; - if (a.b <= 0) { - return false; - } - b = hfb("MLydhHmsSDkK", wfb(bfb(a.c, 0))); - return b > 1 || b >= 0 && a.b < 3; - } - function w7c(a) { - var b, c, d; - b = new s7c(); - for (d = Jsb(a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 8); - St(b, 0, new g7c(c)); - } - return b; - } - function qVb(a) { - var b, c; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - b.f.$b(); - } - LVb(a.b, a); - rVb(a); - } - function tb(a) { - return ND(a) ? LCb(a) : LD(a) ? Hdb(a) : KD(a) ? (uCb(a), a) ? 1231 : 1237 : ID(a) ? a.Hb() : MC(a) ? FCb(a) : rz(a); - } - function rb(a) { - return ND(a) ? ZI : LD(a) ? BI : KD(a) ? wI : ID(a) ? a.gm : MC(a) ? a.gm : a.gm || Array.isArray(a) && GC(PH, 1) || PH; - } - function j_c(a) { - switch (a.g) { - case 0: - return new Q1c(); - default: - throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g))); - } - } - function S0c(a) { - switch (a.g) { - case 0: - return new k1c(); - default: - throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g))); - } - } - function ekd(a, b, c) { - switch (b) { - case 0: - !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)); - cId(a.o, c); - return; - } - yid(a, b, c); - } - function XRc(a, b, c) { - this.g = a; - this.e = new d7c(); - this.f = new d7c(); - this.d = new Psb(); - this.b = new Psb(); - this.a = b; - this.c = c; - } - function PZc(a, b, c, d) { - this.b = new Rkb(); - this.n = new Rkb(); - this.i = d; - this.j = c; - this.s = a; - this.t = b; - this.r = 0; - this.d = 0; - } - function nib(a) { - this.e = a; - this.d = new Irb(this.e.g); - this.a = this.d; - this.b = kib(this); - this.$modCount = a.$modCount; - } - function Pr(a) { - while (!a.d || !a.d.Ob()) { - if (!!a.b && !akb(a.b)) { - a.d = BD(fkb(a.b), 47); - } else { - return null; - } - } - return a.d; - } - function Xyc(a) { - Ekb(a.c, (Y1c(), W1c)); - if (Ky(a.a, Edb(ED(Ksd((dzc(), bzc)))))) { - return new Zed(); - } - return new _ed(a); - } - function bRc(a) { - switch (a.g) { - case 1: - return Sqe; - default: - case 2: - return 0; - case 3: - return cme; - case 4: - return Tqe; - } - } - function Ife() { - wfe(); - var a; - if (dfe) - return dfe; - a = Afe(Kfe("M", true)); - a = Bfe(Kfe("M", false), a); - dfe = a; - return dfe; - } - function Awb(a, b) { - var c, d, e; - e = a.b; - while (e) { - c = a.a.ue(b, e.d); - if (c == 0) { - return e; - } - d = c < 0 ? 0 : 1; - e = e.a[d]; - } - return null; - } - function Tyb(a, b, c) { - var d, e; - d = (Bcb(), _Pb(c) ? true : false); - e = BD(b.xc(d), 15); - if (!e) { - e = new Rkb(); - b.zc(d, e); - } - e.Fc(c); - } - function dYc(a, b) { - var c, d; - c = BD(hkd(a, (lZc(), UYc)), 19).a; - d = BD(hkd(b, UYc), 19).a; - return c == d ? -1 : c < d ? -1 : c > d ? 1 : 0; - } - function NYb(a, b) { - if (OYb(a, b)) { - Rc(a.b, BD(vNb(b, (wtc(), Esc)), 21), b); - Dsb(a.a, b); - return true; - } else { - return false; - } - } - function d3b(a) { - var b, c; - b = BD(vNb(a, (wtc(), gtc)), 10); - if (b) { - c = b.c; - Lkb(c.a, b); - c.a.c.length == 0 && Lkb(Q_b(b).b, c); - } - } - function syb(a) { - if (lyb) { - return KC(qL, tke, 572, 0, 0, 1); - } - return BD(Qkb(a.a, KC(qL, tke, 572, a.a.c.length, 0, 1)), 842); - } - function mn(a, b, c, d) { - Vm(); - return new wx(OC(GC(CK, 1), zie, 42, 0, [(Wj(a, b), new Wo(a, b)), (Wj(c, d), new Wo(c, d))])); - } - function Dnd(a, b, c) { - var d, e; - e = (d = new SSd(), d); - $nd(e, b, c); - wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), e); - return e; - } - function Zmd(a) { - var b, c, d, e; - e = icb(Rmd, a); - c = e.length; - d = KC(ZI, nie, 2, c, 6, 1); - for (b = 0; b < c; ++b) { - d[b] = e[b]; - } - return d; - } - function l4c(a, b) { - var c, d, e, f, g10; - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - g10 = new v4c(a); - c.Qe(g10); - q4c(g10); - } - Uhb(a.f); - } - function hw(a, b) { - var c; - if (b === a) { - return true; - } - if (JD(b, 224)) { - c = BD(b, 224); - return pb(a.Zb(), c.Zb()); - } - return false; - } - function aub(a, b) { - var c; - if (b * 2 + 1 >= a.b.c.length) { - return; - } - aub(a, 2 * b + 1); - c = 2 * b + 2; - c < a.b.c.length && aub(a, c); - bub(a, b); - } - function Ss(a, b, c) { - var d, e; - this.g = a; - this.c = b; - this.a = this; - this.d = this; - e = Kp(c); - d = KC(BG, Gie, 330, e, 0, 1); - this.b = d; - } - function whb(a, b, c) { - var d; - for (d = c - 1; d >= 0 && a[d] === b[d]; d--) - ; - return d < 0 ? 0 : Gbb(xbb(a[d], Yje), xbb(b[d], Yje)) ? -1 : 1; - } - function UFc(a, b) { - var c, d; - for (d = Jsb(a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 214); - if (c.e.length > 0) { - b.td(c); - c.i && _Fc(c); - } - } - } - function nzd(a, b) { - var c, d; - d = BD(Ajd(a.a, 4), 126); - c = KC($3, hve, 415, b, 0, 1); - d != null && $fb(d, 0, c, 0, d.length); - return c; - } - function JEd(a, b) { - var c; - c = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, b); - a.e != null || (c.c = a); - return c; - } - function Dc(a, b) { - var c, d; - for (d = a.Zb().Cc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 14); - if (c.Hc(b)) { - return true; - } - } - return false; - } - function oNb(a, b, c, d, e) { - var f, g10; - for (g10 = c; g10 <= e; g10++) { - for (f = b; f <= d; f++) { - if (YMb(a, f, g10)) { - return true; - } - } - } - return false; - } - function Tt(a, b, c) { - var d, e, f, g10; - uCb(c); - g10 = false; - f = a.Zc(b); - for (e = c.Kc(); e.Ob(); ) { - d = e.Pb(); - f.Rb(d); - g10 = true; - } - return g10; - } - function Dv(a, b) { - var c; - if (a === b) { - return true; - } else if (JD(b, 83)) { - c = BD(b, 83); - return Ax(Wm(a), c.vc()); - } - return false; - } - function Nhb(a, b, c) { - var d, e; - for (e = c.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 42); - if (a.re(b, d.dd())) { - return true; - } - } - return false; - } - function Hic(a, b, c) { - if (!a.d[b.p][c.p]) { - Gic(a, b, c); - a.d[b.p][c.p] = true; - a.d[c.p][b.p] = true; - } - return a.a[b.p][c.p]; - } - function Itd(a, b) { - if (!a.ai() && b == null) { - throw vbb(new Wdb("The 'no null' constraint is violated")); - } - return b; - } - function $Jd(a, b) { - if (a.D == null && a.B != null) { - a.D = a.B; - a.B = null; - } - jKd(a, b == null ? null : (uCb(b), b)); - !!a.C && a.yk(null); - } - function XHc(a, b) { - var c; - if (!a || a == b || !wNb(b, (wtc(), Psc))) { - return false; - } - c = BD(vNb(b, (wtc(), Psc)), 10); - return c != a; - } - function b4d(a) { - switch (a.i) { - case 2: { - return true; - } - case 1: { - return false; - } - case -1: { - ++a.c; - } - default: { - return a.pl(); - } - } - } - function c4d(a) { - switch (a.i) { - case -2: { - return true; - } - case -1: { - return false; - } - case 1: { - --a.c; - } - default: { - return a.ql(); - } - } - } - function Xdb(a) { - Zy.call(this, "The given string does not match the expected format for individual spacings.", a); - } - function pgd() { - pgd = ccb; - mgd = new qgd("ELK", 0); - ngd = new qgd("JSON", 1); - lgd = new qgd("DOT", 2); - ogd = new qgd("SVG", 3); - } - function pWc() { - pWc = ccb; - mWc = new rWc(ane, 0); - nWc = new rWc("RADIAL_COMPACTION", 1); - oWc = new rWc("WEDGE_COMPACTION", 2); - } - function Fyb() { - Fyb = ccb; - Cyb = new Gyb("CONCURRENT", 0); - Dyb = new Gyb("IDENTITY_FINISH", 1); - Eyb = new Gyb("UNORDERED", 2); - } - function nPb() { - nPb = ccb; - kPb = (cPb(), bPb); - jPb = new Nsd(Tle, kPb); - iPb = new Lsd(Ule); - lPb = new Lsd(Vle); - mPb = new Lsd(Wle); - } - function Occ() { - Occ = ccb; - Mcc = new Zcc(); - Ncc = new _cc(); - Lcc = new bdc(); - Kcc = new fdc(); - Jcc = new jdc(); - Icc = (uCb(Jcc), new bpb()); - } - function tBc() { - tBc = ccb; - qBc = new uBc("CONSERVATIVE", 0); - rBc = new uBc("CONSERVATIVE_SOFT", 1); - sBc = new uBc("SLOPPY", 2); - } - function Zad() { - Zad = ccb; - Xad = new q0b(15); - Wad = new Osd((Y9c(), f9c), Xad); - Yad = C9c; - Sad = s8c; - Tad = Y8c; - Vad = _8c; - Uad = $8c; - } - function o7c(a, b, c) { - var d, e, f; - d = new Psb(); - for (f = Jsb(c, 0); f.b != f.d.c; ) { - e = BD(Xsb(f), 8); - Dsb(d, new g7c(e)); - } - Tt(a, b, d); - } - function r7c(a) { - var b, c, d; - b = 0; - d = KC(m1, nie, 8, a.b, 0, 1); - c = Jsb(a, 0); - while (c.b != c.d.c) { - d[b++] = BD(Xsb(c), 8); - } - return d; - } - function $Pd(a) { - var b; - b = (!a.a && (a.a = new cUd(g5, a, 9, 5)), a.a); - if (b.i != 0) { - return nQd(BD(qud(b, 0), 678)); - } - return null; - } - function Ly(a, b) { - var c; - c = wbb(a, b); - if (Gbb(Vbb(a, b), 0) | Ebb(Vbb(a, c), 0)) { - return c; - } - return wbb(rie, Vbb(Pbb(c, 63), 1)); - } - function Yyc(a, b) { - var c; - c = Ksd((dzc(), bzc)) != null && b.wg() != null ? Edb(ED(b.wg())) / Edb(ED(Ksd(bzc))) : 1; - Rhb(a.b, b, c); - } - function le(a, b) { - var c, d; - c = BD(a.d.Bc(b), 14); - if (!c) { - return null; - } - d = a.e.hc(); - d.Gc(c); - a.e.d -= c.gc(); - c.$b(); - return d; - } - function AHc(a, b) { - var c, d; - d = a.c[b]; - if (d == 0) { - return; - } - a.c[b] = 0; - a.d -= d; - c = b + 1; - while (c < a.a.length) { - a.a[c] -= d; - c += c & -c; - } - } - function rwb(a) { - var b; - b = a.a.c.length; - if (b > 0) { - return _vb(b - 1, a.a.c.length), Kkb(a.a, b - 1); - } else { - throw vbb(new Jpb()); - } - } - function C2c(a, b, c) { - if (b < 0) { - throw vbb(new qcb(ese + b)); - } - if (b < a.j.c.length) { - Nkb(a.j, b, c); - } else { - A2c(a, b); - Ekb(a.j, c); - } - } - function oCb(a, b, c) { - if (a > b) { - throw vbb(new Wdb(xke + a + yke + b)); - } - if (a < 0 || b > c) { - throw vbb(new scb(xke + a + zke + b + oke + c)); - } - } - function j5c(a) { - if (!a.a || (a.a.i & 8) == 0) { - throw vbb(new Zdb("Enumeration class expected for layout option " + a.f)); - } - } - function vud(a) { - var b; - ++a.j; - if (a.i == 0) { - a.g = null; - } else if (a.i < a.g.length) { - b = a.g; - a.g = a.ri(a.i); - $fb(b, 0, a.g, 0, a.i); - } - } - function hkb(a, b) { - var c, d; - c = a.a.length - 1; - a.c = a.c - 1 & c; - while (b != a.c) { - d = b + 1 & c; - NC(a.a, b, a.a[d]); - b = d; - } - NC(a.a, a.c, null); - } - function ikb(a, b) { - var c, d; - c = a.a.length - 1; - while (b != a.b) { - d = b - 1 & c; - NC(a.a, b, a.a[d]); - b = d; - } - NC(a.a, a.b, null); - a.b = a.b + 1 & c; - } - function Fkb(a, b, c) { - var d, e; - wCb(b, a.c.length); - d = c.Pc(); - e = d.length; - if (e == 0) { - return false; - } - bCb(a.c, b, d); - return true; - } - function VEd(a) { - var b, c; - if (a == null) - return null; - for (b = 0, c = a.length; b < c; b++) { - if (!gFd(a[b])) - return a[b]; - } - return null; - } - function grb(a, b, c) { - var d, e, f, g10; - for (e = c, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - if (a.b.re(b, d.cd())) { - return d; - } - } - return null; - } - function Hlb(a) { - var b, c, d, e, f; - f = 1; - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - f = 31 * f + (b != null ? tb(b) : 0); - f = f | 0; - } - return f; - } - function as(a) { - var b, c, d, e, f; - b = {}; - for (d = a, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - b[":" + (c.f != null ? c.f : "" + c.g)] = c; - } - return b; - } - function gr(a) { - var b; - Qb(a); - Mb(true, "numberToAdvance must be nonnegative"); - for (b = 0; b < 0 && Qr(a); b++) { - Rr(a); - } - return b; - } - function eDc(a) { - var b, c, d; - d = 0; - for (c = new Sr(ur(a.a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - b.c.i == b.d.i || ++d; - } - return d; - } - function HZb(a, b) { - var c, d, e; - c = a; - e = 0; - do { - if (c == b) { - return e; - } - d = c.e; - if (!d) { - throw vbb(new Vdb()); - } - c = Q_b(d); - ++e; - } while (true); - } - function w$c(a, b) { - var c, d, e; - e = b - a.f; - for (d = new olb(a.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 443); - _Zc(c, c.e, c.f + e); - } - a.f = b; - } - function aRc(a, b, c) { - if ($wnd.Math.abs(b - a) < Rqe || $wnd.Math.abs(c - a) < Rqe) { - return true; - } - return b - a > Rqe ? a - c > Rqe : c - a > Rqe; - } - function pHb(a, b) { - if (!a) { - return 0; - } - if (b && !a.j) { - return 0; - } - if (JD(a, 124)) { - if (BD(a, 124).a.b == 0) { - return 0; - } - } - return a.Re(); - } - function qHb(a, b) { - if (!a) { - return 0; - } - if (b && !a.k) { - return 0; - } - if (JD(a, 124)) { - if (BD(a, 124).a.a == 0) { - return 0; - } - } - return a.Se(); - } - function fhb(a) { - Hgb(); - if (a < 0) { - if (a != -1) { - return new Tgb(-1, -a); - } - return Bgb; - } else - return a <= 10 ? Dgb[QD(a)] : new Tgb(1, a); - } - function xC(a) { - rC(); - throw vbb(new MB("Unexpected typeof result '" + a + "'; please report this bug to the GWT team")); - } - function lz(a) { - jz(); - Py(this); - Ry(this); - this.e = a; - Sy(this, a); - this.g = a == null ? Xhe : fcb(a); - this.a = ""; - this.b = a; - this.a = ""; - } - function F$c() { - this.a = new G$c(); - this.f = new I$c(this); - this.b = new K$c(this); - this.i = new M$c(this); - this.e = new O$c(this); - } - function ss() { - rs.call(this, new _rb(Cv(16))); - Xj(2, mie); - this.b = 2; - this.a = new Ms(null, null, 0, null); - As(this.a, this.a); - } - function xzc() { - xzc = ccb; - uzc = new zzc("DUMMY_NODE_OVER", 0); - vzc = new zzc("DUMMY_NODE_UNDER", 1); - wzc = new zzc("EQUAL", 2); - } - function LUb() { - LUb = ccb; - JUb = Fx(OC(GC(t1, 1), Kie, 103, 0, [(ead(), aad), bad])); - KUb = Fx(OC(GC(t1, 1), Kie, 103, 0, [dad, _9c])); - } - function VQc(a) { - return (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b; - } - function DOb(a) { - var b, c, d, e; - d = a.b.a; - for (c = d.a.ec().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 561); - e = new MPb(b, a.e, a.f); - Ekb(a.g, e); - } - } - function yId(a, b) { - var c, d, e; - d = a.nk(b, null); - e = null; - if (b) { - e = (LFd(), c = new UQd(), c); - NQd(e, a.r); - } - d = xId(a, e, d); - !!d && d.Fi(); - } - function VFc(a, b) { - var c, d; - d = Cub(a.d, 1) != 0; - c = true; - while (c) { - c = false; - c = b.c.Tf(b.e, d); - c = c | dGc(a, b, d, false); - d = !d; - } - $Fc(a); - } - function wZc(a, b) { - var c, d, e; - d = false; - c = b.q.d; - if (b.d < a.b) { - e = ZZc(b.q, a.b); - if (b.q.d > e) { - $Zc(b.q, e); - d = c != b.q.d; - } - } - return d; - } - function PVc(a, b) { - var c, d, e, f, g10, h, i10, j; - i10 = b.i; - j = b.j; - d = a.f; - e = d.i; - f = d.j; - g10 = i10 - e; - h = j - f; - c = $wnd.Math.sqrt(g10 * g10 + h * h); - return c; - } - function Rnd(a, b) { - var c, d; - d = jid(a); - if (!d) { - !And && (And = new lUd()); - c = (IEd(), PEd(b)); - d = new s0d(c); - wtd(d.Vk(), a); - } - return d; - } - function Sc(a, b) { - var c, d; - c = BD(a.c.Bc(b), 14); - if (!c) { - return a.jc(); - } - d = a.hc(); - d.Gc(c); - a.d -= c.gc(); - c.$b(); - return a.mc(d); - } - function j7c(a, b) { - var c; - for (c = 0; c < b.length; c++) { - if (a == (BCb(c, b.length), b.charCodeAt(c))) { - return true; - } - } - return false; - } - function E_b(a, b) { - var c; - for (c = 0; c < b.length; c++) { - if (a == (BCb(c, b.length), b.charCodeAt(c))) { - return true; - } - } - return false; - } - function hFd(a) { - var b, c; - if (a == null) - return false; - for (b = 0, c = a.length; b < c; b++) { - if (!gFd(a[b])) - return false; - } - return true; - } - function Ngb(a) { - var b; - if (a.c != 0) { - return a.c; - } - for (b = 0; b < a.a.length; b++) { - a.c = a.c * 33 + (a.a[b] & -1); - } - a.c = a.c * a.e; - return a.c; - } - function vkb(a) { - var b; - sCb(a.a != a.b); - b = a.d.a[a.a]; - mkb(a.b == a.d.c && b != null); - a.c = a.a; - a.a = a.a + 1 & a.d.a.length - 1; - return b; - } - function phe(a) { - var b; - if (!(a.c.c < 0 ? a.a >= a.c.b : a.a <= a.c.b)) { - throw vbb(new utb()); - } - b = a.a; - a.a += a.c.c; - ++a.b; - return meb(b); - } - function BWb(a) { - var b; - b = new VWb(a); - rXb(a.a, zWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [b]))); - !!b.d && Ekb(b.f, b.d); - return b.f; - } - function Z1b(a) { - var b; - b = new q_b(a.a); - tNb(b, a); - yNb(b, (wtc(), $sc), a); - b.o.a = a.g; - b.o.b = a.f; - b.n.a = a.i; - b.n.b = a.j; - return b; - } - function A9b(a, b, c, d) { - var e, f; - for (f = a.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 70); - e.n.a = b.a + (d.a - e.o.a) / 2; - e.n.b = b.b; - b.b += e.o.b + c; - } - } - function UDb(a, b, c) { - var d, e; - for (e = b.a.a.ec().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 57); - if (VDb(a, d, c)) { - return true; - } - } - return false; - } - function JDc(a) { - var b, c; - for (c = new olb(a.r); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - if (a.n[b.p] <= 0) { - return b; - } - } - return null; - } - function cVc(a) { - var b, c, d, e; - e = new Tqb(); - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 33); - b = fVc(c); - ye(e, b); - } - return e; - } - function zFc(a) { - var b; - b = k3c(xFc); - BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Krc)) && e3c(b, (qUb(), nUb), (S8b(), H8b)); - return b; - } - function qKb(a, b, c) { - var d; - d = new AJb(a, b); - Rc(a.r, b.Hf(), d); - if (c && !tcd(a.u)) { - d.c = new aIb(a.d); - Hkb(b.wf(), new tKb(d)); - } - } - function ybb(a, b) { - var c; - if (Fbb(a) && Fbb(b)) { - c = a - b; - if (!isNaN(c)) { - return c; - } - } - return eD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b); - } - function bFd(a, b) { - return b < a.length && (BCb(b, a.length), a.charCodeAt(b) != 63) && (BCb(b, a.length), a.charCodeAt(b) != 35); - } - function Kic(a, b, c, d) { - var e, f; - a.a = b; - f = d ? 0 : 1; - a.f = (e = new Iic(a.c, a.a, c, f), new jjc(c, a.a, e, a.e, a.b, a.c == (rGc(), pGc))); - } - function Tmd(a, b, c) { - var d, e; - e = a.a; - a.a = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 1, e, b); - !c ? c = d : c.Ei(d); - } - return c; - } - function GQd(a, b, c) { - var d, e; - e = a.b; - a.b = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 3, e, b); - !c ? c = d : c.Ei(d); - } - return c; - } - function IQd(a, b, c) { - var d, e; - e = a.f; - a.f = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 0, e, b); - !c ? c = d : c.Ei(d); - } - return c; - } - function xid(a, b) { - var c, d, e, f; - f = (e = a ? jid(a) : null, q6d((d = b, e ? e.Xk() : null, d))); - if (f == b) { - c = jid(a); - !!c && c.Xk(); - } - return f; - } - function x6c(a, b) { - var c, d, e; - e = 1; - c = a; - d = b >= 0 ? b : -b; - while (d > 0) { - if (d % 2 == 0) { - c *= c; - d = d / 2 | 0; - } else { - e *= c; - d -= 1; - } - } - return b < 0 ? 1 / e : e; - } - function y6c(a, b) { - var c, d, e; - e = 1; - c = a; - d = b >= 0 ? b : -b; - while (d > 0) { - if (d % 2 == 0) { - c *= c; - d = d / 2 | 0; - } else { - e *= c; - d -= 1; - } - } - return b < 0 ? 1 / e : e; - } - function sAd(a) { - var b, c, d, e; - if (a != null) { - for (c = 0; c < a.length; ++c) { - b = a[c]; - if (b) { - BD(b.g, 367); - e = b.i; - for (d = 0; d < e; ++d) - ; - } - } - } - } - function YZc(a) { - var b, c, d; - d = 0; - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 187); - d = $wnd.Math.max(d, b.g); - } - return d; - } - function eGc(a) { - var b, c, d; - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 214); - b = c.c.Rf() ? c.f : c.a; - !!b && mHc(b, c.j); - } - } - function hbd() { - hbd = ccb; - fbd = new ibd("INHERIT", 0); - ebd = new ibd("INCLUDE_CHILDREN", 1); - gbd = new ibd("SEPARATE_CHILDREN", 2); - } - function Jkd(a, b) { - switch (b) { - case 1: - !a.n && (a.n = new cUd(D2, a, 1, 7)); - Uxd(a.n); - return; - case 2: - Lkd(a, null); - return; - } - fkd(a, b); - } - function Dm(a) { - var b; - switch (a.gc()) { - case 0: - return hm; - case 1: - return new my(Qb(a.Xb(0))); - default: - b = a; - return new ux(b); - } - } - function Vn(a) { - Ql(); - switch (a.gc()) { - case 0: - return yx(), xx; - case 1: - return new oy(a.Kc().Pb()); - default: - return new zx(a); - } - } - function Up(a) { - Ql(); - switch (a.c) { - case 0: - return yx(), xx; - case 1: - return new oy(qr(new Gqb(a))); - default: - return new Tp(a); - } - } - function Hv(b, c) { - Qb(b); - try { - return b.xc(c); - } catch (a) { - a = ubb(a); - if (JD(a, 205) || JD(a, 173)) { - return null; - } else - throw vbb(a); - } - } - function Iv(b, c) { - Qb(b); - try { - return b.Bc(c); - } catch (a) { - a = ubb(a); - if (JD(a, 205) || JD(a, 173)) { - return null; - } else - throw vbb(a); - } - } - function Ck(b, c) { - Qb(b); - try { - return b.Hc(c); - } catch (a) { - a = ubb(a); - if (JD(a, 205) || JD(a, 173)) { - return false; - } else - throw vbb(a); - } - } - function Dk(b, c) { - Qb(b); - try { - return b.Mc(c); - } catch (a) { - a = ubb(a); - if (JD(a, 205) || JD(a, 173)) { - return false; - } else - throw vbb(a); - } - } - function Gv(b, c) { - Qb(b); - try { - return b._b(c); - } catch (a) { - a = ubb(a); - if (JD(a, 205) || JD(a, 173)) { - return false; - } else - throw vbb(a); - } - } - function KXb(a, b) { - var c; - if (a.a.c.length > 0) { - c = BD(Ikb(a.a, a.a.c.length - 1), 570); - if (NYb(c, b)) { - return; - } - } - Ekb(a.a, new PYb(b)); - } - function $gc(a) { - Hgc(); - var b, c; - b = a.d.c - a.e.c; - c = BD(a.g, 145); - Hkb(c.b, new shc(b)); - Hkb(c.c, new uhc(b)); - reb(c.i, new whc(b)); - } - function gic(a) { - var b; - b = new Ufb(); - b.a += "VerticalSegment "; - Pfb(b, a.e); - b.a += " "; - Qfb(b, Eb(new Gb(), new olb(a.k))); - return b.a; - } - function u4c(a) { - var b; - b = BD(Wrb(a.c.c, ""), 229); - if (!b) { - b = new W3c(d4c(c4c(new e4c(), ""), "Other")); - Xrb(a.c.c, "", b); - } - return b; - } - function qnd(a) { - var b; - if ((a.Db & 64) != 0) - return Eid(a); - b = new Jfb(Eid(a)); - b.a += " (name: "; - Efb(b, a.zb); - b.a += ")"; - return b.a; - } - function Jnd(a, b, c) { - var d, e; - e = a.sb; - a.sb = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 4, e, b); - !c ? c = d : c.Ei(d); - } - return c; - } - function _ic(a, b) { - var c, d, e; - c = 0; - for (e = V_b(a, b).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 11); - c += vNb(d, (wtc(), gtc)) != null ? 1 : 0; - } - return c; - } - function vPc(a, b, c) { - var d, e, f; - d = 0; - for (f = Jsb(a, 0); f.b != f.d.c; ) { - e = Edb(ED(Xsb(f))); - if (e > c) { - break; - } else - e >= b && ++d; - } - return d; - } - function RTd(a, b, c) { - var d, e; - d = new pSd(a.e, 3, 13, null, (e = b.c, e ? e : (jGd(), YFd)), HLd(a, b), false); - !c ? c = d : c.Ei(d); - return c; - } - function STd(a, b, c) { - var d, e; - d = new pSd(a.e, 4, 13, (e = b.c, e ? e : (jGd(), YFd)), null, HLd(a, b), false); - !c ? c = d : c.Ei(d); - return c; - } - function zId(a, b, c) { - var d, e; - e = a.r; - a.r = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 8, e, a.r); - !c ? c = d : c.Ei(d); - } - return c; - } - function o1d(a, b) { - var c, d; - c = BD(b, 676); - d = c.vk(); - !d && c.wk(d = JD(b, 88) ? new C1d(a, BD(b, 26)) : new O1d(a, BD(b, 148))); - return d; - } - function kud(a, b, c) { - var d; - a.qi(a.i + 1); - d = a.oi(b, c); - b != a.i && $fb(a.g, b, a.g, b + 1, a.i - b); - NC(a.g, b, d); - ++a.i; - a.bi(b, c); - a.ci(); - } - function vwb(a, b) { - var c; - if (b.a) { - c = b.a.a.length; - !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b); - Ofb(a.a, b.a, b.d.length, c); - } - return a; - } - function __d(a, b) { - var c, d, e, f; - b.vi(a.a); - f = BD(Ajd(a.a, 8), 1936); - if (f != null) { - for (c = f, d = 0, e = c.length; d < e; ++d) { - null.jm(); - } - } - } - function TAb(a, b) { - var c; - c = new NBb(); - if (!a.a.sd(c)) { - Tzb(a); - return Atb(), Atb(), ztb; - } - return Atb(), new Ftb(uCb(SAb(a, c.a, b))); - } - function CHc(a, b) { - switch (b.g) { - case 2: - case 1: - return V_b(a, b); - case 3: - case 4: - return Su(V_b(a, b)); - } - return mmb(), mmb(), jmb; - } - function pb(a, b) { - return ND(a) ? dfb(a, b) : LD(a) ? Fdb(a, b) : KD(a) ? (uCb(a), PD(a) === PD(b)) : ID(a) ? a.Fb(b) : MC(a) ? mb(a, b) : qz(a, b); - } - function r6d(a) { - return !a ? null : (a.i & 1) != 0 ? a == sbb ? wI : a == WD ? JI : a == VD ? FI : a == UD ? BI : a == XD ? MI : a == rbb ? UI : a == SD ? xI : yI : a; - } - function Fhb(a, b, c, d, e) { - if (b == 0 || d == 0) { - return; - } - b == 1 ? e[d] = Hhb(e, c, d, a[0]) : d == 1 ? e[b] = Hhb(e, a, b, c[0]) : Ghb(a, c, e, b, d); - } - function c6b(a, b) { - var c; - if (a.c.length == 0) { - return; - } - c = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193); - Nlb(c, new o6b()); - _5b(c, b); - } - function i6b(a, b) { - var c; - if (a.c.length == 0) { - return; - } - c = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193); - Nlb(c, new t6b()); - _5b(c, b); - } - function Ekd(a, b, c, d) { - switch (b) { - case 1: - return !a.n && (a.n = new cUd(D2, a, 1, 7)), a.n; - case 2: - return a.k; - } - return bkd(a, b, c, d); - } - function ead() { - ead = ccb; - cad = new iad(ole, 0); - bad = new iad(kle, 1); - aad = new iad(jle, 2); - _9c = new iad(vle, 3); - dad = new iad("UP", 4); - } - function RXb() { - RXb = ccb; - QXb = new SXb(ane, 0); - PXb = new SXb("INSIDE_PORT_SIDE_GROUPS", 1); - OXb = new SXb("FORCE_MODEL_ORDER", 2); - } - function xCb(a, b, c) { - if (a < 0 || b > c) { - throw vbb(new qcb(xke + a + zke + b + ", size: " + c)); - } - if (a > b) { - throw vbb(new Wdb(xke + a + yke + b)); - } - } - function eid(a, b, c) { - if (b < 0) { - vid(a, c); - } else { - if (!c.Ij()) { - throw vbb(new Wdb(ite + c.ne() + jte)); - } - BD(c, 66).Nj().Vj(a, a.yh(), b); - } - } - function Jlb(a, b, c, d, e, f, g10, h) { - var i10; - i10 = c; - while (f < g10) { - i10 >= d || b < c && h.ue(a[b], a[i10]) <= 0 ? NC(e, f++, a[b++]) : NC(e, f++, a[i10++]); - } - } - function yZb(a, b, c, d, e, f) { - this.e = new Rkb(); - this.f = (KAc(), JAc); - Ekb(this.e, a); - this.d = b; - this.a = c; - this.b = d; - this.f = e; - this.c = f; - } - function VOd(a, b) { - var c, d; - for (d = new Fyd(a); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 26); - if (PD(b) === PD(c)) { - return true; - } - } - return false; - } - function uJb(a) { - qJb(); - var b, c, d, e; - for (c = wJb(), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - if (Jkb(b.a, a, 0) != -1) { - return b; - } - } - return pJb; - } - function jFd(a) { - if (a >= 65 && a <= 70) { - return a - 65 + 10; - } - if (a >= 97 && a <= 102) { - return a - 97 + 10; - } - if (a >= 48 && a <= 57) { - return a - 48; - } - return 0; - } - function QHd(a) { - var b; - if ((a.Db & 64) != 0) - return Eid(a); - b = new Jfb(Eid(a)); - b.a += " (source: "; - Efb(b, a.d); - b.a += ")"; - return b.a; - } - function OQd(a, b, c) { - var d, e; - e = a.a; - a.a = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 5, e, a.a); - !c ? c = d : Qwd(c, d); - } - return c; - } - function BId(a, b) { - var c; - c = (a.Bb & 256) != 0; - b ? a.Bb |= 256 : a.Bb &= -257; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 2, c, b)); - } - function eLd(a, b) { - var c; - c = (a.Bb & 256) != 0; - b ? a.Bb |= 256 : a.Bb &= -257; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c, b)); - } - function LPd(a, b) { - var c; - c = (a.Bb & 256) != 0; - b ? a.Bb |= 256 : a.Bb &= -257; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c, b)); - } - function CId(a, b) { - var c; - c = (a.Bb & 512) != 0; - b ? a.Bb |= 512 : a.Bb &= -513; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 3, c, b)); - } - function fLd(a, b) { - var c; - c = (a.Bb & 512) != 0; - b ? a.Bb |= 512 : a.Bb &= -513; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 9, c, b)); - } - function N7d(a, b) { - var c; - if (a.b == -1 && !!a.a) { - c = a.a.Gj(); - a.b = !c ? bLd(a.c.Tg(), a.a) : a.c.Xg(a.a.aj(), c); - } - return a.c.Og(a.b, b); - } - function meb(a) { - var b, c; - if (a > -129 && a < 128) { - b = a + 128; - c = (oeb(), neb)[b]; - !c && (c = neb[b] = new _db(a)); - return c; - } - return new _db(a); - } - function Web(a) { - var b, c; - if (a > -129 && a < 128) { - b = a + 128; - c = (Yeb(), Xeb)[b]; - !c && (c = Xeb[b] = new Qeb(a)); - return c; - } - return new Qeb(a); - } - function L5b(a) { - var b, c; - b = a.k; - if (b == (j0b(), e0b)) { - c = BD(vNb(a, (wtc(), Hsc)), 61); - return c == (Ucd(), Acd) || c == Rcd; - } - return false; - } - function i1d(a, b, c) { - var d, e, f; - f = (e = nUd(a.b, b), e); - if (f) { - d = BD(V1d(p1d(a, f), ""), 26); - if (d) { - return r1d(a, d, b, c); - } - } - return null; - } - function l1d(a, b, c) { - var d, e, f; - f = (e = nUd(a.b, b), e); - if (f) { - d = BD(V1d(p1d(a, f), ""), 26); - if (d) { - return s1d(a, d, b, c); - } - } - return null; - } - function cTd(a, b) { - var c, d; - for (d = new Fyd(a); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 138); - if (PD(b) === PD(c)) { - return true; - } - } - return false; - } - function vtd(a, b, c) { - var d; - d = a.gc(); - if (b > d) - throw vbb(new Cyd(b, d)); - if (a.hi() && a.Hc(c)) { - throw vbb(new Wdb(kue)); - } - a.Xh(b, c); - } - function iqd(a, b) { - var c; - c = oo(a.i, b); - if (c == null) { - throw vbb(new cqd("Node did not exist in input.")); - } - Yqd(b, c); - return null; - } - function $hd(a, b) { - var c; - c = YKd(a, b); - if (JD(c, 322)) { - return BD(c, 34); - } - throw vbb(new Wdb(ite + b + "' is not a valid attribute")); - } - function V2d(a, b, c) { - var d, e; - e = JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a); - for (d = 0; d < c; ++d) { - d4d(e); - } - return e; - } - function ede(a) { - var b, c, d; - d = 0; - c = a.length; - for (b = 0; b < c; b++) { - a[b] == 32 || a[b] == 13 || a[b] == 10 || a[b] == 9 || (a[d++] = a[b]); - } - return d; - } - function lYb(a) { - var b, c, d; - b = new Rkb(); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 594); - Gkb(b, BD(c.jf(), 14)); - } - return b; - } - function SSc(a) { - var b, c, d; - b = BD(vNb(a, (mTc(), gTc)), 15); - for (d = b.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 188); - Dsb(c.b.d, c); - Dsb(c.c.b, c); - } - } - function b5b(a) { - switch (BD(vNb(a, (wtc(), Osc)), 303).g) { - case 1: - yNb(a, Osc, (esc(), bsc)); - break; - case 2: - yNb(a, Osc, (esc(), dsc)); - } - } - function _Fc(a) { - var b; - if (a.g) { - b = a.c.Rf() ? a.f : a.a; - bGc(b.a, a.o, true); - bGc(b.a, a.o, false); - yNb(a.o, (Nyc(), Vxc), (dcd(), Zbd)); - } - } - function loc(a) { - var b; - if (!a.a) { - throw vbb(new Zdb("Cannot offset an unassigned cut.")); - } - b = a.c - a.b; - a.b += b; - noc(a, b); - ooc(a, b); - } - function ckb(a) { - var b; - b = a.a[a.c - 1 & a.a.length - 1]; - if (b == null) { - return null; - } - a.c = a.c - 1 & a.a.length - 1; - NC(a.a, a.c, null); - return b; - } - function zGb(a) { - var b, c; - for (c = a.p.a.ec().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 213); - if (b.f && a.b[b.c] < -1e-10) { - return b; - } - } - return null; - } - function bLb(a, b) { - switch (a.b.g) { - case 0: - case 1: - return b; - case 2: - case 3: - return new J6c(b.d, 0, b.a, b.b); - default: - return null; - } - } - function had(a) { - switch (a.g) { - case 2: - return bad; - case 1: - return aad; - case 4: - return _9c; - case 3: - return dad; - default: - return cad; - } - } - function Vcd(a) { - switch (a.g) { - case 1: - return Tcd; - case 2: - return Acd; - case 3: - return zcd; - case 4: - return Rcd; - default: - return Scd; - } - } - function Wcd(a) { - switch (a.g) { - case 1: - return Rcd; - case 2: - return Tcd; - case 3: - return Acd; - case 4: - return zcd; - default: - return Scd; - } - } - function Xcd(a) { - switch (a.g) { - case 1: - return zcd; - case 2: - return Rcd; - case 3: - return Tcd; - case 4: - return Acd; - default: - return Scd; - } - } - function DPc(a) { - switch (a) { - case 0: - return new OPc(); - case 1: - return new EPc(); - case 2: - return new JPc(); - default: - throw vbb(new Vdb()); - } - } - function Kdb(a, b) { - if (a < b) { - return -1; - } - if (a > b) { - return 1; - } - if (a == b) { - return a == 0 ? Kdb(1 / a, 1 / b) : 0; - } - return isNaN(a) ? isNaN(b) ? 0 : 1 : -1; - } - function f4b(a, b) { - Odd(b, "Sort end labels", 1); - MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new q4b()), new s4b()), new u4b()); - Qdd(b); - } - function Wxd(a, b, c) { - var d, e; - if (a.ej()) { - e = a.fj(); - d = sud(a, b, c); - a.$i(a.Zi(7, meb(c), d, b, e)); - return d; - } else { - return sud(a, b, c); - } - } - function vAd(a, b) { - var c, d, e; - if (a.d == null) { - ++a.e; - --a.f; - } else { - e = b.cd(); - c = b.Sh(); - d = (c & Ohe) % a.d.length; - KAd(a, d, xAd(a, d, c, e)); - } - } - function ZId(a, b) { - var c; - c = (a.Bb & zte) != 0; - b ? a.Bb |= zte : a.Bb &= -1025; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 10, c, b)); - } - function dJd(a, b) { - var c; - c = (a.Bb & Rje) != 0; - b ? a.Bb |= Rje : a.Bb &= -4097; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 12, c, b)); - } - function eJd(a, b) { - var c; - c = (a.Bb & Cve) != 0; - b ? a.Bb |= Cve : a.Bb &= -8193; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 15, c, b)); - } - function fJd(a, b) { - var c; - c = (a.Bb & Dve) != 0; - b ? a.Bb |= Dve : a.Bb &= -2049; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 11, c, b)); - } - function jOb(a, b) { - var c; - c = Kdb(a.b.c, b.b.c); - if (c != 0) { - return c; - } - c = Kdb(a.a.a, b.a.a); - if (c != 0) { - return c; - } - return Kdb(a.a.b, b.a.b); - } - function jqd(a, b) { - var c; - c = Ohb(a.k, b); - if (c == null) { - throw vbb(new cqd("Port did not exist in input.")); - } - Yqd(b, c); - return null; - } - function k6d(a) { - var b, c; - for (c = l6d(bKd(a)).Kc(); c.Ob(); ) { - b = GD(c.Pb()); - if (Dmd(a, b)) { - return uFd((tFd(), sFd), b); - } - } - return null; - } - function n3d(a, b) { - var c, d, e, f, g10; - g10 = S6d(a.e.Tg(), b); - f = 0; - c = BD(a.g, 119); - for (e = 0; e < a.i; ++e) { - d = c[e]; - g10.rl(d.ak()) && ++f; - } - return f; - } - function Vsd(a, b, c) { - var d, e; - d = BD(b.We(a.a), 35); - e = BD(c.We(a.a), 35); - return d != null && e != null ? Fcb(d, e) : d != null ? -1 : e != null ? 1 : 0; - } - function ved(a, b, c) { - var d, e; - if (a.c) { - Efd(a.c, b, c); - } else { - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 157); - ved(d, b, c); - } - } - } - function RUb(a, b) { - var c, d; - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 46); - Lkb(a.b.b, c.b); - fVb(BD(c.a, 189), BD(c.b, 81)); - } - } - function tr(a) { - var b, c; - c = Kfb(new Ufb(), 91); - b = true; - while (a.Ob()) { - b || (c.a += She, c); - b = false; - Pfb(c, a.Pb()); - } - return (c.a += "]", c).a; - } - function aJd(a, b) { - var c; - c = (a.Bb & oie) != 0; - b ? a.Bb |= oie : a.Bb &= -16385; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 16, c, b)); - } - function MJd(a, b) { - var c; - c = (a.Bb & ote) != 0; - b ? a.Bb |= ote : a.Bb &= -32769; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c, b)); - } - function CUd(a, b) { - var c; - c = (a.Bb & ote) != 0; - b ? a.Bb |= ote : a.Bb &= -32769; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c, b)); - } - function EUd(a, b) { - var c; - c = (a.Bb & Tje) != 0; - b ? a.Bb |= Tje : a.Bb &= -65537; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 20, c, b)); - } - function Tee(a) { - var b; - b = KC(TD, $ie, 25, 2, 15, 1); - a -= Tje; - b[0] = (a >> 10) + Uje & aje; - b[1] = (a & 1023) + 56320 & aje; - return zfb(b, 0, b.length); - } - function a_b(a) { - var b, c; - c = BD(vNb(a, (Nyc(), Lwc)), 103); - if (c == (ead(), cad)) { - b = Edb(ED(vNb(a, owc))); - return b >= 1 ? bad : _9c; - } - return c; - } - function rec(a) { - switch (BD(vNb(a, (Nyc(), Swc)), 218).g) { - case 1: - return new Fmc(); - case 3: - return new wnc(); - default: - return new zmc(); - } - } - function Uzb(a) { - if (a.c) { - Uzb(a.c); - } else if (a.d) { - throw vbb(new Zdb("Stream already terminated, can't be modified or used")); - } - } - function Mkd(a) { - var b; - if ((a.Db & 64) != 0) - return Eid(a); - b = new Jfb(Eid(a)); - b.a += " (identifier: "; - Efb(b, a.k); - b.a += ")"; - return b.a; - } - function ctd(a, b, c) { - var d, e; - d = (Fhd(), e = new xkd(), e); - vkd(d, b); - wkd(d, c); - !!a && wtd((!a.a && (a.a = new xMd(y2, a, 5)), a.a), d); - return d; - } - function ttb(a, b, c, d) { - var e, f; - uCb(d); - uCb(c); - e = a.xc(b); - f = e == null ? c : Myb(BD(e, 15), BD(c, 14)); - f == null ? a.Bc(b) : a.zc(b, f); - return f; - } - function pqb(a) { - var b, c, d, e; - c = (b = BD(gdb((d = a.gm, e = d.f, e == CI ? d : e)), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - rqb(c, a); - return c; - } - function hDc(a, b, c) { - var d, e; - for (e = a.a.ec().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 10); - if (Be(c, BD(Ikb(b, d.p), 14))) { - return d; - } - } - return null; - } - function Db(b, c, d) { - var e; - try { - Cb(b, c, d); - } catch (a) { - a = ubb(a); - if (JD(a, 597)) { - e = a; - throw vbb(new ycb(e)); - } else - throw vbb(a); - } - return c; - } - function Qbb(a, b) { - var c; - if (Fbb(a) && Fbb(b)) { - c = a - b; - if (Kje < c && c < Ije) { - return c; - } - } - return zbb(nD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b)); - } - function wbb(a, b) { - var c; - if (Fbb(a) && Fbb(b)) { - c = a + b; - if (Kje < c && c < Ije) { - return c; - } - } - return zbb(cD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b)); - } - function Ibb(a, b) { - var c; - if (Fbb(a) && Fbb(b)) { - c = a * b; - if (Kje < c && c < Ije) { - return c; - } - } - return zbb(gD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b)); - } - function V_b(a, b) { - var c; - a.i || N_b(a); - c = BD(Mpb(a.g, b), 46); - return !c ? (mmb(), mmb(), jmb) : new Jib(a.j, BD(c.a, 19).a, BD(c.b, 19).a); - } - function Drb(a, b, c) { - var d; - d = a.a.get(b); - a.a.set(b, c === void 0 ? null : c); - if (d === void 0) { - ++a.c; - zpb(a.b); - } else { - ++a.d; - } - return d; - } - function kNb(a, b, c) { - a.n = IC(XD, [nie, Sje], [364, 25], 14, [c, QD($wnd.Math.ceil(b / 32))], 2); - a.o = b; - a.p = c; - a.j = b - 1 >> 1; - a.k = c - 1 >> 1; - } - function Gub() { - zub(); - var a, b, c; - c = yub++ + Date.now(); - a = QD($wnd.Math.floor(c * lke)) & nke; - b = QD(c - a * mke); - this.a = a ^ 1502; - this.b = b ^ kke; - } - function O_b(a) { - var b, c, d; - b = new Rkb(); - for (d = new olb(a.j); d.a < d.c.c.length; ) { - c = BD(mlb(d), 11); - Ekb(b, c.b); - } - return Qb(b), new sl(b); - } - function R_b(a) { - var b, c, d; - b = new Rkb(); - for (d = new olb(a.j); d.a < d.c.c.length; ) { - c = BD(mlb(d), 11); - Ekb(b, c.e); - } - return Qb(b), new sl(b); - } - function U_b(a) { - var b, c, d; - b = new Rkb(); - for (d = new olb(a.j); d.a < d.c.c.length; ) { - c = BD(mlb(d), 11); - Ekb(b, c.g); - } - return Qb(b), new sl(b); - } - function n6d(a) { - var b, c; - for (c = o6d(bKd(WId(a))).Kc(); c.Ob(); ) { - b = GD(c.Pb()); - if (Dmd(a, b)) - return FFd((EFd(), DFd), b); - } - return null; - } - function wm(a) { - var b, c, d; - for (c = 0, d = a.length; c < d; c++) { - if (a[c] == null) { - throw vbb(new Heb("at index " + c)); - } - } - b = a; - return new amb(b); - } - function wid(a, b) { - var c; - c = YKd(a.Tg(), b); - if (JD(c, 99)) { - return BD(c, 18); - } - throw vbb(new Wdb(ite + b + "' is not a valid reference")); - } - function Tdb(a) { - var b; - b = Hcb(a); - if (b > 34028234663852886e22) { - return Pje; - } else if (b < -34028234663852886e22) { - return Qje; - } - return b; - } - function aeb(a) { - a -= a >> 1 & 1431655765; - a = (a >> 2 & 858993459) + (a & 858993459); - a = (a >> 4) + a & 252645135; - a += a >> 8; - a += a >> 16; - return a & 63; - } - function Ev(a) { - var b, c, d, e; - b = new cq(a.Hd().gc()); - e = 0; - for (d = vr(a.Hd().Kc()); d.Ob(); ) { - c = d.Pb(); - bq(b, c, meb(e++)); - } - return fn(b.a); - } - function Uyb(a, b) { - var c, d, e; - e = new Lqb(); - for (d = b.vc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 42); - Rhb(e, c.cd(), Yyb(a, BD(c.dd(), 15))); - } - return e; - } - function EZc(a, b) { - a.n.c.length == 0 && Ekb(a.n, new VZc(a.s, a.t, a.i)); - Ekb(a.b, b); - QZc(BD(Ikb(a.n, a.n.c.length - 1), 211), b); - GZc(a, b); - } - function LFb(a) { - if (a.c != a.b.b || a.i != a.g.b) { - a.a.c = KC(SI, Uhe, 1, 0, 5, 1); - Gkb(a.a, a.b); - Gkb(a.a, a.g); - a.c = a.b.b; - a.i = a.g.b; - } - return a.a; - } - function Ycc(a, b) { - var c, d, e; - e = 0; - for (d = BD(b.Kb(a), 20).Kc(); d.Ob(); ) { - c = BD(d.Pb(), 17); - Ccb(DD(vNb(c, (wtc(), ltc)))) || ++e; - } - return e; - } - function efc(a, b) { - var c, d, e; - d = tgc(b); - e = Edb(ED(pBc(d, (Nyc(), lyc)))); - c = $wnd.Math.max(0, e / 2 - 0.5); - cfc(b, c, 1); - Ekb(a, new Dfc(b, c)); - } - function Ctc() { - Ctc = ccb; - Btc = new Dtc(ane, 0); - xtc = new Dtc("FIRST", 1); - ytc = new Dtc(Gne, 2); - ztc = new Dtc("LAST", 3); - Atc = new Dtc(Hne, 4); - } - function Aad() { - Aad = ccb; - zad = new Bad(ole, 0); - xad = new Bad("POLYLINE", 1); - wad = new Bad("ORTHOGONAL", 2); - yad = new Bad("SPLINES", 3); - } - function zYc() { - zYc = ccb; - xYc = new AYc("ASPECT_RATIO_DRIVEN", 0); - yYc = new AYc("MAX_SCALE_DRIVEN", 1); - wYc = new AYc("AREA_DRIVEN", 2); - } - function Y$c() { - Y$c = ccb; - V$c = new Z$c("P1_STRUCTURE", 0); - W$c = new Z$c("P2_PROCESSING_ORDER", 1); - X$c = new Z$c("P3_EXECUTION", 2); - } - function tVc() { - tVc = ccb; - sVc = new uVc("OVERLAP_REMOVAL", 0); - qVc = new uVc("COMPACTION", 1); - rVc = new uVc("GRAPH_SIZE_CALCULATION", 2); - } - function Jy(a, b) { - Iy(); - return My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b)); - } - function yOc(a, b) { - var c, d; - c = Jsb(a, 0); - while (c.b != c.d.c) { - d = Gdb(ED(Xsb(c))); - if (d == b) { - return; - } else if (d > b) { - Ysb(c); - break; - } - } - Vsb(c, b); - } - function t4c(a, b) { - var c, d, e, f, g10; - c = b.f; - Xrb(a.c.d, c, b); - if (b.g != null) { - for (e = b.g, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - Xrb(a.c.e, d, b); - } - } - } - function Ilb(a, b, c, d) { - var e, f, g10; - for (e = b + 1; e < c; ++e) { - for (f = e; f > b && d.ue(a[f - 1], a[f]) > 0; --f) { - g10 = a[f]; - NC(a, f, a[f - 1]); - NC(a, f - 1, g10); - } - } - } - function did(a, b, c, d) { - if (b < 0) { - uid(a, c, d); - } else { - if (!c.Ij()) { - throw vbb(new Wdb(ite + c.ne() + jte)); - } - BD(c, 66).Nj().Tj(a, a.yh(), b, d); - } - } - function xFb(a, b) { - if (b == a.d) { - return a.e; - } else if (b == a.e) { - return a.d; - } else { - throw vbb(new Wdb("Node " + b + " not part of edge " + a)); - } - } - function iEb(a, b) { - switch (b.g) { - case 2: - return a.b; - case 1: - return a.c; - case 4: - return a.d; - case 3: - return a.a; - default: - return false; - } - } - function GVb(a, b) { - switch (b.g) { - case 2: - return a.b; - case 1: - return a.c; - case 4: - return a.d; - case 3: - return a.a; - default: - return false; - } - } - function Xkd(a, b, c, d) { - switch (b) { - case 3: - return a.f; - case 4: - return a.g; - case 5: - return a.i; - case 6: - return a.j; - } - return Ekd(a, b, c, d); - } - function Ljc(a) { - if (a.k != (j0b(), h0b)) { - return false; - } - return FAb(new YAb(null, new Lub(new Sr(ur(U_b(a).a.Kc(), new Sq())))), new Mjc()); - } - function MEd(a) { - if (a.e == null) { - return a; - } else - !a.c && (a.c = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, null)); - return a.c; - } - function VC(a, b) { - if (a.h == Gje && a.m == 0 && a.l == 0) { - b && (QC = TC(0, 0, 0)); - return SC((wD(), uD)); - } - b && (QC = TC(a.l, a.m, a.h)); - return TC(0, 0, 0); - } - function fcb(a) { - var b; - if (Array.isArray(a) && a.im === gcb) { - return hdb(rb(a)) + "@" + (b = tb(a) >>> 0, b.toString(16)); - } - return a.toString(); - } - function Rpb(a) { - var b; - this.a = (b = BD(a.e && a.e(), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - this.b = KC(SI, Uhe, 1, this.a.a.length, 5, 1); - } - function _Ob(a) { - var b, c, d; - this.a = new zsb(); - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 14); - b = new MOb(); - GOb(b, c); - Qqb(this.a, b); - } - } - function cKb(a) { - $Jb(); - var b, c, d, e; - b = a.o.b; - for (d = BD(BD(Qc(a.r, (Ucd(), Rcd)), 21), 84).Kc(); d.Ob(); ) { - c = BD(d.Pb(), 111); - e = c.e; - e.b += b; - } - } - function ag(a) { - var b; - if (a.b) { - ag(a.b); - if (a.b.d != a.c) { - throw vbb(new Apb()); - } - } else if (a.d.dc()) { - b = BD(a.f.c.xc(a.e), 14); - !!b && (a.d = b); - } - } - function fFd(a) { - var b; - if (a == null) - return true; - b = a.length; - return b > 0 && (BCb(b - 1, a.length), a.charCodeAt(b - 1) == 58) && !OEd(a, CEd, DEd); - } - function OEd(a, b, c) { - var d, e; - for (d = 0, e = a.length; d < e; d++) { - if (_Ed((BCb(d, a.length), a.charCodeAt(d)), b, c)) - return true; - } - return false; - } - function JOb(a, b) { - var c, d; - for (d = a.e.a.ec().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 266); - if (t6c(b, c.d) || o6c(b, c.d)) { - return true; - } - } - return false; - } - function Q9b(a, b) { - var c, d, e; - d = N9b(a, b); - e = d[d.length - 1] / 2; - for (c = 0; c < d.length; c++) { - if (d[c] >= e) { - return b.c + c; - } - } - return b.c + b.b.gc(); - } - function NCd(a, b) { - LCd(); - var c, d, e, f; - d = KLd(a); - e = b; - Klb(d, 0, d.length, e); - for (c = 0; c < d.length; c++) { - f = MCd(a, d[c], c); - c != f && Wxd(a, c, f); - } - } - function EHb(a, b) { - var c, d, e, f, g10, h; - d = 0; - c = 0; - for (f = b, g10 = 0, h = f.length; g10 < h; ++g10) { - e = f[g10]; - if (e > 0) { - d += e; - ++c; - } - } - c > 1 && (d += a.d * (c - 1)); - return d; - } - function Htd(a) { - var b, c, d; - d = new Hfb(); - d.a += "["; - for (b = 0, c = a.gc(); b < c; ) { - Efb(d, xfb(a.ki(b))); - ++b < c && (d.a += She, d); - } - d.a += "]"; - return d.a; - } - function fsd(a) { - var b, c, d, e, f; - f = hsd(a); - c = Fhe(a.c); - d = !c; - if (d) { - e = new wB(); - cC(f, "knownLayouters", e); - b = new qsd(e); - reb(a.c, b); - } - return f; - } - function Ce(a, b) { - var c, d, e; - uCb(b); - c = false; - for (d = new olb(a); d.a < d.c.c.length; ) { - e = mlb(d); - if (ze(b, e, false)) { - nlb(d); - c = true; - } - } - return c; - } - function UGb(a) { - var b, c, d; - d = Edb(ED(a.a.We((Y9c(), Q9c)))); - for (c = new olb(a.a.xf()); c.a < c.c.c.length; ) { - b = BD(mlb(c), 680); - XGb(a, b, d); - } - } - function MUb(a, b) { - var c, d; - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 46); - Ekb(a.b.b, BD(c.b, 81)); - eVb(BD(c.a, 189), BD(c.b, 81)); - } - } - function XCc(a, b, c) { - var d, e; - e = a.a.b; - for (d = e.c.length; d < c; d++) { - Dkb(e, 0, new H1b(a.a)); - } - $_b(b, BD(Ikb(e, e.c.length - c), 29)); - a.b[b.p] = c; - } - function JTb(a, b, c) { - var d; - d = c; - !d && (d = Ydd(new Zdd(), 0)); - Odd(d, Vme, 2); - qZb(a.b, b, Udd(d, 1)); - LTb(a, b, Udd(d, 1)); - _Yb(b, Udd(d, 1)); - Qdd(d); - } - function eKc(a, b, c, d, e) { - FJc(); - AFb(DFb(CFb(BFb(EFb(new FFb(), 0), e.d.e - a), b), e.d)); - AFb(DFb(CFb(BFb(EFb(new FFb(), 0), c - e.a.e), e.a), d)); - } - function e$c(a, b, c, d, e, f) { - this.a = a; - this.c = b; - this.b = c; - this.f = d; - this.d = e; - this.e = f; - this.c > 0 && this.b > 0 && q$c(this.c, this.b, this.a); - } - function ezc(a) { - dzc(); - this.c = Ou(OC(GC(h0, 1), Uhe, 831, 0, [Uyc])); - this.b = new Lqb(); - this.a = a; - Rhb(this.b, bzc, 1); - Hkb(czc, new Xed(this)); - } - function I2c(a, b) { - var c; - if (a.d) { - if (Mhb(a.b, b)) { - return BD(Ohb(a.b, b), 51); - } else { - c = b.Kf(); - Rhb(a.b, b, c); - return c; - } - } else { - return b.Kf(); - } - } - function Kgb(a, b) { - var c; - if (PD(a) === PD(b)) { - return true; - } - if (JD(b, 91)) { - c = BD(b, 91); - return a.e == c.e && a.d == c.d && Lgb(a, c.a); - } - return false; - } - function Zcd(a) { - Ucd(); - switch (a.g) { - case 4: - return Acd; - case 1: - return zcd; - case 3: - return Rcd; - case 2: - return Tcd; - default: - return Scd; - } - } - function Ykd(a, b) { - switch (b) { - case 3: - return a.f != 0; - case 4: - return a.g != 0; - case 5: - return a.i != 0; - case 6: - return a.j != 0; - } - return Hkd(a, b); - } - function gWc(a) { - switch (a.g) { - case 0: - return new FXc(); - case 1: - return new IXc(); - default: - throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g))); - } - } - function QUc(a) { - switch (a.g) { - case 0: - return new CXc(); - case 1: - return new MXc(); - default: - throw vbb(new Wdb(Dne + (a.f != null ? a.f : "" + a.g))); - } - } - function b1c(a) { - switch (a.g) { - case 0: - return new s1c(); - case 1: - return new w1c(); - default: - throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g))); - } - } - function qWc(a) { - switch (a.g) { - case 1: - return new SVc(); - case 2: - return new KVc(); - default: - throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g))); - } - } - function ryb(a) { - var b, c; - if (a.b) { - return a.b; - } - c = lyb ? null : a.d; - while (c) { - b = lyb ? null : c.b; - if (b) { - return b; - } - c = lyb ? null : c.d; - } - return $xb(), Zxb; - } - function hhb(a) { - var b, c, d; - if (a.e == 0) { - return 0; - } - b = a.d << 5; - c = a.a[a.d - 1]; - if (a.e < 0) { - d = Mgb(a); - if (d == a.d - 1) { - --c; - c = c | 0; - } - } - b -= heb(c); - return b; - } - function bhb(a) { - var b, c, d; - if (a < Fgb.length) { - return Fgb[a]; - } - c = a >> 5; - b = a & 31; - d = KC(WD, oje, 25, c + 1, 15, 1); - d[c] = 1 << b; - return new Vgb(1, c + 1, d); - } - function O2b(a) { - var b, c, d; - c = a.zg(); - if (c) { - b = a.Ug(); - if (JD(b, 160)) { - d = O2b(BD(b, 160)); - if (d != null) { - return d + "." + c; - } - } - return c; - } - return null; - } - function ze(a, b, c) { - var d, e; - for (e = a.Kc(); e.Ob(); ) { - d = e.Pb(); - if (PD(b) === PD(d) || b != null && pb(b, d)) { - c && e.Qb(); - return true; - } - } - return false; - } - function zvd(a, b, c) { - var d, e; - ++a.j; - if (c.dc()) { - return false; - } else { - for (e = c.Kc(); e.Ob(); ) { - d = e.Pb(); - a.Hi(b, a.oi(b, d)); - ++b; - } - return true; - } - } - function yA(a, b, c, d) { - var e, f; - f = c - b; - if (f < 3) { - while (f < 3) { - a *= 10; - ++f; - } - } else { - e = 1; - while (f > 3) { - e *= 10; - --f; - } - a = (a + (e >> 1)) / e | 0; - } - d.i = a; - return true; - } - function XUb(a) { - LUb(); - return Bcb(), GVb(BD(a.a, 81).j, BD(a.b, 103)) || BD(a.a, 81).d.e != 0 && GVb(BD(a.a, 81).j, BD(a.b, 103)) ? true : false; - } - function s3c(a) { - p3c(); - if (BD(a.We((Y9c(), b9c)), 174).Hc((Idd(), Gdd))) { - BD(a.We(x9c), 174).Fc((rcd(), qcd)); - BD(a.We(b9c), 174).Mc(Gdd); - } - } - function Gxd(a, b) { - var c, d; - if (!b) { - return false; - } else { - for (c = 0; c < a.i; ++c) { - d = BD(a.g[c], 366); - if (d.Di(b)) { - return false; - } - } - return wtd(a, b); - } - } - function pvd(a) { - var b, c, d, e; - b = new wB(); - for (e = new Dnb(a.b.Kc()); e.b.Ob(); ) { - d = BD(e.b.Pb(), 686); - c = lsd(d); - uB(b, b.a.length, c); - } - return b.a; - } - function cLb(a) { - var b; - !a.c && (a.c = new VKb()); - Okb(a.d, new jLb()); - _Kb(a); - b = UKb(a); - MAb(new YAb(null, new Kub(a.d, 16)), new CLb(a)); - return b; - } - function mKd(a) { - var b; - if ((a.Db & 64) != 0) - return qnd(a); - b = new Jfb(qnd(a)); - b.a += " (instanceClassName: "; - Efb(b, a.D); - b.a += ")"; - return b.a; - } - function Pqd(a, b) { - var c, d, e, f; - if (b) { - e = Xpd(b, "x"); - c = new bsd(a); - hmd(c.a, (uCb(e), e)); - f = Xpd(b, "y"); - d = new csd(a); - imd(d.a, (uCb(f), f)); - } - } - function Eqd(a, b) { - var c, d, e, f; - if (b) { - e = Xpd(b, "x"); - c = new Yrd(a); - omd(c.a, (uCb(e), e)); - f = Xpd(b, "y"); - d = new _rd(a); - pmd(d.a, (uCb(f), f)); - } - } - function bLd(a, b) { - var c, d, e; - c = (a.i == null && TKd(a), a.i); - d = b.aj(); - if (d != -1) { - for (e = c.length; d < e; ++d) { - if (c[d] == b) { - return d; - } - } - } - return -1; - } - function tNd(a) { - var b, c, d, e, f; - c = BD(a.g, 674); - for (d = a.i - 1; d >= 0; --d) { - b = c[d]; - for (e = 0; e < d; ++e) { - f = c[e]; - if (uNd(a, b, f)) { - tud(a, d); - break; - } - } - } - } - function jCb(b) { - var c = b.e; - function d(a) { - if (!a || a.length == 0) { - return ""; - } - return " " + a.join("\n "); - } - return c && (c.stack || d(b[Yie])); - } - function nm(a) { - im(); - var b; - b = a.Pc(); - switch (b.length) { - case 0: - return hm; - case 1: - return new my(Qb(b[0])); - default: - return new ux(wm(b)); - } - } - function W_b(a, b) { - switch (b.g) { - case 1: - return Nq(a.j, (z0b(), u0b)); - case 2: - return Nq(a.j, (z0b(), w0b)); - default: - return mmb(), mmb(), jmb; - } - } - function $kd(a, b) { - switch (b) { - case 3: - ald(a, 0); - return; - case 4: - cld(a, 0); - return; - case 5: - dld(a, 0); - return; - case 6: - eld(a, 0); - return; - } - Jkd(a, b); - } - function dzc() { - dzc = ccb; - Vyc(); - bzc = (Nyc(), vyc); - czc = Ou(OC(GC(Q3, 1), zqe, 146, 0, [kyc, lyc, nyc, oyc, ryc, syc, tyc, uyc, xyc, zyc, myc, pyc, wyc])); - } - function Y9b(a) { - var b, c; - b = a.d == (Apc(), vpc); - c = U9b(a); - b && !c || !b && c ? yNb(a.a, (Nyc(), mwc), (F7c(), D7c)) : yNb(a.a, (Nyc(), mwc), (F7c(), C7c)); - } - function XAb(a, b) { - var c; - c = BD(GAb(a, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - return c.Qc(aBb(c.gc())); - } - function Ded() { - Ded = ccb; - Ced = new Eed("SIMPLE", 0); - zed = new Eed("GROUP_DEC", 1); - Bed = new Eed("GROUP_MIXED", 2); - Aed = new Eed("GROUP_INC", 3); - } - function CWd() { - CWd = ccb; - AWd = new DWd(); - tWd = new GWd(); - uWd = new JWd(); - vWd = new MWd(); - wWd = new PWd(); - xWd = new SWd(); - yWd = new VWd(); - zWd = new YWd(); - BWd = new _Wd(); - } - function FHb(a, b, c) { - tHb(); - oHb.call(this); - this.a = IC(oN, [nie, ile], [595, 212], 0, [sHb, rHb], 2); - this.c = new I6c(); - this.g = a; - this.f = b; - this.d = c; - } - function pNb(a, b) { - this.n = IC(XD, [nie, Sje], [364, 25], 14, [b, QD($wnd.Math.ceil(a / 32))], 2); - this.o = a; - this.p = b; - this.j = a - 1 >> 1; - this.k = b - 1 >> 1; - } - function r3b(a, b) { - Odd(b, "End label post-processing", 1); - MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new w3b()), new y3b()), new A3b()); - Qdd(b); - } - function NLc(a, b, c) { - var d, e; - d = Edb(a.p[b.i.p]) + Edb(a.d[b.i.p]) + b.n.b + b.a.b; - e = Edb(a.p[c.i.p]) + Edb(a.d[c.i.p]) + c.n.b + c.a.b; - return e - d; - } - function xhb(a, b, c) { - var d, e; - d = xbb(c, Yje); - for (e = 0; ybb(d, 0) != 0 && e < b; e++) { - d = wbb(d, xbb(a[e], Yje)); - a[e] = Tbb(d); - d = Obb(d, 32); - } - return Tbb(d); - } - function $Ed(a) { - var b, c, d, e; - e = 0; - for (c = 0, d = a.length; c < d; c++) { - b = (BCb(c, a.length), a.charCodeAt(c)); - b < 64 && (e = Mbb(e, Nbb(1, b))); - } - return e; - } - function S9d(a) { - var b; - return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b)); - } - function T9d(a) { - var b; - return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b)); - } - function xud(a, b) { - var c; - if (a.i > 0) { - if (b.length < a.i) { - c = izd(rb(b).c, a.i); - b = c; - } - $fb(a.g, 0, b, 0, a.i); - } - b.length > a.i && NC(b, a.i, null); - return b; - } - function Sxd(a, b, c) { - var d, e, f; - if (a.ej()) { - d = a.i; - f = a.fj(); - kud(a, d, b); - e = a.Zi(3, null, b, d, f); - !c ? c = e : c.Ei(e); - } else { - kud(a, a.i, b); - } - return c; - } - function HMd(a, b, c) { - var d, e; - d = new pSd(a.e, 4, 10, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), null, HLd(a, b), false); - !c ? c = d : c.Ei(d); - return c; - } - function GMd(a, b, c) { - var d, e; - d = new pSd(a.e, 3, 10, null, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), HLd(a, b), false); - !c ? c = d : c.Ei(d); - return c; - } - function _Jb(a) { - $Jb(); - var b; - b = new g7c(BD(a.e.We((Y9c(), _8c)), 8)); - if (a.B.Hc((Idd(), Bdd))) { - b.a <= 0 && (b.a = 20); - b.b <= 0 && (b.b = 20); - } - return b; - } - function Lzc(a) { - Izc(); - var b; - (!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Cxc)) ? b = BD(vNb(a, Cxc), 197) : b = BD(vNb(Q_b(a), Dxc), 197); - return b; - } - function pBc(a, b) { - var c, d; - d = null; - if (wNb(a, (Nyc(), qyc))) { - c = BD(vNb(a, qyc), 94); - c.Xe(b) && (d = c.We(b)); - } - d == null && (d = vNb(Q_b(a), b)); - return d; - } - function Ze(a, b) { - var c, d, e; - if (JD(b, 42)) { - c = BD(b, 42); - d = c.cd(); - e = Hv(a.Rc(), d); - return Hb(e, c.dd()) && (e != null || a.Rc()._b(d)); - } - return false; - } - function qAd(a, b) { - var c, d, e; - if (a.f > 0) { - a.qj(); - d = b == null ? 0 : tb(b); - e = (d & Ohe) % a.d.length; - c = xAd(a, e, d, b); - return c != -1; - } else { - return false; - } - } - function AAd(a, b) { - var c, d, e; - if (a.f > 0) { - a.qj(); - d = b == null ? 0 : tb(b); - e = (d & Ohe) % a.d.length; - c = wAd(a, e, d, b); - if (c) { - return c.dd(); - } - } - return null; - } - function R2d(a, b) { - var c, d, e, f; - f = S6d(a.e.Tg(), b); - c = BD(a.g, 119); - for (e = 0; e < a.i; ++e) { - d = c[e]; - if (f.rl(d.ak())) { - return false; - } - } - return true; - } - function B6d(a) { - if (a.b == null) { - while (a.a.Ob()) { - a.b = a.a.Pb(); - if (!BD(a.b, 49).Zg()) { - return true; - } - } - a.b = null; - return false; - } else { - return true; - } - } - function Myd(b, c) { - b.mj(); - try { - b.d.Vc(b.e++, c); - b.f = b.d.j; - b.g = -1; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - throw vbb(new Apb()); - } else - throw vbb(a); - } - } - function IA(a, b) { - GA(); - var c, d; - c = LA((KA(), KA(), JA)); - d = null; - b == c && (d = BD(Phb(FA, a), 615)); - if (!d) { - d = new HA(a); - b == c && Shb(FA, a, d); - } - return d; - } - function Epb(a, b) { - var c, d; - a.a = wbb(a.a, 1); - a.c = $wnd.Math.min(a.c, b); - a.b = $wnd.Math.max(a.b, b); - a.d += b; - c = b - a.f; - d = a.e + c; - a.f = d - a.e - c; - a.e = d; - } - function ogb(a, b) { - var c; - a.c = b; - a.a = hhb(b); - a.a < 54 && (a.f = (c = b.d > 1 ? Mbb(Nbb(b.a[1], 32), xbb(b.a[0], Yje)) : xbb(b.a[0], Yje), Sbb(Ibb(b.e, c)))); - } - function Hbb(a, b) { - var c; - if (Fbb(a) && Fbb(b)) { - c = a % b; - if (Kje < c && c < Ije) { - return c; - } - } - return zbb((UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, true), QC)); - } - function p5b(a, b) { - var c; - m5b(b); - c = BD(vNb(a, (Nyc(), Rwc)), 276); - !!c && yNb(a, Rwc, Tqc(c)); - n5b(a.c); - n5b(a.f); - o5b(a.d); - o5b(BD(vNb(a, wxc), 207)); - } - function rHc(a) { - this.e = KC(WD, oje, 25, a.length, 15, 1); - this.c = KC(sbb, dle, 25, a.length, 16, 1); - this.b = KC(sbb, dle, 25, a.length, 16, 1); - this.f = 0; - } - function BDc(a) { - var b, c; - a.j = KC(UD, Vje, 25, a.p.c.length, 15, 1); - for (c = new olb(a.p); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - a.j[b.p] = b.o.b / a.i; - } - } - function yic(a) { - var b; - if (a.c == 0) { - return; - } - b = BD(Ikb(a.a, a.b), 287); - b.b == 1 ? (++a.b, a.b < a.a.c.length && Cic(BD(Ikb(a.a, a.b), 287))) : --b.b; - --a.c; - } - function eac(a) { - var b; - b = a.a; - do { - b = BD(Rr(new Sr(ur(U_b(b).a.Kc(), new Sq()))), 17).d.i; - b.k == (j0b(), g0b) && Ekb(a.e, b); - } while (b.k == (j0b(), g0b)); - } - function idd() { - idd = ccb; - fdd = new q0b(15); - edd = new Osd((Y9c(), f9c), fdd); - hdd = new Osd(T9c, 15); - gdd = new Osd(E9c, meb(0)); - ddd = new Osd(r8c, tme); - } - function tdd() { - tdd = ccb; - rdd = new udd("PORTS", 0); - sdd = new udd("PORT_LABELS", 1); - qdd = new udd("NODE_LABELS", 2); - pdd = new udd("MINIMUM_SIZE", 3); - } - function Ree(a, b) { - var c, d; - d = b.length; - for (c = 0; c < d; c += 2) - Ufe(a, (BCb(c, b.length), b.charCodeAt(c)), (BCb(c + 1, b.length), b.charCodeAt(c + 1))); - } - function _Zc(a, b, c) { - var d, e, f, g10; - f = b - a.e; - g10 = c - a.f; - for (e = new olb(a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 187); - OZc(d, d.s + f, d.t + g10); - } - a.e = b; - a.f = c; - } - function jUc(a, b) { - var c, d, e, f; - f = b.b.b; - a.a = new Psb(); - a.b = KC(WD, oje, 25, f, 15, 1); - c = 0; - for (e = Jsb(b.b, 0); e.b != e.d.c; ) { - d = BD(Xsb(e), 86); - d.g = c++; - } - } - function ihb(a, b) { - var c, d, e, f; - c = b >> 5; - b &= 31; - e = a.d + c + (b == 0 ? 0 : 1); - d = KC(WD, oje, 25, e, 15, 1); - jhb(d, a.a, c, b); - f = new Vgb(a.e, e, d); - Jgb(f); - return f; - } - function Ofe(a, b, c) { - var d, e; - d = BD(Phb(Zee, b), 117); - e = BD(Phb($ee, b), 117); - if (c) { - Shb(Zee, a, d); - Shb($ee, a, e); - } else { - Shb($ee, a, d); - Shb(Zee, a, e); - } - } - function Cwb(a, b, c) { - var d, e, f; - e = null; - f = a.b; - while (f) { - d = a.a.ue(b, f.d); - if (c && d == 0) { - return f; - } - if (d >= 0) { - f = f.a[1]; - } else { - e = f; - f = f.a[0]; - } - } - return e; - } - function Dwb(a, b, c) { - var d, e, f; - e = null; - f = a.b; - while (f) { - d = a.a.ue(b, f.d); - if (c && d == 0) { - return f; - } - if (d <= 0) { - f = f.a[0]; - } else { - e = f; - f = f.a[1]; - } - } - return e; - } - function Nic(a, b, c, d) { - var e, f, g10; - e = false; - if (fjc(a.f, c, d)) { - ijc(a.f, a.a[b][c], a.a[b][d]); - f = a.a[b]; - g10 = f[d]; - f[d] = f[c]; - f[c] = g10; - e = true; - } - return e; - } - function QHc(a, b, c, d, e) { - var f, g10, h; - g10 = e; - while (b.b != b.c) { - f = BD(fkb(b), 10); - h = BD(V_b(f, d).Xb(0), 11); - a.d[h.p] = g10++; - c.c[c.c.length] = h; - } - return g10; - } - function hBc(a, b, c) { - var d, e, f, g10, h; - g10 = a.k; - h = b.k; - d = c[g10.g][h.g]; - e = ED(pBc(a, d)); - f = ED(pBc(b, d)); - return $wnd.Math.max((uCb(e), e), (uCb(f), f)); - } - function zZc(a, b, c) { - var d, e, f, g10; - d = c / a.c.length; - e = 0; - for (g10 = new olb(a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 200); - w$c(f, f.f + d * e); - t$c(f, b, d); - ++e; - } - } - function hnc(a, b, c) { - var d, e, f, g10; - e = BD(Ohb(a.b, c), 177); - d = 0; - for (g10 = new olb(b.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 113); - e[f.d.p] && ++d; - } - return d; - } - function mzd(a) { - var b, c; - b = BD(Ajd(a.a, 4), 126); - if (b != null) { - c = KC($3, hve, 415, b.length, 0, 1); - $fb(b, 0, c, 0, b.length); - return c; - } else { - return jzd; - } - } - function Cz() { - var a; - if (xz != 0) { - a = sz(); - if (a - yz > 2e3) { - yz = a; - zz = $wnd.setTimeout(Iz, 10); - } - } - if (xz++ == 0) { - Lz((Kz(), Jz)); - return true; - } - return false; - } - function wCc(a, b) { - var c, d, e; - for (d = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - e = c.d.i; - if (e.c == b) { - return false; - } - } - return true; - } - function Ek(b, c) { - var d, e; - if (JD(c, 245)) { - e = BD(c, 245); - try { - d = b.vd(e); - return d == 0; - } catch (a) { - a = ubb(a); - if (!JD(a, 205)) - throw vbb(a); - } - } - return false; - } - function Xz() { - if (Error.stackTraceLimit > 0) { - $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; - return true; - } - return "stack" in new Error(); - } - function BDb(a, b) { - return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) > 0; - } - function DDb(a, b) { - return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) < 0; - } - function CDb(a, b) { - return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) <= 0; - } - function ydb(a, b) { - var c = 0; - while (!b[c] || b[c] == "") { - c++; - } - var d = b[c++]; - for (; c < b.length; c++) { - if (!b[c] || b[c] == "") { - continue; - } - d += a + b[c]; - } - return d; - } - function zfb(a, b, c) { - var d, e, f, g10; - f = b + c; - ACb(b, f, a.length); - g10 = ""; - for (e = b; e < f; ) { - d = $wnd.Math.min(e + 1e4, f); - g10 += vfb(a.slice(e, d)); - e = d; - } - return g10; - } - function N9d(a) { - var b, c, d, e, f; - if (a == null) - return null; - f = new Rkb(); - for (c = Zmd(a), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Ekb(f, Qge(b, true)); - } - return f; - } - function Q9d(a) { - var b, c, d, e, f; - if (a == null) - return null; - f = new Rkb(); - for (c = Zmd(a), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Ekb(f, Qge(b, true)); - } - return f; - } - function R9d(a) { - var b, c, d, e, f; - if (a == null) - return null; - f = new Rkb(); - for (c = Zmd(a), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Ekb(f, Qge(b, true)); - } - return f; - } - function ted(a, b) { - var c, d, e; - if (a.c) { - cld(a.c, b); - } else { - c = b - red(a); - for (e = new olb(a.d); e.a < e.c.c.length; ) { - d = BD(mlb(e), 157); - ted(d, red(d) + c); - } - } - } - function sed(a, b) { - var c, d, e; - if (a.c) { - ald(a.c, b); - } else { - c = b - qed(a); - for (e = new olb(a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 157); - sed(d, qed(d) + c); - } - } - } - function t6d(a, b) { - var c, d, e, f; - e = new Skb(b.gc()); - for (d = b.Kc(); d.Ob(); ) { - c = d.Pb(); - f = s6d(a, BD(c, 56)); - !!f && (e.c[e.c.length] = f, true); - } - return e; - } - function LAd(a, b) { - var c, d, e; - a.qj(); - d = b == null ? 0 : tb(b); - e = (d & Ohe) % a.d.length; - c = wAd(a, e, d, b); - if (c) { - JAd(a, c); - return c.dd(); - } else { - return null; - } - } - function rde(a) { - var b, c; - c = sde(a); - b = null; - while (a.c == 2) { - nde(a); - if (!b) { - b = (wfe(), wfe(), ++vfe, new Lge(2)); - Kge(b, c); - c = b; - } - c.$l(sde(a)); - } - return c; - } - function Wpd(a) { - var b, c, d; - d = null; - b = Vte in a.a; - c = !b; - if (c) { - throw vbb(new cqd("Every element must have an id.")); - } - d = Vpd(aC(a, Vte)); - return d; - } - function jid(a) { - var b, c, d; - d = a.Zg(); - if (!d) { - b = 0; - for (c = a.eh(); c; c = c.eh()) { - if (++b > Wje) { - return c.fh(); - } - d = c.Zg(); - if (!!d || c == a) { - break; - } - } - } - return d; - } - function fvd(a) { - evd(); - if (JD(a, 156)) { - return BD(Ohb(cvd, hK), 288).vg(a); - } - if (Mhb(cvd, rb(a))) { - return BD(Ohb(cvd, rb(a)), 288).vg(a); - } - return null; - } - function fZd(a) { - if (efb(kse, a)) { - return Bcb(), Acb; - } else if (efb(lse, a)) { - return Bcb(), zcb; - } else { - throw vbb(new Wdb("Expecting true or false")); - } - } - function uDc(a, b) { - if (b.c == a) { - return b.d; - } else if (b.d == a) { - return b.c; - } - throw vbb(new Wdb("Input edge is not connected to the input port.")); - } - function Igb(a, b) { - if (a.e > b.e) { - return 1; - } - if (a.e < b.e) { - return -1; - } - if (a.d > b.d) { - return a.e; - } - if (a.d < b.d) { - return -b.e; - } - return a.e * whb(a.a, b.a, a.d); - } - function Zcb(a) { - if (a >= 48 && a < 48 + $wnd.Math.min(10, 10)) { - return a - 48; - } - if (a >= 97 && a < 97) { - return a - 97 + 10; - } - if (a >= 65 && a < 65) { - return a - 65 + 10; - } - return -1; - } - function Ue(a, b) { - var c; - if (PD(b) === PD(a)) { - return true; - } - if (!JD(b, 21)) { - return false; - } - c = BD(b, 21); - if (c.gc() != a.gc()) { - return false; - } - return a.Ic(c); - } - function ekb(a, b) { - var c, d, e, f; - d = a.a.length - 1; - c = b - a.b & d; - f = a.c - b & d; - e = a.c - a.b & d; - mkb(c < e); - if (c >= f) { - hkb(a, b); - return -1; - } else { - ikb(a, b); - return 1; - } - } - function lA(a, b) { - var c, d; - c = (BCb(b, a.length), a.charCodeAt(b)); - d = b + 1; - while (d < a.length && (BCb(d, a.length), a.charCodeAt(d) == c)) { - ++d; - } - return d - b; - } - function sJb(a) { - switch (a.g) { - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - return true; - default: - return false; - } - } - function bC(f, a) { - var b = f.a; - var c; - a = String(a); - b.hasOwnProperty(a) && (c = b[a]); - var d = (rC(), qC)[typeof c]; - var e = d ? d(c) : xC(typeof c); - return e; - } - function b3c(a, b) { - if (a.a < 0) { - throw vbb(new Zdb("Did not call before(...) or after(...) before calling add(...).")); - } - i3c(a, a.a, b); - return a; - } - function VOc(a, b, c, d) { - var e, f; - if (b.c.length == 0) { - return; - } - e = ROc(c, d); - f = QOc(b); - MAb(VAb(new YAb(null, new Kub(f, 1)), new cPc()), new gPc(a, c, e, d)); - } - function Cjd(a, b, c) { - var d; - if ((a.Db & b) != 0) { - if (c == null) { - Bjd(a, b); - } else { - d = zjd(a, b); - d == -1 ? a.Eb = c : NC(CD(a.Eb), d, c); - } - } else - c != null && vjd(a, b, c); - } - function yjd(a) { - var b, c; - if ((a.Db & 32) == 0) { - c = (b = BD(Ajd(a, 16), 26), aLd(!b ? a.zh() : b) - aLd(a.zh())); - c != 0 && Cjd(a, 32, KC(SI, Uhe, 1, c, 5, 1)); - } - return a; - } - function W1d(a) { - var b; - a.b || X1d(a, (b = h1d(a.e, a.a), !b || !dfb(lse, AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "qualified")))); - return a.c; - } - function dTd(a, b, c) { - var d, e, f; - d = BD(qud(QSd(a.a), b), 87); - f = (e = d.c, e ? e : (jGd(), YFd)); - (f.kh() ? xid(a.b, BD(f, 49)) : f) == c ? KQd(d) : NQd(d, c); - return f; - } - function fCb(a, b) { - (!b && console.groupCollapsed != null ? console.groupCollapsed : console.group != null ? console.group : console.log).call(console, a); - } - function NNb(a, b, c, d) { - d == a ? (BD(c.b, 65), BD(c.b, 65), BD(d.b, 65), BD(d.b, 65).c.b) : (BD(c.b, 65), BD(c.b, 65), BD(d.b, 65), BD(d.b, 65).c.b); - KNb(d, b, a); - } - function EOb(a) { - var b, c, d; - b = 0; - for (c = new olb(a.g); c.a < c.c.c.length; ) { - BD(mlb(c), 562); - ++b; - } - d = new ENb(a.g, Edb(a.a), a.c); - ELb(d); - a.g = d.b; - a.d = d.a; - } - function ymc(a, b, c) { - b.b = $wnd.Math.max(b.b, -c.a); - b.c = $wnd.Math.max(b.c, c.a - a.a); - b.d = $wnd.Math.max(b.d, -c.b); - b.a = $wnd.Math.max(b.a, c.b - a.b); - } - function MIc(a, b) { - if (a.e < b.e) { - return -1; - } else if (a.e > b.e) { - return 1; - } else if (a.f < b.f) { - return -1; - } else if (a.f > b.f) { - return 1; - } - return tb(a) - tb(b); - } - function efb(a, b) { - uCb(a); - if (b == null) { - return false; - } - if (dfb(a, b)) { - return true; - } - return a.length == b.length && dfb(a.toLowerCase(), b.toLowerCase()); - } - function x6d(a, b) { - var c, d, e, f; - for (d = 0, e = b.gc(); d < e; ++d) { - c = b.il(d); - if (JD(c, 99) && (BD(c, 18).Bb & ote) != 0) { - f = b.jl(d); - f != null && s6d(a, BD(f, 56)); - } - } - } - function p1c(a, b, c) { - var d, e, f; - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 221); - d = new hDb(BD(Ohb(a.a, e.b), 65)); - Ekb(b.a, d); - p1c(a, d, e); - } - } - function Aeb(a) { - var b, c; - if (ybb(a, -129) > 0 && ybb(a, 128) < 0) { - b = Tbb(a) + 128; - c = (Ceb(), Beb)[b]; - !c && (c = Beb[b] = new teb(a)); - return c; - } - return new teb(a); - } - function _0d(a, b) { - var c, d; - c = b.Hh(a.a); - if (c) { - d = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), fue)); - if (d != null) { - return d; - } - } - return b.ne(); - } - function a1d(a, b) { - var c, d; - c = b.Hh(a.a); - if (c) { - d = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), fue)); - if (d != null) { - return d; - } - } - return b.ne(); - } - function FMc(a, b) { - wMc(); - var c, d; - for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (c.d.i == b || c.c.i == b) { - return c; - } - } - return null; - } - function HUb(a, b, c) { - this.c = a; - this.f = new Rkb(); - this.e = new d7c(); - this.j = new IVb(); - this.n = new IVb(); - this.b = b; - this.g = new J6c(b.c, b.d, b.b, b.a); - this.a = c; - } - function gVb(a) { - var b, c, d, e; - this.a = new zsb(); - this.d = new Tqb(); - this.e = 0; - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - !this.f && (this.f = b); - eVb(this, b); - } - } - function Xgb(a) { - Hgb(); - if (a.length == 0) { - this.e = 0; - this.d = 1; - this.a = OC(GC(WD, 1), oje, 25, 15, [0]); - } else { - this.e = 1; - this.d = a.length; - this.a = a; - Jgb(this); - } - } - function mIb(a, b, c) { - oHb.call(this); - this.a = KC(oN, ile, 212, (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length, 0, 1); - this.b = a; - this.d = b; - this.c = c; - } - function Kjc(a) { - this.d = new Rkb(); - this.e = new $rb(); - this.c = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1); - this.b = a; - } - function Vbc(a) { - var b, c, d, e, f, g10; - g10 = BD(vNb(a, (wtc(), $sc)), 11); - yNb(g10, qtc, a.i.n.b); - b = k_b(a.e); - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - RZb(c, g10); - } - } - function Wbc(a) { - var b, c, d, e, f, g10; - c = BD(vNb(a, (wtc(), $sc)), 11); - yNb(c, qtc, a.i.n.b); - b = k_b(a.g); - for (e = b, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - QZb(d, c); - } - } - function vcc(a) { - var b, c; - if (wNb(a.d.i, (Nyc(), Nxc))) { - b = BD(vNb(a.c.i, Nxc), 19); - c = BD(vNb(a.d.i, Nxc), 19); - return beb(b.a, c.a) > 0; - } else { - return false; - } - } - function q2c(a) { - var b; - if (PD(hkd(a, (Y9c(), J8c))) === PD((hbd(), fbd))) { - if (!Xod(a)) { - jkd(a, J8c, gbd); - } else { - b = BD(hkd(Xod(a), J8c), 334); - jkd(a, J8c, b); - } - } - } - function ijc(a, b, c) { - var d, e; - bIc(a.e, b, c, (Ucd(), Tcd)); - bIc(a.i, b, c, zcd); - if (a.a) { - e = BD(vNb(b, (wtc(), $sc)), 11); - d = BD(vNb(c, $sc), 11); - cIc(a.g, e, d); - } - } - function OEc(a, b, c) { - var d, e, f; - d = b.c.p; - f = b.p; - a.b[d][f] = new $Ec(a, b); - if (c) { - a.a[d][f] = new FEc(b); - e = BD(vNb(b, (wtc(), Psc)), 10); - !!e && Rc(a.d, e, b); - } - } - function TPb(a, b) { - var c, d, e; - Ekb(PPb, a); - b.Fc(a); - c = BD(Ohb(OPb, a), 21); - if (c) { - for (e = c.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 33); - Jkb(PPb, d, 0) != -1 || TPb(d, b); - } - } - } - function tyb(a, b, c) { - var d; - (jyb ? (ryb(a), true) : kyb ? ($xb(), true) : nyb ? ($xb(), true) : myb && ($xb(), false)) && (d = new iyb(b), d.b = c, pyb(a, d), void 0); - } - function xKb(a, b) { - var c; - c = !a.A.Hc((tdd(), sdd)) || a.q == (dcd(), $bd); - a.u.Hc((rcd(), ncd)) ? c ? vKb(a, b) : zKb(a, b) : a.u.Hc(pcd) && (c ? wKb(a, b) : AKb(a, b)); - } - function b0d(a, b) { - var c, d; - ++a.j; - if (b != null) { - c = (d = a.a.Cb, JD(d, 97) ? BD(d, 97).Jg() : null); - if (xlb(b, c)) { - Cjd(a.a, 4, c); - return; - } - } - Cjd(a.a, 4, BD(b, 126)); - } - function dYb(a, b, c) { - return new J6c($wnd.Math.min(a.a, b.a) - c / 2, $wnd.Math.min(a.b, b.b) - c / 2, $wnd.Math.abs(a.a - b.a) + c, $wnd.Math.abs(a.b - b.b) + c); - } - function k4b(a, b) { - var c, d; - c = beb(a.a.c.p, b.a.c.p); - if (c != 0) { - return c; - } - d = beb(a.a.d.i.p, b.a.d.i.p); - if (d != 0) { - return d; - } - return beb(b.a.d.p, a.a.d.p); - } - function _Dc(a, b, c) { - var d, e, f, g10; - f = b.j; - g10 = c.j; - if (f != g10) { - return f.g - g10.g; - } else { - d = a.f[b.p]; - e = a.f[c.p]; - return d == 0 && e == 0 ? 0 : d == 0 ? -1 : e == 0 ? 1 : Kdb(d, e); - } - } - function HFb(a, b, c) { - var d, e, f; - if (c[b.d]) { - return; - } - c[b.d] = true; - for (e = new olb(LFb(b)); e.a < e.c.c.length; ) { - d = BD(mlb(e), 213); - f = xFb(d, b); - HFb(a, f, c); - } - } - function umc(a, b, c) { - var d; - d = c[a.g][b]; - switch (a.g) { - case 1: - case 3: - return new f7c(0, d); - case 2: - case 4: - return new f7c(d, 0); - default: - return null; - } - } - function r2c(b, c, d) { - var e, f; - f = BD(hgd(c.f), 209); - try { - f.Ze(b, d); - igd(c.f, f); - } catch (a) { - a = ubb(a); - if (JD(a, 102)) { - e = a; - throw vbb(e); - } else - throw vbb(a); - } - } - function Vqd(a, b, c) { - var d, e, f, g10, h, i10; - d = null; - h = k4c(n4c(), b); - f = null; - if (h) { - e = null; - i10 = o5c(h, c); - g10 = null; - i10 != null && (g10 = a.Ye(h, i10)); - e = g10; - f = e; - } - d = f; - return d; - } - function TTd(a, b, c, d) { - var e, f, g10; - e = new pSd(a.e, 1, 13, (g10 = b.c, g10 ? g10 : (jGd(), YFd)), (f = c.c, f ? f : (jGd(), YFd)), HLd(a, b), false); - !d ? d = e : d.Ei(e); - return d; - } - function UEd(a, b, c, d) { - var e; - e = a.length; - if (b >= e) - return e; - for (b = b > 0 ? b : 0; b < e; b++) { - if (_Ed((BCb(b, a.length), a.charCodeAt(b)), c, d)) - break; - } - return b; - } - function Qkb(a, b) { - var c, d; - d = a.c.length; - b.length < d && (b = eCb(new Array(d), b)); - for (c = 0; c < d; ++c) { - NC(b, c, a.c[c]); - } - b.length > d && NC(b, d, null); - return b; - } - function _lb(a, b) { - var c, d; - d = a.a.length; - b.length < d && (b = eCb(new Array(d), b)); - for (c = 0; c < d; ++c) { - NC(b, c, a.a[c]); - } - b.length > d && NC(b, d, null); - return b; - } - function Xrb(a, b, c) { - var d, e, f; - e = BD(Ohb(a.e, b), 387); - if (!e) { - d = new lsb(a, b, c); - Rhb(a.e, b, d); - isb(d); - return null; - } else { - f = ijb(e, c); - Yrb(a, e); - return f; - } - } - function P9d(a) { - var b; - if (a == null) - return null; - b = ide(Qge(a, true)); - if (b == null) { - throw vbb(new n8d("Invalid hexBinary value: '" + a + "'")); - } - return b; - } - function ghb(a) { - Hgb(); - if (ybb(a, 0) < 0) { - if (ybb(a, -1) != 0) { - return new Wgb(-1, Jbb(a)); - } - return Bgb; - } else - return ybb(a, 10) <= 0 ? Dgb[Tbb(a)] : new Wgb(1, a); - } - function wJb() { - qJb(); - return OC(GC(DN, 1), Kie, 159, 0, [nJb, mJb, oJb, eJb, dJb, fJb, iJb, hJb, gJb, lJb, kJb, jJb, bJb, aJb, cJb, $Ib, ZIb, _Ib, XIb, WIb, YIb, pJb]); - } - function vjc(a) { - var b; - this.d = new Rkb(); - this.j = new d7c(); - this.g = new d7c(); - b = a.g.b; - this.f = BD(vNb(Q_b(b), (Nyc(), Lwc)), 103); - this.e = Edb(ED(c_b(b, ryc))); - } - function Pjc(a) { - this.b = new Rkb(); - this.e = new Rkb(); - this.d = a; - this.a = !WAb(JAb(new YAb(null, new Lub(new b1b(a.b))), new Xxb(new Qjc()))).sd((EAb(), DAb)); - } - function N5c() { - N5c = ccb; - L5c = new O5c("PARENTS", 0); - K5c = new O5c("NODES", 1); - I5c = new O5c("EDGES", 2); - M5c = new O5c("PORTS", 3); - J5c = new O5c("LABELS", 4); - } - function Tbd() { - Tbd = ccb; - Qbd = new Ubd("DISTRIBUTED", 0); - Sbd = new Ubd("JUSTIFIED", 1); - Obd = new Ubd("BEGIN", 2); - Pbd = new Ubd(gle, 3); - Rbd = new Ubd("END", 4); - } - function UMd(a) { - var b; - b = a.yi(null); - switch (b) { - case 10: - return 0; - case 15: - return 1; - case 14: - return 2; - case 11: - return 3; - case 21: - return 4; - } - return -1; - } - function cYb(a) { - switch (a.g) { - case 1: - return ead(), dad; - case 4: - return ead(), aad; - case 2: - return ead(), bad; - case 3: - return ead(), _9c; - } - return ead(), cad; - } - function kA(a, b, c) { - var d; - d = c.q.getFullYear() - nje + nje; - d < 0 && (d = -d); - switch (b) { - case 1: - a.a += d; - break; - case 2: - EA(a, d % 100, 2); - break; - default: - EA(a, d, b); - } - } - function Jsb(a, b) { - var c, d; - wCb(b, a.b); - if (b >= a.b >> 1) { - d = a.c; - for (c = a.b; c > b; --c) { - d = d.b; - } - } else { - d = a.a.a; - for (c = 0; c < b; ++c) { - d = d.a; - } - } - return new $sb(a, b, d); - } - function MEb() { - MEb = ccb; - LEb = new NEb("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0); - KEb = new NEb("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1); - } - function h4b(a) { - var b, c, d, e; - d = c4b(a); - Okb(d, a4b); - e = a.d; - e.c = KC(SI, Uhe, 1, 0, 5, 1); - for (c = new olb(d); c.a < c.c.c.length; ) { - b = BD(mlb(c), 456); - Gkb(e, b.b); - } - } - function gkd(a) { - var b, c, d; - d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o); - for (c = d.c.Kc(); c.e != c.i.gc(); ) { - b = BD(c.nj(), 42); - b.dd(); - } - return FAd(d); - } - function N5b(a) { - var b; - if (!ecd(BD(vNb(a, (Nyc(), Vxc)), 98))) { - return; - } - b = a.b; - O5b((tCb(0, b.c.length), BD(b.c[0], 29))); - O5b(BD(Ikb(b, b.c.length - 1), 29)); - } - function Roc(a, b) { - var c, d, e, f; - c = 0; - for (e = new olb(b.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - f = d.o.a + d.d.c + d.d.b + a.j; - c = $wnd.Math.max(c, f); - } - return c; - } - function XEd(a) { - var b, c, d, e; - e = 0; - for (c = 0, d = a.length; c < d; c++) { - b = (BCb(c, a.length), a.charCodeAt(c)); - b >= 64 && b < 128 && (e = Mbb(e, Nbb(1, b - 64))); - } - return e; - } - function c_b(a, b) { - var c, d; - d = null; - if (wNb(a, (Y9c(), O9c))) { - c = BD(vNb(a, O9c), 94); - c.Xe(b) && (d = c.We(b)); - } - d == null && !!Q_b(a) && (d = vNb(Q_b(a), b)); - return d; - } - function oQc(a, b) { - var c, d, e; - e = b.d.i; - d = e.k; - if (d == (j0b(), h0b) || d == d0b) { - return; - } - c = new Sr(ur(U_b(e).a.Kc(), new Sq())); - Qr(c) && Rhb(a.k, b, BD(Rr(c), 17)); - } - function mid(a, b) { - var c, d, e; - d = XKd(a.Tg(), b); - c = b - a.Ah(); - return c < 0 ? (e = a.Yg(d), e >= 0 ? a.lh(e) : tid(a, d)) : c < 0 ? tid(a, d) : BD(d, 66).Nj().Sj(a, a.yh(), c); - } - function Ksd(a) { - var b; - if (JD(a.a, 4)) { - b = fvd(a.a); - if (b == null) { - throw vbb(new Zdb(mse + a.b + "'. " + ise + (fdb(Y3), Y3.k) + jse)); - } - return b; - } else { - return a.a; - } - } - function L9d(a) { - var b; - if (a == null) - return null; - b = bde(Qge(a, true)); - if (b == null) { - throw vbb(new n8d("Invalid base64Binary value: '" + a + "'")); - } - return b; - } - function Dyd(b) { - var c; - try { - c = b.i.Xb(b.e); - b.mj(); - b.g = b.e++; - return c; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - b.mj(); - throw vbb(new utb()); - } else - throw vbb(a); - } - } - function Zyd(b) { - var c; - try { - c = b.c.ki(b.e); - b.mj(); - b.g = b.e++; - return c; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - b.mj(); - throw vbb(new utb()); - } else - throw vbb(a); - } - } - function CPb() { - CPb = ccb; - BPb = (Y9c(), K9c); - vPb = G8c; - qPb = r8c; - wPb = f9c; - zPb = (fFb(), bFb); - yPb = _Eb; - APb = dFb; - xPb = $Eb; - sPb = (nPb(), jPb); - rPb = iPb; - tPb = lPb; - uPb = mPb; - } - function NWb(a) { - LWb(); - this.c = new Rkb(); - this.d = a; - switch (a.g) { - case 0: - case 2: - this.a = tmb(KWb); - this.b = Pje; - break; - case 3: - case 1: - this.a = KWb; - this.b = Qje; - } - } - function ued(a, b, c) { - var d, e; - if (a.c) { - dld(a.c, a.c.i + b); - eld(a.c, a.c.j + c); - } else { - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 157); - ued(d, b, c); - } - } - } - function KEd(a, b) { - var c, d; - if (a.j.length != b.j.length) - return false; - for (c = 0, d = a.j.length; c < d; c++) { - if (!dfb(a.j[c], b.j[c])) - return false; - } - return true; - } - function gA(a, b, c) { - var d; - if (b.a.length > 0) { - Ekb(a.b, new WA(b.a, c)); - d = b.a.length; - 0 < d ? b.a = b.a.substr(0, 0) : 0 > d && (b.a += yfb(KC(TD, $ie, 25, -d, 15, 1))); - } - } - function JKb(a, b) { - var c, d, e; - c = a.o; - for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 111); - d.e.a = DKb(d, c.a); - d.e.b = c.b * Edb(ED(d.b.We(BKb))); - } - } - function S5b(a, b) { - var c, d, e, f; - e = a.k; - c = Edb(ED(vNb(a, (wtc(), htc)))); - f = b.k; - d = Edb(ED(vNb(b, htc))); - return f != (j0b(), e0b) ? -1 : e != e0b ? 1 : c == d ? 0 : c < d ? -1 : 1; - } - function B$c(a, b) { - var c, d; - c = BD(BD(Ohb(a.g, b.a), 46).a, 65); - d = BD(BD(Ohb(a.g, b.b), 46).a, 65); - return S6c(b.a, b.b) - S6c(b.a, E6c(c.b)) - S6c(b.b, E6c(d.b)); - } - function aZb(a, b) { - var c; - c = BD(vNb(a, (Nyc(), jxc)), 74); - if (Lq(b, ZYb)) { - if (!c) { - c = new s7c(); - yNb(a, jxc, c); - } else { - Osb(c); - } - } else - !!c && yNb(a, jxc, null); - return c; - } - function a0b(a) { - var b; - b = new Ufb(); - b.a += "n"; - a.k != (j0b(), h0b) && Qfb(Qfb((b.a += "(", b), Zr(a.k).toLowerCase()), ")"); - Qfb((b.a += "_", b), P_b(a)); - return b.a; - } - function Kdc(a, b) { - Odd(b, "Self-Loop post-processing", 1); - MAb(JAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new Qdc()), new Sdc()), new Udc()), new Wdc()); - Qdd(b); - } - function kid(a, b, c, d) { - var e; - if (c >= 0) { - return a.hh(b, c, d); - } else { - !!a.eh() && (d = (e = a.Vg(), e >= 0 ? a.Qg(d) : a.eh().ih(a, -1 - e, null, d))); - return a.Sg(b, c, d); - } - } - function zld(a, b) { - switch (b) { - case 7: - !a.e && (a.e = new y5d(B2, a, 7, 4)); - Uxd(a.e); - return; - case 8: - !a.d && (a.d = new y5d(B2, a, 8, 5)); - Uxd(a.d); - return; - } - $kd(a, b); - } - function Ut(b, c) { - var d; - d = b.Zc(c); - try { - return d.Pb(); - } catch (a) { - a = ubb(a); - if (JD(a, 109)) { - throw vbb(new qcb("Can't get element " + c)); - } else - throw vbb(a); - } - } - function Tgb(a, b) { - this.e = a; - if (b < Zje) { - this.d = 1; - this.a = OC(GC(WD, 1), oje, 25, 15, [b | 0]); - } else { - this.d = 2; - this.a = OC(GC(WD, 1), oje, 25, 15, [b % Zje | 0, b / Zje | 0]); - } - } - function omb(a, b) { - mmb(); - var c, d, e, f; - c = a; - f = b; - if (JD(a, 21) && !JD(b, 21)) { - c = b; - f = a; - } - for (e = c.Kc(); e.Ob(); ) { - d = e.Pb(); - if (f.Hc(d)) { - return false; - } - } - return true; - } - function Txd(a, b, c) { - var d, e, f, g10; - d = a.Xc(b); - if (d != -1) { - if (a.ej()) { - f = a.fj(); - g10 = tud(a, d); - e = a.Zi(4, g10, null, d, f); - !c ? c = e : c.Ei(e); - } else { - tud(a, d); - } - } - return c; - } - function uwd(a, b, c) { - var d, e, f, g10; - d = a.Xc(b); - if (d != -1) { - if (a.ej()) { - f = a.fj(); - g10 = Evd(a, d); - e = a.Zi(4, g10, null, d, f); - !c ? c = e : c.Ei(e); - } else { - Evd(a, d); - } - } - return c; - } - function PJb(a, b) { - var c; - c = BD(Mpb(a.b, b), 124).n; - switch (b.g) { - case 1: - a.t >= 0 && (c.d = a.t); - break; - case 3: - a.t >= 0 && (c.a = a.t); - } - if (a.C) { - c.b = a.C.b; - c.c = a.C.c; - } - } - function RMb() { - RMb = ccb; - OMb = new SMb(xle, 0); - NMb = new SMb(yle, 1); - PMb = new SMb(zle, 2); - QMb = new SMb(Ale, 3); - OMb.a = false; - NMb.a = true; - PMb.a = false; - QMb.a = true; - } - function ROb() { - ROb = ccb; - OOb = new SOb(xle, 0); - NOb = new SOb(yle, 1); - POb = new SOb(zle, 2); - QOb = new SOb(Ale, 3); - OOb.a = false; - NOb.a = true; - POb.a = false; - QOb.a = true; - } - function dac(a) { - var b; - b = a.a; - do { - b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i; - b.k == (j0b(), g0b) && a.b.Fc(b); - } while (b.k == (j0b(), g0b)); - a.b = Su(a.b); - } - function CDc(a) { - var b, c, d; - d = a.c.a; - a.p = (Qb(d), new Tkb(d)); - for (c = new olb(d); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - b.p = GDc(b).a; - } - mmb(); - Okb(a.p, new PDc()); - } - function eVc(a) { - var b, c, d, e; - d = 0; - e = gVc(a); - if (e.c.length == 0) { - return 1; - } else { - for (c = new olb(e); c.a < c.c.c.length; ) { - b = BD(mlb(c), 33); - d += eVc(b); - } - } - return d; - } - function JJb(a, b) { - var c, d, e; - e = 0; - d = BD(BD(Qc(a.r, b), 21), 84).Kc(); - while (d.Ob()) { - c = BD(d.Pb(), 111); - e += c.d.b + c.b.rf().a + c.d.c; - d.Ob() && (e += a.w); - } - return e; - } - function RKb(a, b) { - var c, d, e; - e = 0; - d = BD(BD(Qc(a.r, b), 21), 84).Kc(); - while (d.Ob()) { - c = BD(d.Pb(), 111); - e += c.d.d + c.b.rf().b + c.d.a; - d.Ob() && (e += a.w); - } - return e; - } - function SOc(a, b, c, d) { - if (b.a < d.a) { - return true; - } else if (b.a == d.a) { - if (b.b < d.b) { - return true; - } else if (b.b == d.b) { - if (a.b > c.b) { - return true; - } - } - } - return false; - } - function AD(a, b) { - if (ND(a)) { - return !!zD[b]; - } else if (a.hm) { - return !!a.hm[b]; - } else if (LD(a)) { - return !!yD[b]; - } else if (KD(a)) { - return !!xD[b]; - } - return false; - } - function jkd(a, b, c) { - c == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c)); - return a; - } - function jKb(a, b, c, d) { - var e, f; - f = b.Xe((Y9c(), W8c)) ? BD(b.We(W8c), 21) : a.j; - e = uJb(f); - if (e == (qJb(), pJb)) { - return; - } - if (c && !sJb(e)) { - return; - } - UHb(lKb(a, e, d), b); - } - function fid(a, b, c, d) { - var e, f, g10; - f = XKd(a.Tg(), b); - e = b - a.Ah(); - return e < 0 ? (g10 = a.Yg(f), g10 >= 0 ? a._g(g10, c, true) : sid(a, f, c)) : BD(f, 66).Nj().Pj(a, a.yh(), e, c, d); - } - function u6d(a, b, c, d) { - var e, f, g10; - if (c.mh(b)) { - Q6d(); - if (YId(b)) { - e = BD(c.ah(b), 153); - x6d(a, e); - } else { - f = (g10 = b, !g10 ? null : BD(d, 49).xh(g10)); - !!f && v6d(c.ah(b), f); - } - } - } - function H3b(a) { - switch (a.g) { - case 1: - return vLb(), uLb; - case 3: - return vLb(), rLb; - case 2: - return vLb(), tLb; - case 4: - return vLb(), sLb; - default: - return null; - } - } - function kCb(a) { - switch (typeof a) { - case Mhe: - return LCb(a); - case Lhe: - return QD(a); - case Khe: - return Bcb(), a ? 1231 : 1237; - default: - return a == null ? 0 : FCb(a); - } - } - function Gic(a, b, c) { - if (a.e) { - switch (a.b) { - case 1: - oic(a.c, b, c); - break; - case 0: - pic(a.c, b, c); - } - } else { - mic(a.c, b, c); - } - a.a[b.p][c.p] = a.c.i; - a.a[c.p][b.p] = a.c.e; - } - function lHc(a) { - var b, c; - if (a == null) { - return null; - } - c = KC(OQ, nie, 193, a.length, 0, 2); - for (b = 0; b < c.length; b++) { - c[b] = BD(ulb(a[b], a[b].length), 193); - } - return c; - } - function d4d(a) { - var b; - if (b4d(a)) { - a4d(a); - if (a.Lk()) { - b = b3d(a.e, a.b, a.c, a.a, a.j); - a.j = b; - } - a.g = a.a; - ++a.a; - ++a.c; - a.i = 0; - return a.j; - } else { - throw vbb(new utb()); - } - } - function fMb(a, b) { - var c, d, e, f; - f = a.o; - c = a.p; - f < c ? f *= f : c *= c; - d = f + c; - f = b.o; - c = b.p; - f < c ? f *= f : c *= c; - e = f + c; - if (d < e) { - return -1; - } - if (d == e) { - return 0; - } - return 1; - } - function HLd(a, b) { - var c, d, e; - e = rud(a, b); - if (e >= 0) - return e; - if (a.Fk()) { - for (d = 0; d < a.i; ++d) { - c = a.Gk(BD(a.g[d], 56)); - if (PD(c) === PD(b)) { - return d; - } - } - } - return -1; - } - function Gtd(a, b, c) { - var d, e; - e = a.gc(); - if (b >= e) - throw vbb(new Cyd(b, e)); - if (a.hi()) { - d = a.Xc(c); - if (d >= 0 && d != b) { - throw vbb(new Wdb(kue)); - } - } - return a.mi(b, c); - } - function gx(a, b) { - this.a = BD(Qb(a), 245); - this.b = BD(Qb(b), 245); - if (a.vd(b) > 0 || a == (Lk(), Kk) || b == (_k(), $k)) { - throw vbb(new Wdb("Invalid range: " + nx(a, b))); - } - } - function mYb(a) { - var b, c; - this.b = new Rkb(); - this.c = a; - this.a = false; - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - this.a = this.a | b.k == (j0b(), h0b); - } - } - function GFb(a, b) { - var c, d, e; - c = nGb(new pGb(), a); - for (e = new olb(b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 121); - AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0), c), d)); - } - return c; - } - function Nac(a, b, c) { - var d, e, f; - for (e = new Sr(ur((b ? R_b(a) : U_b(a)).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - f = b ? d.c.i : d.d.i; - f.k == (j0b(), f0b) && $_b(f, c); - } - } - function Izc() { - Izc = ccb; - Gzc = new Kzc(ane, 0); - Hzc = new Kzc("PORT_POSITION", 1); - Fzc = new Kzc("NODE_SIZE_WHERE_SPACE_PERMITS", 2); - Ezc = new Kzc("NODE_SIZE", 3); - } - function F7c() { - F7c = ccb; - z7c = new G7c("AUTOMATIC", 0); - C7c = new G7c(jle, 1); - D7c = new G7c(kle, 2); - E7c = new G7c("TOP", 3); - A7c = new G7c(mle, 4); - B7c = new G7c(gle, 5); - } - function Hhb(a, b, c, d) { - Dhb(); - var e, f; - e = 0; - for (f = 0; f < c; f++) { - e = wbb(Ibb(xbb(b[f], Yje), xbb(d, Yje)), xbb(Tbb(e), Yje)); - a[f] = Tbb(e); - e = Pbb(e, 32); - } - return Tbb(e); - } - function zHb(a, b, c) { - var d, e; - e = 0; - for (d = 0; d < rHb; d++) { - e = $wnd.Math.max(e, pHb(a.a[b.g][d], c)); - } - b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.b)); - return e; - } - function Bub(a, b) { - var c, d; - lCb(b > 0); - if ((b & -b) == b) { - return QD(b * Cub(a, 31) * 4656612873077393e-25); - } - do { - c = Cub(a, 31); - d = c % b; - } while (c - d + (b - 1) < 0); - return QD(d); - } - function LCb(a) { - JCb(); - var b, c, d; - c = ":" + a; - d = ICb[c]; - if (d != null) { - return QD((uCb(d), d)); - } - d = GCb[c]; - b = d == null ? KCb(a) : QD((uCb(d), d)); - MCb(); - ICb[c] = b; - return b; - } - function qZb(a, b, c) { - Odd(c, "Compound graph preprocessor", 1); - a.a = new Hp(); - vZb(a, b, null); - pZb(a, b); - uZb(a); - yNb(b, (wtc(), zsc), a.a); - a.a = null; - Uhb(a.b); - Qdd(c); - } - function X$b(a, b, c) { - switch (c.g) { - case 1: - a.a = b.a / 2; - a.b = 0; - break; - case 2: - a.a = b.a; - a.b = b.b / 2; - break; - case 3: - a.a = b.a / 2; - a.b = b.b; - break; - case 4: - a.a = 0; - a.b = b.b / 2; - } - } - function tkc(a) { - var b, c, d; - for (d = BD(Qc(a.a, (Xjc(), Vjc)), 15).Kc(); d.Ob(); ) { - c = BD(d.Pb(), 101); - b = Bkc(c); - kkc(a, c, b[0], (Fkc(), Ckc), 0); - kkc(a, c, b[1], Ekc, 1); - } - } - function ukc(a) { - var b, c, d; - for (d = BD(Qc(a.a, (Xjc(), Wjc)), 15).Kc(); d.Ob(); ) { - c = BD(d.Pb(), 101); - b = Bkc(c); - kkc(a, c, b[0], (Fkc(), Ckc), 0); - kkc(a, c, b[1], Ekc, 1); - } - } - function tXc(a) { - switch (a.g) { - case 0: - return null; - case 1: - return new $Xc(); - case 2: - return new QXc(); - default: - throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g))); - } - } - function OZc(a, b, c) { - var d, e; - FZc(a, b - a.s, c - a.t); - for (e = new olb(a.n); e.a < e.c.c.length; ) { - d = BD(mlb(e), 211); - SZc(d, d.e + b - a.s); - TZc(d, d.f + c - a.t); - } - a.s = b; - a.t = c; - } - function JFb(a) { - var b, c, d, e, f; - c = 0; - for (e = new olb(a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 121); - d.d = c++; - } - b = IFb(a); - f = null; - b.c.length > 1 && (f = GFb(a, b)); - return f; - } - function dmd(a) { - var b; - if (!!a.f && a.f.kh()) { - b = BD(a.f, 49); - a.f = BD(xid(a, b), 82); - a.f != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.f)); - } - return a.f; - } - function emd(a) { - var b; - if (!!a.i && a.i.kh()) { - b = BD(a.i, 49); - a.i = BD(xid(a, b), 82); - a.i != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 7, b, a.i)); - } - return a.i; - } - function zUd(a) { - var b; - if (!!a.b && (a.b.Db & 64) != 0) { - b = a.b; - a.b = BD(xid(a, b), 18); - a.b != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 21, b, a.b)); - } - return a.b; - } - function uAd(a, b) { - var c, d, e; - if (a.d == null) { - ++a.e; - ++a.f; - } else { - d = b.Sh(); - BAd(a, a.f + 1); - e = (d & Ohe) % a.d.length; - c = a.d[e]; - !c && (c = a.d[e] = a.uj()); - c.Fc(b); - ++a.f; - } - } - function m3d(a, b, c) { - var d; - if (b.Kj()) { - return false; - } else if (b.Zj() != -2) { - d = b.zj(); - return d == null ? c == null : pb(d, c); - } else - return b.Hj() == a.e.Tg() && c == null; - } - function wo() { - var a; - Xj(16, Hie); - a = Kp(16); - this.b = KC(GF, Gie, 317, a, 0, 1); - this.c = KC(GF, Gie, 317, a, 0, 1); - this.a = null; - this.e = null; - this.i = 0; - this.f = a - 1; - this.g = 0; - } - function b0b(a) { - n_b.call(this); - this.k = (j0b(), h0b); - this.j = (Xj(6, Jie), new Skb(6)); - this.b = (Xj(2, Jie), new Skb(2)); - this.d = new L_b(); - this.f = new s0b(); - this.a = a; - } - function Scc(a) { - var b, c; - if (a.c.length <= 1) { - return; - } - b = Pcc(a, (Ucd(), Rcd)); - Rcc(a, BD(b.a, 19).a, BD(b.b, 19).a); - c = Pcc(a, Tcd); - Rcc(a, BD(c.a, 19).a, BD(c.b, 19).a); - } - function Vzc() { - Vzc = ccb; - Uzc = new Xzc("SIMPLE", 0); - Rzc = new Xzc(Tne, 1); - Szc = new Xzc("LINEAR_SEGMENTS", 2); - Qzc = new Xzc("BRANDES_KOEPF", 3); - Tzc = new Xzc(Aqe, 4); - } - function XDc(a, b, c) { - if (!ecd(BD(vNb(b, (Nyc(), Vxc)), 98))) { - WDc(a, b, Y_b(b, c)); - WDc(a, b, Y_b(b, (Ucd(), Rcd))); - WDc(a, b, Y_b(b, Acd)); - mmb(); - Okb(b.j, new jEc(a)); - } - } - function HVc(a, b, c, d) { - var e, f, g10; - e = d ? BD(Qc(a.a, b), 21) : BD(Qc(a.b, b), 21); - for (g10 = e.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 33); - if (BVc(a, c, f)) { - return true; - } - } - return false; - } - function FMd(a) { - var b, c; - for (c = new Fyd(a); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 87); - if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) { - return true; - } - } - return false; - } - function QTd(a) { - var b, c; - for (c = new Fyd(a); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 87); - if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) { - return true; - } - } - return false; - } - function FDc(a) { - var b, c, d; - b = 0; - for (d = new olb(a.c.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - b += sr(new Sr(ur(U_b(c).a.Kc(), new Sq()))); - } - return b / a.c.a.c.length; - } - function UPc(a) { - var b, c; - a.c || XPc(a); - c = new s7c(); - b = new olb(a.a); - mlb(b); - while (b.a < b.c.c.length) { - Dsb(c, BD(mlb(b), 407).a); - } - sCb(c.b != 0); - Nsb(c, c.c.b); - return c; - } - function J0c() { - J0c = ccb; - I0c = (A0c(), z0c); - G0c = new q0b(8); - new Osd((Y9c(), f9c), G0c); - new Osd(T9c, 8); - H0c = x0c; - E0c = n0c; - F0c = o0c; - D0c = new Osd(y8c, (Bcb(), false)); - } - function uld(a, b, c, d) { - switch (b) { - case 7: - return !a.e && (a.e = new y5d(B2, a, 7, 4)), a.e; - case 8: - return !a.d && (a.d = new y5d(B2, a, 8, 5)), a.d; - } - return Xkd(a, b, c, d); - } - function JQd(a) { - var b; - if (!!a.a && a.a.kh()) { - b = BD(a.a, 49); - a.a = BD(xid(a, b), 138); - a.a != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 5, b, a.a)); - } - return a.a; - } - function yde(a) { - if (a < 48) - return -1; - if (a > 102) - return -1; - if (a <= 57) - return a - 48; - if (a < 65) - return -1; - if (a <= 70) - return a - 65 + 10; - if (a < 97) - return -1; - return a - 97 + 10; - } - function Wj(a, b) { - if (a == null) { - throw vbb(new Heb("null key in entry: null=" + b)); - } else if (b == null) { - throw vbb(new Heb("null value in entry: " + a + "=null")); - } - } - function kr(a, b) { - var c, d; - while (a.Ob()) { - if (!b.Ob()) { - return false; - } - c = a.Pb(); - d = b.Pb(); - if (!(PD(c) === PD(d) || c != null && pb(c, d))) { - return false; - } - } - return !b.Ob(); - } - function jIb(a, b) { - var c; - c = OC(GC(UD, 1), Vje, 25, 15, [pHb(a.a[0], b), pHb(a.a[1], b), pHb(a.a[2], b)]); - if (a.d) { - c[0] = $wnd.Math.max(c[0], c[2]); - c[2] = c[0]; - } - return c; - } - function kIb(a, b) { - var c; - c = OC(GC(UD, 1), Vje, 25, 15, [qHb(a.a[0], b), qHb(a.a[1], b), qHb(a.a[2], b)]); - if (a.d) { - c[0] = $wnd.Math.max(c[0], c[2]); - c[2] = c[0]; - } - return c; - } - function mqc() { - mqc = ccb; - iqc = new oqc("GREEDY", 0); - hqc = new oqc(Une, 1); - kqc = new oqc(Tne, 2); - lqc = new oqc("MODEL_ORDER", 3); - jqc = new oqc("GREEDY_MODEL_ORDER", 4); - } - function iUc(a, b) { - var c, d, e; - a.b[b.g] = 1; - for (d = Jsb(b.d, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 188); - e = c.c; - a.b[e.g] == 1 ? Dsb(a.a, c) : a.b[e.g] == 2 ? a.b[e.g] = 1 : iUc(a, e); - } - } - function V9b(a, b) { - var c, d, e; - e = new Skb(b.gc()); - for (d = b.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 286); - c.c == c.f ? K9b(a, c, c.c) : L9b(a, c) || (e.c[e.c.length] = c, true); - } - return e; - } - function IZc(a, b, c) { - var d, e, f, g10, h; - h = a.r + b; - a.r += b; - a.d += c; - d = c / a.n.c.length; - e = 0; - for (g10 = new olb(a.n); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 211); - RZc(f, h, d, e); - ++e; - } - } - function tEb(a) { - var b, c, d; - zwb(a.b.a); - a.a = KC(PM, Uhe, 57, a.c.c.a.b.c.length, 0, 1); - b = 0; - for (d = new olb(a.c.c.a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 57); - c.f = b++; - } - } - function RVb(a) { - var b, c, d; - zwb(a.b.a); - a.a = KC(IP, Uhe, 81, a.c.a.a.b.c.length, 0, 1); - b = 0; - for (d = new olb(a.c.a.a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 81); - c.i = b++; - } - } - function P1c(a, b, c) { - var d; - Odd(c, "Shrinking tree compaction", 1); - if (Ccb(DD(vNb(b, (XNb(), VNb))))) { - N1c(a, b.f); - INb(b.f, (d = b.c, d)); - } else { - INb(b.f, b.c); - } - Qdd(c); - } - function mr(a) { - var b; - b = gr(a); - if (!Qr(a)) { - throw vbb(new qcb("position (0) must be less than the number of elements that remained (" + b + ")")); - } - return Rr(a); - } - function hNb(b, c, d) { - var e; - try { - return YMb(b, c + b.j, d + b.k); - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - e = a; - throw vbb(new qcb(e.g + Gle + c + She + d + ").")); - } else - throw vbb(a); - } - } - function iNb(b, c, d) { - var e; - try { - return ZMb(b, c + b.j, d + b.k); - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - e = a; - throw vbb(new qcb(e.g + Gle + c + She + d + ").")); - } else - throw vbb(a); - } - } - function jNb(b, c, d) { - var e; - try { - return $Mb(b, c + b.j, d + b.k); - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - e = a; - throw vbb(new qcb(e.g + Gle + c + She + d + ").")); - } else - throw vbb(a); - } - } - function s5b(a) { - switch (a.g) { - case 1: - return Ucd(), Tcd; - case 4: - return Ucd(), Acd; - case 3: - return Ucd(), zcd; - case 2: - return Ucd(), Rcd; - default: - return Ucd(), Scd; - } - } - function cjc(a, b, c) { - if (b.k == (j0b(), h0b) && c.k == g0b) { - a.d = _ic(b, (Ucd(), Rcd)); - a.b = _ic(b, Acd); - } - if (c.k == h0b && b.k == g0b) { - a.d = _ic(c, (Ucd(), Acd)); - a.b = _ic(c, Rcd); - } - } - function gjc(a, b) { - var c, d, e; - e = V_b(a, b); - for (d = e.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 11); - if (vNb(c, (wtc(), gtc)) != null || a1b(new b1b(c.b))) { - return true; - } - } - return false; - } - function QZc(a, b) { - dld(b, a.e + a.d + (a.c.c.length == 0 ? 0 : a.b)); - eld(b, a.f); - a.a = $wnd.Math.max(a.a, b.f); - a.d += b.g + (a.c.c.length == 0 ? 0 : a.b); - Ekb(a.c, b); - return true; - } - function XZc(a, b, c) { - var d, e, f, g10; - g10 = 0; - d = c / a.a.c.length; - for (f = new olb(a.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 187); - OZc(e, e.s, e.t + g10 * d); - IZc(e, a.d - e.r + b, d); - ++g10; - } - } - function H4b(a) { - var b, c, d, e, f; - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - b = 0; - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - e.p = b++; - } - } - } - function r6c(a, b) { - var c, d, e, f, g10, h; - e = b.length - 1; - g10 = 0; - h = 0; - for (d = 0; d <= e; d++) { - f = b[d]; - c = k6c(e, d) * x6c(1 - a, e - d) * x6c(a, d); - g10 += f.a * c; - h += f.b * c; - } - return new f7c(g10, h); - } - function jud(a, b) { - var c, d, e, f, g10; - c = b.gc(); - a.qi(a.i + c); - f = b.Kc(); - g10 = a.i; - a.i += c; - for (d = g10; d < a.i; ++d) { - e = f.Pb(); - mud(a, d, a.oi(d, e)); - a.bi(d, e); - a.ci(); - } - return c != 0; - } - function twd(a, b, c) { - var d, e, f; - if (a.ej()) { - d = a.Vi(); - f = a.fj(); - ++a.j; - a.Hi(d, a.oi(d, b)); - e = a.Zi(3, null, b, d, f); - !c ? c = e : c.Ei(e); - } else { - Avd(a, a.Vi(), b); - } - return c; - } - function WOd(a, b, c) { - var d, e, f; - d = BD(qud(VKd(a.a), b), 87); - f = (e = d.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)); - ((f.Db & 64) != 0 ? xid(a.b, f) : f) == c ? KQd(d) : NQd(d, c); - return f; - } - function Ewb(a, b, c, d, e, f, g10, h) { - var i10, j; - if (!d) { - return; - } - i10 = d.a[0]; - !!i10 && Ewb(a, b, c, i10, e, f, g10, h); - Fwb(a, c, d.d, e, f, g10, h) && b.Fc(d); - j = d.a[1]; - !!j && Ewb(a, b, c, j, e, f, g10, h); - } - function eAb(a, b) { - var c; - if (!a.a) { - c = KC(UD, Vje, 25, 0, 15, 1); - _ub(a.b.a, new iAb(c)); - c.sort(dcb(Ylb.prototype.te, Ylb, [])); - a.a = new Avb(c, a.d); - } - return pvb(a.a, b); - } - function YMb(b, c, d) { - try { - return Bbb(_Mb(b, c, d), 1); - } catch (a) { - a = ubb(a); - if (JD(a, 320)) { - throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle)); - } else - throw vbb(a); - } - } - function ZMb(b, c, d) { - try { - return Bbb(_Mb(b, c, d), 0); - } catch (a) { - a = ubb(a); - if (JD(a, 320)) { - throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle)); - } else - throw vbb(a); - } - } - function $Mb(b, c, d) { - try { - return Bbb(_Mb(b, c, d), 2); - } catch (a) { - a = ubb(a); - if (JD(a, 320)) { - throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle)); - } else - throw vbb(a); - } - } - function Nyd(b, c) { - if (b.g == -1) { - throw vbb(new Ydb()); - } - b.mj(); - try { - b.d._c(b.g, c); - b.f = b.d.j; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - throw vbb(new Apb()); - } else - throw vbb(a); - } - } - function rJc(a, b, c) { - Odd(c, "Linear segments node placement", 1); - a.b = BD(vNb(b, (wtc(), otc)), 304); - sJc(a, b); - nJc(a, b); - kJc(a, b); - qJc(a); - a.a = null; - a.b = null; - Qdd(c); - } - function Ee(a, b) { - var c, d, e, f; - f = a.gc(); - b.length < f && (b = eCb(new Array(f), b)); - e = b; - d = a.Kc(); - for (c = 0; c < f; ++c) { - NC(e, c, d.Pb()); - } - b.length > f && NC(b, f, null); - return b; - } - function Lu(a, b) { - var c, d; - d = a.gc(); - if (b == null) { - for (c = 0; c < d; c++) { - if (a.Xb(c) == null) { - return c; - } - } - } else { - for (c = 0; c < d; c++) { - if (pb(b, a.Xb(c))) { - return c; - } - } - } - return -1; - } - function Jd(a, b) { - var c, d, e; - c = b.cd(); - e = b.dd(); - d = a.xc(c); - if (!(PD(e) === PD(d) || e != null && pb(e, d))) { - return false; - } - if (d == null && !a._b(c)) { - return false; - } - return true; - } - function YC(a, b) { - var c, d, e; - if (b <= 22) { - c = a.l & (1 << b) - 1; - d = e = 0; - } else if (b <= 44) { - c = a.l; - d = a.m & (1 << b - 22) - 1; - e = 0; - } else { - c = a.l; - d = a.m; - e = a.h & (1 << b - 44) - 1; - } - return TC(c, d, e); - } - function yKb(a, b) { - switch (b.g) { - case 1: - return a.f.n.d + a.t; - case 3: - return a.f.n.a + a.t; - case 2: - return a.f.n.c + a.s; - case 4: - return a.f.n.b + a.s; - default: - return 0; - } - } - function aLb(a, b) { - var c, d; - d = b.c; - c = b.a; - switch (a.b.g) { - case 0: - c.d = a.e - d.a - d.d; - break; - case 1: - c.d += a.e; - break; - case 2: - c.c = a.e - d.a - d.d; - break; - case 3: - c.c = a.e + d.d; - } - } - function ZOb(a, b, c, d) { - var e, f; - this.a = b; - this.c = d; - e = a.a; - YOb(this, new f7c(-e.c, -e.d)); - P6c(this.b, c); - f = d / 2; - b.a ? b7c(this.b, 0, f) : b7c(this.b, f, 0); - Ekb(a.c, this); - } - function iXc() { - iXc = ccb; - hXc = new kXc(ane, 0); - fXc = new kXc(Vne, 1); - gXc = new kXc("EDGE_LENGTH_BY_POSITION", 2); - eXc = new kXc("CROSSING_MINIMIZATION_BY_POSITION", 3); - } - function Wqd(a, b) { - var c, d; - c = BD(oo(a.g, b), 33); - if (c) { - return c; - } - d = BD(oo(a.j, b), 118); - if (d) { - return d; - } - throw vbb(new cqd("Referenced shape does not exist: " + b)); - } - function rTb(a, b) { - if (a.c == b) { - return a.d; - } else if (a.d == b) { - return a.c; - } else { - throw vbb(new Wdb("Node 'one' must be either source or target of edge 'edge'.")); - } - } - function TMc(a, b) { - if (a.c.i == b) { - return a.d.i; - } else if (a.d.i == b) { - return a.c.i; - } else { - throw vbb(new Wdb("Node " + b + " is neither source nor target of edge " + a)); - } - } - function _lc(a, b) { - var c; - switch (b.g) { - case 2: - case 4: - c = a.a; - a.c.d.n.b < c.d.n.b && (c = a.c); - amc(a, b, (Ajc(), zjc), c); - break; - case 1: - case 3: - amc(a, b, (Ajc(), wjc), null); - } - } - function smc(a, b, c, d, e, f) { - var g10, h, i10, j, k; - g10 = qmc(b, c, f); - h = c == (Ucd(), Acd) || c == Tcd ? -1 : 1; - j = a[c.g]; - for (k = 0; k < j.length; k++) { - i10 = j[k]; - i10 > 0 && (i10 += e); - j[k] = g10; - g10 += h * (i10 + d); - } - } - function Uoc(a) { - var b, c, d; - d = a.f; - a.n = KC(UD, Vje, 25, d, 15, 1); - a.d = KC(UD, Vje, 25, d, 15, 1); - for (b = 0; b < d; b++) { - c = BD(Ikb(a.c.b, b), 29); - a.n[b] = Roc(a, c); - a.d[b] = Qoc(a, c); - } - } - function zjd(a, b) { - var c, d, e; - e = 0; - for (d = 2; d < b; d <<= 1) { - (a.Db & d) != 0 && ++e; - } - if (e == 0) { - for (c = b <<= 1; c <= 128; c <<= 1) { - if ((a.Db & c) != 0) { - return 0; - } - } - return -1; - } else { - return e; - } - } - function s3d(a, b) { - var c, d, e, f, g10; - g10 = S6d(a.e.Tg(), b); - f = null; - c = BD(a.g, 119); - for (e = 0; e < a.i; ++e) { - d = c[e]; - if (g10.rl(d.ak())) { - !f && (f = new yud()); - wtd(f, d); - } - } - !!f && Yxd(a, f); - } - function H9d(a) { - var b, c, d; - if (!a) - return null; - if (a.dc()) - return ""; - d = new Hfb(); - for (c = a.Kc(); c.Ob(); ) { - b = c.Pb(); - Efb(d, GD(b)); - d.a += " "; - } - return lcb(d, d.a.length - 1); - } - function Ty(a, b, c) { - var d, e, f, g10, h; - Uy(a); - for (e = (a.k == null && (a.k = KC(_I, nie, 78, 0, 0, 1)), a.k), f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - Ty(d, b, " " + c); - } - h = a.f; - !!h && Ty(h, b, c); - } - function LC(a, b) { - var c = new Array(b); - var d; - switch (a) { - case 14: - case 15: - d = 0; - break; - case 16: - d = false; - break; - default: - return c; - } - for (var e = 0; e < b; ++e) { - c[e] = d; - } - return c; - } - function PDb(a) { - var b, c, d; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - b.c.$b(); - } - fad(a.d) ? d = a.a.c : d = a.a.d; - Hkb(d, new dEb(a)); - a.c.Me(a); - QDb(a); - } - function sRb(a) { - var b, c, d, e; - for (c = new olb(a.e.c); c.a < c.c.c.length; ) { - b = BD(mlb(c), 282); - for (e = new olb(b.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 447); - lRb(d); - } - cRb(b); - } - } - function a$c(a) { - var b, c, d, e, f; - d = 0; - f = 0; - e = 0; - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 187); - f = $wnd.Math.max(f, b.r); - d += b.d + (e > 0 ? a.c : 0); - ++e; - } - a.b = d; - a.d = f; - } - function BZc(a, b) { - var c, d, e, f, g10; - d = 0; - e = 0; - c = 0; - for (g10 = new olb(b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 200); - d = $wnd.Math.max(d, f.e); - e += f.b + (c > 0 ? a.g : 0); - ++c; - } - a.c = e; - a.d = d; - } - function AHb(a, b) { - var c; - c = OC(GC(UD, 1), Vje, 25, 15, [zHb(a, (gHb(), dHb), b), zHb(a, eHb, b), zHb(a, fHb, b)]); - if (a.f) { - c[0] = $wnd.Math.max(c[0], c[2]); - c[2] = c[0]; - } - return c; - } - function lNb(b, c, d) { - var e; - try { - aNb(b, c + b.j, d + b.k, false, true); - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - e = a; - throw vbb(new qcb(e.g + Gle + c + She + d + ").")); - } else - throw vbb(a); - } - } - function mNb(b, c, d) { - var e; - try { - aNb(b, c + b.j, d + b.k, true, false); - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - e = a; - throw vbb(new qcb(e.g + Gle + c + She + d + ").")); - } else - throw vbb(a); - } - } - function d5b(a) { - var b; - if (!wNb(a, (Nyc(), xxc))) { - return; - } - b = BD(vNb(a, xxc), 21); - if (b.Hc((Hbd(), zbd))) { - b.Mc(zbd); - b.Fc(Bbd); - } else if (b.Hc(Bbd)) { - b.Mc(Bbd); - b.Fc(zbd); - } - } - function e5b(a) { - var b; - if (!wNb(a, (Nyc(), xxc))) { - return; - } - b = BD(vNb(a, xxc), 21); - if (b.Hc((Hbd(), Gbd))) { - b.Mc(Gbd); - b.Fc(Ebd); - } else if (b.Hc(Ebd)) { - b.Mc(Ebd); - b.Fc(Gbd); - } - } - function udc(a, b, c) { - Odd(c, "Self-Loop ordering", 1); - MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new ydc()), new Adc()), new Cdc()), new Edc()), new Gdc(a)); - Qdd(c); - } - function ikc(a, b, c, d) { - var e, f; - for (e = b; e < a.c.length; e++) { - f = (tCb(e, a.c.length), BD(a.c[e], 11)); - if (c.Mb(f)) { - d.c[d.c.length] = f; - } else { - return e; - } - } - return a.c.length; - } - function Kmc(a, b, c, d) { - var e, f, g10, h; - a.a == null && Nmc(a, b); - g10 = b.b.j.c.length; - f = c.d.p; - h = d.d.p; - e = h - 1; - e < 0 && (e = g10 - 1); - return f <= e ? a.a[e] - a.a[f] : a.a[g10 - 1] - a.a[f] + a.a[e]; - } - function ehd(a) { - var b, c; - if (!a.b) { - a.b = Qu(BD(a.f, 33).Ag().i); - for (c = new Fyd(BD(a.f, 33).Ag()); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 137); - Ekb(a.b, new dhd(b)); - } - } - return a.b; - } - function fhd(a) { - var b, c; - if (!a.e) { - a.e = Qu(Yod(BD(a.f, 33)).i); - for (c = new Fyd(Yod(BD(a.f, 33))); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 118); - Ekb(a.e, new thd(b)); - } - } - return a.e; - } - function ahd(a) { - var b, c; - if (!a.a) { - a.a = Qu(Vod(BD(a.f, 33)).i); - for (c = new Fyd(Vod(BD(a.f, 33))); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 33); - Ekb(a.a, new hhd(a, b)); - } - } - return a.a; - } - function dKd(b) { - var c; - if (!b.C && (b.D != null || b.B != null)) { - c = eKd(b); - if (c) { - b.yk(c); - } else { - try { - b.yk(null); - } catch (a) { - a = ubb(a); - if (!JD(a, 60)) - throw vbb(a); - } - } - } - return b.C; - } - function GJb(a) { - switch (a.q.g) { - case 5: - DJb(a, (Ucd(), Acd)); - DJb(a, Rcd); - break; - case 4: - EJb(a, (Ucd(), Acd)); - EJb(a, Rcd); - break; - default: - FJb(a, (Ucd(), Acd)); - FJb(a, Rcd); - } - } - function PKb(a) { - switch (a.q.g) { - case 5: - MKb(a, (Ucd(), zcd)); - MKb(a, Tcd); - break; - case 4: - NKb(a, (Ucd(), zcd)); - NKb(a, Tcd); - break; - default: - OKb(a, (Ucd(), zcd)); - OKb(a, Tcd); - } - } - function EXb(a, b) { - var c, d, e; - e = new d7c(); - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 37); - uXb(c, e.a, 0); - e.a += c.f.a + b; - e.b = $wnd.Math.max(e.b, c.f.b); - } - e.b > 0 && (e.b += b); - return e; - } - function GXb(a, b) { - var c, d, e; - e = new d7c(); - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 37); - uXb(c, 0, e.b); - e.b += c.f.b + b; - e.a = $wnd.Math.max(e.a, c.f.a); - } - e.a > 0 && (e.a += b); - return e; - } - function d_b(a) { - var b, c, d; - d = Ohe; - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - wNb(b, (wtc(), Zsc)) && (d = $wnd.Math.min(d, BD(vNb(b, Zsc), 19).a)); - } - return d; - } - function pHc(a, b) { - var c, d; - if (b.length == 0) { - return 0; - } - c = NHc(a.a, b[0], (Ucd(), Tcd)); - c += NHc(a.a, b[b.length - 1], zcd); - for (d = 0; d < b.length; d++) { - c += qHc(a, d, b); - } - return c; - } - function vQc() { - hQc(); - this.c = new Rkb(); - this.i = new Rkb(); - this.e = new zsb(); - this.f = new zsb(); - this.g = new zsb(); - this.j = new Rkb(); - this.a = new Rkb(); - this.b = new Lqb(); - this.k = new Lqb(); - } - function aKd(a, b) { - var c, d; - if (a.Db >> 16 == 6) { - return a.Cb.ih(a, 5, o5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? a.zh() : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function Wz(a) { - Rz(); - var b = a.e; - if (b && b.stack) { - var c = b.stack; - var d = b + "\n"; - c.substring(0, d.length) == d && (c = c.substring(d.length)); - return c.split("\n"); - } - return []; - } - function jeb(a) { - var b; - b = (qeb(), peb); - return b[a >>> 28] | b[a >> 24 & 15] << 4 | b[a >> 20 & 15] << 8 | b[a >> 16 & 15] << 12 | b[a >> 12 & 15] << 16 | b[a >> 8 & 15] << 20 | b[a >> 4 & 15] << 24 | b[a & 15] << 28; - } - function _jb(a) { - var b, c, d; - if (a.b != a.c) { - return; - } - d = a.a.length; - c = geb($wnd.Math.max(8, d)) << 1; - if (a.b != 0) { - b = _Bb(a.a, c); - $jb(a, b, d); - a.a = b; - a.b = 0; - } else { - dCb(a.a, c); - } - a.c = d; - } - function DKb(a, b) { - var c; - c = a.b; - return c.Xe((Y9c(), s9c)) ? c.Hf() == (Ucd(), Tcd) ? -c.rf().a - Edb(ED(c.We(s9c))) : b + Edb(ED(c.We(s9c))) : c.Hf() == (Ucd(), Tcd) ? -c.rf().a : b; - } - function P_b(a) { - var b; - if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) { - return BD(Ikb(a.b, 0), 70).a; - } - b = JZb(a); - if (b != null) { - return b; - } - return "" + (!a.c ? -1 : Jkb(a.c.a, a, 0)); - } - function C0b(a) { - var b; - if (a.f.c.length != 0 && !!BD(Ikb(a.f, 0), 70).a) { - return BD(Ikb(a.f, 0), 70).a; - } - b = JZb(a); - if (b != null) { - return b; - } - return "" + (!a.i ? -1 : Jkb(a.i.j, a, 0)); - } - function Ogc(a, b) { - var c, d; - if (b < 0 || b >= a.gc()) { - return null; - } - for (c = b; c < a.gc(); ++c) { - d = BD(a.Xb(c), 128); - if (c == a.gc() - 1 || !d.o) { - return new vgd(meb(c), d); - } - } - return null; - } - function uoc(a, b, c) { - var d, e, f, g10, h; - f = a.c; - h = c ? b : a; - d = c ? a : b; - for (e = h.p + 1; e < d.p; ++e) { - g10 = BD(Ikb(f.a, e), 10); - if (!(g10.k == (j0b(), d0b) || voc(g10))) { - return false; - } - } - return true; - } - function u$c(a) { - var b, c, d, e, f; - f = 0; - e = Qje; - d = 0; - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 187); - f += b.r + (d > 0 ? a.c : 0); - e = $wnd.Math.max(e, b.d); - ++d; - } - a.e = f; - a.b = e; - } - function shd(a) { - var b, c; - if (!a.b) { - a.b = Qu(BD(a.f, 118).Ag().i); - for (c = new Fyd(BD(a.f, 118).Ag()); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 137); - Ekb(a.b, new dhd(b)); - } - } - return a.b; - } - function Ctd(a, b) { - var c, d, e; - if (b.dc()) { - return LCd(), LCd(), KCd; - } else { - c = new zyd(a, b.gc()); - for (e = new Fyd(a); e.e != e.i.gc(); ) { - d = Dyd(e); - b.Hc(d) && wtd(c, d); - } - return c; - } - } - function bkd(a, b, c, d) { - if (b == 0) { - return d ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), FAd(a.o)); - } - return fid(a, b, c, d); - } - function Tnd(a) { - var b, c; - if (a.rb) { - for (b = 0, c = a.rb.i; b < c; ++b) { - Cmd(qud(a.rb, b)); - } - } - if (a.vb) { - for (b = 0, c = a.vb.i; b < c; ++b) { - Cmd(qud(a.vb, b)); - } - } - u1d((O6d(), M6d), a); - a.Bb |= 1; - } - function _nd(a, b, c, d, e, f, g10, h, i10, j, k, l, m, n) { - aod(a, b, d, null, e, f, g10, h, i10, j, m, true, n); - CUd(a, k); - JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2); - !!c && DUd(a, c); - EUd(a, l); - return a; - } - function jZd(b) { - var c, d; - if (b == null) { - return null; - } - d = 0; - try { - d = Icb(b, Rie, Ohe) & aje; - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - c = rfb(b); - d = c[0]; - } else - throw vbb(a); - } - return bdb(d); - } - function kZd(b) { - var c, d; - if (b == null) { - return null; - } - d = 0; - try { - d = Icb(b, Rie, Ohe) & aje; - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - c = rfb(b); - d = c[0]; - } else - throw vbb(a); - } - return bdb(d); - } - function bD(a, b) { - var c, d, e; - e = a.h - b.h; - if (e < 0) { - return false; - } - c = a.l - b.l; - d = a.m - b.m + (c >> 22); - e += d >> 22; - if (e < 0) { - return false; - } - a.l = c & Eje; - a.m = d & Eje; - a.h = e & Fje; - return true; - } - function Fwb(a, b, c, d, e, f, g10) { - var h, i10; - if (b.Ae() && (i10 = a.a.ue(c, d), i10 < 0 || !e && i10 == 0)) { - return false; - } - if (b.Be() && (h = a.a.ue(c, f), h > 0 || !g10 && h == 0)) { - return false; - } - return true; - } - function Vcc(a, b) { - Occ(); - var c; - c = a.j.g - b.j.g; - if (c != 0) { - return 0; - } - switch (a.j.g) { - case 2: - return Ycc(b, Ncc) - Ycc(a, Ncc); - case 4: - return Ycc(a, Mcc) - Ycc(b, Mcc); - } - return 0; - } - function Tqc(a) { - switch (a.g) { - case 0: - return Mqc; - case 1: - return Nqc; - case 2: - return Oqc; - case 3: - return Pqc; - case 4: - return Qqc; - case 5: - return Rqc; - default: - return null; - } - } - function End(a, b, c) { - var d, e; - d = (e = new rUd(), yId(e, b), pnd(e, c), wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), e), e); - AId(d, 0); - DId(d, 1); - CId(d, true); - BId(d, true); - return d; - } - function tud(a, b) { - var c, d; - if (b >= a.i) - throw vbb(new $zd(b, a.i)); - ++a.j; - c = a.g[b]; - d = a.i - b - 1; - d > 0 && $fb(a.g, b + 1, a.g, b, d); - NC(a.g, --a.i, null); - a.fi(b, c); - a.ci(); - return c; - } - function UId(a, b) { - var c, d; - if (a.Db >> 16 == 17) { - return a.Cb.ih(a, 21, c5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? a.zh() : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function iDb(a) { - var b, c, d, e; - mmb(); - Okb(a.c, a.a); - for (e = new olb(a.c); e.a < e.c.c.length; ) { - d = mlb(e); - for (c = new olb(a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 679); - b.Ke(d); - } - } - } - function pXb(a) { - var b, c, d, e; - mmb(); - Okb(a.c, a.a); - for (e = new olb(a.c); e.a < e.c.c.length; ) { - d = mlb(e); - for (c = new olb(a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 369); - b.Ke(d); - } - } - } - function AGb(a) { - var b, c, d, e, f; - e = Ohe; - f = null; - for (d = new olb(a.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 213); - if (c.d.j ^ c.e.j) { - b = c.e.e - c.d.e - c.a; - if (b < e) { - e = b; - f = c; - } - } - } - return f; - } - function OSb() { - OSb = ccb; - MSb = new Nsd(Mme, (Bcb(), false)); - ISb = new Nsd(Nme, 100); - KSb = (yTb(), wTb); - JSb = new Nsd(Ome, KSb); - LSb = new Nsd(Pme, qme); - NSb = new Nsd(Qme, meb(Ohe)); - } - function ric(a, b, c) { - var d, e, f, g10, h, i10, j, k; - j = 0; - for (e = a.a[b], f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - k = CHc(d, c); - for (i10 = k.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 11); - Rhb(a.f, h, meb(j++)); - } - } - } - function uqd(a, b, c) { - var d, e, f, g10; - if (c) { - e = c.a.length; - d = new Yge(e); - for (g10 = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g10.Ob(); ) { - f = BD(g10.Pb(), 19); - Rc(a, b, Vpd(tB(c, f.a))); - } - } - } - function vqd(a, b, c) { - var d, e, f, g10; - if (c) { - e = c.a.length; - d = new Yge(e); - for (g10 = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g10.Ob(); ) { - f = BD(g10.Pb(), 19); - Rc(a, b, Vpd(tB(c, f.a))); - } - } - } - function Bkc(a) { - gkc(); - var b; - b = BD(Ee(Ec(a.k), KC(F1, bne, 61, 2, 0, 1)), 122); - Klb(b, 0, b.length, null); - if (b[0] == (Ucd(), Acd) && b[1] == Tcd) { - NC(b, 0, Tcd); - NC(b, 1, Acd); - } - return b; - } - function JHc(a, b, c) { - var d, e, f; - e = HHc(a, b, c); - f = KHc(a, e); - yHc(a.b); - cIc(a, b, c); - mmb(); - Okb(e, new hIc(a)); - d = KHc(a, e); - yHc(a.b); - cIc(a, c, b); - return new vgd(meb(f), meb(d)); - } - function jJc() { - jJc = ccb; - gJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b)); - hJc = new Msd("linearSegments.inputPrio", meb(0)); - iJc = new Msd("linearSegments.outputPrio", meb(0)); - } - function yRc() { - yRc = ccb; - uRc = new ARc("P1_TREEIFICATION", 0); - vRc = new ARc("P2_NODE_ORDERING", 1); - wRc = new ARc("P3_NODE_PLACEMENT", 2); - xRc = new ARc("P4_EDGE_ROUTING", 3); - } - function ZWc() { - ZWc = ccb; - UWc = (Y9c(), C9c); - XWc = T9c; - NWc = Y8c; - OWc = _8c; - PWc = b9c; - MWc = W8c; - QWc = e9c; - TWc = x9c; - KWc = (HWc(), wWc); - LWc = xWc; - RWc = zWc; - SWc = BWc; - VWc = CWc; - WWc = DWc; - YWc = FWc; - } - function rbd() { - rbd = ccb; - qbd = new tbd("UNKNOWN", 0); - nbd = new tbd("ABOVE", 1); - obd = new tbd("BELOW", 2); - pbd = new tbd("INLINE", 3); - new Msd("org.eclipse.elk.labelSide", qbd); - } - function rud(a, b) { - var c; - if (a.ni() && b != null) { - for (c = 0; c < a.i; ++c) { - if (pb(b, a.g[c])) { - return c; - } - } - } else { - for (c = 0; c < a.i; ++c) { - if (PD(a.g[c]) === PD(b)) { - return c; - } - } - } - return -1; - } - function DZb(a, b, c) { - var d, e; - if (b.c == (KAc(), IAc) && c.c == HAc) { - return -1; - } else if (b.c == HAc && c.c == IAc) { - return 1; - } - d = HZb(b.a, a.a); - e = HZb(c.a, a.a); - return b.c == IAc ? e - d : d - e; - } - function Z_b(a, b, c) { - if (!!c && (b < 0 || b > c.a.c.length)) { - throw vbb(new Wdb("index must be >= 0 and <= layer node count")); - } - !!a.c && Lkb(a.c.a, a); - a.c = c; - !!c && Dkb(c.a, b, a); - } - function p7b(a, b) { - var c, d, e; - for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - e = BD(b.Kb(c), 10); - return new cc(Qb(e.n.b + e.o.b / 2)); - } - return wb(), wb(), vb; - } - function rMc(a, b) { - this.c = new Lqb(); - this.a = a; - this.b = b; - this.d = BD(vNb(a, (wtc(), otc)), 304); - PD(vNb(a, (Nyc(), yxc))) === PD((_qc(), Zqc)) ? this.e = new bNc() : this.e = new WMc(); - } - function $dd(a, b) { - var c, d, e, f; - f = 0; - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 33); - f += $wnd.Math.pow(c.g * c.f - b, 2); - } - e = $wnd.Math.sqrt(f / (a.c.length - 1)); - return e; - } - function bgd(a, b) { - var c, d; - d = null; - if (a.Xe((Y9c(), O9c))) { - c = BD(a.We(O9c), 94); - c.Xe(b) && (d = c.We(b)); - } - d == null && !!a.yf() && (d = a.yf().We(b)); - d == null && (d = Ksd(b)); - return d; - } - function Vt(b, c) { - var d, e; - d = b.Zc(c); - try { - e = d.Pb(); - d.Qb(); - return e; - } catch (a) { - a = ubb(a); - if (JD(a, 109)) { - throw vbb(new qcb("Can't remove element " + c)); - } else - throw vbb(a); - } - } - function qA(a, b) { - var c, d, e; - d = new eB(); - e = new fB(d.q.getFullYear() - nje, d.q.getMonth(), d.q.getDate()); - c = pA(a, b, e); - if (c == 0 || c < b.length) { - throw vbb(new Wdb(b)); - } - return e; - } - function _tb(a, b) { - var c, d, e; - uCb(b); - lCb(b != a); - e = a.b.c.length; - for (d = b.Kc(); d.Ob(); ) { - c = d.Pb(); - Ekb(a.b, uCb(c)); - } - if (e != a.b.c.length) { - aub(a, 0); - return true; - } - return false; - } - function bTb() { - bTb = ccb; - VSb = (Y9c(), O8c); - new Osd(B8c, (Bcb(), true)); - YSb = Y8c; - ZSb = _8c; - $Sb = b9c; - XSb = W8c; - _Sb = e9c; - aTb = x9c; - USb = (OSb(), MSb); - SSb = JSb; - TSb = LSb; - WSb = NSb; - RSb = ISb; - } - function MZb(a, b) { - if (b == a.c) { - return a.d; - } else if (b == a.d) { - return a.c; - } else { - throw vbb(new Wdb("'port' must be either the source port or target port of the edge.")); - } - } - function C3b(a, b, c) { - var d, e; - e = a.o; - d = a.d; - switch (b.g) { - case 1: - return -d.d - c; - case 3: - return e.b + d.a + c; - case 2: - return e.a + d.c + c; - case 4: - return -d.b - c; - default: - return 0; - } - } - function H6b(a, b, c, d) { - var e, f, g10, h; - $_b(b, BD(d.Xb(0), 29)); - h = d.bd(1, d.gc()); - for (f = BD(c.Kb(b), 20).Kc(); f.Ob(); ) { - e = BD(f.Pb(), 17); - g10 = e.c.i == b ? e.d.i : e.c.i; - H6b(a, g10, c, h); - } - } - function Xec(a) { - var b; - b = new Lqb(); - if (wNb(a, (wtc(), ttc))) { - return BD(vNb(a, ttc), 83); - } - MAb(JAb(new YAb(null, new Kub(a.j, 16)), new Zec()), new _ec(b)); - yNb(a, ttc, b); - return b; - } - function cmd(a, b) { - var c, d; - if (a.Db >> 16 == 6) { - return a.Cb.ih(a, 6, B2, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Lhd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function Eod(a, b) { - var c, d; - if (a.Db >> 16 == 7) { - return a.Cb.ih(a, 1, C2, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Nhd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function lpd(a, b) { - var c, d; - if (a.Db >> 16 == 9) { - return a.Cb.ih(a, 9, E2, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Phd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function mQd(a, b) { - var c, d; - if (a.Db >> 16 == 5) { - return a.Cb.ih(a, 9, h5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), VFd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function KHd(a, b) { - var c, d; - if (a.Db >> 16 == 3) { - return a.Cb.ih(a, 0, k5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), OFd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function Snd(a, b) { - var c, d; - if (a.Db >> 16 == 7) { - return a.Cb.ih(a, 6, o5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), cGd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function ird() { - this.a = new bqd(); - this.g = new wo(); - this.j = new wo(); - this.b = new Lqb(); - this.d = new wo(); - this.i = new wo(); - this.k = new Lqb(); - this.c = new Lqb(); - this.e = new Lqb(); - this.f = new Lqb(); - } - function MCd(a, b, c) { - var d, e, f; - c < 0 && (c = 0); - f = a.i; - for (e = c; e < f; e++) { - d = qud(a, e); - if (b == null) { - if (d == null) { - return e; - } - } else if (PD(b) === PD(d) || pb(b, d)) { - return e; - } - } - return -1; - } - function b1d(a, b) { - var c, d; - c = b.Hh(a.a); - if (!c) { - return null; - } else { - d = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Awe)); - return dfb(Bwe, d) ? u1d(a, bKd(b.Hj())) : d; - } - } - function p6d(a, b) { - var c, d; - if (b) { - if (b == a) { - return true; - } - c = 0; - for (d = BD(b, 49).eh(); !!d && d != b; d = d.eh()) { - if (++c > Wje) { - return p6d(a, d); - } - if (d == a) { - return true; - } - } - } - return false; - } - function HKb(a) { - CKb(); - switch (a.q.g) { - case 5: - EKb(a, (Ucd(), Acd)); - EKb(a, Rcd); - break; - case 4: - FKb(a, (Ucd(), Acd)); - FKb(a, Rcd); - break; - default: - GKb(a, (Ucd(), Acd)); - GKb(a, Rcd); - } - } - function LKb(a) { - CKb(); - switch (a.q.g) { - case 5: - IKb(a, (Ucd(), zcd)); - IKb(a, Tcd); - break; - case 4: - JKb(a, (Ucd(), zcd)); - JKb(a, Tcd); - break; - default: - KKb(a, (Ucd(), zcd)); - KKb(a, Tcd); - } - } - function XQb(a) { - var b, c; - b = BD(vNb(a, (wSb(), pSb)), 19); - if (b) { - c = b.a; - c == 0 ? yNb(a, (HSb(), GSb), new Gub()) : yNb(a, (HSb(), GSb), new Hub(c)); - } else { - yNb(a, (HSb(), GSb), new Hub(1)); - } - } - function V$b(a, b) { - var c; - c = a.i; - switch (b.g) { - case 1: - return -(a.n.b + a.o.b); - case 2: - return a.n.a - c.o.a; - case 3: - return a.n.b - c.o.b; - case 4: - return -(a.n.a + a.o.a); - } - return 0; - } - function hbc(a, b) { - switch (a.g) { - case 0: - return b == (Ctc(), ytc) ? dbc : ebc; - case 1: - return b == (Ctc(), ytc) ? dbc : cbc; - case 2: - return b == (Ctc(), ytc) ? cbc : ebc; - default: - return cbc; - } - } - function v$c(a, b) { - var c, d, e; - Lkb(a.a, b); - a.e -= b.r + (a.a.c.length == 0 ? 0 : a.c); - e = ere; - for (d = new olb(a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 187); - e = $wnd.Math.max(e, c.d); - } - a.b = e; - } - function Lld(a, b) { - var c, d; - if (a.Db >> 16 == 3) { - return a.Cb.ih(a, 12, E2, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Khd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function Uod(a, b) { - var c, d; - if (a.Db >> 16 == 11) { - return a.Cb.ih(a, 10, E2, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (Thd(), Ohd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function PSd(a, b) { - var c, d; - if (a.Db >> 16 == 10) { - return a.Cb.ih(a, 11, c5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), aGd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function qUd(a, b) { - var c, d; - if (a.Db >> 16 == 10) { - return a.Cb.ih(a, 12, n5, b); - } - return d = zUd(BD(XKd((c = BD(Ajd(a, 16), 26), !c ? (jGd(), dGd) : c), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b); - } - function wId(a) { - var b; - if ((a.Bb & 1) == 0 && !!a.r && a.r.kh()) { - b = BD(a.r, 49); - a.r = BD(xid(a, b), 138); - a.r != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.r)); - } - return a.r; - } - function yHb(a, b, c) { - var d; - d = OC(GC(UD, 1), Vje, 25, 15, [BHb(a, (gHb(), dHb), b, c), BHb(a, eHb, b, c), BHb(a, fHb, b, c)]); - if (a.f) { - d[0] = $wnd.Math.max(d[0], d[2]); - d[2] = d[0]; - } - return d; - } - function O9b(a, b) { - var c, d, e; - e = V9b(a, b); - if (e.c.length == 0) { - return; - } - Okb(e, new pac()); - c = e.c.length; - for (d = 0; d < c; d++) { - K9b(a, (tCb(d, e.c.length), BD(e.c[d], 286)), R9b(a, e, d)); - } - } - function qkc(a) { - var b, c, d, e; - for (e = BD(Qc(a.a, (Xjc(), Sjc)), 15).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 101); - for (c = Ec(d.k).Kc(); c.Ob(); ) { - b = BD(c.Pb(), 61); - kkc(a, d, b, (Fkc(), Dkc), 1); - } - } - } - function voc(a) { - var b, c; - if (a.k == (j0b(), g0b)) { - for (c = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - if (!OZb(b) && a.c == LZb(b, a).c) { - return true; - } - } - } - return false; - } - function JNc(a) { - var b, c; - if (a.k == (j0b(), g0b)) { - for (c = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - if (!OZb(b) && b.c.i.c == b.d.i.c) { - return true; - } - } - } - return false; - } - function HUc(a, b) { - var c, d, e, f; - Odd(b, "Dull edge routing", 1); - for (f = Jsb(a.b, 0); f.b != f.d.c; ) { - e = BD(Xsb(f), 86); - for (d = Jsb(e.d, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 188); - Osb(c.a); - } - } - } - function xqd(a, b) { - var c, d, e, f, g10; - if (b) { - e = b.a.length; - c = new Yge(e); - for (g10 = (c.b - c.a) * c.c < 0 ? (Xge(), Wge) : new she(c); g10.Ob(); ) { - f = BD(g10.Pb(), 19); - d = Zpd(b, f.a); - !!d && ard(a, d); - } - } - } - function DZd() { - tZd(); - var a, b; - xZd((NFd(), MFd)); - wZd(MFd); - Tnd(MFd); - FQd = (jGd(), YFd); - for (b = new olb(rZd); b.a < b.c.c.length; ) { - a = BD(mlb(b), 241); - QQd(a, YFd, null); - } - return true; - } - function eD(a, b) { - var c, d, e, f, g10, h, i10, j; - i10 = a.h >> 19; - j = b.h >> 19; - if (i10 != j) { - return j - i10; - } - e = a.h; - h = b.h; - if (e != h) { - return e - h; - } - d = a.m; - g10 = b.m; - if (d != g10) { - return d - g10; - } - c = a.l; - f = b.l; - return c - f; - } - function fFb() { - fFb = ccb; - eFb = (rFb(), oFb); - dFb = new Nsd(Yke, eFb); - cFb = (UEb(), TEb); - bFb = new Nsd(Zke, cFb); - aFb = (MEb(), LEb); - _Eb = new Nsd($ke, aFb); - $Eb = new Nsd(_ke, (Bcb(), true)); - } - function cfc(a, b, c) { - var d, e; - d = b * c; - if (JD(a.g, 145)) { - e = ugc(a); - if (e.f.d) { - e.f.a || (a.d.a += d + ple); - } else { - a.d.d -= d + ple; - a.d.a += d + ple; - } - } else if (JD(a.g, 10)) { - a.d.d -= d; - a.d.a += 2 * d; - } - } - function vmc(a, b, c) { - var d, e, f, g10, h; - e = a[c.g]; - for (h = new olb(b.d); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 101); - f = g10.i; - if (!!f && f.i == c) { - d = g10.d[c.g]; - e[d] = $wnd.Math.max(e[d], f.j.b); - } - } - } - function AZc(a, b) { - var c, d, e, f, g10; - d = 0; - e = 0; - c = 0; - for (g10 = new olb(b.d); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 443); - a$c(f); - d = $wnd.Math.max(d, f.b); - e += f.d + (c > 0 ? a.g : 0); - ++c; - } - b.b = d; - b.e = e; - } - function to(a) { - var b, c, d; - d = a.b; - if (Lp(a.i, d.length)) { - c = d.length * 2; - a.b = KC(GF, Gie, 317, c, 0, 1); - a.c = KC(GF, Gie, 317, c, 0, 1); - a.f = c - 1; - a.i = 0; - for (b = a.a; b; b = b.c) { - po(a, b, b); - } - ++a.g; - } - } - function cNb(a, b, c, d) { - var e, f, g10, h; - for (e = 0; e < b.o; e++) { - f = e - b.j + c; - for (g10 = 0; g10 < b.p; g10++) { - h = g10 - b.k + d; - YMb(b, e, g10) ? jNb(a, f, h) || lNb(a, f, h) : $Mb(b, e, g10) && (hNb(a, f, h) || mNb(a, f, h)); - } - } - } - function Ooc(a, b, c) { - var d; - d = b.c.i; - if (d.k == (j0b(), g0b)) { - yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)); - yNb(a, Wsc, BD(vNb(d, Wsc), 11)); - } else { - yNb(a, (wtc(), Vsc), b.c); - yNb(a, Wsc, c.d); - } - } - function l6c(a, b, c) { - i6c(); - var d, e, f, g10, h, i10; - g10 = b / 2; - f = c / 2; - d = $wnd.Math.abs(a.a); - e = $wnd.Math.abs(a.b); - h = 1; - i10 = 1; - d > g10 && (h = g10 / d); - e > f && (i10 = f / e); - Y6c(a, $wnd.Math.min(h, i10)); - return a; - } - function ond() { - Smd(); - var b, c; - try { - c = BD(mUd((yFd(), xFd), yte), 2014); - if (c) { - return c; - } - } catch (a) { - a = ubb(a); - if (JD(a, 102)) { - b = a; - uvd((h0d(), b)); - } else - throw vbb(a); - } - return new knd(); - } - function Y9d() { - A9d(); - var b, c; - try { - c = BD(mUd((yFd(), xFd), Ewe), 2024); - if (c) { - return c; - } - } catch (a) { - a = ubb(a); - if (JD(a, 102)) { - b = a; - uvd((h0d(), b)); - } else - throw vbb(a); - } - return new U9d(); - } - function qZd() { - Smd(); - var b, c; - try { - c = BD(mUd((yFd(), xFd), _ve), 1941); - if (c) { - return c; - } - } catch (a) { - a = ubb(a); - if (JD(a, 102)) { - b = a; - uvd((h0d(), b)); - } else - throw vbb(a); - } - return new mZd(); - } - function HQd(a, b, c) { - var d, e; - e = a.e; - a.e = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 4, e, b); - !c ? c = d : c.Ei(d); - } - e != b && (b ? c = QQd(a, MQd(a, b), c) : c = QQd(a, a.a, c)); - return c; - } - function nB() { - eB.call(this); - this.e = -1; - this.a = false; - this.p = Rie; - this.k = -1; - this.c = -1; - this.b = -1; - this.g = false; - this.f = -1; - this.j = -1; - this.n = -1; - this.i = -1; - this.d = -1; - this.o = Rie; - } - function qEb(a, b) { - var c, d, e; - d = a.b.d.d; - a.a || (d += a.b.d.a); - e = b.b.d.d; - b.a || (e += b.b.d.a); - c = Kdb(d, e); - if (c == 0) { - if (!a.a && b.a) { - return -1; - } else if (!b.a && a.a) { - return 1; - } - } - return c; - } - function eOb(a, b) { - var c, d, e; - d = a.b.b.d; - a.a || (d += a.b.b.a); - e = b.b.b.d; - b.a || (e += b.b.b.a); - c = Kdb(d, e); - if (c == 0) { - if (!a.a && b.a) { - return -1; - } else if (!b.a && a.a) { - return 1; - } - } - return c; - } - function PVb(a, b) { - var c, d, e; - d = a.b.g.d; - a.a || (d += a.b.g.a); - e = b.b.g.d; - b.a || (e += b.b.g.a); - c = Kdb(d, e); - if (c == 0) { - if (!a.a && b.a) { - return -1; - } else if (!b.a && a.a) { - return 1; - } - } - return c; - } - function ZTb() { - ZTb = ccb; - WTb = c3c(e3c(e3c(e3c(new j3c(), (qUb(), oUb), (S8b(), m8b)), oUb, q8b), pUb, x8b), pUb, a8b); - YTb = e3c(e3c(new j3c(), oUb, S7b), oUb, b8b); - XTb = c3c(new j3c(), pUb, d8b); - } - function s3b(a) { - var b, c, d, e, f; - b = BD(vNb(a, (wtc(), Csc)), 83); - f = a.n; - for (d = b.Cc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 306); - e = c.i; - e.c += f.a; - e.d += f.b; - c.c ? VHb(c) : XHb(c); - } - yNb(a, Csc, null); - } - function qmc(a, b, c) { - var d, e; - e = a.b; - d = e.d; - switch (b.g) { - case 1: - return -d.d - c; - case 2: - return e.o.a + d.c + c; - case 3: - return e.o.b + d.a + c; - case 4: - return -d.b - c; - default: - return -1; - } - } - function BXc(a) { - var b, c, d, e, f; - d = 0; - e = dme; - if (a.b) { - for (b = 0; b < 360; b++) { - c = b * 0.017453292519943295; - zXc(a, a.d, 0, 0, dre, c); - f = a.b.ig(a.d); - if (f < e) { - d = c; - e = f; - } - } - } - zXc(a, a.d, 0, 0, dre, d); - } - function E$c(a, b) { - var c, d, e, f; - f = new Lqb(); - b.e = null; - b.f = null; - for (d = new olb(b.i); d.a < d.c.c.length; ) { - c = BD(mlb(d), 65); - e = BD(Ohb(a.g, c.a), 46); - c.a = D6c(c.b); - Rhb(f, c.a, e); - } - a.g = f; - } - function t$c(a, b, c) { - var d, e, f, g10, h, i10; - e = b - a.e; - f = e / a.d.c.length; - g10 = 0; - for (i10 = new olb(a.d); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 443); - d = a.b - h.b + c; - _Zc(h, h.e + g10 * f, h.f); - XZc(h, f, d); - ++g10; - } - } - function YBd(a) { - var b; - a.f.qj(); - if (a.b != -1) { - ++a.b; - b = a.f.d[a.a]; - if (a.b < b.i) { - return; - } - ++a.a; - } - for (; a.a < a.f.d.length; ++a.a) { - b = a.f.d[a.a]; - if (!!b && b.i != 0) { - a.b = 0; - return; - } - } - a.b = -1; - } - function j0d(a, b) { - var c, d, e; - e = b.c.length; - c = l0d(a, e == 0 ? "" : (tCb(0, b.c.length), GD(b.c[0]))); - for (d = 1; d < e && !!c; ++d) { - c = BD(c, 49).oh((tCb(d, b.c.length), GD(b.c[d]))); - } - return c; - } - function rEc(a, b) { - var c, d; - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - a.c[c.c.p][c.p].a = Aub(a.i); - a.c[c.c.p][c.p].d = Edb(a.c[c.c.p][c.p].a); - a.c[c.c.p][c.p].b = 1; - } - } - function _dd(a, b) { - var c, d, e, f; - f = 0; - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 157); - f += $wnd.Math.pow(red(c) * qed(c) - b, 2); - } - e = $wnd.Math.sqrt(f / (a.c.length - 1)); - return e; - } - function LHc(a, b, c, d) { - var e, f, g10; - f = GHc(a, b, c, d); - g10 = MHc(a, f); - bIc(a, b, c, d); - yHc(a.b); - mmb(); - Okb(f, new lIc(a)); - e = MHc(a, f); - bIc(a, c, b, d); - yHc(a.b); - return new vgd(meb(g10), meb(e)); - } - function cJc(a, b, c) { - var d, e; - Odd(c, "Interactive node placement", 1); - a.a = BD(vNb(b, (wtc(), otc)), 304); - for (e = new olb(b.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - bJc(a, d); - } - Qdd(c); - } - function MVc(a, b) { - var c; - Odd(b, "General Compactor", 1); - b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - c = qWc(BD(hkd(a, (ZWc(), LWc)), 380)); - c.hg(a); - b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - } - function Dfd(a, b, c) { - var d, e; - nmd(a, a.j + b, a.k + c); - for (e = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 469); - ukd(d, d.a + b, d.b + c); - } - gmd(a, a.b + b, a.c + c); - } - function vld(a, b, c, d) { - switch (c) { - case 7: - return !a.e && (a.e = new y5d(B2, a, 7, 4)), Sxd(a.e, b, d); - case 8: - return !a.d && (a.d = new y5d(B2, a, 8, 5)), Sxd(a.d, b, d); - } - return Fkd(a, b, c, d); - } - function wld(a, b, c, d) { - switch (c) { - case 7: - return !a.e && (a.e = new y5d(B2, a, 7, 4)), Txd(a.e, b, d); - case 8: - return !a.d && (a.d = new y5d(B2, a, 8, 5)), Txd(a.d, b, d); - } - return Gkd(a, b, c, d); - } - function lqd(a, b, c) { - var d, e, f, g10, h; - if (c) { - f = c.a.length; - d = new Yge(f); - for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - e = Zpd(c, g10.a); - !!e && drd(a, e, b); - } - } - } - function HAd(a, b, c) { - var d, e, f, g10, h; - a.qj(); - f = b == null ? 0 : tb(b); - if (a.f > 0) { - g10 = (f & Ohe) % a.d.length; - e = wAd(a, g10, f, b); - if (e) { - h = e.ed(c); - return h; - } - } - d = a.tj(f, b, c); - a.c.Fc(d); - return null; - } - function t1d(a, b) { - var c, d, e, f; - switch (o1d(a, b)._k()) { - case 3: - case 2: { - c = OKd(b); - for (e = 0, f = c.i; e < f; ++e) { - d = BD(qud(c, e), 34); - if ($1d(q1d(a, d)) == 5) { - return d; - } - } - break; - } - } - return null; - } - function Qs(a) { - var b, c, d, e, f; - if (Lp(a.f, a.b.length)) { - d = KC(BG, Gie, 330, a.b.length * 2, 0, 1); - a.b = d; - e = d.length - 1; - for (c = a.a; c != a; c = c.Rd()) { - f = BD(c, 330); - b = f.d & e; - f.a = d[b]; - d[b] = f; - } - } - } - function DJb(a, b) { - var c, d, e, f; - f = 0; - for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 111); - f = $wnd.Math.max(f, d.e.a + d.b.rf().a); - } - c = BD(Mpb(a.b, b), 124); - c.n.b = 0; - c.a.a = f; - } - function MKb(a, b) { - var c, d, e, f; - c = 0; - for (f = BD(BD(Qc(a.r, b), 21), 84).Kc(); f.Ob(); ) { - e = BD(f.Pb(), 111); - c = $wnd.Math.max(c, e.e.b + e.b.rf().b); - } - d = BD(Mpb(a.b, b), 124); - d.n.d = 0; - d.a.b = c; - } - function INc(a) { - var b, c; - c = BD(vNb(a, (wtc(), Ksc)), 21); - b = k3c(zNc); - c.Hc((Orc(), Lrc)) && d3c(b, CNc); - c.Hc(Nrc) && d3c(b, ENc); - c.Hc(Erc) && d3c(b, ANc); - c.Hc(Grc) && d3c(b, BNc); - return b; - } - function j1c(a, b) { - var c; - Odd(b, "Delaunay triangulation", 1); - c = new Rkb(); - Hkb(a.i, new n1c(c)); - Ccb(DD(vNb(a, (XNb(), VNb)))) && "null10bw"; - !a.e ? a.e = NCb(c) : ye(a.e, NCb(c)); - Qdd(b); - } - function q6c(a) { - if (a < 0) { - throw vbb(new Wdb("The input must be positive")); - } else - return a < h6c.length ? Sbb(h6c[a]) : $wnd.Math.sqrt(dre * a) * (y6c(a, a) / x6c(2.718281828459045, a)); - } - function pud(a, b) { - var c; - if (a.ni() && b != null) { - for (c = 0; c < a.i; ++c) { - if (pb(b, a.g[c])) { - return true; - } - } - } else { - for (c = 0; c < a.i; ++c) { - if (PD(a.g[c]) === PD(b)) { - return true; - } - } - } - return false; - } - function jr(a, b) { - if (b == null) { - while (a.a.Ob()) { - if (BD(a.a.Pb(), 42).dd() == null) { - return true; - } - } - } else { - while (a.a.Ob()) { - if (pb(b, BD(a.a.Pb(), 42).dd())) { - return true; - } - } - } - return false; - } - function zy(a, b) { - var c, d, e; - if (b === a) { - return true; - } else if (JD(b, 664)) { - e = BD(b, 1947); - return Ue((d = a.g, !d ? a.g = new vi(a) : d), (c = e.g, !c ? e.g = new vi(e) : c)); - } else { - return false; - } - } - function Tz(a) { - var b, c, d, e; - b = "Sz"; - c = "ez"; - e = $wnd.Math.min(a.length, 5); - for (d = e - 1; d >= 0; d--) { - if (dfb(a[d].d, b) || dfb(a[d].d, c)) { - a.length >= d + 1 && a.splice(0, d + 1); - break; - } - } - return a; - } - function Abb(a, b) { - var c; - if (Fbb(a) && Fbb(b)) { - c = a / b; - if (Kje < c && c < Ije) { - return c < 0 ? $wnd.Math.ceil(c) : $wnd.Math.floor(c); - } - } - return zbb(UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, false)); - } - function LZb(a, b) { - if (b == a.c.i) { - return a.d.i; - } else if (b == a.d.i) { - return a.c.i; - } else { - throw vbb(new Wdb("'node' must either be the source node or target node of the edge.")); - } - } - function C2b(a) { - var b, c, d, e; - e = BD(vNb(a, (wtc(), xsc)), 37); - if (e) { - d = new d7c(); - b = Q_b(a.c.i); - while (b != e) { - c = b.e; - b = Q_b(c); - O6c(P6c(P6c(d, c.n), b.c), b.d.b, b.d.d); - } - return d; - } - return w2b; - } - function Ldc(a) { - var b; - b = BD(vNb(a, (wtc(), ntc)), 403); - MAb(LAb(new YAb(null, new Kub(b.d, 16)), new Ydc()), new $dc(a)); - MAb(JAb(new YAb(null, new Kub(b.d, 16)), new aec()), new cec(a)); - } - function woc(a, b) { - var c, d, e, f; - e = b ? U_b(a) : R_b(a); - for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - f = LZb(c, a); - if (f.k == (j0b(), g0b) && f.c != a.c) { - return f; - } - } - return null; - } - function HDc(a) { - var b, c, d; - for (c = new olb(a.p); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - if (b.k != (j0b(), h0b)) { - continue; - } - d = b.o.b; - a.i = $wnd.Math.min(a.i, d); - a.g = $wnd.Math.max(a.g, d); - } - } - function oEc(a, b, c) { - var d, e, f; - for (f = new olb(b); f.a < f.c.c.length; ) { - d = BD(mlb(f), 10); - a.c[d.c.p][d.p].e = false; - } - for (e = new olb(b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - nEc(a, d, c); - } - } - function WOc(a, b, c) { - var d, e; - d = vPc(b.j, c.s, c.c) + vPc(c.e, b.s, b.c); - e = vPc(c.j, b.s, b.c) + vPc(b.e, c.s, c.c); - if (d == e) { - if (d > 0) { - a.b += 2; - a.a += d; - } - } else { - a.b += 1; - a.a += $wnd.Math.min(d, e); - } - } - function Rpd(a, b) { - var c, d; - d = false; - if (ND(b)) { - d = true; - Qpd(a, new yC(GD(b))); - } - if (!d) { - if (JD(b, 236)) { - d = true; - Qpd(a, (c = Kcb(BD(b, 236)), new TB(c))); - } - } - if (!d) { - throw vbb(new vcb(Ute)); - } - } - function IMd(a, b, c, d) { - var e, f, g10; - e = new pSd(a.e, 1, 10, (g10 = b.c, JD(g10, 88) ? BD(g10, 26) : (jGd(), _Fd)), (f = c.c, JD(f, 88) ? BD(f, 26) : (jGd(), _Fd)), HLd(a, b), false); - !d ? d = e : d.Ei(e); - return d; - } - function T_b(a) { - var b, c; - switch (BD(vNb(Q_b(a), (Nyc(), ixc)), 420).g) { - case 0: - b = a.n; - c = a.o; - return new f7c(b.a + c.a / 2, b.b + c.b / 2); - case 1: - return new g7c(a.n); - default: - return null; - } - } - function lrc() { - lrc = ccb; - irc = new mrc(ane, 0); - hrc = new mrc("LEFTUP", 1); - krc = new mrc("RIGHTUP", 2); - grc = new mrc("LEFTDOWN", 3); - jrc = new mrc("RIGHTDOWN", 4); - frc = new mrc("BALANCED", 5); - } - function FFc(a, b, c) { - var d, e, f; - d = Kdb(a.a[b.p], a.a[c.p]); - if (d == 0) { - e = BD(vNb(b, (wtc(), Qsc)), 15); - f = BD(vNb(c, Qsc), 15); - if (e.Hc(c)) { - return -1; - } else if (f.Hc(b)) { - return 1; - } - } - return d; - } - function jXc(a) { - switch (a.g) { - case 1: - return new XVc(); - case 2: - return new ZVc(); - case 3: - return new VVc(); - case 0: - return null; - default: - throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g))); - } - } - function Ikd(a, b, c) { - switch (b) { - case 1: - !a.n && (a.n = new cUd(D2, a, 1, 7)); - Uxd(a.n); - !a.n && (a.n = new cUd(D2, a, 1, 7)); - ytd(a.n, BD(c, 14)); - return; - case 2: - Lkd(a, GD(c)); - return; - } - ekd(a, b, c); - } - function Zkd(a, b, c) { - switch (b) { - case 3: - ald(a, Edb(ED(c))); - return; - case 4: - cld(a, Edb(ED(c))); - return; - case 5: - dld(a, Edb(ED(c))); - return; - case 6: - eld(a, Edb(ED(c))); - return; - } - Ikd(a, b, c); - } - function Fnd(a, b, c) { - var d, e, f; - f = (d = new rUd(), d); - e = xId(f, b, null); - !!e && e.Fi(); - pnd(f, c); - wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), f); - AId(f, 0); - DId(f, 1); - CId(f, true); - BId(f, true); - } - function mUd(a, b) { - var c, d, e; - c = Crb(a.g, b); - if (JD(c, 235)) { - e = BD(c, 235); - e.Qh() == null && void 0; - return e.Nh(); - } else if (JD(c, 498)) { - d = BD(c, 1938); - e = d.b; - return e; - } else { - return null; - } - } - function Ui(a, b, c, d) { - var e, f; - Qb(b); - Qb(c); - f = BD(tn(a.d, b), 19); - Ob(!!f, "Row %s not in %s", b, a.e); - e = BD(tn(a.b, c), 19); - Ob(!!e, "Column %s not in %s", c, a.c); - return Wi(a, f.a, e.a, d); - } - function JC(a, b, c, d, e, f, g10) { - var h, i10, j, k, l; - k = e[f]; - j = f == g10 - 1; - h = j ? d : 0; - l = LC(h, k); - d != 10 && OC(GC(a, g10 - f), b[f], c[f], h, l); - if (!j) { - ++f; - for (i10 = 0; i10 < k; ++i10) { - l[i10] = JC(a, b, c, d, e, f, g10); - } - } - return l; - } - function Eyd(b) { - if (b.g == -1) { - throw vbb(new Ydb()); - } - b.mj(); - try { - b.i.$c(b.g); - b.f = b.i.j; - b.g < b.e && --b.e; - b.g = -1; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - throw vbb(new Apb()); - } else - throw vbb(a); - } - } - function hYb(a, b) { - a.b.a = $wnd.Math.min(a.b.a, b.c); - a.b.b = $wnd.Math.min(a.b.b, b.d); - a.a.a = $wnd.Math.max(a.a.a, b.c); - a.a.b = $wnd.Math.max(a.a.b, b.d); - return a.c[a.c.length] = b, true; - } - function nZb(a) { - var b, c, d, e; - e = -1; - d = 0; - for (c = new olb(a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 243); - if (b.c == (KAc(), HAc)) { - e = d == 0 ? 0 : d - 1; - break; - } else - d == a.c.length - 1 && (e = d); - d += 1; - } - return e; - } - function UZc(a) { - var b, c, d, e; - e = 0; - b = 0; - for (d = new olb(a.c); d.a < d.c.c.length; ) { - c = BD(mlb(d), 33); - dld(c, a.e + e); - eld(c, a.f); - e += c.g + a.b; - b = $wnd.Math.max(b, c.f + a.b); - } - a.d = e - a.b; - a.a = b - a.b; - } - function bEb(a) { - var b, c, d; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - d = b.d.c; - b.d.c = b.d.d; - b.d.d = d; - d = b.d.b; - b.d.b = b.d.a; - b.d.a = d; - d = b.b.a; - b.b.a = b.b.b; - b.b.b = d; - } - RDb(a); - } - function BVb(a) { - var b, c, d; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - d = b.g.c; - b.g.c = b.g.d; - b.g.d = d; - d = b.g.b; - b.g.b = b.g.a; - b.g.a = d; - d = b.e.a; - b.e.a = b.e.b; - b.e.b = d; - } - sVb(a); - } - function Lmc(a) { - var b, c, d, e, f; - f = Ec(a.k); - for (c = (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - if (b != Scd && !f.Hc(b)) { - return b; - } - } - return null; - } - function znc(a, b) { - var c, d; - d = BD(Etb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Pnc()))), 11); - if (d) { - c = BD(Ikb(d.e, 0), 17); - if (c) { - return BD(vNb(c, (wtc(), Zsc)), 19).a; - } - } - return yzc(a.b); - } - function CCc(a, b) { - var c, d, e, f; - for (f = new olb(b.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - Blb(a.d); - for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - zCc(a, e, c.d.i); - } - } - } - function NZc(a, b) { - var c, d; - Lkb(a.b, b); - for (d = new olb(a.n); d.a < d.c.c.length; ) { - c = BD(mlb(d), 211); - if (Jkb(c.c, b, 0) != -1) { - Lkb(c.c, b); - UZc(c); - c.c.c.length == 0 && Lkb(a.n, c); - break; - } - } - HZc(a); - } - function $Zc(a, b) { - var c, d, e, f, g10; - g10 = a.f; - e = 0; - f = 0; - for (d = new olb(a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 187); - OZc(c, a.e, g10); - KZc(c, b); - f = $wnd.Math.max(f, c.r); - g10 += c.d + a.c; - e = g10; - } - a.d = f; - a.b = e; - } - function hVc(a) { - var b, c; - c = $sd(a); - if (Qq(c)) { - return null; - } else { - b = (Qb(c), BD(mr(new Sr(ur(c.a.Kc(), new Sq()))), 79)); - return atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82)); - } - } - function XId(a) { - var b; - if (!a.o) { - b = a.Lj(); - b ? a.o = new dYd(a, a, null) : a.rk() ? a.o = new uVd(a, null) : $1d(q1d((O6d(), M6d), a)) == 1 ? a.o = new nYd(a) : a.o = new sYd(a, null); - } - return a.o; - } - function w6d(a, b, c, d) { - var e, f, g10, h, i10; - if (c.mh(b)) { - e = (g10 = b, !g10 ? null : BD(d, 49).xh(g10)); - if (e) { - i10 = c.ah(b); - h = b.t; - if (h > 1 || h == -1) { - f = BD(i10, 15); - e.Wb(t6d(a, f)); - } else { - e.Wb(s6d(a, BD(i10, 56))); - } - } - } - } - function Zbb(b, c, d, e) { - Ybb(); - var f = Wbb; - $moduleName = c; - $moduleBase = d; - tbb = e; - function g10() { - for (var a = 0; a < f.length; a++) { - f[a](); - } - } - if (b) { - try { - Ihe(g10)(); - } catch (a) { - b(c, a); - } - } else { - Ihe(g10)(); - } - } - function Kgc(a) { - var b, c, d, e, f; - for (d = new nib(new eib(a.b).a); d.b; ) { - c = lib(d); - b = BD(c.cd(), 10); - f = BD(BD(c.dd(), 46).a, 10); - e = BD(BD(c.dd(), 46).b, 8); - P6c(X6c(b.n), P6c(R6c(f.n), e)); - } - } - function llc(a) { - switch (BD(vNb(a.b, (Nyc(), Vwc)), 375).g) { - case 1: - MAb(NAb(LAb(new YAb(null, new Kub(a.d, 16)), new Glc()), new Ilc()), new Klc()); - break; - case 2: - nlc(a); - break; - case 0: - mlc(a); - } - } - function KXc(a, b, c) { - var d; - Odd(c, "Straight Line Edge Routing", 1); - c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd)); - d = BD(hkd(b, (MUc(), LUc)), 33); - LXc(a, d); - c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd)); - } - function i8c() { - i8c = ccb; - h8c = new j8c("V_TOP", 0); - g8c = new j8c("V_CENTER", 1); - f8c = new j8c("V_BOTTOM", 2); - d8c = new j8c("H_LEFT", 3); - c8c = new j8c("H_CENTER", 4); - e8c = new j8c("H_RIGHT", 5); - } - function gLd(a) { - var b; - if ((a.Db & 64) != 0) - return mKd(a); - b = new Jfb(mKd(a)); - b.a += " (abstract: "; - Ffb(b, (a.Bb & 256) != 0); - b.a += ", interface: "; - Ffb(b, (a.Bb & 512) != 0); - b.a += ")"; - return b.a; - } - function l3d(a, b, c, d) { - var e, f, g10, h; - if (oid(a.e)) { - e = b.ak(); - h = b.dd(); - f = c.dd(); - g10 = H2d(a, 1, e, h, f, e.$j() ? M2d(a, e, f, JD(e, 99) && (BD(e, 18).Bb & Tje) != 0) : -1, true); - d ? d.Ei(g10) : d = g10; - } - return d; - } - function kz(a) { - var b; - if (a.c == null) { - b = PD(a.b) === PD(iz) ? null : a.b; - a.d = b == null ? Xhe : MD(b) ? nz(FD(b)) : ND(b) ? Vie : hdb(rb(b)); - a.a = a.a + ": " + (MD(b) ? mz(FD(b)) : b + ""); - a.c = "(" + a.d + ") " + a.a; - } - } - function Wgb(a, b) { - this.e = a; - if (Bbb(xbb(b, -4294967296), 0)) { - this.d = 1; - this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b)]); - } else { - this.d = 2; - this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b), Tbb(Obb(b, 32))]); - } - } - function yrb() { - function b() { - try { - return (/* @__PURE__ */ new Map()).entries().next().done; - } catch (a) { - return false; - } - } - if (typeof Map === Nhe && Map.prototype.entries && b()) { - return Map; - } else { - return zrb(); - } - } - function VPc(a, b) { - var c, d, e, f; - f = new Bib(a.e, 0); - c = 0; - while (f.b < f.d.gc()) { - d = Edb((sCb(f.b < f.d.gc()), ED(f.d.Xb(f.c = f.b++)))); - e = d - b; - if (e > Oqe) { - return c; - } else - e > -1e-6 && ++c; - } - return c; - } - function PQd(a, b) { - var c; - if (b != a.b) { - c = null; - !!a.b && (c = lid(a.b, a, -4, c)); - !!b && (c = kid(b, a, -4, c)); - c = GQd(a, b, c); - !!c && c.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b)); - } - function SQd(a, b) { - var c; - if (b != a.f) { - c = null; - !!a.f && (c = lid(a.f, a, -1, c)); - !!b && (c = kid(b, a, -1, c)); - c = IQd(a, b, c); - !!c && c.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, b, b)); - } - function E9d(a) { - var b, c, d; - if (a == null) - return null; - c = BD(a, 15); - if (c.dc()) - return ""; - d = new Hfb(); - for (b = c.Kc(); b.Ob(); ) { - Efb(d, (Q8d(), GD(b.Pb()))); - d.a += " "; - } - return lcb(d, d.a.length - 1); - } - function I9d(a) { - var b, c, d; - if (a == null) - return null; - c = BD(a, 15); - if (c.dc()) - return ""; - d = new Hfb(); - for (b = c.Kc(); b.Ob(); ) { - Efb(d, (Q8d(), GD(b.Pb()))); - d.a += " "; - } - return lcb(d, d.a.length - 1); - } - function qEc(a, b, c) { - var d, e; - d = a.c[b.c.p][b.p]; - e = a.c[c.c.p][c.p]; - if (d.a != null && e.a != null) { - return Ddb(d.a, e.a); - } else if (d.a != null) { - return -1; - } else if (e.a != null) { - return 1; - } - return 0; - } - function zqd(a, b) { - var c, d, e, f, g10, h; - if (b) { - f = b.a.length; - c = new Yge(f); - for (h = (c.b - c.a) * c.c < 0 ? (Xge(), Wge) : new she(c); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - e = Zpd(b, g10.a); - d = new Crd(a); - Aqd(d.a, e); - } - } - } - function Qqd(a, b) { - var c, d, e, f, g10, h; - if (b) { - f = b.a.length; - c = new Yge(f); - for (h = (c.b - c.a) * c.c < 0 ? (Xge(), Wge) : new she(c); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - e = Zpd(b, g10.a); - d = new lrd(a); - nqd(d.a, e); - } - } - } - function eFd(b) { - var c; - if (b != null && b.length > 0 && bfb(b, b.length - 1) == 33) { - try { - c = PEd(qfb(b, 0, b.length - 1)); - return c.e == null; - } catch (a) { - a = ubb(a); - if (!JD(a, 32)) - throw vbb(a); - } - } - return false; - } - function h3d(a, b, c) { - var d, e, f; - d = b.ak(); - f = b.dd(); - e = d.$j() ? H2d(a, 3, d, null, f, M2d(a, d, f, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, 1, d, d.zj(), f, -1, true); - c ? c.Ei(e) : c = e; - return c; - } - function Vee() { - var a, b, c; - b = 0; - for (a = 0; a < "X".length; a++) { - c = Uee((BCb(a, "X".length), "X".charCodeAt(a))); - if (c == 0) - throw vbb(new mde("Unknown Option: " + "X".substr(a))); - b |= c; - } - return b; - } - function mZb(a, b, c) { - var d, e, f; - d = Q_b(b); - e = a_b(d); - f = new H0b(); - F0b(f, b); - switch (c.g) { - case 1: - G0b(f, Wcd(Zcd(e))); - break; - case 2: - G0b(f, Zcd(e)); - } - yNb(f, (Nyc(), Uxc), ED(vNb(a, Uxc))); - return f; - } - function U9b(a) { - var b, c; - b = BD(Rr(new Sr(ur(R_b(a.a).a.Kc(), new Sq()))), 17); - c = BD(Rr(new Sr(ur(U_b(a.a).a.Kc(), new Sq()))), 17); - return Ccb(DD(vNb(b, (wtc(), ltc)))) || Ccb(DD(vNb(c, ltc))); - } - function Xjc() { - Xjc = ccb; - Tjc = new Yjc("ONE_SIDE", 0); - Vjc = new Yjc("TWO_SIDES_CORNER", 1); - Wjc = new Yjc("TWO_SIDES_OPPOSING", 2); - Ujc = new Yjc("THREE_SIDES", 3); - Sjc = new Yjc("FOUR_SIDES", 4); - } - function jkc(a, b, c, d, e) { - var f, g10; - f = BD(GAb(JAb(b.Oc(), new _kc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - g10 = BD(Si(a.b, c, d), 15); - e == 0 ? g10.Wc(0, f) : g10.Gc(f); - } - function KDc(a, b) { - var c, d, e, f, g10; - for (f = new olb(b.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - for (d = new Sr(ur(R_b(e).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - g10 = c.c.i.p; - a.n[g10] = a.n[g10] - 1; - } - } - } - function cnc(a, b) { - var c, d, e, f, g10; - for (f = new olb(b.d); f.a < f.c.c.length; ) { - e = BD(mlb(f), 101); - g10 = BD(Ohb(a.c, e), 112).o; - for (d = new Gqb(e.b); d.a < d.c.a.length; ) { - c = BD(Fqb(d), 61); - ojc(e, c, g10); - } - } - } - function HJc(a) { - var b, c; - for (c = new olb(a.e.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 29); - YJc(a, b); - } - MAb(JAb(LAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new YKc()), new tLc()), new vLc()), new xLc(a)); - } - function Qwd(a, b) { - if (!b) { - return false; - } else { - if (a.Di(b)) { - return false; - } - if (!a.i) { - if (JD(b, 143)) { - a.i = BD(b, 143); - return true; - } else { - a.i = new Hxd(); - return a.i.Ei(b); - } - } else { - return a.i.Ei(b); - } - } - } - function B9d(a) { - a = Qge(a, true); - if (dfb(kse, a) || dfb("1", a)) { - return Bcb(), Acb; - } else if (dfb(lse, a) || dfb("0", a)) { - return Bcb(), zcb; - } - throw vbb(new n8d("Invalid boolean value: '" + a + "'")); - } - function Kd(a, b, c) { - var d, e, f; - for (e = a.vc().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 42); - f = d.cd(); - if (PD(b) === PD(f) || b != null && pb(b, f)) { - if (c) { - d = new pjb(d.cd(), d.dd()); - e.Qb(); - } - return d; - } - } - return null; - } - function dKb(a) { - $Jb(); - var b, c, d; - if (!a.B.Hc((Idd(), Add))) { - return; - } - d = a.f.i; - b = new K6c(a.a.c); - c = new p0b(); - c.b = b.c - d.c; - c.d = b.d - d.d; - c.c = d.c + d.b - (b.c + b.b); - c.a = d.d + d.a - (b.d + b.a); - a.e.Ff(c); - } - function LNb(a, b, c, d) { - var e, f, g10; - g10 = $wnd.Math.min(c, ONb(BD(a.b, 65), b, c, d)); - for (f = new olb(a.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 221); - e != b && (g10 = $wnd.Math.min(g10, LNb(e, b, g10, d))); - } - return g10; - } - function WZb(a) { - var b, c, d, e; - e = KC(OQ, nie, 193, a.b.c.length, 0, 2); - d = new Bib(a.b, 0); - while (d.b < d.d.gc()) { - b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 29)); - c = d.b - 1; - e[c] = l_b(b.a); - } - return e; - } - function K3b(a, b, c, d, e) { - var f, g10, h, i10; - g10 = eLb(dLb(iLb(H3b(c)), d), C3b(a, c, e)); - for (i10 = Y_b(a, c).Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 11); - if (b[h.p]) { - f = b[h.p].i; - Ekb(g10.d, new BLb(f, bLb(g10, f))); - } - } - cLb(g10); - } - function sic(a, b) { - this.f = new Lqb(); - this.b = new Lqb(); - this.j = new Lqb(); - this.a = a; - this.c = b; - this.c > 0 && ric(this, this.c - 1, (Ucd(), zcd)); - this.c < this.a.length - 1 && ric(this, this.c + 1, (Ucd(), Tcd)); - } - function SEc(a) { - a.length > 0 && a[0].length > 0 && (this.c = Ccb(DD(vNb(Q_b(a[0][0]), (wtc(), Rsc))))); - this.a = KC(CX, nie, 2018, a.length, 0, 2); - this.b = KC(FX, nie, 2019, a.length, 0, 2); - this.d = new ss(); - } - function tKc(a) { - if (a.c.length == 0) { - return false; - } - if ((tCb(0, a.c.length), BD(a.c[0], 17)).c.i.k == (j0b(), g0b)) { - return true; - } - return FAb(NAb(new YAb(null, new Kub(a, 16)), new wKc()), new yKc()); - } - function rRc(a, b, c) { - Odd(c, "Tree layout", 1); - H2c(a.b); - K2c(a.b, (yRc(), uRc), uRc); - K2c(a.b, vRc, vRc); - K2c(a.b, wRc, wRc); - K2c(a.b, xRc, xRc); - a.a = F2c(a.b, b); - sRc(a, b, Udd(c, 1)); - Qdd(c); - return b; - } - function HXc(a, b) { - var c, d, e, f, g10, h, i10; - h = gVc(b); - f = b.f; - i10 = b.g; - g10 = $wnd.Math.sqrt(f * f + i10 * i10); - e = 0; - for (d = new olb(h); d.a < d.c.c.length; ) { - c = BD(mlb(d), 33); - e += HXc(a, c); - } - return $wnd.Math.max(e, g10); - } - function dcd() { - dcd = ccb; - ccd = new gcd(ole, 0); - bcd = new gcd("FREE", 1); - acd = new gcd("FIXED_SIDE", 2); - Zbd = new gcd("FIXED_ORDER", 3); - _bd = new gcd("FIXED_RATIO", 4); - $bd = new gcd("FIXED_POS", 5); - } - function c1d(a, b) { - var c, d, e; - c = b.Hh(a.a); - if (c) { - e = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Cwe)); - for (d = 1; d < (O6d(), N6d).length; ++d) { - if (dfb(N6d[d], e)) { - return d; - } - } - } - return 0; - } - function Qlb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - uwb(f, "" + b); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function Wlb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - uwb(f, "" + b); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function Md(a) { - var b, c, d; - d = new xwb(She, "{", "}"); - for (c = a.vc().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 42); - uwb(d, Nd(a, b.cd()) + "=" + Nd(a, b.dd())); - } - return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e); - } - function EGb(a) { - var b, c, d, e; - while (!akb(a.o)) { - c = BD(fkb(a.o), 46); - d = BD(c.a, 121); - b = BD(c.b, 213); - e = xFb(b, d); - if (b.e == d) { - NFb(e.g, b); - d.e = e.e + b.a; - } else { - NFb(e.b, b); - d.e = e.e - b.a; - } - Ekb(a.e.a, d); - } - } - function F6b(a, b) { - var c, d, e; - c = null; - for (e = BD(b.Kb(a), 20).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 17); - if (!c) { - c = d.c.i == a ? d.d.i : d.c.i; - } else { - if ((d.c.i == a ? d.d.i : d.c.i) != c) { - return false; - } - } - } - return true; - } - function uPc(a, b) { - var c, d, e, f, g10; - c = WNc(a, false, b); - for (e = new olb(c); e.a < e.c.c.length; ) { - d = BD(mlb(e), 129); - d.d == 0 ? (BOc(d, null), COc(d, null)) : (f = d.a, g10 = d.b, BOc(d, g10), COc(d, f), void 0); - } - } - function qQc(a) { - var b, c; - b = new j3c(); - d3c(b, cQc); - c = BD(vNb(a, (wtc(), Ksc)), 21); - c.Hc((Orc(), Nrc)) && d3c(b, gQc); - c.Hc(Erc) && d3c(b, dQc); - c.Hc(Lrc) && d3c(b, fQc); - c.Hc(Grc) && d3c(b, eQc); - return b; - } - function Xac(a) { - var b, c, d, e; - Wac(a); - for (c = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - d = b.c.i == a; - e = d ? b.d : b.c; - d ? RZb(b, null) : QZb(b, null); - yNb(b, (wtc(), ctc), e); - _ac(a, e.i); - } - } - function wmc(a, b, c, d) { - var e, f; - f = b.i; - e = c[f.g][a.d[f.g]]; - switch (f.g) { - case 1: - e -= d + b.j.b; - b.g.b = e; - break; - case 3: - e += d; - b.g.b = e; - break; - case 4: - e -= d + b.j.a; - b.g.a = e; - break; - case 2: - e += d; - b.g.a = e; - } - } - function aVc(a) { - var b, c, d; - for (c = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 33); - d = $sd(b); - if (!Qr(new Sr(ur(d.a.Kc(), new Sq())))) { - return b; - } - } - return null; - } - function Cod() { - var a; - if (yod) - return BD(nUd((yFd(), xFd), yte), 2016); - a = BD(JD(Phb((yFd(), xFd), yte), 555) ? Phb(xFd, yte) : new Bod(), 555); - yod = true; - zod(a); - Aod(a); - Tnd(a); - Shb(xFd, yte, a); - return a; - } - function t3d(a, b, c) { - var d, e; - if (a.j == 0) - return c; - e = BD(LLd(a, b, c), 72); - d = c.ak(); - if (!d.Ij() || !a.a.rl(d)) { - throw vbb(new hz("Invalid entry feature '" + d.Hj().zb + "." + d.ne() + "'")); - } - return e; - } - function Qi(a, b) { - var c, d, e, f, g10, h, i10, j; - for (h = a.a, i10 = 0, j = h.length; i10 < j; ++i10) { - g10 = h[i10]; - for (d = g10, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - if (PD(b) === PD(c) || b != null && pb(b, c)) { - return true; - } - } - } - return false; - } - function qhb(a) { - var b, c, d; - if (ybb(a, 0) >= 0) { - c = Abb(a, Jje); - d = Hbb(a, Jje); - } else { - b = Pbb(a, 1); - c = Abb(b, 5e8); - d = Hbb(b, 5e8); - d = wbb(Nbb(d, 1), xbb(a, 1)); - } - return Mbb(Nbb(d, 32), xbb(c, Yje)); - } - function oQb(a, b, c) { - var d, e; - d = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 8)); - switch (c.g) { - case 0: - d.b = 0; - break; - case 2: - d.b = a.f; - break; - case 3: - d.a = 0; - break; - default: - d.a = a.g; - } - e = Jsb(b, 0); - Vsb(e, d); - return b; - } - function pmc(a, b, c, d) { - var e, f, g10, h, i10; - i10 = a.b; - f = b.d; - g10 = f.j; - h = umc(g10, i10.d[g10.g], c); - e = P6c(R6c(f.n), f.a); - switch (f.j.g) { - case 1: - case 3: - h.a += e.a; - break; - case 2: - case 4: - h.b += e.b; - } - Gsb(d, h, d.c.b, d.c); - } - function yJc(a, b, c) { - var d, e, f, g10; - g10 = Jkb(a.e, b, 0); - f = new zJc(); - f.b = c; - d = new Bib(a.e, g10); - while (d.b < d.d.gc()) { - e = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 10)); - e.p = c; - Ekb(f.e, e); - uib(d); - } - return f; - } - function sYc(a, b, c, d) { - var e, f, g10, h, i10; - e = null; - f = 0; - for (h = new olb(b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 33); - i10 = g10.i + g10.g; - if (a < g10.j + g10.f + d) { - !e ? e = g10 : c.i - i10 < c.i - f && (e = g10); - f = e.i + e.g; - } - } - return !e ? 0 : f + d; - } - function tYc(a, b, c, d) { - var e, f, g10, h, i10; - f = null; - e = 0; - for (h = new olb(b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 33); - i10 = g10.j + g10.f; - if (a < g10.i + g10.g + d) { - !f ? f = g10 : c.j - i10 < c.j - e && (f = g10); - e = f.j + f.f; - } - } - return !f ? 0 : e + d; - } - function mA(a) { - var b, c, d; - b = false; - d = a.b.c.length; - for (c = 0; c < d; c++) { - if (nA(BD(Ikb(a.b, c), 434))) { - if (!b && c + 1 < d && nA(BD(Ikb(a.b, c + 1), 434))) { - b = true; - BD(Ikb(a.b, c), 434).a = true; - } - } else { - b = false; - } - } - } - function Ahb(a, b, c, d, e) { - var f, g10; - f = 0; - for (g10 = 0; g10 < e; g10++) { - f = wbb(f, Qbb(xbb(b[g10], Yje), xbb(d[g10], Yje))); - a[g10] = Tbb(f); - f = Obb(f, 32); - } - for (; g10 < c; g10++) { - f = wbb(f, xbb(b[g10], Yje)); - a[g10] = Tbb(f); - f = Obb(f, 32); - } - } - function Jhb(a, b) { - Dhb(); - var c, d; - d = (Hgb(), Cgb); - c = a; - for (; b > 1; b >>= 1) { - (b & 1) != 0 && (d = Ogb(d, c)); - c.d == 1 ? c = Ogb(c, c) : c = new Xgb(Lhb(c.a, c.d, KC(WD, oje, 25, c.d << 1, 15, 1))); - } - d = Ogb(d, c); - return d; - } - function zub() { - zub = ccb; - var a, b, c, d; - wub = KC(UD, Vje, 25, 25, 15, 1); - xub = KC(UD, Vje, 25, 33, 15, 1); - d = 152587890625e-16; - for (b = 32; b >= 0; b--) { - xub[b] = d; - d *= 0.5; - } - c = 1; - for (a = 24; a >= 0; a--) { - wub[a] = c; - c *= 0.5; - } - } - function S1b(a) { - var b, c; - if (Ccb(DD(hkd(a, (Nyc(), fxc))))) { - for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 79); - if (Qld(b)) { - if (Ccb(DD(hkd(b, gxc)))) { - return true; - } - } - } - } - return false; - } - function kjc(a, b) { - var c, d, e; - if (Qqb(a.f, b)) { - b.b = a; - d = b.c; - Jkb(a.j, d, 0) != -1 || Ekb(a.j, d); - e = b.d; - Jkb(a.j, e, 0) != -1 || Ekb(a.j, e); - c = b.a.b; - if (c.c.length != 0) { - !a.i && (a.i = new vjc(a)); - qjc(a.i, c); - } - } - } - function rmc(a) { - var b, c, d, e, f; - c = a.c.d; - d = c.j; - e = a.d.d; - f = e.j; - if (d == f) { - return c.p < e.p ? 0 : 1; - } else if (Xcd(d) == f) { - return 0; - } else if (Vcd(d) == f) { - return 1; - } else { - b = a.b; - return uqb(b.b, Xcd(d)) ? 0 : 1; - } - } - function lzc() { - lzc = ccb; - jzc = new nzc(Aqe, 0); - hzc = new nzc("LONGEST_PATH", 1); - fzc = new nzc("COFFMAN_GRAHAM", 2); - gzc = new nzc(Tne, 3); - kzc = new nzc("STRETCH_WIDTH", 4); - izc = new nzc("MIN_WIDTH", 5); - } - function E3c(a) { - var b; - this.d = new Lqb(); - this.c = a.c; - this.e = a.d; - this.b = a.b; - this.f = new jgd(a.e); - this.a = a.a; - !a.f ? this.g = (b = BD(gdb(O3), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.g = a.f; - } - function grd(a, b) { - var c, d, e, f, g10, h; - e = a; - g10 = $pd(e, "layoutOptions"); - !g10 && (g10 = $pd(e, Dte)); - if (g10) { - h = g10; - d = null; - !!h && (d = (f = $B(h, KC(ZI, nie, 2, 0, 6, 1)), new mC(h, f))); - if (d) { - c = new Drd(h, b); - reb(d, c); - } - } - } - function atd(a) { - if (JD(a, 239)) { - return BD(a, 33); - } else if (JD(a, 186)) { - return mpd(BD(a, 118)); - } else if (!a) { - throw vbb(new Heb(gue)); - } else { - throw vbb(new cgb("Only support nodes and ports.")); - } - } - function CA(a, b, c, d) { - if (b >= 0 && dfb(a.substr(b, "GMT".length), "GMT")) { - c[0] = b + 3; - return tA(a, c, d); - } - if (b >= 0 && dfb(a.substr(b, "UTC".length), "UTC")) { - c[0] = b + 3; - return tA(a, c, d); - } - return tA(a, c, d); - } - function tjc(a, b) { - var c, d, e, f, g10; - f = a.g.a; - g10 = a.g.b; - for (d = new olb(a.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 70); - e = c.n; - e.a = f; - a.i == (Ucd(), Acd) ? e.b = g10 + a.j.b - c.o.b : e.b = g10; - P6c(e, b); - f += c.o.a + a.e; - } - } - function Odd(a, b, c) { - if (a.b) { - throw vbb(new Zdb("The task is already done.")); - } else if (a.p != null) { - return false; - } else { - a.p = b; - a.r = c; - a.k && (a.o = (Zfb(), Ibb(Cbb(Date.now()), _ie))); - return true; - } - } - function hsd(a) { - var b, c, d, e, f, g10, h; - h = new eC(); - c = a.tg(); - e = c != null; - e && Upd(h, Vte, a.tg()); - d = a.ne(); - f = d != null; - f && Upd(h, fue, a.ne()); - b = a.sg(); - g10 = b != null; - g10 && Upd(h, "description", a.sg()); - return h; - } - function uId(a, b, c) { - var d, e, f; - f = a.q; - a.q = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - e = new nSd(a, 1, 9, f, b); - !c ? c = e : c.Ei(e); - } - if (!b) { - !!a.r && (c = a.nk(null, c)); - } else { - d = b.c; - d != a.r && (c = a.nk(d, c)); - } - return c; - } - function IYd(a, b, c) { - var d, e, f, g10, h; - c = (h = b, kid(h, a.e, -1 - a.c, c)); - g10 = AYd(a.a); - for (f = (d = new nib(new eib(g10.a).a), new ZYd(d)); f.a.b; ) { - e = BD(lib(f.a).cd(), 87); - c = QQd(e, MQd(e, a.a), c); - } - return c; - } - function JYd(a, b, c) { - var d, e, f, g10, h; - c = (h = b, lid(h, a.e, -1 - a.c, c)); - g10 = AYd(a.a); - for (f = (d = new nib(new eib(g10.a).a), new ZYd(d)); f.a.b; ) { - e = BD(lib(f.a).cd(), 87); - c = QQd(e, MQd(e, a.a), c); - } - return c; - } - function jhb(a, b, c, d) { - var e, f, g10; - if (d == 0) { - $fb(b, 0, a, c, a.length - c); - } else { - g10 = 32 - d; - a[a.length - 1] = 0; - for (f = a.length - 1; f > c; f--) { - a[f] |= b[f - c - 1] >>> g10; - a[f - 1] = b[f - c - 1] << d; - } - } - for (e = 0; e < c; e++) { - a[e] = 0; - } - } - function LJb(a) { - var b, c, d, e, f; - b = 0; - c = 0; - for (f = a.Kc(); f.Ob(); ) { - d = BD(f.Pb(), 111); - b = $wnd.Math.max(b, d.d.b); - c = $wnd.Math.max(c, d.d.c); - } - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 111); - d.d.b = b; - d.d.c = c; - } - } - function TKb(a) { - var b, c, d, e, f; - c = 0; - b = 0; - for (f = a.Kc(); f.Ob(); ) { - d = BD(f.Pb(), 111); - c = $wnd.Math.max(c, d.d.d); - b = $wnd.Math.max(b, d.d.a); - } - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 111); - d.d.d = c; - d.d.a = b; - } - } - function rpc(a, b) { - var c, d, e, f; - f = new Rkb(); - e = 0; - d = b.Kc(); - while (d.Ob()) { - c = meb(BD(d.Pb(), 19).a + e); - while (c.a < a.f && !Voc(a, c.a)) { - c = meb(c.a + 1); - ++e; - } - if (c.a >= a.f) { - break; - } - f.c[f.c.length] = c; - } - return f; - } - function sfd(a) { - var b, c, d, e; - b = null; - for (e = new olb(a.wf()); e.a < e.c.c.length; ) { - d = BD(mlb(e), 181); - c = new J6c(d.qf().a, d.qf().b, d.rf().a, d.rf().b); - !b ? b = c : H6c(b, c); - } - !b && (b = new I6c()); - return b; - } - function Fkd(a, b, c, d) { - var e, f; - if (c == 1) { - return !a.n && (a.n = new cUd(D2, a, 1, 7)), Sxd(a.n, b, d); - } - return f = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c), 66), f.Nj().Qj(a, yjd(a), c - aLd(a.zh()), b, d); - } - function iud(a, b, c) { - var d, e, f, g10, h; - d = c.gc(); - a.qi(a.i + d); - h = a.i - b; - h > 0 && $fb(a.g, b, a.g, b + d, h); - g10 = c.Kc(); - a.i += d; - for (e = 0; e < d; ++e) { - f = g10.Pb(); - mud(a, b, a.oi(b, f)); - a.bi(b, f); - a.ci(); - ++b; - } - return d != 0; - } - function xId(a, b, c) { - var d; - if (b != a.q) { - !!a.q && (c = lid(a.q, a, -10, c)); - !!b && (c = kid(b, a, -10, c)); - c = uId(a, b, c); - } else if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - d = new nSd(a, 1, 9, b, b); - !c ? c = d : c.Ei(d); - } - return c; - } - function Yj(a, b, c, d) { - Mb((c & oie) == 0, "flatMap does not support SUBSIZED characteristic"); - Mb((c & 4) == 0, "flatMap does not support SORTED characteristic"); - Qb(a); - Qb(b); - return new jk(a, c, d, b); - } - function Qy(a, b) { - vCb(b, "Cannot suppress a null exception."); - mCb(b != a, "Exception can not suppress itself."); - if (a.i) { - return; - } - a.k == null ? a.k = OC(GC(_I, 1), nie, 78, 0, [b]) : a.k[a.k.length] = b; - } - function oA(a, b, c, d) { - var e, f, g10, h, i10, j; - g10 = c.length; - f = 0; - e = -1; - j = sfb(a.substr(b), (ntb(), ltb)); - for (h = 0; h < g10; ++h) { - i10 = c[h].length; - if (i10 > f && nfb(j, sfb(c[h], ltb))) { - e = h; - f = i10; - } - } - e >= 0 && (d[0] = b + f); - return e; - } - function MIb(a, b) { - var c; - c = NIb(a.b.Hf(), b.b.Hf()); - if (c != 0) { - return c; - } - switch (a.b.Hf().g) { - case 1: - case 2: - return beb(a.b.sf(), b.b.sf()); - case 3: - case 4: - return beb(b.b.sf(), a.b.sf()); - } - return 0; - } - function iRb(a) { - var b, c, d; - d = a.e.c.length; - a.a = IC(WD, [nie, oje], [48, 25], 15, [d, d], 2); - for (c = new olb(a.c); c.a < c.c.c.length; ) { - b = BD(mlb(c), 282); - a.a[b.c.b][b.d.b] += BD(vNb(b, (wSb(), oSb)), 19).a; - } - } - function H1c(a, b, c) { - Odd(c, "Grow Tree", 1); - a.b = b.f; - if (Ccb(DD(vNb(b, (XNb(), VNb))))) { - a.c = new tOb(); - D1c(a, null); - } else { - a.c = new tOb(); - } - a.a = false; - F1c(a, b.f); - yNb(b, WNb, (Bcb(), a.a ? true : false)); - Qdd(c); - } - function Umd(a, b) { - var c, d, e, f, g10; - if (a == null) { - return null; - } else { - g10 = KC(TD, $ie, 25, 2 * b, 15, 1); - for (d = 0, e = 0; d < b; ++d) { - c = a[d] >> 4 & 15; - f = a[d] & 15; - g10[e++] = Qmd[c]; - g10[e++] = Qmd[f]; - } - return zfb(g10, 0, g10.length); - } - } - function j3d(a, b, c) { - var d, e, f; - d = b.ak(); - f = b.dd(); - e = d.$j() ? H2d(a, 4, d, f, null, M2d(a, d, f, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, d.Kj() ? 2 : 1, d, f, d.zj(), -1, true); - c ? c.Ei(e) : c = e; - return c; - } - function wfb(a) { - var b, c; - if (a >= Tje) { - b = Uje + (a - Tje >> 10 & 1023) & aje; - c = 56320 + (a - Tje & 1023) & aje; - return String.fromCharCode(b) + ("" + String.fromCharCode(c)); - } else { - return String.fromCharCode(a & aje); - } - } - function bKb(a, b) { - $Jb(); - var c, d, e, f; - e = BD(BD(Qc(a.r, b), 21), 84); - if (e.gc() >= 2) { - d = BD(e.Kc().Pb(), 111); - c = a.u.Hc((rcd(), mcd)); - f = a.u.Hc(qcd); - return !d.a && !c && (e.gc() == 2 || f); - } else { - return false; - } - } - function IVc(a, b, c, d, e) { - var f, g10, h; - f = JVc(a, b, c, d, e); - h = false; - while (!f) { - AVc(a, e, true); - h = true; - f = JVc(a, b, c, d, e); - } - h && AVc(a, e, false); - g10 = dVc(e); - if (g10.c.length != 0) { - !!a.d && a.d.lg(g10); - IVc(a, e, c, d, g10); - } - } - function Mad() { - Mad = ccb; - Kad = new Nad(ane, 0); - Iad = new Nad("DIRECTED", 1); - Lad = new Nad("UNDIRECTED", 2); - Gad = new Nad("ASSOCIATION", 3); - Jad = new Nad("GENERALIZATION", 4); - Had = new Nad("DEPENDENCY", 5); - } - function kfd(a, b) { - var c; - if (!mpd(a)) { - throw vbb(new Zdb(Sse)); - } - c = mpd(a); - switch (b.g) { - case 1: - return -(a.j + a.f); - case 2: - return a.i - c.g; - case 3: - return a.j - c.f; - case 4: - return -(a.i + a.g); - } - return 0; - } - function cub(a, b) { - var c, d; - uCb(b); - d = a.b.c.length; - Ekb(a.b, b); - while (d > 0) { - c = d; - d = (d - 1) / 2 | 0; - if (a.a.ue(Ikb(a.b, d), b) <= 0) { - Nkb(a.b, c, b); - return true; - } - Nkb(a.b, c, Ikb(a.b, d)); - } - Nkb(a.b, d, b); - return true; - } - function BHb(a, b, c, d) { - var e, f; - e = 0; - if (!c) { - for (f = 0; f < sHb; f++) { - e = $wnd.Math.max(e, qHb(a.a[f][b.g], d)); - } - } else { - e = qHb(a.a[c.g][b.g], d); - } - b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.a)); - return e; - } - function knc(a, b) { - var c, d, e, f, g10, h; - e = a.i; - f = b.i; - if (!e || !f) { - return false; - } - if (e.i != f.i || e.i == (Ucd(), zcd) || e.i == (Ucd(), Tcd)) { - return false; - } - g10 = e.g.a; - c = g10 + e.j.a; - h = f.g.a; - d = h + f.j.a; - return g10 <= d && c >= h; - } - function Tpd(a, b, c, d) { - var e; - e = false; - if (ND(d)) { - e = true; - Upd(b, c, GD(d)); - } - if (!e) { - if (KD(d)) { - e = true; - Tpd(a, b, c, d); - } - } - if (!e) { - if (JD(d, 236)) { - e = true; - Spd(b, c, BD(d, 236)); - } - } - if (!e) { - throw vbb(new vcb(Ute)); - } - } - function W0d(a, b) { - var c, d, e; - c = b.Hh(a.a); - if (c) { - e = AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Sve); - if (e != null) { - for (d = 1; d < (O6d(), K6d).length; ++d) { - if (dfb(K6d[d], e)) { - return d; - } - } - } - } - return 0; - } - function X0d(a, b) { - var c, d, e; - c = b.Hh(a.a); - if (c) { - e = AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Sve); - if (e != null) { - for (d = 1; d < (O6d(), L6d).length; ++d) { - if (dfb(L6d[d], e)) { - return d; - } - } - } - } - return 0; - } - function Ve(a, b) { - var c, d, e, f; - uCb(b); - f = a.a.gc(); - if (f < b.gc()) { - for (c = a.a.ec().Kc(); c.Ob(); ) { - d = c.Pb(); - b.Hc(d) && c.Qb(); - } - } else { - for (e = b.Kc(); e.Ob(); ) { - d = e.Pb(); - a.a.Bc(d) != null; - } - } - return f != a.a.gc(); - } - function bYb(a) { - var b, c; - c = R6c(l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a]))); - b = a.i.d; - switch (a.j.g) { - case 1: - c.b -= b.d; - break; - case 2: - c.a += b.c; - break; - case 3: - c.b += b.a; - break; - case 4: - c.a -= b.b; - } - return c; - } - function P9b(a) { - var b; - b = (I9b(), BD(Rr(new Sr(ur(R_b(a).a.Kc(), new Sq()))), 17).c.i); - while (b.k == (j0b(), g0b)) { - yNb(b, (wtc(), Tsc), (Bcb(), true)); - b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i; - } - } - function bIc(a, b, c, d) { - var e, f, g10, h; - h = CHc(b, d); - for (g10 = h.Kc(); g10.Ob(); ) { - e = BD(g10.Pb(), 11); - a.d[e.p] = a.d[e.p] + a.c[c.p]; - } - h = CHc(c, d); - for (f = h.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 11); - a.d[e.p] = a.d[e.p] - a.c[b.p]; - } - } - function Efd(a, b, c) { - var d, e; - for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - bld(d, d.i + b, d.j + c); - } - reb((!a.b && (a.b = new cUd(B2, a, 12, 3)), a.b), new Kfd(b, c)); - } - function Mwb(a, b, c, d) { - var e, f; - f = b; - e = f.d == null || a.a.ue(c.d, f.d) > 0 ? 1 : 0; - while (f.a[e] != c) { - f = f.a[e]; - e = a.a.ue(c.d, f.d) > 0 ? 1 : 0; - } - f.a[e] = d; - d.b = c.b; - d.a[0] = c.a[0]; - d.a[1] = c.a[1]; - c.a[0] = null; - c.a[1] = null; - } - function ucd(a) { - rcd(); - var b, c; - b = qqb(ncd, OC(GC(E1, 1), Kie, 273, 0, [pcd])); - if (Ox(Cx(b, a)) > 1) { - return false; - } - c = qqb(mcd, OC(GC(E1, 1), Kie, 273, 0, [lcd, qcd])); - if (Ox(Cx(c, a)) > 1) { - return false; - } - return true; - } - function fod(a, b) { - var c; - c = Phb((yFd(), xFd), a); - JD(c, 498) ? Shb(xFd, a, new bUd(this, b)) : Shb(xFd, a, this); - bod(this, b); - if (b == (LFd(), KFd)) { - this.wb = BD(this, 1939); - BD(b, 1941); - } else { - this.wb = (NFd(), MFd); - } - } - function lZd(b) { - var c, d, e; - if (b == null) { - return null; - } - c = null; - for (d = 0; d < Pmd.length; ++d) { - try { - return DQd(Pmd[d], b); - } catch (a) { - a = ubb(a); - if (JD(a, 32)) { - e = a; - c = e; - } else - throw vbb(a); - } - } - throw vbb(new rFd(c)); - } - function Dpb() { - Dpb = ccb; - Bpb = OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); - Cpb = OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); - } - function yyb(a) { - var b, c, d; - b = dfb(typeof b, uke) ? null : new iCb(); - if (!b) { - return; - } - $xb(); - c = (d = 900, d >= _ie ? "error" : d >= 900 ? "warn" : d >= 800 ? "info" : "log"); - gCb(c, a.a); - !!a.b && hCb(b, c, a.b, "Exception: ", true); - } - function vNb(a, b) { - var c, d; - d = (!a.q && (a.q = new Lqb()), Ohb(a.q, b)); - if (d != null) { - return d; - } - c = b.wg(); - JD(c, 4) && (c == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c)), a); - return c; - } - function qUb() { - qUb = ccb; - lUb = new rUb("P1_CYCLE_BREAKING", 0); - mUb = new rUb("P2_LAYERING", 1); - nUb = new rUb("P3_NODE_ORDERING", 2); - oUb = new rUb("P4_NODE_PLACEMENT", 3); - pUb = new rUb("P5_EDGE_ROUTING", 4); - } - function SUb(a, b) { - var c, d, e, f, g10; - e = b == 1 ? KUb : JUb; - for (d = e.a.ec().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 103); - for (g10 = BD(Qc(a.f.c, c), 21).Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 46); - Lkb(a.b.b, f.b); - Lkb(a.b.a, BD(f.b, 81).d); - } - } - } - function IWb(a, b) { - AWb(); - var c; - if (a.c == b.c) { - if (a.b == b.b || pWb(a.b, b.b)) { - c = mWb(a.b) ? 1 : -1; - if (a.a && !b.a) { - return c; - } else if (!a.a && b.a) { - return -c; - } - } - return beb(a.b.g, b.b.g); - } else { - return Kdb(a.c, b.c); - } - } - function y6b(a, b) { - var c; - Odd(b, "Hierarchical port position processing", 1); - c = a.b; - c.c.length > 0 && x6b((tCb(0, c.c.length), BD(c.c[0], 29)), a); - c.c.length > 1 && x6b(BD(Ikb(c, c.c.length - 1), 29), a); - Qdd(b); - } - function RVc(a, b) { - var c, d, e; - if (CVc(a, b)) { - return true; - } - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 33); - e = hVc(c); - if (BVc(a, c, e)) { - return true; - } - if (PVc(a, c) - a.g <= a.a) { - return true; - } - } - return false; - } - function d0c() { - d0c = ccb; - c0c = (A0c(), z0c); - __c = v0c; - $_c = t0c; - Y_c = p0c; - Z_c = r0c; - X_c = new q0b(8); - W_c = new Osd((Y9c(), f9c), X_c); - a0c = new Osd(T9c, 8); - b0c = x0c; - T_c = k0c; - U_c = m0c; - V_c = new Osd(y8c, (Bcb(), false)); - } - function X7c() { - X7c = ccb; - U7c = new q0b(15); - T7c = new Osd((Y9c(), f9c), U7c); - W7c = new Osd(T9c, 15); - V7c = new Osd(D9c, meb(0)); - O7c = I8c; - Q7c = Y8c; - S7c = b9c; - L7c = new Osd(r8c, pse); - P7c = O8c; - R7c = _8c; - M7c = t8c; - N7c = w8c; - } - function jtd(a) { - if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) { - throw vbb(new Wdb(iue)); - } - return atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)); - } - function ktd(a) { - if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) { - throw vbb(new Wdb(iue)); - } - return btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)); - } - function mtd(a) { - if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) { - throw vbb(new Wdb(iue)); - } - return btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)); - } - function ltd(a) { - if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) { - throw vbb(new Wdb(iue)); - } - return atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)); - } - function Dvd(a, b, c) { - var d, e, f; - ++a.j; - e = a.Vi(); - if (b >= e || b < 0) - throw vbb(new qcb(lue + b + mue + e)); - if (c >= e || c < 0) - throw vbb(new qcb(nue + c + mue + e)); - b != c ? d = (f = a.Ti(c), a.Hi(b, f), f) : d = a.Oi(c); - return d; - } - function m6d(a) { - var b, c, d; - d = a; - if (a) { - b = 0; - for (c = a.Ug(); c; c = c.Ug()) { - if (++b > Wje) { - return m6d(c); - } - d = c; - if (c == a) { - throw vbb(new Zdb("There is a cycle in the containment hierarchy of " + a)); - } - } - } - return d; - } - function Fe(a) { - var b, c, d; - d = new xwb(She, "[", "]"); - for (c = a.Kc(); c.Ob(); ) { - b = c.Pb(); - uwb(d, PD(b) === PD(a) ? "(this Collection)" : b == null ? Xhe : fcb(b)); - } - return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e); - } - function CVc(a, b) { - var c, d; - d = false; - if (b.gc() < 2) { - return false; - } - for (c = 0; c < b.gc(); c++) { - c < b.gc() - 1 ? d = d | BVc(a, BD(b.Xb(c), 33), BD(b.Xb(c + 1), 33)) : d = d | BVc(a, BD(b.Xb(c), 33), BD(b.Xb(0), 33)); - } - return d; - } - function Ymd(a, b) { - var c; - if (b != a.a) { - c = null; - !!a.a && (c = BD(a.a, 49).ih(a, 4, o5, c)); - !!b && (c = BD(b, 49).gh(a, 4, o5, c)); - c = Tmd(a, b, c); - !!c && c.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, b, b)); - } - function RQd(a, b) { - var c; - if (b != a.e) { - !!a.e && QYd(AYd(a.e), a); - !!b && (!b.b && (b.b = new RYd(new NYd())), PYd(b.b, a)); - c = HQd(a, b, null); - !!c && c.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b)); - } - function ufb(a) { - var b, c, d; - c = a.length; - d = 0; - while (d < c && (BCb(d, a.length), a.charCodeAt(d) <= 32)) { - ++d; - } - b = c; - while (b > d && (BCb(b - 1, a.length), a.charCodeAt(b - 1) <= 32)) { - --b; - } - return d > 0 || b < c ? a.substr(d, b - d) : a; - } - function ujc(a, b) { - var c; - c = b.o; - if (fad(a.f)) { - a.j.a = $wnd.Math.max(a.j.a, c.a); - a.j.b += c.b; - a.d.c.length > 1 && (a.j.b += a.e); - } else { - a.j.a += c.a; - a.j.b = $wnd.Math.max(a.j.b, c.b); - a.d.c.length > 1 && (a.j.a += a.e); - } - } - function gkc() { - gkc = ccb; - dkc = OC(GC(F1, 1), bne, 61, 0, [(Ucd(), Acd), zcd, Rcd]); - ckc = OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd]); - ekc = OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd, Acd]); - fkc = OC(GC(F1, 1), bne, 61, 0, [Tcd, Acd, zcd]); - } - function omc(a, b, c, d) { - var e, f, g10, h, i10, j, k; - g10 = a.c.d; - h = a.d.d; - if (g10.j == h.j) { - return; - } - k = a.b; - e = g10.j; - i10 = null; - while (e != h.j) { - i10 = b == 0 ? Xcd(e) : Vcd(e); - f = umc(e, k.d[e.g], c); - j = umc(i10, k.d[i10.g], c); - Dsb(d, P6c(f, j)); - e = i10; - } - } - function oFc(a, b, c, d) { - var e, f, g10, h, i10; - g10 = JHc(a.a, b, c); - h = BD(g10.a, 19).a; - f = BD(g10.b, 19).a; - if (d) { - i10 = BD(vNb(b, (wtc(), gtc)), 10); - e = BD(vNb(c, gtc), 10); - if (!!i10 && !!e) { - mic(a.b, i10, e); - h += a.b.i; - f += a.b.e; - } - } - return h > f; - } - function oHc(a) { - var b, c, d, e, f, g10, h, i10, j; - this.a = lHc(a); - this.b = new Rkb(); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - f = new Rkb(); - Ekb(this.b, f); - for (h = b, i10 = 0, j = h.length; i10 < j; ++i10) { - g10 = h[i10]; - Ekb(f, new Tkb(g10.j)); - } - } - } - function qHc(a, b, c) { - var d, e, f; - f = 0; - d = c[b]; - if (b < c.length - 1) { - e = c[b + 1]; - if (a.b[b]) { - f = KIc(a.d, d, e); - f += NHc(a.a, d, (Ucd(), zcd)); - f += NHc(a.a, e, Tcd); - } else { - f = IHc(a.a, d, e); - } - } - a.c[b] && (f += PHc(a.a, d)); - return f; - } - function jZb(a, b, c, d, e) { - var f, g10, h, i10; - i10 = null; - for (h = new olb(d); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 441); - if (g10 != c && Jkb(g10.e, e, 0) != -1) { - i10 = g10; - break; - } - } - f = kZb(e); - QZb(f, c.b); - RZb(f, i10.b); - Rc(a.a, e, new BZb(f, b, c.f)); - } - function nic(a) { - while (a.g.c != 0 && a.d.c != 0) { - if (wic(a.g).c > wic(a.d).c) { - a.i += a.g.c; - yic(a.d); - } else if (wic(a.d).c > wic(a.g).c) { - a.e += a.d.c; - yic(a.g); - } else { - a.i += vic(a.g); - a.e += vic(a.d); - yic(a.g); - yic(a.d); - } - } - } - function XOc(a, b, c) { - var d, e, f, g10; - f = b.q; - g10 = b.r; - new DOc((HOc(), FOc), b, f, 1); - new DOc(FOc, f, g10, 1); - for (e = new olb(c); e.a < e.c.c.length; ) { - d = BD(mlb(e), 112); - if (d != f && d != b && d != g10) { - pPc(a.a, d, b); - pPc(a.a, d, g10); - } - } - } - function XQc(a, b, c, d) { - a.a.d = $wnd.Math.min(b, c); - a.a.a = $wnd.Math.max(b, d) - a.a.d; - if (b < c) { - a.b = 0.5 * (b + c); - a.g = Qqe * a.b + 0.9 * b; - a.f = Qqe * a.b + 0.9 * c; - } else { - a.b = 0.5 * (b + d); - a.g = Qqe * a.b + 0.9 * d; - a.f = Qqe * a.b + 0.9 * b; - } - } - function acb() { - _bb = {}; - !Array.isArray && (Array.isArray = function(a) { - return Object.prototype.toString.call(a) === "[object Array]"; - }); - function b() { - return (/* @__PURE__ */ new Date()).getTime(); - } - !Date.now && (Date.now = b); - } - function $Tb(a, b) { - var c, d; - d = BD(vNb(b, (Nyc(), Vxc)), 98); - yNb(b, (wtc(), dtc), d); - c = b.e; - !!c && (MAb(new YAb(null, new Kub(c.a, 16)), new dUb(a)), MAb(LAb(new YAb(null, new Kub(c.b, 16)), new fUb()), new hUb(a))); - } - function _$b(a) { - var b, c, d, e; - if (gad(BD(vNb(a.b, (Nyc(), Lwc)), 103))) { - return 0; - } - b = 0; - for (d = new olb(a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - if (c.k == (j0b(), h0b)) { - e = c.o.a; - b = $wnd.Math.max(b, e); - } - } - return b; - } - function c5b(a) { - switch (BD(vNb(a, (Nyc(), mxc)), 163).g) { - case 1: - yNb(a, mxc, (Ctc(), ztc)); - break; - case 2: - yNb(a, mxc, (Ctc(), Atc)); - break; - case 3: - yNb(a, mxc, (Ctc(), xtc)); - break; - case 4: - yNb(a, mxc, (Ctc(), ytc)); - } - } - function yrc() { - yrc = ccb; - wrc = new zrc(ane, 0); - trc = new zrc(jle, 1); - xrc = new zrc(kle, 2); - vrc = new zrc("LEFT_RIGHT_CONSTRAINT_LOCKING", 3); - urc = new zrc("LEFT_RIGHT_CONNECTION_LOCKING", 4); - rrc = new zrc(Vne, 5); - } - function qRc(a, b, c) { - var d, e, f, g10, h, i10, j; - h = c.a / 2; - f = c.b / 2; - d = $wnd.Math.abs(b.a - a.a); - e = $wnd.Math.abs(b.b - a.b); - i10 = 1; - j = 1; - d > h && (i10 = h / d); - e > f && (j = f / e); - g10 = $wnd.Math.min(i10, j); - a.a += g10 * (b.a - a.a); - a.b += g10 * (b.b - a.b); - } - function sZc(a, b, c, d, e) { - var f, g10; - g10 = false; - f = BD(Ikb(c.b, 0), 33); - while (yZc(a, b, f, d, e)) { - g10 = true; - NZc(c, f); - if (c.b.c.length == 0) { - break; - } - f = BD(Ikb(c.b, 0), 33); - } - c.b.c.length == 0 && v$c(c.j, c); - g10 && a$c(b.q); - return g10; - } - function t6c(a, b) { - i6c(); - var c, d, e, f; - if (b.b < 2) { - return false; - } - f = Jsb(b, 0); - c = BD(Xsb(f), 8); - d = c; - while (f.b != f.d.c) { - e = BD(Xsb(f), 8); - if (s6c(a, d, e)) { - return true; - } - d = e; - } - if (s6c(a, d, c)) { - return true; - } - return false; - } - function ckd(a, b, c, d) { - var e, f; - if (c == 0) { - return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), bId(a.o, b, d); - } - return f = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c), 66), f.Nj().Rj(a, yjd(a), c - aLd(a.zh()), b, d); - } - function bod(a, b) { - var c; - if (b != a.sb) { - c = null; - !!a.sb && (c = BD(a.sb, 49).ih(a, 1, i5, c)); - !!b && (c = BD(b, 49).gh(a, 1, i5, c)); - c = Jnd(a, b, c); - !!c && c.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b)); - } - function yqd(a, b) { - var c, d, e, f; - if (b) { - e = Xpd(b, "x"); - c = new zrd(a); - hmd(c.a, (uCb(e), e)); - f = Xpd(b, "y"); - d = new Ard(a); - imd(d.a, (uCb(f), f)); - } else { - throw vbb(new cqd("All edge sections need an end point.")); - } - } - function wqd(a, b) { - var c, d, e, f; - if (b) { - e = Xpd(b, "x"); - c = new wrd(a); - omd(c.a, (uCb(e), e)); - f = Xpd(b, "y"); - d = new xrd(a); - pmd(d.a, (uCb(f), f)); - } else { - throw vbb(new cqd("All edge sections need a start point.")); - } - } - function pyb(a, b) { - var c, d, e, f, g10, h, i10; - for (d = syb(a), f = 0, h = d.length; f < h; ++f) { - yyb(b); - } - i10 = !lyb && a.e ? lyb ? null : a.d : null; - while (i10) { - for (c = syb(i10), e = 0, g10 = c.length; e < g10; ++e) { - yyb(b); - } - i10 = !lyb && i10.e ? lyb ? null : i10.d : null; - } - } - function j0b() { - j0b = ccb; - h0b = new k0b("NORMAL", 0); - g0b = new k0b("LONG_EDGE", 1); - e0b = new k0b("EXTERNAL_PORT", 2); - i0b = new k0b("NORTH_SOUTH_PORT", 3); - f0b = new k0b("LABEL", 4); - d0b = new k0b("BREAKING_POINT", 5); - } - function g4b(a) { - var b, c, d, e; - b = false; - if (wNb(a, (wtc(), Csc))) { - c = BD(vNb(a, Csc), 83); - for (e = new olb(a.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 11); - if (e4b(d)) { - if (!b) { - d4b(Q_b(a)); - b = true; - } - h4b(BD(c.xc(d), 306)); - } - } - } - } - function qec(a, b, c) { - var d; - Odd(c, "Self-Loop routing", 1); - d = rec(b); - RD(vNb(b, (g6c(), f6c))); - MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new uec()), new wec()), new yec()), new Aec()), new Cec(a, d)); - Qdd(c); - } - function gsd(a) { - var b, c, d, e, f, g10, h, i10, j; - j = hsd(a); - c = a.e; - f = c != null; - f && Upd(j, eue, a.e); - h = a.k; - g10 = !!h; - g10 && Upd(j, "type", Zr(a.k)); - d = Fhe(a.j); - e = !d; - if (e) { - i10 = new wB(); - cC(j, Mte, i10); - b = new ssd(i10); - reb(a.j, b); - } - return j; - } - function Jv(a) { - var b, c, d, e; - e = Kfb((Xj(a.gc(), "size"), new Vfb()), 123); - d = true; - for (c = Wm(a).Kc(); c.Ob(); ) { - b = BD(c.Pb(), 42); - d || (e.a += She, e); - d = false; - Pfb(Kfb(Pfb(e, b.cd()), 61), b.dd()); - } - return (e.a += "}", e).a; - } - function kD(a, b) { - var c, d, e; - b &= 63; - if (b < 22) { - c = a.l << b; - d = a.m << b | a.l >> 22 - b; - e = a.h << b | a.m >> 22 - b; - } else if (b < 44) { - c = 0; - d = a.l << b - 22; - e = a.m << b - 22 | a.l >> 44 - b; - } else { - c = 0; - d = 0; - e = a.l << b - 44; - } - return TC(c & Eje, d & Eje, e & Fje); - } - function Hcb(a) { - Gcb == null && (Gcb = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")); - if (!Gcb.test(a)) { - throw vbb(new Oeb(Oje + a + '"')); - } - return parseFloat(a); - } - function IFb(a) { - var b, c, d, e; - b = new Rkb(); - c = KC(sbb, dle, 25, a.a.c.length, 16, 1); - Glb(c, c.length); - for (e = new olb(a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 121); - if (!c[d.d]) { - b.c[b.c.length] = d; - HFb(a, d, c); - } - } - return b; - } - function Nmc(a, b) { - var c, d, e, f; - f = b.b.j; - a.a = KC(WD, oje, 25, f.c.length, 15, 1); - e = 0; - for (d = 0; d < f.c.length; d++) { - c = (tCb(d, f.c.length), BD(f.c[d], 11)); - c.e.c.length == 0 && c.g.c.length == 0 ? e += 1 : e += 3; - a.a[d] = e; - } - } - function Sqc() { - Sqc = ccb; - Nqc = new Uqc("ALWAYS_UP", 0); - Mqc = new Uqc("ALWAYS_DOWN", 1); - Pqc = new Uqc("DIRECTION_UP", 2); - Oqc = new Uqc("DIRECTION_DOWN", 3); - Rqc = new Uqc("SMART_UP", 4); - Qqc = new Uqc("SMART_DOWN", 5); - } - function k6c(a, b) { - if (a < 0 || b < 0) { - throw vbb(new Wdb("k and n must be positive")); - } else if (b > a) { - throw vbb(new Wdb("k must be smaller than n")); - } else - return b == 0 || b == a ? 1 : a == 0 ? 0 : q6c(a) / (q6c(b) * q6c(a - b)); - } - function jfd(a, b) { - var c, d, e, f; - c = new _ud(a); - while (c.g == null && !c.c ? Uud(c) : c.g == null || c.i != 0 && BD(c.g[c.i - 1], 47).Ob()) { - f = BD(Vud(c), 56); - if (JD(f, 160)) { - d = BD(f, 160); - for (e = 0; e < b.length; e++) { - b[e].og(d); - } - } - } - } - function fld(a) { - var b; - if ((a.Db & 64) != 0) - return Mkd(a); - b = new Jfb(Mkd(a)); - b.a += " (height: "; - Bfb(b, a.f); - b.a += ", width: "; - Bfb(b, a.g); - b.a += ", x: "; - Bfb(b, a.i); - b.a += ", y: "; - Bfb(b, a.j); - b.a += ")"; - return b.a; - } - function un(a) { - var b, c, d, e, f, g10, h; - b = new $rb(); - for (d = a, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - g10 = Qb(c.cd()); - h = Xrb(b, g10, Qb(c.dd())); - if (h != null) { - throw vbb(new Wdb("duplicate key: " + g10)); - } - } - this.b = (mmb(), new iob(b)); - } - function Rlb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - uwb(f, String.fromCharCode(b)); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function SRb() { - SRb = ccb; - MRb = (XRb(), WRb); - LRb = new Nsd(mme, MRb); - meb(1); - KRb = new Nsd(nme, meb(300)); - meb(0); - PRb = new Nsd(ome, meb(0)); - new Tfd(); - QRb = new Nsd(pme, qme); - new Tfd(); - NRb = new Nsd(rme, 5); - RRb = WRb; - ORb = VRb; - } - function NUb(a, b) { - var c, d, e, f, g10; - e = b == 1 ? KUb : JUb; - for (d = e.a.ec().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 103); - for (g10 = BD(Qc(a.f.c, c), 21).Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 46); - Ekb(a.b.b, BD(f.b, 81)); - Ekb(a.b.a, BD(f.b, 81).d); - } - } - } - function kVd(a, b) { - var c; - if (b != null && !a.c.Yj().wj(b)) { - c = JD(b, 56) ? BD(b, 56).Tg().zb : hdb(rb(b)); - throw vbb(new Cdb(ite + a.c.ne() + "'s type '" + a.c.Yj().ne() + "' does not permit a value of type '" + c + "'")); - } - } - function cZb(a, b, c) { - var d, e; - e = new Bib(a.b, 0); - while (e.b < e.d.gc()) { - d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70)); - if (PD(vNb(d, (wtc(), btc))) !== PD(b)) { - continue; - } - Y$b(d.n, Q_b(a.c.i), c); - uib(e); - Ekb(b.b, d); - } - } - function vdc(a, b) { - if (b.a) { - switch (BD(vNb(b.b, (wtc(), dtc)), 98).g) { - case 0: - case 1: - llc(b); - case 2: - MAb(new YAb(null, new Kub(b.d, 16)), new Idc()); - wkc(a.a, b); - } - } else { - MAb(new YAb(null, new Kub(b.d, 16)), new Idc()); - } - } - function Znc(a) { - var b, c; - c = $wnd.Math.sqrt((a.k == null && (a.k = Soc(a, new bpc())), Edb(a.k) / (a.b * (a.g == null && (a.g = Poc(a, new _oc())), Edb(a.g))))); - b = Tbb(Cbb($wnd.Math.round(c))); - b = $wnd.Math.min(b, a.f); - return b; - } - function H0b() { - z0b(); - n_b.call(this); - this.j = (Ucd(), Scd); - this.a = new d7c(); - new L_b(); - this.f = (Xj(2, Jie), new Skb(2)); - this.e = (Xj(4, Jie), new Skb(4)); - this.g = (Xj(4, Jie), new Skb(4)); - this.b = new Z0b(this.e, this.g); - } - function j3b(a, b) { - var c, d; - if (Ccb(DD(vNb(b, (wtc(), ltc))))) { - return false; - } - d = b.c.i; - if (a == (Ctc(), xtc)) { - if (d.k == (j0b(), f0b)) { - return false; - } - } - c = BD(vNb(d, (Nyc(), mxc)), 163); - if (c == ytc) { - return false; - } - return true; - } - function k3b(a, b) { - var c, d; - if (Ccb(DD(vNb(b, (wtc(), ltc))))) { - return false; - } - d = b.d.i; - if (a == (Ctc(), ztc)) { - if (d.k == (j0b(), f0b)) { - return false; - } - } - c = BD(vNb(d, (Nyc(), mxc)), 163); - if (c == Atc) { - return false; - } - return true; - } - function L3b(a, b) { - var c, d, e, f, g10, h, i10; - g10 = a.d; - i10 = a.o; - h = new J6c(-g10.b, -g10.d, g10.b + i10.a + g10.c, g10.d + i10.b + g10.a); - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - !!c && H6c(h, c.i); - } - g10.b = -h.c; - g10.d = -h.d; - g10.c = h.b - g10.b - i10.a; - g10.a = h.a - g10.d - i10.b; - } - function N_c() { - N_c = ccb; - I_c = new O_c("CENTER_DISTANCE", 0); - J_c = new O_c("CIRCLE_UNDERLAP", 1); - M_c = new O_c("RECTANGLE_UNDERLAP", 2); - K_c = new O_c("INVERTED_OVERLAP", 3); - L_c = new O_c("MINIMUM_ROOT_DISTANCE", 4); - } - function jde(a) { - hde(); - var b, c, d, e, f; - if (a == null) - return null; - d = a.length; - e = d * 2; - b = KC(TD, $ie, 25, e, 15, 1); - for (c = 0; c < d; c++) { - f = a[c]; - f < 0 && (f += 256); - b[c * 2] = gde[f >> 4]; - b[c * 2 + 1] = gde[f & 15]; - } - return zfb(b, 0, b.length); - } - function fn(a) { - Vm(); - var b, c, d; - d = a.c.length; - switch (d) { - case 0: - return Um; - case 1: - b = BD(qr(new olb(a)), 42); - return ln(b.cd(), b.dd()); - default: - c = BD(Qkb(a, KC(CK, zie, 42, a.c.length, 0, 1)), 165); - return new wx(c); - } - } - function ITb(a) { - var b, c, d, e, f, g10; - b = new jkb(); - c = new jkb(); - Wjb(b, a); - Wjb(c, a); - while (c.b != c.c) { - e = BD(fkb(c), 37); - for (g10 = new olb(e.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - if (f.e) { - d = f.e; - Wjb(b, d); - Wjb(c, d); - } - } - } - return b; - } - function Y_b(a, b) { - switch (b.g) { - case 1: - return Nq(a.j, (z0b(), v0b)); - case 2: - return Nq(a.j, (z0b(), t0b)); - case 3: - return Nq(a.j, (z0b(), x0b)); - case 4: - return Nq(a.j, (z0b(), y0b)); - default: - return mmb(), mmb(), jmb; - } - } - function tic(a, b) { - var c, d, e; - c = uic(b, a.e); - d = BD(Ohb(a.g.f, c), 19).a; - e = a.a.c.length - 1; - if (a.a.c.length != 0 && BD(Ikb(a.a, e), 287).c == d) { - ++BD(Ikb(a.a, e), 287).a; - ++BD(Ikb(a.a, e), 287).b; - } else { - Ekb(a.a, new Dic(d)); - } - } - function VGc(a, b, c) { - var d, e; - d = UGc(a, b, c); - if (d != 0) { - return d; - } - if (wNb(b, (wtc(), Zsc)) && wNb(c, Zsc)) { - e = beb(BD(vNb(b, Zsc), 19).a, BD(vNb(c, Zsc), 19).a); - e < 0 ? WGc(a, b, c) : e > 0 && WGc(a, c, b); - return e; - } - return TGc(a, b, c); - } - function MSc(a, b, c) { - var d, e, f, g10; - if (b.b != 0) { - d = new Psb(); - for (g10 = Jsb(b, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 86); - ye(d, URc(f)); - e = f.e; - e.a = BD(vNb(f, (mTc(), kTc)), 19).a; - e.b = BD(vNb(f, lTc), 19).a; - } - MSc(a, d, Udd(c, d.b / a.a | 0)); - } - } - function JZc(a, b) { - var c, d, e, f, g10; - if (a.e <= b) { - return a.g; - } - if (LZc(a, a.g, b)) { - return a.g; - } - f = a.r; - d = a.g; - g10 = a.r; - e = (f - d) / 2 + d; - while (d + 1 < f) { - c = MZc(a, e, false); - if (c.b <= e && c.a <= b) { - g10 = e; - f = e; - } else { - d = e; - } - e = (f - d) / 2 + d; - } - return g10; - } - function t2c(a, b, c) { - var d; - d = o2c(a, b, true); - Odd(c, "Recursive Graph Layout", d); - jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new q3c()])); - ikd(b, (Y9c(), F9c)) || jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new U3c()])); - u2c(a, b, null, c); - Qdd(c); - } - function Qdd(a) { - var b; - if (a.p == null) { - throw vbb(new Zdb("The task has not begun yet.")); - } - if (!a.b) { - if (a.k) { - b = (Zfb(), Ibb(Cbb(Date.now()), _ie)); - a.q = Sbb(Qbb(b, a.o)) * 1e-9; - } - a.c < a.r && Rdd(a, a.r - a.c); - a.b = true; - } - } - function ofd(a) { - var b, c, d; - d = new s7c(); - Dsb(d, new f7c(a.j, a.k)); - for (c = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 469); - Dsb(d, new f7c(b.a, b.b)); - } - Dsb(d, new f7c(a.b, a.c)); - return d; - } - function qqd(a, b, c, d, e) { - var f, g10, h, i10, j, k; - if (e) { - i10 = e.a.length; - f = new Yge(i10); - for (k = (f.b - f.a) * f.c < 0 ? (Xge(), Wge) : new she(f); k.Ob(); ) { - j = BD(k.Pb(), 19); - h = Zpd(e, j.a); - g10 = new prd(a, b, c, d); - rqd(g10.a, g10.b, g10.c, g10.d, h); - } - } - } - function Ax(b, c) { - var d; - if (PD(b) === PD(c)) { - return true; - } - if (JD(c, 21)) { - d = BD(c, 21); - try { - return b.gc() == d.gc() && b.Ic(d); - } catch (a) { - a = ubb(a); - if (JD(a, 173) || JD(a, 205)) { - return false; - } else - throw vbb(a); - } - } - return false; - } - function UHb(a, b) { - var c; - Ekb(a.d, b); - c = b.rf(); - if (a.c) { - a.e.a = $wnd.Math.max(a.e.a, c.a); - a.e.b += c.b; - a.d.c.length > 1 && (a.e.b += a.a); - } else { - a.e.a += c.a; - a.e.b = $wnd.Math.max(a.e.b, c.b); - a.d.c.length > 1 && (a.e.a += a.a); - } - } - function cmc(a) { - var b, c, d, e; - e = a.i; - b = e.b; - d = e.j; - c = e.g; - switch (e.a.g) { - case 0: - c.a = (a.g.b.o.a - d.a) / 2; - break; - case 1: - c.a = b.d.n.a + b.d.a.a; - break; - case 2: - c.a = b.d.n.a + b.d.a.a - d.a; - break; - case 3: - c.b = b.d.n.b + b.d.a.b; - } - } - function Q6c(a, b, c, d, e) { - if (d < b || e < c) { - throw vbb(new Wdb("The highx must be bigger then lowx and the highy must be bigger then lowy")); - } - a.a < b ? a.a = b : a.a > d && (a.a = d); - a.b < c ? a.b = c : a.b > e && (a.b = e); - return a; - } - function lsd(a) { - if (JD(a, 149)) { - return esd(BD(a, 149)); - } else if (JD(a, 229)) { - return fsd(BD(a, 229)); - } else if (JD(a, 23)) { - return gsd(BD(a, 23)); - } else { - throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [a]))))); - } - } - function mhb(a, b, c, d, e) { - var f, g10, h; - f = true; - for (g10 = 0; g10 < d; g10++) { - f = f & c[g10] == 0; - } - if (e == 0) { - $fb(c, d, a, 0, b); - g10 = b; - } else { - h = 32 - e; - f = f & c[g10] << h == 0; - for (g10 = 0; g10 < b - 1; g10++) { - a[g10] = c[g10 + d] >>> e | c[g10 + d + 1] << h; - } - a[g10] = c[g10 + d] >>> e; - ++g10; - } - return f; - } - function zMc(a, b, c, d) { - var e, f, g10; - if (b.k == (j0b(), g0b)) { - for (f = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - g10 = e.c.i.k; - if (g10 == g0b && a.c.a[e.c.i.c.p] == d && a.c.a[b.c.p] == c) { - return true; - } - } - } - return false; - } - function mD(a, b) { - var c, d, e, f; - b &= 63; - c = a.h & Fje; - if (b < 22) { - f = c >>> b; - e = a.m >> b | c << 22 - b; - d = a.l >> b | a.m << 22 - b; - } else if (b < 44) { - f = 0; - e = c >>> b - 22; - d = a.m >> b - 22 | a.h << 44 - b; - } else { - f = 0; - e = 0; - d = c >>> b - 44; - } - return TC(d & Eje, e & Eje, f & Fje); - } - function Iic(a, b, c, d) { - var e; - this.b = d; - this.e = a == (rGc(), pGc); - e = b[c]; - this.d = IC(sbb, [nie, dle], [177, 25], 16, [e.length, e.length], 2); - this.a = IC(WD, [nie, oje], [48, 25], 15, [e.length, e.length], 2); - this.c = new sic(b, c); - } - function ljc(a) { - var b, c, d; - a.k = new Ki((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, a.j.c.length); - for (d = new olb(a.j); d.a < d.c.c.length; ) { - c = BD(mlb(d), 113); - b = c.d.j; - Rc(a.k, b, c); - } - a.e = Zjc(Ec(a.k)); - } - function UQc(a, b) { - var c, d, e; - Qqb(a.d, b); - c = new _Qc(); - Rhb(a.c, b, c); - c.f = VQc(b.c); - c.a = VQc(b.d); - c.d = (hQc(), e = b.c.i.k, e == (j0b(), h0b) || e == d0b); - c.e = (d = b.d.i.k, d == h0b || d == d0b); - c.b = b.c.j == (Ucd(), Tcd); - c.c = b.d.j == zcd; - } - function BGb(a) { - var b, c, d, e, f; - f = Ohe; - e = Ohe; - for (d = new olb(LFb(a)); d.a < d.c.c.length; ) { - c = BD(mlb(d), 213); - b = c.e.e - c.d.e; - c.e == a && b < e ? e = b : b < f && (f = b); - } - e == Ohe && (e = -1); - f == Ohe && (f = -1); - return new vgd(meb(e), meb(f)); - } - function zQb(a, b) { - var c, d, e; - e = dme; - d = (ROb(), OOb); - e = $wnd.Math.abs(a.b); - c = $wnd.Math.abs(b.f - a.b); - if (c < e) { - e = c; - d = POb; - } - c = $wnd.Math.abs(a.a); - if (c < e) { - e = c; - d = QOb; - } - c = $wnd.Math.abs(b.g - a.a); - if (c < e) { - e = c; - d = NOb; - } - return d; - } - function L9b(a, b) { - var c, d, e, f; - c = b.a.o.a; - f = new Jib(Q_b(b.a).b, b.c, b.f + 1); - for (e = new vib(f); e.b < e.d.gc(); ) { - d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 29)); - if (d.c.a >= c) { - K9b(a, b, d.p); - return true; - } - } - return false; - } - function Iod(a) { - var b; - if ((a.Db & 64) != 0) - return fld(a); - b = new Wfb(dte); - !a.a || Qfb(Qfb((b.a += ' "', b), a.a), '"'); - Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")"); - return b.a; - } - function Z2d(a, b, c) { - var d, e, f, g10, h; - h = S6d(a.e.Tg(), b); - e = BD(a.g, 119); - d = 0; - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (h.rl(f.ak())) { - if (d == c) { - Xxd(a, g10); - return Q6d(), BD(b, 66).Oj() ? f : f.dd(); - } - ++d; - } - } - throw vbb(new qcb(gve + c + mue + d)); - } - function sde(a) { - var b, c, d; - b = a.c; - if (b == 2 || b == 7 || b == 1) { - return wfe(), wfe(), ffe; - } else { - d = qde(a); - c = null; - while ((b = a.c) != 2 && b != 7 && b != 1) { - if (!c) { - c = (wfe(), wfe(), ++vfe, new Lge(1)); - Kge(c, d); - d = c; - } - Kge(c, qde(a)); - } - return d; - } - } - function Kb(a, b, c) { - if (a < 0 || a > c) { - return Jb(a, c, "start index"); - } - if (b < 0 || b > c) { - return Jb(b, c, "end index"); - } - return hc("end index (%s) must not be less than start index (%s)", OC(GC(SI, 1), Uhe, 1, 5, [meb(b), meb(a)])); - } - function Pz(b, c) { - var d, e, f, g10; - for (e = 0, f = b.length; e < f; e++) { - g10 = b[e]; - try { - g10[1] ? g10[0].jm() && (c = Oz(c, g10)) : g10[0].jm(); - } catch (a) { - a = ubb(a); - if (JD(a, 78)) { - d = a; - Az(); - Gz(JD(d, 477) ? BD(d, 477).ae() : d); - } else - throw vbb(a); - } - } - return c; - } - function K9b(a, b, c) { - var d, e, f; - c != b.c + b.b.gc() && Z9b(b.a, fac(b, c - b.c)); - f = b.a.c.p; - a.a[f] = $wnd.Math.max(a.a[f], b.a.o.a); - for (e = BD(vNb(b.a, (wtc(), ktc)), 15).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 70); - yNb(d, H9b, (Bcb(), true)); - } - } - function Wec(a, b) { - var c, d, e; - e = Vec(b); - yNb(b, (wtc(), Xsc), e); - if (e) { - d = Ohe; - !!irb(a.f, e) && (d = BD(Wd(irb(a.f, e)), 19).a); - c = BD(Ikb(b.g, 0), 17); - Ccb(DD(vNb(c, ltc))) || Rhb(a, e, meb($wnd.Math.min(BD(vNb(c, Zsc), 19).a, d))); - } - } - function iCc(a, b, c) { - var d, e, f, g10, h; - b.p = -1; - for (h = W_b(b, (KAc(), IAc)).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 11); - for (e = new olb(g10.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - f = d.d.i; - b != f && (f.p < 0 ? c.Fc(d) : f.p > 0 && iCc(a, f, c)); - } - } - b.p = 0; - } - function p5c(a) { - var b; - this.c = new Psb(); - this.f = a.e; - this.e = a.d; - this.i = a.g; - this.d = a.c; - this.b = a.b; - this.k = a.j; - this.a = a.a; - !a.i ? this.j = (b = BD(gdb(e1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.j = a.i; - this.g = a.f; - } - function Wb(a) { - var b, c, d, e; - b = Kfb(Qfb(new Wfb("Predicates."), "and"), 40); - c = true; - for (e = new vib(a); e.b < e.d.gc(); ) { - d = (sCb(e.b < e.d.gc()), e.d.Xb(e.c = e.b++)); - c || (b.a += ",", b); - b.a += "" + d; - c = false; - } - return (b.a += ")", b).a; - } - function Rcc(a, b, c) { - var d, e, f; - if (c <= b + 2) { - return; - } - e = (c - b) / 2 | 0; - for (d = 0; d < e; ++d) { - f = (tCb(b + d, a.c.length), BD(a.c[b + d], 11)); - Nkb(a, b + d, (tCb(c - d - 1, a.c.length), BD(a.c[c - d - 1], 11))); - tCb(c - d - 1, a.c.length); - a.c[c - d - 1] = f; - } - } - function hjc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - f = a.d.p; - h = f.e; - i10 = f.r; - a.g = new dIc(i10); - g10 = a.d.o.c.p; - d = g10 > 0 ? h[g10 - 1] : KC(OQ, kne, 10, 0, 0, 1); - e = h[g10]; - j = g10 < h.length - 1 ? h[g10 + 1] : KC(OQ, kne, 10, 0, 0, 1); - k = b == c - 1; - k ? RHc(a.g, e, j) : RHc(a.g, d, e); - } - function pjc(a) { - var b; - this.j = new Rkb(); - this.f = new Tqb(); - this.b = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - this.d = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1); - this.g = a; - } - function QVc(a, b) { - var c, d, e; - if (b.c.length != 0) { - c = RVc(a, b); - e = false; - while (!c) { - AVc(a, b, true); - e = true; - c = RVc(a, b); - } - e && AVc(a, b, false); - d = dVc(b); - !!a.b && a.b.lg(d); - a.a = PVc(a, (tCb(0, b.c.length), BD(b.c[0], 33))); - QVc(a, d); - } - } - function Cid(a, b) { - var c, d, e; - d = XKd(a.Tg(), b); - c = b - a.Ah(); - if (c < 0) { - if (!d) { - throw vbb(new Wdb(mte + b + nte)); - } else if (d.Ij()) { - e = a.Yg(d); - e >= 0 ? a.Bh(e) : vid(a, d); - } else { - throw vbb(new Wdb(ite + d.ne() + jte)); - } - } else { - eid(a, c, d); - } - } - function aqd(a) { - var b, c; - c = null; - b = false; - if (JD(a, 204)) { - b = true; - c = BD(a, 204).a; - } - if (!b) { - if (JD(a, 258)) { - b = true; - c = "" + BD(a, 258).a; - } - } - if (!b) { - if (JD(a, 483)) { - b = true; - c = "" + BD(a, 483).a; - } - } - if (!b) { - throw vbb(new vcb(Ute)); - } - return c; - } - function ORd(a, b) { - var c, d; - if (a.f) { - while (b.Ob()) { - c = BD(b.Pb(), 72); - d = c.ak(); - if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c.dd() != null) { - b.Ub(); - return true; - } - } - return false; - } else { - return b.Ob(); - } - } - function QRd(a, b) { - var c, d; - if (a.f) { - while (b.Sb()) { - c = BD(b.Ub(), 72); - d = c.ak(); - if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c.dd() != null) { - b.Pb(); - return true; - } - } - return false; - } else { - return b.Sb(); - } - } - function I2d(a, b, c) { - var d, e, f, g10, h, i10; - i10 = S6d(a.e.Tg(), b); - d = 0; - h = a.i; - e = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (i10.rl(f.ak())) { - if (c == d) { - return g10; - } - ++d; - h = g10 + 1; - } - } - if (c == d) { - return h; - } else { - throw vbb(new qcb(gve + c + mue + d)); - } - } - function d9b(a, b) { - var c, d, e, f; - if (a.f.c.length == 0) { - return null; - } else { - f = new I6c(); - for (d = new olb(a.f); d.a < d.c.c.length; ) { - c = BD(mlb(d), 70); - e = c.o; - f.b = $wnd.Math.max(f.b, e.a); - f.a += e.b; - } - f.a += (a.f.c.length - 1) * b; - return f; - } - } - function QJc(a, b, c) { - var d, e, f; - for (e = new Sr(ur(O_b(c).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - if (!(!OZb(d) && !(!OZb(d) && d.c.i.c == d.d.i.c))) { - continue; - } - f = IJc(a, d, c, new vKc()); - f.c.length > 1 && (b.c[b.c.length] = f, true); - } - } - function TJc(a) { - var b, c, d, e; - c = new Psb(); - ye(c, a.o); - d = new twb(); - while (c.b != 0) { - b = BD(c.b == 0 ? null : (sCb(c.b != 0), Nsb(c, c.a.a)), 508); - e = KJc(a, b, true); - e && Ekb(d.a, b); - } - while (d.a.c.length != 0) { - b = BD(rwb(d), 508); - KJc(a, b, false); - } - } - function _5c() { - _5c = ccb; - $5c = new a6c(ole, 0); - T5c = new a6c("BOOLEAN", 1); - X5c = new a6c("INT", 2); - Z5c = new a6c("STRING", 3); - U5c = new a6c("DOUBLE", 4); - V5c = new a6c("ENUM", 5); - W5c = new a6c("ENUMSET", 6); - Y5c = new a6c("OBJECT", 7); - } - function H6c(a, b) { - var c, d, e, f, g10; - d = $wnd.Math.min(a.c, b.c); - f = $wnd.Math.min(a.d, b.d); - e = $wnd.Math.max(a.c + a.b, b.c + b.b); - g10 = $wnd.Math.max(a.d + a.a, b.d + b.a); - if (e < d) { - c = d; - d = e; - e = c; - } - if (g10 < f) { - c = f; - f = g10; - g10 = c; - } - G6c(a, d, f, e - d, g10 - f); - } - function O6d() { - O6d = ccb; - L6d = OC(GC(ZI, 1), nie, 2, 6, [swe, twe, uwe, vwe, wwe, xwe, eue]); - K6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "empty", twe, Qve, "elementOnly"]); - N6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "preserve", "replace", ywe]); - M6d = new y1d(); - } - function Y$b(a, b, c) { - var d, e, f; - if (b == c) { - return; - } - d = b; - do { - P6c(a, d.c); - e = d.e; - if (e) { - f = d.d; - O6c(a, f.b, f.d); - P6c(a, e.n); - d = Q_b(e); - } - } while (e); - d = c; - do { - c7c(a, d.c); - e = d.e; - if (e) { - f = d.d; - b7c(a, f.b, f.d); - c7c(a, e.n); - d = Q_b(e); - } - } while (e); - } - function qic(a, b, c, d) { - var e, f, g10, h, i10; - if (d.f.c + d.g.c == 0) { - for (g10 = a.a[a.c], h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - Rhb(d, f, new zic(a, f, c)); - } - } - e = BD(Wd(irb(d.f, b)), 663); - e.b = 0; - e.c = e.f; - e.c == 0 || Cic(BD(Ikb(e.a, e.b), 287)); - return e; - } - function Apc() { - Apc = ccb; - wpc = new Bpc("MEDIAN_LAYER", 0); - ypc = new Bpc("TAIL_LAYER", 1); - vpc = new Bpc("HEAD_LAYER", 2); - xpc = new Bpc("SPACE_EFFICIENT_LAYER", 3); - zpc = new Bpc("WIDEST_LAYER", 4); - upc = new Bpc("CENTER_LAYER", 5); - } - function rJb(a) { - switch (a.g) { - case 0: - case 1: - case 2: - return Ucd(), Acd; - case 3: - case 4: - case 5: - return Ucd(), Rcd; - case 6: - case 7: - case 8: - return Ucd(), Tcd; - case 9: - case 10: - case 11: - return Ucd(), zcd; - default: - return Ucd(), Scd; - } - } - function sKc(a, b) { - var c; - if (a.c.length == 0) { - return false; - } - c = Lzc((tCb(0, a.c.length), BD(a.c[0], 17)).c.i); - FJc(); - if (c == (Izc(), Fzc) || c == Ezc) { - return true; - } - return FAb(NAb(new YAb(null, new Kub(a, 16)), new AKc()), new CKc(b)); - } - function cRc(a, b, c) { - var d, e, f; - if (!a.b[b.g]) { - a.b[b.g] = true; - d = c; - !d && (d = new SRc()); - Dsb(d.b, b); - for (f = a.a[b.g].Kc(); f.Ob(); ) { - e = BD(f.Pb(), 188); - e.b != b && cRc(a, e.b, d); - e.c != b && cRc(a, e.c, d); - Dsb(d.a, e); - } - return d; - } - return null; - } - function qSc() { - qSc = ccb; - pSc = new rSc("ROOT_PROC", 0); - lSc = new rSc("FAN_PROC", 1); - nSc = new rSc("NEIGHBORS_PROC", 2); - mSc = new rSc("LEVEL_HEIGHT", 3); - oSc = new rSc("NODE_POSITION_PROC", 4); - kSc = new rSc("DETREEIFYING_PROC", 5); - } - function kqd(a, b) { - if (JD(b, 239)) { - return eqd(a, BD(b, 33)); - } else if (JD(b, 186)) { - return fqd(a, BD(b, 118)); - } else if (JD(b, 439)) { - return dqd(a, BD(b, 202)); - } else { - throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b]))))); - } - } - function xu(a, b, c) { - var d, e; - this.f = a; - d = BD(Ohb(a.b, b), 283); - e = !d ? 0 : d.a; - Sb(c, e); - if (c >= (e / 2 | 0)) { - this.e = !d ? null : d.c; - this.d = e; - while (c++ < e) { - vu(this); - } - } else { - this.c = !d ? null : d.b; - while (c-- > 0) { - uu(this); - } - } - this.b = b; - this.a = null; - } - function rEb(a, b) { - var c, d; - b.a ? sEb(a, b) : (c = BD(Exb(a.b, b.b), 57), !!c && c == a.a[b.b.f] && !!c.a && c.a != b.b.a && c.c.Fc(b.b), d = BD(Dxb(a.b, b.b), 57), !!d && a.a[d.f] == b.b && !!d.a && d.a != b.b.a && b.b.c.Fc(d), Fxb(a.b, b.b), void 0); - } - function FJb(a, b) { - var c, d; - c = BD(Mpb(a.b, b), 124); - if (BD(BD(Qc(a.r, b), 21), 84).dc()) { - c.n.b = 0; - c.n.c = 0; - return; - } - c.n.b = a.C.b; - c.n.c = a.C.c; - a.A.Hc((tdd(), sdd)) && KJb(a, b); - d = JJb(a, b); - KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w); - c.a.a = d; - } - function OKb(a, b) { - var c, d; - c = BD(Mpb(a.b, b), 124); - if (BD(BD(Qc(a.r, b), 21), 84).dc()) { - c.n.d = 0; - c.n.a = 0; - return; - } - c.n.d = a.C.d; - c.n.a = a.C.a; - a.A.Hc((tdd(), sdd)) && SKb(a, b); - d = RKb(a, b); - KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w); - c.a.b = d; - } - function cOb(a, b) { - var c, d, e, f; - f = new Rkb(); - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 65); - Ekb(f, new oOb(c, true)); - Ekb(f, new oOb(c, false)); - } - e = new hOb(a); - zwb(e.a.a); - kDb(f, a.b, new amb(OC(GC(JM, 1), Uhe, 679, 0, [e]))); - } - function rQb(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - i10 = a.a; - n = a.b; - j = b.a; - o10 = b.b; - k = c.a; - p = c.b; - l = d.a; - q = d.b; - f = i10 * o10 - n * j; - g10 = k * q - p * l; - e = (i10 - j) * (p - q) - (n - o10) * (k - l); - h = (f * (k - l) - g10 * (i10 - j)) / e; - m = (f * (p - q) - g10 * (n - o10)) / e; - return new f7c(h, m); - } - function TBc(a, b) { - var c, d, e; - if (a.d[b.p]) { - return; - } - a.d[b.p] = true; - a.a[b.p] = true; - for (d = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (OZb(c)) { - continue; - } - e = c.d.i; - a.a[e.p] ? Ekb(a.b, c) : TBc(a, e); - } - a.a[b.p] = false; - } - function pCc(a, b, c) { - var d; - d = 0; - switch (BD(vNb(b, (Nyc(), mxc)), 163).g) { - case 2: - d = 2 * -c + a.a; - ++a.a; - break; - case 1: - d = -c; - break; - case 3: - d = c; - break; - case 4: - d = 2 * c + a.b; - ++a.b; - } - wNb(b, (wtc(), Zsc)) && (d += BD(vNb(b, Zsc), 19).a); - return d; - } - function jOc(a, b, c) { - var d, e, f; - c.zc(b, a); - Ekb(a.n, b); - f = a.p.eg(b); - b.j == a.p.fg() ? yOc(a.e, f) : yOc(a.j, f); - lOc(a); - for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(e); ) { - d = BD(Rr(e), 11); - c._b(d) || jOc(a, d, c); - } - } - function rfd(a) { - var b, c, d; - c = BD(hkd(a, (Y9c(), Y8c)), 21); - if (c.Hc((tdd(), pdd))) { - d = BD(hkd(a, b9c), 21); - b = new g7c(BD(hkd(a, _8c), 8)); - if (d.Hc((Idd(), Bdd))) { - b.a <= 0 && (b.a = 20); - b.b <= 0 && (b.b = 20); - } - return b; - } else { - return new d7c(); - } - } - function PKd(a) { - var b, c, d; - if (!a.b) { - d = new $Nd(); - for (c = new $yd(SKd(a)); c.e != c.i.gc(); ) { - b = BD(Zyd(c), 18); - (b.Bb & ote) != 0 && wtd(d, b); - } - vud(d); - a.b = new nNd((BD(qud(ZKd((NFd(), MFd).o), 8), 18), d.i), d.g); - $Kd(a).b &= -9; - } - return a.b; - } - function Rmc(a, b) { - var c, d, e, f, g10, h, i10, j; - i10 = BD(Ee(Ec(b.k), KC(F1, bne, 61, 2, 0, 1)), 122); - j = b.g; - c = Tmc(b, i10[0]); - e = Smc(b, i10[1]); - d = Kmc(a, j, c, e); - f = Tmc(b, i10[1]); - h = Smc(b, i10[0]); - g10 = Kmc(a, j, f, h); - if (d <= g10) { - b.a = c; - b.c = e; - } else { - b.a = f; - b.c = h; - } - } - function ESc(a, b, c) { - var d, e, f; - Odd(c, "Processor set neighbors", 1); - a.a = b.b.b == 0 ? 1 : b.b.b; - e = null; - d = Jsb(b.b, 0); - while (!e && d.b != d.d.c) { - f = BD(Xsb(d), 86); - Ccb(DD(vNb(f, (mTc(), jTc)))) && (e = f); - } - !!e && FSc(a, new ZRc(e), c); - Qdd(c); - } - function PEd(a) { - IEd(); - var b, c, d, e; - d = hfb(a, wfb(35)); - b = d == -1 ? a : a.substr(0, d); - c = d == -1 ? null : a.substr(d + 1); - e = kFd(HEd, b); - if (!e) { - e = aFd(b); - lFd(HEd, b, e); - c != null && (e = JEd(e, c)); - } else - c != null && (e = JEd(e, (uCb(c), c))); - return e; - } - function smb(a) { - var h; - mmb(); - var b, c, d, e, f, g10; - if (JD(a, 54)) { - for (e = 0, d = a.gc() - 1; e < d; ++e, --d) { - h = a.Xb(e); - a._c(e, a.Xb(d)); - a._c(d, h); - } - } else { - b = a.Yc(); - f = a.Zc(a.gc()); - while (b.Tb() < f.Vb()) { - c = b.Pb(); - g10 = f.Ub(); - b.Wb(g10); - f.Wb(c); - } - } - } - function I3b(a, b) { - var c, d, e; - Odd(b, "End label pre-processing", 1); - c = Edb(ED(vNb(a, (Nyc(), nyc)))); - d = Edb(ED(vNb(a, ryc))); - e = gad(BD(vNb(a, Lwc), 103)); - MAb(LAb(new YAb(null, new Kub(a.b, 16)), new Q3b()), new S3b(c, d, e)); - Qdd(b); - } - function NFc(a, b) { - var c, d, e, f, g10, h; - h = 0; - f = new jkb(); - Wjb(f, b); - while (f.b != f.c) { - g10 = BD(fkb(f), 214); - h += pHc(g10.d, g10.e); - for (e = new olb(g10.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 37); - c = BD(Ikb(a.b, d.p), 214); - c.s || (h += NFc(a, c)); - } - } - return h; - } - function YQc(a, b, c) { - var d, e; - TQc(this); - b == (FQc(), DQc) ? Qqb(this.r, a.c) : Qqb(this.w, a.c); - c == DQc ? Qqb(this.r, a.d) : Qqb(this.w, a.d); - UQc(this, a); - d = VQc(a.c); - e = VQc(a.d); - XQc(this, d, e, e); - this.o = (hQc(), $wnd.Math.abs(d - e) < 0.2); - } - function a0d(a, b, c) { - var d, e, f, g10, h, i10; - h = BD(Ajd(a.a, 8), 1936); - if (h != null) { - for (e = h, f = 0, g10 = e.length; f < g10; ++f) { - null.jm(); - } - } - d = c; - if ((a.a.Db & 1) == 0) { - i10 = new f0d(a, c, b); - d.ui(i10); - } - JD(d, 672) ? BD(d, 672).wi(a.a) : d.ti() == a.a && d.vi(null); - } - function dae() { - var a; - if (Z9d) - return BD(nUd((yFd(), xFd), Ewe), 1945); - eae(); - a = BD(JD(Phb((yFd(), xFd), Ewe), 586) ? Phb(xFd, Ewe) : new cae(), 586); - Z9d = true; - aae(a); - bae(a); - Rhb((JFd(), IFd), a, new fae()); - Tnd(a); - Shb(xFd, Ewe, a); - return a; - } - function xA(a, b, c, d) { - var e; - e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b); - e < 0 && (e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b)); - if (e < 0) { - return false; - } - d.d = e; - return true; - } - function AA(a, b, c, d) { - var e; - e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b); - e < 0 && (e = oA(a, c, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b)); - if (e < 0) { - return false; - } - d.d = e; - return true; - } - function NVb(a) { - var b, c, d; - KVb(a); - d = new Rkb(); - for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - Ekb(d, new ZVb(b, true)); - Ekb(d, new ZVb(b, false)); - } - RVb(a.c); - rXb(d, a.b, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [a.c]))); - MVb(a); - } - function c4b(a) { - var b, c, d, e; - c = new Lqb(); - for (e = new olb(a.d); e.a < e.c.c.length; ) { - d = BD(mlb(e), 181); - b = BD(d.We((wtc(), Dsc)), 17); - !!irb(c.f, b) || Rhb(c, b, new p4b(b)); - Ekb(BD(Wd(irb(c.f, b)), 456).b, d); - } - return new Tkb(new $ib(c)); - } - function Gac(a, b) { - var c, d, e, f, g10; - d = new kkb(a.j.c.length); - c = null; - for (f = new olb(a.j); f.a < f.c.c.length; ) { - e = BD(mlb(f), 11); - if (e.j != c) { - d.b == d.c || Hac(d, c, b); - Yjb(d); - c = e.j; - } - g10 = N3b(e); - !!g10 && (Xjb(d, g10), true); - } - d.b == d.c || Hac(d, c, b); - } - function wbc(a, b) { - var c, d, e; - d = new Bib(a.b, 0); - while (d.b < d.d.gc()) { - c = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 70)); - e = BD(vNb(c, (Nyc(), Qwc)), 272); - if (e == (qad(), oad)) { - uib(d); - Ekb(b.b, c); - wNb(c, (wtc(), Dsc)) || yNb(c, Dsc, a); - } - } - } - function GDc(a) { - var b, c, d, e, f; - b = sr(new Sr(ur(U_b(a).a.Kc(), new Sq()))); - for (e = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - c = d.c.i; - f = sr(new Sr(ur(U_b(c).a.Kc(), new Sq()))); - b = $wnd.Math.max(b, f); - } - return meb(b); - } - function rUc(a, b, c) { - var d, e, f, g10; - Odd(c, "Processor arrange node", 1); - e = null; - f = new Psb(); - d = Jsb(b.b, 0); - while (!e && d.b != d.d.c) { - g10 = BD(Xsb(d), 86); - Ccb(DD(vNb(g10, (mTc(), jTc)))) && (e = g10); - } - Gsb(f, e, f.c.b, f.c); - qUc(a, f, Udd(c, 1)); - Qdd(c); - } - function Ffd(a, b, c) { - var d, e, f; - d = BD(hkd(a, (Y9c(), w8c)), 21); - e = 0; - f = 0; - b.a > c.a && (d.Hc((i8c(), c8c)) ? e = (b.a - c.a) / 2 : d.Hc(e8c) && (e = b.a - c.a)); - b.b > c.b && (d.Hc((i8c(), g8c)) ? f = (b.b - c.b) / 2 : d.Hc(f8c) && (f = b.b - c.b)); - Efd(a, e, f); - } - function aod(a, b, c, d, e, f, g10, h, i10, j, k, l, m) { - JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4); - pnd(a, c); - a.f = g10; - dJd(a, h); - fJd(a, i10); - ZId(a, j); - eJd(a, k); - CId(a, l); - aJd(a, m); - BId(a, true); - AId(a, e); - a.ok(f); - yId(a, b); - d != null && (a.i = null, _Id(a, d)); - } - function PRd(a) { - var b, c; - if (a.f) { - while (a.n > 0) { - b = BD(a.k.Xb(a.n - 1), 72); - c = b.ak(); - if (JD(c, 99) && (BD(c, 18).Bb & ote) != 0 && (!a.e || c.Gj() != x2 || c.aj() != 0) && b.dd() != null) { - return true; - } else { - --a.n; - } - } - return false; - } else { - return a.n > 0; - } - } - function Jb(a, b, c) { - if (a < 0) { - return hc(The, OC(GC(SI, 1), Uhe, 1, 5, [c, meb(a)])); - } else if (b < 0) { - throw vbb(new Wdb(Vhe + b)); - } else { - return hc("%s (%s) must not be greater than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, [c, meb(a), meb(b)])); - } - } - function Llb(a, b, c, d, e, f) { - var g10, h, i10, j; - g10 = d - c; - if (g10 < 7) { - Ilb(b, c, d, f); - return; - } - i10 = c + e; - h = d + e; - j = i10 + (h - i10 >> 1); - Llb(b, a, i10, j, -e, f); - Llb(b, a, j, h, -e, f); - if (f.ue(a[j - 1], a[j]) <= 0) { - while (c < d) { - NC(b, c++, a[i10++]); - } - return; - } - Jlb(a, i10, j, h, b, c, d, f); - } - function nEb(a, b) { - var c, d, e; - e = new Rkb(); - for (d = new olb(a.c.a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 57); - if (b.Lb(c)) { - Ekb(e, new BEb(c, true)); - Ekb(e, new BEb(c, false)); - } - } - tEb(a.e); - kDb(e, a.d, new amb(OC(GC(JM, 1), Uhe, 679, 0, [a.e]))); - } - function gnc(a, b) { - var c, d, e, f, g10, h, i10; - i10 = b.d; - e = b.b.j; - for (h = new olb(i10); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 101); - f = KC(sbb, dle, 25, e.c.length, 16, 1); - Rhb(a.b, g10, f); - c = g10.a.d.p - 1; - d = g10.c.d.p; - while (c != d) { - c = (c + 1) % e.c.length; - f[c] = true; - } - } - } - function tOc(a, b) { - a.r = new uOc(a.p); - sOc(a.r, a); - ye(a.r.j, a.j); - Osb(a.j); - Dsb(a.j, b); - Dsb(a.r.e, b); - lOc(a); - lOc(a.r); - while (a.f.c.length != 0) { - AOc(BD(Ikb(a.f, 0), 129)); - } - while (a.k.c.length != 0) { - AOc(BD(Ikb(a.k, 0), 129)); - } - return a.r; - } - function yid(a, b, c) { - var d, e, f; - e = XKd(a.Tg(), b); - d = b - a.Ah(); - if (d < 0) { - if (!e) { - throw vbb(new Wdb(mte + b + nte)); - } else if (e.Ij()) { - f = a.Yg(e); - f >= 0 ? a.sh(f, c) : uid(a, e, c); - } else { - throw vbb(new Wdb(ite + e.ne() + jte)); - } - } else { - did(a, d, e, c); - } - } - function q6d(b) { - var c, d, e, f; - d = BD(b, 49).qh(); - if (d) { - try { - e = null; - c = nUd((yFd(), xFd), LEd(MEd(d))); - if (c) { - f = c.rh(); - !!f && (e = f.Wk(tfb(d.e))); - } - if (!!e && e != b) { - return q6d(e); - } - } catch (a) { - a = ubb(a); - if (!JD(a, 60)) - throw vbb(a); - } - } - return b; - } - function jrb(a, b, c) { - var d, e, f, g10; - g10 = b == null ? 0 : a.b.se(b); - e = (d = a.a.get(g10), d == null ? new Array() : d); - if (e.length == 0) { - a.a.set(g10, e); - } else { - f = grb(a, b, e); - if (f) { - return f.ed(c); - } - } - NC(e, e.length, new pjb(b, c)); - ++a.c; - zpb(a.b); - return null; - } - function YUc(a, b) { - var c, d; - H2c(a.a); - K2c(a.a, (PUc(), NUc), NUc); - K2c(a.a, OUc, OUc); - d = new j3c(); - e3c(d, OUc, (tVc(), sVc)); - PD(hkd(b, (ZWc(), LWc))) !== PD((pWc(), mWc)) && e3c(d, OUc, qVc); - e3c(d, OUc, rVc); - E2c(a.a, d); - c = F2c(a.a, b); - return c; - } - function uC(a) { - if (!a) { - return OB(), NB; - } - var b = a.valueOf ? a.valueOf() : a; - if (b !== a) { - var c = qC[typeof b]; - return c ? c(b) : xC(typeof b); - } else if (a instanceof Array || a instanceof $wnd.Array) { - return new xB(a); - } else { - return new fC(a); - } - } - function RJb(a, b, c) { - var d, e, f; - f = a.o; - d = BD(Mpb(a.p, c), 244); - e = d.i; - e.b = gIb(d); - e.a = fIb(d); - e.b = $wnd.Math.max(e.b, f.a); - e.b > f.a && !b && (e.b = f.a); - e.c = -(e.b - f.a) / 2; - switch (c.g) { - case 1: - e.d = -e.a; - break; - case 3: - e.d = f.b; - } - hIb(d); - iIb(d); - } - function SJb(a, b, c) { - var d, e, f; - f = a.o; - d = BD(Mpb(a.p, c), 244); - e = d.i; - e.b = gIb(d); - e.a = fIb(d); - e.a = $wnd.Math.max(e.a, f.b); - e.a > f.b && !b && (e.a = f.b); - e.d = -(e.a - f.b) / 2; - switch (c.g) { - case 4: - e.c = -e.b; - break; - case 2: - e.c = f.a; - } - hIb(d); - iIb(d); - } - function Jgc(a, b) { - var c, d, e, f, g10; - if (b.dc()) { - return; - } - e = BD(b.Xb(0), 128); - if (b.gc() == 1) { - Igc(a, e, e, 1, 0, b); - return; - } - c = 1; - while (c < b.gc()) { - if (e.j || !e.o) { - f = Ogc(b, c); - if (f) { - d = BD(f.a, 19).a; - g10 = BD(f.b, 128); - Igc(a, e, g10, c, d, b); - c = d + 1; - e = g10; - } - } - } - } - function mlc(a) { - var b, c, d, e, f, g10; - g10 = new Tkb(a.d); - Okb(g10, new Qlc()); - b = (Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc])); - c = 0; - for (f = new olb(g10); f.a < f.c.c.length; ) { - e = BD(mlb(f), 101); - d = b[c % b.length]; - olc(e, d); - ++c; - } - } - function o6c(a, b) { - i6c(); - var c, d, e, f; - if (b.b < 2) { - return false; - } - f = Jsb(b, 0); - c = BD(Xsb(f), 8); - d = c; - while (f.b != f.d.c) { - e = BD(Xsb(f), 8); - if (!(m6c(a, d) && m6c(a, e))) { - return false; - } - d = e; - } - if (!(m6c(a, d) && m6c(a, c))) { - return false; - } - return true; - } - function hrd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - k = null; - l = a; - g10 = Xpd(l, "x"); - c = new Krd(b); - Gqd(c.a, g10); - h = Xpd(l, "y"); - d = new Lrd(b); - Hqd(d.a, h); - i10 = Xpd(l, Gte); - e = new Mrd(b); - Iqd(e.a, i10); - j = Xpd(l, Fte); - f = new Nrd(b); - k = (Jqd(f.a, j), j); - return k; - } - function XMd(a, b) { - TMd(a, b); - (a.b & 1) != 0 && (a.a.a = null); - (a.b & 2) != 0 && (a.a.f = null); - if ((a.b & 4) != 0) { - a.a.g = null; - a.a.i = null; - } - if ((a.b & 16) != 0) { - a.a.d = null; - a.a.e = null; - } - (a.b & 8) != 0 && (a.a.b = null); - if ((a.b & 32) != 0) { - a.a.j = null; - a.a.c = null; - } - } - function l0d(b, c) { - var d, e, f; - f = 0; - if (c.length > 0) { - try { - f = Icb(c, Rie, Ohe); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - e = a; - throw vbb(new rFd(e)); - } else - throw vbb(a); - } - } - d = (!b.a && (b.a = new z0d(b)), b.a); - return f < d.i && f >= 0 ? BD(qud(d, f), 56) : null; - } - function Ib(a, b) { - if (a < 0) { - return hc(The, OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a)])); - } else if (b < 0) { - throw vbb(new Wdb(Vhe + b)); - } else { - return hc("%s (%s) must be less than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a), meb(b)])); - } - } - function Slb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b); - Nfb(f.a, "" + b); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function Tlb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b); - Nfb(f.a, "" + b); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function Ulb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b); - Nfb(f.a, "" + b); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function Xlb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b); - Nfb(f.a, "" + b); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function bub(a, b) { - var c, d, e, f, g10, h; - c = a.b.c.length; - e = Ikb(a.b, b); - while (b * 2 + 1 < c) { - d = (f = 2 * b + 1, g10 = f + 1, h = f, g10 < c && a.a.ue(Ikb(a.b, g10), Ikb(a.b, f)) < 0 && (h = g10), h); - if (a.a.ue(e, Ikb(a.b, d)) < 0) { - break; - } - Nkb(a.b, b, Ikb(a.b, d)); - b = d; - } - Nkb(a.b, b, e); - } - function $Bb(a, b, c, d, e, f) { - var g10, h, i10, j, k; - if (PD(a) === PD(c)) { - a = a.slice(b, b + e); - b = 0; - } - i10 = c; - for (h = b, j = b + e; h < j; ) { - g10 = $wnd.Math.min(h + 1e4, j); - e = g10 - h; - k = a.slice(h, g10); - k.splice(0, 0, d, f ? e : 0); - Array.prototype.splice.apply(i10, k); - h = g10; - d += e; - } - } - function xGb(a, b, c) { - var d, e; - d = c.d; - e = c.e; - if (a.g[d.d] <= a.i[b.d] && a.i[b.d] <= a.i[d.d] && a.g[e.d] <= a.i[b.d] && a.i[b.d] <= a.i[e.d]) { - if (a.i[d.d] < a.i[e.d]) { - return false; - } - return true; - } - if (a.i[d.d] < a.i[e.d]) { - return true; - } - return false; - } - function cRb(a) { - var b, c, d, e, f, g10, h; - d = a.a.c.length; - if (d > 0) { - g10 = a.c.d; - h = a.d.d; - e = Y6c(c7c(new f7c(h.a, h.b), g10), 1 / (d + 1)); - f = new f7c(g10.a, g10.b); - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 559); - b.d.a = f.a; - b.d.b = f.b; - P6c(f, e); - } - } - } - function YNb(a, b, c) { - var d, e, f, g10, h, i10; - i10 = Pje; - for (f = new olb(wOb(a.b)); f.a < f.c.c.length; ) { - e = BD(mlb(f), 168); - for (h = new olb(wOb(b.b)); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 168); - d = p6c(e.a, e.b, g10.a, g10.b, c); - i10 = $wnd.Math.min(i10, d); - } - } - return i10; - } - function G0b(a, b) { - if (!b) { - throw vbb(new Geb()); - } - a.j = b; - if (!a.d) { - switch (a.j.g) { - case 1: - a.a.a = a.o.a / 2; - a.a.b = 0; - break; - case 2: - a.a.a = a.o.a; - a.a.b = a.o.b / 2; - break; - case 3: - a.a.a = a.o.a / 2; - a.a.b = a.o.b; - break; - case 4: - a.a.a = 0; - a.a.b = a.o.b / 2; - } - } - } - function dfc(a, b) { - var c, d, e; - if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) { - return Pje; - } - e = ugc(b); - if (e) { - return $wnd.Math.max(0, a.b / 2 - 0.5); - } - c = tgc(b); - if (c) { - d = Edb(ED(pBc(c, (Nyc(), vyc)))); - return $wnd.Math.max(0, d / 2 - 0.5); - } - return Pje; - } - function ffc(a, b) { - var c, d, e; - if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) { - return Pje; - } - e = ugc(b); - if (e) { - return $wnd.Math.max(0, a.b / 2 - 0.5); - } - c = tgc(b); - if (c) { - d = Edb(ED(pBc(c, (Nyc(), vyc)))); - return $wnd.Math.max(0, d / 2 - 0.5); - } - return Pje; - } - function xic(a) { - var b, c, d, e, f, g10; - g10 = CHc(a.d, a.e); - for (f = g10.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 11); - d = a.e == (Ucd(), Tcd) ? e.e : e.g; - for (c = new olb(d); c.a < c.c.c.length; ) { - b = BD(mlb(c), 17); - if (!OZb(b) && b.c.i.c != b.d.i.c) { - tic(a, b); - ++a.f; - ++a.c; - } - } - } - } - function tpc(a, b) { - var c, d; - if (b.dc()) { - return mmb(), mmb(), jmb; - } - d = new Rkb(); - Ekb(d, meb(Rie)); - for (c = 1; c < a.f; ++c) { - a.a == null && Toc(a); - a.a[c] && Ekb(d, meb(c)); - } - if (d.c.length == 1) { - return mmb(), mmb(), jmb; - } - Ekb(d, meb(Ohe)); - return spc(b, d); - } - function MJc(a, b) { - var c, d, e, f, g10, h, i10; - g10 = b.c.i.k != (j0b(), h0b); - i10 = g10 ? b.d : b.c; - c = MZb(b, i10).i; - e = BD(Ohb(a.k, i10), 121); - d = a.i[c.p].a; - if (S_b(i10.i) < (!c.c ? -1 : Jkb(c.c.a, c, 0))) { - f = e; - h = d; - } else { - f = d; - h = e; - } - AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 4), f), h)); - } - function oqd(a, b, c) { - var d, e, f, g10, h, i10; - if (c) { - e = c.a.length; - d = new Yge(e); - for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - i10 = Wqd(a, Vpd(tB(c, g10.a))); - if (i10) { - f = (!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b); - wtd(f, i10); - } - } - } - } - function pqd(a, b, c) { - var d, e, f, g10, h, i10; - if (c) { - e = c.a.length; - d = new Yge(e); - for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - i10 = Wqd(a, Vpd(tB(c, g10.a))); - if (i10) { - f = (!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c); - wtd(f, i10); - } - } - } - } - function po(a, b, c) { - var d, e; - d = b.a & a.f; - b.b = a.b[d]; - a.b[d] = b; - e = b.f & a.f; - b.d = a.c[e]; - a.c[e] = b; - if (!c) { - b.e = a.e; - b.c = null; - !a.e ? a.a = b : a.e.c = b; - a.e = b; - } else { - b.e = c.e; - !b.e ? a.a = b : b.e.c = b; - b.c = c.c; - !b.c ? a.e = b : b.c.e = b; - } - ++a.i; - ++a.g; - } - function qr(a) { - var b, c, d; - b = a.Pb(); - if (!a.Ob()) { - return b; - } - d = Pfb(Qfb(new Ufb(), "expected one element but was: <"), b); - for (c = 0; c < 4 && a.Ob(); c++) { - Pfb((d.a += She, d), a.Pb()); - } - a.Ob() && (d.a += ", ...", d); - d.a += ">"; - throw vbb(new Wdb(d.a)); - } - function lt(a, b) { - var c; - b.d ? b.d.b = b.b : a.a = b.b; - b.b ? b.b.d = b.d : a.e = b.d; - if (!b.e && !b.c) { - c = BD(Thb(a.b, b.a), 283); - c.a = 0; - ++a.c; - } else { - c = BD(Ohb(a.b, b.a), 283); - --c.a; - !b.e ? c.b = b.c : b.e.c = b.c; - !b.c ? c.c = b.e : b.c.e = b.e; - } - --a.d; - } - function OA(a) { - var b, c; - c = -a.a; - b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 48, 48]); - if (c < 0) { - b[0] = 45; - c = -c; - } - b[1] = b[1] + ((c / 60 | 0) / 10 | 0) & aje; - b[2] = b[2] + (c / 60 | 0) % 10 & aje; - b[3] = b[3] + (c % 60 / 10 | 0) & aje; - b[4] = b[4] + c % 10 & aje; - return zfb(b, 0, b.length); - } - function uRb(a, b, c) { - var d, e; - d = b.d; - e = c.d; - while (d.a - e.a == 0 && d.b - e.b == 0) { - d.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5; - d.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5; - e.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5; - e.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5; - } - } - function N_b(a) { - var b, c, d, e; - a.g = new Rpb(BD(Qb(F1), 290)); - d = 0; - c = (Ucd(), Acd); - b = 0; - for (; b < a.j.c.length; b++) { - e = BD(Ikb(a.j, b), 11); - if (e.j != c) { - d != b && Npb(a.g, c, new vgd(meb(d), meb(b))); - c = e.j; - d = b; - } - } - Npb(a.g, c, new vgd(meb(d), meb(b))); - } - function d4b(a) { - var b, c, d, e, f, g10, h; - d = 0; - for (c = new olb(a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 29); - for (f = new olb(b.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - e.p = d++; - for (h = new olb(e.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - g10.p = d++; - } - } - } - } - function qPc(a, b, c, d, e) { - var f, g10, h, i10, j; - if (b) { - for (h = b.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 10); - for (j = X_b(g10, (KAc(), IAc), c).Kc(); j.Ob(); ) { - i10 = BD(j.Pb(), 11); - f = BD(Wd(irb(e.f, i10)), 112); - if (!f) { - f = new uOc(a.d); - d.c[d.c.length] = f; - jOc(f, i10, e); - } - } - } - } - } - function vid(a, b) { - var c, d, e; - e = e1d((O6d(), M6d), a.Tg(), b); - if (e) { - Q6d(); - BD(e, 66).Oj() || (e = _1d(q1d(M6d, e))); - d = (c = a.Yg(e), BD(c >= 0 ? a._g(c, true, true) : sid(a, e, true), 153)); - BD(d, 215).ol(b); - } else { - throw vbb(new Wdb(ite + b.ne() + jte)); - } - } - function ugb(a) { - var b, c; - if (a > -140737488355328 && a < 140737488355328) { - if (a == 0) { - return 0; - } - b = a < 0; - b && (a = -a); - c = QD($wnd.Math.floor($wnd.Math.log(a) / 0.6931471805599453)); - (!b || a != $wnd.Math.pow(2, c)) && ++c; - return c; - } - return vgb(Cbb(a)); - } - function QOc(a) { - var b, c, d, e, f, g10, h; - f = new zsb(); - for (c = new olb(a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 129); - g10 = b.a; - h = b.b; - if (f.a._b(g10) || f.a._b(h)) { - continue; - } - e = g10; - d = h; - if (g10.e.b + g10.j.b > 2 && h.e.b + h.j.b <= 2) { - e = h; - d = g10; - } - f.a.zc(e, f); - e.q = d; - } - return f; - } - function K5b(a, b) { - var c, d, e; - d = new b0b(a); - tNb(d, b); - yNb(d, (wtc(), Gsc), b); - yNb(d, (Nyc(), Vxc), (dcd(), $bd)); - yNb(d, mwc, (F7c(), B7c)); - __b(d, (j0b(), e0b)); - c = new H0b(); - F0b(c, d); - G0b(c, (Ucd(), Tcd)); - e = new H0b(); - F0b(e, d); - G0b(e, zcd); - return d; - } - function Spc(a) { - switch (a.g) { - case 0: - return new fGc((rGc(), oGc)); - case 1: - return new CFc(); - case 2: - return new fHc(); - default: - throw vbb(new Wdb("No implementation is available for the crossing minimizer " + (a.f != null ? a.f : "" + a.g))); - } - } - function tDc(a, b) { - var c, d, e, f, g10; - a.c[b.p] = true; - Ekb(a.a, b); - for (g10 = new olb(b.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 11); - for (d = new b1b(f.b); llb(d.a) || llb(d.b); ) { - c = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17); - e = uDc(f, c).i; - a.c[e.p] || tDc(a, e); - } - } - } - function _Uc(a) { - var b, c, d, e, f, g10, h; - g10 = 0; - for (c = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 33); - h = b.g; - e = b.f; - d = $wnd.Math.sqrt(h * h + e * e); - g10 = $wnd.Math.max(d, g10); - f = _Uc(b); - g10 = $wnd.Math.max(f, g10); - } - return g10; - } - function rcd() { - rcd = ccb; - pcd = new scd("OUTSIDE", 0); - ncd = new scd("INSIDE", 1); - ocd = new scd("NEXT_TO_PORT_IF_POSSIBLE", 2); - mcd = new scd("ALWAYS_SAME_SIDE", 3); - lcd = new scd("ALWAYS_OTHER_SAME_SIDE", 4); - qcd = new scd("SPACE_EFFICIENT", 5); - } - function drd(a, b, c) { - var d, e, f, h, i10, j; - d = Tqd(a, (e = (Fhd(), f = new apd(), f), !!c && $od(e, c), e), b); - Lkd(d, _pd(b, Vte)); - grd(b, d); - brd(b, d); - hrd(b, d); - g = null; - h = b; - i10 = Ypd(h, "ports"); - j = new Jrd(a, d); - Fqd(j.a, j.b, i10); - crd(a, b, d); - Zqd(a, b, d); - return d; - } - function NA(a) { - var b, c; - c = -a.a; - b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 58, 48, 48]); - if (c < 0) { - b[0] = 45; - c = -c; - } - b[1] = b[1] + ((c / 60 | 0) / 10 | 0) & aje; - b[2] = b[2] + (c / 60 | 0) % 10 & aje; - b[4] = b[4] + (c % 60 / 10 | 0) & aje; - b[5] = b[5] + c % 10 & aje; - return zfb(b, 0, b.length); - } - function QA(a) { - var b; - b = OC(GC(TD, 1), $ie, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); - if (a <= 0) { - b[3] = 43; - a = -a; - } - b[4] = b[4] + ((a / 60 | 0) / 10 | 0) & aje; - b[5] = b[5] + (a / 60 | 0) % 10 & aje; - b[7] = b[7] + (a % 60 / 10 | 0) & aje; - b[8] = b[8] + a % 10 & aje; - return zfb(b, 0, b.length); - } - function Vlb(a) { - var b, c, d, e, f; - if (a == null) { - return Xhe; - } - f = new xwb(She, "[", "]"); - for (c = a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - !f.a ? f.a = new Wfb(f.d) : Qfb(f.a, f.b); - Nfb(f.a, "" + Ubb(b)); - } - return !f.a ? f.c : f.e.length == 0 ? f.a.a : f.a.a + ("" + f.e); - } - function DGb(a, b) { - var c, d, e; - e = Ohe; - for (d = new olb(LFb(b)); d.a < d.c.c.length; ) { - c = BD(mlb(d), 213); - if (c.f && !a.c[c.c]) { - a.c[c.c] = true; - e = $wnd.Math.min(e, DGb(a, xFb(c, b))); - } - } - a.i[b.d] = a.j; - a.g[b.d] = $wnd.Math.min(e, a.j++); - return a.g[b.d]; - } - function EKb(a, b) { - var c, d, e; - for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 111); - d.e.b = (c = d.b, c.Xe((Y9c(), s9c)) ? c.Hf() == (Ucd(), Acd) ? -c.rf().b - Edb(ED(c.We(s9c))) : Edb(ED(c.We(s9c))) : c.Hf() == (Ucd(), Acd) ? -c.rf().b : 0); - } - } - function LPb(a) { - var b, c, d, e, f, g10, h; - c = IOb(a.e); - f = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5); - b = c.a - f.a; - e = c.b - f.b; - for (h = 0; h < a.c; h++) { - d = b; - for (g10 = 0; g10 < a.d; g10++) { - JOb(a.e, new J6c(d, e, a.a, a.b)) && aNb(a, g10, h, false, true); - d += a.a; - } - e += a.b; - } - } - function s2c(a) { - var b, c, d; - if (Ccb(DD(hkd(a, (Y9c(), M8c))))) { - d = new Rkb(); - for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 79); - Qld(b) && Ccb(DD(hkd(b, N8c))) && (d.c[d.c.length] = b, true); - } - return d; - } else { - return mmb(), mmb(), jmb; - } - } - function Vpd(a) { - var b, c; - c = false; - if (JD(a, 204)) { - c = true; - return BD(a, 204).a; - } - if (!c) { - if (JD(a, 258)) { - b = BD(a, 258).a % 1 == 0; - if (b) { - c = true; - return meb(Idb(BD(a, 258).a)); - } - } - } - throw vbb(new cqd("Id must be a string or an integer: '" + a + "'.")); - } - function k0d(a, b) { - var c, d, e, f, g10, h; - f = null; - for (e = new x0d((!a.a && (a.a = new z0d(a)), a.a)); u0d(e); ) { - c = BD(Vud(e), 56); - d = (g10 = c.Tg(), h = (OKd(g10), g10.o), !h || !c.mh(h) ? null : h6d(KJd(h), c.ah(h))); - if (d != null) { - if (dfb(d, b)) { - f = c; - break; - } - } - } - return f; - } - function Bw(a, b, c) { - var d, e, f, g10, h; - Xj(c, "occurrences"); - if (c == 0) { - return h = BD(Hv(nd(a.a), b), 14), !h ? 0 : h.gc(); - } - g10 = BD(Hv(nd(a.a), b), 14); - if (!g10) { - return 0; - } - f = g10.gc(); - if (c >= f) { - g10.$b(); - } else { - e = g10.Kc(); - for (d = 0; d < c; d++) { - e.Pb(); - e.Qb(); - } - } - return f; - } - function ax(a, b, c) { - var d, e, f, g10; - Xj(c, "oldCount"); - Xj(0, "newCount"); - d = BD(Hv(nd(a.a), b), 14); - if ((!d ? 0 : d.gc()) == c) { - Xj(0, "count"); - e = (f = BD(Hv(nd(a.a), b), 14), !f ? 0 : f.gc()); - g10 = -e; - g10 > 0 ? zh() : g10 < 0 && Bw(a, b, -g10); - return true; - } else { - return false; - } - } - function fIb(a) { - var b, c, d, e, f, g10, h; - h = 0; - if (a.b == 0) { - g10 = jIb(a, true); - b = 0; - for (d = g10, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - if (c > 0) { - h += c; - ++b; - } - } - b > 1 && (h += a.c * (b - 1)); - } else { - h = Mtb(Zzb(OAb(JAb(Plb(a.a), new xIb()), new zIb()))); - } - return h > 0 ? h + a.n.d + a.n.a : 0; - } - function gIb(a) { - var b, c, d, e, f, g10, h; - h = 0; - if (a.b == 0) { - h = Mtb(Zzb(OAb(JAb(Plb(a.a), new tIb()), new vIb()))); - } else { - g10 = kIb(a, true); - b = 0; - for (d = g10, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - if (c > 0) { - h += c; - ++b; - } - } - b > 1 && (h += a.c * (b - 1)); - } - return h > 0 ? h + a.n.b + a.n.c : 0; - } - function MJb(a, b) { - var c, d, e, f; - f = BD(Mpb(a.b, b), 124); - c = f.a; - for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 111); - !!d.c && (c.a = $wnd.Math.max(c.a, ZHb(d.c))); - } - if (c.a > 0) { - switch (b.g) { - case 2: - f.n.c = a.s; - break; - case 4: - f.n.b = a.s; - } - } - } - function NQb(a, b) { - var c, d, e; - c = BD(vNb(b, (wSb(), oSb)), 19).a - BD(vNb(a, oSb), 19).a; - if (c == 0) { - d = c7c(R6c(BD(vNb(a, (HSb(), DSb)), 8)), BD(vNb(a, ESb), 8)); - e = c7c(R6c(BD(vNb(b, DSb), 8)), BD(vNb(b, ESb), 8)); - return Kdb(d.a * d.b, e.a * e.b); - } - return c; - } - function iRc(a, b) { - var c, d, e; - c = BD(vNb(b, (JTc(), ETc)), 19).a - BD(vNb(a, ETc), 19).a; - if (c == 0) { - d = c7c(R6c(BD(vNb(a, (mTc(), VSc)), 8)), BD(vNb(a, WSc), 8)); - e = c7c(R6c(BD(vNb(b, VSc), 8)), BD(vNb(b, WSc), 8)); - return Kdb(d.a * d.b, e.a * e.b); - } - return c; - } - function TZb(a) { - var b, c; - c = new Ufb(); - c.a += "e_"; - b = KZb(a); - b != null && (c.a += "" + b, c); - if (!!a.c && !!a.d) { - Qfb((c.a += " ", c), C0b(a.c)); - Qfb(Pfb((c.a += "[", c), a.c.i), "]"); - Qfb((c.a += gne, c), C0b(a.d)); - Qfb(Pfb((c.a += "[", c), a.d.i), "]"); - } - return c.a; - } - function zRc(a) { - switch (a.g) { - case 0: - return new lUc(); - case 1: - return new sUc(); - case 2: - return new CUc(); - case 3: - return new IUc(); - default: - throw vbb(new Wdb("No implementation is available for the layout phase " + (a.f != null ? a.f : "" + a.g))); - } - } - function mfd(a, b, c, d, e) { - var f; - f = 0; - switch (e.g) { - case 1: - f = $wnd.Math.max(0, b.b + a.b - (c.b + d)); - break; - case 3: - f = $wnd.Math.max(0, -a.b - d); - break; - case 2: - f = $wnd.Math.max(0, -a.a - d); - break; - case 4: - f = $wnd.Math.max(0, b.a + a.a - (c.a + d)); - } - return f; - } - function mqd(a, b, c) { - var d, e, f, g10, h; - if (c) { - e = c.a.length; - d = new Yge(e); - for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - f = Zpd(c, g10.a); - Lte in f.a || Mte in f.a ? $qd(a, f, b) : erd(a, f, b); - otd(BD(Ohb(a.b, Wpd(f)), 79)); - } - } - } - function LJd(a) { - var b, c; - switch (a.b) { - case -1: { - return true; - } - case 0: { - c = a.t; - if (c > 1 || c == -1) { - a.b = -1; - return true; - } else { - b = wId(a); - if (!!b && (Q6d(), b.Cj() == Bve)) { - a.b = -1; - return true; - } else { - a.b = 1; - return false; - } - } - } - default: - case 1: { - return false; - } - } - } - function k1d(a, b) { - var c, d, e, f, g10; - d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s); - f = null; - for (e = 0, g10 = d.i; e < g10; ++e) { - c = BD(qud(d, e), 170); - switch ($1d(q1d(a, c))) { - case 2: - case 3: { - !f && (f = new Rkb()); - f.c[f.c.length] = c; - } - } - } - return !f ? (mmb(), mmb(), jmb) : f; - } - function tde(a, b) { - var c, d, e, f; - nde(a); - if (a.c != 0 || a.a != 123) - throw vbb(new mde(tvd((h0d(), Fue)))); - f = b == 112; - d = a.d; - c = gfb(a.i, 125, d); - if (c < 0) - throw vbb(new mde(tvd((h0d(), Gue)))); - e = qfb(a.i, d, c); - a.d = c + 1; - return Lfe(e, f, (a.e & 512) == 512); - } - function QTb(a) { - var b; - b = BD(vNb(a, (Nyc(), Iwc)), 314); - if (b == (Rpc(), Ppc)) { - throw vbb(new z2c("The hierarchy aware processor " + b + " in child node " + a + " is only allowed if the root node specifies the same hierarchical processor.")); - } - } - function dhc(a, b) { - Hgc(); - var c, d, e, f, g10, h; - c = null; - for (g10 = b.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 128); - if (f.o) { - continue; - } - d = F6c(f.a); - e = C6c(f.a); - h = new hic(d, e, null, BD(f.d.a.ec().Kc().Pb(), 17)); - Ekb(h.c, f.a); - a.c[a.c.length] = h; - !!c && Ekb(c.d, h); - c = h; - } - } - function hKd(a, b) { - var c, d, e; - if (!b) { - jKd(a, null); - _Jd(a, null); - } else if ((b.i & 4) != 0) { - d = "[]"; - for (c = b.c; ; c = c.c) { - if ((c.i & 4) == 0) { - e = jfb((fdb(c), c.o + d)); - jKd(a, e); - _Jd(a, e); - break; - } - d += "[]"; - } - } else { - e = jfb((fdb(b), b.o)); - jKd(a, e); - _Jd(a, e); - } - a.yk(b); - } - function b3d(a, b, c, d, e) { - var f, g10, h, i10; - i10 = a3d(a, BD(e, 56)); - if (PD(i10) !== PD(e)) { - h = BD(a.g[c], 72); - f = R6d(b, i10); - mud(a, c, t3d(a, c, f)); - if (oid(a.e)) { - g10 = H2d(a, 9, f.ak(), e, i10, d, false); - Qwd(g10, new pSd(a.e, 9, a.c, h, f, d, false)); - Rwd(g10); - } - return i10; - } - return e; - } - function xCc(a, b, c) { - var d, e, f, g10, h, i10; - d = BD(Qc(a.c, b), 15); - e = BD(Qc(a.c, c), 15); - f = d.Zc(d.gc()); - g10 = e.Zc(e.gc()); - while (f.Sb() && g10.Sb()) { - h = BD(f.Ub(), 19); - i10 = BD(g10.Ub(), 19); - if (h != i10) { - return beb(h.a, i10.a); - } - } - return !f.Ob() && !g10.Ob() ? 0 : f.Ob() ? 1 : -1; - } - function m5c(c, d) { - var e, f, g10; - try { - g10 = fs(c.a, d); - return g10; - } catch (b) { - b = ubb(b); - if (JD(b, 32)) { - try { - f = Icb(d, Rie, Ohe); - e = gdb(c.a); - if (f >= 0 && f < e.length) { - return e[f]; - } - } catch (a) { - a = ubb(a); - if (!JD(a, 127)) - throw vbb(a); - } - return null; - } else - throw vbb(b); - } - } - function tid(a, b) { - var c, d, e; - e = e1d((O6d(), M6d), a.Tg(), b); - if (e) { - Q6d(); - BD(e, 66).Oj() || (e = _1d(q1d(M6d, e))); - d = (c = a.Yg(e), BD(c >= 0 ? a._g(c, true, true) : sid(a, e, true), 153)); - return BD(d, 215).ll(b); - } else { - throw vbb(new Wdb(ite + b.ne() + lte)); - } - } - function BZd() { - tZd(); - var a; - if (sZd) - return BD(nUd((yFd(), xFd), _ve), 1939); - rEd(CK, new J_d()); - CZd(); - a = BD(JD(Phb((yFd(), xFd), _ve), 547) ? Phb(xFd, _ve) : new AZd(), 547); - sZd = true; - yZd(a); - zZd(a); - Rhb((JFd(), IFd), a, new EZd()); - Shb(xFd, _ve, a); - return a; - } - function v2d(a, b) { - var c, d, e, f; - a.j = -1; - if (oid(a.e)) { - c = a.i; - f = a.i != 0; - lud(a, b); - d = new pSd(a.e, 3, a.c, null, b, c, f); - e = b.Qk(a.e, a.c, null); - e = h3d(a, b, e); - if (!e) { - Uhd(a.e, d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - lud(a, b); - e = b.Qk(a.e, a.c, null); - !!e && e.Fi(); - } - } - function rA(a, b) { - var c, d, e; - e = 0; - d = b[0]; - if (d >= a.length) { - return -1; - } - c = (BCb(d, a.length), a.charCodeAt(d)); - while (c >= 48 && c <= 57) { - e = e * 10 + (c - 48); - ++d; - if (d >= a.length) { - break; - } - c = (BCb(d, a.length), a.charCodeAt(d)); - } - d > b[0] ? b[0] = d : e = -1; - return e; - } - function vMb(a) { - var b, c, d, e, f; - e = BD(a.a, 19).a; - f = BD(a.b, 19).a; - c = e; - d = f; - b = $wnd.Math.max($wnd.Math.abs(e), $wnd.Math.abs(f)); - if (e <= 0 && e == f) { - c = 0; - d = f - 1; - } else { - if (e == -b && f != b) { - c = f; - d = e; - f >= 0 && ++c; - } else { - c = -f; - d = e; - } - } - return new vgd(meb(c), meb(d)); - } - function fNb(a, b, c, d) { - var e, f, g10, h, i10, j; - for (e = 0; e < b.o; e++) { - f = e - b.j + c; - for (g10 = 0; g10 < b.p; g10++) { - h = g10 - b.k + d; - if ((i10 = f, j = h, i10 += a.j, j += a.k, i10 >= 0 && j >= 0 && i10 < a.o && j < a.p) && (!ZMb(b, e, g10) && hNb(a, f, h) || YMb(b, e, g10) && !iNb(a, f, h))) { - return true; - } - } - } - return false; - } - function LNc(a, b, c) { - var d, e, f, g10, h; - g10 = a.c; - h = a.d; - f = l7c(OC(GC(m1, 1), nie, 8, 0, [g10.i.n, g10.n, g10.a])).b; - e = (f + l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).b) / 2; - d = null; - g10.j == (Ucd(), zcd) ? d = new f7c(b + g10.i.c.c.a + c, e) : d = new f7c(b - c, e); - St(a.a, 0, d); - } - function Qld(a) { - var b, c, d, e; - b = null; - for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) { - c = BD(Rr(d), 82); - e = atd(c); - if (!b) { - b = e; - } else if (b != e) { - return false; - } - } - return true; - } - function sud(a, b, c) { - var d; - ++a.j; - if (b >= a.i) - throw vbb(new qcb(lue + b + mue + a.i)); - if (c >= a.i) - throw vbb(new qcb(nue + c + mue + a.i)); - d = a.g[c]; - if (b != c) { - b < c ? $fb(a.g, b, a.g, b + 1, c - b) : $fb(a.g, c + 1, a.g, c, b - c); - NC(a.g, b, d); - a.ei(b, d, c); - a.ci(); - } - return d; - } - function Rc(a, b, c) { - var d; - d = BD(a.c.xc(b), 14); - if (!d) { - d = a.ic(b); - if (d.Fc(c)) { - ++a.d; - a.c.zc(b, d); - return true; - } else { - throw vbb(new ycb("New Collection violated the Collection spec")); - } - } else if (d.Fc(c)) { - ++a.d; - return true; - } else { - return false; - } - } - function heb(a) { - var b, c, d; - if (a < 0) { - return 0; - } else if (a == 0) { - return 32; - } else { - d = -(a >> 16); - b = d >> 16 & 16; - c = 16 - b; - a = a >> b; - d = a - 256; - b = d >> 16 & 8; - c += b; - a <<= b; - d = a - Rje; - b = d >> 16 & 4; - c += b; - a <<= b; - d = a - oie; - b = d >> 16 & 2; - c += b; - a <<= b; - d = a >> 14; - b = d & ~(d >> 1); - return c + 2 - b; - } - } - function $Pb(a) { - QPb(); - var b, c, d, e; - PPb = new Rkb(); - OPb = new Lqb(); - NPb = new Rkb(); - b = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a); - SPb(b); - for (e = new Fyd(b); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - if (Jkb(PPb, d, 0) == -1) { - c = new Rkb(); - Ekb(NPb, c); - TPb(d, c); - } - } - return NPb; - } - function BQb(a, b, c) { - var d, e, f, g10; - a.a = c.b.d; - if (JD(b, 352)) { - e = itd(BD(b, 79), false, false); - f = ofd(e); - d = new FQb(a); - reb(f, d); - ifd(f, e); - b.We((Y9c(), Q8c)) != null && reb(BD(b.We(Q8c), 74), d); - } else { - g10 = BD(b, 470); - g10.Hg(g10.Dg() + a.a.a); - g10.Ig(g10.Eg() + a.a.b); - } - } - function _5b(a, b) { - var c, d, e, f, g10, h, i10, j; - j = Edb(ED(vNb(b, (Nyc(), zyc)))); - i10 = a[0].n.a + a[0].o.a + a[0].d.c + j; - for (h = 1; h < a.length; h++) { - d = a[h].n; - e = a[h].o; - c = a[h].d; - f = d.a - c.b - i10; - f < 0 && (d.a -= f); - g10 = b.f; - g10.a = $wnd.Math.max(g10.a, d.a + e.a); - i10 = d.a + e.a + c.c + j; - } - } - function D$c(a, b) { - var c, d, e, f, g10, h; - d = BD(BD(Ohb(a.g, b.a), 46).a, 65); - e = BD(BD(Ohb(a.g, b.b), 46).a, 65); - f = d.b; - g10 = e.b; - c = z6c(f, g10); - if (c >= 0) { - return c; - } - h = U6c(c7c(new f7c(g10.c + g10.b / 2, g10.d + g10.a / 2), new f7c(f.c + f.b / 2, f.d + f.a / 2))); - return -(xOb(f, g10) - 1) * h; - } - function ufd(a, b, c) { - var d; - MAb(new YAb(null, (!c.a && (c.a = new cUd(A2, c, 6, 6)), new Kub(c.a, 16))), new Mfd(a, b)); - MAb(new YAb(null, (!c.n && (c.n = new cUd(D2, c, 1, 7)), new Kub(c.n, 16))), new Ofd(a, b)); - d = BD(hkd(c, (Y9c(), Q8c)), 74); - !!d && p7c(d, a, b); - } - function sid(a, b, c) { - var d, e, f; - f = e1d((O6d(), M6d), a.Tg(), b); - if (f) { - Q6d(); - BD(f, 66).Oj() || (f = _1d(q1d(M6d, f))); - e = (d = a.Yg(f), BD(d >= 0 ? a._g(d, true, true) : sid(a, f, true), 153)); - return BD(e, 215).hl(b, c); - } else { - throw vbb(new Wdb(ite + b.ne() + lte)); - } - } - function wAd(a, b, c, d) { - var e, f, g10, h, i10; - e = a.d[b]; - if (e) { - f = e.g; - i10 = e.i; - if (d != null) { - for (h = 0; h < i10; ++h) { - g10 = BD(f[h], 133); - if (g10.Sh() == c && pb(d, g10.cd())) { - return g10; - } - } - } else { - for (h = 0; h < i10; ++h) { - g10 = BD(f[h], 133); - if (PD(g10.cd()) === PD(d)) { - return g10; - } - } - } - } - return null; - } - function Pgb(a, b) { - var c; - if (b < 0) { - throw vbb(new ocb("Negative exponent")); - } - if (b == 0) { - return Cgb; - } else if (b == 1 || Kgb(a, Cgb) || Kgb(a, Ggb)) { - return a; - } - if (!Sgb(a, 0)) { - c = 1; - while (!Sgb(a, c)) { - ++c; - } - return Ogb(bhb(c * b), Pgb(Rgb(a, c), b)); - } - return Jhb(a, b); - } - function xlb(a, b) { - var c, d, e; - if (PD(a) === PD(b)) { - return true; - } - if (a == null || b == null) { - return false; - } - if (a.length != b.length) { - return false; - } - for (c = 0; c < a.length; ++c) { - d = a[c]; - e = b[c]; - if (!(PD(d) === PD(e) || d != null && pb(d, e))) { - return false; - } - } - return true; - } - function CVb(a) { - nVb(); - var b, c, d; - this.b = mVb; - this.c = (ead(), cad); - this.f = (iVb(), hVb); - this.a = a; - zVb(this, new DVb()); - sVb(this); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 81); - if (!c.d) { - b = new gVb(OC(GC(IP, 1), Uhe, 81, 0, [c])); - Ekb(a.a, b); - } - } - } - function D3b(a, b, c) { - var d, e, f, g10, h, i10; - if (!a || a.c.length == 0) { - return null; - } - f = new cIb(b, !c); - for (e = new olb(a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 70); - UHb(f, (a$b(), new v$b(d))); - } - g10 = f.i; - g10.a = (i10 = f.n, f.e.b + i10.d + i10.a); - g10.b = (h = f.n, f.e.a + h.b + h.c); - return f; - } - function O5b(a) { - var b, c, d, e, f, g10, h; - h = l_b(a.a); - Nlb(h, new T5b()); - c = null; - for (e = h, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - if (d.k != (j0b(), e0b)) { - break; - } - b = BD(vNb(d, (wtc(), Hsc)), 61); - if (b != (Ucd(), Tcd) && b != zcd) { - continue; - } - !!c && BD(vNb(c, Qsc), 15).Fc(d); - c = d; - } - } - function YOc(a, b, c) { - var d, e, f, g10, h, i10, j; - i10 = (tCb(b, a.c.length), BD(a.c[b], 329)); - Kkb(a, b); - if (i10.b / 2 >= c) { - d = b; - j = (i10.c + i10.a) / 2; - g10 = j - c; - if (i10.c <= j - c) { - e = new bPc(i10.c, g10); - Dkb(a, d++, e); - } - h = j + c; - if (h <= i10.a) { - f = new bPc(h, i10.a); - wCb(d, a.c.length); - aCb(a.c, d, f); - } - } - } - function u0d(a) { - var b; - if (!a.c && a.g == null) { - a.d = a.si(a.f); - wtd(a, a.d); - b = a.d; - } else { - if (a.g == null) { - return true; - } else if (a.i == 0) { - return false; - } else { - b = BD(a.g[a.i - 1], 47); - } - } - if (b == a.b && null.km >= null.jm()) { - Vud(a); - return u0d(a); - } else { - return b.Ob(); - } - } - function KTb(a, b, c) { - var d, e, f, g10, h; - h = c; - !h && (h = Ydd(new Zdd(), 0)); - Odd(h, Vme, 1); - aUb(a.c, b); - g10 = EYb(a.a, b); - if (g10.gc() == 1) { - MTb(BD(g10.Xb(0), 37), h); - } else { - f = 1 / g10.gc(); - for (e = g10.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 37); - MTb(d, Udd(h, f)); - } - } - CYb(a.a, g10, b); - NTb(b); - Qdd(h); - } - function qYb(a) { - this.a = a; - if (a.c.i.k == (j0b(), e0b)) { - this.c = a.c; - this.d = BD(vNb(a.c.i, (wtc(), Hsc)), 61); - } else if (a.d.i.k == e0b) { - this.c = a.d; - this.d = BD(vNb(a.d.i, (wtc(), Hsc)), 61); - } else { - throw vbb(new Wdb("Edge " + a + " is not an external edge.")); - } - } - function oQd(a, b) { - var c, d, e; - e = a.b; - a.b = b; - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, e, a.b)); - if (!b) { - pnd(a, null); - qQd(a, 0); - pQd(a, null); - } else if (b != a) { - pnd(a, b.zb); - qQd(a, b.d); - c = (d = b.c, d == null ? b.zb : d); - pQd(a, c == null || dfb(c, b.zb) ? null : c); - } - } - function NRd(a) { - var b, c; - if (a.f) { - while (a.n < a.o) { - b = BD(!a.j ? a.k.Xb(a.n) : a.j.pi(a.n), 72); - c = b.ak(); - if (JD(c, 99) && (BD(c, 18).Bb & ote) != 0 && (!a.e || c.Gj() != x2 || c.aj() != 0) && b.dd() != null) { - return true; - } else { - ++a.n; - } - } - return false; - } else { - return a.n < a.o; - } - } - function _i(a, b) { - var c; - this.e = (im(), Qb(a), im(), nm(a)); - this.c = (Qb(b), nm(b)); - Lb(this.e.Hd().dc() == this.c.Hd().dc()); - this.d = Ev(this.e); - this.b = Ev(this.c); - c = IC(SI, [nie, Uhe], [5, 1], 5, [this.e.Hd().gc(), this.c.Hd().gc()], 2); - this.a = c; - Ri(this); - } - function vz(b) { - var c = (!tz && (tz = wz()), tz); - var d = b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(a) { - return uz(a, c); - }); - return '"' + d + '"'; - } - function cEb(a) { - ODb(); - var b, c; - this.b = LDb; - this.c = NDb; - this.g = (FDb(), EDb); - this.d = (ead(), cad); - this.a = a; - RDb(this); - for (c = new olb(a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - !b.a && pDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), a); - b.e = new K6c(b.d); - } - } - function HQb(a) { - var b, c, d, e, f, g10; - e = a.e.c.length; - d = KC(yK, eme, 15, e, 0, 1); - for (g10 = new olb(a.e); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 144); - d[f.b] = new Psb(); - } - for (c = new olb(a.c); c.a < c.c.c.length; ) { - b = BD(mlb(c), 282); - d[b.c.b].Fc(b); - d[b.d.b].Fc(b); - } - return d; - } - function fDc(a) { - var b, c, d, e, f, g10, h; - h = Pu(a.c.length); - for (e = new olb(a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - g10 = new Tqb(); - f = U_b(d); - for (c = new Sr(ur(f.a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - b.c.i == b.d.i || Qqb(g10, b.d.i); - } - h.c[h.c.length] = g10; - } - return h; - } - function ozd(a, b) { - var c, d, e, f, g10; - c = BD(Ajd(a.a, 4), 126); - g10 = c == null ? 0 : c.length; - if (b >= g10) - throw vbb(new Cyd(b, g10)); - e = c[b]; - if (g10 == 1) { - d = null; - } else { - d = KC($3, hve, 415, g10 - 1, 0, 1); - $fb(c, 0, d, 0, b); - f = g10 - b - 1; - f > 0 && $fb(c, b + 1, d, b, f); - } - b0d(a, d); - a0d(a, b, e); - return e; - } - function m8d() { - m8d = ccb; - k8d = BD(qud(ZKd((r8d(), q8d).qb), 6), 34); - h8d = BD(qud(ZKd(q8d.qb), 3), 34); - i8d = BD(qud(ZKd(q8d.qb), 4), 34); - j8d = BD(qud(ZKd(q8d.qb), 5), 18); - XId(k8d); - XId(h8d); - XId(i8d); - XId(j8d); - l8d = new amb(OC(GC(t5, 1), Mve, 170, 0, [k8d, h8d])); - } - function AJb(a, b) { - var c; - this.d = new H_b(); - this.b = b; - this.e = new g7c(b.qf()); - c = a.u.Hc((rcd(), ocd)); - a.u.Hc(ncd) ? a.D ? this.a = c && !b.If() : this.a = true : a.u.Hc(pcd) ? c ? this.a = !(b.zf().Kc().Ob() || b.Bf().Kc().Ob()) : this.a = false : this.a = false; - } - function IKb(a, b) { - var c, d, e, f; - c = a.o.a; - for (f = BD(BD(Qc(a.r, b), 21), 84).Kc(); f.Ob(); ) { - e = BD(f.Pb(), 111); - e.e.a = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Tcd) ? -d.rf().a - Edb(ED(d.We(s9c))) : c + Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Tcd) ? -d.rf().a : c); - } - } - function Q1b(a, b) { - var c, d, e, f; - c = BD(vNb(a, (Nyc(), Lwc)), 103); - f = BD(hkd(b, $xc), 61); - e = BD(vNb(a, Vxc), 98); - if (e != (dcd(), bcd) && e != ccd) { - if (f == (Ucd(), Scd)) { - f = lfd(b, c); - f == Scd && (f = Zcd(c)); - } - } else { - d = M1b(b); - d > 0 ? f = Zcd(c) : f = Wcd(Zcd(c)); - } - jkd(b, $xc, f); - } - function olc(a, b) { - var c, d, e, f, g10; - g10 = a.j; - b.a != b.b && Okb(g10, new Ulc()); - e = g10.c.length / 2 | 0; - for (d = 0; d < e; d++) { - f = (tCb(d, g10.c.length), BD(g10.c[d], 113)); - f.c && G0b(f.d, b.a); - } - for (c = e; c < g10.c.length; c++) { - f = (tCb(c, g10.c.length), BD(g10.c[c], 113)); - f.c && G0b(f.d, b.b); - } - } - function TGc(a, b, c) { - var d, e, f; - d = a.c[b.c.p][b.p]; - e = a.c[c.c.p][c.p]; - if (d.a != null && e.a != null) { - f = Ddb(d.a, e.a); - f < 0 ? WGc(a, b, c) : f > 0 && WGc(a, c, b); - return f; - } else if (d.a != null) { - WGc(a, b, c); - return -1; - } else if (e.a != null) { - WGc(a, c, b); - return 1; - } - return 0; - } - function swd(a, b) { - var c, d, e, f; - if (a.ej()) { - c = a.Vi(); - f = a.fj(); - ++a.j; - a.Hi(c, a.oi(c, b)); - d = a.Zi(3, null, b, c, f); - if (a.bj()) { - e = a.cj(b, null); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - a.$i(d); - } - } else { - Bvd(a, b); - if (a.bj()) { - e = a.cj(b, null); - !!e && e.Fi(); - } - } - } - function D2d(a, b) { - var c, d, e, f, g10; - g10 = S6d(a.e.Tg(), b); - e = new yud(); - c = BD(a.g, 119); - for (f = a.i; --f >= 0; ) { - d = c[f]; - g10.rl(d.ak()) && wtd(e, d); - } - !Yxd(a, e) && oid(a.e) && GLd(a, b.$j() ? H2d(a, 6, b, (mmb(), jmb), null, -1, false) : H2d(a, b.Kj() ? 2 : 1, b, null, null, -1, false)); - } - function Dhb() { - Dhb = ccb; - var a, b; - Bhb = KC(cJ, nie, 91, 32, 0, 1); - Chb = KC(cJ, nie, 91, 32, 0, 1); - a = 1; - for (b = 0; b <= 18; b++) { - Bhb[b] = ghb(a); - Chb[b] = ghb(Nbb(a, b)); - a = Ibb(a, 5); - } - for (; b < Chb.length; b++) { - Bhb[b] = Ogb(Bhb[b - 1], Bhb[1]); - Chb[b] = Ogb(Chb[b - 1], (Hgb(), Egb)); - } - } - function K4b(a, b) { - var c, d, e, f, g10; - if (a.a == (yrc(), wrc)) { - return true; - } - f = b.a.c; - c = b.a.c + b.a.b; - if (b.j) { - d = b.A; - g10 = d.c.c.a - d.o.a / 2; - e = f - (d.n.a + d.o.a); - if (e > g10) { - return false; - } - } - if (b.q) { - d = b.C; - g10 = d.c.c.a - d.o.a / 2; - e = d.n.a - c; - if (e > g10) { - return false; - } - } - return true; - } - function wcc(a, b) { - var c; - Odd(b, "Partition preprocessing", 1); - c = BD(GAb(JAb(LAb(JAb(new YAb(null, new Kub(a.a, 16)), new Acc()), new Ccc()), new Ecc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - MAb(c.Oc(), new Gcc()); - Qdd(b); - } - function DMc(a) { - wMc(); - var b, c, d, e, f, g10, h; - c = new $rb(); - for (e = new olb(a.e.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - for (g10 = new olb(d.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - h = a.g[f.p]; - b = BD(Wrb(c, h), 15); - if (!b) { - b = new Rkb(); - Xrb(c, h, b); - } - b.Fc(f); - } - } - return c; - } - function dRc(a, b) { - var c, d, e, f, g10; - e = b.b.b; - a.a = KC(yK, eme, 15, e, 0, 1); - a.b = KC(sbb, dle, 25, e, 16, 1); - for (g10 = Jsb(b.b, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 86); - a.a[f.g] = new Psb(); - } - for (d = Jsb(b.a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 188); - a.a[c.b.g].Fc(c); - a.a[c.c.g].Fc(c); - } - } - function qmd(a) { - var b; - if ((a.Db & 64) != 0) - return Eid(a); - b = new Jfb(Eid(a)); - b.a += " (startX: "; - Bfb(b, a.j); - b.a += ", startY: "; - Bfb(b, a.k); - b.a += ", endX: "; - Bfb(b, a.b); - b.a += ", endY: "; - Bfb(b, a.c); - b.a += ", identifier: "; - Efb(b, a.d); - b.a += ")"; - return b.a; - } - function EId(a) { - var b; - if ((a.Db & 64) != 0) - return qnd(a); - b = new Jfb(qnd(a)); - b.a += " (ordered: "; - Ffb(b, (a.Bb & 256) != 0); - b.a += ", unique: "; - Ffb(b, (a.Bb & 512) != 0); - b.a += ", lowerBound: "; - Cfb(b, a.s); - b.a += ", upperBound: "; - Cfb(b, a.t); - b.a += ")"; - return b.a; - } - function Wnd(a, b, c, d, e, f, g10, h) { - var i10; - JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4); - pnd(a, c); - a.f = d; - dJd(a, e); - fJd(a, f); - ZId(a, g10); - eJd(a, false); - CId(a, true); - aJd(a, h); - BId(a, true); - AId(a, 0); - a.b = 0; - DId(a, 1); - i10 = xId(a, b, null); - !!i10 && i10.Fi(); - MJd(a, false); - return a; - } - function fyb(a, b) { - var c, d, e, f; - c = BD(Phb(a.a, b), 512); - if (!c) { - d = new wyb(b); - e = (oyb(), lyb) ? null : d.c; - f = qfb(e, 0, $wnd.Math.max(0, kfb(e, wfb(46)))); - vyb(d, fyb(a, f)); - (lyb ? null : d.c).length == 0 && qyb(d, new zyb()); - Shb(a.a, lyb ? null : d.c, d); - return d; - } - return c; - } - function BOb(a, b) { - var c; - a.b = b; - a.g = new Rkb(); - c = COb(a.b); - a.e = c; - a.f = c; - a.c = Ccb(DD(vNb(a.b, (fFb(), $Eb)))); - a.a = ED(vNb(a.b, (Y9c(), r8c))); - a.a == null && (a.a = 1); - Edb(a.a) > 1 ? a.e *= Edb(a.a) : a.f /= Edb(a.a); - DOb(a); - EOb(a); - AOb(a); - yNb(a.b, (CPb(), uPb), a.g); - } - function Y5b(a, b, c) { - var d, e, f, g10, h, i10; - d = 0; - i10 = c; - if (!b) { - d = c * (a.c.length - 1); - i10 *= -1; - } - for (f = new olb(a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - yNb(e, (Nyc(), mwc), (F7c(), B7c)); - e.o.a = d; - for (h = Y_b(e, (Ucd(), zcd)).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 11); - g10.n.a = d; - } - d += i10; - } - } - function Qxd(a, b, c) { - var d, e, f; - if (a.ej()) { - f = a.fj(); - kud(a, b, c); - d = a.Zi(3, null, c, b, f); - if (a.bj()) { - e = a.cj(c, null); - a.ij() && (e = a.jj(c, e)); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - a.$i(d); - } - } else { - kud(a, b, c); - if (a.bj()) { - e = a.cj(c, null); - !!e && e.Fi(); - } - } - } - function ILd(a, b, c) { - var d, e, f, g10, h, i10; - h = a.Gk(c); - if (h != c) { - g10 = a.g[b]; - i10 = h; - mud(a, b, a.oi(b, i10)); - f = g10; - a.gi(b, i10, f); - if (a.rk()) { - d = c; - e = a.dj(d, null); - !BD(h, 49).eh() && (e = a.cj(i10, e)); - !!e && e.Fi(); - } - oid(a.e) && GLd(a, a.Zi(9, c, h, b, false)); - return h; - } else { - return c; - } - } - function pVb(a, b) { - var c, d, e, f; - for (d = new olb(a.a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 189); - c.g = true; - } - for (f = new olb(a.a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 81); - e.k = Ccb(DD(a.e.Kb(new vgd(e, b)))); - e.d.g = e.d.g & Ccb(DD(a.e.Kb(new vgd(e, b)))); - } - return a; - } - function pkc(a) { - var b, c, d, e, f; - c = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - f = BD(vNb(a, (wtc(), gtc)), 10); - if (f) { - for (e = new olb(f.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 11); - PD(vNb(d, $sc)) === PD(a) && a1b(new b1b(d.b)) && rqb(c, d.j); - } - } - return c; - } - function zCc(a, b, c) { - var d, e, f, g10, h; - if (a.d[c.p]) { - return; - } - for (e = new Sr(ur(U_b(c).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - h = d.d.i; - for (g10 = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(g10); ) { - f = BD(Rr(g10), 17); - f.c.i == b && (a.a[f.p] = true); - } - zCc(a, b, h); - } - a.d[c.p] = true; - } - function Bjd(a, b) { - var c, d, e, f, g10, h, i10; - d = aeb(a.Db & 254); - if (d == 1) { - a.Eb = null; - } else { - f = CD(a.Eb); - if (d == 2) { - e = zjd(a, b); - a.Eb = f[e == 0 ? 1 : 0]; - } else { - g10 = KC(SI, Uhe, 1, d - 1, 5, 1); - for (c = 2, h = 0, i10 = 0; c <= 128; c <<= 1) { - c == b ? ++h : (a.Db & c) != 0 && (g10[i10++] = f[h++]); - } - a.Eb = g10; - } - } - a.Db &= ~b; - } - function n1d(a, b) { - var c, d, e, f, g10; - d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s); - f = null; - for (e = 0, g10 = d.i; e < g10; ++e) { - c = BD(qud(d, e), 170); - switch ($1d(q1d(a, c))) { - case 4: - case 5: - case 6: { - !f && (f = new Rkb()); - f.c[f.c.length] = c; - break; - } - } - } - return !f ? (mmb(), mmb(), jmb) : f; - } - function Uee(a) { - var b; - b = 0; - switch (a) { - case 105: - b = 2; - break; - case 109: - b = 8; - break; - case 115: - b = 4; - break; - case 120: - b = 16; - break; - case 117: - b = 32; - break; - case 119: - b = 64; - break; - case 70: - b = 256; - break; - case 72: - b = 128; - break; - case 88: - b = 512; - break; - case 44: - b = zte; - } - return b; - } - function Ghb(a, b, c, d, e) { - var f, g10, h, i10; - if (PD(a) === PD(b) && d == e) { - Lhb(a, d, c); - return; - } - for (h = 0; h < d; h++) { - g10 = 0; - f = a[h]; - for (i10 = 0; i10 < e; i10++) { - g10 = wbb(wbb(Ibb(xbb(f, Yje), xbb(b[i10], Yje)), xbb(c[h + i10], Yje)), xbb(Tbb(g10), Yje)); - c[h + i10] = Tbb(g10); - g10 = Pbb(g10, 32); - } - c[h + e] = Tbb(g10); - } - } - function COb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - k = 0; - j = 0; - e = a.a; - h = e.a.gc(); - for (d = e.a.ec().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 561); - b = (c.b && LOb(c), c.a); - l = b.a; - g10 = b.b; - k += l + g10; - j += l * g10; - } - i10 = $wnd.Math.sqrt(400 * h * j - 4 * j + k * k) + k; - f = 2 * (100 * h - 1); - if (f == 0) { - return i10; - } - return i10 / f; - } - function mOc(a, b) { - if (b.b != 0) { - isNaN(a.s) ? a.s = Edb((sCb(b.b != 0), ED(b.a.a.c))) : a.s = $wnd.Math.min(a.s, Edb((sCb(b.b != 0), ED(b.a.a.c)))); - isNaN(a.c) ? a.c = Edb((sCb(b.b != 0), ED(b.c.b.c))) : a.c = $wnd.Math.max(a.c, Edb((sCb(b.b != 0), ED(b.c.b.c)))); - } - } - function Pld(a) { - var b, c, d, e; - b = null; - for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) { - c = BD(Rr(d), 82); - e = atd(c); - if (!b) { - b = Xod(e); - } else if (b != Xod(e)) { - return true; - } - } - return false; - } - function Rxd(a, b) { - var c, d, e, f; - if (a.ej()) { - c = a.i; - f = a.fj(); - lud(a, b); - d = a.Zi(3, null, b, c, f); - if (a.bj()) { - e = a.cj(b, null); - a.ij() && (e = a.jj(b, e)); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - a.$i(d); - } - } else { - lud(a, b); - if (a.bj()) { - e = a.cj(b, null); - !!e && e.Fi(); - } - } - } - function rwd(a, b, c) { - var d, e, f; - if (a.ej()) { - f = a.fj(); - ++a.j; - a.Hi(b, a.oi(b, c)); - d = a.Zi(3, null, c, b, f); - if (a.bj()) { - e = a.cj(c, null); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - a.$i(d); - } - } else { - ++a.j; - a.Hi(b, a.oi(b, c)); - if (a.bj()) { - e = a.cj(c, null); - !!e && e.Fi(); - } - } - } - function Wee(a) { - var b, c, d, e; - e = a.length; - b = null; - for (d = 0; d < e; d++) { - c = (BCb(d, a.length), a.charCodeAt(d)); - if (hfb(".*+?{[()|\\^$", wfb(c)) >= 0) { - if (!b) { - b = new Ifb(); - d > 0 && Efb(b, a.substr(0, d)); - } - b.a += "\\"; - Afb(b, c & aje); - } else - !!b && Afb(b, c & aje); - } - return b ? b.a : a; - } - function l5c(a) { - var b; - if (!a.a) { - throw vbb(new Zdb("IDataType class expected for layout option " + a.f)); - } - b = gvd(a.a); - if (b == null) { - throw vbb(new Zdb("Couldn't create new instance of property '" + a.f + "'. " + ise + (fdb(Y3), Y3.k) + jse)); - } - return BD(b, 414); - } - function aid(a) { - var b, c, d, e, f; - f = a.eh(); - if (f) { - if (f.kh()) { - e = xid(a, f); - if (e != f) { - c = a.Vg(); - d = (b = a.Vg(), b >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - b, null, null)); - a.Rg(BD(e, 49), c); - !!d && d.Fi(); - a.Lg() && a.Mg() && c > -1 && Uhd(a, new nSd(a, 9, c, f, e)); - return e; - } - } - } - return f; - } - function nTb(a) { - var b, c, d, e, f, g10, h, i10; - g10 = 0; - f = a.f.e; - for (d = 0; d < f.c.length; ++d) { - h = (tCb(d, f.c.length), BD(f.c[d], 144)); - for (e = d + 1; e < f.c.length; ++e) { - i10 = (tCb(e, f.c.length), BD(f.c[e], 144)); - c = S6c(h.d, i10.d); - b = c - a.a[h.b][i10.b]; - g10 += a.i[h.b][i10.b] * b * b; - } - } - return g10; - } - function _ac(a, b) { - var c; - if (wNb(b, (Nyc(), mxc))) { - return; - } - c = hbc(BD(vNb(b, Uac), 360), BD(vNb(a, mxc), 163)); - yNb(b, Uac, c); - if (Qr(new Sr(ur(O_b(b).a.Kc(), new Sq())))) { - return; - } - switch (c.g) { - case 1: - yNb(b, mxc, (Ctc(), xtc)); - break; - case 2: - yNb(b, mxc, (Ctc(), ztc)); - } - } - function wkc(a, b) { - var c; - mkc(a); - a.a = (c = new Ji(), MAb(new YAb(null, new Kub(b.d, 16)), new Vkc(c)), c); - rkc(a, BD(vNb(b.b, (Nyc(), Wwc)), 376)); - tkc(a); - skc(a); - qkc(a); - ukc(a); - vkc(a, b); - MAb(LAb(new YAb(null, $i(Yi(a.b).a)), new Lkc()), new Nkc()); - b.a = false; - a.a = null; - } - function Bod() { - fod.call(this, yte, (Fhd(), Ehd)); - this.p = null; - this.a = null; - this.f = null; - this.n = null; - this.g = null; - this.c = null; - this.i = null; - this.j = null; - this.d = null; - this.b = null; - this.e = null; - this.k = null; - this.o = null; - this.s = null; - this.q = false; - this.r = false; - } - function Csd() { - Csd = ccb; - Bsd = new Dsd(Wne, 0); - ysd = new Dsd("INSIDE_SELF_LOOPS", 1); - zsd = new Dsd("MULTI_EDGES", 2); - xsd = new Dsd("EDGE_LABELS", 3); - Asd = new Dsd("PORTS", 4); - vsd = new Dsd("COMPOUND", 5); - usd = new Dsd("CLUSTERS", 6); - wsd = new Dsd("DISCONNECTED", 7); - } - function Sgb(a, b) { - var c, d, e; - if (b == 0) { - return (a.a[0] & 1) != 0; - } - if (b < 0) { - throw vbb(new ocb("Negative bit address")); - } - e = b >> 5; - if (e >= a.d) { - return a.e < 0; - } - c = a.a[e]; - b = 1 << (b & 31); - if (a.e < 0) { - d = Mgb(a); - if (e < d) { - return false; - } else - d == e ? c = -c : c = ~c; - } - return (c & b) != 0; - } - function O1c(a, b, c, d) { - var e; - BD(c.b, 65); - BD(c.b, 65); - BD(d.b, 65); - BD(d.b, 65); - e = c7c(R6c(BD(c.b, 65).c), BD(d.b, 65).c); - $6c(e, YNb(BD(c.b, 65), BD(d.b, 65), e)); - BD(d.b, 65); - BD(d.b, 65); - BD(d.b, 65).c.a + e.a; - BD(d.b, 65).c.b + e.b; - BD(d.b, 65); - Hkb(d.a, new T1c(a, b, d)); - } - function vNd(a, b) { - var c, d, e, f, g10, h, i10; - f = b.e; - if (f) { - c = aid(f); - d = BD(a.g, 674); - for (g10 = 0; g10 < a.i; ++g10) { - i10 = d[g10]; - if (JQd(i10) == c) { - e = (!i10.d && (i10.d = new xMd(j5, i10, 1)), i10.d); - h = BD(c.ah(Nid(f, f.Cb, f.Db >> 16)), 15).Xc(f); - if (h < e.i) { - return vNd(a, BD(qud(e, h), 87)); - } - } - } - } - return b; - } - function bcb(a, b, c) { - var d = _bb, h; - var e = d[a]; - var f = e instanceof Array ? e[0] : null; - if (e && !f) { - _ = e; - } else { - _ = (h = b && b.prototype, !h && (h = _bb[b]), ecb(h)); - _.hm = c; - !b && (_.im = gcb); - d[a] = _; - } - for (var g10 = 3; g10 < arguments.length; ++g10) { - arguments[g10].prototype = _; - } - f && (_.gm = f); - } - function Qr(a) { - var b; - while (!BD(Qb(a.a), 47).Ob()) { - a.d = Pr(a); - if (!a.d) { - return false; - } - a.a = BD(a.d.Pb(), 47); - if (JD(a.a, 39)) { - b = BD(a.a, 39); - a.a = b.a; - !a.b && (a.b = new jkb()); - Wjb(a.b, a.d); - if (b.b) { - while (!akb(b.b)) { - Wjb(a.b, BD(gkb(b.b), 47)); - } - } - a.d = b.d; - } - } - return true; - } - function krb(a, b) { - var c, d, e, f, g10; - f = b == null ? 0 : a.b.se(b); - d = (c = a.a.get(f), c == null ? new Array() : c); - for (g10 = 0; g10 < d.length; g10++) { - e = d[g10]; - if (a.b.re(b, e.cd())) { - if (d.length == 1) { - d.length = 0; - trb(a.a, f); - } else { - d.splice(g10, 1); - } - --a.c; - zpb(a.b); - return e.dd(); - } - } - return null; - } - function GGb(a, b) { - var c, d, e, f; - e = 1; - b.j = true; - f = null; - for (d = new olb(LFb(b)); d.a < d.c.c.length; ) { - c = BD(mlb(d), 213); - if (!a.c[c.c]) { - a.c[c.c] = true; - f = xFb(c, b); - if (c.f) { - e += GGb(a, f); - } else if (!f.j && c.a == c.e.e - c.d.e) { - c.f = true; - Qqb(a.p, c); - e += GGb(a, f); - } - } - } - return e; - } - function MVb(a) { - var b, c, d; - for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - d = (uCb(0), 0); - if (d > 0) { - !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d += $wnd.Math.max(0, d / 2 - 0.5)); - !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a -= d - 1); - } - } - } - function N3b(a) { - var b, c, d, e, f; - e = new Rkb(); - f = O3b(a, e); - b = BD(vNb(a, (wtc(), gtc)), 10); - if (b) { - for (d = new olb(b.j); d.a < d.c.c.length; ) { - c = BD(mlb(d), 11); - PD(vNb(c, $sc)) === PD(a) && (f = $wnd.Math.max(f, O3b(c, e))); - } - } - e.c.length == 0 || yNb(a, Ysc, f); - return f != -1 ? e : null; - } - function a9b(a, b, c) { - var d, e, f, g10, h, i10; - f = BD(Ikb(b.e, 0), 17).c; - d = f.i; - e = d.k; - i10 = BD(Ikb(c.g, 0), 17).d; - g10 = i10.i; - h = g10.k; - e == (j0b(), g0b) ? yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)) : yNb(a, (wtc(), Vsc), f); - h == g0b ? yNb(a, (wtc(), Wsc), BD(vNb(g10, Wsc), 11)) : yNb(a, (wtc(), Wsc), i10); - } - function Rs(a, b) { - var c, d, e, f; - f = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))); - c = f & a.b.length - 1; - e = null; - for (d = a.b[c]; d; e = d, d = d.a) { - if (d.d == f && Hb(d.i, b)) { - !e ? a.b[c] = d.a : e.a = d.a; - Bs(d.c, d.f); - As(d.b, d.e); - --a.f; - ++a.e; - return true; - } - } - return false; - } - function lD(a, b) { - var c, d, e, f, g10; - b &= 63; - c = a.h; - d = (c & Gje) != 0; - d && (c |= -1048576); - if (b < 22) { - g10 = c >> b; - f = a.m >> b | c << 22 - b; - e = a.l >> b | a.m << 22 - b; - } else if (b < 44) { - g10 = d ? Fje : 0; - f = c >> b - 22; - e = a.m >> b - 22 | c << 44 - b; - } else { - g10 = d ? Fje : 0; - f = d ? Eje : 0; - e = c >> b - 44; - } - return TC(e & Eje, f & Eje, g10 & Fje); - } - function XOb(a) { - var b, c, d, e, f, g10; - this.c = new Rkb(); - this.d = a; - d = Pje; - e = Pje; - b = Qje; - c = Qje; - for (g10 = Jsb(a, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 8); - d = $wnd.Math.min(d, f.a); - e = $wnd.Math.min(e, f.b); - b = $wnd.Math.max(b, f.a); - c = $wnd.Math.max(c, f.b); - } - this.a = new J6c(d, e, b - d, c - e); - } - function Dac(a, b) { - var c, d, e, f, g10, h; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - g10.k == (j0b(), f0b) && zac(g10, b); - for (d = new Sr(ur(U_b(g10).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - yac(c, b); - } - } - } - } - function Xoc(a) { - var b, c, d; - this.c = a; - d = BD(vNb(a, (Nyc(), Lwc)), 103); - b = Edb(ED(vNb(a, owc))); - c = Edb(ED(vNb(a, Dyc))); - d == (ead(), aad) || d == bad || d == cad ? this.b = b * c : this.b = 1 / (b * c); - this.j = Edb(ED(vNb(a, wyc))); - this.e = Edb(ED(vNb(a, vyc))); - this.f = a.b.c.length; - } - function ADc(a) { - var b, c; - a.e = KC(WD, oje, 25, a.p.c.length, 15, 1); - a.k = KC(WD, oje, 25, a.p.c.length, 15, 1); - for (c = new olb(a.p); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - a.e[b.p] = sr(new Sr(ur(R_b(b).a.Kc(), new Sq()))); - a.k[b.p] = sr(new Sr(ur(U_b(b).a.Kc(), new Sq()))); - } - } - function DDc(a) { - var b, c, d, e, f, g10; - e = 0; - a.q = new Rkb(); - b = new Tqb(); - for (g10 = new olb(a.p); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - f.p = e; - for (d = new Sr(ur(U_b(f).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - Qqb(b, c.d.i); - } - b.a.Bc(f) != null; - Ekb(a.q, new Vqb(b)); - b.a.$b(); - ++e; - } - } - function JTc() { - JTc = ccb; - CTc = new q0b(20); - BTc = new Osd((Y9c(), f9c), CTc); - HTc = new Osd(T9c, 20); - uTc = new Osd(r8c, tme); - ETc = new Osd(D9c, meb(1)); - GTc = new Osd(H9c, (Bcb(), true)); - vTc = y8c; - xTc = Y8c; - yTc = _8c; - zTc = b9c; - wTc = W8c; - ATc = e9c; - DTc = x9c; - ITc = (rTc(), pTc); - FTc = nTc; - } - function RBd(a, b) { - var c, d, e, f, g10, h, i10, j, k; - if (a.a.f > 0 && JD(b, 42)) { - a.a.qj(); - j = BD(b, 42); - i10 = j.cd(); - f = i10 == null ? 0 : tb(i10); - g10 = DAd(a.a, f); - c = a.a.d[g10]; - if (c) { - d = BD(c.g, 367); - k = c.i; - for (h = 0; h < k; ++h) { - e = d[h]; - if (e.Sh() == f && e.Fb(j)) { - RBd(a, j); - return true; - } - } - } - } - return false; - } - function skc(a) { - var b, c, d, e; - for (e = BD(Qc(a.a, (Xjc(), Ujc)), 15).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 101); - c = (b = Ec(d.k), b.Hc((Ucd(), Acd)) ? b.Hc(zcd) ? b.Hc(Rcd) ? b.Hc(Tcd) ? null : dkc : fkc : ekc : ckc); - kkc(a, d, c[0], (Fkc(), Ckc), 0); - kkc(a, d, c[1], Dkc, 1); - kkc(a, d, c[2], Ekc, 1); - } - } - function enc(a, b) { - var c, d; - c = fnc(b); - inc(a, b, c); - uPc(a.a, BD(vNb(Q_b(b.b), (wtc(), jtc)), 230)); - dnc(a); - cnc(a, b); - d = KC(WD, oje, 25, b.b.j.c.length, 15, 1); - lnc(a, b, (Ucd(), Acd), d, c); - lnc(a, b, zcd, d, c); - lnc(a, b, Rcd, d, c); - lnc(a, b, Tcd, d, c); - a.a = null; - a.c = null; - a.b = null; - } - function OYc() { - OYc = ccb; - LYc = (zYc(), yYc); - KYc = new Nsd(Bre, LYc); - IYc = new Nsd(Cre, (Bcb(), true)); - meb(-1); - FYc = new Nsd(Dre, meb(-1)); - meb(-1); - GYc = new Nsd(Ere, meb(-1)); - JYc = new Nsd(Fre, false); - MYc = new Nsd(Gre, true); - HYc = new Nsd(Hre, false); - NYc = new Nsd(Ire, -1); - } - function yld(a, b, c) { - switch (b) { - case 7: - !a.e && (a.e = new y5d(B2, a, 7, 4)); - Uxd(a.e); - !a.e && (a.e = new y5d(B2, a, 7, 4)); - ytd(a.e, BD(c, 14)); - return; - case 8: - !a.d && (a.d = new y5d(B2, a, 8, 5)); - Uxd(a.d); - !a.d && (a.d = new y5d(B2, a, 8, 5)); - ytd(a.d, BD(c, 14)); - return; - } - Zkd(a, b, c); - } - function At(a, b) { - var c, d, e, f, g10; - if (PD(b) === PD(a)) { - return true; - } - if (!JD(b, 15)) { - return false; - } - g10 = BD(b, 15); - if (a.gc() != g10.gc()) { - return false; - } - f = g10.Kc(); - for (d = a.Kc(); d.Ob(); ) { - c = d.Pb(); - e = f.Pb(); - if (!(PD(c) === PD(e) || c != null && pb(c, e))) { - return false; - } - } - return true; - } - function U6b(a, b) { - var c, d, e, f; - f = BD(GAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new $6b()), new a7b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - f.Jc(new c7b()); - c = 0; - for (e = f.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 11); - d.p == -1 && T6b(a, d, c++); - } - } - function Wzc(a) { - switch (a.g) { - case 0: - return new KLc(); - case 1: - return new dJc(); - case 2: - return new tJc(); - case 3: - return new CMc(); - case 4: - return new $Jc(); - default: - throw vbb(new Wdb("No implementation is available for the node placer " + (a.f != null ? a.f : "" + a.g))); - } - } - function nqc(a) { - switch (a.g) { - case 0: - return new aCc(); - case 1: - return new VBc(); - case 2: - return new kCc(); - case 3: - return new rCc(); - case 4: - return new eCc(); - default: - throw vbb(new Wdb("No implementation is available for the cycle breaker " + (a.f != null ? a.f : "" + a.g))); - } - } - function HWc() { - HWc = ccb; - BWc = new Nsd(lre, meb(0)); - CWc = new Nsd(mre, 0); - yWc = (pWc(), mWc); - xWc = new Nsd(nre, yWc); - meb(0); - wWc = new Nsd(ore, meb(1)); - EWc = (sXc(), qXc); - DWc = new Nsd(pre, EWc); - GWc = (fWc(), eWc); - FWc = new Nsd(qre, GWc); - AWc = (iXc(), hXc); - zWc = new Nsd(rre, AWc); - } - function XXb(a, b, c) { - var d; - d = null; - !!b && (d = b.d); - hYb(a, new cWb(b.n.a - d.b + c.a, b.n.b - d.d + c.b)); - hYb(a, new cWb(b.n.a - d.b + c.a, b.n.b + b.o.b + d.a + c.b)); - hYb(a, new cWb(b.n.a + b.o.a + d.c + c.a, b.n.b - d.d + c.b)); - hYb(a, new cWb(b.n.a + b.o.a + d.c + c.a, b.n.b + b.o.b + d.a + c.b)); - } - function T6b(a, b, c) { - var d, e, f; - b.p = c; - for (f = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(f); ) { - d = BD(Rr(f), 11); - d.p == -1 && T6b(a, d, c); - } - if (b.i.k == (j0b(), g0b)) { - for (e = new olb(b.i.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 11); - d != b && d.p == -1 && T6b(a, d, c); - } - } - } - function rPc(a) { - var b, c, d, e, f; - e = BD(GAb(IAb(UAb(a)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - d = dme; - if (e.gc() >= 2) { - c = e.Kc(); - b = ED(c.Pb()); - while (c.Ob()) { - f = b; - b = ED(c.Pb()); - d = $wnd.Math.min(d, (uCb(b), b) - (uCb(f), f)); - } - } - return d; - } - function gUc(a, b) { - var c, d, e, f, g10; - d = new Psb(); - Gsb(d, b, d.c.b, d.c); - do { - c = (sCb(d.b != 0), BD(Nsb(d, d.a.a), 86)); - a.b[c.g] = 1; - for (f = Jsb(c.d, 0); f.b != f.d.c; ) { - e = BD(Xsb(f), 188); - g10 = e.c; - a.b[g10.g] == 1 ? Dsb(a.a, e) : a.b[g10.g] == 2 ? a.b[g10.g] = 1 : Gsb(d, g10, d.c.b, d.c); - } - } while (d.b != 0); - } - function Ju(a, b) { - var c, d, e; - if (PD(b) === PD(Qb(a))) { - return true; - } - if (!JD(b, 15)) { - return false; - } - d = BD(b, 15); - e = a.gc(); - if (e != d.gc()) { - return false; - } - if (JD(d, 54)) { - for (c = 0; c < e; c++) { - if (!Hb(a.Xb(c), d.Xb(c))) { - return false; - } - } - return true; - } else { - return kr(a.Kc(), d.Kc()); - } - } - function Aac(a, b) { - var c, d; - if (a.c.length != 0) { - if (a.c.length == 2) { - zac((tCb(0, a.c.length), BD(a.c[0], 10)), (rbd(), nbd)); - zac((tCb(1, a.c.length), BD(a.c[1], 10)), obd); - } else { - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - zac(c, b); - } - } - a.c = KC(SI, Uhe, 1, 0, 5, 1); - } - } - function uKc(a) { - var b, c; - if (a.c.length != 2) { - throw vbb(new Zdb("Order only allowed for two paths.")); - } - b = (tCb(0, a.c.length), BD(a.c[0], 17)); - c = (tCb(1, a.c.length), BD(a.c[1], 17)); - if (b.d.i != c.c.i) { - a.c = KC(SI, Uhe, 1, 0, 5, 1); - a.c[a.c.length] = c; - a.c[a.c.length] = b; - } - } - function EMc(a, b) { - var c, d, e, f, g10, h; - d = new $rb(); - g10 = Gx(new amb(a.g)); - for (f = g10.a.ec().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 10); - if (!e) { - Sdd(b, "There are no classes in a balanced layout."); - break; - } - h = a.j[e.p]; - c = BD(Wrb(d, h), 15); - if (!c) { - c = new Rkb(); - Xrb(d, h, c); - } - c.Fc(e); - } - return d; - } - function Dqd(a, b, c) { - var d, e, f, g10, h, i10, j; - if (c) { - f = c.a.length; - d = new Yge(f); - for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - i10 = Zpd(c, g10.a); - if (i10) { - j = ftd(_pd(i10, Ite), b); - Rhb(a.f, j, i10); - e = Vte in i10.a; - e && Lkd(j, _pd(i10, Vte)); - grd(i10, j); - hrd(i10, j); - } - } - } - } - function ndc(a, b) { - var c, d, e, f, g10; - Odd(b, "Port side processing", 1); - for (g10 = new olb(a.a); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 10); - odc(e); - } - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - odc(e); - } - } - Qdd(b); - } - function bfc(a, b, c) { - var d, e, f, g10, h; - e = a.f; - !e && (e = BD(a.a.a.ec().Kc().Pb(), 57)); - cfc(e, b, c); - if (a.a.a.gc() == 1) { - return; - } - d = b * c; - for (g10 = a.a.a.ec().Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 57); - if (f != e) { - h = ugc(f); - if (h.f.d) { - f.d.d += d + ple; - f.d.a -= d + ple; - } else - h.f.a && (f.d.a -= d + ple); - } - } - } - function tQb(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n; - g10 = c - a; - h = d - b; - f = $wnd.Math.atan2(g10, h); - i10 = f + cme; - j = f - cme; - k = e * $wnd.Math.sin(i10) + a; - m = e * $wnd.Math.cos(i10) + b; - l = e * $wnd.Math.sin(j) + a; - n = e * $wnd.Math.cos(j) + b; - return Ou(OC(GC(m1, 1), nie, 8, 0, [new f7c(k, m), new f7c(l, n)])); - } - function OLc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l; - e = c; - k = b; - f = k; - do { - f = a.a[f.p]; - h = (l = a.g[f.p], Edb(a.p[l.p]) + Edb(a.d[f.p]) - f.d.d); - i10 = RLc(f, d); - if (i10) { - g10 = (j = a.g[i10.p], Edb(a.p[j.p]) + Edb(a.d[i10.p]) + i10.o.b + i10.d.a); - e = $wnd.Math.min(e, h - (g10 + jBc(a.k, f, i10))); - } - } while (k != f); - return e; - } - function PLc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l; - e = c; - k = b; - f = k; - do { - f = a.a[f.p]; - g10 = (l = a.g[f.p], Edb(a.p[l.p]) + Edb(a.d[f.p]) + f.o.b + f.d.a); - i10 = QLc(f, d); - if (i10) { - h = (j = a.g[i10.p], Edb(a.p[j.p]) + Edb(a.d[i10.p]) - i10.d.d); - e = $wnd.Math.min(e, h - (g10 + jBc(a.k, f, i10))); - } - } while (k != f); - return e; - } - function hkd(a, b) { - var c, d; - d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), AAd(a.o, b)); - if (d != null) { - return d; - } - c = b.wg(); - JD(c, 4) && (c == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c)), a); - return c; - } - function Hbd() { - Hbd = ccb; - zbd = new Ibd("H_LEFT", 0); - ybd = new Ibd("H_CENTER", 1); - Bbd = new Ibd("H_RIGHT", 2); - Gbd = new Ibd("V_TOP", 3); - Fbd = new Ibd("V_CENTER", 4); - Ebd = new Ibd("V_BOTTOM", 5); - Cbd = new Ibd("INSIDE", 6); - Dbd = new Ibd("OUTSIDE", 7); - Abd = new Ibd("H_PRIORITY", 8); - } - function o6d(a) { - var b, c, d, e, f, g10, h; - b = a.Hh(_ve); - if (b) { - h = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "settingDelegates")); - if (h != null) { - c = new Rkb(); - for (e = mfb(h, "\\w+"), f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - c.c[c.c.length] = d; - } - return c; - } - } - return mmb(), mmb(), jmb; - } - function sGb(a, b) { - var c, d, e, f, g10, h, i10; - if (!b.f) { - throw vbb(new Wdb("The input edge is not a tree edge.")); - } - f = null; - e = Ohe; - for (d = new olb(a.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 213); - h = c.d; - i10 = c.e; - if (xGb(a, h, b) && !xGb(a, i10, b)) { - g10 = i10.e - h.e - c.a; - if (g10 < e) { - e = g10; - f = c; - } - } - } - return f; - } - function qTb(a) { - var b, c, d, e, f, g10; - if (a.f.e.c.length <= 1) { - return; - } - b = 0; - e = nTb(a); - c = Pje; - do { - b > 0 && (e = c); - for (g10 = new olb(a.f.e); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 144); - if (Ccb(DD(vNb(f, (bTb(), USb))))) { - continue; - } - d = mTb(a, f); - P6c(X6c(f.d), d); - } - c = nTb(a); - } while (!pTb(a, b++, e, c)); - } - function $ac(a, b) { - var c, d, e; - Odd(b, "Layer constraint preprocessing", 1); - c = new Rkb(); - e = new Bib(a.a, 0); - while (e.b < e.d.gc()) { - d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 10)); - if (Zac(d)) { - Xac(d); - c.c[c.c.length] = d; - uib(e); - } - } - c.c.length == 0 || yNb(a, (wtc(), Lsc), c); - Qdd(b); - } - function sjc(a, b) { - var c, d, e, f, g10; - f = a.g.a; - g10 = a.g.b; - for (d = new olb(a.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 70); - e = c.n; - a.a == (Ajc(), xjc) || a.i == (Ucd(), zcd) ? e.a = f : a.a == yjc || a.i == (Ucd(), Tcd) ? e.a = f + a.j.a - c.o.a : e.a = f + (a.j.a - c.o.a) / 2; - e.b = g10; - P6c(e, b); - g10 += c.o.b + a.e; - } - } - function LSc(a, b, c) { - var d, e, f, g10; - Odd(c, "Processor set coordinates", 1); - a.a = b.b.b == 0 ? 1 : b.b.b; - f = null; - d = Jsb(b.b, 0); - while (!f && d.b != d.d.c) { - g10 = BD(Xsb(d), 86); - if (Ccb(DD(vNb(g10, (mTc(), jTc))))) { - f = g10; - e = g10.e; - e.a = BD(vNb(g10, kTc), 19).a; - e.b = 0; - } - } - MSc(a, URc(f), Udd(c, 1)); - Qdd(c); - } - function xSc(a, b, c) { - var d, e, f; - Odd(c, "Processor determine the height for each level", 1); - a.a = b.b.b == 0 ? 1 : b.b.b; - e = null; - d = Jsb(b.b, 0); - while (!e && d.b != d.d.c) { - f = BD(Xsb(d), 86); - Ccb(DD(vNb(f, (mTc(), jTc)))) && (e = f); - } - !!e && ySc(a, Ou(OC(GC(q$, 1), fme, 86, 0, [e])), c); - Qdd(c); - } - function brd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - j = a; - i10 = $pd(j, "individualSpacings"); - if (i10) { - d = ikd(b, (Y9c(), O9c)); - g10 = !d; - if (g10) { - e = new _fd(); - jkd(b, O9c, e); - } - h = BD(hkd(b, O9c), 373); - l = i10; - f = null; - !!l && (f = (k = $B(l, KC(ZI, nie, 2, 0, 6, 1)), new mC(l, k))); - if (f) { - c = new Frd(l, h); - reb(f, c); - } - } - } - function frd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - i10 = null; - l = a; - k = null; - if (cue in l.a || due in l.a || Ote in l.a) { - j = null; - m = etd(b); - g10 = $pd(l, cue); - c = new Ird(m); - Eqd(c.a, g10); - h = $pd(l, due); - d = new asd(m); - Pqd(d.a, h); - f = Ypd(l, Ote); - e = new dsd(m); - j = (Qqd(e.a, f), f); - k = j; - } - i10 = k; - return i10; - } - function $w(a, b) { - var c, d, e; - if (b === a) { - return true; - } - if (JD(b, 543)) { - e = BD(b, 835); - if (a.a.d != e.a.d || Ah(a).gc() != Ah(e).gc()) { - return false; - } - for (d = Ah(e).Kc(); d.Ob(); ) { - c = BD(d.Pb(), 416); - if (Aw(a, c.a.cd()) != BD(c.a.dd(), 14).gc()) { - return false; - } - } - return true; - } - return false; - } - function BMb(a) { - var b, c, d, e; - d = BD(a.a, 19).a; - e = BD(a.b, 19).a; - b = d; - c = e; - if (d == 0 && e == 0) { - c -= 1; - } else { - if (d == -1 && e <= 0) { - b = 0; - c -= 2; - } else { - if (d <= 0 && e > 0) { - b -= 1; - c -= 1; - } else { - if (d >= 0 && e < 0) { - b += 1; - c += 1; - } else { - if (d > 0 && e >= 0) { - b -= 1; - c += 1; - } else { - b += 1; - c -= 1; - } - } - } - } - } - return new vgd(meb(b), meb(c)); - } - function PIc(a, b) { - if (a.c < b.c) { - return -1; - } else if (a.c > b.c) { - return 1; - } else if (a.b < b.b) { - return -1; - } else if (a.b > b.b) { - return 1; - } else if (a.a != b.a) { - return tb(a.a) - tb(b.a); - } else if (a.d == (UIc(), TIc) && b.d == SIc) { - return -1; - } else if (a.d == SIc && b.d == TIc) { - return 1; - } - return 0; - } - function aNc(a, b) { - var c, d, e, f, g10; - f = b.a; - f.c.i == b.b ? g10 = f.d : g10 = f.c; - f.c.i == b.b ? d = f.c : d = f.d; - e = NLc(a.a, g10, d); - if (e > 0 && e < dme) { - c = OLc(a.a, d.i, e, a.c); - TLc(a.a, d.i, -c); - return c > 0; - } else if (e < 0 && -e < dme) { - c = PLc(a.a, d.i, -e, a.c); - TLc(a.a, d.i, c); - return c > 0; - } - return false; - } - function RZc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l; - e = (b - a.d) / a.c.c.length; - f = 0; - a.a += c; - a.d = b; - for (l = new olb(a.c); l.a < l.c.c.length; ) { - k = BD(mlb(l), 33); - j = k.g; - i10 = k.f; - dld(k, k.i + f * e); - eld(k, k.j + d * c); - cld(k, k.g + e); - ald(k, a.a); - ++f; - h = k.g; - g10 = k.f; - Ffd(k, new f7c(h, g10), new f7c(j, i10)); - } - } - function Xmd(a) { - var b, c, d, e, f, g10, h; - if (a == null) { - return null; - } - h = a.length; - e = (h + 1) / 2 | 0; - g10 = KC(SD, wte, 25, e, 15, 1); - h % 2 != 0 && (g10[--e] = jnd((BCb(h - 1, a.length), a.charCodeAt(h - 1)))); - for (c = 0, d = 0; c < e; ++c) { - b = jnd(bfb(a, d++)); - f = jnd(bfb(a, d++)); - g10[c] = (b << 4 | f) << 24 >> 24; - } - return g10; - } - function vdb(a) { - if (a.pe()) { - var b = a.c; - b.qe() ? a.o = "[" + b.n : !b.pe() ? a.o = "[L" + b.ne() + ";" : a.o = "[" + b.ne(); - a.b = b.me() + "[]"; - a.k = b.oe() + "[]"; - return; - } - var c = a.j; - var d = a.d; - d = d.split("/"); - a.o = ydb(".", [c, ydb("$", d)]); - a.b = ydb(".", [c, ydb(".", d)]); - a.k = d[d.length - 1]; - } - function qGb(a, b) { - var c, d, e, f, g10; - g10 = null; - for (f = new olb(a.e.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 121); - if (e.b.a.c.length == e.g.a.c.length) { - d = e.e; - g10 = BGb(e); - for (c = e.e - BD(g10.a, 19).a + 1; c < e.e + BD(g10.b, 19).a; c++) { - b[c] < b[d] && (d = c); - } - if (b[d] < b[e.e]) { - --b[e.e]; - ++b[d]; - e.e = d; - } - } - } - } - function SLc(a) { - var b, c, d, e, f, g10, h, i10; - e = Pje; - d = Qje; - for (c = new olb(a.e.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 29); - for (g10 = new olb(b.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - i10 = Edb(a.p[f.p]); - h = i10 + Edb(a.b[a.g[f.p].p]); - e = $wnd.Math.min(e, i10); - d = $wnd.Math.max(d, h); - } - } - return d - e; - } - function r1d(a, b, c, d) { - var e, f, g10, h, i10, j; - i10 = null; - e = f1d(a, b); - for (h = 0, j = e.gc(); h < j; ++h) { - f = BD(e.Xb(h), 170); - if (dfb(d, a2d(q1d(a, f)))) { - g10 = b2d(q1d(a, f)); - if (c == null) { - if (g10 == null) { - return f; - } else - !i10 && (i10 = f); - } else if (dfb(c, g10)) { - return f; - } else - g10 == null && !i10 && (i10 = f); - } - } - return null; - } - function s1d(a, b, c, d) { - var e, f, g10, h, i10, j; - i10 = null; - e = g1d(a, b); - for (h = 0, j = e.gc(); h < j; ++h) { - f = BD(e.Xb(h), 170); - if (dfb(d, a2d(q1d(a, f)))) { - g10 = b2d(q1d(a, f)); - if (c == null) { - if (g10 == null) { - return f; - } else - !i10 && (i10 = f); - } else if (dfb(c, g10)) { - return f; - } else - g10 == null && !i10 && (i10 = f); - } - } - return null; - } - function p3d(a, b, c) { - var d, e, f, g10, h, i10; - g10 = new yud(); - h = S6d(a.e.Tg(), b); - d = BD(a.g, 119); - Q6d(); - if (BD(b, 66).Oj()) { - for (f = 0; f < a.i; ++f) { - e = d[f]; - h.rl(e.ak()) && wtd(g10, e); - } - } else { - for (f = 0; f < a.i; ++f) { - e = d[f]; - if (h.rl(e.ak())) { - i10 = e.dd(); - wtd(g10, c ? b3d(a, b, f, g10.i, i10) : i10); - } - } - } - return wud(g10); - } - function T9b(a, b) { - var c, d, e, f, g10; - c = new Rpb(EW); - for (e = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - Opb(c, d, new Rkb()); - } - MAb(NAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new hac()), new jac()), new lac(b)), new nac(c)); - return c; - } - function AVc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - for (f = b.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 33); - k = e.i + e.g / 2; - m = e.j + e.f / 2; - i10 = a.f; - g10 = i10.i + i10.g / 2; - h = i10.j + i10.f / 2; - j = k - g10; - l = m - h; - d = $wnd.Math.sqrt(j * j + l * l); - j *= a.e / d; - l *= a.e / d; - if (c) { - k -= j; - m -= l; - } else { - k += j; - m += l; - } - dld(e, k - e.g / 2); - eld(e, m - e.f / 2); - } - } - function Yfe(a) { - var b, c, d; - if (a.c) - return; - if (a.b == null) - return; - for (b = a.b.length - 4; b >= 0; b -= 2) { - for (c = 0; c <= b; c += 2) { - if (a.b[c] > a.b[c + 2] || a.b[c] === a.b[c + 2] && a.b[c + 1] > a.b[c + 3]) { - d = a.b[c + 2]; - a.b[c + 2] = a.b[c]; - a.b[c] = d; - d = a.b[c + 3]; - a.b[c + 3] = a.b[c + 1]; - a.b[c + 1] = d; - } - } - } - a.c = true; - } - function UUb(a, b) { - var c, d, e, f, g10, h, i10, j; - g10 = b == 1 ? KUb : JUb; - for (f = g10.a.ec().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 103); - for (i10 = BD(Qc(a.f.c, e), 21).Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 46); - d = BD(h.b, 81); - j = BD(h.a, 189); - c = j.c; - switch (e.g) { - case 2: - case 1: - d.g.d += c; - break; - case 4: - case 3: - d.g.c += c; - } - } - } - } - function PFc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - j = -1; - k = 0; - for (g10 = a, h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - c = new Dnc(j == -1 ? a[0] : a[j], b, (xzc(), wzc)); - for (d = 0; d < f.length; d++) { - for (e = d + 1; e < f.length; e++) { - wNb(f[d], (wtc(), Zsc)) && wNb(f[e], Zsc) && ync(c, f[d], f[e]) > 0 && ++k; - } - } - ++j; - } - return k; - } - function Eid(a) { - var b, c; - c = new Wfb(hdb(a.gm)); - c.a += "@"; - Qfb(c, (b = tb(a) >>> 0, b.toString(16))); - if (a.kh()) { - c.a += " (eProxyURI: "; - Pfb(c, a.qh()); - if (a.$g()) { - c.a += " eClass: "; - Pfb(c, a.$g()); - } - c.a += ")"; - } else if (a.$g()) { - c.a += " (eClass: "; - Pfb(c, a.$g()); - c.a += ")"; - } - return c.a; - } - function TDb(a) { - var b, c, d, e; - if (a.e) { - throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke))); - } - a.d == (ead(), cad) && SDb(a, aad); - for (c = new olb(a.a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 307); - b.g = b.i; - } - for (e = new olb(a.a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 57); - d.i = Qje; - } - a.b.Le(a); - return a; - } - function TPc(a, b) { - var c, d, e, f, g10; - if (b < 2 * a.b) { - throw vbb(new Wdb("The knot vector must have at least two time the dimension elements.")); - } - a.f = 1; - for (e = 0; e < a.b; e++) { - Ekb(a.e, 0); - } - g10 = b + 1 - 2 * a.b; - c = g10; - for (f = 1; f < g10; f++) { - Ekb(a.e, f / c); - } - if (a.d) { - for (d = 0; d < a.b; d++) { - Ekb(a.e, 1); - } - } - } - function ard(a, b) { - var c, d, e, f, g10, h, i10, j, k; - j = b; - k = BD(_o(qo(a.i), j), 33); - if (!k) { - e = _pd(j, Vte); - h = "Unable to find elk node for json object '" + e; - i10 = h + "' Panic!"; - throw vbb(new cqd(i10)); - } - f = Ypd(j, "edges"); - c = new krd(a, k); - mqd(c.a, c.b, f); - g10 = Ypd(j, Jte); - d = new vrd(a); - xqd(d.a, g10); - } - function xAd(a, b, c, d) { - var e, f, g10, h, i10; - if (d != null) { - e = a.d[b]; - if (e) { - f = e.g; - i10 = e.i; - for (h = 0; h < i10; ++h) { - g10 = BD(f[h], 133); - if (g10.Sh() == c && pb(d, g10.cd())) { - return h; - } - } - } - } else { - e = a.d[b]; - if (e) { - f = e.g; - i10 = e.i; - for (h = 0; h < i10; ++h) { - g10 = BD(f[h], 133); - if (PD(g10.cd()) === PD(d)) { - return h; - } - } - } - } - return -1; - } - function nUd(a, b) { - var c, d, e; - c = b == null ? Wd(irb(a.f, null)) : Crb(a.g, b); - if (JD(c, 235)) { - e = BD(c, 235); - e.Qh() == null && void 0; - return e; - } else if (JD(c, 498)) { - d = BD(c, 1938); - e = d.a; - !!e && (e.yb == null ? void 0 : b == null ? jrb(a.f, null, e) : Drb(a.g, b, e)); - return e; - } else { - return null; - } - } - function ide(a) { - hde(); - var b, c, d, e, f, g10, h; - if (a == null) - return null; - e = a.length; - if (e % 2 != 0) - return null; - b = rfb(a); - f = e / 2 | 0; - c = KC(SD, wte, 25, f, 15, 1); - for (d = 0; d < f; d++) { - g10 = fde[b[d * 2]]; - if (g10 == -1) - return null; - h = fde[b[d * 2 + 1]]; - if (h == -1) - return null; - c[d] = (g10 << 4 | h) << 24 >> 24; - } - return c; - } - function lKb(a, b, c) { - var d, e, f; - e = BD(Mpb(a.i, b), 306); - if (!e) { - e = new bIb(a.d, b, c); - Npb(a.i, b, e); - if (sJb(b)) { - CHb(a.a, b.c, b.b, e); - } else { - f = rJb(b); - d = BD(Mpb(a.p, f), 244); - switch (f.g) { - case 1: - case 3: - e.j = true; - lIb(d, b.b, e); - break; - case 4: - case 2: - e.k = true; - lIb(d, b.c, e); - } - } - } - return e; - } - function r3d(a, b, c, d) { - var e, f, g10, h, i10, j; - h = new yud(); - i10 = S6d(a.e.Tg(), b); - e = BD(a.g, 119); - Q6d(); - if (BD(b, 66).Oj()) { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - i10.rl(f.ak()) && wtd(h, f); - } - } else { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (i10.rl(f.ak())) { - j = f.dd(); - wtd(h, d ? b3d(a, b, g10, h.i, j) : j); - } - } - } - return xud(h, c); - } - function YCc(a, b) { - var c, d, e, f, g10, h, i10, j; - e = a.b[b.p]; - if (e >= 0) { - return e; - } else { - f = 1; - for (h = new olb(b.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - for (d = new olb(g10.g); d.a < d.c.c.length; ) { - c = BD(mlb(d), 17); - j = c.d.i; - if (b != j) { - i10 = YCc(a, j); - f = $wnd.Math.max(f, i10 + 1); - } - } - } - XCc(a, b, f); - return f; - } - } - function YGc(a, b, c) { - var d, e, f; - for (d = 1; d < a.c.length; d++) { - f = (tCb(d, a.c.length), BD(a.c[d], 10)); - e = d; - while (e > 0 && b.ue((tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)), f) > 0) { - Nkb(a, e, (tCb(e - 1, a.c.length), BD(a.c[e - 1], 10))); - --e; - } - tCb(e, a.c.length); - a.c[e] = f; - } - c.a = new Lqb(); - c.b = new Lqb(); - } - function n5c(a, b, c) { - var d, e, f, g10, h, i10, j, k; - k = (d = BD(b.e && b.e(), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0)); - i10 = mfb(c, "[\\[\\]\\s,]+"); - for (f = i10, g10 = 0, h = f.length; g10 < h; ++g10) { - e = f[g10]; - if (ufb(e).length == 0) { - continue; - } - j = m5c(a, e); - if (j == null) { - return null; - } else { - rqb(k, BD(j, 22)); - } - } - return k; - } - function KVb(a) { - var b, c, d; - for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - d = (uCb(0), 0); - if (d > 0) { - !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d -= $wnd.Math.max(0, d / 2 - 0.5)); - !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a += $wnd.Math.max(0, d - 1)); - } - } - } - function Hac(a, b, c) { - var d, e; - if ((a.c - a.b & a.a.length - 1) == 2) { - if (b == (Ucd(), Acd) || b == zcd) { - xac(BD(bkb(a), 15), (rbd(), nbd)); - xac(BD(bkb(a), 15), obd); - } else { - xac(BD(bkb(a), 15), (rbd(), obd)); - xac(BD(bkb(a), 15), nbd); - } - } else { - for (e = new xkb(a); e.a != e.b; ) { - d = BD(vkb(e), 15); - xac(d, c); - } - } - } - function htd(a, b) { - var c, d, e, f, g10, h, i10; - e = Nu(new qtd(a)); - h = new Bib(e, e.c.length); - f = Nu(new qtd(b)); - i10 = new Bib(f, f.c.length); - g10 = null; - while (h.b > 0 && i10.b > 0) { - c = (sCb(h.b > 0), BD(h.a.Xb(h.c = --h.b), 33)); - d = (sCb(i10.b > 0), BD(i10.a.Xb(i10.c = --i10.b), 33)); - if (c == d) { - g10 = c; - } else { - break; - } - } - return g10; - } - function Cub(a, b) { - var c, d, e, f, g10, h; - f = a.a * kke + a.b * 1502; - h = a.b * kke + 11; - c = $wnd.Math.floor(h * lke); - f += c; - h -= c * mke; - f %= mke; - a.a = f; - a.b = h; - if (b <= 24) { - return $wnd.Math.floor(a.a * wub[b]); - } else { - e = a.a * (1 << b - 24); - g10 = $wnd.Math.floor(a.b * xub[b]); - d = e + g10; - d >= 2147483648 && (d -= Zje); - return d; - } - } - function Zic(a, b, c) { - var d, e, f, g10; - if (bjc(a, b) > bjc(a, c)) { - d = V_b(c, (Ucd(), zcd)); - a.d = d.dc() ? 0 : B0b(BD(d.Xb(0), 11)); - g10 = V_b(b, Tcd); - a.b = g10.dc() ? 0 : B0b(BD(g10.Xb(0), 11)); - } else { - e = V_b(c, (Ucd(), Tcd)); - a.d = e.dc() ? 0 : B0b(BD(e.Xb(0), 11)); - f = V_b(b, zcd); - a.b = f.dc() ? 0 : B0b(BD(f.Xb(0), 11)); - } - } - function l6d(a) { - var b, c, d, e, f, g10, h; - if (a) { - b = a.Hh(_ve); - if (b) { - g10 = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "conversionDelegates")); - if (g10 != null) { - h = new Rkb(); - for (d = mfb(g10, "\\w+"), e = 0, f = d.length; e < f; ++e) { - c = d[e]; - h.c[h.c.length] = c; - } - return h; - } - } - } - return mmb(), mmb(), jmb; - } - function FKb(a, b) { - var c, d, e, f; - c = a.o.a; - for (f = BD(BD(Qc(a.r, b), 21), 84).Kc(); f.Ob(); ) { - e = BD(f.Pb(), 111); - e.e.a = c * Edb(ED(e.b.We(BKb))); - e.e.b = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Acd) ? -d.rf().b - Edb(ED(d.We(s9c))) : Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Acd) ? -d.rf().b : 0); - } - } - function Woc(a) { - var b, c, d, e, f, g10, h, i10; - b = true; - e = null; - f = null; - j: - for (i10 = new olb(a.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - for (d = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (!!e && e != h) { - b = false; - break j; - } - e = h; - g10 = c.c.i; - if (!!f && f != g10) { - b = false; - break j; - } - f = g10; - } - } - return b; - } - function OOc(a, b, c) { - var d, e, f, g10, h, i10; - f = -1; - h = -1; - for (g10 = 0; g10 < b.c.length; g10++) { - e = (tCb(g10, b.c.length), BD(b.c[g10], 329)); - if (e.c > a.c) { - break; - } else if (e.a >= a.s) { - f < 0 && (f = g10); - h = g10; - } - } - i10 = (a.s + a.c) / 2; - if (f >= 0) { - d = NOc(a, b, f, h); - i10 = $Oc((tCb(d, b.c.length), BD(b.c[d], 329))); - YOc(b, d, c); - } - return i10; - } - function lZc() { - lZc = ccb; - RYc = new Osd((Y9c(), r8c), 1.3); - VYc = I8c; - gZc = new q0b(15); - fZc = new Osd(f9c, gZc); - jZc = new Osd(T9c, 15); - SYc = w8c; - _Yc = Y8c; - aZc = _8c; - bZc = b9c; - $Yc = W8c; - cZc = e9c; - hZc = x9c; - eZc = (OYc(), KYc); - ZYc = IYc; - dZc = JYc; - iZc = MYc; - WYc = HYc; - XYc = O8c; - YYc = P8c; - UYc = GYc; - TYc = FYc; - kZc = NYc; - } - function Bnd(a, b, c) { - var d, e, f, g10, h, i10, j; - g10 = (f = new RHd(), f); - PHd(g10, (uCb(b), b)); - j = (!g10.b && (g10.b = new sId((jGd(), fGd), x6, g10)), g10.b); - for (i10 = 1; i10 < c.length; i10 += 2) { - HAd(j, c[i10 - 1], c[i10]); - } - d = (!a.Ab && (a.Ab = new cUd(a5, a, 0, 3)), a.Ab); - for (h = 0; h < 0; ++h) { - e = LHd(BD(qud(d, d.i - 1), 590)); - d = e; - } - wtd(d, g10); - } - function MPb(a, b, c) { - var d, e, f; - sNb.call(this, new Rkb()); - this.a = b; - this.b = c; - this.e = a; - d = (a.b && LOb(a), a.a); - this.d = KPb(d.a, this.a); - this.c = KPb(d.b, this.b); - kNb(this, this.d, this.c); - LPb(this); - for (f = this.e.e.a.ec().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 266); - e.c.c.length > 0 && JPb(this, e); - } - } - function IQb(a, b, c, d, e, f) { - var g10, h, i10; - if (!e[b.b]) { - e[b.b] = true; - g10 = d; - !g10 && (g10 = new kRb()); - Ekb(g10.e, b); - for (i10 = f[b.b].Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 282); - if (h.d == c || h.c == c) { - continue; - } - h.c != b && IQb(a, h.c, b, g10, e, f); - h.d != b && IQb(a, h.d, b, g10, e, f); - Ekb(g10.c, h); - Gkb(g10.d, h.b); - } - return g10; - } - return null; - } - function e4b(a) { - var b, c, d, e, f, g10, h; - b = 0; - for (e = new olb(a.e); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - c = FAb(new YAb(null, new Kub(d.b, 16)), new w4b()); - c && ++b; - } - for (g10 = new olb(a.g); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - h = FAb(new YAb(null, new Kub(f.b, 16)), new y4b()); - h && ++b; - } - return b >= 2; - } - function gec(a, b) { - var c, d, e, f; - Odd(b, "Self-Loop pre-processing", 1); - for (d = new olb(a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - if (Ljc(c)) { - e = (f = new Kjc(c), yNb(c, (wtc(), ntc), f), Hjc(f), f); - MAb(NAb(LAb(new YAb(null, new Kub(e.d, 16)), new jec()), new lec()), new nec()); - eec(e); - } - } - Qdd(b); - } - function vnc(a, b, c, d, e) { - var f, g10, h, i10, j, k; - f = a.c.d.j; - g10 = BD(Ut(c, 0), 8); - for (k = 1; k < c.b; k++) { - j = BD(Ut(c, k), 8); - Gsb(d, g10, d.c.b, d.c); - h = Y6c(P6c(new g7c(g10), j), 0.5); - i10 = Y6c(new e7c(bRc(f)), e); - P6c(h, i10); - Gsb(d, h, d.c.b, d.c); - g10 = j; - f = b == 0 ? Xcd(f) : Vcd(f); - } - Dsb(d, (sCb(c.b != 0), BD(c.c.b.c, 8))); - } - function Jbd(a) { - Hbd(); - var b, c, d; - c = qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Dbd])); - if (Ox(Cx(c, a)) > 1) { - return false; - } - b = qqb(zbd, OC(GC(B1, 1), Kie, 93, 0, [ybd, Bbd])); - if (Ox(Cx(b, a)) > 1) { - return false; - } - d = qqb(Gbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Ebd])); - if (Ox(Cx(d, a)) > 1) { - return false; - } - return true; - } - function U0d(a, b) { - var c, d, e; - c = b.Hh(a.a); - if (c) { - e = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), "affiliation")); - if (e != null) { - d = kfb(e, wfb(35)); - return d == -1 ? l1d(a, u1d(a, bKd(b.Hj())), e) : d == 0 ? l1d(a, null, e.substr(1)) : l1d(a, e.substr(0, d), e.substr(d + 1)); - } - } - return null; - } - function ic(b) { - var c, d, e; - try { - return b == null ? Xhe : fcb(b); - } catch (a) { - a = ubb(a); - if (JD(a, 102)) { - c = a; - e = hdb(rb(b)) + "@" + (d = (Zfb(), kCb(b)) >>> 0, d.toString(16)); - tyb(xyb(), ($xb(), "Exception during lenientFormat for " + e), c); - return "<" + e + " threw " + hdb(c.gm) + ">"; - } else - throw vbb(a); - } - } - function mzc(a) { - switch (a.g) { - case 0: - return new xDc(); - case 1: - return new ZCc(); - case 2: - return new DCc(); - case 3: - return new QCc(); - case 4: - return new LDc(); - case 5: - return new iDc(); - default: - throw vbb(new Wdb("No implementation is available for the layerer " + (a.f != null ? a.f : "" + a.g))); - } - } - function AQc(a, b, c) { - var d, e, f; - for (f = new olb(a.t); f.a < f.c.c.length; ) { - d = BD(mlb(f), 268); - if (d.b.s < 0 && d.c > 0) { - d.b.n -= d.c; - d.b.n <= 0 && d.b.u > 0 && Dsb(b, d.b); - } - } - for (e = new olb(a.i); e.a < e.c.c.length; ) { - d = BD(mlb(e), 268); - if (d.a.s < 0 && d.c > 0) { - d.a.u -= d.c; - d.a.u <= 0 && d.a.n > 0 && Dsb(c, d.a); - } - } - } - function Vud(a) { - var b, c, d, e, f; - if (a.g == null) { - a.d = a.si(a.f); - wtd(a, a.d); - if (a.c) { - f = a.f; - return f; - } - } - b = BD(a.g[a.i - 1], 47); - e = b.Pb(); - a.e = b; - c = a.si(e); - if (c.Ob()) { - a.d = c; - wtd(a, c); - } else { - a.d = null; - while (!b.Ob()) { - NC(a.g, --a.i, null); - if (a.i == 0) { - break; - } - d = BD(a.g[a.i - 1], 47); - b = d; - } - } - return e; - } - function r2d(a, b) { - var c, d, e, f, g10, h; - d = b; - e = d.ak(); - if (T6d(a.e, e)) { - if (e.hi() && E2d(a, e, d.dd())) { - return false; - } - } else { - h = S6d(a.e.Tg(), e); - c = BD(a.g, 119); - for (f = 0; f < a.i; ++f) { - g10 = c[f]; - if (h.rl(g10.ak())) { - if (pb(g10, d)) { - return false; - } else { - BD(Gtd(a, f, b), 72); - return true; - } - } - } - } - return wtd(a, b); - } - function r9b(a, b, c, d) { - var e, f, g10, h; - e = new b0b(a); - __b(e, (j0b(), f0b)); - yNb(e, (wtc(), $sc), b); - yNb(e, ktc, d); - yNb(e, (Nyc(), Vxc), (dcd(), $bd)); - yNb(e, Vsc, b.c); - yNb(e, Wsc, b.d); - zbc(b, e); - h = $wnd.Math.floor(c / 2); - for (g10 = new olb(e.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 11); - f.n.b = h; - } - return e; - } - function wac(a, b) { - var c, d, e, f, g10, h, i10, j, k; - i10 = Pu(a.c - a.b & a.a.length - 1); - j = null; - k = null; - for (f = new xkb(a); f.a != f.b; ) { - e = BD(vkb(f), 10); - c = (h = BD(vNb(e, (wtc(), Vsc)), 11), !h ? null : h.i); - d = (g10 = BD(vNb(e, Wsc), 11), !g10 ? null : g10.i); - if (j != c || k != d) { - Aac(i10, b); - j = c; - k = d; - } - i10.c[i10.c.length] = e; - } - Aac(i10, b); - } - function HNc(a) { - var b, c, d, e, f, g10, h; - b = 0; - for (d = new olb(a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - for (f = new Sr(ur(U_b(c).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (a == e.d.i.c && e.c.j == (Ucd(), Tcd)) { - g10 = A0b(e.c).b; - h = A0b(e.d).b; - b = $wnd.Math.max(b, $wnd.Math.abs(h - g10)); - } - } - } - return b; - } - function aWc(a, b, c) { - var d, e, f; - Odd(c, "Remove overlaps", 1); - c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd)); - d = BD(hkd(b, (MUc(), LUc)), 33); - a.f = d; - a.a = tXc(BD(hkd(b, (ZWc(), WWc)), 293)); - e = ED(hkd(b, (Y9c(), T9c))); - FVc(a, (uCb(e), e)); - f = gVc(d); - _Vc(a, b, f, c); - c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd)); - } - function aYb(a, b, c) { - switch (c.g) { - case 1: - return new f7c(b.a, $wnd.Math.min(a.d.b, b.b)); - case 2: - return new f7c($wnd.Math.max(a.c.a, b.a), b.b); - case 3: - return new f7c(b.a, $wnd.Math.max(a.c.b, b.b)); - case 4: - return new f7c($wnd.Math.min(b.a, a.d.a), b.b); - } - return new f7c(b.a, b.b); - } - function mFc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - l = d ? (Ucd(), Tcd) : (Ucd(), zcd); - e = false; - for (i10 = b[c], j = 0, k = i10.length; j < k; ++j) { - h = i10[j]; - if (ecd(BD(vNb(h, (Nyc(), Vxc)), 98))) { - continue; - } - g10 = h.e; - m = !V_b(h, l).dc() && !!g10; - if (m) { - f = WZb(g10); - a.b = new sic(f, d ? 0 : f.length - 1); - } - e = e | nFc(a, h, l, m); - } - return e; - } - function $sd(a) { - var b, c, d; - b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i); - Ekb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); - for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 118); - Ekb(b, (!c.d && (c.d = new y5d(B2, c, 8, 5)), c.d)); - } - return Qb(b), new sl(b); - } - function _sd(a) { - var b, c, d; - b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i); - Ekb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); - for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 118); - Ekb(b, (!c.e && (c.e = new y5d(B2, c, 7, 4)), c.e)); - } - return Qb(b), new sl(b); - } - function M9d(a) { - var b, c, d, e; - if (a == null) { - return null; - } else { - d = Qge(a, true); - e = Nwe.length; - if (dfb(d.substr(d.length - e, e), Nwe)) { - c = d.length; - if (c == 4) { - b = (BCb(0, d.length), d.charCodeAt(0)); - if (b == 43) { - return x9d; - } else if (b == 45) { - return w9d; - } - } else if (c == 3) { - return x9d; - } - } - return Hcb(d); - } - } - function aKc(a) { - var b, c, d, e; - b = 0; - c = 0; - for (e = new olb(a.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 11); - b = Tbb(wbb(b, HAb(JAb(new YAb(null, new Kub(d.e, 16)), new nLc())))); - c = Tbb(wbb(c, HAb(JAb(new YAb(null, new Kub(d.g, 16)), new pLc())))); - if (b > 1 || c > 1) { - return 2; - } - } - if (b + c == 1) { - return 2; - } - return 0; - } - function WQb(a, b, c) { - var d, e, f, g10, h; - Odd(c, "ELK Force", 1); - Ccb(DD(hkd(b, (wSb(), jSb)))) || $Cb((d = new _Cb((Pgd(), new bhd(b))), d)); - h = TQb(b); - XQb(h); - YQb(a, BD(vNb(h, fSb), 424)); - g10 = LQb(a.a, h); - for (f = g10.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 231); - tRb(a.b, e, Udd(c, 1 / g10.gc())); - } - h = KQb(g10); - SQb(h); - Qdd(c); - } - function yoc(a, b) { - var c, d, e, f, g10; - Odd(b, "Breaking Point Processor", 1); - xoc(a); - if (Ccb(DD(vNb(a, (Nyc(), Jyc))))) { - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - c = 0; - for (g10 = new olb(d.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - f.p = c++; - } - } - soc(a); - toc(a, true); - toc(a, false); - } - Qdd(b); - } - function $1c(a, b, c) { - var d, e, f, g10, h, i10; - h = a.c; - for (g10 = (!c.q ? (mmb(), mmb(), kmb) : c.q).vc().Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 42); - d = !WAb(JAb(new YAb(null, new Kub(h, 16)), new Xxb(new m2c(b, f)))).sd((EAb(), DAb)); - if (d) { - i10 = f.dd(); - if (JD(i10, 4)) { - e = fvd(i10); - e != null && (i10 = e); - } - b.Ye(BD(f.cd(), 146), i10); - } - } - } - function MQd(a, b) { - var c, d, e, f, g10; - if (!b) { - return null; - } else { - f = JD(a.Cb, 88) || JD(a.Cb, 99); - g10 = !f && JD(a.Cb, 322); - for (d = new Fyd((!b.a && (b.a = new KYd(b, j5, b)), b.a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 87); - e = KQd(c); - if (f ? JD(e, 88) : g10 ? JD(e, 148) : !!e) { - return e; - } - } - return f ? (jGd(), _Fd) : (jGd(), YFd); - } - } - function g3b(a, b) { - var c, d, e, f, g10, h; - Odd(b, "Constraints Postprocessor", 1); - g10 = 0; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - h = 0; - for (d = new olb(e.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - if (c.k == (j0b(), h0b)) { - yNb(c, (Nyc(), nxc), meb(g10)); - yNb(c, Gwc, meb(h)); - ++h; - } - } - ++g10; - } - Qdd(b); - } - function eRc(a, b, c, d) { - var e, f, g10, h, i10, j, k; - i10 = new f7c(c, d); - c7c(i10, BD(vNb(b, (mTc(), WSc)), 8)); - for (k = Jsb(b.b, 0); k.b != k.d.c; ) { - j = BD(Xsb(k), 86); - P6c(j.e, i10); - Dsb(a.b, j); - } - for (h = Jsb(b.a, 0); h.b != h.d.c; ) { - g10 = BD(Xsb(h), 188); - for (f = Jsb(g10.a, 0); f.b != f.d.c; ) { - e = BD(Xsb(f), 8); - P6c(e, i10); - } - Dsb(a.a, g10); - } - } - function uid(a, b, c) { - var d, e, f; - f = e1d((O6d(), M6d), a.Tg(), b); - if (f) { - Q6d(); - if (!BD(f, 66).Oj()) { - f = _1d(q1d(M6d, f)); - if (!f) { - throw vbb(new Wdb(ite + b.ne() + jte)); - } - } - e = (d = a.Yg(f), BD(d >= 0 ? a._g(d, true, true) : sid(a, f, true), 153)); - BD(e, 215).ml(b, c); - } else { - throw vbb(new Wdb(ite + b.ne() + jte)); - } - } - function ROc(a, b) { - var c, d, e, f, g10; - c = new Rkb(); - e = LAb(new YAb(null, new Kub(a, 16)), new iPc()); - f = LAb(new YAb(null, new Kub(a, 16)), new kPc()); - g10 = aAb(_zb(OAb(ty(OC(GC(xM, 1), Uhe, 833, 0, [e, f])), new mPc()))); - for (d = 1; d < g10.length; d++) { - g10[d] - g10[d - 1] >= 2 * b && Ekb(c, new bPc(g10[d - 1] + b, g10[d] - b)); - } - return c; - } - function AXc(a, b, c) { - Odd(c, "Eades radial", 1); - c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd)); - a.d = BD(hkd(b, (MUc(), LUc)), 33); - a.c = Edb(ED(hkd(b, (ZWc(), VWc)))); - a.e = tXc(BD(hkd(b, WWc), 293)); - a.a = gWc(BD(hkd(b, YWc), 426)); - a.b = jXc(BD(hkd(b, RWc), 340)); - BXc(a); - c.n && !!b && Tdd(c, i6d(b), (pgd(), mgd)); - } - function Fqd(a, b, c) { - var d, e, f, g10, h, j, k, l; - if (c) { - f = c.a.length; - d = new Yge(f); - for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - e = Zpd(c, g10.a); - !!e && (i = null, j = Uqd(a, (k = (Fhd(), l = new ppd(), l), !!b && npd(k, b), k), e), Lkd(j, _pd(e, Vte)), grd(e, j), hrd(e, j), crd(a, e, j)); - } - } - } - function UKd(a) { - var b, c, d, e, f, g10; - if (!a.j) { - g10 = new HPd(); - b = KKd; - f = b.a.zc(a, b); - if (f == null) { - for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 26); - e = UKd(c); - ytd(g10, e); - wtd(g10, c); - } - b.a.Bc(a) != null; - } - vud(g10); - a.j = new nNd((BD(qud(ZKd((NFd(), MFd).o), 11), 18), g10.i), g10.g); - $Kd(a).b &= -33; - } - return a.j; - } - function O9d(a) { - var b, c, d, e; - if (a == null) { - return null; - } else { - d = Qge(a, true); - e = Nwe.length; - if (dfb(d.substr(d.length - e, e), Nwe)) { - c = d.length; - if (c == 4) { - b = (BCb(0, d.length), d.charCodeAt(0)); - if (b == 43) { - return z9d; - } else if (b == 45) { - return y9d; - } - } else if (c == 3) { - return z9d; - } - } - return new Odb(d); - } - } - function _C(a) { - var b, c, d; - c = a.l; - if ((c & c - 1) != 0) { - return -1; - } - d = a.m; - if ((d & d - 1) != 0) { - return -1; - } - b = a.h; - if ((b & b - 1) != 0) { - return -1; - } - if (b == 0 && d == 0 && c == 0) { - return -1; - } - if (b == 0 && d == 0 && c != 0) { - return ieb(c); - } - if (b == 0 && d != 0 && c == 0) { - return ieb(d) + 22; - } - if (b != 0 && d == 0 && c == 0) { - return ieb(b) + 44; - } - return -1; - } - function qbc(a, b) { - var c, d, e, f, g10; - Odd(b, "Edge joining", 1); - c = Ccb(DD(vNb(a, (Nyc(), Byc)))); - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - g10 = new Bib(d.a, 0); - while (g10.b < g10.d.gc()) { - f = (sCb(g10.b < g10.d.gc()), BD(g10.d.Xb(g10.c = g10.b++), 10)); - if (f.k == (j0b(), g0b)) { - sbc(f, c); - uib(g10); - } - } - } - Qdd(b); - } - function c_c(a, b, c) { - var d, e; - H2c(a.b); - K2c(a.b, (Y$c(), V$c), (R0c(), Q0c)); - K2c(a.b, W$c, b.g); - K2c(a.b, X$c, b.a); - a.a = F2c(a.b, b); - Odd(c, "Compaction by shrinking a tree", a.a.c.length); - if (b.i.c.length > 1) { - for (e = new olb(a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 51); - d.pf(b, Udd(c, 1)); - } - } - Qdd(c); - } - function mo(a, b) { - var c, d, e, f, g10; - e = b.a & a.f; - f = null; - for (d = a.b[e]; true; d = d.b) { - if (d == b) { - !f ? a.b[e] = b.b : f.b = b.b; - break; - } - f = d; - } - g10 = b.f & a.f; - f = null; - for (c = a.c[g10]; true; c = c.d) { - if (c == b) { - !f ? a.c[g10] = b.d : f.d = b.d; - break; - } - f = c; - } - !b.e ? a.a = b.c : b.e.c = b.c; - !b.c ? a.e = b.e : b.c.e = b.e; - --a.i; - ++a.g; - } - function eNb(a) { - var b, c, d, e, f, g10, h, i10, j, k; - c = a.o; - b = a.p; - g10 = Ohe; - e = Rie; - h = Ohe; - f = Rie; - for (j = 0; j < c; ++j) { - for (k = 0; k < b; ++k) { - if (YMb(a, j, k)) { - g10 = $wnd.Math.min(g10, j); - e = $wnd.Math.max(e, j); - h = $wnd.Math.min(h, k); - f = $wnd.Math.max(f, k); - } - } - } - i10 = e - g10 + 1; - d = f - h + 1; - return new Ggd(meb(g10), meb(h), meb(i10), meb(d)); - } - function DWb(a, b) { - var c, d, e, f; - f = new Bib(a, 0); - c = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 140)); - while (f.b < f.d.gc()) { - d = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 140)); - e = new dWb(d.c, c.d, b); - sCb(f.b > 0); - f.a.Xb(f.c = --f.b); - Aib(f, e); - sCb(f.b < f.d.gc()); - f.d.Xb(f.c = f.b++); - e.a = false; - c = d; - } - } - function Y2b(a) { - var b, c, d, e, f, g10; - e = BD(vNb(a, (wtc(), vsc)), 11); - for (g10 = new olb(a.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 11); - for (d = new olb(f.g); d.a < d.c.c.length; ) { - b = BD(mlb(d), 17); - RZb(b, e); - return f; - } - for (c = new olb(f.e); c.a < c.c.c.length; ) { - b = BD(mlb(c), 17); - QZb(b, e); - return f; - } - } - return null; - } - function iA(a, b, c) { - var d, e; - d = Cbb(c.q.getTime()); - if (ybb(d, 0) < 0) { - e = _ie - Tbb(Hbb(Jbb(d), _ie)); - e == _ie && (e = 0); - } else { - e = Tbb(Hbb(d, _ie)); - } - if (b == 1) { - e = $wnd.Math.min((e + 50) / 100 | 0, 9); - Kfb(a, 48 + e & aje); - } else if (b == 2) { - e = $wnd.Math.min((e + 5) / 10 | 0, 99); - EA(a, e, 2); - } else { - EA(a, e, 3); - b > 3 && EA(a, 0, b - 3); - } - } - function cUb(a) { - var b, c, d, e; - if (PD(vNb(a, (Nyc(), axc))) === PD((hbd(), ebd))) { - return !a.e && PD(vNb(a, Cwc)) !== PD((Xrc(), Urc)); - } - d = BD(vNb(a, Dwc), 292); - e = Ccb(DD(vNb(a, Hwc))) || PD(vNb(a, Iwc)) === PD((Rpc(), Opc)); - b = BD(vNb(a, Bwc), 19).a; - c = a.a.c.length; - return !e && d != (Xrc(), Urc) && (b == 0 || b > c); - } - function lkc(a) { - var b, c; - c = 0; - for (; c < a.c.length; c++) { - if (Ojc((tCb(c, a.c.length), BD(a.c[c], 113))) > 0) { - break; - } - } - if (c > 0 && c < a.c.length - 1) { - return c; - } - b = 0; - for (; b < a.c.length; b++) { - if (Ojc((tCb(b, a.c.length), BD(a.c[b], 113))) > 0) { - break; - } - } - if (b > 0 && c < a.c.length - 1) { - return b; - } - return a.c.length / 2 | 0; - } - function mmd(a, b) { - var c, d; - if (b != a.Cb || a.Db >> 16 != 6 && !!b) { - if (p6d(a, b)) - throw vbb(new Wdb(ste + qmd(a))); - d = null; - !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? cmd(a, d) : a.Cb.ih(a, -1 - c, null, d))); - !!b && (d = kid(b, a, 6, d)); - d = bmd(a, b, d); - !!d && d.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 6, b, b)); - } - function npd(a, b) { - var c, d; - if (b != a.Cb || a.Db >> 16 != 9 && !!b) { - if (p6d(a, b)) - throw vbb(new Wdb(ste + opd(a))); - d = null; - !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? lpd(a, d) : a.Cb.ih(a, -1 - c, null, d))); - !!b && (d = kid(b, a, 9, d)); - d = kpd(a, b, d); - !!d && d.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 9, b, b)); - } - function Rld(a, b) { - var c, d; - if (b != a.Cb || a.Db >> 16 != 3 && !!b) { - if (p6d(a, b)) - throw vbb(new Wdb(ste + Sld(a))); - d = null; - !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Lld(a, d) : a.Cb.ih(a, -1 - c, null, d))); - !!b && (d = kid(b, a, 12, d)); - d = Kld(a, b, d); - !!d && d.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b)); - } - function VId(b) { - var c, d, e, f, g10; - e = wId(b); - g10 = b.j; - if (g10 == null && !!e) { - return b.$j() ? null : e.zj(); - } else if (JD(e, 148)) { - d = e.Aj(); - if (d) { - f = d.Nh(); - if (f != b.i) { - c = BD(e, 148); - if (c.Ej()) { - try { - b.g = f.Kh(c, g10); - } catch (a) { - a = ubb(a); - if (JD(a, 78)) { - b.g = null; - } else - throw vbb(a); - } - } - b.i = f; - } - } - return b.g; - } - return null; - } - function wOb(a) { - var b; - b = new Rkb(); - Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d))); - Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c, a.d + a.a))); - Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c + a.b, a.d))); - Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a))); - return b; - } - function IJc(a, b, c, d) { - var e, f, g10; - g10 = LZb(b, c); - d.c[d.c.length] = b; - if (a.j[g10.p] == -1 || a.j[g10.p] == 2 || a.a[b.p]) { - return d; - } - a.j[g10.p] = -1; - for (f = new Sr(ur(O_b(g10).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (!(!OZb(e) && !(!OZb(e) && e.c.i.c == e.d.i.c)) || e == b) { - continue; - } - return IJc(a, e, g10, d); - } - return d; - } - function vQb(a, b, c) { - var d, e, f; - for (f = b.a.ec().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 79); - d = BD(Ohb(a.b, e), 266); - !d && (Xod(jtd(e)) == Xod(ltd(e)) ? uQb(a, e, c) : jtd(e) == Xod(ltd(e)) ? Ohb(a.c, e) == null && Ohb(a.b, ltd(e)) != null && xQb(a, e, c, false) : Ohb(a.d, e) == null && Ohb(a.b, jtd(e)) != null && xQb(a, e, c, true)); - } - } - function jcc(a, b) { - var c, d, e, f, g10, h, i10; - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 10); - h = new H0b(); - F0b(h, d); - G0b(h, (Ucd(), zcd)); - yNb(h, (wtc(), ftc), (Bcb(), true)); - for (g10 = b.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 10); - i10 = new H0b(); - F0b(i10, f); - G0b(i10, Tcd); - yNb(i10, ftc, true); - c = new UZb(); - yNb(c, ftc, true); - QZb(c, h); - RZb(c, i10); - } - } - } - function jnc(a, b, c, d) { - var e, f, g10, h; - e = hnc(a, b, c); - f = hnc(a, c, b); - g10 = BD(Ohb(a.c, b), 112); - h = BD(Ohb(a.c, c), 112); - if (e < f) { - new DOc((HOc(), GOc), g10, h, f - e); - } else if (f < e) { - new DOc((HOc(), GOc), h, g10, e - f); - } else if (e != 0 || !(!b.i || !c.i) && d[b.i.c][c.i.c]) { - new DOc((HOc(), GOc), g10, h, 0); - new DOc(GOc, h, g10, 0); - } - } - function Qoc(a, b) { - var c, d, e, f, g10, h, i10; - e = 0; - for (g10 = new olb(b.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - e += f.o.b + f.d.a + f.d.d + a.e; - for (d = new Sr(ur(R_b(f).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (c.c.i.k == (j0b(), i0b)) { - i10 = c.c.i; - h = BD(vNb(i10, (wtc(), $sc)), 10); - e += h.o.b + h.d.a + h.d.d; - } - } - } - return e; - } - function WNc(a, b, c) { - var d, e, f, g10, h, i10, j; - f = new Rkb(); - j = new Psb(); - g10 = new Psb(); - XNc(a, j, g10, b); - VNc(a, j, g10, b, c); - for (i10 = new olb(a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 112); - for (e = new olb(h.k); e.a < e.c.c.length; ) { - d = BD(mlb(e), 129); - (!b || d.c == (HOc(), FOc)) && h.g > d.b.g && (f.c[f.c.length] = d, true); - } - } - return f; - } - function k$c() { - k$c = ccb; - g$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0); - f$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1); - i$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2); - h$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3); - j$c = new l$c("WHOLE_DRAWING", 4); - } - function Xqd(a, b) { - if (JD(b, 239)) { - return iqd(a, BD(b, 33)); - } else if (JD(b, 186)) { - return jqd(a, BD(b, 118)); - } else if (JD(b, 354)) { - return hqd(a, BD(b, 137)); - } else if (JD(b, 352)) { - return gqd(a, BD(b, 79)); - } else if (b) { - return null; - } else { - throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b]))))); - } - } - function aic(a) { - var b, c, d, e, f, g10, h; - f = new Psb(); - for (e = new olb(a.d.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 121); - d.b.a.c.length == 0 && (Gsb(f, d, f.c.b, f.c), true); - } - if (f.b > 1) { - b = nGb((c = new pGb(), ++a.b, c), a.d); - for (h = Jsb(f, 0); h.b != h.d.c; ) { - g10 = BD(Xsb(h), 121); - AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 0), b), g10)); - } - } - } - function $od(a, b) { - var c, d; - if (b != a.Cb || a.Db >> 16 != 11 && !!b) { - if (p6d(a, b)) - throw vbb(new Wdb(ste + _od(a))); - d = null; - !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Uod(a, d) : a.Cb.ih(a, -1 - c, null, d))); - !!b && (d = kid(b, a, 10, d)); - d = Tod(a, b, d); - !!d && d.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, b, b)); - } - function uZb(a) { - var b, c, d, e; - for (d = new nib(new eib(a.b).a); d.b; ) { - c = lib(d); - e = BD(c.cd(), 11); - b = BD(c.dd(), 10); - yNb(b, (wtc(), $sc), e); - yNb(e, gtc, b); - yNb(e, Nsc, (Bcb(), true)); - G0b(e, BD(vNb(b, Hsc), 61)); - vNb(b, Hsc); - yNb(e.i, (Nyc(), Vxc), (dcd(), acd)); - BD(vNb(Q_b(e.i), Ksc), 21).Fc((Orc(), Krc)); - } - } - function G4b(a, b, c) { - var d, e, f, g10, h, i10; - f = 0; - g10 = 0; - if (a.c) { - for (i10 = new olb(a.d.i.j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 11); - f += h.e.c.length; - } - } else { - f = 1; - } - if (a.d) { - for (i10 = new olb(a.c.i.j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 11); - g10 += h.g.c.length; - } - } else { - g10 = 1; - } - e = QD(Eeb(g10 - f)); - d = (c + b) / 2 + (c - b) * (0.4 * e); - return d; - } - function Zjc(a) { - Xjc(); - var b, c; - if (a.Hc((Ucd(), Scd))) { - throw vbb(new Wdb("Port sides must not contain UNDEFINED")); - } - switch (a.gc()) { - case 1: - return Tjc; - case 2: - b = a.Hc(zcd) && a.Hc(Tcd); - c = a.Hc(Acd) && a.Hc(Rcd); - return b || c ? Wjc : Vjc; - case 3: - return Ujc; - case 4: - return Sjc; - default: - return null; - } - } - function Hoc(a, b, c) { - var d, e, f, g10, h; - Odd(c, "Breaking Point Removing", 1); - a.a = BD(vNb(b, (Nyc(), Swc)), 218); - for (f = new olb(b.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - for (h = new olb(Mu(e.a)); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (hoc(g10)) { - d = BD(vNb(g10, (wtc(), usc)), 305); - !d.d && Ioc(a, d); - } - } - } - Qdd(c); - } - function s6c(a, b, c) { - i6c(); - if (m6c(a, b) && m6c(a, c)) { - return false; - } - return u6c(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d), b, c) || u6c(new f7c(a.c + a.b, a.d), new f7c(a.c + a.b, a.d + a.a), b, c) || u6c(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a), b, c) || u6c(new f7c(a.c, a.d + a.a), new f7c(a.c, a.d), b, c); - } - function x1d(a, b) { - var c, d, e, f; - if (!a.dc()) { - for (c = 0, d = a.gc(); c < d; ++c) { - f = GD(a.Xb(c)); - if (f == null ? b == null : dfb(f.substr(0, 3), "!##") ? b != null && (e = b.length, !dfb(f.substr(f.length - e, e), b) || f.length != b.length + 3) && !dfb(Ewe, b) : dfb(f, Fwe) && !dfb(Ewe, b) || dfb(f, b)) { - return true; - } - } - } - return false; - } - function J3b(a, b, c, d) { - var e, f, g10, h, i10, j; - g10 = a.j.c.length; - i10 = KC(tN, ile, 306, g10, 0, 1); - for (h = 0; h < g10; h++) { - f = BD(Ikb(a.j, h), 11); - f.p = h; - i10[h] = D3b(N3b(f), c, d); - } - F3b(a, i10, c, b, d); - j = new Lqb(); - for (e = 0; e < i10.length; e++) { - !!i10[e] && Rhb(j, BD(Ikb(a.j, e), 11), i10[e]); - } - if (j.f.c + j.g.c != 0) { - yNb(a, (wtc(), Csc), j); - L3b(a, i10); - } - } - function Lgc(a, b, c) { - var d, e, f; - for (e = new olb(a.a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 57); - f = tgc(d); - if (f) { - if (f.k == (j0b(), e0b)) { - switch (BD(vNb(f, (wtc(), Hsc)), 61).g) { - case 4: - f.n.a = b.a; - break; - case 2: - f.n.a = c.a - (f.o.a + f.d.c); - break; - case 1: - f.n.b = b.b; - break; - case 3: - f.n.b = c.b - (f.o.b + f.d.a); - } - } - } - } - } - function kAc() { - kAc = ccb; - iAc = new lAc(ane, 0); - dAc = new lAc("NIKOLOV", 1); - gAc = new lAc("NIKOLOV_PIXEL", 2); - eAc = new lAc("NIKOLOV_IMPROVED", 3); - fAc = new lAc("NIKOLOV_IMPROVED_PIXEL", 4); - cAc = new lAc("DUMMYNODE_PERCENTAGE", 5); - hAc = new lAc("NODECOUNT_PERCENTAGE", 6); - jAc = new lAc("NO_BOUNDARY", 7); - } - function led(a, b, c) { - var d, e, f, g10, h; - e = BD(hkd(b, (X7c(), V7c)), 19); - !e && (e = meb(0)); - f = BD(hkd(c, V7c), 19); - !f && (f = meb(0)); - if (e.a > f.a) { - return -1; - } else if (e.a < f.a) { - return 1; - } else { - if (a.a) { - d = Kdb(b.j, c.j); - if (d != 0) { - return d; - } - d = Kdb(b.i, c.i); - if (d != 0) { - return d; - } - } - g10 = b.g * b.f; - h = c.g * c.f; - return Kdb(g10, h); - } - } - function BAd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - ++a.e; - i10 = a.d == null ? 0 : a.d.length; - if (b > i10) { - k = a.d; - a.d = KC(y4, jve, 63, 2 * i10 + 4, 0, 1); - for (f = 0; f < i10; ++f) { - j = k[f]; - if (j) { - d = j.g; - l = j.i; - for (h = 0; h < l; ++h) { - e = BD(d[h], 133); - g10 = DAd(a, e.Sh()); - c = a.d[g10]; - !c && (c = a.d[g10] = a.uj()); - c.Fc(e); - } - } - } - return true; - } else { - return false; - } - } - function o2d(a, b, c) { - var d, e, f, g10, h, i10; - e = c; - f = e.ak(); - if (T6d(a.e, f)) { - if (f.hi()) { - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - h = d[g10]; - if (pb(h, e) && g10 != b) { - throw vbb(new Wdb(kue)); - } - } - } - } else { - i10 = S6d(a.e.Tg(), f); - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - h = d[g10]; - if (i10.rl(h.ak())) { - throw vbb(new Wdb(Hwe)); - } - } - } - vtd(a, b, c); - } - function OYb(a, b) { - var c, d, e, f, g10, h; - c = BD(vNb(b, (wtc(), Esc)), 21); - g10 = BD(Qc((xXb(), wXb), c), 21); - h = BD(Qc(LYb, c), 21); - for (f = g10.Kc(); f.Ob(); ) { - d = BD(f.Pb(), 21); - if (!BD(Qc(a.b, d), 15).dc()) { - return false; - } - } - for (e = h.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 21); - if (!BD(Qc(a.b, d), 15).dc()) { - return false; - } - } - return true; - } - function scc(a, b) { - var c, d, e, f, g10, h; - Odd(b, "Partition postprocessing", 1); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - h = new olb(e.j); - while (h.a < h.c.c.length) { - g10 = BD(mlb(h), 11); - Ccb(DD(vNb(g10, (wtc(), ftc)))) && nlb(h); - } - } - } - Qdd(b); - } - function ZZc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - if (a.a.c.length == 1) { - return JZc(BD(Ikb(a.a, 0), 187), b); - } - g10 = YZc(a); - i10 = 0; - j = a.d; - f = g10; - k = a.d; - h = (j - f) / 2 + f; - while (f + 1 < j) { - i10 = 0; - for (d = new olb(a.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 187); - i10 += (e = MZc(c, h, false), e.a); - } - if (i10 < b) { - k = h; - j = h; - } else { - f = h; - } - h = (j - f) / 2 + f; - } - return k; - } - function fD(a) { - var b, c, d, e, f; - if (isNaN(a)) { - return wD(), vD; - } - if (a < -9223372036854776e3) { - return wD(), tD; - } - if (a >= 9223372036854776e3) { - return wD(), sD; - } - e = false; - if (a < 0) { - e = true; - a = -a; - } - d = 0; - if (a >= Ije) { - d = QD(a / Ije); - a -= d * Ije; - } - c = 0; - if (a >= Hje) { - c = QD(a / Hje); - a -= c * Hje; - } - b = QD(a); - f = TC(b, c, d); - e && ZC(f); - return f; - } - function rKb(a, b) { - var c, d, e, f; - c = !b || !a.u.Hc((rcd(), ncd)); - f = 0; - for (e = new olb(a.e.Cf()); e.a < e.c.c.length; ) { - d = BD(mlb(e), 838); - if (d.Hf() == (Ucd(), Scd)) { - throw vbb(new Wdb("Label and node size calculator can only be used with ports that have port sides assigned.")); - } - d.vf(f++); - qKb(a, d, c); - } - } - function V0d(a, b) { - var c, d, e, f, g10; - e = b.Hh(a.a); - if (e) { - d = (!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b); - c = GD(AAd(d, cwe)); - if (c != null) { - f = c.lastIndexOf("#"); - g10 = f == -1 ? w1d(a, b.Aj(), c) : f == 0 ? v1d(a, null, c.substr(1)) : v1d(a, c.substr(0, f), c.substr(f + 1)); - if (JD(g10, 148)) { - return BD(g10, 148); - } - } - } - return null; - } - function Z0d(a, b) { - var c, d, e, f, g10; - d = b.Hh(a.a); - if (d) { - c = (!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b); - f = GD(AAd(c, zwe)); - if (f != null) { - e = f.lastIndexOf("#"); - g10 = e == -1 ? w1d(a, b.Aj(), f) : e == 0 ? v1d(a, null, f.substr(1)) : v1d(a, f.substr(0, e), f.substr(e + 1)); - if (JD(g10, 148)) { - return BD(g10, 148); - } - } - } - return null; - } - function RDb(a) { - var b, c, d, e, f; - for (c = new olb(a.a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 307); - b.j = null; - for (f = b.a.a.ec().Kc(); f.Ob(); ) { - d = BD(f.Pb(), 57); - X6c(d.b); - (!b.j || d.d.c < b.j.d.c) && (b.j = d); - } - for (e = b.a.a.ec().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 57); - d.b.a = d.d.c - b.j.d.c; - d.b.b = d.d.d - b.j.d.d; - } - } - return a; - } - function sVb(a) { - var b, c, d, e, f; - for (c = new olb(a.a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 189); - b.f = null; - for (f = b.a.a.ec().Kc(); f.Ob(); ) { - d = BD(f.Pb(), 81); - X6c(d.e); - (!b.f || d.g.c < b.f.g.c) && (b.f = d); - } - for (e = b.a.a.ec().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 81); - d.e.a = d.g.c - b.f.g.c; - d.e.b = d.g.d - b.f.g.d; - } - } - return a; - } - function EMb(a) { - var b, c, d; - c = BD(a.a, 19).a; - d = BD(a.b, 19).a; - b = $wnd.Math.max($wnd.Math.abs(c), $wnd.Math.abs(d)); - if (c < b && d == -b) { - return new vgd(meb(c + 1), meb(d)); - } - if (c == b && d < b) { - return new vgd(meb(c), meb(d + 1)); - } - if (c >= -b && d == b) { - return new vgd(meb(c - 1), meb(d)); - } - return new vgd(meb(c), meb(d - 1)); - } - function W8b() { - S8b(); - return OC(GC(AS, 1), Kie, 77, 0, [Y7b, V7b, Z7b, n8b, G8b, r8b, M8b, w8b, E8b, i8b, A8b, v8b, F8b, e8b, O8b, P7b, z8b, I8b, o8b, H8b, Q8b, C8b, Q7b, D8b, R8b, K8b, P8b, p8b, b8b, q8b, m8b, N8b, T7b, _7b, t8b, S7b, u8b, k8b, f8b, x8b, h8b, W7b, U7b, l8b, g8b, y8b, L8b, R7b, B8b, j8b, s8b, c8b, a8b, J8b, $7b, d8b, X7b]); - } - function Yic(a, b, c) { - a.d = 0; - a.b = 0; - b.k == (j0b(), i0b) && c.k == i0b && BD(vNb(b, (wtc(), $sc)), 10) == BD(vNb(c, $sc), 10) && (ajc(b).j == (Ucd(), Acd) ? Zic(a, b, c) : Zic(a, c, b)); - b.k == i0b && c.k == g0b ? ajc(b).j == (Ucd(), Acd) ? a.d = 1 : a.b = 1 : c.k == i0b && b.k == g0b && (ajc(c).j == (Ucd(), Acd) ? a.b = 1 : a.d = 1); - cjc(a, b, c); - } - function esd(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - l = hsd(a); - b = a.a; - i10 = b != null; - i10 && Upd(l, "category", a.a); - e = Fhe(new Pib(a.d)); - g10 = !e; - if (g10) { - j = new wB(); - cC(l, "knownOptions", j); - c = new msd(j); - reb(new Pib(a.d), c); - } - f = Fhe(a.g); - h = !f; - if (h) { - k = new wB(); - cC(l, "supportedFeatures", k); - d = new osd(k); - reb(a.g, d); - } - return l; - } - function ty(a) { - var b, c, d, e, f, g10, h, i10, j; - d = false; - b = 336; - c = 0; - f = new Xp(a.length); - for (h = a, i10 = 0, j = h.length; i10 < j; ++i10) { - g10 = h[i10]; - d = d | (Uzb(g10), false); - e = (Tzb(g10), g10.a); - Ekb(f.a, Qb(e)); - b &= e.qd(); - c = Ly(c, e.rd()); - } - return BD(BD(Rzb(new YAb(null, Yj(new Kub((im(), nm(f.a)), 16), new vy(), b, c)), new xy(a)), 670), 833); - } - function UWb(a, b) { - var c; - if (!!a.d && (b.c != a.e.c || qWb(a.e.b, b.b))) { - Ekb(a.f, a.d); - a.a = a.d.c + a.d.b; - a.d = null; - a.e = null; - } - nWb(b.b) ? a.c = b : a.b = b; - if (b.b == (lWb(), hWb) && !b.a || b.b == iWb && b.a || b.b == jWb && b.a || b.b == kWb && !b.a) { - if (!!a.c && !!a.b) { - c = new J6c(a.a, a.c.d, b.c - a.a, a.b.d - a.c.d); - a.d = c; - a.e = b; - } - } - } - function L2c(a) { - var b; - D2c.call(this); - this.i = new Z2c(); - this.g = a; - this.f = BD(a.e && a.e(), 9).length; - if (this.f == 0) { - throw vbb(new Wdb("There must be at least one phase in the phase enumeration.")); - } - this.c = (b = BD(gdb(this.g), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - this.a = new j3c(); - this.b = new Lqb(); - } - function God(a, b) { - var c, d; - if (b != a.Cb || a.Db >> 16 != 7 && !!b) { - if (p6d(a, b)) - throw vbb(new Wdb(ste + Iod(a))); - d = null; - !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? Eod(a, d) : a.Cb.ih(a, -1 - c, null, d))); - !!b && (d = BD(b, 49).gh(a, 1, C2, d)); - d = Dod(a, b, d); - !!d && d.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, b, b)); - } - function NHd(a, b) { - var c, d; - if (b != a.Cb || a.Db >> 16 != 3 && !!b) { - if (p6d(a, b)) - throw vbb(new Wdb(ste + QHd(a))); - d = null; - !!a.Cb && (d = (c = a.Db >> 16, c >= 0 ? KHd(a, d) : a.Cb.ih(a, -1 - c, null, d))); - !!b && (d = BD(b, 49).gh(a, 0, k5, d)); - d = JHd(a, b, d); - !!d && d.Fi(); - } else - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b)); - } - function Ehb(a, b) { - Dhb(); - var c, d, e, f, g10, h, i10, j, k; - if (b.d > a.d) { - h = a; - a = b; - b = h; - } - if (b.d < 63) { - return Ihb(a, b); - } - g10 = (a.d & -2) << 4; - j = Rgb(a, g10); - k = Rgb(b, g10); - d = yhb(a, Qgb(j, g10)); - e = yhb(b, Qgb(k, g10)); - i10 = Ehb(j, k); - c = Ehb(d, e); - f = Ehb(yhb(j, d), yhb(e, k)); - f = thb(thb(f, i10), c); - f = Qgb(f, g10); - i10 = Qgb(i10, g10 << 1); - return thb(thb(i10, f), c); - } - function aGc(a, b, c) { - var d, e, f, g10, h; - g10 = CHc(a, c); - h = KC(OQ, kne, 10, b.length, 0, 1); - d = 0; - for (f = g10.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 11); - Ccb(DD(vNb(e, (wtc(), Nsc)))) && (h[d++] = BD(vNb(e, gtc), 10)); - } - if (d < b.length) { - throw vbb(new Zdb("Expected " + b.length + " hierarchical ports, but found only " + d + ".")); - } - return h; - } - function Und(a, b) { - var c, d, e, f, g10, h; - if (!a.tb) { - f = (!a.rb && (a.rb = new jUd(a, d5, a)), a.rb); - h = new Mqb(f.i); - for (e = new Fyd(f); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 138); - g10 = d.ne(); - c = BD(g10 == null ? jrb(h.f, null, d) : Drb(h.g, g10, d), 138); - !!c && (g10 == null ? jrb(h.f, null, c) : Drb(h.g, g10, c)); - } - a.tb = h; - } - return BD(Phb(a.tb, b), 138); - } - function YKd(a, b) { - var c, d, e, f, g10; - (a.i == null && TKd(a), a.i).length; - if (!a.p) { - g10 = new Mqb((3 * a.g.i / 2 | 0) + 1); - for (e = new $yd(a.g); e.e != e.i.gc(); ) { - d = BD(Zyd(e), 170); - f = d.ne(); - c = BD(f == null ? jrb(g10.f, null, d) : Drb(g10.g, f, d), 170); - !!c && (f == null ? jrb(g10.f, null, c) : Drb(g10.g, f, c)); - } - a.p = g10; - } - return BD(Phb(a.p, b), 170); - } - function hCb(a, b, c, d, e) { - var f, g10, h, i10, j; - fCb(d + Wy(c, c.$d()), e); - gCb(b, jCb(c)); - f = c.f; - !!f && hCb(a, b, f, "Caused by: ", false); - for (h = (c.k == null && (c.k = KC(_I, nie, 78, 0, 0, 1)), c.k), i10 = 0, j = h.length; i10 < j; ++i10) { - g10 = h[i10]; - hCb(a, b, g10, "Suppressed: ", false); - } - console.groupEnd != null && console.groupEnd.call(console); - } - function dGc(a, b, c, d) { - var e, f, g10, h, i10; - i10 = b.e; - h = i10.length; - g10 = b.q._f(i10, c ? 0 : h - 1, c); - e = i10[c ? 0 : h - 1]; - g10 = g10 | cGc(a, e, c, d); - for (f = c ? 1 : h - 2; c ? f < h : f >= 0; f += c ? 1 : -1) { - g10 = g10 | b.c.Sf(i10, f, c, d && !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, (wtc(), mtc))))); - g10 = g10 | b.q._f(i10, f, c); - g10 = g10 | cGc(a, i10[f], c, d); - } - Qqb(a.c, b); - return g10; - } - function o3b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - for (k = m_b(a.j), l = 0, m = k.length; l < m; ++l) { - j = k[l]; - if (c == (KAc(), HAc) || c == JAc) { - i10 = k_b(j.g); - for (e = i10, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - k3b(b, d) && PZb(d, true); - } - } - if (c == IAc || c == JAc) { - h = k_b(j.e); - for (e = h, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - j3b(b, d) && PZb(d, true); - } - } - } - } - function Qmc(a) { - var b, c; - b = null; - c = null; - switch (Lmc(a).g) { - case 1: - b = (Ucd(), zcd); - c = Tcd; - break; - case 2: - b = (Ucd(), Rcd); - c = Acd; - break; - case 3: - b = (Ucd(), Tcd); - c = zcd; - break; - case 4: - b = (Ucd(), Acd); - c = Rcd; - } - mjc(a, BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113)); - njc(a, BD(Btb(QAb(BD(Qc(a.k, c), 15).Oc(), Hmc)), 113)); - } - function a6b(a) { - var b, c, d, e, f, g10; - e = BD(Ikb(a.j, 0), 11); - if (e.e.c.length + e.g.c.length == 0) { - a.n.a = 0; - } else { - g10 = 0; - for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(e), new R0b(e)]))); Qr(d); ) { - c = BD(Rr(d), 11); - g10 += c.i.n.a + c.n.a + c.a.a; - } - b = BD(vNb(a, (Nyc(), Txc)), 8); - f = !b ? 0 : b.a; - a.n.a = g10 / (e.e.c.length + e.g.c.length) - f; - } - } - function F1c(a, b) { - var c, d, e; - for (d = new olb(b.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 221); - $Nb(BD(c.b, 65), c7c(R6c(BD(b.b, 65).c), BD(b.b, 65).a)); - e = xOb(BD(b.b, 65).b, BD(c.b, 65).b); - e > 1 && (a.a = true); - ZNb(BD(c.b, 65), P6c(R6c(BD(b.b, 65).c), Y6c(c7c(R6c(BD(c.b, 65).a), BD(b.b, 65).a), e))); - D1c(a, b); - F1c(a, c); - } - } - function rVb(a) { - var b, c, d, e, f, g10, h; - for (f = new olb(a.a.a); f.a < f.c.c.length; ) { - d = BD(mlb(f), 189); - d.e = 0; - d.d.a.$b(); - } - for (e = new olb(a.a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 189); - for (c = d.a.a.ec().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 81); - for (h = b.f.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 81); - if (g10.d != d) { - Qqb(d.d, g10); - ++g10.d.e; - } - } - } - } - } - function bcc(a) { - var b, c, d, e, f, g10, h, i10; - i10 = a.j.c.length; - c = 0; - b = i10; - e = 2 * i10; - for (h = new olb(a.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - switch (g10.j.g) { - case 2: - case 4: - g10.p = -1; - break; - case 1: - case 3: - d = g10.e.c.length; - f = g10.g.c.length; - d > 0 && f > 0 ? g10.p = b++ : d > 0 ? g10.p = c++ : f > 0 ? g10.p = e++ : g10.p = c++; - } - } - mmb(); - Okb(a.j, new fcc()); - } - function Vec(a) { - var b, c; - c = null; - b = BD(Ikb(a.g, 0), 17); - do { - c = b.d.i; - if (wNb(c, (wtc(), Wsc))) { - return BD(vNb(c, Wsc), 11).i; - } - if (c.k != (j0b(), h0b) && Qr(new Sr(ur(U_b(c).a.Kc(), new Sq())))) { - b = BD(Rr(new Sr(ur(U_b(c).a.Kc(), new Sq()))), 17); - } else if (c.k != h0b) { - return null; - } - } while (!!c && c.k != (j0b(), h0b)); - return c; - } - function Omc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - h = b.j; - g10 = b.g; - i10 = BD(Ikb(h, h.c.length - 1), 113); - k = (tCb(0, h.c.length), BD(h.c[0], 113)); - j = Kmc(a, g10, i10, k); - for (f = 1; f < h.c.length; f++) { - c = (tCb(f - 1, h.c.length), BD(h.c[f - 1], 113)); - e = (tCb(f, h.c.length), BD(h.c[f], 113)); - d = Kmc(a, g10, c, e); - if (d > j) { - i10 = c; - k = e; - j = d; - } - } - b.a = k; - b.c = i10; - } - function sEb(a, b) { - var c, d; - d = Axb(a.b, b.b); - if (!d) { - throw vbb(new Zdb("Invalid hitboxes for scanline constraint calculation.")); - } - (mEb(b.b, BD(Cxb(a.b, b.b), 57)) || mEb(b.b, BD(Bxb(a.b, b.b), 57))) && (Zfb(), b.b + " has overlap."); - a.a[b.b.f] = BD(Exb(a.b, b.b), 57); - c = BD(Dxb(a.b, b.b), 57); - !!c && (a.a[c.f] = b.b); - } - function AFb(a) { - if (!a.a.d || !a.a.e) { - throw vbb(new Zdb((fdb(fN), fN.k + " must have a source and target " + (fdb(jN), jN.k) + " specified."))); - } - if (a.a.d == a.a.e) { - throw vbb(new Zdb("Network simplex does not support self-loops: " + a.a + " " + a.a.d + " " + a.a.e)); - } - NFb(a.a.d.g, a.a); - NFb(a.a.e.b, a.a); - return a.a; - } - function HHc(a, b, c) { - var d, e, f, g10, h, i10, j; - j = new Hxb(new tIc(a)); - for (g10 = OC(GC(aR, 1), lne, 11, 0, [b, c]), h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - Iwb(j.a, f, (Bcb(), zcb)) == null; - for (e = new b1b(f.b); llb(e.a) || llb(e.b); ) { - d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17); - d.c == d.d || Axb(j, f == d.c ? d.d : d.c); - } - } - return Qb(j), new Tkb(j); - } - function oPc(a, b, c) { - var d, e, f, g10, h, i10; - d = 0; - if (b.b != 0 && c.b != 0) { - f = Jsb(b, 0); - g10 = Jsb(c, 0); - h = Edb(ED(Xsb(f))); - i10 = Edb(ED(Xsb(g10))); - e = true; - do { - if (h > i10 - a.b && h < i10 + a.b) { - return -1; - } else - h > i10 - a.a && h < i10 + a.a && ++d; - h <= i10 && f.b != f.d.c ? h = Edb(ED(Xsb(f))) : i10 <= h && g10.b != g10.d.c ? i10 = Edb(ED(Xsb(g10))) : e = false; - } while (e); - } - return d; - } - function F3b(a, b, c, d, e) { - var f, g10, h, i10; - i10 = (f = BD(gdb(F1), 9), new xqb(f, BD(_Bb(f, f.length), 9), 0)); - for (h = new olb(a.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - if (b[g10.p]) { - G3b(g10, b[g10.p], d); - rqb(i10, g10.j); - } - } - if (e) { - K3b(a, b, (Ucd(), zcd), 2 * c, d); - K3b(a, b, Tcd, 2 * c, d); - } else { - K3b(a, b, (Ucd(), Acd), 2 * c, d); - K3b(a, b, Rcd, 2 * c, d); - } - } - function Szb(a) { - var b, c, d, e, f; - f = new Rkb(); - Hkb(a.b, new XBb(f)); - a.b.c = KC(SI, Uhe, 1, 0, 5, 1); - if (f.c.length != 0) { - b = (tCb(0, f.c.length), BD(f.c[0], 78)); - for (c = 1, d = f.c.length; c < d; ++c) { - e = (tCb(c, f.c.length), BD(f.c[c], 78)); - e != b && Qy(b, e); - } - if (JD(b, 60)) { - throw vbb(BD(b, 60)); - } - if (JD(b, 289)) { - throw vbb(BD(b, 289)); - } - } - } - function DCb(a, b) { - var c, d, e, f; - a = a == null ? Xhe : (uCb(a), a); - c = new Vfb(); - f = 0; - d = 0; - while (d < b.length) { - e = a.indexOf("%s", f); - if (e == -1) { - break; - } - Qfb(c, a.substr(f, e - f)); - Pfb(c, b[d++]); - f = e + 2; - } - Qfb(c, a.substr(f)); - if (d < b.length) { - c.a += " ["; - Pfb(c, b[d++]); - while (d < b.length) { - c.a += She; - Pfb(c, b[d++]); - } - c.a += "]"; - } - return c.a; - } - function KCb(a) { - var b, c, d, e; - b = 0; - d = a.length; - e = d - 4; - c = 0; - while (c < e) { - b = (BCb(c + 3, a.length), a.charCodeAt(c + 3) + (BCb(c + 2, a.length), 31 * (a.charCodeAt(c + 2) + (BCb(c + 1, a.length), 31 * (a.charCodeAt(c + 1) + (BCb(c, a.length), 31 * (a.charCodeAt(c) + 31 * b))))))); - b = b | 0; - c += 4; - } - while (c < d) { - b = b * 31 + bfb(a, c++); - } - b = b | 0; - return b; - } - function Rac(a) { - var b, c; - for (c = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - if (b.d.i.k != (j0b(), f0b)) { - throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen.")); - } - } - } - function jQc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - i10 = 0; - for (k = new olb(a.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - h = 0; - for (f = new Sr(ur(R_b(j).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - l = A0b(e.c).b; - m = A0b(e.d).b; - h = $wnd.Math.max(h, $wnd.Math.abs(m - l)); - } - i10 = $wnd.Math.max(i10, h); - } - g10 = d * $wnd.Math.min(1, b / c) * i10; - return g10; - } - function See(a) { - var b; - b = new Ifb(); - (a & 256) != 0 && (b.a += "F", b); - (a & 128) != 0 && (b.a += "H", b); - (a & 512) != 0 && (b.a += "X", b); - (a & 2) != 0 && (b.a += "i", b); - (a & 8) != 0 && (b.a += "m", b); - (a & 4) != 0 && (b.a += "s", b); - (a & 32) != 0 && (b.a += "u", b); - (a & 64) != 0 && (b.a += "w", b); - (a & 16) != 0 && (b.a += "x", b); - (a & zte) != 0 && (b.a += ",", b); - return jfb(b.a); - } - function F5b(a, b) { - var c, d, e, f; - Odd(b, "Resize child graph to fit parent.", 1); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - Gkb(a.a, c.a); - c.a.c = KC(SI, Uhe, 1, 0, 5, 1); - } - for (f = new olb(a.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - $_b(e, null); - } - a.b.c = KC(SI, Uhe, 1, 0, 5, 1); - G5b(a); - !!a.e && E5b(a.e, a); - Qdd(b); - } - function eec(a) { - var b, c, d, e, f, g10, h, i10, j; - d = a.b; - f = d.e; - g10 = ecd(BD(vNb(d, (Nyc(), Vxc)), 98)); - c = !!f && BD(vNb(f, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)); - if (g10 || c) { - return; - } - for (j = (h = new $ib(a.e).a.vc().Kc(), new djb(h)); j.a.Ob(); ) { - i10 = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113)); - if (i10.a) { - e = i10.d; - F0b(e, null); - i10.c = true; - a.a = true; - } - } - } - function QFc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - m = -1; - n = 0; - for (j = a, k = 0, l = j.length; k < l; ++k) { - i10 = j[k]; - for (f = i10, g10 = 0, h = f.length; g10 < h; ++g10) { - e = f[g10]; - b = new Unc(m == -1 ? a[0] : a[m], Xec(e)); - for (c = 0; c < e.j.c.length; c++) { - for (d = c + 1; d < e.j.c.length; d++) { - Rnc(b, BD(Ikb(e.j, c), 11), BD(Ikb(e.j, d), 11)) > 0 && ++n; - } - } - } - ++m; - } - return n; - } - function hUc(a, b) { - var c, d, e, f, g10; - g10 = BD(vNb(b, (JTc(), FTc)), 425); - for (f = Jsb(b.b, 0); f.b != f.d.c; ) { - e = BD(Xsb(f), 86); - if (a.b[e.g] == 0) { - switch (g10.g) { - case 0: - iUc(a, e); - break; - case 1: - gUc(a, e); - } - a.b[e.g] = 2; - } - } - for (d = Jsb(a.a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 188); - ze(c.b.d, c, true); - ze(c.c.b, c, true); - } - yNb(b, (mTc(), gTc), a.a); - } - function S6d(a, b) { - Q6d(); - var c, d, e, f; - if (!b) { - return P6d; - } else if (b == (Q8d(), N8d) || (b == v8d || b == t8d || b == u8d) && a != s8d) { - return new Z6d(a, b); - } else { - d = BD(b, 677); - c = d.pk(); - if (!c) { - a2d(q1d((O6d(), M6d), b)); - c = d.pk(); - } - f = (!c.i && (c.i = new Lqb()), c.i); - e = BD(Wd(irb(f.f, a)), 1942); - !e && Rhb(f, a, e = new Z6d(a, b)); - return e; - } - } - function Tbc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - i10 = BD(vNb(a, (wtc(), $sc)), 11); - j = l7c(OC(GC(m1, 1), nie, 8, 0, [i10.i.n, i10.n, i10.a])).a; - k = a.i.n.b; - c = k_b(a.e); - for (e = c, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - RZb(d, i10); - Fsb(d.a, new f7c(j, k)); - if (b) { - h = BD(vNb(d, (Nyc(), jxc)), 74); - if (!h) { - h = new s7c(); - yNb(d, jxc, h); - } - Dsb(h, new f7c(j, k)); - } - } - } - function Ubc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - e = BD(vNb(a, (wtc(), $sc)), 11); - j = l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).a; - k = a.i.n.b; - c = k_b(a.g); - for (g10 = c, h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - QZb(f, e); - Esb(f.a, new f7c(j, k)); - if (b) { - d = BD(vNb(f, (Nyc(), jxc)), 74); - if (!d) { - d = new s7c(); - yNb(f, jxc, d); - } - Dsb(d, new f7c(j, k)); - } - } - } - function TFc(a, b) { - var c, d, e, f, g10, h; - a.b = new Rkb(); - a.d = BD(vNb(b, (wtc(), jtc)), 230); - a.e = Dub(a.d); - f = new Psb(); - e = Ou(OC(GC(KQ, 1), cne, 37, 0, [b])); - g10 = 0; - while (g10 < e.c.length) { - d = (tCb(g10, e.c.length), BD(e.c[g10], 37)); - d.p = g10++; - c = new fFc(d, a.a, a.b); - Gkb(e, c.b); - Ekb(a.b, c); - c.s && (h = Jsb(f, 0), Vsb(h, c)); - } - a.c = new Tqb(); - return f; - } - function HJb(a, b) { - var c, d, e, f, g10, h; - for (g10 = BD(BD(Qc(a.r, b), 21), 84).Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 111); - c = f.c ? ZHb(f.c) : 0; - if (c > 0) { - if (f.a) { - h = f.b.rf().a; - if (c > h) { - e = (c - h) / 2; - f.d.b = e; - f.d.c = e; - } - } else { - f.d.c = a.s + c; - } - } else if (tcd(a.u)) { - d = sfd(f.b); - d.c < 0 && (f.d.b = -d.c); - d.c + d.b > f.b.rf().a && (f.d.c = d.c + d.b - f.b.rf().a); - } - } - } - function Eec(a, b) { - var c, d, e, f; - Odd(b, "Semi-Interactive Crossing Minimization Processor", 1); - c = false; - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - f = TAb(VAb(JAb(JAb(new YAb(null, new Kub(d.a, 16)), new Jec()), new Lec()), new Nec()), new Rec()); - c = c | f.a != null; - } - c && yNb(a, (wtc(), Rsc), (Bcb(), true)); - Qdd(b); - } - function sRc(a, b, c) { - var d, e, f, g10, h; - e = c; - !e && (e = new Zdd()); - Odd(e, "Layout", a.a.c.length); - if (Ccb(DD(vNb(b, (JTc(), vTc))))) { - Zfb(); - for (d = 0; d < a.a.c.length; d++) { - h = (d < 10 ? "0" : "") + d++; - " Slot " + h + ": " + hdb(rb(BD(Ikb(a.a, d), 51))); - } - } - for (g10 = new olb(a.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 51); - f.pf(b, Udd(e, 1)); - } - Qdd(e); - } - function yMb(a) { - var b, c; - b = BD(a.a, 19).a; - c = BD(a.b, 19).a; - if (b >= 0) { - if (b == c) { - return new vgd(meb(-b - 1), meb(-b - 1)); - } - if (b == -c) { - return new vgd(meb(-b), meb(c + 1)); - } - } - if ($wnd.Math.abs(b) > $wnd.Math.abs(c)) { - if (b < 0) { - return new vgd(meb(-b), meb(c)); - } - return new vgd(meb(-b), meb(c + 1)); - } - return new vgd(meb(b + 1), meb(c)); - } - function q5b(a) { - var b, c; - c = BD(vNb(a, (Nyc(), mxc)), 163); - b = BD(vNb(a, (wtc(), Osc)), 303); - if (c == (Ctc(), ytc)) { - yNb(a, mxc, Btc); - yNb(a, Osc, (esc(), dsc)); - } else if (c == Atc) { - yNb(a, mxc, Btc); - yNb(a, Osc, (esc(), bsc)); - } else if (b == (esc(), dsc)) { - yNb(a, mxc, ytc); - yNb(a, Osc, csc); - } else if (b == bsc) { - yNb(a, mxc, Atc); - yNb(a, Osc, csc); - } - } - function FNc() { - FNc = ccb; - DNc = new RNc(); - zNc = e3c(new j3c(), (qUb(), nUb), (S8b(), o8b)); - CNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b); - ENc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b); - ANc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b); - BNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b); - } - function hQc() { - hQc = ccb; - cQc = e3c(c3c(new j3c(), (qUb(), pUb), (S8b(), c8b)), nUb, o8b); - gQc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b); - dQc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b); - fQc = e3c(e3c(new j3c(), nUb, C8b), pUb, B8b); - eQc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b); - } - function GNc(a, b, c, d, e) { - var f, g10; - if ((!OZb(b) && b.c.i.c == b.d.i.c || !T6c(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])), c)) && !OZb(b)) { - b.c == e ? St(b.a, 0, new g7c(c)) : Dsb(b.a, new g7c(c)); - if (d && !Rqb(a.a, c)) { - g10 = BD(vNb(b, (Nyc(), jxc)), 74); - if (!g10) { - g10 = new s7c(); - yNb(b, jxc, g10); - } - f = new g7c(c); - Gsb(g10, f, g10.c.b, g10.c); - Qqb(a.a, f); - } - } - } - function Qac(a) { - var b, c; - for (c = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - if (b.c.i.k != (j0b(), f0b)) { - throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen.")); - } - } - } - function vjd(a, b, c) { - var d, e, f, g10, h, i10, j; - e = aeb(a.Db & 254); - if (e == 0) { - a.Eb = c; - } else { - if (e == 1) { - h = KC(SI, Uhe, 1, 2, 5, 1); - f = zjd(a, b); - if (f == 0) { - h[0] = c; - h[1] = a.Eb; - } else { - h[0] = a.Eb; - h[1] = c; - } - } else { - h = KC(SI, Uhe, 1, e + 1, 5, 1); - g10 = CD(a.Eb); - for (d = 2, i10 = 0, j = 0; d <= 128; d <<= 1) { - d == b ? h[j++] = c : (a.Db & d) != 0 && (h[j++] = g10[i10++]); - } - } - a.Eb = h; - } - a.Db |= b; - } - function ENb(a, b, c) { - var d, e, f, g10; - this.b = new Rkb(); - e = 0; - d = 0; - for (g10 = new olb(a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 167); - c && rMb(f); - Ekb(this.b, f); - e += f.o; - d += f.p; - } - if (this.b.c.length > 0) { - f = BD(Ikb(this.b, 0), 167); - e += f.o; - d += f.p; - } - e *= 2; - d *= 2; - b > 1 ? e = QD($wnd.Math.ceil(e * b)) : d = QD($wnd.Math.ceil(d / b)); - this.a = new pNb(e, d); - } - function Igc(a, b, c, d, e, f) { - var g10, h, i10, j, k, l, m, n, o10, p, q, r; - k = d; - if (b.j && b.o) { - n = BD(Ohb(a.f, b.A), 57); - p = n.d.c + n.d.b; - --k; - } else { - p = b.a.c + b.a.b; - } - l = e; - if (c.q && c.o) { - n = BD(Ohb(a.f, c.C), 57); - j = n.d.c; - ++l; - } else { - j = c.a.c; - } - q = j - p; - i10 = $wnd.Math.max(2, l - k); - h = q / i10; - o10 = p + h; - for (m = k; m < l; ++m) { - g10 = BD(f.Xb(m), 128); - r = g10.a.b; - g10.a.c = o10 - r / 2; - o10 += h; - } - } - function UHc(a, b, c, d, e, f) { - var g10, h, i10, j, k, l; - j = c.c.length; - f && (a.c = KC(WD, oje, 25, b.length, 15, 1)); - for (g10 = e ? 0 : b.length - 1; e ? g10 < b.length : g10 >= 0; g10 += e ? 1 : -1) { - h = b[g10]; - i10 = d == (Ucd(), zcd) ? e ? V_b(h, d) : Su(V_b(h, d)) : e ? Su(V_b(h, d)) : V_b(h, d); - f && (a.c[h.p] = i10.gc()); - for (l = i10.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 11); - a.d[k.p] = j++; - } - Gkb(c, i10); - } - } - function aQc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - f = Edb(ED(a.b.Kc().Pb())); - j = Edb(ED(Pq(b.b))); - d = Y6c(R6c(a.a), j - c); - e = Y6c(R6c(b.a), c - f); - k = P6c(d, e); - Y6c(k, 1 / (j - f)); - this.a = k; - this.b = new Rkb(); - h = true; - g10 = a.b.Kc(); - g10.Pb(); - while (g10.Ob()) { - i10 = Edb(ED(g10.Pb())); - if (h && i10 - c > Oqe) { - this.b.Fc(c); - h = false; - } - this.b.Fc(i10); - } - h && this.b.Fc(c); - } - function vGb(a) { - var b, c, d, e; - yGb(a, a.n); - if (a.d.c.length > 0) { - Blb(a.c); - while (GGb(a, BD(mlb(new olb(a.e.a)), 121)) < a.e.a.c.length) { - b = AGb(a); - e = b.e.e - b.d.e - b.a; - b.e.j && (e = -e); - for (d = new olb(a.e.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 121); - c.j && (c.e += e); - } - Blb(a.c); - } - Blb(a.c); - DGb(a, BD(mlb(new olb(a.e.a)), 121)); - rGb(a); - } - } - function rkc(a, b) { - var c, d, e, f, g10; - for (e = BD(Qc(a.a, (Xjc(), Tjc)), 15).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 101); - c = BD(Ikb(d.j, 0), 113).d.j; - f = new Tkb(d.j); - Okb(f, new Xkc()); - switch (b.g) { - case 1: - jkc(a, f, c, (Fkc(), Dkc), 1); - break; - case 0: - g10 = lkc(f); - jkc(a, new Jib(f, 0, g10), c, (Fkc(), Dkc), 0); - jkc(a, new Jib(f, g10, f.c.length), c, Dkc, 1); - } - } - } - function c2c(a, b) { - Y1c(); - var c, d; - c = j4c(n4c(), b.tg()); - if (c) { - d = c.j; - if (JD(a, 239)) { - return Zod(BD(a, 33)) ? uqb(d, (N5c(), K5c)) || uqb(d, L5c) : uqb(d, (N5c(), K5c)); - } else if (JD(a, 352)) { - return uqb(d, (N5c(), I5c)); - } else if (JD(a, 186)) { - return uqb(d, (N5c(), M5c)); - } else if (JD(a, 354)) { - return uqb(d, (N5c(), J5c)); - } - } - return true; - } - function c3d(a, b, c) { - var d, e, f, g10, h, i10; - e = c; - f = e.ak(); - if (T6d(a.e, f)) { - if (f.hi()) { - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - h = d[g10]; - if (pb(h, e) && g10 != b) { - throw vbb(new Wdb(kue)); - } - } - } - } else { - i10 = S6d(a.e.Tg(), f); - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - h = d[g10]; - if (i10.rl(h.ak()) && g10 != b) { - throw vbb(new Wdb(Hwe)); - } - } - } - return BD(Gtd(a, b, c), 72); - } - function Sy(d, b) { - if (b instanceof Object) { - try { - b.__java$exception = d; - if (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9) { - return; - } - var c = d; - Object.defineProperties(b, { cause: { get: function() { - var a = c.Zd(); - return a && a.Xd(); - } }, suppressed: { get: function() { - return c.Yd(); - } } }); - } catch (a) { - } - } - } - function lhb(a, b) { - var c, d, e, f, g10; - d = b >> 5; - b &= 31; - if (d >= a.d) { - return a.e < 0 ? (Hgb(), Bgb) : (Hgb(), Ggb); - } - f = a.d - d; - e = KC(WD, oje, 25, f + 1, 15, 1); - mhb(e, f, a.a, d, b); - if (a.e < 0) { - for (c = 0; c < d && a.a[c] == 0; c++) - ; - if (c < d || b > 0 && a.a[c] << 32 - b != 0) { - for (c = 0; c < f && e[c] == -1; c++) { - e[c] = 0; - } - c == f && ++f; - ++e[c]; - } - } - g10 = new Vgb(a.e, f, e); - Jgb(g10); - return g10; - } - function UPb(a) { - var b, c, d, e; - e = mpd(a); - c = new kQb(e); - d = new mQb(e); - b = new Rkb(); - Gkb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); - Gkb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); - return BD(GAb(NAb(JAb(new YAb(null, new Kub(b, 16)), c), d), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21); - } - function p2d(a, b, c, d) { - var e, f, g10, h, i10; - h = (Q6d(), BD(b, 66).Oj()); - if (T6d(a.e, b)) { - if (b.hi() && F2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) { - throw vbb(new Wdb(kue)); - } - } else { - i10 = S6d(a.e.Tg(), b); - e = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (i10.rl(f.ak())) { - throw vbb(new Wdb(Hwe)); - } - } - } - vtd(a, I2d(a, b, c), h ? BD(d, 72) : R6d(b, d)); - } - function T6d(a, b) { - Q6d(); - var c, d, e; - if (b.$j()) { - return true; - } else if (b.Zj() == -2) { - if (b == (m8d(), k8d) || b == h8d || b == i8d || b == j8d) { - return true; - } else { - e = a.Tg(); - if (bLd(e, b) >= 0) { - return false; - } else { - c = e1d((O6d(), M6d), e, b); - if (!c) { - return true; - } else { - d = c.Zj(); - return (d > 1 || d == -1) && $1d(q1d(M6d, c)) != 3; - } - } - } - } else { - return false; - } - } - function R1b(a, b, c, d) { - var e, f, g10, h, i10; - h = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82)); - i10 = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82)); - if (Xod(h) == Xod(i10)) { - return null; - } - if (ntd(i10, h)) { - return null; - } - g10 = Mld(b); - if (g10 == c) { - return d; - } else { - f = BD(Ohb(a.a, g10), 10); - if (f) { - e = f.e; - if (e) { - return e; - } - } - } - return null; - } - function Cac(a, b) { - var c; - c = BD(vNb(a, (Nyc(), Rwc)), 276); - Odd(b, "Label side selection (" + c + ")", 1); - switch (c.g) { - case 0: - Dac(a, (rbd(), nbd)); - break; - case 1: - Dac(a, (rbd(), obd)); - break; - case 2: - Bac(a, (rbd(), nbd)); - break; - case 3: - Bac(a, (rbd(), obd)); - break; - case 4: - Eac(a, (rbd(), nbd)); - break; - case 5: - Eac(a, (rbd(), obd)); - } - Qdd(b); - } - function bGc(a, b, c) { - var d, e, f, g10, h, i10; - d = RFc(c, a.length); - g10 = a[d]; - if (g10[0].k != (j0b(), e0b)) { - return; - } - f = SFc(c, g10.length); - i10 = b.j; - for (e = 0; e < i10.c.length; e++) { - h = (tCb(e, i10.c.length), BD(i10.c[e], 11)); - if ((c ? h.j == (Ucd(), zcd) : h.j == (Ucd(), Tcd)) && Ccb(DD(vNb(h, (wtc(), Nsc))))) { - Nkb(i10, e, BD(vNb(g10[f], (wtc(), $sc)), 11)); - f += c ? 1 : -1; - } - } - } - function rQc(a, b) { - var c, d, e, f, g10; - g10 = new Rkb(); - c = b; - do { - f = BD(Ohb(a.b, c), 128); - f.B = c.c; - f.D = c.d; - g10.c[g10.c.length] = f; - c = BD(Ohb(a.k, c), 17); - } while (c); - d = (tCb(0, g10.c.length), BD(g10.c[0], 128)); - d.j = true; - d.A = BD(d.d.a.ec().Kc().Pb(), 17).c.i; - e = BD(Ikb(g10, g10.c.length - 1), 128); - e.q = true; - e.C = BD(e.d.a.ec().Kc().Pb(), 17).d.i; - return g10; - } - function $wd(a) { - if (a.g == null) { - switch (a.p) { - case 0: - a.g = Swd(a) ? (Bcb(), Acb) : (Bcb(), zcb); - break; - case 1: - a.g = Scb(Twd(a)); - break; - case 2: - a.g = bdb(Uwd(a)); - break; - case 3: - a.g = Vwd(a); - break; - case 4: - a.g = new Ndb(Wwd(a)); - break; - case 6: - a.g = Aeb(Ywd(a)); - break; - case 5: - a.g = meb(Xwd(a)); - break; - case 7: - a.g = Web(Zwd(a)); - } - } - return a.g; - } - function hxd(a) { - if (a.n == null) { - switch (a.p) { - case 0: - a.n = _wd(a) ? (Bcb(), Acb) : (Bcb(), zcb); - break; - case 1: - a.n = Scb(axd(a)); - break; - case 2: - a.n = bdb(bxd(a)); - break; - case 3: - a.n = cxd(a); - break; - case 4: - a.n = new Ndb(dxd(a)); - break; - case 6: - a.n = Aeb(fxd(a)); - break; - case 5: - a.n = meb(exd(a)); - break; - case 7: - a.n = Web(gxd(a)); - } - } - return a.n; - } - function QDb(a) { - var b, c, d, e, f, g10, h; - for (f = new olb(a.a.a); f.a < f.c.c.length; ) { - d = BD(mlb(f), 307); - d.g = 0; - d.i = 0; - d.e.a.$b(); - } - for (e = new olb(a.a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 307); - for (c = d.a.a.ec().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 57); - for (h = b.c.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 57); - if (g10.a != d) { - Qqb(d.e, g10); - ++g10.a.g; - ++g10.a.i; - } - } - } - } - } - function gOb(a, b) { - var c, d, e, f, g10, h; - h = Axb(a.a, b.b); - if (!h) { - throw vbb(new Zdb("Invalid hitboxes for scanline overlap calculation.")); - } - g10 = false; - for (f = (d = new Ywb(new cxb(new Gjb(a.a.a).a).b), new Njb(d)); sib(f.a.a); ) { - e = (c = Wwb(f.a), BD(c.cd(), 65)); - if (bOb(b.b, e)) { - T$c(a.b.a, b.b, e); - g10 = true; - } else { - if (g10) { - break; - } - } - } - } - function G5b(a) { - var b, c, d, e, f; - e = BD(vNb(a, (Nyc(), Fxc)), 21); - f = BD(vNb(a, Ixc), 21); - c = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a); - b = new g7c(c); - if (e.Hc((tdd(), pdd))) { - d = BD(vNb(a, Hxc), 8); - if (f.Hc((Idd(), Bdd))) { - d.a <= 0 && (d.a = 20); - d.b <= 0 && (d.b = 20); - } - b.a = $wnd.Math.max(c.a, d.a); - b.b = $wnd.Math.max(c.b, d.b); - } - H5b(a, c, b); - } - function toc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - e = b ? new Coc() : new Eoc(); - f = false; - do { - f = false; - j = b ? Su(a.b) : a.b; - for (i10 = j.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 29); - m = Mu(h.a); - b || new ov(m); - for (l = new olb(m); l.a < l.c.c.length; ) { - k = BD(mlb(l), 10); - if (e.Mb(k)) { - d = k; - c = BD(vNb(k, (wtc(), usc)), 305); - g10 = b ? c.b : c.k; - f = roc(d, g10, b, false); - } - } - } - } while (f); - } - function WCc(a, b, c) { - var d, e, f, g10, h; - Odd(c, "Longest path layering", 1); - a.a = b; - h = a.a.a; - a.b = KC(WD, oje, 25, h.c.length, 15, 1); - d = 0; - for (g10 = new olb(h); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 10); - e.p = d; - a.b[d] = -1; - ++d; - } - for (f = new olb(h); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - YCc(a, e); - } - h.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a = null; - a.b = null; - Qdd(c); - } - function QVb(a, b) { - var c, d, e; - b.a ? (Axb(a.b, b.b), a.a[b.b.i] = BD(Exb(a.b, b.b), 81), c = BD(Dxb(a.b, b.b), 81), !!c && (a.a[c.i] = b.b), void 0) : (d = BD(Exb(a.b, b.b), 81), !!d && d == a.a[b.b.i] && !!d.d && d.d != b.b.d && d.f.Fc(b.b), e = BD(Dxb(a.b, b.b), 81), !!e && a.a[e.i] == b.b && !!e.d && e.d != b.b.d && b.b.f.Fc(e), Fxb(a.b, b.b), void 0); - } - function zbc(a, b) { - var c, d, e, f, g10, h; - f = a.d; - h = Edb(ED(vNb(a, (Nyc(), Zwc)))); - if (h < 0) { - h = 0; - yNb(a, Zwc, h); - } - b.o.b = h; - g10 = $wnd.Math.floor(h / 2); - d = new H0b(); - G0b(d, (Ucd(), Tcd)); - F0b(d, b); - d.n.b = g10; - e = new H0b(); - G0b(e, zcd); - F0b(e, b); - e.n.b = g10; - RZb(a, d); - c = new UZb(); - tNb(c, a); - yNb(c, jxc, null); - QZb(c, e); - RZb(c, f); - ybc(b, a, c); - wbc(a, c); - return c; - } - function uNc(a) { - var b, c; - c = BD(vNb(a, (wtc(), Ksc)), 21); - b = new j3c(); - if (c.Hc((Orc(), Irc))) { - d3c(b, oNc); - d3c(b, qNc); - } - if (c.Hc(Krc) || Ccb(DD(vNb(a, (Nyc(), $wc))))) { - d3c(b, qNc); - c.Hc(Lrc) && d3c(b, rNc); - } - c.Hc(Hrc) && d3c(b, nNc); - c.Hc(Nrc) && d3c(b, sNc); - c.Hc(Jrc) && d3c(b, pNc); - c.Hc(Erc) && d3c(b, lNc); - c.Hc(Grc) && d3c(b, mNc); - return b; - } - function Ihb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - d = a.d; - f = b.d; - h = d + f; - i10 = a.e != b.e ? -1 : 1; - if (h == 2) { - k = Ibb(xbb(a.a[0], Yje), xbb(b.a[0], Yje)); - m = Tbb(k); - l = Tbb(Pbb(k, 32)); - return l == 0 ? new Ugb(i10, m) : new Vgb(i10, 2, OC(GC(WD, 1), oje, 25, 15, [m, l])); - } - c = a.a; - e = b.a; - g10 = KC(WD, oje, 25, h, 15, 1); - Fhb(c, d, e, f, g10); - j = new Vgb(i10, h, g10); - Jgb(j); - return j; - } - function Gwb(a, b, c, d) { - var e, f; - if (!b) { - return c; - } else { - e = a.a.ue(c.d, b.d); - if (e == 0) { - d.d = ijb(b, c.e); - d.b = true; - return b; - } - f = e < 0 ? 0 : 1; - b.a[f] = Gwb(a, b.a[f], c, d); - if (Hwb(b.a[f])) { - if (Hwb(b.a[1 - f])) { - b.b = true; - b.a[0].b = false; - b.a[1].b = false; - } else { - Hwb(b.a[f].a[f]) ? b = Owb(b, 1 - f) : Hwb(b.a[f].a[1 - f]) && (b = Nwb(b, 1 - f)); - } - } - } - return b; - } - function wHb(a, b, c) { - var d, e, f, g10; - e = a.i; - d = a.n; - vHb(a, (gHb(), dHb), e.c + d.b, c); - vHb(a, fHb, e.c + e.b - d.c - c[2], c); - g10 = e.b - d.b - d.c; - if (c[0] > 0) { - c[0] += a.d; - g10 -= c[0]; - } - if (c[2] > 0) { - c[2] += a.d; - g10 -= c[2]; - } - f = $wnd.Math.max(0, g10); - c[1] = $wnd.Math.max(c[1], g10); - vHb(a, eHb, e.c + d.b + c[0] - (c[1] - g10) / 2, c); - if (b == eHb) { - a.c.b = f; - a.c.c = e.c + d.b + (f - g10) / 2; - } - } - function AYb() { - this.c = KC(UD, Vje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1); - this.b = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1); - this.a = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1); - zlb(this.c, Pje); - zlb(this.b, Qje); - zlb(this.a, Qje); - } - function Ufe(a, b, c) { - var d, e, f, g10; - if (b <= c) { - e = b; - f = c; - } else { - e = c; - f = b; - } - d = 0; - if (a.b == null) { - a.b = KC(WD, oje, 25, 2, 15, 1); - a.b[0] = e; - a.b[1] = f; - a.c = true; - } else { - d = a.b.length; - if (a.b[d - 1] + 1 == e) { - a.b[d - 1] = f; - return; - } - g10 = KC(WD, oje, 25, d + 2, 15, 1); - $fb(a.b, 0, g10, 0, d); - a.b = g10; - a.b[d - 1] >= e && (a.c = false, a.a = false); - a.b[d++] = e; - a.b[d] = f; - a.c || Yfe(a); - } - } - function inc(a, b, c) { - var d, e, f, g10, h, i10, j; - j = b.d; - a.a = new Skb(j.c.length); - a.c = new Lqb(); - for (h = new olb(j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 101); - f = new uOc(null); - Ekb(a.a, f); - Rhb(a.c, g10, f); - } - a.b = new Lqb(); - gnc(a, b); - for (d = 0; d < j.c.length - 1; d++) { - i10 = BD(Ikb(b.d, d), 101); - for (e = d + 1; e < j.c.length; e++) { - jnc(a, i10, BD(Ikb(b.d, e), 101), c); - } - } - } - function ySc(a, b, c) { - var d, e, f, g10, h, i10; - if (!Qq(b)) { - i10 = Udd(c, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0); - Odd(i10, Xqe, 1); - h = new BSc(); - g10 = 0; - for (f = b.Kc(); f.Ob(); ) { - d = BD(f.Pb(), 86); - h = pl(OC(GC(KI, 1), Uhe, 20, 0, [h, new ZRc(d)])); - g10 < d.f.b && (g10 = d.f.b); - } - for (e = b.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 86); - yNb(d, (mTc(), bTc), g10); - } - Qdd(i10); - ySc(a, h, c); - } - } - function bJc(a, b) { - var c, d, e, f, g10, h, i10; - c = Qje; - h = (j0b(), h0b); - for (e = new olb(b.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - f = d.k; - if (f != h0b) { - g10 = ED(vNb(d, (wtc(), atc))); - if (g10 == null) { - c = $wnd.Math.max(c, 0); - d.n.b = c + iBc(a.a, f, h); - } else { - d.n.b = (uCb(g10), g10); - } - } - i10 = iBc(a.a, f, h); - d.n.b < c + i10 + d.d.d && (d.n.b = c + i10 + d.d.d); - c = d.n.b + d.o.b + d.d.a; - h = f; - } - } - function uQb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - f = itd(b, false, false); - j = ofd(f); - l = Edb(ED(hkd(b, (CPb(), vPb)))); - e = sQb(j, l + a.a); - k = new XOb(e); - tNb(k, b); - Rhb(a.b, b, k); - c.c[c.c.length] = k; - i10 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n); - for (h = new Fyd(i10); h.e != h.i.gc(); ) { - g10 = BD(Dyd(h), 137); - d = wQb(a, g10, true, 0, 0); - c.c[c.c.length] = d; - } - return k; - } - function JVc(a, b, c, d, e) { - var f, g10, h, i10, j, k; - !!a.d && a.d.lg(e); - f = BD(e.Xb(0), 33); - if (HVc(a, c, f, false)) { - return true; - } - g10 = BD(e.Xb(e.gc() - 1), 33); - if (HVc(a, d, g10, true)) { - return true; - } - if (CVc(a, e)) { - return true; - } - for (k = e.Kc(); k.Ob(); ) { - j = BD(k.Pb(), 33); - for (i10 = b.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 33); - if (BVc(a, j, h)) { - return true; - } - } - } - return false; - } - function qid(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - m = b.c.length; - l = (j = a.Yg(c), BD(j >= 0 ? a._g(j, false, true) : sid(a, c, false), 58)); - n: - for (f = l.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 56); - for (k = 0; k < m; ++k) { - g10 = (tCb(k, b.c.length), BD(b.c[k], 72)); - i10 = g10.dd(); - h = g10.ak(); - d = e.bh(h, false); - if (i10 == null ? d != null : !pb(i10, d)) { - continue n; - } - } - return e; - } - return null; - } - function V6b(a, b, c, d) { - var e, f, g10, h; - e = BD(Y_b(b, (Ucd(), Tcd)).Kc().Pb(), 11); - f = BD(Y_b(b, zcd).Kc().Pb(), 11); - for (h = new olb(a.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - while (g10.e.c.length != 0) { - RZb(BD(Ikb(g10.e, 0), 17), e); - } - while (g10.g.c.length != 0) { - QZb(BD(Ikb(g10.g, 0), 17), f); - } - } - c || yNb(b, (wtc(), Vsc), null); - d || yNb(b, (wtc(), Wsc), null); - } - function itd(a, b, c) { - var d, e; - if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) { - return etd(a); - } else { - d = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202); - if (b) { - Uxd((!d.a && (d.a = new xMd(y2, d, 5)), d.a)); - omd(d, 0); - pmd(d, 0); - hmd(d, 0); - imd(d, 0); - } - if (c) { - e = (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a); - while (e.i > 1) { - Xxd(e, e.i - 1); - } - } - return d; - } - } - function Z2b(a, b) { - var c, d, e, f, g10, h, i10; - Odd(b, "Comment post-processing", 1); - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - d = new Rkb(); - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - i10 = BD(vNb(g10, (wtc(), vtc)), 15); - c = BD(vNb(g10, tsc), 15); - if (!!i10 || !!c) { - $2b(g10, i10, c); - !!i10 && Gkb(d, i10); - !!c && Gkb(d, c); - } - } - Gkb(e.a, d); - } - Qdd(b); - } - function Eac(a, b) { - var c, d, e, f, g10, h, i10; - c = new jkb(); - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - i10 = true; - d = 0; - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - switch (g10.k.g) { - case 4: - ++d; - case 1: - Xjb(c, g10); - break; - case 0: - Gac(g10, b); - default: - c.b == c.c || Fac(c, d, i10, false, b); - i10 = false; - d = 0; - } - } - c.b == c.c || Fac(c, d, i10, true, b); - } - } - function Ebc(a, b) { - var c, d, e, f, g10, h, i10; - e = new Rkb(); - for (c = 0; c <= a.i; c++) { - d = new H1b(b); - d.p = a.i - c; - e.c[e.c.length] = d; - } - for (h = new olb(a.o); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - $_b(g10, BD(Ikb(e, a.i - a.f[g10.p]), 29)); - } - f = new olb(e); - while (f.a < f.c.c.length) { - i10 = BD(mlb(f), 29); - i10.a.c.length == 0 && nlb(f); - } - b.b.c = KC(SI, Uhe, 1, 0, 5, 1); - Gkb(b.b, e); - } - function KHc(a, b) { - var c, d, e, f, g10, h; - c = 0; - for (h = new olb(b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - AHc(a.b, a.d[g10.p]); - for (e = new b1b(g10.b); llb(e.a) || llb(e.b); ) { - d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17); - f = aIc(a, g10 == d.c ? d.d : d.c); - if (f > a.d[g10.p]) { - c += zHc(a.b, f); - Wjb(a.a, meb(f)); - } - } - while (!akb(a.a)) { - xHc(a.b, BD(fkb(a.a), 19).a); - } - } - return c; - } - function o2c(a, b, c) { - var d, e, f, g10; - f = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i; - for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i == 0 || (f += o2c(a, d, false)); - } - if (c) { - g10 = Xod(b); - while (g10) { - f += (!g10.a && (g10.a = new cUd(E2, g10, 10, 11)), g10.a).i; - g10 = Xod(g10); - } - } - return f; - } - function Xxd(a, b) { - var c, d, e, f; - if (a.ej()) { - d = null; - e = a.fj(); - a.ij() && (d = a.kj(a.pi(b), null)); - c = a.Zi(4, f = tud(a, b), null, b, e); - if (a.bj() && f != null) { - d = a.dj(f, d); - if (!d) { - a.$i(c); - } else { - d.Ei(c); - d.Fi(); - } - } else { - if (!d) { - a.$i(c); - } else { - d.Ei(c); - d.Fi(); - } - } - return f; - } else { - f = tud(a, b); - if (a.bj() && f != null) { - d = a.dj(f, null); - !!d && d.Fi(); - } - return f; - } - } - function UKb(a) { - var b, c, d, e, f, g10, h, i10, j, k; - j = a.a; - b = new Tqb(); - i10 = 0; - for (d = new olb(a.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 222); - k = 0; - ktb(c.b, new XKb()); - for (g10 = Jsb(c.b, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 222); - if (b.a._b(f)) { - e = c.c; - h = f.c; - k < h.d + h.a + j && k + e.a + j > h.d && (k = h.d + h.a + j); - } - } - c.c.d = k; - b.a.zc(c, b); - i10 = $wnd.Math.max(i10, c.c.d + c.c.a); - } - return i10; - } - function Orc() { - Orc = ccb; - Frc = new Prc("COMMENTS", 0); - Hrc = new Prc("EXTERNAL_PORTS", 1); - Irc = new Prc("HYPEREDGES", 2); - Jrc = new Prc("HYPERNODES", 3); - Krc = new Prc("NON_FREE_PORTS", 4); - Lrc = new Prc("NORTH_SOUTH_PORTS", 5); - Nrc = new Prc(Wne, 6); - Erc = new Prc("CENTER_LABELS", 7); - Grc = new Prc("END_LABELS", 8); - Mrc = new Prc("PARTITIONS", 9); - } - function gVc(a) { - var b, c, d, e, f; - e = new Rkb(); - b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); - for (d = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 79); - if (!JD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 186)) { - f = atd(BD(qud((!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c), 0), 82)); - b.a._b(f) || (e.c[e.c.length] = f, true); - } - } - return e; - } - function fVc(a) { - var b, c, d, e, f, g10; - f = new Tqb(); - b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); - for (e = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 79); - if (!JD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 186)) { - g10 = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82)); - b.a._b(g10) || (c = f.a.zc(g10, f), c == null); - } - } - return f; - } - function zA(a, b, c, d, e) { - if (d < 0) { - d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b); - d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b)); - if (d < 0) { - return false; - } - c.k = d; - return true; - } else if (d > 0) { - c.k = d - 1; - return true; - } - return false; - } - function BA(a, b, c, d, e) { - if (d < 0) { - d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b); - d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b)); - if (d < 0) { - return false; - } - c.k = d; - return true; - } else if (d > 0) { - c.k = d - 1; - return true; - } - return false; - } - function DA(a, b, c, d, e, f) { - var g10, h, i10, j; - h = 32; - if (d < 0) { - if (b[0] >= a.length) { - return false; - } - h = bfb(a, b[0]); - if (h != 43 && h != 45) { - return false; - } - ++b[0]; - d = rA(a, b); - if (d < 0) { - return false; - } - h == 45 && (d = -d); - } - if (h == 32 && b[0] - c == 2 && e.b == 2) { - i10 = new eB(); - j = i10.q.getFullYear() - nje + nje - 80; - g10 = j % 100; - f.a = d == g10; - d += (j / 100 | 0) * 100 + (d < g10 ? 100 : 0); - } - f.p = d; - return true; - } - function L1b(a, b) { - var c, d, e, f, g10; - if (!Xod(a)) { - return; - } - g10 = BD(vNb(b, (Nyc(), Fxc)), 174); - PD(hkd(a, Vxc)) === PD((dcd(), ccd)) && jkd(a, Vxc, bcd); - d = (Pgd(), new bhd(Xod(a))); - f = new hhd(!Xod(a) ? null : new bhd(Xod(a)), a); - e = PGb(d, f, false, true); - rqb(g10, (tdd(), pdd)); - c = BD(vNb(b, Hxc), 8); - c.a = $wnd.Math.max(e.a, c.a); - c.b = $wnd.Math.max(e.b, c.b); - } - function Pac(a, b, c) { - var d, e, f, g10, h, i10; - for (g10 = BD(vNb(a, (wtc(), Lsc)), 15).Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 10); - switch (BD(vNb(f, (Nyc(), mxc)), 163).g) { - case 2: - $_b(f, b); - break; - case 4: - $_b(f, c); - } - for (e = new Sr(ur(O_b(f).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - if (!!d.c && !!d.d) { - continue; - } - h = !d.d; - i10 = BD(vNb(d, ctc), 11); - h ? RZb(d, i10) : QZb(d, i10); - } - } - } - function Alc() { - Alc = ccb; - tlc = new Blc(xle, 0, (Ucd(), Acd), Acd); - wlc = new Blc(zle, 1, Rcd, Rcd); - slc = new Blc(yle, 2, zcd, zcd); - zlc = new Blc(Ale, 3, Tcd, Tcd); - vlc = new Blc("NORTH_WEST_CORNER", 4, Tcd, Acd); - ulc = new Blc("NORTH_EAST_CORNER", 5, Acd, zcd); - ylc = new Blc("SOUTH_WEST_CORNER", 6, Rcd, Tcd); - xlc = new Blc("SOUTH_EAST_CORNER", 7, zcd, Rcd); - } - function i6c() { - i6c = ccb; - h6c = OC(GC(XD, 1), Sje, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]); - $wnd.Math.pow(2, -65); - } - function Pcc(a, b) { - var c, d, e, f, g10; - if (a.c.length == 0) { - return new vgd(meb(0), meb(0)); - } - c = (tCb(0, a.c.length), BD(a.c[0], 11)).j; - g10 = 0; - f = b.g; - d = b.g + 1; - while (g10 < a.c.length - 1 && c.g < f) { - ++g10; - c = (tCb(g10, a.c.length), BD(a.c[g10], 11)).j; - } - e = g10; - while (e < a.c.length - 1 && c.g < d) { - ++e; - c = (tCb(g10, a.c.length), BD(a.c[g10], 11)).j; - } - return new vgd(meb(g10), meb(e)); - } - function R9b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - f = b.c.length; - g10 = (tCb(c, b.c.length), BD(b.c[c], 286)); - h = g10.a.o.a; - l = g10.c; - m = 0; - for (j = g10.c; j <= g10.f; j++) { - if (h <= a.a[j]) { - return j; - } - k = a.a[j]; - i10 = null; - for (e = c + 1; e < f; e++) { - d = (tCb(e, b.c.length), BD(b.c[e], 286)); - d.c <= j && d.f >= j && (i10 = d); - } - !!i10 && (k = $wnd.Math.max(k, i10.a.o.a)); - if (k > m) { - l = j; - m = k; - } - } - return l; - } - function ode(a, b, c) { - var d, e, f; - a.e = c; - a.d = 0; - a.b = 0; - a.f = 1; - a.i = b; - (a.e & 16) == 16 && (a.i = Xee(a.i)); - a.j = a.i.length; - nde(a); - f = rde(a); - if (a.d != a.j) - throw vbb(new mde(tvd((h0d(), sue)))); - if (a.g) { - for (d = 0; d < a.g.a.c.length; d++) { - e = BD(Uvb(a.g, d), 584); - if (a.f <= e.a) - throw vbb(new mde(tvd((h0d(), tue)))); - } - a.g.a.c = KC(SI, Uhe, 1, 0, 5, 1); - } - return f; - } - function _Pd(a, b) { - var c, d, e; - if (b == null) { - for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 678); - e = c.c; - if ((e == null ? c.zb : e) == null) { - return c; - } - } - } else { - for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 678); - if (dfb(b, (e = c.c, e == null ? c.zb : e))) { - return c; - } - } - } - return null; - } - function KIb(a, b) { - var c; - c = null; - switch (b.g) { - case 1: - a.e.Xe((Y9c(), o9c)) && (c = BD(a.e.We(o9c), 249)); - break; - case 3: - a.e.Xe((Y9c(), p9c)) && (c = BD(a.e.We(p9c), 249)); - break; - case 2: - a.e.Xe((Y9c(), n9c)) && (c = BD(a.e.We(n9c), 249)); - break; - case 4: - a.e.Xe((Y9c(), q9c)) && (c = BD(a.e.We(q9c), 249)); - } - !c && (c = BD(a.e.We((Y9c(), l9c)), 249)); - return c; - } - function OCc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - b.p = 1; - f = b.c; - for (l = W_b(b, (KAc(), IAc)).Kc(); l.Ob(); ) { - k = BD(l.Pb(), 11); - for (e = new olb(k.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - j = d.d.i; - if (b != j) { - g10 = j.c; - if (g10.p <= f.p) { - h = f.p + 1; - if (h == c.b.c.length) { - i10 = new H1b(c); - i10.p = h; - Ekb(c.b, i10); - $_b(j, i10); - } else { - i10 = BD(Ikb(c.b, h), 29); - $_b(j, i10); - } - OCc(a, j, c); - } - } - } - } - } - function ZXc(a, b, c) { - var d, e, f, g10, h, i10; - e = c; - f = 0; - for (h = new olb(b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 33); - jkd(g10, (ZWc(), SWc), meb(e++)); - i10 = gVc(g10); - d = $wnd.Math.atan2(g10.j + g10.f / 2, g10.i + g10.g / 2); - d += d < 0 ? dre : 0; - d < 0.7853981633974483 || d > vre ? Okb(i10, a.b) : d <= vre && d > wre ? Okb(i10, a.d) : d <= wre && d > xre ? Okb(i10, a.c) : d <= xre && Okb(i10, a.a); - f = ZXc(a, i10, f); - } - return e; - } - function Hgb() { - Hgb = ccb; - var a; - Cgb = new Ugb(1, 1); - Egb = new Ugb(1, 10); - Ggb = new Ugb(0, 0); - Bgb = new Ugb(-1, 1); - Dgb = OC(GC(cJ, 1), nie, 91, 0, [Ggb, Cgb, new Ugb(1, 2), new Ugb(1, 3), new Ugb(1, 4), new Ugb(1, 5), new Ugb(1, 6), new Ugb(1, 7), new Ugb(1, 8), new Ugb(1, 9), Egb]); - Fgb = KC(cJ, nie, 91, 32, 0, 1); - for (a = 0; a < Fgb.length; a++) { - Fgb[a] = ghb(Nbb(1, a)); - } - } - function B9b(a, b, c, d, e, f) { - var g10, h, i10, j; - h = !WAb(JAb(a.Oc(), new Xxb(new F9b()))).sd((EAb(), DAb)); - g10 = a; - f == (ead(), dad) && (g10 = JD(g10, 152) ? km(BD(g10, 152)) : JD(g10, 131) ? BD(g10, 131).a : JD(g10, 54) ? new ov(g10) : new dv(g10)); - for (j = g10.Kc(); j.Ob(); ) { - i10 = BD(j.Pb(), 70); - i10.n.a = b.a; - h ? i10.n.b = b.b + (d.b - i10.o.b) / 2 : e ? i10.n.b = b.b : i10.n.b = b.b + d.b - i10.o.b; - b.a += i10.o.a + c; - } - } - function UOc(a, b, c, d) { - var e, f, g10, h, i10, j; - e = (d.c + d.a) / 2; - Osb(b.j); - Dsb(b.j, e); - Osb(c.e); - Dsb(c.e, e); - j = new aPc(); - for (h = new olb(a.f); h.a < h.c.c.length; ) { - f = BD(mlb(h), 129); - i10 = f.a; - WOc(j, b, i10); - WOc(j, c, i10); - } - for (g10 = new olb(a.k); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 129); - i10 = f.b; - WOc(j, b, i10); - WOc(j, c, i10); - } - j.b += 2; - j.a += POc(b, a.q); - j.a += POc(a.q, c); - return j; - } - function FSc(a, b, c) { - var d, e, f, g10, h; - if (!Qq(b)) { - h = Udd(c, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0); - Odd(h, Xqe, 1); - g10 = new ISc(); - f = null; - for (e = b.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 86); - g10 = pl(OC(GC(KI, 1), Uhe, 20, 0, [g10, new ZRc(d)])); - if (f) { - yNb(f, (mTc(), hTc), d); - yNb(d, _Sc, f); - if (VRc(d) == VRc(f)) { - yNb(f, iTc, d); - yNb(d, aTc, f); - } - } - f = d; - } - Qdd(h); - FSc(a, g10, c); - } - } - function VHb(a) { - var b, c, d, e, f, g10, h; - c = a.i; - b = a.n; - h = c.d; - a.f == (EIb(), CIb) ? h += (c.a - a.e.b) / 2 : a.f == BIb && (h += c.a - a.e.b); - for (e = new olb(a.d); e.a < e.c.c.length; ) { - d = BD(mlb(e), 181); - g10 = d.rf(); - f = new d7c(); - f.b = h; - h += g10.b + a.a; - switch (a.b.g) { - case 0: - f.a = c.c + b.b; - break; - case 1: - f.a = c.c + b.b + (c.b - g10.a) / 2; - break; - case 2: - f.a = c.c + c.b - b.c - g10.a; - } - d.tf(f); - } - } - function XHb(a) { - var b, c, d, e, f, g10, h; - c = a.i; - b = a.n; - h = c.c; - a.b == (NHb(), KHb) ? h += (c.b - a.e.a) / 2 : a.b == MHb && (h += c.b - a.e.a); - for (e = new olb(a.d); e.a < e.c.c.length; ) { - d = BD(mlb(e), 181); - g10 = d.rf(); - f = new d7c(); - f.a = h; - h += g10.a + a.a; - switch (a.f.g) { - case 0: - f.b = c.d + b.d; - break; - case 1: - f.b = c.d + b.d + (c.a - g10.b) / 2; - break; - case 2: - f.b = c.d + c.a - b.a - g10.b; - } - d.tf(f); - } - } - function D4b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - k = c.a.c; - g10 = c.a.c + c.a.b; - f = BD(Ohb(c.c, b), 459); - n = f.f; - o10 = f.a; - i10 = new f7c(k, n); - l = new f7c(g10, o10); - e = k; - c.p || (e += a.c); - e += c.F + c.v * a.b; - j = new f7c(e, n); - m = new f7c(e, o10); - n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i10, j])); - h = c.d.a.gc() > 1; - if (h) { - d = new f7c(e, c.b); - Dsb(b.a, d); - } - n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l])); - } - function jdd(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Rse), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new mdd()))); - p4c(a, Rse, ame, fdd); - p4c(a, Rse, wme, 15); - p4c(a, Rse, yme, meb(0)); - p4c(a, Rse, _le, tme); - } - function hde() { - hde = ccb; - var a, b, c, d, e, f; - fde = KC(SD, wte, 25, 255, 15, 1); - gde = KC(TD, $ie, 25, 16, 15, 1); - for (b = 0; b < 255; b++) { - fde[b] = -1; - } - for (c = 57; c >= 48; c--) { - fde[c] = c - 48 << 24 >> 24; - } - for (d = 70; d >= 65; d--) { - fde[d] = d - 65 + 10 << 24 >> 24; - } - for (e = 102; e >= 97; e--) { - fde[e] = e - 97 + 10 << 24 >> 24; - } - for (f = 0; f < 10; f++) - gde[f] = 48 + f & aje; - for (a = 10; a <= 15; a++) - gde[a] = 65 + a - 10 & aje; - } - function BVc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - h = b.i - a.g / 2; - i10 = c.i - a.g / 2; - j = b.j - a.g / 2; - k = c.j - a.g / 2; - f = b.g + a.g / 2; - g10 = c.g + a.g / 2; - d = b.f + a.g / 2; - e = c.f + a.g / 2; - if (h < i10 + g10 && i10 < h && j < k + e && k < j) { - return true; - } else if (i10 < h + f && h < i10 && k < j + d && j < k) { - return true; - } else if (h < i10 + g10 && i10 < h && j < k && k < j + d) { - return true; - } else if (i10 < h + f && h < i10 && j < k + e && k < j) { - return true; - } - return false; - } - function NTb(a) { - var b, c, d, e, f; - e = BD(vNb(a, (Nyc(), Fxc)), 21); - f = BD(vNb(a, Ixc), 21); - c = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a); - b = new g7c(c); - if (e.Hc((tdd(), pdd))) { - d = BD(vNb(a, Hxc), 8); - if (f.Hc((Idd(), Bdd))) { - d.a <= 0 && (d.a = 20); - d.b <= 0 && (d.b = 20); - } - b.a = $wnd.Math.max(c.a, d.a); - b.b = $wnd.Math.max(c.b, d.b); - } - Ccb(DD(vNb(a, Gxc))) || OTb(a, c, b); - } - function NJc(a, b) { - var c, d, e, f; - for (f = V_b(b, (Ucd(), Rcd)).Kc(); f.Ob(); ) { - d = BD(f.Pb(), 11); - c = BD(vNb(d, (wtc(), gtc)), 10); - !!c && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[b.p].d), a.i[c.p].a)); - } - for (e = V_b(b, Acd).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 11); - c = BD(vNb(d, (wtc(), gtc)), 10); - !!c && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[c.p].d), a.i[b.p].a)); - } - } - function QKd(a) { - var b, c, d, e, f, g10; - if (!a.c) { - g10 = new wNd(); - b = KKd; - f = b.a.zc(a, b); - if (f == null) { - for (d = new Fyd(VKd(a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 87); - e = KQd(c); - JD(e, 88) && ytd(g10, QKd(BD(e, 26))); - wtd(g10, c); - } - b.a.Bc(a) != null; - b.a.gc() == 0 && void 0; - } - tNd(g10); - vud(g10); - a.c = new nNd((BD(qud(ZKd((NFd(), MFd).o), 15), 18), g10.i), g10.g); - $Kd(a).b &= -33; - } - return a.c; - } - function eee(a) { - var b; - if (a.c != 10) - throw vbb(new mde(tvd((h0d(), uue)))); - b = a.a; - switch (b) { - case 110: - b = 10; - break; - case 114: - b = 13; - break; - case 116: - b = 9; - break; - case 92: - case 124: - case 46: - case 94: - case 45: - case 63: - case 42: - case 43: - case 123: - case 125: - case 40: - case 41: - case 91: - case 93: - break; - default: - throw vbb(new mde(tvd((h0d(), Yue)))); - } - return b; - } - function qD(a) { - var b, c, d, e, f; - if (a.l == 0 && a.m == 0 && a.h == 0) { - return "0"; - } - if (a.h == Gje && a.m == 0 && a.l == 0) { - return "-9223372036854775808"; - } - if (a.h >> 19 != 0) { - return "-" + qD(hD(a)); - } - c = a; - d = ""; - while (!(c.l == 0 && c.m == 0 && c.h == 0)) { - e = RC(Jje); - c = UC(c, e, true); - b = "" + pD(QC); - if (!(c.l == 0 && c.m == 0 && c.h == 0)) { - f = 9 - b.length; - for (; f > 0; f--) { - b = "0" + b; - } - } - d = b + d; - } - return d; - } - function xrb() { - if (!Object.create || !Object.getOwnPropertyNames) { - return false; - } - var a = "__proto__"; - var b = /* @__PURE__ */ Object.create(null); - if (b[a] !== void 0) { - return false; - } - var c = Object.getOwnPropertyNames(b); - if (c.length != 0) { - return false; - } - b[a] = 42; - if (b[a] !== 42) { - return false; - } - if (Object.getOwnPropertyNames(b).length == 0) { - return false; - } - return true; - } - function Pgc(a) { - var b, c, d, e, f, g10, h; - b = false; - c = 0; - for (e = new olb(a.d.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - d.p = c++; - for (g10 = new olb(d.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - !b && !Qq(O_b(f)) && (b = true); - } - } - h = qqb((ead(), cad), OC(GC(t1, 1), Kie, 103, 0, [aad, bad])); - if (!b) { - rqb(h, dad); - rqb(h, _9c); - } - a.a = new mDb(h); - Uhb(a.f); - Uhb(a.b); - Uhb(a.e); - Uhb(a.g); - } - function _Xb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - d = c.c; - e = c.d; - h = A0b(b.c); - i10 = A0b(b.d); - if (d == b.c) { - h = aYb(a, h, e); - i10 = bYb(b.d); - } else { - h = bYb(b.c); - i10 = aYb(a, i10, e); - } - j = new t7c(b.a); - Gsb(j, h, j.a, j.a.a); - Gsb(j, i10, j.c.b, j.c); - g10 = b.c == d; - l = new BYb(); - for (f = 0; f < j.b - 1; ++f) { - k = new vgd(BD(Ut(j, f), 8), BD(Ut(j, f + 1), 8)); - g10 && f == 0 || !g10 && f == j.b - 2 ? l.b = k : Ekb(l.a, k); - } - return l; - } - function O$b(a, b) { - var c, d, e, f; - f = a.j.g - b.j.g; - if (f != 0) { - return f; - } - c = BD(vNb(a, (Nyc(), Wxc)), 19); - d = BD(vNb(b, Wxc), 19); - if (!!c && !!d) { - e = c.a - d.a; - if (e != 0) { - return e; - } - } - switch (a.j.g) { - case 1: - return Kdb(a.n.a, b.n.a); - case 2: - return Kdb(a.n.b, b.n.b); - case 3: - return Kdb(b.n.a, a.n.a); - case 4: - return Kdb(b.n.b, a.n.b); - default: - throw vbb(new Zdb(ine)); - } - } - function G6b(a, b, c, d) { - var e, f, g10, h, i10; - if (sr((D6b(), new Sr(ur(O_b(b).a.Kc(), new Sq())))) >= a.a) { - return -1; - } - if (!F6b(b, c)) { - return -1; - } - if (Qq(BD(d.Kb(b), 20))) { - return 1; - } - e = 0; - for (g10 = BD(d.Kb(b), 20).Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 17); - i10 = f.c.i == b ? f.d.i : f.c.i; - h = G6b(a, i10, c, d); - if (h == -1) { - return -1; - } - e = $wnd.Math.max(e, h); - if (e > a.c - 1) { - return -1; - } - } - return e + 1; - } - function Btd(a, b) { - var c, d, e, f, g10, h; - if (PD(b) === PD(a)) { - return true; - } - if (!JD(b, 15)) { - return false; - } - d = BD(b, 15); - h = a.gc(); - if (d.gc() != h) { - return false; - } - g10 = d.Kc(); - if (a.ni()) { - for (c = 0; c < h; ++c) { - e = a.ki(c); - f = g10.Pb(); - if (e == null ? f != null : !pb(e, f)) { - return false; - } - } - } else { - for (c = 0; c < h; ++c) { - e = a.ki(c); - f = g10.Pb(); - if (PD(e) !== PD(f)) { - return false; - } - } - } - return true; - } - function rAd(a, b) { - var c, d, e, f, g10, h; - if (a.f > 0) { - a.qj(); - if (b != null) { - for (f = 0; f < a.d.length; ++f) { - c = a.d[f]; - if (c) { - d = BD(c.g, 367); - h = c.i; - for (g10 = 0; g10 < h; ++g10) { - e = d[g10]; - if (pb(b, e.dd())) { - return true; - } - } - } - } - } else { - for (f = 0; f < a.d.length; ++f) { - c = a.d[f]; - if (c) { - d = BD(c.g, 367); - h = c.i; - for (g10 = 0; g10 < h; ++g10) { - e = d[g10]; - if (PD(b) === PD(e.dd())) { - return true; - } - } - } - } - } - } - return false; - } - function e6b(a, b, c) { - var d, e, f, g10; - Odd(c, "Orthogonally routing hierarchical port edges", 1); - a.a = 0; - d = h6b(b); - k6b(b, d); - j6b(a, b, d); - f6b(b); - e = BD(vNb(b, (Nyc(), Vxc)), 98); - f = b.b; - d6b((tCb(0, f.c.length), BD(f.c[0], 29)), e, b); - d6b(BD(Ikb(f, f.c.length - 1), 29), e, b); - g10 = b.b; - b6b((tCb(0, g10.c.length), BD(g10.c[0], 29))); - b6b(BD(Ikb(g10, g10.c.length - 1), 29)); - Qdd(c); - } - function jnd(a) { - switch (a) { - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: { - return a - 48 << 24 >> 24; - } - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: { - return a - 97 + 10 << 24 >> 24; - } - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: { - return a - 65 + 10 << 24 >> 24; - } - default: { - throw vbb(new Oeb("Invalid hexadecimal")); - } - } - } - function AUc(a, b, c) { - var d, e, f, g10; - Odd(c, "Processor order nodes", 2); - a.a = Edb(ED(vNb(b, (JTc(), HTc)))); - e = new Psb(); - for (g10 = Jsb(b.b, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 86); - Ccb(DD(vNb(f, (mTc(), jTc)))) && (Gsb(e, f, e.c.b, e.c), true); - } - d = (sCb(e.b != 0), BD(e.a.a.c, 86)); - yUc(a, d); - !c.b && Rdd(c, 1); - BUc(a, d, 0 - Edb(ED(vNb(d, (mTc(), bTc)))) / 2, 0); - !c.b && Rdd(c, 1); - Qdd(c); - } - function rFb() { - rFb = ccb; - qFb = new sFb("SPIRAL", 0); - lFb = new sFb("LINE_BY_LINE", 1); - mFb = new sFb("MANHATTAN", 2); - kFb = new sFb("JITTER", 3); - oFb = new sFb("QUADRANTS_LINE_BY_LINE", 4); - pFb = new sFb("QUADRANTS_MANHATTAN", 5); - nFb = new sFb("QUADRANTS_JITTER", 6); - jFb = new sFb("COMBINE_LINE_BY_LINE_MANHATTAN", 7); - iFb = new sFb("COMBINE_JITTER_MANHATTAN", 8); - } - function roc(a, b, c, d) { - var e, f, g10, h, i10, j; - i10 = woc(a, c); - j = woc(b, c); - e = false; - while (!!i10 && !!j) { - if (d || uoc(i10, j, c)) { - g10 = woc(i10, c); - h = woc(j, c); - zoc(b); - zoc(a); - f = i10.c; - sbc(i10, false); - sbc(j, false); - if (c) { - Z_b(b, j.p, f); - b.p = j.p; - Z_b(a, i10.p + 1, f); - a.p = i10.p; - } else { - Z_b(a, i10.p, f); - a.p = i10.p; - Z_b(b, j.p + 1, f); - b.p = j.p; - } - $_b(i10, null); - $_b(j, null); - i10 = g10; - j = h; - e = true; - } else { - break; - } - } - return e; - } - function VDc(a, b, c, d) { - var e, f, g10, h, i10; - e = false; - f = false; - for (h = new olb(d.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - PD(vNb(g10, (wtc(), $sc))) === PD(c) && (g10.g.c.length == 0 ? g10.e.c.length == 0 || (e = true) : f = true); - } - i10 = 0; - e && e ^ f ? i10 = c.j == (Ucd(), Acd) ? -a.e[d.c.p][d.p] : b - a.e[d.c.p][d.p] : f && e ^ f ? i10 = a.e[d.c.p][d.p] + 1 : e && f && (i10 = c.j == (Ucd(), Acd) ? 0 : b / 2); - return i10; - } - function NEd(a, b, c, d, e, f, g10, h) { - var i10, j, k; - i10 = 0; - b != null && (i10 ^= LCb(b.toLowerCase())); - c != null && (i10 ^= LCb(c)); - d != null && (i10 ^= LCb(d)); - g10 != null && (i10 ^= LCb(g10)); - h != null && (i10 ^= LCb(h)); - for (j = 0, k = f.length; j < k; j++) { - i10 ^= LCb(f[j]); - } - a ? i10 |= 256 : i10 &= -257; - e ? i10 |= 16 : i10 &= -17; - this.f = i10; - this.i = b == null ? null : (uCb(b), b); - this.a = c; - this.d = d; - this.j = f; - this.g = g10; - this.e = h; - } - function X_b(a, b, c) { - var d, e; - e = null; - switch (b.g) { - case 1: - e = (z0b(), u0b); - break; - case 2: - e = (z0b(), w0b); - } - d = null; - switch (c.g) { - case 1: - d = (z0b(), v0b); - break; - case 2: - d = (z0b(), t0b); - break; - case 3: - d = (z0b(), x0b); - break; - case 4: - d = (z0b(), y0b); - } - return !!e && !!d ? Nq(a.j, new Yb(new amb(OC(GC(_D, 1), Uhe, 169, 0, [BD(Qb(e), 169), BD(Qb(d), 169)])))) : (mmb(), mmb(), jmb); - } - function t5b(a) { - var b, c, d; - b = BD(vNb(a, (Nyc(), Hxc)), 8); - yNb(a, Hxc, new f7c(b.b, b.a)); - switch (BD(vNb(a, mwc), 248).g) { - case 1: - yNb(a, mwc, (F7c(), E7c)); - break; - case 2: - yNb(a, mwc, (F7c(), A7c)); - break; - case 3: - yNb(a, mwc, (F7c(), C7c)); - break; - case 4: - yNb(a, mwc, (F7c(), D7c)); - } - if ((!a.q ? (mmb(), mmb(), kmb) : a.q)._b(ayc)) { - c = BD(vNb(a, ayc), 8); - d = c.a; - c.a = c.b; - c.b = d; - } - } - function jjc(a, b, c, d, e, f) { - this.b = c; - this.d = e; - if (a >= b.length) { - throw vbb(new qcb("Greedy SwitchDecider: Free layer not in graph.")); - } - this.c = b[a]; - this.e = new dIc(d); - THc(this.e, this.c, (Ucd(), Tcd)); - this.i = new dIc(d); - THc(this.i, this.c, zcd); - this.f = new ejc(this.c); - this.a = !f && e.i && !e.s && this.c[0].k == (j0b(), e0b); - this.a && hjc(this, a, b.length); - } - function hKb(a, b) { - var c, d, e, f, g10, h; - f = !a.B.Hc((Idd(), zdd)); - g10 = a.B.Hc(Cdd); - a.a = new FHb(g10, f, a.c); - !!a.n && u_b(a.a.n, a.n); - lIb(a.g, (gHb(), eHb), a.a); - if (!b) { - d = new mIb(1, f, a.c); - d.n.a = a.k; - Npb(a.p, (Ucd(), Acd), d); - e = new mIb(1, f, a.c); - e.n.d = a.k; - Npb(a.p, Rcd, e); - h = new mIb(0, f, a.c); - h.n.c = a.k; - Npb(a.p, Tcd, h); - c = new mIb(0, f, a.c); - c.n.b = a.k; - Npb(a.p, zcd, c); - } - } - function Vgc(a) { - var b, c, d; - b = BD(vNb(a.d, (Nyc(), Swc)), 218); - switch (b.g) { - case 2: - c = Ngc(a); - break; - case 3: - c = (d = new Rkb(), MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Shc()), new Uhc()), new Whc()), new ehc()), new Yhc(d)), d); - break; - default: - throw vbb(new Zdb("Compaction not supported for " + b + " edges.")); - } - Ugc(a, c); - reb(new Pib(a.g), new Ehc(a)); - } - function a2c(a, b) { - var c; - c = new zNb(); - !!b && tNb(c, BD(Ohb(a.a, C2), 94)); - JD(b, 470) && tNb(c, BD(Ohb(a.a, G2), 94)); - if (JD(b, 354)) { - tNb(c, BD(Ohb(a.a, D2), 94)); - return c; - } - JD(b, 82) && tNb(c, BD(Ohb(a.a, z2), 94)); - if (JD(b, 239)) { - tNb(c, BD(Ohb(a.a, E2), 94)); - return c; - } - if (JD(b, 186)) { - tNb(c, BD(Ohb(a.a, F2), 94)); - return c; - } - JD(b, 352) && tNb(c, BD(Ohb(a.a, B2), 94)); - return c; - } - function wSb() { - wSb = ccb; - oSb = new Osd((Y9c(), D9c), meb(1)); - uSb = new Osd(T9c, 80); - tSb = new Osd(M9c, 5); - bSb = new Osd(r8c, tme); - pSb = new Osd(E9c, meb(1)); - sSb = new Osd(H9c, (Bcb(), true)); - lSb = new q0b(50); - kSb = new Osd(f9c, lSb); - dSb = O8c; - mSb = t9c; - cSb = new Osd(B8c, false); - jSb = e9c; - iSb = b9c; - hSb = Y8c; - gSb = W8c; - nSb = x9c; - fSb = (SRb(), LRb); - vSb = QRb; - eSb = KRb; - qSb = NRb; - rSb = PRb; - } - function ZXb(a) { - var b, c, d, e, f, g10, h, i10; - i10 = new jYb(); - for (h = new olb(a.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (g10.k == (j0b(), e0b)) { - continue; - } - XXb(i10, g10, new d7c()); - for (f = new Sr(ur(U_b(g10).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (e.c.i.k == e0b || e.d.i.k == e0b) { - continue; - } - for (d = Jsb(e.a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 8); - b = c; - hYb(i10, new cWb(b.a, b.b)); - } - } - } - return i10; - } - function A0c() { - A0c = ccb; - z0c = new Lsd(Qre); - y0c = (R0c(), Q0c); - x0c = new Nsd(Vre, y0c); - w0c = (a1c(), _0c); - v0c = new Nsd(Rre, w0c); - u0c = (N_c(), J_c); - t0c = new Nsd(Sre, u0c); - p0c = new Nsd(Tre, null); - s0c = (C_c(), A_c); - r0c = new Nsd(Ure, s0c); - l0c = (i_c(), h_c); - k0c = new Nsd(Wre, l0c); - m0c = new Nsd(Xre, (Bcb(), false)); - n0c = new Nsd(Yre, meb(64)); - o0c = new Nsd(Zre, true); - q0c = B_c; - } - function Toc(a) { - var b, c, d, e, f, g10; - if (a.a != null) { - return; - } - a.a = KC(sbb, dle, 25, a.c.b.c.length, 16, 1); - a.a[0] = false; - if (wNb(a.c, (Nyc(), Lyc))) { - d = BD(vNb(a.c, Lyc), 15); - for (c = d.Kc(); c.Ob(); ) { - b = BD(c.Pb(), 19).a; - b > 0 && b < a.a.length && (a.a[b] = false); - } - } else { - g10 = new olb(a.c.b); - g10.a < g10.c.c.length && mlb(g10); - e = 1; - while (g10.a < g10.c.c.length) { - f = BD(mlb(g10), 29); - a.a[e++] = Woc(f); - } - } - } - function TMd(a, b) { - var c, d, e, f; - e = a.b; - switch (b) { - case 1: { - a.b |= 1; - a.b |= 4; - a.b |= 8; - break; - } - case 2: { - a.b |= 2; - a.b |= 4; - a.b |= 8; - break; - } - case 4: { - a.b |= 1; - a.b |= 2; - a.b |= 4; - a.b |= 8; - break; - } - case 3: { - a.b |= 16; - a.b |= 8; - break; - } - case 0: { - a.b |= 32; - a.b |= 16; - a.b |= 8; - a.b |= 1; - a.b |= 2; - a.b |= 4; - break; - } - } - if (a.b != e && !!a.c) { - for (d = new Fyd(a.c); d.e != d.i.gc(); ) { - f = BD(Dyd(d), 473); - c = $Kd(f); - XMd(c, b); - } - } - } - function cGc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10; - e = false; - for (g10 = b, h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - Ccb((Bcb(), f.e ? true : false)) && !BD(Ikb(a.b, f.e.p), 214).s && (e = e | (j = f.e, k = BD(Ikb(a.b, j.p), 214), l = k.e, m = SFc(c, l.length), n = l[m][0], n.k == (j0b(), e0b) ? l[m] = aGc(f, l[m], c ? (Ucd(), Tcd) : (Ucd(), zcd)) : k.c.Tf(l, c), o10 = dGc(a, k, c, d), bGc(k.e, k.o, c), o10)); - } - return e; - } - function p2c(a, b) { - var c, d, e, f, g10; - f = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i; - for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - if (PD(hkd(d, (Y9c(), J8c))) !== PD((hbd(), gbd))) { - g10 = BD(hkd(b, F9c), 149); - c = BD(hkd(d, F9c), 149); - (g10 == c || !!g10 && C3c(g10, c)) && (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i != 0 && (f += p2c(a, d)); - } - } - return f; - } - function nlc(a) { - var b, c, d, e, f, g10, h; - d = 0; - h = 0; - for (g10 = new olb(a.d); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 101); - e = BD(GAb(JAb(new YAb(null, new Kub(f.j, 16)), new Ylc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - c = null; - if (d <= h) { - c = (Ucd(), Acd); - d += e.gc(); - } else if (h < d) { - c = (Ucd(), Rcd); - h += e.gc(); - } - b = c; - MAb(NAb(e.Oc(), new Mlc()), new Olc(b)); - } - } - function mkc(a) { - var b, c, d, e, f, g10, h, i10; - a.b = new _i(new amb((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]))), new amb((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc])))); - for (g10 = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - for (c = OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - Ui(a.b, f, b, new Rkb()); - } - } - } - function KJb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - g10 = BD(BD(Qc(a.r, b), 21), 84); - h = a.u.Hc((rcd(), pcd)); - c = a.u.Hc(mcd); - d = a.u.Hc(lcd); - j = a.u.Hc(qcd); - l = a.B.Hc((Idd(), Hdd)); - k = !c && !d && (j || g10.gc() == 2); - HJb(a, b); - e = null; - i10 = null; - if (h) { - f = g10.Kc(); - e = BD(f.Pb(), 111); - i10 = e; - while (f.Ob()) { - i10 = BD(f.Pb(), 111); - } - e.d.b = 0; - i10.d.c = 0; - k && !e.a && (e.d.c = 0); - } - if (l) { - LJb(g10); - if (h) { - e.d.b = 0; - i10.d.c = 0; - } - } - } - function SKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - g10 = BD(BD(Qc(a.r, b), 21), 84); - h = a.u.Hc((rcd(), pcd)); - c = a.u.Hc(mcd); - d = a.u.Hc(lcd); - i10 = a.u.Hc(qcd); - l = a.B.Hc((Idd(), Hdd)); - j = !c && !d && (i10 || g10.gc() == 2); - QKb(a, b); - k = null; - e = null; - if (h) { - f = g10.Kc(); - k = BD(f.Pb(), 111); - e = k; - while (f.Ob()) { - e = BD(f.Pb(), 111); - } - k.d.d = 0; - e.d.a = 0; - j && !k.a && (k.d.a = 0); - } - if (l) { - TKb(g10); - if (h) { - k.d.d = 0; - e.d.a = 0; - } - } - } - function oJc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - e = b.k; - if (b.p >= 0) { - return false; - } else { - b.p = c.b; - Ekb(c.e, b); - } - if (e == (j0b(), g0b) || e == i0b) { - for (g10 = new olb(b.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 11); - for (k = (d = new olb(new R0b(f).a.g), new U0b(d)); llb(k.a); ) { - j = BD(mlb(k.a), 17).d; - h = j.i; - i10 = h.k; - if (b.c != h.c) { - if (i10 == g0b || i10 == i0b) { - if (oJc(a, h, c)) { - return true; - } - } - } - } - } - } - return true; - } - function gJd(a) { - var b; - if ((a.Db & 64) != 0) - return EId(a); - b = new Jfb(EId(a)); - b.a += " (changeable: "; - Ffb(b, (a.Bb & zte) != 0); - b.a += ", volatile: "; - Ffb(b, (a.Bb & Dve) != 0); - b.a += ", transient: "; - Ffb(b, (a.Bb & Rje) != 0); - b.a += ", defaultValueLiteral: "; - Efb(b, a.j); - b.a += ", unsettable: "; - Ffb(b, (a.Bb & Cve) != 0); - b.a += ", derived: "; - Ffb(b, (a.Bb & oie) != 0); - b.a += ")"; - return b.a; - } - function AOb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - e = eNb(a.d); - g10 = BD(vNb(a.b, (CPb(), wPb)), 116); - h = g10.b + g10.c; - i10 = g10.d + g10.a; - k = e.d.a * a.e + h; - j = e.b.a * a.f + i10; - $Ob(a.b, new f7c(k, j)); - for (m = new olb(a.g); m.a < m.c.c.length; ) { - l = BD(mlb(m), 562); - b = l.g - e.a.a; - c = l.i - e.c.a; - d = P6c(Z6c(new f7c(b, c), l.a, l.b), Y6c(b7c(R6c(HOb(l.e)), l.d * l.a, l.c * l.b), -0.5)); - f = IOb(l.e); - KOb(l.e, c7c(d, f)); - } - } - function tmc(a, b, c, d) { - var e, f, g10, h, i10; - i10 = KC(UD, nie, 104, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 0, 2); - for (f = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), g10 = 0, h = f.length; g10 < h; ++g10) { - e = f[g10]; - i10[e.g] = KC(UD, Vje, 25, a.c[e.g], 15, 1); - } - vmc(i10, a, Acd); - vmc(i10, a, Rcd); - smc(i10, a, Acd, b, c, d); - smc(i10, a, zcd, b, c, d); - smc(i10, a, Rcd, b, c, d); - smc(i10, a, Tcd, b, c, d); - return i10; - } - function UGc(a, b, c) { - if (Mhb(a.a, b)) { - if (Rqb(BD(Ohb(a.a, b), 53), c)) { - return 1; - } - } else { - Rhb(a.a, b, new Tqb()); - } - if (Mhb(a.a, c)) { - if (Rqb(BD(Ohb(a.a, c), 53), b)) { - return -1; - } - } else { - Rhb(a.a, c, new Tqb()); - } - if (Mhb(a.b, b)) { - if (Rqb(BD(Ohb(a.b, b), 53), c)) { - return -1; - } - } else { - Rhb(a.b, b, new Tqb()); - } - if (Mhb(a.b, c)) { - if (Rqb(BD(Ohb(a.b, c), 53), b)) { - return 1; - } - } else { - Rhb(a.b, c, new Tqb()); - } - return 0; - } - function x2d(a, b, c, d) { - var e, f, g10, h, i10, j; - if (c == null) { - e = BD(a.g, 119); - for (h = 0; h < a.i; ++h) { - g10 = e[h]; - if (g10.ak() == b) { - return Txd(a, g10, d); - } - } - } - f = (Q6d(), BD(b, 66).Oj() ? BD(c, 72) : R6d(b, c)); - if (oid(a.e)) { - j = !R2d(a, b); - d = Sxd(a, f, d); - i10 = b.$j() ? H2d(a, 3, b, null, c, M2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0), j) : H2d(a, 1, b, b.zj(), c, -1, j); - d ? d.Ei(i10) : d = i10; - } else { - d = Sxd(a, f, d); - } - return d; - } - function CJb(a) { - var b, c, d, e, f, g10; - if (a.q == (dcd(), _bd) || a.q == $bd) { - return; - } - e = a.f.n.d + _Gb(BD(Mpb(a.b, (Ucd(), Acd)), 124)) + a.c; - b = a.f.n.a + _Gb(BD(Mpb(a.b, Rcd), 124)) + a.c; - d = BD(Mpb(a.b, zcd), 124); - g10 = BD(Mpb(a.b, Tcd), 124); - f = $wnd.Math.max(0, d.n.d - e); - f = $wnd.Math.max(f, g10.n.d - e); - c = $wnd.Math.max(0, d.n.a - b); - c = $wnd.Math.max(c, g10.n.a - b); - d.n.d = f; - g10.n.d = f; - d.n.a = c; - g10.n.a = c; - } - function rdc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - Odd(b, "Restoring reversed edges", 1); - for (i10 = new olb(a.b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 29); - for (k = new olb(h.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - for (m = new olb(j.j); m.a < m.c.c.length; ) { - l = BD(mlb(m), 11); - g10 = k_b(l.g); - for (d = g10, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - Ccb(DD(vNb(c, (wtc(), ltc)))) && PZb(c, false); - } - } - } - } - Qdd(b); - } - function m4c() { - this.b = new $rb(); - this.d = new $rb(); - this.e = new $rb(); - this.c = new $rb(); - this.a = new Lqb(); - this.f = new Lqb(); - hvd(m1, new x4c(), new z4c()); - hvd(l1, new V4c(), new X4c()); - hvd(i1, new Z4c(), new _4c()); - hvd(j1, new b5c(), new d5c()); - hvd(i2, new f5c(), new h5c()); - hvd(DJ, new B4c(), new D4c()); - hvd(xK, new F4c(), new H4c()); - hvd(jK, new J4c(), new L4c()); - hvd(uK, new N4c(), new P4c()); - hvd(kL, new R4c(), new T4c()); - } - function R5d(a) { - var b, c, d, e, f, g10; - f = 0; - b = wId(a); - !!b.Bj() && (f |= 4); - (a.Bb & Cve) != 0 && (f |= 2); - if (JD(a, 99)) { - c = BD(a, 18); - e = zUd(c); - (c.Bb & ote) != 0 && (f |= 32); - if (e) { - aLd(WId(e)); - f |= 8; - g10 = e.t; - (g10 > 1 || g10 == -1) && (f |= 16); - (e.Bb & ote) != 0 && (f |= 64); - } - (c.Bb & Tje) != 0 && (f |= Dve); - f |= zte; - } else { - if (JD(b, 457)) { - f |= 512; - } else { - d = b.Bj(); - !!d && (d.i & 1) != 0 && (f |= 256); - } - } - (a.Bb & 512) != 0 && (f |= 128); - return f; - } - function hc(a, b) { - var c, d, e, f, g10; - a = a == null ? Xhe : (uCb(a), a); - for (e = 0; e < b.length; e++) { - b[e] = ic(b[e]); - } - c = new Vfb(); - g10 = 0; - d = 0; - while (d < b.length) { - f = a.indexOf("%s", g10); - if (f == -1) { - break; - } - c.a += "" + qfb(a == null ? Xhe : (uCb(a), a), g10, f); - Pfb(c, b[d++]); - g10 = f + 2; - } - Ofb(c, a, g10, a.length); - if (d < b.length) { - c.a += " ["; - Pfb(c, b[d++]); - while (d < b.length) { - c.a += She; - Pfb(c, b[d++]); - } - c.a += "]"; - } - return c.a; - } - function m3b(a) { - var b, c, d, e, f; - f = new Skb(a.a.c.length); - for (e = new olb(a.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - c = BD(vNb(d, (Nyc(), mxc)), 163); - b = null; - switch (c.g) { - case 1: - case 2: - b = (Gqc(), Fqc); - break; - case 3: - case 4: - b = (Gqc(), Dqc); - } - if (b) { - yNb(d, (wtc(), Bsc), (Gqc(), Fqc)); - b == Dqc ? o3b(d, c, (KAc(), HAc)) : b == Fqc && o3b(d, c, (KAc(), IAc)); - } else { - f.c[f.c.length] = d; - } - } - return f; - } - function MHc(a, b) { - var c, d, e, f, g10, h, i10; - c = 0; - for (i10 = new olb(b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 11); - AHc(a.b, a.d[h.p]); - g10 = 0; - for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) { - d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17); - if (WHc(d)) { - f = aIc(a, h == d.c ? d.d : d.c); - if (f > a.d[h.p]) { - c += zHc(a.b, f); - Wjb(a.a, meb(f)); - } - } else { - ++g10; - } - } - c += a.b.d * g10; - while (!akb(a.a)) { - xHc(a.b, BD(fkb(a.a), 19).a); - } - } - return c; - } - function Y6d(a, b) { - var c; - if (a.f == W6d) { - c = $1d(q1d((O6d(), M6d), b)); - return a.e ? c == 4 && b != (m8d(), k8d) && b != (m8d(), h8d) && b != (m8d(), i8d) && b != (m8d(), j8d) : c == 2; - } - if (!!a.d && (a.d.Hc(b) || a.d.Hc(_1d(q1d((O6d(), M6d), b))) || a.d.Hc(e1d((O6d(), M6d), a.b, b)))) { - return true; - } - if (a.f) { - if (x1d((O6d(), a.f), b2d(q1d(M6d, b)))) { - c = $1d(q1d(M6d, b)); - return a.e ? c == 4 : c == 2; - } - } - return false; - } - function iVc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l; - g10 = BD(hkd(c, (Y9c(), C9c)), 8); - i10 = g10.a; - k = g10.b + a; - e = $wnd.Math.atan2(k, i10); - e < 0 && (e += dre); - e += b; - e > dre && (e -= dre); - h = BD(hkd(d, C9c), 8); - j = h.a; - l = h.b + a; - f = $wnd.Math.atan2(l, j); - f < 0 && (f += dre); - f += b; - f > dre && (f -= dre); - return Iy(), My(1e-10), $wnd.Math.abs(e - f) <= 1e-10 || e == f || isNaN(e) && isNaN(f) ? 0 : e < f ? -1 : e > f ? 1 : Ny(isNaN(e), isNaN(f)); - } - function YDb(a) { - var b, c, d, e, f, g10, h; - h = new Lqb(); - for (d = new olb(a.a.b); d.a < d.c.c.length; ) { - b = BD(mlb(d), 57); - Rhb(h, b, new Rkb()); - } - for (e = new olb(a.a.b); e.a < e.c.c.length; ) { - b = BD(mlb(e), 57); - b.i = Qje; - for (g10 = b.c.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 57); - BD(Wd(irb(h.f, f)), 15).Fc(b); - } - } - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - b.c.$b(); - b.c = BD(Wd(irb(h.f, b)), 15); - } - QDb(a); - } - function yVb(a) { - var b, c, d, e, f, g10, h; - h = new Lqb(); - for (d = new olb(a.a.b); d.a < d.c.c.length; ) { - b = BD(mlb(d), 81); - Rhb(h, b, new Rkb()); - } - for (e = new olb(a.a.b); e.a < e.c.c.length; ) { - b = BD(mlb(e), 81); - b.o = Qje; - for (g10 = b.f.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 81); - BD(Wd(irb(h.f, f)), 15).Fc(b); - } - } - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - b.f.$b(); - b.f = BD(Wd(irb(h.f, b)), 15); - } - rVb(a); - } - function dNb(a, b, c, d) { - var e, f; - cNb(a, b, c, d); - qNb(b, a.j - b.j + c); - rNb(b, a.k - b.k + d); - for (f = new olb(b.f); f.a < f.c.c.length; ) { - e = BD(mlb(f), 324); - switch (e.a.g) { - case 0: - nNb(a, b.g + e.b.a, 0, b.g + e.c.a, b.i - 1); - break; - case 1: - nNb(a, b.g + b.o, b.i + e.b.a, a.o - 1, b.i + e.c.a); - break; - case 2: - nNb(a, b.g + e.b.a, b.i + b.p, b.g + e.c.a, a.p - 1); - break; - default: - nNb(a, 0, b.i + e.b.a, b.g - 1, b.i + e.c.a); - } - } - } - function aNb(b, c, d, e, f) { - var g10, h, i10; - try { - if (c >= b.o) { - throw vbb(new rcb()); - } - i10 = c >> 5; - h = c & 31; - g10 = Nbb(1, Tbb(Nbb(h, 1))); - f ? b.n[d][i10] = Mbb(b.n[d][i10], g10) : b.n[d][i10] = xbb(b.n[d][i10], Lbb(g10)); - g10 = Nbb(g10, 1); - e ? b.n[d][i10] = Mbb(b.n[d][i10], g10) : b.n[d][i10] = xbb(b.n[d][i10], Lbb(g10)); - } catch (a) { - a = ubb(a); - if (JD(a, 320)) { - throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c + She + d + Fle)); - } else - throw vbb(a); - } - } - function BUc(a, b, c, d) { - var e, f, g10; - if (b) { - f = Edb(ED(vNb(b, (mTc(), fTc)))) + d; - g10 = c + Edb(ED(vNb(b, bTc))) / 2; - yNb(b, kTc, meb(Tbb(Cbb($wnd.Math.round(f))))); - yNb(b, lTc, meb(Tbb(Cbb($wnd.Math.round(g10))))); - b.d.b == 0 || BUc(a, BD(pr((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86), c + Edb(ED(vNb(b, bTc))) + a.a, d + Edb(ED(vNb(b, cTc)))); - vNb(b, iTc) != null && BUc(a, BD(vNb(b, iTc), 86), c, d); - } - } - function N9b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - i10 = Q_b(b.a); - e = Edb(ED(vNb(i10, (Nyc(), pyc)))) * 2; - k = Edb(ED(vNb(i10, wyc))); - j = $wnd.Math.max(e, k); - f = KC(UD, Vje, 25, b.f - b.c + 1, 15, 1); - d = -j; - c = 0; - for (h = b.b.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 10); - d += a.a[g10.c.p] + j; - f[c++] = d; - } - d += a.a[b.a.c.p] + j; - f[c++] = d; - for (m = new olb(b.e); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - d += a.a[l.c.p] + j; - f[c++] = d; - } - return f; - } - function GHc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - m = new Hxb(new pIc(a)); - for (h = OC(GC(OQ, 1), kne, 10, 0, [b, c]), i10 = 0, j = h.length; i10 < j; ++i10) { - g10 = h[i10]; - for (l = CHc(g10, d).Kc(); l.Ob(); ) { - k = BD(l.Pb(), 11); - for (f = new b1b(k.b); llb(f.a) || llb(f.b); ) { - e = BD(llb(f.a) ? mlb(f.a) : mlb(f.b), 17); - if (!OZb(e)) { - Iwb(m.a, k, (Bcb(), zcb)) == null; - WHc(e) && Axb(m, k == e.c ? e.d : e.c); - } - } - } - } - return Qb(m), new Tkb(m); - } - function zhd(a, b) { - var c, d, e, f; - f = BD(hkd(a, (Y9c(), A9c)), 61).g - BD(hkd(b, A9c), 61).g; - if (f != 0) { - return f; - } - c = BD(hkd(a, v9c), 19); - d = BD(hkd(b, v9c), 19); - if (!!c && !!d) { - e = c.a - d.a; - if (e != 0) { - return e; - } - } - switch (BD(hkd(a, A9c), 61).g) { - case 1: - return Kdb(a.i, b.i); - case 2: - return Kdb(a.j, b.j); - case 3: - return Kdb(b.i, a.i); - case 4: - return Kdb(b.j, a.j); - default: - throw vbb(new Zdb(ine)); - } - } - function _od(a) { - var b, c, d; - if ((a.Db & 64) != 0) - return fld(a); - b = new Wfb(ete); - c = a.k; - if (!c) { - !a.n && (a.n = new cUd(D2, a, 1, 7)); - if (a.n.i > 0) { - d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a; - !d || Qfb(Qfb((b.a += ' "', b), d), '"'); - } - } else { - Qfb(Qfb((b.a += ' "', b), c), '"'); - } - Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")"); - return b.a; - } - function opd(a) { - var b, c, d; - if ((a.Db & 64) != 0) - return fld(a); - b = new Wfb(fte); - c = a.k; - if (!c) { - !a.n && (a.n = new cUd(D2, a, 1, 7)); - if (a.n.i > 0) { - d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a; - !d || Qfb(Qfb((b.a += ' "', b), d), '"'); - } - } else { - Qfb(Qfb((b.a += ' "', b), c), '"'); - } - Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")"); - return b.a; - } - function h4c(a, b) { - var c, d, e, f, g10, h, i10; - if (b == null || b.length == 0) { - return null; - } - e = BD(Phb(a.a, b), 149); - if (!e) { - for (d = (h = new $ib(a.b).a.vc().Kc(), new djb(h)); d.a.Ob(); ) { - c = (f = BD(d.a.Pb(), 42), BD(f.dd(), 149)); - g10 = c.c; - i10 = b.length; - if (dfb(g10.substr(g10.length - i10, i10), b) && (b.length == g10.length || bfb(g10, g10.length - b.length - 1) == 46)) { - if (e) { - return null; - } - e = c; - } - } - !!e && Shb(a.a, b, e); - } - return e; - } - function QLb(a, b) { - var c, d, e, f; - c = new VLb(); - d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21); - e = d.gc(); - d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21); - f = d.gc(); - if (e < f) { - return -1; - } - if (e == f) { - return 0; - } - return 1; - } - function r5b(a) { - var b, c, d; - if (!wNb(a, (Nyc(), xxc))) { - return; - } - d = BD(vNb(a, xxc), 21); - if (d.dc()) { - return; - } - c = (b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - d.Hc((Hbd(), Cbd)) ? rqb(c, Cbd) : rqb(c, Dbd); - d.Hc(Abd) || rqb(c, Abd); - d.Hc(zbd) ? rqb(c, Gbd) : d.Hc(ybd) ? rqb(c, Fbd) : d.Hc(Bbd) && rqb(c, Ebd); - d.Hc(Gbd) ? rqb(c, zbd) : d.Hc(Fbd) ? rqb(c, ybd) : d.Hc(Ebd) && rqb(c, Bbd); - yNb(a, xxc, c); - } - function kHc(a) { - var b, c, d, e, f, g10, h; - e = BD(vNb(a, (wtc(), Psc)), 10); - d = a.j; - c = (tCb(0, d.c.length), BD(d.c[0], 11)); - for (g10 = new olb(e.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 11); - if (PD(f) === PD(vNb(c, $sc))) { - if (f.j == (Ucd(), Acd) && a.p > e.p) { - G0b(f, Rcd); - if (f.d) { - h = f.o.b; - b = f.a.b; - f.a.b = h - b; - } - } else if (f.j == Rcd && e.p > a.p) { - G0b(f, Acd); - if (f.d) { - h = f.o.b; - b = f.a.b; - f.a.b = -(h - b); - } - } - break; - } - } - return e; - } - function NOc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10; - f = c; - if (c < d) { - m = (n = new uOc(a.p), o10 = new uOc(a.p), ye(n.e, a.e), n.q = a.q, n.r = o10, lOc(n), ye(o10.j, a.j), o10.r = n, lOc(o10), new vgd(n, o10)); - l = BD(m.a, 112); - k = BD(m.b, 112); - e = (tCb(f, b.c.length), BD(b.c[f], 329)); - g10 = UOc(a, l, k, e); - for (j = c + 1; j <= d; j++) { - h = (tCb(j, b.c.length), BD(b.c[j], 329)); - i10 = UOc(a, l, k, h); - if (SOc(h, i10, e, g10)) { - e = h; - g10 = i10; - } - } - } - return f; - } - function wQb(a, b, c, d, e) { - var f, g10, h, i10, j, k, l; - if (!(JD(b, 239) || JD(b, 354) || JD(b, 186))) { - throw vbb(new Wdb("Method only works for ElkNode-, ElkLabel and ElkPort-objects.")); - } - g10 = a.a / 2; - i10 = b.i + d - g10; - k = b.j + e - g10; - j = i10 + b.g + a.a; - l = k + b.f + a.a; - f = new s7c(); - Dsb(f, new f7c(i10, k)); - Dsb(f, new f7c(i10, l)); - Dsb(f, new f7c(j, l)); - Dsb(f, new f7c(j, k)); - h = new XOb(f); - tNb(h, b); - c && Rhb(a.b, b, h); - return h; - } - function uXb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - f = new f7c(b, c); - for (k = new olb(a.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - P6c(j.n, f); - for (m = new olb(j.j); m.a < m.c.c.length; ) { - l = BD(mlb(m), 11); - for (e = new olb(l.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - q7c(d.a, f); - g10 = BD(vNb(d, (Nyc(), jxc)), 74); - !!g10 && q7c(g10, f); - for (i10 = new olb(d.b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 70); - P6c(h.n, f); - } - } - } - } - } - function g_b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - f = new f7c(b, c); - for (k = new olb(a.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - P6c(j.n, f); - for (m = new olb(j.j); m.a < m.c.c.length; ) { - l = BD(mlb(m), 11); - for (e = new olb(l.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - q7c(d.a, f); - g10 = BD(vNb(d, (Nyc(), jxc)), 74); - !!g10 && q7c(g10, f); - for (i10 = new olb(d.b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 70); - P6c(h.n, f); - } - } - } - } - } - function N1b(a) { - if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0) { - throw vbb(new z2c("Edges must have a source.")); - } else if ((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 0) { - throw vbb(new z2c("Edges must have a target.")); - } else { - !a.b && (a.b = new y5d(z2, a, 4, 7)); - if (!(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1))) { - throw vbb(new z2c("Hyperedges are not supported.")); - } - } - } - function OFc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - l = 0; - f = new jkb(); - Wjb(f, b); - while (f.b != f.c) { - i10 = BD(fkb(f), 214); - j = 0; - k = BD(vNb(b.j, (Nyc(), ywc)), 339); - g10 = Edb(ED(vNb(b.j, uwc))); - h = Edb(ED(vNb(b.j, vwc))); - if (k != (tAc(), rAc)) { - j += g10 * PFc(i10.e, k); - j += h * QFc(i10.e); - } - l += pHc(i10.d, i10.e) + j; - for (e = new olb(i10.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 37); - c = BD(Ikb(a.b, d.p), 214); - c.s || (l += NFc(a, c)); - } - } - return l; - } - function dhb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - n = b.length; - i10 = n; - BCb(0, b.length); - if (b.charCodeAt(0) == 45) { - l = -1; - m = 1; - --n; - } else { - l = 1; - m = 0; - } - f = (phb(), ohb)[10]; - e = n / f | 0; - q = n % f; - q != 0 && ++e; - h = KC(WD, oje, 25, e, 15, 1); - c = nhb[8]; - g10 = 0; - o10 = m + (q == 0 ? f : q); - for (p = m; p < i10; p = o10, o10 = p + f) { - d = Icb(b.substr(p, o10 - p), Rie, Ohe); - j = (Dhb(), Hhb(h, h, g10, c)); - j += xhb(h, g10, d); - h[g10++] = j; - } - k = g10; - a.e = l; - a.d = k; - a.a = h; - Jgb(a); - } - function SGb(a, b, c, d, e, f, g10) { - a.c = d.qf().a; - a.d = d.qf().b; - if (e) { - a.c += e.qf().a; - a.d += e.qf().b; - } - a.b = b.rf().a; - a.a = b.rf().b; - if (!e) { - c ? a.c -= g10 + b.rf().a : a.c += d.rf().a + g10; - } else { - switch (e.Hf().g) { - case 0: - case 2: - a.c += e.rf().a + g10 + f.a + g10; - break; - case 4: - a.c -= g10 + f.a + g10 + b.rf().a; - break; - case 1: - a.c += e.rf().a + g10; - a.d -= g10 + f.b + g10 + b.rf().b; - break; - case 3: - a.c += e.rf().a + g10; - a.d += e.rf().b + g10 + f.b + g10; - } - } - } - function gac(a, b) { - var c, d; - this.b = new Rkb(); - this.e = new Rkb(); - this.a = a; - this.d = b; - dac(this); - eac(this); - this.b.dc() ? this.c = a.c.p : this.c = BD(this.b.Xb(0), 10).c.p; - this.e.c.length == 0 ? this.f = a.c.p : this.f = BD(Ikb(this.e, this.e.c.length - 1), 10).c.p; - for (d = BD(vNb(a, (wtc(), ktc)), 15).Kc(); d.Ob(); ) { - c = BD(d.Pb(), 70); - if (wNb(c, (Nyc(), Owc))) { - this.d = BD(vNb(c, Owc), 227); - break; - } - } - } - function Anc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - d = BD(Ohb(a.a, b), 53); - f = BD(Ohb(a.a, c), 53); - e = BD(Ohb(a.e, b), 53); - g10 = BD(Ohb(a.e, c), 53); - d.a.zc(c, d); - g10.a.zc(b, g10); - for (k = f.a.ec().Kc(); k.Ob(); ) { - j = BD(k.Pb(), 10); - d.a.zc(j, d); - Qqb(BD(Ohb(a.e, j), 53), b); - ye(BD(Ohb(a.e, j), 53), e); - } - for (i10 = e.a.ec().Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 10); - g10.a.zc(h, g10); - Qqb(BD(Ohb(a.a, h), 53), c); - ye(BD(Ohb(a.a, h), 53), f); - } - } - function WGc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - d = BD(Ohb(a.a, b), 53); - f = BD(Ohb(a.a, c), 53); - e = BD(Ohb(a.b, b), 53); - g10 = BD(Ohb(a.b, c), 53); - d.a.zc(c, d); - g10.a.zc(b, g10); - for (k = f.a.ec().Kc(); k.Ob(); ) { - j = BD(k.Pb(), 10); - d.a.zc(j, d); - Qqb(BD(Ohb(a.b, j), 53), b); - ye(BD(Ohb(a.b, j), 53), e); - } - for (i10 = e.a.ec().Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 10); - g10.a.zc(h, g10); - Qqb(BD(Ohb(a.a, h), 53), c); - ye(BD(Ohb(a.a, h), 53), f); - } - } - function doc(a, b) { - var c, d, e; - Odd(b, "Breaking Point Insertion", 1); - d = new Xoc(a); - switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) { - case 2: - e = new hpc(); - case 0: - e = new Ync(); - break; - default: - e = new kpc(); - } - c = e.Vf(a, d); - Ccb(DD(vNb(a, Iyc))) && (c = coc(a, c)); - if (!e.Wf() && wNb(a, Myc)) { - switch (BD(vNb(a, Myc), 338).g) { - case 2: - c = tpc(d, c); - break; - case 1: - c = rpc(d, c); - } - } - if (c.dc()) { - Qdd(b); - return; - } - aoc(a, c); - Qdd(b); - } - function $qd(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - k = null; - m = b; - l = Rqd(a, dtd(c), m); - Lkd(l, _pd(m, Vte)); - g10 = Ypd(m, Lte); - d = new mrd(a, l); - oqd(d.a, d.b, g10); - h = Ypd(m, Mte); - e = new nrd(a, l); - pqd(e.a, e.b, h); - if ((!l.b && (l.b = new y5d(z2, l, 4, 7)), l.b).i == 0 || (!l.c && (l.c = new y5d(z2, l, 5, 8)), l.c).i == 0) { - f = _pd(m, Vte); - i10 = Zte + f; - j = i10 + $te; - throw vbb(new cqd(j)); - } - grd(m, l); - _qd(a, m, l); - k = crd(a, m, l); - return k; - } - function yGb(a, b) { - var c, d, e, f, g10, h, i10; - e = KC(WD, oje, 25, a.e.a.c.length, 15, 1); - for (g10 = new olb(a.e.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 121); - e[f.d] += f.b.a.c.length; - } - h = Ru(b); - while (h.b != 0) { - f = BD(h.b == 0 ? null : (sCb(h.b != 0), Nsb(h, h.a.a)), 121); - for (d = vr(new olb(f.g.a)); d.Ob(); ) { - c = BD(d.Pb(), 213); - i10 = c.e; - i10.e = $wnd.Math.max(i10.e, f.e + c.a); - --e[i10.d]; - e[i10.d] == 0 && (Gsb(h, i10, h.c.b, h.c), true); - } - } - } - function CGb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - c = Rie; - e = Ohe; - for (h = new olb(a.e.a); h.a < h.c.c.length; ) { - f = BD(mlb(h), 121); - e = $wnd.Math.min(e, f.e); - c = $wnd.Math.max(c, f.e); - } - b = KC(WD, oje, 25, c - e + 1, 15, 1); - for (g10 = new olb(a.e.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 121); - f.e -= e; - ++b[f.e]; - } - d = 0; - if (a.k != null) { - for (j = a.k, k = 0, l = j.length; k < l; ++k) { - i10 = j[k]; - b[d++] += i10; - if (b.length == d) { - break; - } - } - } - return b; - } - function ixd(a) { - switch (a.d) { - case 9: - case 8: { - return true; - } - case 3: - case 5: - case 4: - case 6: { - return false; - } - case 7: { - return BD(hxd(a), 19).a == a.o; - } - case 1: - case 2: { - if (a.o == -2) { - return false; - } else { - switch (a.p) { - case 0: - case 1: - case 2: - case 6: - case 5: - case 7: { - return Bbb(a.k, a.f); - } - case 3: - case 4: { - return a.j == a.e; - } - default: { - return a.n == null ? a.g == null : pb(a.n, a.g); - } - } - } - } - default: { - return false; - } - } - } - function $ad(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Qse), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new bbd()))); - p4c(a, Qse, ame, Xad); - p4c(a, Qse, uqe, Ksd(Yad)); - p4c(a, Qse, use, Ksd(Sad)); - p4c(a, Qse, Fme, Ksd(Tad)); - p4c(a, Qse, Tme, Ksd(Vad)); - p4c(a, Qse, bqe, Ksd(Uad)); - } - function ro(a, b, c) { - var d, e, f, g10, h; - d = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))); - h = Tbb(Ibb(Eie, keb(Tbb(Ibb(c == null ? 0 : tb(c), Fie)), 15))); - f = uo(a, b, d); - if (!!f && h == f.f && Hb(c, f.i)) { - return c; - } - g10 = vo(a, c, h); - if (g10) { - throw vbb(new Wdb("value already present: " + c)); - } - e = new $o(b, d, c, h); - if (f) { - mo(a, f); - po(a, e, f); - f.e = null; - f.c = null; - return f.i; - } else { - po(a, e, null); - to(a); - return null; - } - } - function E4b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - k = c.a.c; - g10 = c.a.c + c.a.b; - f = BD(Ohb(c.c, b), 459); - n = f.f; - o10 = f.a; - f.b ? i10 = new f7c(g10, n) : i10 = new f7c(k, n); - f.c ? l = new f7c(k, o10) : l = new f7c(g10, o10); - e = k; - c.p || (e += a.c); - e += c.F + c.v * a.b; - j = new f7c(e, n); - m = new f7c(e, o10); - n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i10, j])); - h = c.d.a.gc() > 1; - if (h) { - d = new f7c(e, c.b); - Dsb(b.a, d); - } - n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l])); - } - function Nid(a, b, c) { - var d, e, f, g10, h, i10; - if (!b) { - return null; - } else { - if (c <= -1) { - d = XKd(b.Tg(), -1 - c); - if (JD(d, 99)) { - return BD(d, 18); - } else { - g10 = BD(b.ah(d), 153); - for (h = 0, i10 = g10.gc(); h < i10; ++h) { - if (PD(g10.jl(h)) === PD(a)) { - e = g10.il(h); - if (JD(e, 99)) { - f = BD(e, 18); - if ((f.Bb & ote) != 0) { - return f; - } - } - } - } - throw vbb(new Zdb("The containment feature could not be located")); - } - } else { - return zUd(BD(XKd(a.Tg(), c), 18)); - } - } - } - function Xee(a) { - var b, c, d, e, f; - d = a.length; - b = new Ifb(); - f = 0; - while (f < d) { - c = bfb(a, f++); - if (c == 9 || c == 10 || c == 12 || c == 13 || c == 32) - continue; - if (c == 35) { - while (f < d) { - c = bfb(a, f++); - if (c == 13 || c == 10) - break; - } - continue; - } - if (c == 92 && f < d) { - if ((e = (BCb(f, a.length), a.charCodeAt(f))) == 35 || e == 9 || e == 10 || e == 12 || e == 13 || e == 32) { - Afb(b, e & aje); - ++f; - } else { - b.a += "\\"; - Afb(b, e & aje); - ++f; - } - } else - Afb(b, c & aje); - } - return b.a; - } - function GVc(a, b) { - var c, d, e; - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 33); - Rc(a.a, c, c); - Rc(a.b, c, c); - e = gVc(c); - if (e.c.length != 0) { - !!a.d && a.d.lg(e); - Rc(a.a, c, (tCb(0, e.c.length), BD(e.c[0], 33))); - Rc(a.b, c, BD(Ikb(e, e.c.length - 1), 33)); - while (dVc(e).c.length != 0) { - e = dVc(e); - !!a.d && a.d.lg(e); - Rc(a.a, c, (tCb(0, e.c.length), BD(e.c[0], 33))); - Rc(a.b, c, BD(Ikb(e, e.c.length - 1), 33)); - } - } - } - } - function fnc(a) { - var b, c, d, e, f, g10, h, i10, j, k; - c = 0; - for (h = new olb(a.d); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 101); - !!g10.i && (g10.i.c = c++); - } - b = IC(sbb, [nie, dle], [177, 25], 16, [c, c], 2); - k = a.d; - for (e = 0; e < k.c.length; e++) { - i10 = (tCb(e, k.c.length), BD(k.c[e], 101)); - if (i10.i) { - for (f = e + 1; f < k.c.length; f++) { - j = (tCb(f, k.c.length), BD(k.c[f], 101)); - if (j.i) { - d = knc(i10, j); - b[i10.i.c][j.i.c] = d; - b[j.i.c][i10.i.c] = d; - } - } - } - } - return b; - } - function ht(a, b, c, d) { - var e, f, g10; - g10 = new qu(b, c); - if (!a.a) { - a.a = a.e = g10; - Rhb(a.b, b, new pu(g10)); - ++a.c; - } else if (!d) { - a.e.b = g10; - g10.d = a.e; - a.e = g10; - e = BD(Ohb(a.b, b), 283); - if (!e) { - Rhb(a.b, b, e = new pu(g10)); - ++a.c; - } else { - ++e.a; - f = e.c; - f.c = g10; - g10.e = f; - e.c = g10; - } - } else { - e = BD(Ohb(a.b, b), 283); - ++e.a; - g10.d = d.d; - g10.e = d.e; - g10.b = d; - g10.c = d; - !d.e ? BD(Ohb(a.b, b), 283).b = g10 : d.e.c = g10; - !d.d ? a.a = g10 : d.d.b = g10; - d.d = g10; - d.e = g10; - } - ++a.d; - return g10; - } - function mfb(a, b) { - var c, d, e, f, g10, h, i10, j; - c = new RegExp(b, "g"); - i10 = KC(ZI, nie, 2, 0, 6, 1); - d = 0; - j = a; - f = null; - while (true) { - h = c.exec(j); - if (h == null || j == "") { - i10[d] = j; - break; - } else { - g10 = h.index; - i10[d] = j.substr(0, g10); - j = qfb(j, g10 + h[0].length, j.length); - c.lastIndex = 0; - if (f == j) { - i10[d] = j.substr(0, 1); - j = j.substr(1); - } - f = j; - ++d; - } - } - if (a.length > 0) { - e = i10.length; - while (e > 0 && i10[e - 1] == "") { - --e; - } - e < i10.length && (i10.length = e); - } - return i10; - } - function f1d(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - l = _Kd(b); - j = null; - e = false; - for (h = 0, k = VKd(l.a).i; h < k; ++h) { - g10 = BD(nOd(l, h, (f = BD(qud(VKd(l.a), h), 87), i10 = f.c, JD(i10, 88) ? BD(i10, 26) : (jGd(), _Fd))), 26); - c = f1d(a, g10); - if (!c.dc()) { - if (!j) { - j = c; - } else { - if (!e) { - e = true; - j = new pFd(j); - } - j.Gc(c); - } - } - } - d = k1d(a, b); - if (d.dc()) { - return !j ? (mmb(), mmb(), jmb) : j; - } else { - if (!j) { - return d; - } else { - e || (j = new pFd(j)); - j.Gc(d); - return j; - } - } - } - function g1d(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - l = _Kd(b); - j = null; - d = false; - for (h = 0, k = VKd(l.a).i; h < k; ++h) { - f = BD(nOd(l, h, (e = BD(qud(VKd(l.a), h), 87), i10 = e.c, JD(i10, 88) ? BD(i10, 26) : (jGd(), _Fd))), 26); - c = g1d(a, f); - if (!c.dc()) { - if (!j) { - j = c; - } else { - if (!d) { - d = true; - j = new pFd(j); - } - j.Gc(c); - } - } - } - g10 = n1d(a, b); - if (g10.dc()) { - return !j ? (mmb(), mmb(), jmb) : j; - } else { - if (!j) { - return g10; - } else { - d || (j = new pFd(j)); - j.Gc(g10); - return j; - } - } - } - function B2d(a, b, c) { - var d, e, f, g10, h, i10; - if (JD(b, 72)) { - return Txd(a, b, c); - } else { - h = null; - f = null; - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - e = d[g10]; - if (pb(b, e.dd())) { - f = e.ak(); - if (JD(f, 99) && (BD(f, 18).Bb & ote) != 0) { - h = e; - break; - } - } - } - if (h) { - if (oid(a.e)) { - i10 = f.$j() ? H2d(a, 4, f, b, null, M2d(a, f, b, JD(f, 99) && (BD(f, 18).Bb & Tje) != 0), true) : H2d(a, f.Kj() ? 2 : 1, f, b, f.zj(), -1, true); - c ? c.Ei(i10) : c = i10; - } - c = B2d(a, h, c); - } - return c; - } - } - function pKb(a) { - var b, c, d, e; - d = a.o; - $Jb(); - if (a.A.dc() || pb(a.A, ZJb)) { - e = d.a; - } else { - e = gIb(a.f); - if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) { - e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, (Ucd(), Acd)), 244))); - e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, Rcd), 244))); - } - b = aKb(a); - !!b && (e = $wnd.Math.max(e, b.a)); - } - Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? d.a = $wnd.Math.max(d.a, e) : d.a = e; - c = a.f.i; - c.c = 0; - c.b = e; - hIb(a.f); - } - function $0d(a, b) { - var c, d, e, f, g10, h, i10, j, k; - c = b.Hh(a.a); - if (c) { - i10 = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), "memberTypes")); - if (i10 != null) { - j = new Rkb(); - for (f = mfb(i10, "\\w"), g10 = 0, h = f.length; g10 < h; ++g10) { - e = f[g10]; - d = e.lastIndexOf("#"); - k = d == -1 ? w1d(a, b.Aj(), e) : d == 0 ? v1d(a, null, e.substr(1)) : v1d(a, e.substr(0, d), e.substr(d + 1)); - JD(k, 148) && Ekb(j, BD(k, 148)); - } - return j; - } - } - return mmb(), mmb(), jmb; - } - function tRb(a, b, c) { - var d, e, f, g10, h, i10, j, k; - Odd(c, kme, 1); - a.bf(b); - f = 0; - while (a.df(f)) { - for (k = new olb(b.e); k.a < k.c.c.length; ) { - i10 = BD(mlb(k), 144); - for (h = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [b.e, b.d, b.b]))); Qr(h); ) { - g10 = BD(Rr(h), 357); - if (g10 != i10) { - e = a.af(g10, i10); - !!e && P6c(i10.a, e); - } - } - } - for (j = new olb(b.e); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 144); - d = i10.a; - Q6c(d, -a.d, -a.d, a.d, a.d); - P6c(i10.d, d); - X6c(d); - } - a.cf(); - ++f; - } - Qdd(c); - } - function $2d(a, b, c) { - var d, e, f, g10; - g10 = S6d(a.e.Tg(), b); - d = BD(a.g, 119); - Q6d(); - if (BD(b, 66).Oj()) { - for (f = 0; f < a.i; ++f) { - e = d[f]; - if (g10.rl(e.ak())) { - if (pb(e, c)) { - Xxd(a, f); - return true; - } - } - } - } else if (c != null) { - for (f = 0; f < a.i; ++f) { - e = d[f]; - if (g10.rl(e.ak())) { - if (pb(c, e.dd())) { - Xxd(a, f); - return true; - } - } - } - } else { - for (f = 0; f < a.i; ++f) { - e = d[f]; - if (g10.rl(e.ak())) { - if (e.dd() == null) { - Xxd(a, f); - return true; - } - } - } - } - return false; - } - function sDc(a, b) { - var c, d, e, f, g10; - a.c == null || a.c.length < b.c.length ? a.c = KC(sbb, dle, 25, b.c.length, 16, 1) : Blb(a.c); - a.a = new Rkb(); - d = 0; - for (g10 = new olb(b); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 10); - e.p = d++; - } - c = new Psb(); - for (f = new olb(b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - if (!a.c[e.p]) { - tDc(a, e); - c.b == 0 || (sCb(c.b != 0), BD(c.a.a.c, 15)).gc() < a.a.c.length ? Esb(c, a.a) : Fsb(c, a.a); - a.a = new Rkb(); - } - } - return c; - } - function jYc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10; - g10 = BD(qud(b, 0), 33); - dld(g10, 0); - eld(g10, 0); - m = new Rkb(); - m.c[m.c.length] = g10; - h = g10; - f = new d$c(a.a, g10.g, g10.f, (k$c(), j$c)); - for (n = 1; n < b.i; n++) { - o10 = BD(qud(b, n), 33); - i10 = kYc(a, g$c, o10, h, f, m, c); - j = kYc(a, f$c, o10, h, f, m, c); - k = kYc(a, i$c, o10, h, f, m, c); - l = kYc(a, h$c, o10, h, f, m, c); - e = mYc(a, i10, j, k, l, o10, h, d); - dld(o10, e.d); - eld(o10, e.e); - c$c(e, j$c); - f = e; - h = o10; - m.c[m.c.length] = o10; - } - return f; - } - function K0c(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), ase), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new N0c()))); - p4c(a, ase, Qre, Ksd(I0c)); - p4c(a, ase, ame, G0c); - p4c(a, ase, wme, 8); - p4c(a, ase, Vre, Ksd(H0c)); - p4c(a, ase, Yre, Ksd(E0c)); - p4c(a, ase, Zre, Ksd(F0c)); - p4c(a, ase, Zpe, (Bcb(), false)); - } - function sXb(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n; - g10 = O6c(b.c, c, d); - for (l = new olb(b.a); l.a < l.c.c.length; ) { - k = BD(mlb(l), 10); - P6c(k.n, g10); - for (n = new olb(k.j); n.a < n.c.c.length; ) { - m = BD(mlb(n), 11); - for (f = new olb(m.g); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - q7c(e.a, g10); - h = BD(vNb(e, (Nyc(), jxc)), 74); - !!h && q7c(h, g10); - for (j = new olb(e.b); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 70); - P6c(i10.n, g10); - } - } - } - Ekb(a.a, k); - k.a = a; - } - } - function g9b(a, b) { - var c, d, e, f, g10; - Odd(b, "Node and Port Label Placement and Node Sizing", 1); - MGb((a$b(), new l$b(a, true, true, new j9b()))); - if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) { - f = BD(vNb(a, (Nyc(), Yxc)), 21); - e = f.Hc((rcd(), ocd)); - g10 = Ccb(DD(vNb(a, Zxc))); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - MAb(JAb(new YAb(null, new Kub(c.a, 16)), new l9b()), new n9b(f, e, g10)); - } - } - Qdd(b); - } - function Y0d(a, b) { - var c, d, e, f, g10, h; - c = b.Hh(a.a); - if (c) { - h = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), eue)); - if (h != null) { - e = kfb(h, wfb(35)); - d = b.Hj(); - if (e == -1) { - g10 = u1d(a, bKd(d)); - f = h; - } else if (e == 0) { - g10 = null; - f = h.substr(1); - } else { - g10 = h.substr(0, e); - f = h.substr(e + 1); - } - switch ($1d(q1d(a, b))) { - case 2: - case 3: { - return j1d(a, d, g10, f); - } - case 0: - case 4: - case 5: - case 6: { - return m1d(a, d, g10, f); - } - } - } - } - return null; - } - function q2d(a, b, c) { - var d, e, f, g10, h; - g10 = (Q6d(), BD(b, 66).Oj()); - if (T6d(a.e, b)) { - if (b.hi() && F2d(a, b, c, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) { - return false; - } - } else { - h = S6d(a.e.Tg(), b); - d = BD(a.g, 119); - for (f = 0; f < a.i; ++f) { - e = d[f]; - if (h.rl(e.ak())) { - if (g10 ? pb(e, c) : c == null ? e.dd() == null : pb(c, e.dd())) { - return false; - } else { - BD(Gtd(a, f, g10 ? BD(c, 72) : R6d(b, c)), 72); - return true; - } - } - } - } - return wtd(a, g10 ? BD(c, 72) : R6d(b, c)); - } - function uVb(a) { - var b, c, d, e, f, g10, h, i10; - if (a.d) { - throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke))); - } - a.c == (ead(), cad) && tVb(a, aad); - for (c = new olb(a.a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 189); - b.e = 0; - } - for (g10 = new olb(a.a.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 81); - f.o = Qje; - for (e = f.f.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 81); - ++d.d.e; - } - } - JVb(a); - for (i10 = new olb(a.a.b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 81); - h.k = true; - } - return a; - } - function Ijc(a, b) { - var c, d, e, f, g10, h, i10, j; - h = new pjc(a); - c = new Psb(); - Gsb(c, b, c.c.b, c.c); - while (c.b != 0) { - d = BD(c.b == 0 ? null : (sCb(c.b != 0), Nsb(c, c.a.a)), 113); - d.d.p = 1; - for (g10 = new olb(d.e); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 409); - kjc(h, e); - j = e.d; - j.d.p == 0 && (Gsb(c, j, c.c.b, c.c), true); - } - for (f = new olb(d.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 409); - kjc(h, e); - i10 = e.c; - i10.d.p == 0 && (Gsb(c, i10, c.c.b, c.c), true); - } - } - return h; - } - function hfd(a) { - var b, c, d, e, f; - d = Edb(ED(hkd(a, (Y9c(), G9c)))); - if (d == 1) { - return; - } - _kd(a, d * a.g, d * a.f); - c = Mq(Rq((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), new Hfd())); - for (f = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n), (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), c]))); Qr(f); ) { - e = BD(Rr(f), 470); - e.Gg(d * e.Dg(), d * e.Eg()); - e.Fg(d * e.Cg(), d * e.Bg()); - b = BD(e.We(r9c), 8); - if (b) { - b.a *= d; - b.b *= d; - } - } - } - function Mac(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m; - for (g10 = new olb(a.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - m = l_b(f.a); - for (j = m, k = 0, l = j.length; k < l; ++k) { - i10 = j[k]; - switch (BD(vNb(i10, (Nyc(), mxc)), 163).g) { - case 1: - Qac(i10); - $_b(i10, b); - Nac(i10, true, d); - break; - case 3: - Rac(i10); - $_b(i10, c); - Nac(i10, false, e); - } - } - } - h = new Bib(a.b, 0); - while (h.b < h.d.gc()) { - (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)).a.c.length == 0 && uib(h); - } - } - function d1d(a, b) { - var c, d, e, f, g10, h, i10; - c = b.Hh(a.a); - if (c) { - i10 = GD(AAd((!c.b && (c.b = new sId((jGd(), fGd), x6, c)), c.b), Dwe)); - if (i10 != null) { - d = new Rkb(); - for (f = mfb(i10, "\\w"), g10 = 0, h = f.length; g10 < h; ++g10) { - e = f[g10]; - dfb(e, "##other") ? Ekb(d, "!##" + u1d(a, bKd(b.Hj()))) : dfb(e, "##local") ? (d.c[d.c.length] = null, true) : dfb(e, Bwe) ? Ekb(d, u1d(a, bKd(b.Hj()))) : (d.c[d.c.length] = e, true); - } - return d; - } - } - return mmb(), mmb(), jmb; - } - function kMb(a, b) { - var c, d, e, f; - c = new pMb(); - d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21); - e = d.gc(); - d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21); - f = d.gc(); - e = e == 1 ? 1 : 0; - f = f == 1 ? 1 : 0; - if (e < f) { - return -1; - } - if (e == f) { - return 0; - } - return 1; - } - function hZb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - h = a.i; - e = Ccb(DD(vNb(h, (Nyc(), fxc)))); - k = 0; - d = 0; - for (j = new olb(a.g); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 17); - g10 = OZb(i10); - f = g10 && e && Ccb(DD(vNb(i10, gxc))); - m = i10.d.i; - g10 && f ? ++d : g10 && !f ? ++k : Q_b(m).e == h ? ++d : ++k; - } - for (c = new olb(a.e); c.a < c.c.c.length; ) { - b = BD(mlb(c), 17); - g10 = OZb(b); - f = g10 && e && Ccb(DD(vNb(b, gxc))); - l = b.c.i; - g10 && f ? ++k : g10 && !f ? ++d : Q_b(l).e == h ? ++k : ++d; - } - return k - d; - } - function ULc(a, b, c, d) { - this.e = a; - this.k = BD(vNb(a, (wtc(), otc)), 304); - this.g = KC(OQ, kne, 10, b, 0, 1); - this.b = KC(BI, nie, 333, b, 7, 1); - this.a = KC(OQ, kne, 10, b, 0, 1); - this.d = KC(BI, nie, 333, b, 7, 1); - this.j = KC(OQ, kne, 10, b, 0, 1); - this.i = KC(BI, nie, 333, b, 7, 1); - this.p = KC(BI, nie, 333, b, 7, 1); - this.n = KC(wI, nie, 476, b, 8, 1); - Alb(this.n, (Bcb(), false)); - this.f = KC(wI, nie, 476, b, 8, 1); - Alb(this.f, true); - this.o = c; - this.c = d; - } - function X9b(a, b) { - var c, d, e, f, g10, h; - if (b.dc()) { - return; - } - if (BD(b.Xb(0), 286).d == (Apc(), xpc)) { - O9b(a, b); - } else { - for (d = b.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 286); - switch (c.d.g) { - case 5: - K9b(a, c, Q9b(a, c)); - break; - case 0: - K9b(a, c, (g10 = c.f - c.c + 1, h = (g10 - 1) / 2 | 0, c.c + h)); - break; - case 4: - K9b(a, c, S9b(a, c)); - break; - case 2: - Y9b(c); - K9b(a, c, (f = U9b(c), f ? c.c : c.f)); - break; - case 1: - Y9b(c); - K9b(a, c, (e = U9b(c), e ? c.f : c.c)); - } - P9b(c.a); - } - } - } - function C4b(a, b) { - var c, d, e, f, g10, h, i10; - if (b.e) { - return; - } - b.e = true; - for (d = b.d.a.ec().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 17); - if (b.o && b.d.a.gc() <= 1) { - g10 = b.a.c; - h = b.a.c + b.a.b; - i10 = new f7c(g10 + (h - g10) / 2, b.b); - Dsb(BD(b.d.a.ec().Kc().Pb(), 17).a, i10); - continue; - } - e = BD(Ohb(b.c, c), 459); - if (e.b || e.c) { - E4b(a, c, b); - continue; - } - f = a.d == (tBc(), sBc) && (e.d || e.e) && K4b(a, b) && b.d.a.gc() <= 1; - f ? F4b(c, b) : D4b(a, c, b); - } - b.k && reb(b.d, new X4b()); - } - function zXc(a, b, c, d, e, f) { - var g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - m = f; - h = (d + e) / 2 + m; - q = c * $wnd.Math.cos(h); - r = c * $wnd.Math.sin(h); - s = q - b.g / 2; - t = r - b.f / 2; - dld(b, s); - eld(b, t); - l = a.a.jg(b); - p = 2 * $wnd.Math.acos(c / c + a.c); - if (p < e - d) { - n = p / l; - g10 = (d + e - p) / 2; - } else { - n = (e - d) / l; - g10 = d; - } - o10 = gVc(b); - if (a.e) { - a.e.kg(a.d); - a.e.lg(o10); - } - for (j = new olb(o10); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 33); - k = a.a.jg(i10); - zXc(a, i10, c + a.c, g10, g10 + n * k, f); - g10 += n * k; - } - } - function jA(a, b, c) { - var d; - d = c.q.getMonth(); - switch (b) { - case 5: - Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[d]); - break; - case 4: - Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[d]); - break; - case 3: - Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[d]); - break; - default: - EA(a, d + 1, b); - } - } - function uGb(a, b) { - var c, d, e, f, g10; - Odd(b, "Network simplex", 1); - if (a.e.a.c.length < 1) { - Qdd(b); - return; - } - for (f = new olb(a.e.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 121); - e.e = 0; - } - g10 = a.e.a.c.length >= 40; - g10 && FGb(a); - wGb(a); - vGb(a); - c = zGb(a); - d = 0; - while (!!c && d < a.f) { - tGb(a, c, sGb(a, c)); - c = zGb(a); - ++d; - } - g10 && EGb(a); - a.a ? qGb(a, CGb(a)) : CGb(a); - a.b = null; - a.d = null; - a.p = null; - a.c = null; - a.g = null; - a.i = null; - a.n = null; - a.o = null; - Qdd(b); - } - function JQb(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - i10 = new f7c(c, d); - c7c(i10, BD(vNb(b, (HSb(), ESb)), 8)); - for (m = new olb(b.e); m.a < m.c.c.length; ) { - l = BD(mlb(m), 144); - P6c(l.d, i10); - Ekb(a.e, l); - } - for (h = new olb(b.c); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 282); - for (f = new olb(g10.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 559); - P6c(e.d, i10); - } - Ekb(a.c, g10); - } - for (k = new olb(b.d); k.a < k.c.c.length; ) { - j = BD(mlb(k), 447); - P6c(j.d, i10); - Ekb(a.d, j); - } - } - function _Bc(a, b) { - var c, d, e, f, g10, h, i10, j; - for (i10 = new olb(b.j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 11); - for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) { - d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17); - c = d.c == h ? d.d : d.c; - f = c.i; - if (b == f) { - continue; - } - j = BD(vNb(d, (Nyc(), cyc)), 19).a; - j < 0 && (j = 0); - g10 = f.p; - if (a.b[g10] == 0) { - if (d.d == c) { - a.a[g10] -= j + 1; - a.a[g10] <= 0 && a.c[g10] > 0 && Dsb(a.f, f); - } else { - a.c[g10] -= j + 1; - a.c[g10] <= 0 && a.a[g10] > 0 && Dsb(a.e, f); - } - } - } - } - } - function _Kb(a) { - var b, c, d, e, f, g10, h, i10, j; - h = new Hxb(BD(Qb(new nLb()), 62)); - j = Qje; - for (c = new olb(a.d); c.a < c.c.c.length; ) { - b = BD(mlb(c), 222); - j = b.c.c; - while (h.a.c != 0) { - i10 = BD(zjb(Bwb(h.a)), 222); - if (i10.c.c + i10.c.b < j) { - Jwb(h.a, i10) != null; - } else { - break; - } - } - for (g10 = (e = new Ywb(new cxb(new Gjb(h.a).a).b), new Njb(e)); sib(g10.a.a); ) { - f = (d = Wwb(g10.a), BD(d.cd(), 222)); - Dsb(f.b, b); - Dsb(b.b, f); - } - Iwb(h.a, b, (Bcb(), zcb)) == null; - } - } - function QEc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - f = new Skb(b.c.length); - for (j = new olb(b); j.a < j.c.c.length; ) { - g10 = BD(mlb(j), 10); - Ekb(f, a.b[g10.c.p][g10.p]); - } - LEc(a, f, c); - l = null; - while (l = MEc(f)) { - NEc(a, BD(l.a, 233), BD(l.b, 233), f); - } - b.c = KC(SI, Uhe, 1, 0, 5, 1); - for (e = new olb(f); e.a < e.c.c.length; ) { - d = BD(mlb(e), 233); - for (h = d.d, i10 = 0, k = h.length; i10 < k; ++i10) { - g10 = h[i10]; - b.c[b.c.length] = g10; - a.a[g10.c.p][g10.p].a = REc(d.g, d.d[0]).a; - } - } - } - function JRc(a, b) { - var c, d, e, f; - if (0 < (JD(a, 14) ? BD(a, 14).gc() : sr(a.Kc()))) { - e = b; - if (1 < e) { - --e; - f = new KRc(); - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 86); - f = pl(OC(GC(KI, 1), Uhe, 20, 0, [f, new ZRc(c)])); - } - return JRc(f, e); - } - if (e < 0) { - f = new NRc(); - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 86); - f = pl(OC(GC(KI, 1), Uhe, 20, 0, [f, new ZRc(c)])); - } - if (0 < (JD(f, 14) ? BD(f, 14).gc() : sr(f.Kc()))) { - return JRc(f, e); - } - } - } - return BD(pr(a.Kc()), 86); - } - function Idd() { - Idd = ccb; - Bdd = new Jdd("DEFAULT_MINIMUM_SIZE", 0); - Ddd = new Jdd("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1); - Add = new Jdd("COMPUTE_PADDING", 2); - Edd = new Jdd("OUTSIDE_NODE_LABELS_OVERHANG", 3); - Fdd = new Jdd("PORTS_OVERHANG", 4); - Hdd = new Jdd("UNIFORM_PORT_SPACING", 5); - Gdd = new Jdd("SPACE_EFFICIENT_PORT_LABELS", 6); - Cdd = new Jdd("FORCE_TABULAR_NODE_LABELS", 7); - zdd = new Jdd("ASYMMETRICAL", 8); - } - function s6d(a, b) { - var c, d, e, f, g10, h, i10, j; - if (!b) { - return null; - } else { - c = (f = b.Tg(), !f ? null : bKd(f).Nh().Jh(f)); - if (c) { - Xrb(a, b, c); - e = b.Tg(); - for (i10 = 0, j = (e.i == null && TKd(e), e.i).length; i10 < j; ++i10) { - h = (d = (e.i == null && TKd(e), e.i), i10 >= 0 && i10 < d.length ? d[i10] : null); - if (h.Ij() && !h.Jj()) { - if (JD(h, 322)) { - u6d(a, BD(h, 34), b, c); - } else { - g10 = BD(h, 18); - (g10.Bb & ote) != 0 && w6d(a, g10, b, c); - } - } - } - b.kh() && BD(c, 49).vh(BD(b, 49).qh()); - } - return c; - } - } - function tGb(a, b, c) { - var d, e, f; - if (!b.f) { - throw vbb(new Wdb("Given leave edge is no tree edge.")); - } - if (c.f) { - throw vbb(new Wdb("Given enter edge is a tree edge already.")); - } - b.f = false; - Sqb(a.p, b); - c.f = true; - Qqb(a.p, c); - d = c.e.e - c.d.e - c.a; - xGb(a, c.e, b) || (d = -d); - for (f = new olb(a.e.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 121); - xGb(a, e, b) || (e.e += d); - } - a.j = 1; - Blb(a.c); - DGb(a, BD(mlb(new olb(a.e.a)), 121)); - rGb(a); - } - function x6b(a, b) { - var c, d, e, f, g10, h; - h = BD(vNb(b, (Nyc(), Vxc)), 98); - if (!(h == (dcd(), _bd) || h == $bd)) { - return; - } - e = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a).b; - for (g10 = new olb(a.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - if (f.k != (j0b(), e0b)) { - continue; - } - c = BD(vNb(f, (wtc(), Hsc)), 61); - if (c != (Ucd(), zcd) && c != Tcd) { - continue; - } - d = Edb(ED(vNb(f, htc))); - h == _bd && (d *= e); - f.n.b = d - BD(vNb(f, Txc), 8).b; - M_b(f, false, true); - } - } - function YDc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n; - bEc(a, b, c); - f = b[c]; - n = d ? (Ucd(), Tcd) : (Ucd(), zcd); - if (ZDc(b.length, c, d)) { - e = b[d ? c - 1 : c + 1]; - UDc(a, e, d ? (KAc(), IAc) : (KAc(), HAc)); - for (i10 = f, k = 0, m = i10.length; k < m; ++k) { - g10 = i10[k]; - XDc(a, g10, n); - } - UDc(a, f, d ? (KAc(), HAc) : (KAc(), IAc)); - for (h = e, j = 0, l = h.length; j < l; ++j) { - g10 = h[j]; - !!g10.e || XDc(a, g10, Wcd(n)); - } - } else { - for (h = f, j = 0, l = h.length; j < l; ++j) { - g10 = h[j]; - XDc(a, g10, n); - } - } - return false; - } - function nFc(a, b, c, d) { - var e, f, g10, h, i10, j, k; - i10 = V_b(b, c); - (c == (Ucd(), Rcd) || c == Tcd) && (i10 = JD(i10, 152) ? km(BD(i10, 152)) : JD(i10, 131) ? BD(i10, 131).a : JD(i10, 54) ? new ov(i10) : new dv(i10)); - g10 = false; - do { - e = false; - for (f = 0; f < i10.gc() - 1; f++) { - j = BD(i10.Xb(f), 11); - h = BD(i10.Xb(f + 1), 11); - if (oFc(a, j, h, d)) { - g10 = true; - cIc(a.a, BD(i10.Xb(f), 11), BD(i10.Xb(f + 1), 11)); - k = BD(i10.Xb(f + 1), 11); - i10._c(f + 1, BD(i10.Xb(f), 11)); - i10._c(f, k); - e = true; - } - } - } while (e); - return g10; - } - function W2d(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - if (oid(a.e)) { - if (b != c) { - e = BD(a.g, 119); - n = e[c]; - g10 = n.ak(); - if (T6d(a.e, g10)) { - o10 = S6d(a.e.Tg(), g10); - i10 = -1; - h = -1; - d = 0; - for (j = 0, l = b > c ? b : c; j <= l; ++j) { - if (j == c) { - h = d++; - } else { - f = e[j]; - k = o10.rl(f.ak()); - j == b && (i10 = j == l && !k ? d - 1 : d); - k && ++d; - } - } - m = BD(Wxd(a, b, c), 72); - h != i10 && GLd(a, new ESd(a.e, 7, g10, meb(h), n.dd(), i10)); - return m; - } - } - } else { - return BD(sud(a, b, c), 72); - } - return BD(Wxd(a, b, c), 72); - } - function Qcc(a, b) { - var c, d, e, f, g10, h, i10; - Odd(b, "Port order processing", 1); - i10 = BD(vNb(a, (Nyc(), _xc)), 421); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - g10 = BD(vNb(e, Vxc), 98); - h = e.j; - if (g10 == (dcd(), Zbd) || g10 == _bd || g10 == $bd) { - mmb(); - Okb(h, Icc); - } else if (g10 != bcd && g10 != ccd) { - mmb(); - Okb(h, Lcc); - Scc(h); - i10 == (BAc(), AAc) && Okb(h, Kcc); - } - e.i = true; - N_b(e); - } - } - Qdd(b); - } - function vDc(a) { - var b, c, d, e, f, g10, h, i10; - i10 = new Lqb(); - b = new KFb(); - for (g10 = a.Kc(); g10.Ob(); ) { - e = BD(g10.Pb(), 10); - h = nGb(oGb(new pGb(), e), b); - jrb(i10.f, e, h); - } - for (f = a.Kc(); f.Ob(); ) { - e = BD(f.Pb(), 10); - for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (OZb(c)) { - continue; - } - AFb(DFb(CFb(BFb(EFb(new FFb(), $wnd.Math.max(1, BD(vNb(c, (Nyc(), dyc)), 19).a)), 1), BD(Ohb(i10, c.c.i), 121)), BD(Ohb(i10, c.d.i), 121))); - } - } - return b; - } - function tNc() { - tNc = ccb; - oNc = e3c(new j3c(), (qUb(), oUb), (S8b(), k8b)); - qNc = e3c(new j3c(), nUb, o8b); - rNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b); - nNc = c3c(e3c(e3c(new j3c(), nUb, e8b), oUb, f8b), pUb, g8b); - sNc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b); - pNc = c3c(new j3c(), pUb, l8b); - lNc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b); - mNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b); - } - function XC(a, b, c, d, e, f) { - var g10, h, i10, j, k, l, m; - j = $C(b) - $C(a); - g10 = kD(b, j); - i10 = TC(0, 0, 0); - while (j >= 0) { - h = bD(a, g10); - if (h) { - j < 22 ? (i10.l |= 1 << j, void 0) : j < 44 ? (i10.m |= 1 << j - 22, void 0) : (i10.h |= 1 << j - 44, void 0); - if (a.l == 0 && a.m == 0 && a.h == 0) { - break; - } - } - k = g10.m; - l = g10.h; - m = g10.l; - g10.h = l >>> 1; - g10.m = k >>> 1 | (l & 1) << 21; - g10.l = m >>> 1 | (k & 1) << 21; - --j; - } - c && ZC(i10); - if (f) { - if (d) { - QC = hD(a); - e && (QC = nD(QC, (wD(), uD))); - } else { - QC = TC(a.l, a.m, a.h); - } - } - return i10; - } - function TDc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - j = a.e[b.c.p][b.p] + 1; - i10 = b.c.a.c.length + 1; - for (h = new olb(a.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - l = 0; - f = 0; - for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(g10), new R0b(g10)]))); Qr(e); ) { - d = BD(Rr(e), 11); - if (d.i.c == b.c) { - l += aEc(a, d.i) + 1; - ++f; - } - } - c = l / f; - k = g10.j; - k == (Ucd(), zcd) ? c < j ? a.f[g10.p] = a.c - c : a.f[g10.p] = a.b + (i10 - c) : k == Tcd && (c < j ? a.f[g10.p] = a.b + c : a.f[g10.p] = a.c - (i10 - c)); - } - } - function Icb(a, b, c) { - var d, e, f, g10, h; - if (a == null) { - throw vbb(new Oeb(Xhe)); - } - f = a.length; - g10 = f > 0 && (BCb(0, a.length), a.charCodeAt(0) == 45 || (BCb(0, a.length), a.charCodeAt(0) == 43)) ? 1 : 0; - for (d = g10; d < f; d++) { - if (Zcb((BCb(d, a.length), a.charCodeAt(d))) == -1) { - throw vbb(new Oeb(Oje + a + '"')); - } - } - h = parseInt(a, 10); - e = h < b; - if (isNaN(h)) { - throw vbb(new Oeb(Oje + a + '"')); - } else if (e || h > c) { - throw vbb(new Oeb(Oje + a + '"')); - } - return h; - } - function dnc(a) { - var b, c, d, e, f, g10, h; - g10 = new Psb(); - for (f = new olb(a.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 112); - pOc(e, e.f.c.length); - qOc(e, e.k.c.length); - if (e.i == 0) { - e.o = 0; - Gsb(g10, e, g10.c.b, g10.c); - } - } - while (g10.b != 0) { - e = BD(g10.b == 0 ? null : (sCb(g10.b != 0), Nsb(g10, g10.a.a)), 112); - d = e.o + 1; - for (c = new olb(e.f); c.a < c.c.c.length; ) { - b = BD(mlb(c), 129); - h = b.a; - rOc(h, $wnd.Math.max(h.o, d)); - qOc(h, h.i - 1); - h.i == 0 && (Gsb(g10, h, g10.c.b, g10.c), true); - } - } - } - function v2c(a) { - var b, c, d, e, f, g10, h, i10; - for (g10 = new olb(a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 79); - d = atd(BD(qud((!f.b && (f.b = new y5d(z2, f, 4, 7)), f.b), 0), 82)); - h = d.i; - i10 = d.j; - e = BD(qud((!f.a && (f.a = new cUd(A2, f, 6, 6)), f.a), 0), 202); - nmd(e, e.j + h, e.k + i10); - gmd(e, e.b + h, e.c + i10); - for (c = new Fyd((!e.a && (e.a = new xMd(y2, e, 5)), e.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 469); - ukd(b, b.a + h, b.b + i10); - } - p7c(BD(hkd(f, (Y9c(), Q8c)), 74), h, i10); - } - } - function fee(a) { - var b; - switch (a) { - case 100: - return kee(nxe, true); - case 68: - return kee(nxe, false); - case 119: - return kee(oxe, true); - case 87: - return kee(oxe, false); - case 115: - return kee(pxe, true); - case 83: - return kee(pxe, false); - case 99: - return kee(qxe, true); - case 67: - return kee(qxe, false); - case 105: - return kee(rxe, true); - case 73: - return kee(rxe, false); - default: - throw vbb(new hz((b = a, mxe + b.toString(16)))); - } - } - function $Xb(a) { - var b, c, d, e, f; - e = BD(Ikb(a.a, 0), 10); - b = new b0b(a); - Ekb(a.a, b); - b.o.a = $wnd.Math.max(1, e.o.a); - b.o.b = $wnd.Math.max(1, e.o.b); - b.n.a = e.n.a; - b.n.b = e.n.b; - switch (BD(vNb(e, (wtc(), Hsc)), 61).g) { - case 4: - b.n.a += 2; - break; - case 1: - b.n.b += 2; - break; - case 2: - b.n.a -= 2; - break; - case 3: - b.n.b -= 2; - } - d = new H0b(); - F0b(d, b); - c = new UZb(); - f = BD(Ikb(e.j, 0), 11); - QZb(c, f); - RZb(c, d); - P6c(X6c(d.n), f.n); - P6c(X6c(d.a), f.a); - return b; - } - function Fac(a, b, c, d, e) { - if (c && (!d || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.b], 10).k == (j0b(), f0b)) { - zac(BD(a.a[a.b], 10), (rbd(), nbd)); - } else if (d && (!c || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.c - 1 & a.a.length - 1], 10).k == (j0b(), f0b)) { - zac(BD(a.a[a.c - 1 & a.a.length - 1], 10), (rbd(), obd)); - } else if ((a.c - a.b & a.a.length - 1) == 2) { - zac(BD(bkb(a), 10), (rbd(), nbd)); - zac(BD(bkb(a), 10), obd); - } else { - wac(a, e); - } - Yjb(a); - } - function pRc(a, b, c) { - var d, e, f, g10, h; - f = 0; - for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - g10 = ""; - (!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n).i == 0 || (g10 = BD(qud((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n), 0), 137).a); - h = new XRc(f++, b, g10); - tNb(h, d); - yNb(h, (mTc(), dTc), d); - h.e.b = d.j + d.f / 2; - h.f.a = $wnd.Math.max(d.g, 1); - h.e.a = d.i + d.g / 2; - h.f.b = $wnd.Math.max(d.f, 1); - Dsb(b.b, h); - jrb(c.f, d, h); - } - } - function B2b(a) { - var b, c, d, e, f; - d = BD(vNb(a, (wtc(), $sc)), 33); - f = BD(hkd(d, (Nyc(), Fxc)), 174).Hc((tdd(), sdd)); - if (!a.e) { - e = BD(vNb(a, Ksc), 21); - b = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a); - if (e.Hc((Orc(), Hrc))) { - jkd(d, Vxc, (dcd(), $bd)); - Afd(d, b.a, b.b, false, true); - } else { - Ccb(DD(hkd(d, Gxc))) || Afd(d, b.a, b.b, true, true); - } - } - f ? jkd(d, Fxc, pqb(sdd)) : jkd(d, Fxc, (c = BD(gdb(I1), 9), new xqb(c, BD(_Bb(c, c.length), 9), 0))); - } - function tA(a, b, c) { - var d, e, f, g10; - if (b[0] >= a.length) { - c.o = 0; - return true; - } - switch (bfb(a, b[0])) { - case 43: - e = 1; - break; - case 45: - e = -1; - break; - default: - c.o = 0; - return true; - } - ++b[0]; - f = b[0]; - g10 = rA(a, b); - if (g10 == 0 && b[0] == f) { - return false; - } - if (b[0] < a.length && bfb(a, b[0]) == 58) { - d = g10 * 60; - ++b[0]; - f = b[0]; - g10 = rA(a, b); - if (g10 == 0 && b[0] == f) { - return false; - } - d += g10; - } else { - d = g10; - d < 24 && b[0] - f <= 2 ? d *= 60 : d = d % 100 + (d / 100 | 0) * 60; - } - d *= e; - c.o = -d; - return true; - } - function Hjc(a) { - var b, c, d, e, f, g10, h, i10, j; - g10 = new Rkb(); - for (d = new Sr(ur(U_b(a.b).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - OZb(c) && Ekb(g10, new Gjc(c, Jjc(a, c.c), Jjc(a, c.d))); - } - for (j = (f = new $ib(a.e).a.vc().Kc(), new djb(f)); j.a.Ob(); ) { - h = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113)); - h.d.p = 0; - } - for (i10 = (e = new $ib(a.e).a.vc().Kc(), new djb(e)); i10.a.Ob(); ) { - h = (b = BD(i10.a.Pb(), 42), BD(b.dd(), 113)); - h.d.p == 0 && Ekb(a.d, Ijc(a, h)); - } - } - function W1b(a) { - var b, c, d, e, f, g10, h; - f = mpd(a); - for (e = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 79); - h = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82)); - if (!ntd(h, f)) { - return true; - } - } - for (c = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 79); - g10 = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82)); - if (!ntd(g10, f)) { - return true; - } - } - return false; - } - function Dmc(a) { - var b, c, d, e, f, g10, h, i10; - i10 = new s7c(); - b = Jsb(a, 0); - h = null; - c = BD(Xsb(b), 8); - e = BD(Xsb(b), 8); - while (b.b != b.d.c) { - h = c; - c = e; - e = BD(Xsb(b), 8); - f = Emc(c7c(new f7c(h.a, h.b), c)); - g10 = Emc(c7c(new f7c(e.a, e.b), c)); - d = 10; - d = $wnd.Math.min(d, $wnd.Math.abs(f.a + f.b) / 2); - d = $wnd.Math.min(d, $wnd.Math.abs(g10.a + g10.b) / 2); - f.a = Eeb(f.a) * d; - f.b = Eeb(f.b) * d; - g10.a = Eeb(g10.a) * d; - g10.b = Eeb(g10.b) * d; - Dsb(i10, P6c(f, c)); - Dsb(i10, P6c(g10, c)); - } - return i10; - } - function _hd(a, b, c, d) { - var e, f, g10, h, i10; - g10 = a.eh(); - i10 = a.Zg(); - e = null; - if (i10) { - if (!!b && (Nid(a, b, c).Bb & Tje) == 0) { - d = Txd(i10.Vk(), a, d); - a.uh(null); - e = b.fh(); - } else { - i10 = null; - } - } else { - !!g10 && (i10 = g10.fh()); - !!b && (e = b.fh()); - } - i10 != e && !!i10 && i10.Zk(a); - h = a.Vg(); - a.Rg(b, c); - i10 != e && !!e && e.Yk(a); - if (a.Lg() && a.Mg()) { - if (!!g10 && h >= 0 && h != c) { - f = new nSd(a, 1, h, g10, null); - !d ? d = f : d.Ei(f); - } - if (c >= 0) { - f = new nSd(a, 1, c, h == c ? g10 : null, b); - !d ? d = f : d.Ei(f); - } - } - return d; - } - function LEd(a) { - var b, c, d; - if (a.b == null) { - d = new Hfb(); - if (a.i != null) { - Efb(d, a.i); - d.a += ":"; - } - if ((a.f & 256) != 0) { - if ((a.f & 256) != 0 && a.a != null) { - YEd(a.i) || (d.a += "//", d); - Efb(d, a.a); - } - if (a.d != null) { - d.a += "/"; - Efb(d, a.d); - } - (a.f & 16) != 0 && (d.a += "/", d); - for (b = 0, c = a.j.length; b < c; b++) { - b != 0 && (d.a += "/", d); - Efb(d, a.j[b]); - } - if (a.g != null) { - d.a += "?"; - Efb(d, a.g); - } - } else { - Efb(d, a.a); - } - if (a.e != null) { - d.a += "#"; - Efb(d, a.e); - } - a.b = d.a; - } - return a.b; - } - function E5b(a, b) { - var c, d, e, f, g10, h; - for (e = new olb(b.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - f = vNb(d, (wtc(), $sc)); - if (JD(f, 11)) { - g10 = BD(f, 11); - h = b_b(b, d, g10.o.a, g10.o.b); - g10.n.a = h.a; - g10.n.b = h.b; - G0b(g10, BD(vNb(d, Hsc), 61)); - } - } - c = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a); - if (BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) { - yNb(a, (Nyc(), Vxc), (dcd(), $bd)); - BD(vNb(Q_b(a), Ksc), 21).Fc(Krc); - j_b(a, c, false); - } else { - j_b(a, c, true); - } - } - function YFc(a, b, c) { - var d, e, f, g10, h, i10; - Odd(c, "Minimize Crossings " + a.a, 1); - d = b.b.c.length == 0 || !WAb(JAb(new YAb(null, new Kub(b.b, 16)), new Xxb(new xGc()))).sd((EAb(), DAb)); - i10 = b.b.c.length == 1 && BD(Ikb(b.b, 0), 29).a.c.length == 1; - f = PD(vNb(b, (Nyc(), axc))) === PD((hbd(), ebd)); - if (d || i10 && !f) { - Qdd(c); - return; - } - e = TFc(a, b); - g10 = (h = BD(Ut(e, 0), 214), h.c.Rf() ? h.c.Lf() ? new kGc(a) : new mGc(a) : new iGc(a)); - UFc(e, g10); - eGc(a); - Qdd(c); - } - function so(a, b, c, d) { - var e, f, g10, h, i10; - i10 = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))); - e = Tbb(Ibb(Eie, keb(Tbb(Ibb(c == null ? 0 : tb(c), Fie)), 15))); - h = vo(a, b, i10); - g10 = uo(a, c, e); - if (!!h && e == h.a && Hb(c, h.g)) { - return c; - } else if (!!g10 && !d) { - throw vbb(new Wdb("key already present: " + c)); - } - !!h && mo(a, h); - !!g10 && mo(a, g10); - f = new $o(c, e, b, i10); - po(a, f, g10); - if (g10) { - g10.e = null; - g10.c = null; - } - if (h) { - h.e = null; - h.c = null; - } - to(a); - return !h ? null : h.g; - } - function Lhb(a, b, c) { - var d, e, f, g10, h; - for (f = 0; f < b; f++) { - d = 0; - for (h = f + 1; h < b; h++) { - d = wbb(wbb(Ibb(xbb(a[f], Yje), xbb(a[h], Yje)), xbb(c[f + h], Yje)), xbb(Tbb(d), Yje)); - c[f + h] = Tbb(d); - d = Pbb(d, 32); - } - c[f + b] = Tbb(d); - } - khb(c, c, b << 1); - d = 0; - for (e = 0, g10 = 0; e < b; ++e, g10++) { - d = wbb(wbb(Ibb(xbb(a[e], Yje), xbb(a[e], Yje)), xbb(c[g10], Yje)), xbb(Tbb(d), Yje)); - c[g10] = Tbb(d); - d = Pbb(d, 32); - ++g10; - d = wbb(d, xbb(c[g10], Yje)); - c[g10] = Tbb(d); - d = Pbb(d, 32); - } - return c; - } - function ZJc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - if (Qq(b)) { - return; - } - i10 = Edb(ED(pBc(c.c, (Nyc(), zyc)))); - j = BD(pBc(c.c, yyc), 142); - !j && (j = new H_b()); - d = c.a; - e = null; - for (h = b.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 11); - k = 0; - if (!e) { - k = j.d; - } else { - k = i10; - k += e.o.b; - } - f = nGb(oGb(new pGb(), g10), a.f); - Rhb(a.k, g10, f); - AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(k))), d), f)); - e = g10; - d = f; - } - AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(j.a + e.o.b))), d), c.d)); - } - function uZc(a, b, c, d, e, f, g10, h) { - var i10, j, k, l, m, n; - n = false; - m = f - c.s; - k = c.t - b.f + (j = MZc(c, m, false), j.a); - if (d.g + h > m) { - return false; - } - l = (i10 = MZc(d, m, false), i10.a); - if (k + h + l <= b.b) { - KZc(c, f - c.s); - c.c = true; - KZc(d, f - c.s); - OZc(d, c.s, c.t + c.d + h); - d.k = true; - WZc(c.q, d); - n = true; - if (e) { - s$c(b, d); - d.j = b; - if (a.c.length > g10) { - v$c((tCb(g10, a.c.length), BD(a.c[g10], 200)), d); - (tCb(g10, a.c.length), BD(a.c[g10], 200)).a.c.length == 0 && Kkb(a, g10); - } - } - } - return n; - } - function kcc(a, b) { - var c, d, e, f, g10, h; - Odd(b, "Partition midprocessing", 1); - e = new Hp(); - MAb(JAb(new YAb(null, new Kub(a.a, 16)), new occ()), new qcc(e)); - if (e.d == 0) { - return; - } - h = BD(GAb(UAb((f = e.i, new YAb(null, (!f ? e.i = new zf(e, e.c) : f).Nc()))), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - d = h.Kc(); - c = BD(d.Pb(), 19); - while (d.Ob()) { - g10 = BD(d.Pb(), 19); - jcc(BD(Qc(e, c), 21), BD(Qc(e, g10), 21)); - c = g10; - } - Qdd(b); - } - function DYb(a, b, c) { - var d, e, f, g10, h, i10, j, k; - if (b.p == 0) { - b.p = 1; - g10 = c; - if (!g10) { - e = new Rkb(); - f = (d = BD(gdb(F1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0)); - g10 = new vgd(e, f); - } - BD(g10.a, 15).Fc(b); - b.k == (j0b(), e0b) && BD(g10.b, 21).Fc(BD(vNb(b, (wtc(), Hsc)), 61)); - for (i10 = new olb(b.j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 11); - for (k = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(h), new R0b(h)]))); Qr(k); ) { - j = BD(Rr(k), 11); - DYb(a, j.i, g10); - } - } - return g10; - } - return null; - } - function Dmd(a, b) { - var c, d, e, f, g10; - if (a.Ab) { - if (a.Ab) { - g10 = a.Ab.i; - if (g10 > 0) { - e = BD(a.Ab.g, 1934); - if (b == null) { - for (f = 0; f < g10; ++f) { - c = e[f]; - if (c.d == null) { - return c; - } - } - } else { - for (f = 0; f < g10; ++f) { - c = e[f]; - if (dfb(b, c.d)) { - return c; - } - } - } - } - } else { - if (b == null) { - for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 590); - if (c.d == null) { - return c; - } - } - } else { - for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 590); - if (dfb(b, c.d)) { - return c; - } - } - } - } - } - return null; - } - function gRc(a, b) { - var c, d, e, f, g10, h, i10, j; - j = DD(vNb(b, (JTc(), GTc))); - if (j == null || (uCb(j), j)) { - dRc(a, b); - e = new Rkb(); - for (i10 = Jsb(b.b, 0); i10.b != i10.d.c; ) { - g10 = BD(Xsb(i10), 86); - c = cRc(a, g10, null); - if (c) { - tNb(c, b); - e.c[e.c.length] = c; - } - } - a.a = null; - a.b = null; - if (e.c.length > 1) { - for (d = new olb(e); d.a < d.c.c.length; ) { - c = BD(mlb(d), 135); - f = 0; - for (h = Jsb(c.b, 0); h.b != h.d.c; ) { - g10 = BD(Xsb(h), 86); - g10.g = f++; - } - } - } - return e; - } - return Ou(OC(GC(n$, 1), fme, 135, 0, [b])); - } - function rqd(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, p, q, r, s, t, u, v; - n = Sqd(a, etd(b), e); - jmd(n, _pd(e, Vte)); - o = null; - p = e; - q = $pd(p, Yte); - r = new urd(n); - wqd(r.a, q); - s = $pd(p, "endPoint"); - t = new yrd(n); - yqd(t.a, s); - u = Ypd(p, Ote); - v = new Brd(n); - zqd(v.a, u); - l = _pd(e, Qte); - f = new qrd(a, n); - sqd(f.a, f.b, l); - m = _pd(e, Pte); - g10 = new rrd(a, n); - tqd(g10.a, g10.b, m); - j = Ypd(e, Ste); - h = new srd(c, n); - uqd(h.b, h.a, j); - k = Ypd(e, Rte); - i10 = new trd(d, n); - vqd(i10.b, i10.a, k); - } - function i_b(a, b, c) { - var d, e, f, g10, h; - h = null; - switch (b.g) { - case 1: - for (e = new olb(a.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 11); - if (Ccb(DD(vNb(d, (wtc(), Msc))))) { - return d; - } - } - h = new H0b(); - yNb(h, (wtc(), Msc), (Bcb(), true)); - break; - case 2: - for (g10 = new olb(a.j); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 11); - if (Ccb(DD(vNb(f, (wtc(), etc))))) { - return f; - } - } - h = new H0b(); - yNb(h, (wtc(), etc), (Bcb(), true)); - } - if (h) { - F0b(h, a); - G0b(h, c); - X$b(h.n, a.o, c); - } - return h; - } - function O3b(a, b) { - var c, d, e, f, g10, h; - h = -1; - g10 = new Psb(); - for (d = new b1b(a.b); llb(d.a) || llb(d.b); ) { - c = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17); - h = $wnd.Math.max(h, Edb(ED(vNb(c, (Nyc(), Zwc))))); - c.c == a ? MAb(JAb(new YAb(null, new Kub(c.b, 16)), new U3b()), new W3b(g10)) : MAb(JAb(new YAb(null, new Kub(c.b, 16)), new Y3b()), new $3b(g10)); - for (f = Jsb(g10, 0); f.b != f.d.c; ) { - e = BD(Xsb(f), 70); - wNb(e, (wtc(), Dsc)) || yNb(e, Dsc, c); - } - Gkb(b, g10); - Osb(g10); - } - return h; - } - function _bc(a, b, c, d, e) { - var f, g10, h, i10; - f = new b0b(a); - __b(f, (j0b(), i0b)); - yNb(f, (Nyc(), Vxc), (dcd(), $bd)); - yNb(f, (wtc(), $sc), b.c.i); - g10 = new H0b(); - yNb(g10, $sc, b.c); - G0b(g10, e); - F0b(g10, f); - yNb(b.c, gtc, f); - h = new b0b(a); - __b(h, i0b); - yNb(h, Vxc, $bd); - yNb(h, $sc, b.d.i); - i10 = new H0b(); - yNb(i10, $sc, b.d); - G0b(i10, e); - F0b(i10, h); - yNb(b.d, gtc, h); - QZb(b, g10); - RZb(b, i10); - wCb(0, c.c.length); - aCb(c.c, 0, f); - d.c[d.c.length] = h; - yNb(f, ysc, meb(1)); - yNb(h, ysc, meb(1)); - } - function BPc(a, b, c, d, e) { - var f, g10, h, i10, j; - h = e ? d.b : d.a; - if (Rqb(a.a, d)) { - return; - } - j = h > c.s && h < c.c; - i10 = false; - if (c.e.b != 0 && c.j.b != 0) { - i10 = i10 | ($wnd.Math.abs(h - Edb(ED(Hsb(c.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Hsb(c.j)))) < qme); - i10 = i10 | ($wnd.Math.abs(h - Edb(ED(Isb(c.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Isb(c.j)))) < qme); - } - if (j || i10) { - g10 = BD(vNb(b, (Nyc(), jxc)), 74); - if (!g10) { - g10 = new s7c(); - yNb(b, jxc, g10); - } - f = new g7c(d); - Gsb(g10, f, g10.c.b, g10.c); - Qqb(a.a, f); - } - } - function gNb(a, b, c, d) { - var e, f, g10, h, i10, j, k; - if (fNb(a, b, c, d)) { - return true; - } else { - for (g10 = new olb(b.f); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 324); - h = false; - i10 = a.j - b.j + c; - j = i10 + b.o; - k = a.k - b.k + d; - e = k + b.p; - switch (f.a.g) { - case 0: - h = oNb(a, i10 + f.b.a, 0, i10 + f.c.a, k - 1); - break; - case 1: - h = oNb(a, j, k + f.b.a, a.o - 1, k + f.c.a); - break; - case 2: - h = oNb(a, i10 + f.b.a, e, i10 + f.c.a, a.p - 1); - break; - default: - h = oNb(a, 0, k + f.b.a, i10 - 1, k + f.c.a); - } - if (h) { - return true; - } - } - } - return false; - } - function LMc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - for (g10 = new olb(b.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - for (j = new olb(f.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - k = new Rkb(); - h = 0; - for (d = new Sr(ur(R_b(i10).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (OZb(c) || !OZb(c) && c.c.i.c == c.d.i.c) { - continue; - } - e = BD(vNb(c, (Nyc(), eyc)), 19).a; - if (e > h) { - h = e; - k.c = KC(SI, Uhe, 1, 0, 5, 1); - } - e == h && Ekb(k, new vgd(c.c.i, c)); - } - mmb(); - Okb(k, a.c); - Dkb(a.b, i10.p, k); - } - } - } - function MMc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - for (g10 = new olb(b.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - for (j = new olb(f.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - k = new Rkb(); - h = 0; - for (d = new Sr(ur(U_b(i10).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - if (OZb(c) || !OZb(c) && c.c.i.c == c.d.i.c) { - continue; - } - e = BD(vNb(c, (Nyc(), eyc)), 19).a; - if (e > h) { - h = e; - k.c = KC(SI, Uhe, 1, 0, 5, 1); - } - e == h && Ekb(k, new vgd(c.d.i, c)); - } - mmb(); - Okb(k, a.c); - Dkb(a.f, i10.p, k); - } - } - } - function Y7c(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), qse), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new _7c()))); - p4c(a, qse, ame, U7c); - p4c(a, qse, wme, 15); - p4c(a, qse, vme, meb(0)); - p4c(a, qse, Jre, Ksd(O7c)); - p4c(a, qse, Fme, Ksd(Q7c)); - p4c(a, qse, Eme, Ksd(S7c)); - p4c(a, qse, _le, pse); - p4c(a, qse, Ame, Ksd(P7c)); - p4c(a, qse, Tme, Ksd(R7c)); - p4c(a, qse, rse, Ksd(M7c)); - p4c(a, qse, lqe, Ksd(N7c)); - } - function W$b(a, b) { - var c, d, e, f, g10, h, i10, j, k; - e = a.i; - g10 = e.o.a; - f = e.o.b; - if (g10 <= 0 && f <= 0) { - return Ucd(), Scd; - } - j = a.n.a; - k = a.n.b; - h = a.o.a; - c = a.o.b; - switch (b.g) { - case 2: - case 1: - if (j < 0) { - return Ucd(), Tcd; - } else if (j + h > g10) { - return Ucd(), zcd; - } - break; - case 4: - case 3: - if (k < 0) { - return Ucd(), Acd; - } else if (k + c > f) { - return Ucd(), Rcd; - } - } - i10 = (j + h / 2) / g10; - d = (k + c / 2) / f; - return i10 + d <= 1 && i10 - d <= 0 ? (Ucd(), Tcd) : i10 + d >= 1 && i10 - d >= 0 ? (Ucd(), zcd) : d < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd); - } - function pJc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - c = false; - k = Edb(ED(vNb(b, (Nyc(), vyc)))); - o10 = Qie * k; - for (e = new olb(b.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - j = new olb(d.a); - f = BD(mlb(j), 10); - l = xJc(a.a[f.p]); - while (j.a < j.c.c.length) { - h = BD(mlb(j), 10); - m = xJc(a.a[h.p]); - if (l != m) { - n = jBc(a.b, f, h); - g10 = f.n.b + f.o.b + f.d.a + l.a + n; - i10 = h.n.b - h.d.d + m.a; - if (g10 > i10 + o10) { - p = l.g + m.g; - m.a = (m.g * m.a + l.g * l.a) / p; - m.g = p; - l.f = m; - c = true; - } - } - f = h; - l = m; - } - } - return c; - } - function VGb(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m; - m = new I6c(); - for (j = b.Kc(); j.Ob(); ) { - h = BD(j.Pb(), 839); - for (l = new olb(h.wf()); l.a < l.c.c.length; ) { - k = BD(mlb(l), 181); - if (PD(k.We((Y9c(), C8c))) === PD((qad(), pad))) { - SGb(m, k, false, d, e, f, g10); - H6c(a, m); - } - } - } - for (i10 = c.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 839); - for (l = new olb(h.wf()); l.a < l.c.c.length; ) { - k = BD(mlb(l), 181); - if (PD(k.We((Y9c(), C8c))) === PD((qad(), oad))) { - SGb(m, k, true, d, e, f, g10); - H6c(a, m); - } - } - } - } - function oRc(a, b, c) { - var d, e, f, g10, h, i10, j; - for (g10 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); g10.e != g10.i.gc(); ) { - f = BD(Dyd(g10), 33); - for (e = new Sr(ur(_sd(f).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 79); - if (!Pld(d) && !Pld(d) && !Qld(d)) { - i10 = BD(Wd(irb(c.f, f)), 86); - j = BD(Ohb(c, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 86); - if (!!i10 && !!j) { - h = new QRc(i10, j); - yNb(h, (mTc(), dTc), d); - tNb(h, d); - Dsb(i10.d, h); - Dsb(j.b, h); - Dsb(b.a, h); - } - } - } - } - } - function QKb(a, b) { - var c, d, e, f, g10, h, i10, j; - for (i10 = BD(BD(Qc(a.r, b), 21), 84).Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 111); - e = h.c ? YHb(h.c) : 0; - if (e > 0) { - if (h.a) { - j = h.b.rf().b; - if (e > j) { - if (a.v || h.c.d.c.length == 1) { - g10 = (e - j) / 2; - h.d.d = g10; - h.d.a = g10; - } else { - c = BD(Ikb(h.c.d, 0), 181).rf().b; - d = (c - j) / 2; - h.d.d = $wnd.Math.max(0, d); - h.d.a = e - d - j; - } - } - } else { - h.d.a = a.t + e; - } - } else if (tcd(a.u)) { - f = sfd(h.b); - f.d < 0 && (h.d.d = -f.d); - f.d + f.a > h.b.rf().b && (h.d.a = f.d + f.a - h.b.rf().b); - } - } - } - function FC(a, b) { - var c; - switch (HC(a)) { - case 6: - return ND(b); - case 7: - return LD(b); - case 8: - return KD(b); - case 3: - return Array.isArray(b) && (c = HC(b), !(c >= 14 && c <= 16)); - case 11: - return b != null && typeof b === Nhe; - case 12: - return b != null && (typeof b === Jhe || typeof b == Nhe); - case 0: - return AD(b, a.__elementTypeId$); - case 2: - return OD(b) && !(b.im === gcb); - case 1: - return OD(b) && !(b.im === gcb) || AD(b, a.__elementTypeId$); - default: - return true; - } - } - function xOb(a, b) { - var c, d, e, f; - d = $wnd.Math.min($wnd.Math.abs(a.c - (b.c + b.b)), $wnd.Math.abs(a.c + a.b - b.c)); - f = $wnd.Math.min($wnd.Math.abs(a.d - (b.d + b.a)), $wnd.Math.abs(a.d + a.a - b.d)); - c = $wnd.Math.abs(a.c + a.b / 2 - (b.c + b.b / 2)); - if (c > a.b / 2 + b.b / 2) { - return 1; - } - e = $wnd.Math.abs(a.d + a.a / 2 - (b.d + b.a / 2)); - if (e > a.a / 2 + b.a / 2) { - return 1; - } - if (c == 0 && e == 0) { - return 0; - } - if (c == 0) { - return f / e + 1; - } - if (e == 0) { - return d / c + 1; - } - return $wnd.Math.min(d / c, f / e) + 1; - } - function mgb(a, b) { - var c, d, e, f, g10, h; - e = pgb(a); - h = pgb(b); - if (e == h) { - if (a.e == b.e && a.a < 54 && b.a < 54) { - return a.f < b.f ? -1 : a.f > b.f ? 1 : 0; - } - d = a.e - b.e; - c = (a.d > 0 ? a.d : $wnd.Math.floor((a.a - 1) * Xje) + 1) - (b.d > 0 ? b.d : $wnd.Math.floor((b.a - 1) * Xje) + 1); - if (c > d + 1) { - return e; - } else if (c < d - 1) { - return -e; - } else { - f = (!a.c && (a.c = fhb(a.f)), a.c); - g10 = (!b.c && (b.c = fhb(b.f)), b.c); - d < 0 ? f = Ogb(f, Khb(-d)) : d > 0 && (g10 = Ogb(g10, Khb(d))); - return Igb(f, g10); - } - } else - return e < h ? -1 : 1; - } - function mTb(a, b) { - var c, d, e, f, g10, h, i10; - f = 0; - h = 0; - i10 = 0; - for (e = new olb(a.f.e); e.a < e.c.c.length; ) { - d = BD(mlb(e), 144); - if (b == d) { - continue; - } - g10 = a.i[b.b][d.b]; - f += g10; - c = S6c(b.d, d.d); - c > 0 && a.d != (yTb(), xTb) && (h += g10 * (d.d.a + a.a[b.b][d.b] * (b.d.a - d.d.a) / c)); - c > 0 && a.d != (yTb(), vTb) && (i10 += g10 * (d.d.b + a.a[b.b][d.b] * (b.d.b - d.d.b) / c)); - } - switch (a.d.g) { - case 1: - return new f7c(h / f, b.d.b); - case 2: - return new f7c(b.d.a, i10 / f); - default: - return new f7c(h / f, i10 / f); - } - } - function Wcc(a, b) { - Occ(); - var c, d, e, f, g10; - g10 = BD(vNb(a.i, (Nyc(), Vxc)), 98); - f = a.j.g - b.j.g; - if (f != 0 || !(g10 == (dcd(), Zbd) || g10 == _bd || g10 == $bd)) { - return 0; - } - if (g10 == (dcd(), Zbd)) { - c = BD(vNb(a, Wxc), 19); - d = BD(vNb(b, Wxc), 19); - if (!!c && !!d) { - e = c.a - d.a; - if (e != 0) { - return e; - } - } - } - switch (a.j.g) { - case 1: - return Kdb(a.n.a, b.n.a); - case 2: - return Kdb(a.n.b, b.n.b); - case 3: - return Kdb(b.n.a, a.n.a); - case 4: - return Kdb(b.n.b, a.n.b); - default: - throw vbb(new Zdb(ine)); - } - } - function tfd(a) { - var b, c, d, e, f, g10; - c = (!a.a && (a.a = new xMd(y2, a, 5)), a.a).i + 2; - g10 = new Skb(c); - Ekb(g10, new f7c(a.j, a.k)); - MAb(new YAb(null, (!a.a && (a.a = new xMd(y2, a, 5)), new Kub(a.a, 16))), new Qfd(g10)); - Ekb(g10, new f7c(a.b, a.c)); - b = 1; - while (b < g10.c.length - 1) { - d = (tCb(b - 1, g10.c.length), BD(g10.c[b - 1], 8)); - e = (tCb(b, g10.c.length), BD(g10.c[b], 8)); - f = (tCb(b + 1, g10.c.length), BD(g10.c[b + 1], 8)); - d.a == e.a && e.a == f.a || d.b == e.b && e.b == f.b ? Kkb(g10, b) : ++b; - } - return g10; - } - function Xgc(a, b) { - var c, d, e, f, g10, h, i10; - c = vDb(yDb(wDb(xDb(new zDb(), b), new K6c(b.e)), Ggc), a.a); - b.j.c.length == 0 || nDb(BD(Ikb(b.j, 0), 57).a, c); - i10 = new lEb(); - Rhb(a.e, c, i10); - g10 = new Tqb(); - h = new Tqb(); - for (f = new olb(b.k); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - Qqb(g10, e.c); - Qqb(h, e.d); - } - d = g10.a.gc() - h.a.gc(); - if (d < 0) { - jEb(i10, true, (ead(), aad)); - jEb(i10, false, bad); - } else if (d > 0) { - jEb(i10, false, (ead(), aad)); - jEb(i10, true, bad); - } - Hkb(b.g, new $hc(a, c)); - Rhb(a.g, b, c); - } - function Neb() { - Neb = ccb; - var a; - Jeb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); - Keb = KC(WD, oje, 25, 37, 15, 1); - Leb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]); - Meb = KC(XD, Sje, 25, 37, 14, 1); - for (a = 2; a <= 36; a++) { - Keb[a] = QD($wnd.Math.pow(a, Jeb[a])); - Meb[a] = Abb(rie, Keb[a]); - } - } - function pfd(a) { - var b; - if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) { - throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i)); - } - b = new s7c(); - !!btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)), false)); - !!btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)), true)); - return b; - } - function _Mc(a, b) { - var c, d, e, f, g10; - b.d ? e = a.a.c == (YLc(), XLc) ? R_b(b.b) : U_b(b.b) : e = a.a.c == (YLc(), WLc) ? R_b(b.b) : U_b(b.b); - f = false; - for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - g10 = Ccb(a.a.f[a.a.g[b.b.p].p]); - if (!g10 && !OZb(c) && c.c.i.c == c.d.i.c) { - continue; - } - if (Ccb(a.a.n[a.a.g[b.b.p].p]) || Ccb(a.a.n[a.a.g[b.b.p].p])) { - continue; - } - f = true; - if (Rqb(a.b, a.a.g[TMc(c, b.b).p])) { - b.c = true; - b.a = c; - return b; - } - } - b.c = f; - b.a = null; - return b; - } - function bed(a, b, c, d, e) { - var f, g10, h, i10, j, k, l; - mmb(); - Okb(a, new Red()); - h = new Bib(a, 0); - l = new Rkb(); - f = 0; - while (h.b < h.d.gc()) { - g10 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 157)); - if (l.c.length != 0 && red(g10) * qed(g10) > f * 2) { - k = new wed(l); - j = red(g10) / qed(g10); - i10 = fed(k, b, new p0b(), c, d, e, j); - P6c(X6c(k.e), i10); - l.c = KC(SI, Uhe, 1, 0, 5, 1); - f = 0; - l.c[l.c.length] = k; - l.c[l.c.length] = g10; - f = red(k) * qed(k) + red(g10) * qed(g10); - } else { - l.c[l.c.length] = g10; - f += red(g10) * qed(g10); - } - } - return l; - } - function qwd(a, b, c) { - var d, e, f, g10, h, i10, j; - d = c.gc(); - if (d == 0) { - return false; - } else { - if (a.ej()) { - i10 = a.fj(); - zvd(a, b, c); - g10 = d == 1 ? a.Zi(3, null, c.Kc().Pb(), b, i10) : a.Zi(5, null, c, b, i10); - if (a.bj()) { - h = d < 100 ? null : new Ixd(d); - f = b + d; - for (e = b; e < f; ++e) { - j = a.Oi(e); - h = a.cj(j, h); - h = h; - } - if (!h) { - a.$i(g10); - } else { - h.Ei(g10); - h.Fi(); - } - } else { - a.$i(g10); - } - } else { - zvd(a, b, c); - if (a.bj()) { - h = d < 100 ? null : new Ixd(d); - f = b + d; - for (e = b; e < f; ++e) { - h = a.cj(a.Oi(e), h); - } - !!h && h.Fi(); - } - } - return true; - } - } - function wwd(a, b, c) { - var d, e, f, g10, h; - if (a.ej()) { - e = null; - f = a.fj(); - d = a.Zi(1, h = (g10 = a.Ui(b, a.oi(b, c)), g10), c, b, f); - if (a.bj() && !(a.ni() && !!h ? pb(h, c) : PD(h) === PD(c))) { - !!h && (e = a.dj(h, e)); - e = a.cj(c, e); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } - return h; - } else { - h = (g10 = a.Ui(b, a.oi(b, c)), g10); - if (a.bj() && !(a.ni() && !!h ? pb(h, c) : PD(h) === PD(c))) { - e = null; - !!h && (e = a.dj(h, null)); - e = a.cj(c, e); - !!e && e.Fi(); - } - return h; - } - } - function rRb(a, b) { - var c, d, e, f, g10, h, i10, j, k; - a.e = b; - a.f = BD(vNb(b, (HSb(), GSb)), 230); - iRb(b); - a.d = $wnd.Math.max(b.e.c.length * 16 + b.c.c.length, 256); - if (!Ccb(DD(vNb(b, (wSb(), dSb))))) { - k = a.e.e.c.length; - for (i10 = new olb(b.e); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 144); - j = h.d; - j.a = Aub(a.f) * k; - j.b = Aub(a.f) * k; - } - } - c = b.b; - for (f = new olb(b.c); f.a < f.c.c.length; ) { - e = BD(mlb(f), 282); - d = BD(vNb(e, rSb), 19).a; - if (d > 0) { - for (g10 = 0; g10 < d; g10++) { - Ekb(c, new aRb(e)); - } - cRb(e); - } - } - } - function zac(a, b) { - var c, d, e, f, g10, h; - if (a.k == (j0b(), f0b)) { - c = WAb(JAb(BD(vNb(a, (wtc(), ktc)), 15).Oc(), new Xxb(new Kac()))).sd((EAb(), DAb)) ? b : (rbd(), pbd); - yNb(a, Ssc, c); - if (c != (rbd(), obd)) { - d = BD(vNb(a, $sc), 17); - h = Edb(ED(vNb(d, (Nyc(), Zwc)))); - g10 = 0; - if (c == nbd) { - g10 = a.o.b - $wnd.Math.ceil(h / 2); - } else if (c == pbd) { - a.o.b -= Edb(ED(vNb(Q_b(a), nyc))); - g10 = (a.o.b - $wnd.Math.ceil(h)) / 2; - } - for (f = new olb(a.j); f.a < f.c.c.length; ) { - e = BD(mlb(f), 11); - e.n.b = g10; - } - } - } - } - function Uge() { - Uge = ccb; - g5d(); - Tge = new Vge(); - OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Xwe)])]); - OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]); - OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Zwe)]), OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]); - new Ygb("-1"); - OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge("\\c+")])]); - new Ygb("0"); - new Ygb("0"); - new Ygb("1"); - new Ygb("0"); - new Ygb(hxe); - } - function KQd(a) { - var b, c; - if (!!a.c && a.c.kh()) { - c = BD(a.c, 49); - a.c = BD(xid(a, c), 138); - if (a.c != c) { - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 2, c, a.c)); - if (JD(a.Cb, 399)) { - a.Db >> 16 == -15 && a.Cb.nh() && Rwd(new oSd(a.Cb, 9, 13, c, a.c, HLd(QSd(BD(a.Cb, 59)), a))); - } else if (JD(a.Cb, 88)) { - if (a.Db >> 16 == -23 && a.Cb.nh()) { - b = a.c; - JD(b, 88) || (b = (jGd(), _Fd)); - JD(c, 88) || (c = (jGd(), _Fd)); - Rwd(new oSd(a.Cb, 9, 10, c, b, HLd(VKd(BD(a.Cb, 26)), a))); - } - } - } - } - return a.c; - } - function f7b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - Odd(b, "Hypernodes processing", 1); - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - for (h = new olb(d.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (Ccb(DD(vNb(g10, (Nyc(), exc)))) && g10.j.c.length <= 2) { - l = 0; - k = 0; - c = 0; - f = 0; - for (j = new olb(g10.j); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 11); - switch (i10.j.g) { - case 1: - ++l; - break; - case 2: - ++k; - break; - case 3: - ++c; - break; - case 4: - ++f; - } - } - l == 0 && c == 0 && e7b(a, g10, f <= k); - } - } - } - Qdd(b); - } - function i7b(a, b) { - var c, d, e, f, g10, h, i10, j, k; - Odd(b, "Layer constraint edge reversal", 1); - for (g10 = new olb(a.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - k = -1; - c = new Rkb(); - j = l_b(f.a); - for (e = 0; e < j.length; e++) { - d = BD(vNb(j[e], (wtc(), Osc)), 303); - if (k == -1) { - d != (esc(), dsc) && (k = e); - } else { - if (d == (esc(), dsc)) { - $_b(j[e], null); - Z_b(j[e], k++, f); - } - } - d == (esc(), bsc) && Ekb(c, j[e]); - } - for (i10 = new olb(c); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - $_b(h, null); - $_b(h, f); - } - } - Qdd(b); - } - function W6b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - Odd(c, "Hyperedge merging", 1); - U6b(a, b); - i10 = new Bib(b.b, 0); - while (i10.b < i10.d.gc()) { - h = (sCb(i10.b < i10.d.gc()), BD(i10.d.Xb(i10.c = i10.b++), 29)); - k = h.a; - if (k.c.length == 0) { - continue; - } - d = null; - e = null; - f = null; - g10 = null; - for (j = 0; j < k.c.length; j++) { - d = (tCb(j, k.c.length), BD(k.c[j], 10)); - e = d.k; - if (e == (j0b(), g0b) && g10 == g0b) { - l = S6b(d, f); - if (l.a) { - V6b(d, f, l.b, l.c); - tCb(j, k.c.length); - cCb(k.c, j, 1); - --j; - d = f; - e = g10; - } - } - f = d; - g10 = e; - } - } - Qdd(c); - } - function WFc(a, b) { - var c, d, e; - d = Cub(a.d, 1) != 0; - !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc))); - dGc(a, b, d, true); - Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false)); - if (Ccb(DD(vNb(b.j, Jsc)))) { - yNb(b.j, Jsc, (Bcb(), false)); - yNb(b.j, mtc, true); - } - c = OFc(a, b); - do { - $Fc(a); - if (c == 0) { - return 0; - } - d = !d; - e = c; - dGc(a, b, d, false); - c = OFc(a, b); - } while (e > c); - return e; - } - function XFc(a, b) { - var c, d, e; - d = Cub(a.d, 1) != 0; - !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc))); - dGc(a, b, d, true); - Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false)); - if (Ccb(DD(vNb(b.j, Jsc)))) { - yNb(b.j, Jsc, (Bcb(), false)); - yNb(b.j, mtc, true); - } - c = NFc(a, b); - do { - $Fc(a); - if (c == 0) { - return 0; - } - d = !d; - e = c; - dGc(a, b, d, false); - c = NFc(a, b); - } while (e > c); - return e; - } - function uNd(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - if (b == c) { - return true; - } else { - b = vNd(a, b); - c = vNd(a, c); - d = JQd(b); - if (d) { - k = JQd(c); - if (k != d) { - if (!k) { - return false; - } else { - i10 = d.Dj(); - o10 = k.Dj(); - return i10 == o10 && i10 != null; - } - } else { - g10 = (!b.d && (b.d = new xMd(j5, b, 1)), b.d); - f = g10.i; - m = (!c.d && (c.d = new xMd(j5, c, 1)), c.d); - if (f == m.i) { - for (j = 0; j < f; ++j) { - e = BD(qud(g10, j), 87); - l = BD(qud(m, j), 87); - if (!uNd(a, e, l)) { - return false; - } - } - } - return true; - } - } else { - h = b.e; - n = c.e; - return h == n; - } - } - } - function X2d(a, b, c, d) { - var e, f, g10, h, i10, j, k, l; - if (T6d(a.e, b)) { - l = S6d(a.e.Tg(), b); - f = BD(a.g, 119); - k = null; - i10 = -1; - h = -1; - e = 0; - for (j = 0; j < a.i; ++j) { - g10 = f[j]; - if (l.rl(g10.ak())) { - e == c && (i10 = j); - if (e == d) { - h = j; - k = g10.dd(); - } - ++e; - } - } - if (i10 == -1) { - throw vbb(new qcb(lue + c + mue + e)); - } - if (h == -1) { - throw vbb(new qcb(nue + d + mue + e)); - } - Wxd(a, i10, h); - oid(a.e) && GLd(a, H2d(a, 7, b, meb(d), k, c, true)); - return k; - } else { - throw vbb(new Wdb("The feature must be many-valued to support move")); - } - } - function b_b(a, b, c, d) { - var e, f, g10, h, i10; - i10 = new g7c(b.n); - i10.a += b.o.a / 2; - i10.b += b.o.b / 2; - h = Edb(ED(vNb(b, (Nyc(), Uxc)))); - f = a.f; - g10 = a.d; - e = a.c; - switch (BD(vNb(b, (wtc(), Hsc)), 61).g) { - case 1: - i10.a += g10.b + e.a - c / 2; - i10.b = -d - h; - b.n.b = -(g10.d + h + e.b); - break; - case 2: - i10.a = f.a + g10.b + g10.c + h; - i10.b += g10.d + e.b - d / 2; - b.n.a = f.a + g10.c + h - e.a; - break; - case 3: - i10.a += g10.b + e.a - c / 2; - i10.b = f.b + g10.d + g10.a + h; - b.n.b = f.b + g10.a + h - e.b; - break; - case 4: - i10.a = -c - h; - i10.b += g10.d + e.b - d / 2; - b.n.a = -(g10.b + h + e.a); - } - return i10; - } - function P1b(a) { - var b, c, d, e, f, g10; - d = new XZb(); - tNb(d, a); - PD(vNb(d, (Nyc(), Lwc))) === PD((ead(), cad)) && yNb(d, Lwc, a_b(d)); - if (vNb(d, (g6c(), f6c)) == null) { - g10 = BD(m6d(a), 160); - yNb(d, f6c, RD(g10.We(f6c))); - } - yNb(d, (wtc(), $sc), a); - yNb(d, Ksc, (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0))); - e = OGb((!Xod(a) ? null : (Pgd(), new bhd(Xod(a))), Pgd(), new hhd(!Xod(a) ? null : new bhd(Xod(a)), a)), bad); - f = BD(vNb(d, Kxc), 116); - c = d.d; - t_b(c, f); - t_b(c, e); - return d; - } - function ybc(a, b, c) { - var d, e; - d = b.c.i; - e = c.d.i; - if (d.k == (j0b(), g0b)) { - yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)); - yNb(a, Wsc, BD(vNb(d, Wsc), 11)); - yNb(a, Usc, DD(vNb(d, Usc))); - } else if (d.k == f0b) { - yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)); - yNb(a, Wsc, BD(vNb(d, Wsc), 11)); - yNb(a, Usc, (Bcb(), true)); - } else if (e.k == f0b) { - yNb(a, (wtc(), Vsc), BD(vNb(e, Vsc), 11)); - yNb(a, Wsc, BD(vNb(e, Wsc), 11)); - yNb(a, Usc, (Bcb(), true)); - } else { - yNb(a, (wtc(), Vsc), b.c); - yNb(a, Wsc, c.d); - } - } - function FGb(a) { - var b, c, d, e, f, g10, h; - a.o = new jkb(); - d = new Psb(); - for (g10 = new olb(a.e.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 121); - LFb(f).c.length == 1 && (Gsb(d, f, d.c.b, d.c), true); - } - while (d.b != 0) { - f = BD(d.b == 0 ? null : (sCb(d.b != 0), Nsb(d, d.a.a)), 121); - if (LFb(f).c.length == 0) { - continue; - } - b = BD(Ikb(LFb(f), 0), 213); - c = f.g.a.c.length > 0; - h = xFb(b, f); - c ? OFb(h.b, b) : OFb(h.g, b); - LFb(h).c.length == 1 && (Gsb(d, h, d.c.b, d.c), true); - e = new vgd(f, b); - Wjb(a.o, e); - Lkb(a.e.a, f); - } - } - function _Nb(a, b) { - var c, d, e, f, g10, h, i10; - d = $wnd.Math.abs(D6c(a.b).a - D6c(b.b).a); - h = $wnd.Math.abs(D6c(a.b).b - D6c(b.b).b); - e = 0; - i10 = 0; - c = 1; - g10 = 1; - if (d > a.b.b / 2 + b.b.b / 2) { - e = $wnd.Math.min($wnd.Math.abs(a.b.c - (b.b.c + b.b.b)), $wnd.Math.abs(a.b.c + a.b.b - b.b.c)); - c = 1 - e / d; - } - if (h > a.b.a / 2 + b.b.a / 2) { - i10 = $wnd.Math.min($wnd.Math.abs(a.b.d - (b.b.d + b.b.a)), $wnd.Math.abs(a.b.d + a.b.a - b.b.d)); - g10 = 1 - i10 / h; - } - f = $wnd.Math.min(c, g10); - return (1 - f) * $wnd.Math.sqrt(d * d + h * h); - } - function lQc(a) { - var b, c, d, e; - nQc(a, a.e, a.f, (FQc(), DQc), true, a.c, a.i); - nQc(a, a.e, a.f, DQc, false, a.c, a.i); - nQc(a, a.e, a.f, EQc, true, a.c, a.i); - nQc(a, a.e, a.f, EQc, false, a.c, a.i); - mQc(a, a.c, a.e, a.f, a.i); - d = new Bib(a.i, 0); - while (d.b < d.d.gc()) { - b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 128)); - e = new Bib(a.i, d.b); - while (e.b < e.d.gc()) { - c = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 128)); - kQc(b, c); - } - } - wQc(a.i, BD(vNb(a.d, (wtc(), jtc)), 230)); - zQc(a.i); - } - function fKd(a, b) { - var c, d; - if (b != null) { - d = dKd(a); - if (d) { - if ((d.i & 1) != 0) { - if (d == sbb) { - return KD(b); - } else if (d == WD) { - return JD(b, 19); - } else if (d == VD) { - return JD(b, 155); - } else if (d == SD) { - return JD(b, 217); - } else if (d == TD) { - return JD(b, 172); - } else if (d == UD) { - return LD(b); - } else if (d == rbb) { - return JD(b, 184); - } else if (d == XD) { - return JD(b, 162); - } - } else { - return pEd(), c = BD(Ohb(oEd, d), 55), !c || c.wj(b); - } - } else if (JD(b, 56)) { - return a.uk(BD(b, 56)); - } - } - return false; - } - function ade() { - ade = ccb; - var a, b, c, d, e, f, g10, h, i10; - $ce = KC(SD, wte, 25, 255, 15, 1); - _ce = KC(TD, $ie, 25, 64, 15, 1); - for (b = 0; b < 255; b++) { - $ce[b] = -1; - } - for (c = 90; c >= 65; c--) { - $ce[c] = c - 65 << 24 >> 24; - } - for (d = 122; d >= 97; d--) { - $ce[d] = d - 97 + 26 << 24 >> 24; - } - for (e = 57; e >= 48; e--) { - $ce[e] = e - 48 + 52 << 24 >> 24; - } - $ce[43] = 62; - $ce[47] = 63; - for (f = 0; f <= 25; f++) - _ce[f] = 65 + f & aje; - for (g10 = 26, i10 = 0; g10 <= 51; ++g10, i10++) - _ce[g10] = 97 + i10 & aje; - for (a = 52, h = 0; a <= 61; ++a, h++) - _ce[a] = 48 + h & aje; - _ce[62] = 43; - _ce[63] = 47; - } - function FXb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - if (a.dc()) { - return new d7c(); - } - j = 0; - l = 0; - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 37); - f = d.f; - j = $wnd.Math.max(j, f.a); - l += f.a * f.b; - } - j = $wnd.Math.max(j, $wnd.Math.sqrt(l) * Edb(ED(vNb(BD(a.Kc().Pb(), 37), (Nyc(), owc))))); - m = 0; - n = 0; - i10 = 0; - c = b; - for (h = a.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 37); - k = g10.f; - if (m + k.a > j) { - m = 0; - n += i10 + b; - i10 = 0; - } - uXb(g10, m, n); - c = $wnd.Math.max(c, m + k.a); - i10 = $wnd.Math.max(i10, k.b); - m += k.a + b; - } - return new f7c(c + b, n + i10 + b); - } - function mQc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l; - for (g10 = new olb(b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - i10 = f.c; - if (c.a._b(i10)) { - j = (FQc(), DQc); - } else if (d.a._b(i10)) { - j = (FQc(), EQc); - } else { - throw vbb(new Wdb("Source port must be in one of the port sets.")); - } - k = f.d; - if (c.a._b(k)) { - l = (FQc(), DQc); - } else if (d.a._b(k)) { - l = (FQc(), EQc); - } else { - throw vbb(new Wdb("Target port must be in one of the port sets.")); - } - h = new YQc(f, j, l); - Rhb(a.b, f, h); - e.c[e.c.length] = h; - } - } - function lfd(a, b) { - var c, d, e, f, g10, h, i10; - if (!mpd(a)) { - throw vbb(new Zdb(Sse)); - } - d = mpd(a); - f = d.g; - e = d.f; - if (f <= 0 && e <= 0) { - return Ucd(), Scd; - } - h = a.i; - i10 = a.j; - switch (b.g) { - case 2: - case 1: - if (h < 0) { - return Ucd(), Tcd; - } else if (h + a.g > f) { - return Ucd(), zcd; - } - break; - case 4: - case 3: - if (i10 < 0) { - return Ucd(), Acd; - } else if (i10 + a.f > e) { - return Ucd(), Rcd; - } - } - g10 = (h + a.g / 2) / f; - c = (i10 + a.f / 2) / e; - return g10 + c <= 1 && g10 - c <= 0 ? (Ucd(), Tcd) : g10 + c >= 1 && g10 - c >= 0 ? (Ucd(), zcd) : c < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd); - } - function vhb(a, b, c, d, e) { - var f, g10; - f = wbb(xbb(b[0], Yje), xbb(d[0], Yje)); - a[0] = Tbb(f); - f = Obb(f, 32); - if (c >= e) { - for (g10 = 1; g10 < e; g10++) { - f = wbb(f, wbb(xbb(b[g10], Yje), xbb(d[g10], Yje))); - a[g10] = Tbb(f); - f = Obb(f, 32); - } - for (; g10 < c; g10++) { - f = wbb(f, xbb(b[g10], Yje)); - a[g10] = Tbb(f); - f = Obb(f, 32); - } - } else { - for (g10 = 1; g10 < c; g10++) { - f = wbb(f, wbb(xbb(b[g10], Yje), xbb(d[g10], Yje))); - a[g10] = Tbb(f); - f = Obb(f, 32); - } - for (; g10 < e; g10++) { - f = wbb(f, xbb(d[g10], Yje)); - a[g10] = Tbb(f); - f = Obb(f, 32); - } - } - ybb(f, 0) != 0 && (a[g10] = Tbb(f)); - } - function _fe(a) { - wfe(); - var b, c, d, e, f, g10; - if (a.e != 4 && a.e != 5) - throw vbb(new Wdb("Token#complementRanges(): must be RANGE: " + a.e)); - f = a; - Yfe(f); - Vfe(f); - d = f.b.length + 2; - f.b[0] == 0 && (d -= 2); - c = f.b[f.b.length - 1]; - c == lxe && (d -= 2); - e = (++vfe, new $fe(4)); - e.b = KC(WD, oje, 25, d, 15, 1); - g10 = 0; - if (f.b[0] > 0) { - e.b[g10++] = 0; - e.b[g10++] = f.b[0] - 1; - } - for (b = 1; b < f.b.length - 2; b += 2) { - e.b[g10++] = f.b[b] + 1; - e.b[g10++] = f.b[b + 1] - 1; - } - if (c != lxe) { - e.b[g10++] = c + 1; - e.b[g10] = lxe; - } - e.a = true; - return e; - } - function Pxd(a, b, c) { - var d, e, f, g10, h, i10, j, k; - d = c.gc(); - if (d == 0) { - return false; - } else { - if (a.ej()) { - j = a.fj(); - iud(a, b, c); - g10 = d == 1 ? a.Zi(3, null, c.Kc().Pb(), b, j) : a.Zi(5, null, c, b, j); - if (a.bj()) { - h = d < 100 ? null : new Ixd(d); - f = b + d; - for (e = b; e < f; ++e) { - k = a.g[e]; - h = a.cj(k, h); - h = a.jj(k, h); - } - if (!h) { - a.$i(g10); - } else { - h.Ei(g10); - h.Fi(); - } - } else { - a.$i(g10); - } - } else { - iud(a, b, c); - if (a.bj()) { - h = d < 100 ? null : new Ixd(d); - f = b + d; - for (e = b; e < f; ++e) { - i10 = a.g[e]; - h = a.cj(i10, h); - } - !!h && h.Fi(); - } - } - return true; - } - } - function YNc(a, b, c, d) { - var e, f, g10, h, i10; - for (g10 = new olb(a.k); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 129); - if (!d || e.c == (HOc(), FOc)) { - i10 = e.b; - if (i10.g < 0 && e.d > 0) { - pOc(i10, i10.d - e.d); - e.c == (HOc(), FOc) && nOc(i10, i10.a - e.d); - i10.d <= 0 && i10.i > 0 && (Gsb(b, i10, b.c.b, b.c), true); - } - } - } - for (f = new olb(a.f); f.a < f.c.c.length; ) { - e = BD(mlb(f), 129); - if (!d || e.c == (HOc(), FOc)) { - h = e.a; - if (h.g < 0 && e.d > 0) { - qOc(h, h.i - e.d); - e.c == (HOc(), FOc) && oOc(h, h.b - e.d); - h.i <= 0 && h.d > 0 && (Gsb(c, h, c.c.b, c.c), true); - } - } - } - } - function gSc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - Odd(c, "Processor compute fanout", 1); - Uhb(a.b); - Uhb(a.a); - h = null; - f = Jsb(b.b, 0); - while (!h && f.b != f.d.c) { - j = BD(Xsb(f), 86); - Ccb(DD(vNb(j, (mTc(), jTc)))) && (h = j); - } - i10 = new Psb(); - Gsb(i10, h, i10.c.b, i10.c); - fSc(a, i10); - for (k = Jsb(b.b, 0); k.b != k.d.c; ) { - j = BD(Xsb(k), 86); - g10 = GD(vNb(j, (mTc(), $Sc))); - e = Phb(a.b, g10) != null ? BD(Phb(a.b, g10), 19).a : 0; - yNb(j, ZSc, meb(e)); - d = 1 + (Phb(a.a, g10) != null ? BD(Phb(a.a, g10), 19).a : 0); - yNb(j, XSc, meb(d)); - } - Qdd(c); - } - function WPc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10; - m = VPc(a, c); - for (i10 = 0; i10 < b; i10++) { - Aib(e, c); - n = new Rkb(); - o10 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407)); - for (k = m + i10; k < a.b; k++) { - h = o10; - o10 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407)); - Ekb(n, new aQc(h, o10, c)); - } - for (l = m + i10; l < a.b; l++) { - sCb(d.b > 0); - d.a.Xb(d.c = --d.b); - l > m + i10 && uib(d); - } - for (g10 = new olb(n); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 407); - Aib(d, f); - } - if (i10 < b - 1) { - for (j = m + i10; j < a.b; j++) { - sCb(d.b > 0); - d.a.Xb(d.c = --d.b); - } - } - } - } - function Jfe() { - wfe(); - var a, b, c, d, e, f; - if (gfe) - return gfe; - a = (++vfe, new $fe(4)); - Xfe(a, Kfe(vxe, true)); - Zfe(a, Kfe("M", true)); - Zfe(a, Kfe("C", true)); - f = (++vfe, new $fe(4)); - for (d = 0; d < 11; d++) { - Ufe(f, d, d); - } - b = (++vfe, new $fe(4)); - Xfe(b, Kfe("M", true)); - Ufe(b, 4448, 4607); - Ufe(b, 65438, 65439); - e = (++vfe, new Lge(2)); - Kge(e, a); - Kge(e, ffe); - c = (++vfe, new Lge(2)); - c.$l(Bfe(f, Kfe("L", true))); - c.$l(b); - c = (++vfe, new lge(3, c)); - c = (++vfe, new rge(e, c)); - gfe = c; - return gfe; - } - function S3c(a) { - var b, c; - b = GD(hkd(a, (Y9c(), o8c))); - if (T3c(b, a)) { - return; - } - if (!ikd(a, F9c) && ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i != 0 || Ccb(DD(hkd(a, M8c))))) { - if (b == null || ufb(b).length == 0) { - if (!T3c(sne, a)) { - c = Qfb(Qfb(new Wfb("Unable to load default layout algorithm "), sne), " for unconfigured node "); - yfd(a, c); - throw vbb(new y2c(c.a)); - } - } else { - c = Qfb(Qfb(new Wfb("Layout algorithm '"), b), "' not found for "); - yfd(a, c); - throw vbb(new y2c(c.a)); - } - } - } - function hIb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - c = a.i; - b = a.n; - if (a.b == 0) { - n = c.c + b.b; - m = c.b - b.b - b.c; - for (g10 = a.a, i10 = 0, k = g10.length; i10 < k; ++i10) { - e = g10[i10]; - mHb(e, n, m); - } - } else { - d = kIb(a, false); - mHb(a.a[0], c.c + b.b, d[0]); - mHb(a.a[2], c.c + c.b - b.c - d[2], d[2]); - l = c.b - b.b - b.c; - if (d[0] > 0) { - l -= d[0] + a.c; - d[0] += a.c; - } - d[2] > 0 && (l -= d[2] + a.c); - d[1] = $wnd.Math.max(d[1], l); - mHb(a.a[1], c.c + b.b + d[0] - (d[1] - l) / 2, d[1]); - } - for (f = a.a, h = 0, j = f.length; h < j; ++h) { - e = f[h]; - JD(e, 326) && BD(e, 326).Te(); - } - } - function KMc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - l = new JMc(); - l.d = 0; - for (g10 = new olb(a.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - l.d += f.a.c.length; - } - d = 0; - e = 0; - l.a = KC(WD, oje, 25, a.b.c.length, 15, 1); - j = 0; - k = 0; - l.e = KC(WD, oje, 25, l.d, 15, 1); - for (c = new olb(a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 29); - b.p = d++; - l.a[b.p] = e++; - k = 0; - for (i10 = new olb(b.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - h.p = j++; - l.e[h.p] = k++; - } - } - l.c = new OMc(l); - l.b = Pu(l.d); - LMc(l, a); - l.f = Pu(l.d); - MMc(l, a); - return l; - } - function GZc(a, b) { - var c, d, e, f; - f = BD(Ikb(a.n, a.n.c.length - 1), 211).d; - a.p = $wnd.Math.min(a.p, b.g); - a.r = $wnd.Math.max(a.r, f); - a.g = $wnd.Math.max(a.g, b.g + (a.b.c.length == 1 ? 0 : a.i)); - a.o = $wnd.Math.min(a.o, b.f); - a.e += b.f + (a.b.c.length == 1 ? 0 : a.i); - a.f = $wnd.Math.max(a.f, b.f); - e = a.n.c.length > 0 ? (a.n.c.length - 1) * a.i : 0; - for (d = new olb(a.n); d.a < d.c.c.length; ) { - c = BD(mlb(d), 211); - e += c.a; - } - a.d = e; - a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length); - u$c(a.j); - } - function LQb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - k = DD(vNb(b, (wSb(), sSb))); - if (k == null || (uCb(k), k)) { - l = KC(sbb, dle, 25, b.e.c.length, 16, 1); - g10 = HQb(b); - e = new Psb(); - for (j = new olb(b.e); j.a < j.c.c.length; ) { - h = BD(mlb(j), 144); - c = IQb(a, h, null, null, l, g10); - if (c) { - tNb(c, b); - Gsb(e, c, e.c.b, e.c); - } - } - if (e.b > 1) { - for (d = Jsb(e, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 231); - f = 0; - for (i10 = new olb(c.e); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 144); - h.b = f++; - } - } - } - return e; - } - return Ou(OC(GC($O, 1), fme, 231, 0, [b])); - } - function TKd(a) { - var b, c, d, e, f, g10, h; - if (!a.g) { - h = new zNd(); - b = KKd; - g10 = b.a.zc(a, b); - if (g10 == null) { - for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 26); - ytd(h, TKd(c)); - } - b.a.Bc(a) != null; - b.a.gc() == 0 && void 0; - } - e = h.i; - for (f = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); f.e != f.i.gc(); ++e) { - bJd(BD(Dyd(f), 449), e); - } - ytd(h, (!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s)); - vud(h); - a.g = new rNd(a, h); - a.i = BD(h.g, 247); - a.i == null && (a.i = MKd); - a.p = null; - $Kd(a).b &= -5; - } - return a.g; - } - function iIb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - d = a.i; - c = a.n; - if (a.b == 0) { - b = jIb(a, false); - nHb(a.a[0], d.d + c.d, b[0]); - nHb(a.a[2], d.d + d.a - c.a - b[2], b[2]); - m = d.a - c.d - c.a; - l = m; - if (b[0] > 0) { - b[0] += a.c; - l -= b[0]; - } - b[2] > 0 && (l -= b[2] + a.c); - b[1] = $wnd.Math.max(b[1], l); - nHb(a.a[1], d.d + c.d + b[0] - (b[1] - l) / 2, b[1]); - } else { - o10 = d.d + c.d; - n = d.a - c.d - c.a; - for (g10 = a.a, i10 = 0, k = g10.length; i10 < k; ++i10) { - e = g10[i10]; - nHb(e, o10, n); - } - } - for (f = a.a, h = 0, j = f.length; h < j; ++h) { - e = f[h]; - JD(e, 326) && BD(e, 326).Ue(); - } - } - function boc(a) { - var b, c, d, e, f, g10, h, i10, j, k; - k = KC(WD, oje, 25, a.b.c.length + 1, 15, 1); - j = new Tqb(); - d = 0; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - k[d++] = j.a.gc(); - for (i10 = new olb(e.a); i10.a < i10.c.c.length; ) { - g10 = BD(mlb(i10), 10); - for (c = new Sr(ur(U_b(g10).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - j.a.zc(b, j); - } - } - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - for (c = new Sr(ur(R_b(g10).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - j.a.Bc(b) != null; - } - } - } - return k; - } - function F2d(a, b, c, d) { - var e, f, g10, h, i10; - i10 = S6d(a.e.Tg(), b); - e = BD(a.g, 119); - Q6d(); - if (BD(b, 66).Oj()) { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (i10.rl(f.ak()) && pb(f, c)) { - return true; - } - } - } else if (c != null) { - for (h = 0; h < a.i; ++h) { - f = e[h]; - if (i10.rl(f.ak()) && pb(c, f.dd())) { - return true; - } - } - if (d) { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (i10.rl(f.ak()) && PD(c) === PD(a3d(a, BD(f.dd(), 56)))) { - return true; - } - } - } - } else { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (i10.rl(f.ak()) && f.dd() == null) { - return false; - } - } - } - return false; - } - function e3d(a, b, c, d) { - var e, f, g10, h, i10, j; - j = S6d(a.e.Tg(), b); - g10 = BD(a.g, 119); - if (T6d(a.e, b)) { - if (b.hi()) { - f = M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0); - if (f >= 0 && f != c) { - throw vbb(new Wdb(kue)); - } - } - e = 0; - for (i10 = 0; i10 < a.i; ++i10) { - h = g10[i10]; - if (j.rl(h.ak())) { - if (e == c) { - return BD(Gtd(a, i10, (Q6d(), BD(b, 66).Oj() ? BD(d, 72) : R6d(b, d))), 72); - } - ++e; - } - } - throw vbb(new qcb(gve + c + mue + e)); - } else { - for (i10 = 0; i10 < a.i; ++i10) { - h = g10[i10]; - if (j.rl(h.ak())) { - return Q6d(), BD(b, 66).Oj() ? h : h.dd(); - } - } - return null; - } - } - function ONb(a, b, c, d) { - var e, f, g10, h; - h = c; - for (g10 = new olb(b.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 221); - e = BD(f.b, 65); - if (Jy(a.b.c, e.b.c + e.b.b) <= 0 && Jy(e.b.c, a.b.c + a.b.b) <= 0 && Jy(a.b.d, e.b.d + e.b.a) <= 0 && Jy(e.b.d, a.b.d + a.b.a) <= 0) { - if (Jy(e.b.c, a.b.c + a.b.b) == 0 && d.a < 0 || Jy(e.b.c + e.b.b, a.b.c) == 0 && d.a > 0 || Jy(e.b.d, a.b.d + a.b.a) == 0 && d.b < 0 || Jy(e.b.d + e.b.a, a.b.d) == 0 && d.b > 0) { - h = 0; - break; - } - } else { - h = $wnd.Math.min(h, YNb(a, e, d)); - } - h = $wnd.Math.min(h, ONb(a, f, h, d)); - } - return h; - } - function ifd(a, b) { - var c, d, e, f, g10, h, i10; - if (a.b < 2) { - throw vbb(new Wdb("The vector chain must contain at least a source and a target point.")); - } - e = (sCb(a.b != 0), BD(a.a.a.c, 8)); - nmd(b, e.a, e.b); - i10 = new Oyd((!b.a && (b.a = new xMd(y2, b, 5)), b.a)); - g10 = Jsb(a, 1); - while (g10.a < a.b - 1) { - h = BD(Xsb(g10), 8); - if (i10.e != i10.i.gc()) { - c = BD(Dyd(i10), 469); - } else { - c = (Fhd(), d = new xkd(), d); - Myd(i10, c); - } - ukd(c, h.a, h.b); - } - while (i10.e != i10.i.gc()) { - Dyd(i10); - Eyd(i10); - } - f = (sCb(a.b != 0), BD(a.c.b.c, 8)); - gmd(b, f.a, f.b); - } - function $lc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - c = 0; - for (e = new olb((tCb(0, a.c.length), BD(a.c[0], 101)).g.b.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 11); - d.p = c++; - } - b == (Ucd(), Acd) ? Okb(a, new gmc()) : Okb(a, new kmc()); - h = 0; - k = a.c.length - 1; - while (h < k) { - g10 = (tCb(h, a.c.length), BD(a.c[h], 101)); - j = (tCb(k, a.c.length), BD(a.c[k], 101)); - f = b == Acd ? g10.c : g10.a; - i10 = b == Acd ? j.a : j.c; - amc(g10, b, (Ajc(), yjc), f); - amc(j, b, xjc, i10); - ++h; - --k; - } - h == k && amc((tCb(h, a.c.length), BD(a.c[h], 101)), b, (Ajc(), wjc), null); - } - function UVc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - l = a.a.i + a.a.g / 2; - m = a.a.i + a.a.g / 2; - o10 = b.i + b.g / 2; - q = b.j + b.f / 2; - h = new f7c(o10, q); - j = BD(hkd(b, (Y9c(), C9c)), 8); - j.a = j.a + l; - j.b = j.b + m; - f = (h.b - j.b) / (h.a - j.a); - d = h.b - f * h.a; - p = c.i + c.g / 2; - r = c.j + c.f / 2; - i10 = new f7c(p, r); - k = BD(hkd(c, C9c), 8); - k.a = k.a + l; - k.b = k.b + m; - g10 = (i10.b - k.b) / (i10.a - k.a); - e = i10.b - g10 * i10.a; - n = (d - e) / (g10 - f); - if (j.a < n && h.a < n || n < j.a && n < h.a) { - return false; - } else if (k.a < n && i10.a < n || n < k.a && n < i10.a) { - return false; - } - return true; - } - function gqd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - m = BD(Ohb(a.c, b), 183); - if (!m) { - throw vbb(new cqd("Edge did not exist in input.")); - } - j = Wpd(m); - f = Fhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a)); - h = !f; - if (h) { - n = new wB(); - c = new Rrd(a, j, n); - Dhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), c); - cC(m, Nte, n); - } - e = ikd(b, (Y9c(), Q8c)); - if (e) { - k = BD(hkd(b, Q8c), 74); - g10 = !k || Ehe(k); - i10 = !g10; - if (i10) { - l = new wB(); - d = new Zrd(l); - reb(k, d); - cC(m, "junctionPoints", l); - } - } - Upd(m, "container", Mld(b).k); - return null; - } - function eDb(a, b, c) { - var d, e, f, g10, h, i10, j, k; - this.a = a; - this.b = b; - this.c = c; - this.e = Ou(OC(GC(GM, 1), Uhe, 168, 0, [new aDb(a, b), new aDb(b, c), new aDb(c, a)])); - this.f = Ou(OC(GC(m1, 1), nie, 8, 0, [a, b, c])); - this.d = (d = c7c(R6c(this.b), this.a), e = c7c(R6c(this.c), this.a), f = c7c(R6c(this.c), this.b), g10 = d.a * (this.a.a + this.b.a) + d.b * (this.a.b + this.b.b), h = e.a * (this.a.a + this.c.a) + e.b * (this.a.b + this.c.b), i10 = 2 * (d.a * f.b - d.b * f.a), j = (e.b * g10 - d.b * h) / i10, k = (d.a * h - e.a * g10) / i10, new f7c(j, k)); - } - function nvd(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10; - m = new yC(a.p); - cC(b, fue, m); - if (c && !(!a.f ? null : vmb(a.f)).a.dc()) { - k = new wB(); - cC(b, "logs", k); - h = 0; - for (o10 = new Dnb((!a.f ? null : vmb(a.f)).b.Kc()); o10.b.Ob(); ) { - n = GD(o10.b.Pb()); - l = new yC(n); - tB(k, h); - vB(k, h, l); - ++h; - } - } - if (d) { - j = new TB(a.q); - cC(b, "executionTime", j); - } - if (!vmb(a.a).a.dc()) { - g10 = new wB(); - cC(b, Jte, g10); - h = 0; - for (f = new Dnb(vmb(a.a).b.Kc()); f.b.Ob(); ) { - e = BD(f.b.Pb(), 1949); - i10 = new eC(); - tB(g10, h); - vB(g10, h, i10); - nvd(e, i10, c, d); - ++h; - } - } - } - function PZb(a, b) { - var c, d, e, f, g10, h; - f = a.c; - g10 = a.d; - QZb(a, null); - RZb(a, null); - b && Ccb(DD(vNb(g10, (wtc(), Msc)))) ? QZb(a, i_b(g10.i, (KAc(), IAc), (Ucd(), zcd))) : QZb(a, g10); - b && Ccb(DD(vNb(f, (wtc(), etc)))) ? RZb(a, i_b(f.i, (KAc(), HAc), (Ucd(), Tcd))) : RZb(a, f); - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 70); - e = BD(vNb(c, (Nyc(), Qwc)), 272); - e == (qad(), pad) ? yNb(c, Qwc, oad) : e == oad && yNb(c, Qwc, pad); - } - h = Ccb(DD(vNb(a, (wtc(), ltc)))); - yNb(a, ltc, (Bcb(), h ? false : true)); - a.a = w7c(a.a); - } - function VQb(a, b, c) { - var d, e, f, g10, h, i10; - d = 0; - for (f = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); f.e != f.i.gc(); ) { - e = BD(Dyd(f), 33); - g10 = ""; - (!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n).i == 0 || (g10 = BD(qud((!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n), 0), 137).a); - h = new pRb(g10); - tNb(h, e); - yNb(h, (HSb(), FSb), e); - h.b = d++; - h.d.a = e.i + e.g / 2; - h.d.b = e.j + e.f / 2; - h.e.a = $wnd.Math.max(e.g, 1); - h.e.b = $wnd.Math.max(e.f, 1); - Ekb(b.e, h); - jrb(c.f, e, h); - i10 = BD(hkd(e, (wSb(), mSb)), 98); - i10 == (dcd(), ccd) && (i10 = bcd); - } - } - function XJc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - c = nGb(new pGb(), a.f); - j = a.i[b.c.i.p]; - n = a.i[b.d.i.p]; - i10 = b.c; - m = b.d; - h = i10.a.b; - l = m.a.b; - j.b || (h += i10.n.b); - n.b || (l += m.n.b); - k = QD($wnd.Math.max(0, h - l)); - g10 = QD($wnd.Math.max(0, l - h)); - o10 = (p = $wnd.Math.max(1, BD(vNb(b, (Nyc(), eyc)), 19).a), q = JJc(b.c.i.k, b.d.i.k), p * q); - e = AFb(DFb(CFb(BFb(EFb(new FFb(), o10), g10), c), BD(Ohb(a.k, b.c), 121))); - f = AFb(DFb(CFb(BFb(EFb(new FFb(), o10), k), c), BD(Ohb(a.k, b.d), 121))); - d = new qKc(e, f); - a.c[b.p] = d; - } - function NEc(a, b, c, d) { - var e, f, g10, h, i10, j; - g10 = new _Ec(a, b, c); - i10 = new Bib(d, 0); - e = false; - while (i10.b < i10.d.gc()) { - h = (sCb(i10.b < i10.d.gc()), BD(i10.d.Xb(i10.c = i10.b++), 233)); - if (h == b || h == c) { - uib(i10); - } else if (!e && Edb(REc(h.g, h.d[0]).a) > Edb(REc(g10.g, g10.d[0]).a)) { - sCb(i10.b > 0); - i10.a.Xb(i10.c = --i10.b); - Aib(i10, g10); - e = true; - } else if (!!h.e && h.e.gc() > 0) { - f = (!h.e && (h.e = new Rkb()), h.e).Mc(b); - j = (!h.e && (h.e = new Rkb()), h.e).Mc(c); - if (f || j) { - (!h.e && (h.e = new Rkb()), h.e).Fc(g10); - ++g10.c; - } - } - } - e || (d.c[d.c.length] = g10, true); - } - function odc(a) { - var b, c, d; - if (fcd(BD(vNb(a, (Nyc(), Vxc)), 98))) { - for (c = new olb(a.j); c.a < c.c.c.length; ) { - b = BD(mlb(c), 11); - b.j == (Ucd(), Scd) && (d = BD(vNb(b, (wtc(), gtc)), 10), d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, zcd) : G0b(b, Tcd)); - } - } else { - for (c = new olb(a.j); c.a < c.c.c.length; ) { - b = BD(mlb(c), 11); - d = BD(vNb(b, (wtc(), gtc)), 10); - d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, (Ucd(), zcd)) : G0b(b, (Ucd(), Tcd)); - } - yNb(a, Vxc, (dcd(), acd)); - } - } - function age(a) { - var b, c, d; - switch (a) { - case 91: - case 93: - case 45: - case 94: - case 44: - case 92: - d = "\\" + String.fromCharCode(a & aje); - break; - case 12: - d = "\\f"; - break; - case 10: - d = "\\n"; - break; - case 13: - d = "\\r"; - break; - case 9: - d = "\\t"; - break; - case 27: - d = "\\e"; - break; - default: - if (a < 32) { - c = (b = a >>> 0, "0" + b.toString(16)); - d = "\\x" + qfb(c, c.length - 2, c.length); - } else if (a >= Tje) { - c = (b = a >>> 0, "0" + b.toString(16)); - d = "\\v" + qfb(c, c.length - 6, c.length); - } else - d = "" + String.fromCharCode(a & aje); - } - return d; - } - function yhb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - g10 = a.e; - i10 = b.e; - if (i10 == 0) { - return a; - } - if (g10 == 0) { - return b.e == 0 ? b : new Vgb(-b.e, b.d, b.a); - } - f = a.d; - h = b.d; - if (f + h == 2) { - c = xbb(a.a[0], Yje); - d = xbb(b.a[0], Yje); - g10 < 0 && (c = Jbb(c)); - i10 < 0 && (d = Jbb(d)); - return ghb(Qbb(c, d)); - } - e = f != h ? f > h ? 1 : -1 : whb(a.a, b.a, f); - if (e == -1) { - l = -i10; - k = g10 == i10 ? zhb(b.a, h, a.a, f) : uhb(b.a, h, a.a, f); - } else { - l = g10; - if (g10 == i10) { - if (e == 0) { - return Hgb(), Ggb; - } - k = zhb(a.a, f, b.a, h); - } else { - k = uhb(a.a, f, b.a, h); - } - } - j = new Vgb(l, k.length, k); - Jgb(j); - return j; - } - function YPc(a) { - var b, c, d, e, f, g10; - this.e = new Rkb(); - this.a = new Rkb(); - for (c = a.b - 1; c < 3; c++) { - St(a, 0, BD(Ut(a, 0), 8)); - } - if (a.b < 4) { - throw vbb(new Wdb("At (least dimension + 1) control points are necessary!")); - } else { - this.b = 3; - this.d = true; - this.c = false; - TPc(this, a.b + this.b - 1); - g10 = new Rkb(); - f = new olb(this.e); - for (b = 0; b < this.b - 1; b++) { - Ekb(g10, ED(mlb(f))); - } - for (e = Jsb(a, 0); e.b != e.d.c; ) { - d = BD(Xsb(e), 8); - Ekb(g10, ED(mlb(f))); - Ekb(this.a, new bQc(d, g10)); - tCb(0, g10.c.length); - g10.c.splice(0, 1); - } - } - } - function Bac(a, b) { - var c, d, e, f, g10, h, i10, j, k; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (g10.k == (j0b(), f0b)) { - i10 = (j = BD(Rr(new Sr(ur(R_b(g10).a.Kc(), new Sq()))), 17), k = BD(Rr(new Sr(ur(U_b(g10).a.Kc(), new Sq()))), 17), !Ccb(DD(vNb(j, (wtc(), ltc)))) || !Ccb(DD(vNb(k, ltc)))) ? b : sbd(b); - zac(g10, i10); - } - for (d = new Sr(ur(U_b(g10).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - i10 = Ccb(DD(vNb(c, (wtc(), ltc)))) ? sbd(b) : b; - yac(c, i10); - } - } - } - } - function yZc(a, b, c, d, e) { - var f, g10, h; - if (c.f >= b.o && c.f <= b.f || b.a * 0.5 <= c.f && b.a * 1.5 >= c.f) { - g10 = BD(Ikb(b.n, b.n.c.length - 1), 211); - if (g10.e + g10.d + c.g + e <= d && (f = BD(Ikb(b.n, b.n.c.length - 1), 211), f.f - a.f + c.f <= a.b || a.a.c.length == 1)) { - EZc(b, c); - return true; - } else if (b.s + c.g <= d && (b.t + b.d + c.f + e <= a.b || a.a.c.length == 1)) { - Ekb(b.b, c); - h = BD(Ikb(b.n, b.n.c.length - 1), 211); - Ekb(b.n, new VZc(b.s, h.f + h.a + b.i, b.i)); - QZc(BD(Ikb(b.n, b.n.c.length - 1), 211), c); - GZc(b, c); - return true; - } - } - return false; - } - function Zxd(a, b, c) { - var d, e, f, g10; - if (a.ej()) { - e = null; - f = a.fj(); - d = a.Zi(1, g10 = uud(a, b, c), c, b, f); - if (a.bj() && !(a.ni() && g10 != null ? pb(g10, c) : PD(g10) === PD(c))) { - g10 != null && (e = a.dj(g10, e)); - e = a.cj(c, e); - a.ij() && (e = a.lj(g10, c, e)); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } else { - a.ij() && (e = a.lj(g10, c, e)); - if (!e) { - a.$i(d); - } else { - e.Ei(d); - e.Fi(); - } - } - return g10; - } else { - g10 = uud(a, b, c); - if (a.bj() && !(a.ni() && g10 != null ? pb(g10, c) : PD(g10) === PD(c))) { - e = null; - g10 != null && (e = a.dj(g10, null)); - e = a.cj(c, e); - !!e && e.Fi(); - } - return g10; - } - } - function YA(a, b) { - var c, d, e, f, g10, h, i10, j; - b %= 24; - if (a.q.getHours() != b) { - d = new $wnd.Date(a.q.getTime()); - d.setDate(d.getDate() + 1); - h = a.q.getTimezoneOffset() - d.getTimezoneOffset(); - if (h > 0) { - i10 = h / 60 | 0; - j = h % 60; - e = a.q.getDate(); - c = a.q.getHours(); - c + i10 >= 24 && ++e; - f = new $wnd.Date(a.q.getFullYear(), a.q.getMonth(), e, b + i10, a.q.getMinutes() + j, a.q.getSeconds(), a.q.getMilliseconds()); - a.q.setTime(f.getTime()); - } - } - g10 = a.q.getTime(); - a.q.setTime(g10 + 36e5); - a.q.getHours() != b && a.q.setTime(g10); - } - function opc(a, b) { - var c, d, e, f, g10; - Odd(b, "Path-Like Graph Wrapping", 1); - if (a.b.c.length == 0) { - Qdd(b); - return; - } - e = new Xoc(a); - g10 = (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i) * e.f); - c = g10 / (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i)); - if (e.b > c) { - Qdd(b); - return; - } - switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) { - case 2: - f = new hpc(); - break; - case 0: - f = new Ync(); - break; - default: - f = new kpc(); - } - d = f.Vf(a, e); - if (!f.Wf()) { - switch (BD(vNb(a, Myc), 338).g) { - case 2: - d = tpc(e, d); - break; - case 1: - d = rpc(e, d); - } - } - npc(a, e, d); - Qdd(b); - } - function MFc(a, b) { - var c, d, e, f; - Fub(a.d, a.e); - a.c.a.$b(); - if (Edb(ED(vNb(b.j, (Nyc(), uwc)))) != 0 || Edb(ED(vNb(b.j, uwc))) != 0) { - c = dme; - PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true)); - f = BD(vNb(b.j, Ayc), 19).a; - for (e = 0; e < f; e++) { - d = WFc(a, b); - if (d < c) { - c = d; - ZFc(a); - if (c == 0) { - break; - } - } - } - } else { - c = Ohe; - PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true)); - f = BD(vNb(b.j, Ayc), 19).a; - for (e = 0; e < f; e++) { - d = XFc(a, b); - if (d < c) { - c = d; - ZFc(a); - if (c == 0) { - break; - } - } - } - } - } - function spc(a, b) { - var c, d, e, f, g10, h, i10, j; - g10 = new Rkb(); - h = 0; - c = 0; - i10 = 0; - while (h < b.c.length - 1 && c < a.gc()) { - d = BD(a.Xb(c), 19).a + i10; - while ((tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a < d) { - ++h; - } - j = 0; - f = d - (tCb(h, b.c.length), BD(b.c[h], 19)).a; - e = (tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a - d; - f > e && ++j; - Ekb(g10, (tCb(h + j, b.c.length), BD(b.c[h + j], 19))); - i10 += (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a - d; - ++c; - while (c < a.gc() && BD(a.Xb(c), 19).a + i10 <= (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a) { - ++c; - } - h += 1 + j; - } - return g10; - } - function RKd(a) { - var b, c, d, e, f, g10, h; - if (!a.d) { - h = new XNd(); - b = KKd; - f = b.a.zc(a, b); - if (f == null) { - for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 26); - ytd(h, RKd(c)); - } - b.a.Bc(a) != null; - b.a.gc() == 0 && void 0; - } - g10 = h.i; - for (e = (!a.q && (a.q = new cUd(n5, a, 11, 10)), new Fyd(a.q)); e.e != e.i.gc(); ++g10) { - BD(Dyd(e), 399); - } - ytd(h, (!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q)); - vud(h); - a.d = new nNd((BD(qud(ZKd((NFd(), MFd).o), 9), 18), h.i), h.g); - a.e = BD(h.g, 673); - a.e == null && (a.e = LKd); - $Kd(a).b &= -17; - } - return a.d; - } - function M2d(a, b, c, d) { - var e, f, g10, h, i10, j; - j = S6d(a.e.Tg(), b); - i10 = 0; - e = BD(a.g, 119); - Q6d(); - if (BD(b, 66).Oj()) { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (j.rl(f.ak())) { - if (pb(f, c)) { - return i10; - } - ++i10; - } - } - } else if (c != null) { - for (h = 0; h < a.i; ++h) { - f = e[h]; - if (j.rl(f.ak())) { - if (pb(c, f.dd())) { - return i10; - } - ++i10; - } - } - if (d) { - i10 = 0; - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (j.rl(f.ak())) { - if (PD(c) === PD(a3d(a, BD(f.dd(), 56)))) { - return i10; - } - ++i10; - } - } - } - } else { - for (g10 = 0; g10 < a.i; ++g10) { - f = e[g10]; - if (j.rl(f.ak())) { - if (f.dd() == null) { - return i10; - } - ++i10; - } - } - } - return -1; - } - function aed(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n; - mmb(); - Okb(a, new Jed()); - g10 = Ru(a); - n = new Rkb(); - m = new Rkb(); - h = null; - i10 = 0; - while (g10.b != 0) { - f = BD(g10.b == 0 ? null : (sCb(g10.b != 0), Nsb(g10, g10.a.a)), 157); - if (!h || red(h) * qed(h) / 2 < red(f) * qed(f)) { - h = f; - n.c[n.c.length] = f; - } else { - i10 += red(f) * qed(f); - m.c[m.c.length] = f; - if (m.c.length > 1 && (i10 > red(h) * qed(h) / 2 || g10.b == 0)) { - l = new wed(m); - k = red(h) / qed(h); - j = fed(l, b, new p0b(), c, d, e, k); - P6c(X6c(l.e), j); - h = l; - n.c[n.c.length] = l; - i10 = 0; - m.c = KC(SI, Uhe, 1, 0, 5, 1); - } - } - } - Gkb(n, m); - return n; - } - function y6d(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p; - if (c.mh(b)) { - k = (n = b, !n ? null : BD(d, 49).xh(n)); - if (k) { - p = c.bh(b, a.a); - o10 = b.t; - if (o10 > 1 || o10 == -1) { - l = BD(p, 69); - m = BD(k, 69); - if (l.dc()) { - m.$b(); - } else { - g10 = !!zUd(b); - f = 0; - for (h = a.a ? l.Kc() : l.Zh(); h.Ob(); ) { - j = BD(h.Pb(), 56); - e = BD(Wrb(a, j), 56); - if (!e) { - if (a.b && !g10) { - m.Xh(f, j); - ++f; - } - } else { - if (g10) { - i10 = m.Xc(e); - i10 == -1 ? m.Xh(f, e) : f != i10 && m.ji(f, e); - } else { - m.Xh(f, e); - } - ++f; - } - } - } - } else { - if (p == null) { - k.Wb(null); - } else { - e = Wrb(a, p); - e == null ? a.b && !zUd(b) && k.Wb(p) : k.Wb(e); - } - } - } - } - } - function E6b(a, b) { - var c, d, e, f, g10, h, i10, j; - c = new L6b(); - for (e = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - if (OZb(d)) { - continue; - } - h = d.c.i; - if (F6b(h, C6b)) { - j = G6b(a, h, C6b, B6b); - if (j == -1) { - continue; - } - c.b = $wnd.Math.max(c.b, j); - !c.a && (c.a = new Rkb()); - Ekb(c.a, h); - } - } - for (g10 = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(g10); ) { - f = BD(Rr(g10), 17); - if (OZb(f)) { - continue; - } - i10 = f.d.i; - if (F6b(i10, B6b)) { - j = G6b(a, i10, B6b, C6b); - if (j == -1) { - continue; - } - c.d = $wnd.Math.max(c.d, j); - !c.c && (c.c = new Rkb()); - Ekb(c.c, i10); - } - } - return c; - } - function Khb(a) { - Dhb(); - var b, c, d, e; - b = QD(a); - if (a < Chb.length) { - return Chb[b]; - } else if (a <= 50) { - return Pgb((Hgb(), Egb), b); - } else if (a <= _ie) { - return Qgb(Pgb(Bhb[1], b), b); - } - if (a > 1e6) { - throw vbb(new ocb("power of ten too big")); - } - if (a <= Ohe) { - return Qgb(Pgb(Bhb[1], b), b); - } - d = Pgb(Bhb[1], Ohe); - e = d; - c = Cbb(a - Ohe); - b = QD(a % Ohe); - while (ybb(c, Ohe) > 0) { - e = Ogb(e, d); - c = Qbb(c, Ohe); - } - e = Ogb(e, Pgb(Bhb[1], b)); - e = Qgb(e, Ohe); - c = Cbb(a - Ohe); - while (ybb(c, Ohe) > 0) { - e = Qgb(e, Ohe); - c = Qbb(c, Ohe); - } - e = Qgb(e, b); - return e; - } - function X5b(a, b) { - var c, d, e, f, g10, h, i10, j, k; - Odd(b, "Hierarchical port dummy size processing", 1); - i10 = new Rkb(); - k = new Rkb(); - d = Edb(ED(vNb(a, (Nyc(), myc)))); - c = d * 2; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - i10.c = KC(SI, Uhe, 1, 0, 5, 1); - k.c = KC(SI, Uhe, 1, 0, 5, 1); - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (g10.k == (j0b(), e0b)) { - j = BD(vNb(g10, (wtc(), Hsc)), 61); - j == (Ucd(), Acd) ? (i10.c[i10.c.length] = g10, true) : j == Rcd && (k.c[k.c.length] = g10, true); - } - } - Y5b(i10, true, c); - Y5b(k, false, c); - } - Qdd(b); - } - function Oac(a, b) { - var c, d, e, f, g10, h, i10; - Odd(b, "Layer constraint postprocessing", 1); - i10 = a.b; - if (i10.c.length != 0) { - d = (tCb(0, i10.c.length), BD(i10.c[0], 29)); - g10 = BD(Ikb(i10, i10.c.length - 1), 29); - c = new H1b(a); - f = new H1b(a); - Mac(a, d, g10, c, f); - c.a.c.length == 0 || (wCb(0, i10.c.length), aCb(i10.c, 0, c)); - f.a.c.length == 0 || (i10.c[i10.c.length] = f, true); - } - if (wNb(a, (wtc(), Lsc))) { - e = new H1b(a); - h = new H1b(a); - Pac(a, e, h); - e.a.c.length == 0 || (wCb(0, i10.c.length), aCb(i10.c, 0, e)); - h.a.c.length == 0 || (i10.c[i10.c.length] = h, true); - } - Qdd(b); - } - function b6b(a) { - var b, c, d, e, f, g10, h, i10, j, k; - for (i10 = new olb(a.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - if (h.k != (j0b(), e0b)) { - continue; - } - e = BD(vNb(h, (wtc(), Hsc)), 61); - if (e == (Ucd(), zcd) || e == Tcd) { - for (d = new Sr(ur(O_b(h).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - b = c.a; - if (b.b == 0) { - continue; - } - j = c.c; - if (j.i == h) { - f = (sCb(b.b != 0), BD(b.a.a.c, 8)); - f.b = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a])).b; - } - k = c.d; - if (k.i == h) { - g10 = (sCb(b.b != 0), BD(b.c.b.c, 8)); - g10.b = l7c(OC(GC(m1, 1), nie, 8, 0, [k.i.n, k.n, k.a])).b; - } - } - } - } - } - function Tec(a, b) { - var c, d, e, f, g10, h, i10; - Odd(b, "Sort By Input Model " + vNb(a, (Nyc(), ywc)), 1); - e = 0; - for (d = new olb(a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - i10 = e == 0 ? 0 : e - 1; - h = BD(Ikb(a.b, i10), 29); - for (g10 = new olb(c.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - if (PD(vNb(f, Vxc)) !== PD((dcd(), Zbd)) && PD(vNb(f, Vxc)) !== PD($bd)) { - mmb(); - Okb(f.j, new Tnc(h, Xec(f))); - Sdd(b, "Node " + f + " ports: " + f.j); - } - } - mmb(); - Okb(c.a, new Bnc(h, BD(vNb(a, ywc), 339), BD(vNb(a, wwc), 378))); - Sdd(b, "Layer " + e + ": " + c); - ++e; - } - Qdd(b); - } - function U1b(a, b) { - var c, d, e, f; - f = P1b(b); - MAb(new YAb(null, (!b.c && (b.c = new cUd(F2, b, 9, 9)), new Kub(b.c, 16))), new i2b(f)); - e = BD(vNb(f, (wtc(), Ksc)), 21); - O1b(b, e); - if (e.Hc((Orc(), Hrc))) { - for (d = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 118); - Y1b(a, b, f, c); - } - } - BD(hkd(b, (Nyc(), Fxc)), 174).gc() != 0 && L1b(b, f); - Ccb(DD(vNb(f, Mxc))) && e.Fc(Mrc); - wNb(f, hyc) && Wyc(new ezc(Edb(ED(vNb(f, hyc)))), f); - PD(hkd(b, axc)) === PD((hbd(), ebd)) ? V1b(a, b, f) : T1b(a, b, f); - return f; - } - function hic(a, b, c, d) { - var e, f, g10; - this.j = new Rkb(); - this.k = new Rkb(); - this.b = new Rkb(); - this.c = new Rkb(); - this.e = new I6c(); - this.i = new s7c(); - this.f = new lEb(); - this.d = new Rkb(); - this.g = new Rkb(); - Ekb(this.b, a); - Ekb(this.b, b); - this.e.c = $wnd.Math.min(a.a, b.a); - this.e.d = $wnd.Math.min(a.b, b.b); - this.e.b = $wnd.Math.abs(a.a - b.a); - this.e.a = $wnd.Math.abs(a.b - b.b); - e = BD(vNb(d, (Nyc(), jxc)), 74); - if (e) { - for (g10 = Jsb(e, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 8); - ADb(f.a, a.a) && Dsb(this.i, f); - } - } - !!c && Ekb(this.j, c); - Ekb(this.k, d); - } - function oTb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - k = new gub(new ETb(c)); - h = KC(sbb, dle, 25, a.f.e.c.length, 16, 1); - Glb(h, h.length); - c[b.b] = 0; - for (j = new olb(a.f.e); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 144); - i10.b != b.b && (c[i10.b] = Ohe); - zCb(cub(k, i10)); - } - while (k.b.c.length != 0) { - l = BD(dub(k), 144); - h[l.b] = true; - for (f = au(new bu(a.b, l), 0); f.c; ) { - e = BD(uu(f), 282); - m = rTb(e, l); - if (h[m.b]) { - continue; - } - wNb(e, (bTb(), RSb)) ? g10 = Edb(ED(vNb(e, RSb))) : g10 = a.c; - d = c[l.b] + g10; - if (d < c[m.b]) { - c[m.b] = d; - eub(k, m); - zCb(cub(k, m)); - } - } - } - } - function xMc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - e = true; - for (g10 = new olb(a.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - j = Qje; - k = null; - for (i10 = new olb(f.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - l = Edb(b.p[h.p]) + Edb(b.d[h.p]) - h.d.d; - d = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a; - if (l > j && d > j) { - k = h; - j = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a; - } else { - e = false; - c.n && Sdd(c, "bk node placement breaks on " + h + " which should have been after " + k); - break; - } - } - if (!e) { - break; - } - } - c.n && Sdd(c, b + " is feasible: " + e); - return e; - } - function XNc(a, b, c, d) { - var e, f, g10, h, i10, j, k; - h = -1; - for (k = new olb(a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 112); - j.g = h--; - e = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.f, 16)), new ZNc()), new _Nc())).d); - f = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.k, 16)), new bOc()), new dOc())).d); - g10 = e; - i10 = f; - if (!d) { - g10 = Tbb(tAb(PAb(new YAb(null, new Kub(j.f, 16)), new fOc())).d); - i10 = Tbb(tAb(PAb(new YAb(null, new Kub(j.k, 16)), new hOc())).d); - } - j.d = g10; - j.a = e; - j.i = i10; - j.b = f; - i10 == 0 ? (Gsb(c, j, c.c.b, c.c), true) : g10 == 0 && (Gsb(b, j, b.c.b, b.c), true); - } - } - function $8b(a, b, c, d) { - var e, f, g10, h, i10, j, k; - if (c.d.i == b.i) { - return; - } - e = new b0b(a); - __b(e, (j0b(), g0b)); - yNb(e, (wtc(), $sc), c); - yNb(e, (Nyc(), Vxc), (dcd(), $bd)); - d.c[d.c.length] = e; - g10 = new H0b(); - F0b(g10, e); - G0b(g10, (Ucd(), Tcd)); - h = new H0b(); - F0b(h, e); - G0b(h, zcd); - k = c.d; - RZb(c, g10); - f = new UZb(); - tNb(f, c); - yNb(f, jxc, null); - QZb(f, h); - RZb(f, k); - j = new Bib(c.b, 0); - while (j.b < j.d.gc()) { - i10 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70)); - if (PD(vNb(i10, Qwc)) === PD((qad(), oad))) { - yNb(i10, Dsc, c); - uib(j); - Ekb(f.b, i10); - } - } - a9b(e, g10, h); - } - function Z8b(a, b, c, d) { - var e, f, g10, h, i10, j, k; - if (c.c.i == b.i) { - return; - } - e = new b0b(a); - __b(e, (j0b(), g0b)); - yNb(e, (wtc(), $sc), c); - yNb(e, (Nyc(), Vxc), (dcd(), $bd)); - d.c[d.c.length] = e; - g10 = new H0b(); - F0b(g10, e); - G0b(g10, (Ucd(), Tcd)); - h = new H0b(); - F0b(h, e); - G0b(h, zcd); - RZb(c, g10); - f = new UZb(); - tNb(f, c); - yNb(f, jxc, null); - QZb(f, h); - RZb(f, b); - a9b(e, g10, h); - j = new Bib(c.b, 0); - while (j.b < j.d.gc()) { - i10 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70)); - k = BD(vNb(i10, Qwc), 272); - if (k == (qad(), oad)) { - wNb(i10, Dsc) || yNb(i10, Dsc, c); - uib(j); - Ekb(f.b, i10); - } - } - } - function dDc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - m = new Rkb(); - r = Gx(d); - q = b * a.a; - l = 0; - o10 = 0; - f = new Tqb(); - g10 = new Tqb(); - h = new Rkb(); - s = 0; - t = 0; - n = 0; - p = 0; - j = 0; - k = 0; - while (r.a.gc() != 0) { - i10 = hDc(r, e, g10); - if (i10) { - r.a.Bc(i10) != null; - h.c[h.c.length] = i10; - f.a.zc(i10, f); - o10 = a.f[i10.p]; - s += a.e[i10.p] - o10 * a.b; - l = a.c[i10.p]; - t += l * a.b; - k += o10 * a.b; - p += a.e[i10.p]; - } - if (!i10 || r.a.gc() == 0 || s >= q && a.e[i10.p] > o10 * a.b || t >= c * q) { - m.c[m.c.length] = h; - h = new Rkb(); - ye(g10, f); - f.a.$b(); - j -= k; - n = $wnd.Math.max(n, j * a.b + p); - j += t; - s = t; - t = 0; - k = 0; - p = 0; - } - } - return new vgd(n, m); - } - function q4c(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - for (c = (j = new $ib(a.c.b).a.vc().Kc(), new djb(j)); c.a.Ob(); ) { - b = (h = BD(c.a.Pb(), 42), BD(h.dd(), 149)); - e = b.a; - e == null && (e = ""); - d = i4c(a.c, e); - !d && e.length == 0 && (d = u4c(a)); - !!d && !ze(d.c, b, false) && Dsb(d.c, b); - } - for (g10 = Jsb(a.a, 0); g10.b != g10.d.c; ) { - f = BD(Xsb(g10), 478); - k = j4c(a.c, f.a); - n = j4c(a.c, f.b); - !!k && !!n && Dsb(k.c, new vgd(n, f.c)); - } - Osb(a.a); - for (m = Jsb(a.b, 0); m.b != m.d.c; ) { - l = BD(Xsb(m), 478); - b = g4c(a.c, l.a); - i10 = j4c(a.c, l.b); - !!b && !!i10 && B3c(b, i10, l.c); - } - Osb(a.b); - } - function qvd(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - f = new fC(a); - g10 = new ird(); - e = (ko(g10.g), ko(g10.j), Uhb(g10.b), ko(g10.d), ko(g10.i), Uhb(g10.k), Uhb(g10.c), Uhb(g10.e), n = drd(g10, f, null), ard(g10, f), n); - if (b) { - j = new fC(b); - h = rvd(j); - jfd(e, OC(GC(g2, 1), Uhe, 527, 0, [h])); - } - m = false; - l = false; - if (c) { - j = new fC(c); - que in j.a && (m = aC(j, que).ge().a); - rue in j.a && (l = aC(j, rue).ge().a); - } - k = Vdd(Xdd(new Zdd(), m), l); - t2c(new w2c(), e, k); - que in f.a && cC(f, que, null); - if (m || l) { - i10 = new eC(); - nvd(k, i10, m, l); - cC(f, que, i10); - } - d = new Prd(g10); - Ghe(new _ud(e), d); - } - function pA(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - g10 = new nB(); - j = OC(GC(WD, 1), oje, 25, 15, [0]); - e = -1; - f = 0; - d = 0; - for (i10 = 0; i10 < a.b.c.length; ++i10) { - k = BD(Ikb(a.b, i10), 434); - if (k.b > 0) { - if (e < 0 && k.a) { - e = i10; - f = j[0]; - d = 0; - } - if (e >= 0) { - h = k.b; - if (i10 == e) { - h -= d++; - if (h == 0) { - return 0; - } - } - if (!wA(b, j, k, h, g10)) { - i10 = e - 1; - j[0] = f; - continue; - } - } else { - e = -1; - if (!wA(b, j, k, 0, g10)) { - return 0; - } - } - } else { - e = -1; - if (bfb(k.c, 0) == 32) { - l = j[0]; - uA(b, j); - if (j[0] > l) { - continue; - } - } else if (ofb(b, k.c, j[0])) { - j[0] += k.c.length; - continue; - } - return 0; - } - } - if (!mB(g10, c)) { - return 0; - } - return j[0]; - } - function SKd(a) { - var b, c, d, e, f, g10, h, i10; - if (!a.f) { - i10 = new CNd(); - h = new CNd(); - b = KKd; - g10 = b.a.zc(a, b); - if (g10 == null) { - for (f = new Fyd(_Kd(a)); f.e != f.i.gc(); ) { - e = BD(Dyd(f), 26); - ytd(i10, SKd(e)); - } - b.a.Bc(a) != null; - b.a.gc() == 0 && void 0; - } - for (d = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 170); - JD(c, 99) && wtd(h, BD(c, 18)); - } - vud(h); - a.r = new UNd(a, (BD(qud(ZKd((NFd(), MFd).o), 6), 18), h.i), h.g); - ytd(i10, a.r); - vud(i10); - a.f = new nNd((BD(qud(ZKd(MFd.o), 5), 18), i10.i), i10.g); - $Kd(a).b &= -3; - } - return a.f; - } - function rMb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - g10 = a.o; - d = KC(WD, oje, 25, g10, 15, 1); - e = KC(WD, oje, 25, g10, 15, 1); - c = a.p; - b = KC(WD, oje, 25, c, 15, 1); - f = KC(WD, oje, 25, c, 15, 1); - for (j = 0; j < g10; j++) { - l = 0; - while (l < c && !YMb(a, j, l)) { - ++l; - } - d[j] = l; - } - for (k = 0; k < g10; k++) { - l = c - 1; - while (l >= 0 && !YMb(a, k, l)) { - --l; - } - e[k] = l; - } - for (n = 0; n < c; n++) { - h = 0; - while (h < g10 && !YMb(a, h, n)) { - ++h; - } - b[n] = h; - } - for (o10 = 0; o10 < c; o10++) { - h = g10 - 1; - while (h >= 0 && !YMb(a, h, o10)) { - --h; - } - f[o10] = h; - } - for (i10 = 0; i10 < g10; i10++) { - for (m = 0; m < c; m++) { - i10 < f[m] && i10 > b[m] && m < e[i10] && m > d[i10] && aNb(a, i10, m, false, true); - } - } - } - function lRb(a) { - var b, c, d, e, f, g10, h, i10; - c = Ccb(DD(vNb(a, (wSb(), cSb)))); - f = a.a.c.d; - h = a.a.d.d; - if (c) { - g10 = Y6c(c7c(new f7c(h.a, h.b), f), 0.5); - i10 = Y6c(R6c(a.e), 0.5); - b = c7c(P6c(new f7c(f.a, f.b), g10), i10); - a7c(a.d, b); - } else { - e = Edb(ED(vNb(a.a, tSb))); - d = a.d; - if (f.a >= h.a) { - if (f.b >= h.b) { - d.a = h.a + (f.a - h.a) / 2 + e; - d.b = h.b + (f.b - h.b) / 2 - e - a.e.b; - } else { - d.a = h.a + (f.a - h.a) / 2 + e; - d.b = f.b + (h.b - f.b) / 2 + e; - } - } else { - if (f.b >= h.b) { - d.a = f.a + (h.a - f.a) / 2 + e; - d.b = h.b + (f.b - h.b) / 2 + e; - } else { - d.a = f.a + (h.a - f.a) / 2 + e; - d.b = f.b + (h.b - f.b) / 2 - e - a.e.b; - } - } - } - } - function Qge(a, b) { - var c, d, e, f, g10, h, i10; - if (a == null) { - return null; - } - f = a.length; - if (f == 0) { - return ""; - } - i10 = KC(TD, $ie, 25, f, 15, 1); - ACb(0, f, a.length); - ACb(0, f, i10.length); - ffb(a, 0, f, i10, 0); - c = null; - h = b; - for (e = 0, g10 = 0; e < f; e++) { - d = i10[e]; - lde(); - if (d <= 32 && (kde[d] & 2) != 0) { - if (h) { - !c && (c = new Jfb(a)); - Gfb(c, e - g10++); - } else { - h = b; - if (d != 32) { - !c && (c = new Jfb(a)); - kcb(c, e - g10, e - g10 + 1, String.fromCharCode(32)); - } - } - } else { - h = false; - } - } - if (h) { - if (!c) { - return a.substr(0, f - 1); - } else { - f = c.a.length; - return f > 0 ? qfb(c.a, 0, f - 1) : ""; - } - } else { - return !c ? a : c.a; - } - } - function DPb(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Yle), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new GPb()))); - p4c(a, Yle, Zle, Ksd(BPb)); - p4c(a, Yle, $le, Ksd(vPb)); - p4c(a, Yle, _le, Ksd(qPb)); - p4c(a, Yle, ame, Ksd(wPb)); - p4c(a, Yle, Zke, Ksd(zPb)); - p4c(a, Yle, $ke, Ksd(yPb)); - p4c(a, Yle, Yke, Ksd(APb)); - p4c(a, Yle, _ke, Ksd(xPb)); - p4c(a, Yle, Tle, Ksd(sPb)); - p4c(a, Yle, Ule, Ksd(rPb)); - p4c(a, Yle, Vle, Ksd(tPb)); - p4c(a, Yle, Wle, Ksd(uPb)); - } - function Zbc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - f = new b0b(a); - __b(f, (j0b(), i0b)); - yNb(f, (Nyc(), Vxc), (dcd(), $bd)); - e = 0; - if (b) { - g10 = new H0b(); - yNb(g10, (wtc(), $sc), b); - yNb(f, $sc, b.i); - G0b(g10, (Ucd(), Tcd)); - F0b(g10, f); - m = k_b(b.e); - for (j = m, k = 0, l = j.length; k < l; ++k) { - i10 = j[k]; - RZb(i10, g10); - } - yNb(b, gtc, f); - ++e; - } - if (c) { - h = new H0b(); - yNb(f, (wtc(), $sc), c.i); - yNb(h, $sc, c); - G0b(h, (Ucd(), zcd)); - F0b(h, f); - m = k_b(c.g); - for (j = m, k = 0, l = j.length; k < l; ++k) { - i10 = j[k]; - QZb(i10, h); - } - yNb(c, gtc, f); - ++e; - } - yNb(f, (wtc(), ysc), meb(e)); - d.c[d.c.length] = f; - return f; - } - function Smd() { - Smd = ccb; - Qmd = OC(GC(TD, 1), $ie, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]); - Rmd = new RegExp("[ \n\r\f]+"); - try { - Pmd = OC(GC(c6, 1), Uhe, 2015, 0, [new EQd((GA(), IA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", LA((KA(), KA(), JA))))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss'.'SSS", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm", LA((null, JA)))), new EQd(IA("yyyy-MM-dd", LA((null, JA))))]); - } catch (a) { - a = ubb(a); - if (!JD(a, 78)) - throw vbb(a); - } - } - function qgb(a) { - var b, c, d, e; - d = shb((!a.c && (a.c = fhb(a.f)), a.c), 0); - if (a.e == 0 || a.a == 0 && a.f != -1 && a.e < 0) { - return d; - } - b = pgb(a) < 0 ? 1 : 0; - c = a.e; - e = (d.length + 1 + $wnd.Math.abs(QD(a.e)), new Vfb()); - b == 1 && (e.a += "-", e); - if (a.e > 0) { - c -= d.length - b; - if (c >= 0) { - e.a += "0."; - for (; c > egb.length; c -= egb.length) { - Rfb(e, egb); - } - Sfb(e, egb, QD(c)); - Qfb(e, d.substr(b)); - } else { - c = b - c; - Qfb(e, qfb(d, b, QD(c))); - e.a += "."; - Qfb(e, pfb(d, QD(c))); - } - } else { - Qfb(e, d.substr(b)); - for (; c < -egb.length; c += egb.length) { - Rfb(e, egb); - } - Sfb(e, egb, QD(-c)); - } - return e.a; - } - function v6c(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - i10 = c7c(new f7c(c.a, c.b), a); - j = i10.a * b.b - i10.b * b.a; - k = b.a * d.b - b.b * d.a; - l = (i10.a * d.b - i10.b * d.a) / k; - m = j / k; - if (k == 0) { - if (j == 0) { - e = P6c(new f7c(c.a, c.b), Y6c(new f7c(d.a, d.b), 0.5)); - f = S6c(a, e); - g10 = S6c(P6c(new f7c(a.a, a.b), b), e); - h = $wnd.Math.sqrt(d.a * d.a + d.b * d.b) * 0.5; - if (f < g10 && f <= h) { - return new f7c(a.a, a.b); - } - if (g10 <= h) { - return P6c(new f7c(a.a, a.b), b); - } - return null; - } else { - return null; - } - } else { - return l >= 0 && l <= 1 && m >= 0 && m <= 1 ? P6c(new f7c(a.a, a.b), Y6c(new f7c(b.a, b.b), l)) : null; - } - } - function OTb(a, b, c) { - var d, e, f, g10, h; - d = BD(vNb(a, (Nyc(), zwc)), 21); - c.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c.a - b.a)); - c.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c.b - b.b)); - if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c.a > b.a || c.b > b.b)) { - for (h = new olb(a.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (g10.k == (j0b(), e0b)) { - e = BD(vNb(g10, Hsc), 61); - e == (Ucd(), zcd) ? g10.n.a += c.a - b.a : e == Rcd && (g10.n.b += c.b - b.b); - } - } - } - f = a.d; - a.f.a = c.a - f.b - f.c; - a.f.b = c.b - f.d - f.a; - } - function H5b(a, b, c) { - var d, e, f, g10, h; - d = BD(vNb(a, (Nyc(), zwc)), 21); - c.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c.a - b.a)); - c.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c.b - b.b)); - if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c.a > b.a || c.b > b.b)) { - for (g10 = new olb(a.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - if (f.k == (j0b(), e0b)) { - e = BD(vNb(f, Hsc), 61); - e == (Ucd(), zcd) ? f.n.a += c.a - b.a : e == Rcd && (f.n.b += c.b - b.b); - } - } - } - h = a.d; - a.f.a = c.a - h.b - h.c; - a.f.b = c.b - h.d - h.a; - } - function kMc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - b = DMc(a); - for (k = (h = new Pib(b).a.vc().Kc(), new Vib(h)); k.a.Ob(); ) { - j = (e = BD(k.a.Pb(), 42), BD(e.cd(), 10)); - l = 0; - m = 0; - l = j.d.d; - m = j.o.b + j.d.a; - a.d[j.p] = 0; - c = j; - while ((f = a.a[c.p]) != j) { - d = FMc(c, f); - i10 = 0; - a.c == (YLc(), WLc) ? i10 = d.d.n.b + d.d.a.b - d.c.n.b - d.c.a.b : i10 = d.c.n.b + d.c.a.b - d.d.n.b - d.d.a.b; - g10 = Edb(a.d[c.p]) + i10; - a.d[f.p] = g10; - l = $wnd.Math.max(l, f.d.d - g10); - m = $wnd.Math.max(m, g10 + f.o.b + f.d.a); - c = f; - } - c = j; - do { - a.d[c.p] = Edb(a.d[c.p]) + l; - c = a.a[c.p]; - } while (c != j); - a.b[j.p] = l + m; - } - } - function LOb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - a.b = false; - l = Pje; - i10 = Qje; - m = Pje; - j = Qje; - for (d = a.e.a.ec().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 266); - e = c.a; - l = $wnd.Math.min(l, e.c); - i10 = $wnd.Math.max(i10, e.c + e.b); - m = $wnd.Math.min(m, e.d); - j = $wnd.Math.max(j, e.d + e.a); - for (g10 = new olb(c.c); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 395); - b = f.a; - if (b.a) { - k = e.d + f.b.b; - h = k + f.c; - m = $wnd.Math.min(m, k); - j = $wnd.Math.max(j, h); - } else { - k = e.c + f.b.a; - h = k + f.c; - l = $wnd.Math.min(l, k); - i10 = $wnd.Math.max(i10, h); - } - } - } - a.a = new f7c(i10 - l, j - m); - a.c = new f7c(l + a.d.a, m + a.d.b); - } - function xZc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - l = new Rkb(); - k = new x$c(0, c); - f = 0; - s$c(k, new PZc(0, 0, k, c)); - e = 0; - for (j = new Fyd(a); j.e != j.i.gc(); ) { - i10 = BD(Dyd(j), 33); - d = BD(Ikb(k.a, k.a.c.length - 1), 187); - h = e + i10.g + (BD(Ikb(k.a, 0), 187).b.c.length == 0 ? 0 : c); - if (h > b) { - e = 0; - f += k.b + c; - l.c[l.c.length] = k; - k = new x$c(f, c); - d = new PZc(0, k.f, k, c); - s$c(k, d); - e = 0; - } - if (d.b.c.length == 0 || i10.f >= d.o && i10.f <= d.f || d.a * 0.5 <= i10.f && d.a * 1.5 >= i10.f) { - EZc(d, i10); - } else { - g10 = new PZc(d.s + d.r + c, k.f, k, c); - s$c(k, g10); - EZc(g10, i10); - } - e = i10.i + i10.g; - } - l.c[l.c.length] = k; - return l; - } - function OKd(a) { - var b, c, d, e, f, g10, h, i10; - if (!a.a) { - a.o = null; - i10 = new GNd(a); - b = new KNd(); - c = KKd; - h = c.a.zc(a, c); - if (h == null) { - for (g10 = new Fyd(_Kd(a)); g10.e != g10.i.gc(); ) { - f = BD(Dyd(g10), 26); - ytd(i10, OKd(f)); - } - c.a.Bc(a) != null; - c.a.gc() == 0 && void 0; - } - for (e = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 170); - JD(d, 322) && wtd(b, BD(d, 34)); - } - vud(b); - a.k = new PNd(a, (BD(qud(ZKd((NFd(), MFd).o), 7), 18), b.i), b.g); - ytd(i10, a.k); - vud(i10); - a.a = new nNd((BD(qud(ZKd(MFd.o), 4), 18), i10.i), i10.g); - $Kd(a).b &= -2; - } - return a.a; - } - function vZc(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m; - l = false; - i10 = ZZc(c.q, b.f + b.b - c.q.f); - m = e - (c.q.e + i10 - g10); - if (m < d.g) { - return false; - } - j = f == a.c.length - 1 && m >= (tCb(f, a.c.length), BD(a.c[f], 200)).e; - k = (h = MZc(d, m, false), h.a); - if (k > b.b && !j) { - return false; - } - if (j || k <= b.b) { - if (j && k > b.b) { - c.d = k; - KZc(c, JZc(c, k)); - } else { - $Zc(c.q, i10); - c.c = true; - } - KZc(d, e - (c.s + c.r)); - OZc(d, c.q.e + c.q.d, b.f); - s$c(b, d); - if (a.c.length > f) { - v$c((tCb(f, a.c.length), BD(a.c[f], 200)), d); - (tCb(f, a.c.length), BD(a.c[f], 200)).a.c.length == 0 && Kkb(a, f); - } - l = true; - } - return l; - } - function C2d(a, b, c, d) { - var e, f, g10, h, i10, j, k; - k = S6d(a.e.Tg(), b); - e = 0; - f = BD(a.g, 119); - i10 = null; - Q6d(); - if (BD(b, 66).Oj()) { - for (h = 0; h < a.i; ++h) { - g10 = f[h]; - if (k.rl(g10.ak())) { - if (pb(g10, c)) { - i10 = g10; - break; - } - ++e; - } - } - } else if (c != null) { - for (h = 0; h < a.i; ++h) { - g10 = f[h]; - if (k.rl(g10.ak())) { - if (pb(c, g10.dd())) { - i10 = g10; - break; - } - ++e; - } - } - } else { - for (h = 0; h < a.i; ++h) { - g10 = f[h]; - if (k.rl(g10.ak())) { - if (g10.dd() == null) { - i10 = g10; - break; - } - ++e; - } - } - } - if (i10) { - if (oid(a.e)) { - j = b.$j() ? new O7d(a.e, 4, b, c, null, e, true) : H2d(a, b.Kj() ? 2 : 1, b, c, b.zj(), -1, true); - d ? d.Ei(j) : d = j; - } - d = B2d(a, i10, d); - } - return d; - } - function kYc(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m, n, o10, p; - o10 = 0; - p = 0; - i10 = e.c; - h = e.b; - k = c.f; - n = c.g; - switch (b.g) { - case 0: - o10 = d.i + d.g + g10; - a.c ? p = tYc(o10, f, d, g10) : p = d.j; - m = $wnd.Math.max(i10, o10 + n); - j = $wnd.Math.max(h, p + k); - break; - case 1: - p = d.j + d.f + g10; - a.c ? o10 = sYc(p, f, d, g10) : o10 = d.i; - m = $wnd.Math.max(i10, o10 + n); - j = $wnd.Math.max(h, p + k); - break; - case 2: - o10 = i10 + g10; - p = 0; - m = i10 + g10 + n; - j = $wnd.Math.max(h, k); - break; - case 3: - o10 = 0; - p = h + g10; - m = $wnd.Math.max(i10, n); - j = h + g10 + k; - break; - default: - throw vbb(new Wdb("IllegalPlacementOption.")); - } - l = new e$c(a.a, m, j, b, o10, p); - return l; - } - function R2b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - h = a.d; - l = BD(vNb(a, (wtc(), vtc)), 15); - b = BD(vNb(a, tsc), 15); - if (!l && !b) { - return; - } - f = Edb(ED(pBc(a, (Nyc(), iyc)))); - g10 = Edb(ED(pBc(a, jyc))); - m = 0; - if (l) { - j = 0; - for (e = l.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 10); - j = $wnd.Math.max(j, d.o.b); - m += d.o.a; - } - m += f * (l.gc() - 1); - h.d += j + g10; - } - c = 0; - if (b) { - j = 0; - for (e = b.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 10); - j = $wnd.Math.max(j, d.o.b); - c += d.o.a; - } - c += f * (b.gc() - 1); - h.a += j + g10; - } - i10 = $wnd.Math.max(m, c); - if (i10 > a.o.a) { - k = (i10 - a.o.a) / 2; - h.b = $wnd.Math.max(h.b, k); - h.c = $wnd.Math.max(h.c, k); - } - } - function rvd(a) { - var b, c, d, e, f, g10, h, i10; - f = new b2c(); - Z1c(f, (Y1c(), V1c)); - for (d = (e = $B(a, KC(ZI, nie, 2, 0, 6, 1)), new vib(new amb(new mC(a, e).b))); d.b < d.d.gc(); ) { - c = (sCb(d.b < d.d.gc()), GD(d.d.Xb(d.c = d.b++))); - g10 = k4c(lvd, c); - if (g10) { - b = aC(a, c); - b.je() ? h = b.je().a : b.ge() ? h = "" + b.ge().a : b.he() ? h = "" + b.he().a : h = b.Ib(); - i10 = o5c(g10, h); - if (i10 != null) { - (uqb(g10.j, (N5c(), K5c)) || uqb(g10.j, L5c)) && xNb(_1c(f, E2), g10, i10); - uqb(g10.j, I5c) && xNb(_1c(f, B2), g10, i10); - uqb(g10.j, M5c) && xNb(_1c(f, F2), g10, i10); - uqb(g10.j, J5c) && xNb(_1c(f, D2), g10, i10); - } - } - } - return f; - } - function J2d(a, b, c, d) { - var e, f, g10, h, i10, j; - i10 = S6d(a.e.Tg(), b); - f = BD(a.g, 119); - if (T6d(a.e, b)) { - e = 0; - for (h = 0; h < a.i; ++h) { - g10 = f[h]; - if (i10.rl(g10.ak())) { - if (e == c) { - Q6d(); - if (BD(b, 66).Oj()) { - return g10; - } else { - j = g10.dd(); - j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j)); - return j; - } - } - ++e; - } - } - throw vbb(new qcb(gve + c + mue + e)); - } else { - e = 0; - for (h = 0; h < a.i; ++h) { - g10 = f[h]; - if (i10.rl(g10.ak())) { - Q6d(); - if (BD(b, 66).Oj()) { - return g10; - } else { - j = g10.dd(); - j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j)); - return j; - } - } - ++e; - } - return b.zj(); - } - } - function K2d(a, b, c) { - var d, e, f, g10, h, i10, j, k; - e = BD(a.g, 119); - if (T6d(a.e, b)) { - return Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a); - } else { - j = S6d(a.e.Tg(), b); - d = 0; - for (h = 0; h < a.i; ++h) { - f = e[h]; - g10 = f.ak(); - if (j.rl(g10)) { - Q6d(); - if (BD(b, 66).Oj()) { - return f; - } else if (g10 == (m8d(), k8d) || g10 == h8d) { - i10 = new Wfb(fcb(f.dd())); - while (++h < a.i) { - f = e[h]; - g10 = f.ak(); - (g10 == k8d || g10 == h8d) && Qfb(i10, fcb(f.dd())); - } - return j6d(BD(b.Yj(), 148), i10.a); - } else { - k = f.dd(); - k != null && c && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (k = b3d(a, b, h, d, k)); - return k; - } - } - ++d; - } - return b.zj(); - } - } - function MZc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - f = 0; - g10 = a.t; - e = 0; - d = 0; - i10 = 0; - m = 0; - l = 0; - if (c) { - a.n.c = KC(SI, Uhe, 1, 0, 5, 1); - Ekb(a.n, new VZc(a.s, a.t, a.i)); - } - h = 0; - for (k = new olb(a.b); k.a < k.c.c.length; ) { - j = BD(mlb(k), 33); - if (f + j.g + (h > 0 ? a.i : 0) > b && i10 > 0) { - f = 0; - g10 += i10 + a.i; - e = $wnd.Math.max(e, m); - d += i10 + a.i; - i10 = 0; - m = 0; - if (c) { - ++l; - Ekb(a.n, new VZc(a.s, g10, a.i)); - } - h = 0; - } - m += j.g + (h > 0 ? a.i : 0); - i10 = $wnd.Math.max(i10, j.f); - c && QZc(BD(Ikb(a.n, l), 211), j); - f += j.g + (h > 0 ? a.i : 0); - ++h; - } - e = $wnd.Math.max(e, m); - d += i10; - if (c) { - a.r = e; - a.d = d; - u$c(a.j); - } - return new J6c(a.s, a.t, e, d); - } - function $fb(a, b, c, d, e) { - Zfb(); - var f, g10, h, i10, j, k, l, m, n; - vCb(a, "src"); - vCb(c, "dest"); - m = rb(a); - i10 = rb(c); - rCb((m.i & 4) != 0, "srcType is not an array"); - rCb((i10.i & 4) != 0, "destType is not an array"); - l = m.c; - g10 = i10.c; - rCb((l.i & 1) != 0 ? l == g10 : (g10.i & 1) == 0, "Array types don't match"); - n = a.length; - j = c.length; - if (b < 0 || d < 0 || e < 0 || b + e > n || d + e > j) { - throw vbb(new pcb()); - } - if ((l.i & 1) == 0 && m != i10) { - k = CD(a); - f = CD(c); - if (PD(a) === PD(c) && b < d) { - b += e; - for (h = d + e; h-- > d; ) { - NC(f, h, k[--b]); - } - } else { - for (h = d + e; d < h; ) { - NC(f, d++, k[b++]); - } - } - } else - e > 0 && $Bb(a, b, c, d, e, true); - } - function phb() { - phb = ccb; - nhb = OC(GC(WD, 1), oje, 25, 15, [Rie, 1162261467, Iie, 1220703125, 362797056, 1977326743, Iie, 387420489, Jje, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, Iie, 1291467969, 1544804416, 1838265625, 60466176]); - ohb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]); - } - function soc(a) { - var b, c, d, e, f, g10, h, i10; - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - for (g10 = new olb(Mu(d.a)); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - if (ioc(f)) { - c = BD(vNb(f, (wtc(), usc)), 305); - if (!c.g && !!c.d) { - b = c; - i10 = c.d; - while (i10) { - roc(i10.i, i10.k, false, true); - zoc(b.a); - zoc(i10.i); - zoc(i10.k); - zoc(i10.b); - RZb(i10.c, b.c.d); - RZb(b.c, null); - $_b(b.a, null); - $_b(i10.i, null); - $_b(i10.k, null); - $_b(i10.b, null); - h = new goc(b.i, i10.a, b.e, i10.j, i10.f); - h.k = b.k; - h.n = b.n; - h.b = b.b; - h.c = i10.c; - h.g = b.g; - h.d = i10.d; - yNb(b.i, usc, h); - yNb(i10.a, usc, h); - i10 = i10.d; - b = h; - } - } - } - } - } - } - function Xfe(a, b) { - var c, d, e, f, g10; - g10 = BD(b, 136); - Yfe(a); - Yfe(g10); - if (g10.b == null) - return; - a.c = true; - if (a.b == null) { - a.b = KC(WD, oje, 25, g10.b.length, 15, 1); - $fb(g10.b, 0, a.b, 0, g10.b.length); - return; - } - f = KC(WD, oje, 25, a.b.length + g10.b.length, 15, 1); - for (c = 0, d = 0, e = 0; c < a.b.length || d < g10.b.length; ) { - if (c >= a.b.length) { - f[e++] = g10.b[d++]; - f[e++] = g10.b[d++]; - } else if (d >= g10.b.length) { - f[e++] = a.b[c++]; - f[e++] = a.b[c++]; - } else if (g10.b[d] < a.b[c] || g10.b[d] === a.b[c] && g10.b[d + 1] < a.b[c + 1]) { - f[e++] = g10.b[d++]; - f[e++] = g10.b[d++]; - } else { - f[e++] = a.b[c++]; - f[e++] = a.b[c++]; - } - } - a.b = f; - } - function S6b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - c = Ccb(DD(vNb(a, (wtc(), Usc)))); - h = Ccb(DD(vNb(b, Usc))); - d = BD(vNb(a, Vsc), 11); - i10 = BD(vNb(b, Vsc), 11); - e = BD(vNb(a, Wsc), 11); - j = BD(vNb(b, Wsc), 11); - k = !!d && d == i10; - l = !!e && e == j; - if (!c && !h) { - return new Z6b(BD(mlb(new olb(a.j)), 11).p == BD(mlb(new olb(b.j)), 11).p, k, l); - } - f = (!Ccb(DD(vNb(a, Usc))) || Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || Ccb(DD(vNb(b, Tsc)))); - g10 = (!Ccb(DD(vNb(a, Usc))) || !Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || !Ccb(DD(vNb(b, Tsc)))); - return new Z6b(k && f || l && g10, k, l); - } - function HZc(a) { - var b, c, d, e, f, g10, h, i10; - d = 0; - c = 0; - i10 = new Psb(); - b = 0; - for (h = new olb(a.n); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 211); - if (g10.c.c.length == 0) { - Gsb(i10, g10, i10.c.b, i10.c); - } else { - d = $wnd.Math.max(d, g10.d); - c += g10.a + (b > 0 ? a.i : 0); - } - ++b; - } - Ce(a.n, i10); - a.d = c; - a.r = d; - a.g = 0; - a.f = 0; - a.e = 0; - a.o = Pje; - a.p = Pje; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 33); - a.p = $wnd.Math.min(a.p, e.g); - a.g = $wnd.Math.max(a.g, e.g); - a.f = $wnd.Math.max(a.f, e.f); - a.o = $wnd.Math.min(a.o, e.f); - a.e += e.f + a.i; - } - a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length); - u$c(a.j); - } - function Sld(a) { - var b, c, d, e; - if ((a.Db & 64) != 0) - return Mkd(a); - b = new Wfb(_se); - d = a.k; - if (!d) { - !a.n && (a.n = new cUd(D2, a, 1, 7)); - if (a.n.i > 0) { - e = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a; - !e || Qfb(Qfb((b.a += ' "', b), e), '"'); - } - } else { - Qfb(Qfb((b.a += ' "', b), d), '"'); - } - c = (!a.b && (a.b = new y5d(z2, a, 4, 7)), !(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1))); - c ? (b.a += " [", b) : (b.a += " ", b); - Qfb(b, Eb(new Gb(), new Fyd(a.b))); - c && (b.a += "]", b); - b.a += gne; - c && (b.a += "[", b); - Qfb(b, Eb(new Gb(), new Fyd(a.c))); - c && (b.a += "]", b); - return b.a; - } - function TQd(a, b) { - var c, d, e, f, g10, h, i10; - if (a.a) { - h = a.a.ne(); - i10 = null; - if (h != null) { - b.a += "" + h; - } else { - g10 = a.a.Dj(); - if (g10 != null) { - f = hfb(g10, wfb(91)); - if (f != -1) { - i10 = g10.substr(f); - b.a += "" + qfb(g10 == null ? Xhe : (uCb(g10), g10), 0, f); - } else { - b.a += "" + g10; - } - } - } - if (!!a.d && a.d.i != 0) { - e = true; - b.a += "<"; - for (d = new Fyd(a.d); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 87); - e ? e = false : (b.a += She, b); - TQd(c, b); - } - b.a += ">"; - } - i10 != null && (b.a += "" + i10, b); - } else if (a.e) { - h = a.e.zb; - h != null && (b.a += "" + h, b); - } else { - b.a += "?"; - if (a.b) { - b.a += " super "; - TQd(a.b, b); - } else { - if (a.f) { - b.a += " extends "; - TQd(a.f, b); - } - } - } - } - function Z9b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - v = a.c; - w = b.c; - c = Jkb(v.a, a, 0); - d = Jkb(w.a, b, 0); - t = BD(W_b(a, (KAc(), HAc)).Kc().Pb(), 11); - C = BD(W_b(a, IAc).Kc().Pb(), 11); - u = BD(W_b(b, HAc).Kc().Pb(), 11); - D = BD(W_b(b, IAc).Kc().Pb(), 11); - r = k_b(t.e); - A = k_b(C.g); - s = k_b(u.e); - B = k_b(D.g); - Z_b(a, d, w); - for (g10 = s, k = 0, o10 = g10.length; k < o10; ++k) { - e = g10[k]; - RZb(e, t); - } - for (h = B, l = 0, p = h.length; l < p; ++l) { - e = h[l]; - QZb(e, C); - } - Z_b(b, c, v); - for (i10 = r, m = 0, q = i10.length; m < q; ++m) { - e = i10[m]; - RZb(e, u); - } - for (f = A, j = 0, n = f.length; j < n; ++j) { - e = f[j]; - QZb(e, D); - } - } - function $$b(a, b, c, d) { - var e, f, g10, h, i10, j, k; - f = a_b(d); - h = Ccb(DD(vNb(d, (Nyc(), uxc)))); - if ((h || Ccb(DD(vNb(a, exc)))) && !fcd(BD(vNb(a, Vxc), 98))) { - e = Zcd(f); - i10 = i_b(a, c, c == (KAc(), IAc) ? e : Wcd(e)); - } else { - i10 = new H0b(); - F0b(i10, a); - if (b) { - k = i10.n; - k.a = b.a - a.n.a; - k.b = b.b - a.n.b; - Q6c(k, 0, 0, a.o.a, a.o.b); - G0b(i10, W$b(i10, f)); - } else { - e = Zcd(f); - G0b(i10, c == (KAc(), IAc) ? e : Wcd(e)); - } - g10 = BD(vNb(d, (wtc(), Ksc)), 21); - j = i10.j; - switch (f.g) { - case 2: - case 1: - (j == (Ucd(), Acd) || j == Rcd) && g10.Fc((Orc(), Lrc)); - break; - case 4: - case 3: - (j == (Ucd(), zcd) || j == Tcd) && g10.Fc((Orc(), Lrc)); - } - } - return i10; - } - function pPc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - if ($wnd.Math.abs(b.s - b.c) < qme || $wnd.Math.abs(c.s - c.c) < qme) { - return 0; - } - d = oPc(a, b.j, c.e); - e = oPc(a, c.j, b.e); - f = d == -1 || e == -1; - g10 = 0; - if (f) { - if (d == -1) { - new DOc((HOc(), FOc), c, b, 1); - ++g10; - } - if (e == -1) { - new DOc((HOc(), FOc), b, c, 1); - ++g10; - } - } else { - h = vPc(b.j, c.s, c.c); - h += vPc(c.e, b.s, b.c); - i10 = vPc(c.j, b.s, b.c); - i10 += vPc(b.e, c.s, c.c); - j = d + 16 * h; - k = e + 16 * i10; - if (j < k) { - new DOc((HOc(), GOc), b, c, k - j); - } else if (j > k) { - new DOc((HOc(), GOc), c, b, j - k); - } else if (j > 0 && k > 0) { - new DOc((HOc(), GOc), b, c, 0); - new DOc(GOc, c, b, 0); - } - } - return g10; - } - function TUb(a, b) { - var c, d, e, f, g10, h; - for (g10 = new nib(new eib(a.f.b).a); g10.b; ) { - f = lib(g10); - e = BD(f.cd(), 594); - if (b == 1) { - if (e.gf() != (ead(), dad) && e.gf() != _9c) { - continue; - } - } else { - if (e.gf() != (ead(), aad) && e.gf() != bad) { - continue; - } - } - d = BD(BD(f.dd(), 46).b, 81); - h = BD(BD(f.dd(), 46).a, 189); - c = h.c; - switch (e.gf().g) { - case 2: - d.g.c = a.e.a; - d.g.b = $wnd.Math.max(1, d.g.b + c); - break; - case 1: - d.g.c = d.g.c + c; - d.g.b = $wnd.Math.max(1, d.g.b - c); - break; - case 4: - d.g.d = a.e.b; - d.g.a = $wnd.Math.max(1, d.g.a + c); - break; - case 3: - d.g.d = d.g.d + c; - d.g.a = $wnd.Math.max(1, d.g.a - c); - } - } - } - function nJc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - h = KC(WD, oje, 25, b.b.c.length, 15, 1); - j = KC(NQ, Kie, 267, b.b.c.length, 0, 1); - i10 = KC(OQ, kne, 10, b.b.c.length, 0, 1); - for (l = a.a, m = 0, n = l.length; m < n; ++m) { - k = l[m]; - p = 0; - for (g10 = new olb(k.e); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 10); - d = G1b(e.c); - ++h[d]; - o10 = Edb(ED(vNb(b, (Nyc(), lyc)))); - h[d] > 0 && !!i10[d] && (o10 = jBc(a.b, i10[d], e)); - p = $wnd.Math.max(p, e.c.c.b + o10); - } - for (f = new olb(k.e); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - e.n.b = p + e.d.d; - c = e.c; - c.c.b = p + e.d.d + e.o.b + e.d.a; - j[Jkb(c.b.b, c, 0)] = e.k; - i10[Jkb(c.b.b, c, 0)] = e; - } - } - } - function LXc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - for (d = new Sr(ur(_sd(b).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 79); - if (!JD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 186)) { - i10 = atd(BD(qud((!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c), 0), 82)); - if (!Pld(c)) { - g10 = b.i + b.g / 2; - h = b.j + b.f / 2; - k = i10.i + i10.g / 2; - l = i10.j + i10.f / 2; - m = new d7c(); - m.a = k - g10; - m.b = l - h; - f = new f7c(m.a, m.b); - l6c(f, b.g, b.f); - m.a -= f.a; - m.b -= f.b; - g10 = k - m.a; - h = l - m.b; - j = new f7c(m.a, m.b); - l6c(j, i10.g, i10.f); - m.a -= j.a; - m.b -= j.b; - k = g10 + m.a; - l = h + m.b; - e = itd(c, true, true); - omd(e, g10); - pmd(e, h); - hmd(e, k); - imd(e, l); - LXc(a, i10); - } - } - } - } - function e0c(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Pre), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new h0c()))); - p4c(a, Pre, Qre, Ksd(c0c)); - p4c(a, Pre, Rre, Ksd(__c)); - p4c(a, Pre, Sre, Ksd($_c)); - p4c(a, Pre, Tre, Ksd(Y_c)); - p4c(a, Pre, Ure, Ksd(Z_c)); - p4c(a, Pre, ame, X_c); - p4c(a, Pre, wme, 8); - p4c(a, Pre, Vre, Ksd(b0c)); - p4c(a, Pre, Wre, Ksd(T_c)); - p4c(a, Pre, Xre, Ksd(U_c)); - p4c(a, Pre, Zpe, (Bcb(), false)); - } - function JLc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - Odd(b, "Simple node placement", 1); - l = BD(vNb(a, (wtc(), otc)), 304); - h = 0; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - d = BD(mlb(f), 29); - g10 = d.c; - g10.b = 0; - c = null; - for (j = new olb(d.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - !!c && (g10.b += hBc(i10, c, l.c)); - g10.b += i10.d.d + i10.o.b + i10.d.a; - c = i10; - } - h = $wnd.Math.max(h, g10.b); - } - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - g10 = d.c; - k = (h - g10.b) / 2; - c = null; - for (j = new olb(d.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - !!c && (k += hBc(i10, c, l.c)); - k += i10.d.d; - i10.n.b = k; - k += i10.o.b + i10.d.a; - c = i10; - } - } - Qdd(b); - } - function s2d(a, b, c, d) { - var e, f, g10, h, i10, j, k, l; - if (d.gc() == 0) { - return false; - } - i10 = (Q6d(), BD(b, 66).Oj()); - g10 = i10 ? d : new zud(d.gc()); - if (T6d(a.e, b)) { - if (b.hi()) { - for (k = d.Kc(); k.Ob(); ) { - j = k.Pb(); - if (!F2d(a, b, j, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) { - f = R6d(b, j); - g10.Fc(f); - } - } - } else if (!i10) { - for (k = d.Kc(); k.Ob(); ) { - j = k.Pb(); - f = R6d(b, j); - g10.Fc(f); - } - } - } else { - l = S6d(a.e.Tg(), b); - e = BD(a.g, 119); - for (h = 0; h < a.i; ++h) { - f = e[h]; - if (l.rl(f.ak())) { - throw vbb(new Wdb(Hwe)); - } - } - if (d.gc() > 1) { - throw vbb(new Wdb(Hwe)); - } - if (!i10) { - f = R6d(b, d.Kc().Pb()); - g10.Fc(f); - } - } - return xtd(a, I2d(a, b, c), g10); - } - function Pmc(a, b) { - var c, d, e, f; - Jmc(b.b.j); - MAb(NAb(new YAb(null, new Kub(b.d, 16)), new $mc()), new anc()); - for (f = new olb(b.d); f.a < f.c.c.length; ) { - e = BD(mlb(f), 101); - switch (e.e.g) { - case 0: - c = BD(Ikb(e.j, 0), 113).d.j; - mjc(e, BD(Btb(RAb(BD(Qc(e.k, c), 15).Oc(), Hmc)), 113)); - njc(e, BD(Btb(QAb(BD(Qc(e.k, c), 15).Oc(), Hmc)), 113)); - break; - case 1: - d = Bkc(e); - mjc(e, BD(Btb(RAb(BD(Qc(e.k, d[0]), 15).Oc(), Hmc)), 113)); - njc(e, BD(Btb(QAb(BD(Qc(e.k, d[1]), 15).Oc(), Hmc)), 113)); - break; - case 2: - Rmc(a, e); - break; - case 3: - Qmc(e); - break; - case 4: - Omc(a, e); - } - Mmc(e); - } - a.a = null; - } - function $Mc(a, b, c) { - var d, e, f, g10, h, i10, j, k; - d = a.a.o == (eMc(), dMc) ? Pje : Qje; - h = _Mc(a, new ZMc(b, c)); - if (!h.a && h.c) { - Dsb(a.d, h); - return d; - } else if (h.a) { - e = h.a.c; - i10 = h.a.d; - if (c) { - j = a.a.c == (YLc(), XLc) ? i10 : e; - f = a.a.c == XLc ? e : i10; - g10 = a.a.g[f.i.p]; - k = Edb(a.a.p[g10.p]) + Edb(a.a.d[f.i.p]) + f.n.b + f.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b; - } else { - j = a.a.c == (YLc(), WLc) ? i10 : e; - f = a.a.c == WLc ? e : i10; - k = Edb(a.a.p[a.a.g[f.i.p].p]) + Edb(a.a.d[f.i.p]) + f.n.b + f.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b; - } - a.a.n[a.a.g[e.i.p].p] = (Bcb(), true); - a.a.n[a.a.g[i10.i.p].p] = true; - return k; - } - return d; - } - function f3d(a, b, c) { - var d, e, f, g10, h, i10, j, k; - if (T6d(a.e, b)) { - i10 = (Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a)); - D2d(i10.c, i10.b); - b7d(i10, BD(c, 14)); - } else { - k = S6d(a.e.Tg(), b); - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - e = d[g10]; - f = e.ak(); - if (k.rl(f)) { - if (f == (m8d(), k8d) || f == h8d) { - j = m3d(a, b, c); - h = g10; - j ? Xxd(a, g10) : ++g10; - while (g10 < a.i) { - e = d[g10]; - f = e.ak(); - f == k8d || f == h8d ? Xxd(a, g10) : ++g10; - } - j || BD(Gtd(a, h, R6d(b, c)), 72); - } else - m3d(a, b, c) ? Xxd(a, g10) : BD(Gtd(a, g10, (Q6d(), BD(b, 66).Oj() ? BD(c, 72) : R6d(b, c))), 72); - return; - } - } - m3d(a, b, c) || wtd(a, (Q6d(), BD(b, 66).Oj() ? BD(c, 72) : R6d(b, c))); - } - } - function IMb(a, b, c) { - var d, e, f, g10, h, i10, j, k; - if (!pb(c, a.b)) { - a.b = c; - f = new LMb(); - g10 = BD(GAb(NAb(new YAb(null, new Kub(c.f, 16)), f), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21); - a.e = true; - a.f = true; - a.c = true; - a.d = true; - e = g10.Hc((RMb(), OMb)); - d = g10.Hc(PMb); - e && !d && (a.f = false); - !e && d && (a.d = false); - e = g10.Hc(NMb); - d = g10.Hc(QMb); - e && !d && (a.c = false); - !e && d && (a.e = false); - } - k = BD(a.a.Ce(b, c), 46); - i10 = BD(k.a, 19).a; - j = BD(k.b, 19).a; - h = false; - i10 < 0 ? a.c || (h = true) : a.e || (h = true); - j < 0 ? a.d || (h = true) : a.f || (h = true); - return h ? IMb(a, k, c) : k; - } - function oKb(a) { - var b, c, d, e; - e = a.o; - $Jb(); - if (a.A.dc() || pb(a.A, ZJb)) { - b = e.b; - } else { - b = fIb(a.f); - if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) { - b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, (Ucd(), zcd)), 244))); - b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, Tcd), 244))); - } - c = aKb(a); - !!c && (b = $wnd.Math.max(b, c.b)); - if (a.A.Hc(rdd)) { - if (a.q == (dcd(), _bd) || a.q == $bd) { - b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, (Ucd(), zcd)), 124))); - b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, Tcd), 124))); - } - } - } - Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? e.b = $wnd.Math.max(e.b, b) : e.b = b; - d = a.f.i; - d.d = 0; - d.a = b; - iIb(a.f); - } - function $Ic(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - for (l = 0; l < b.length; l++) { - for (h = a.Kc(); h.Ob(); ) { - f = BD(h.Pb(), 225); - f.Of(l, b); - } - for (m = 0; m < b[l].length; m++) { - for (i10 = a.Kc(); i10.Ob(); ) { - f = BD(i10.Pb(), 225); - f.Pf(l, m, b); - } - p = b[l][m].j; - for (n = 0; n < p.c.length; n++) { - for (j = a.Kc(); j.Ob(); ) { - f = BD(j.Pb(), 225); - f.Qf(l, m, n, b); - } - o10 = (tCb(n, p.c.length), BD(p.c[n], 11)); - c = 0; - for (e = new b1b(o10.b); llb(e.a) || llb(e.b); ) { - d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17); - for (k = a.Kc(); k.Ob(); ) { - f = BD(k.Pb(), 225); - f.Nf(l, m, n, c++, d, b); - } - } - } - } - } - for (g10 = a.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 225); - f.Mf(); - } - } - function J4b(a, b) { - var c, d, e, f, g10, h, i10; - a.b = Edb(ED(vNb(b, (Nyc(), myc)))); - a.c = Edb(ED(vNb(b, pyc))); - a.d = BD(vNb(b, Xwc), 336); - a.a = BD(vNb(b, swc), 275); - H4b(b); - h = BD(GAb(JAb(JAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new N4b()), new P4b()), new R4b()), new T4b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - for (e = h.Kc(); e.Ob(); ) { - c = BD(e.Pb(), 17); - g10 = BD(vNb(c, (wtc(), rtc)), 15); - g10.Jc(new V4b(a)); - yNb(c, rtc, null); - } - for (d = h.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 17); - i10 = BD(vNb(c, (wtc(), stc)), 17); - f = BD(vNb(c, ptc), 15); - B4b(a, f, i10); - yNb(c, ptc, null); - } - } - function uZd(a) { - a.b = null; - a.a = null; - a.o = null; - a.q = null; - a.v = null; - a.w = null; - a.B = null; - a.p = null; - a.Q = null; - a.R = null; - a.S = null; - a.T = null; - a.U = null; - a.V = null; - a.W = null; - a.bb = null; - a.eb = null; - a.ab = null; - a.H = null; - a.db = null; - a.c = null; - a.d = null; - a.f = null; - a.n = null; - a.r = null; - a.s = null; - a.u = null; - a.G = null; - a.J = null; - a.e = null; - a.j = null; - a.i = null; - a.g = null; - a.k = null; - a.t = null; - a.F = null; - a.I = null; - a.L = null; - a.M = null; - a.O = null; - a.P = null; - a.$ = null; - a.N = null; - a.Z = null; - a.cb = null; - a.K = null; - a.D = null; - a.A = null; - a.C = null; - a._ = null; - a.fb = null; - a.X = null; - a.Y = null; - a.gb = false; - a.hb = false; - } - function bKc(a) { - var b, c, d, e, f, g10, h, i10, j; - if (a.k != (j0b(), h0b)) { - return false; - } - if (a.j.c.length <= 1) { - return false; - } - f = BD(vNb(a, (Nyc(), Vxc)), 98); - if (f == (dcd(), $bd)) { - return false; - } - e = (Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? d = BD(vNb(a, Cxc), 197) : d = BD(vNb(Q_b(a), Dxc), 197), d); - if (e == Gzc) { - return false; - } - if (!(e == Fzc || e == Ezc)) { - g10 = Edb(ED(pBc(a, zyc))); - b = BD(vNb(a, yyc), 142); - !b && (b = new J_b(g10, g10, g10, g10)); - j = V_b(a, (Ucd(), Tcd)); - i10 = b.d + b.a + (j.gc() - 1) * g10; - if (i10 > a.o.b) { - return false; - } - c = V_b(a, zcd); - h = b.d + b.a + (c.gc() - 1) * g10; - if (h > a.o.b) { - return false; - } - } - return true; - } - function thb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - g10 = a.e; - i10 = b.e; - if (g10 == 0) { - return b; - } - if (i10 == 0) { - return a; - } - f = a.d; - h = b.d; - if (f + h == 2) { - c = xbb(a.a[0], Yje); - d = xbb(b.a[0], Yje); - if (g10 == i10) { - k = wbb(c, d); - o10 = Tbb(k); - n = Tbb(Pbb(k, 32)); - return n == 0 ? new Ugb(g10, o10) : new Vgb(g10, 2, OC(GC(WD, 1), oje, 25, 15, [o10, n])); - } - return ghb(g10 < 0 ? Qbb(d, c) : Qbb(c, d)); - } else if (g10 == i10) { - m = g10; - l = f >= h ? uhb(a.a, f, b.a, h) : uhb(b.a, h, a.a, f); - } else { - e = f != h ? f > h ? 1 : -1 : whb(a.a, b.a, f); - if (e == 0) { - return Hgb(), Ggb; - } - if (e == 1) { - m = g10; - l = zhb(a.a, f, b.a, h); - } else { - m = i10; - l = zhb(b.a, h, a.a, f); - } - } - j = new Vgb(m, l.length, l); - Jgb(j); - return j; - } - function oZb(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m, n; - l = Ccb(DD(vNb(b, (Nyc(), vxc)))); - m = null; - f == (KAc(), HAc) && d.c.i == c ? m = d.c : f == IAc && d.d.i == c && (m = d.d); - j = g10; - if (!j || !l || !!m) { - k = (Ucd(), Scd); - m ? k = m.j : fcd(BD(vNb(c, Vxc), 98)) && (k = f == HAc ? Tcd : zcd); - i10 = lZb(a, b, c, f, k, d); - h = kZb((Q_b(c), d)); - if (f == HAc) { - QZb(h, BD(Ikb(i10.j, 0), 11)); - RZb(h, e); - } else { - QZb(h, e); - RZb(h, BD(Ikb(i10.j, 0), 11)); - } - j = new yZb(d, h, i10, BD(vNb(i10, (wtc(), $sc)), 11), f, !m); - } else { - Ekb(j.e, d); - n = $wnd.Math.max(Edb(ED(vNb(j.d, Zwc))), Edb(ED(vNb(d, Zwc)))); - yNb(j.d, Zwc, n); - } - Rc(a.a, d, new BZb(j.d, b, f)); - return j; - } - function V1d(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - k = null; - !!a.d && (k = BD(Phb(a.d, b), 138)); - if (!k) { - f = a.a.Mh(); - l = f.i; - if (!a.d || Vhb(a.d) != l) { - i10 = new Lqb(); - !!a.d && Ld(i10, a.d); - j = i10.f.c + i10.g.c; - for (h = j; h < l; ++h) { - d = BD(qud(f, h), 138); - e = o1d(a.e, d).ne(); - c = BD(e == null ? jrb(i10.f, null, d) : Drb(i10.g, e, d), 138); - !!c && c != d && (e == null ? jrb(i10.f, null, c) : Drb(i10.g, e, c)); - } - if (i10.f.c + i10.g.c != l) { - for (g10 = 0; g10 < j; ++g10) { - d = BD(qud(f, g10), 138); - e = o1d(a.e, d).ne(); - c = BD(e == null ? jrb(i10.f, null, d) : Drb(i10.g, e, d), 138); - !!c && c != d && (e == null ? jrb(i10.f, null, c) : Drb(i10.g, e, c)); - } - } - a.d = i10; - } - k = BD(Phb(a.d, b), 138); - } - return k; - } - function lZb(a, b, c, d, e, f) { - var g10, h, i10, j, k, l; - g10 = null; - j = d == (KAc(), HAc) ? f.c : f.d; - i10 = a_b(b); - if (j.i == c) { - g10 = BD(Ohb(a.b, j), 10); - if (!g10) { - g10 = Z$b(j, BD(vNb(c, (Nyc(), Vxc)), 98), e, hZb(j), null, j.n, j.o, i10, b); - yNb(g10, (wtc(), $sc), j); - Rhb(a.b, j, g10); - } - } else { - g10 = Z$b((k = new zNb(), l = Edb(ED(vNb(b, (Nyc(), lyc)))) / 2, xNb(k, Uxc, l), k), BD(vNb(c, Vxc), 98), e, d == HAc ? -1 : 1, null, new d7c(), new f7c(0, 0), i10, b); - h = mZb(g10, c, d); - yNb(g10, (wtc(), $sc), h); - Rhb(a.b, h, g10); - } - BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc)); - fcd(BD(vNb(b, (Nyc(), Vxc)), 98)) ? yNb(b, Vxc, (dcd(), acd)) : yNb(b, Vxc, (dcd(), bcd)); - return g10; - } - function vNc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - Odd(b, "Orthogonal edge routing", 1); - j = Edb(ED(vNb(a, (Nyc(), wyc)))); - c = Edb(ED(vNb(a, myc))); - d = Edb(ED(vNb(a, pyc))); - m = new tPc(0, c); - q = 0; - g10 = new Bib(a.b, 0); - h = null; - k = null; - i10 = null; - l = null; - do { - k = g10.b < g10.d.gc() ? (sCb(g10.b < g10.d.gc()), BD(g10.d.Xb(g10.c = g10.b++), 29)) : null; - l = !k ? null : k.a; - if (h) { - h_b(h, q); - q += h.c.a; - } - p = !h ? q : q + d; - o10 = sPc(m, a, i10, l, p); - e = !h || Kq(i10, (FNc(), DNc)); - f = !k || Kq(l, (FNc(), DNc)); - if (o10 > 0) { - n = (o10 - 1) * c; - !!h && (n += d); - !!k && (n += d); - n < j && !e && !f && (n = j); - q += n; - } else - !e && !f && (q += j); - h = k; - i10 = l; - } while (k); - a.f.a = q; - Qdd(b); - } - function IEd() { - IEd = ccb; - var a; - HEd = new mFd(); - BEd = KC(ZI, nie, 2, 0, 6, 1); - uEd = Mbb(ZEd(33, 58), ZEd(1, 26)); - vEd = Mbb(ZEd(97, 122), ZEd(65, 90)); - wEd = ZEd(48, 57); - sEd = Mbb(uEd, 0); - tEd = Mbb(vEd, wEd); - xEd = Mbb(Mbb(0, ZEd(1, 6)), ZEd(33, 38)); - yEd = Mbb(Mbb(wEd, ZEd(65, 70)), ZEd(97, 102)); - EEd = Mbb(sEd, XEd("-_.!~*'()")); - FEd = Mbb(tEd, $Ed("-_.!~*'()")); - XEd(lve); - $Ed(lve); - Mbb(EEd, XEd(";:@&=+$,")); - Mbb(FEd, $Ed(";:@&=+$,")); - zEd = XEd(":/?#"); - AEd = $Ed(":/?#"); - CEd = XEd("/?#"); - DEd = $Ed("/?#"); - a = new Tqb(); - a.a.zc("jar", a); - a.a.zc("zip", a); - a.a.zc("archive", a); - GEd = (mmb(), new zob(a)); - } - function yUc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - yNb(b, (mTc(), cTc), 0); - i10 = BD(vNb(b, aTc), 86); - if (b.d.b == 0) { - if (i10) { - k = Edb(ED(vNb(i10, fTc))) + a.a + zUc(i10, b); - yNb(b, fTc, k); - } else { - yNb(b, fTc, 0); - } - } else { - for (d = (f = Jsb(new ZRc(b).a.d, 0), new aSc(f)); Wsb(d.a); ) { - c = BD(Xsb(d.a), 188).c; - yUc(a, c); - } - h = BD(pr((g10 = Jsb(new ZRc(b).a.d, 0), new aSc(g10))), 86); - l = BD(or((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86); - j = (Edb(ED(vNb(l, fTc))) + Edb(ED(vNb(h, fTc)))) / 2; - if (i10) { - k = Edb(ED(vNb(i10, fTc))) + a.a + zUc(i10, b); - yNb(b, fTc, k); - yNb(b, cTc, Edb(ED(vNb(b, fTc))) - j); - xUc(a, b); - } else { - yNb(b, fTc, j); - } - } - } - function Dbc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - h = 0; - o10 = 0; - i10 = tlb(a.f, a.f.length); - f = a.d; - g10 = a.i; - d = a.a; - e = a.b; - do { - n = 0; - for (k = new olb(a.p); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - m = Cbc(a, j); - c = true; - (a.q == (kAc(), dAc) || a.q == gAc) && (c = Ccb(DD(m.b))); - if (BD(m.a, 19).a < 0 && c) { - ++n; - i10 = tlb(a.f, a.f.length); - a.d = a.d + BD(m.a, 19).a; - o10 += f - a.d; - f = a.d + BD(m.a, 19).a; - g10 = a.i; - d = Mu(a.a); - e = Mu(a.b); - } else { - a.f = tlb(i10, i10.length); - a.d = f; - a.a = (Qb(d), d ? new Tkb(d) : Nu(new olb(d))); - a.b = (Qb(e), e ? new Tkb(e) : Nu(new olb(e))); - a.i = g10; - } - } - ++h; - l = n != 0 && Ccb(DD(b.Kb(new vgd(meb(o10), meb(h))))); - } while (l); - } - function lYc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C; - g10 = a.f; - m = b.f; - h = g10 == (k$c(), f$c) || g10 == h$c; - n = m == f$c || m == h$c; - i10 = g10 == g$c || g10 == i$c; - o10 = m == g$c || m == i$c; - j = g10 == g$c || g10 == f$c; - p = m == g$c || m == f$c; - if (h && n) { - return a.f == h$c ? a : b; - } else if (i10 && o10) { - return a.f == i$c ? a : b; - } else if (j && p) { - if (g10 == g$c) { - l = a; - k = b; - } else { - l = b; - k = a; - } - f = (q = c.j + c.f, r = l.e + d.f, s = $wnd.Math.max(q, r), t = s - $wnd.Math.min(c.j, l.e), u = l.d + d.g - c.i, u * t); - e = (v = c.i + c.g, w = k.d + d.g, A = $wnd.Math.max(v, w), B = A - $wnd.Math.min(c.i, k.d), C = k.e + d.f - c.j, B * C); - return f <= e ? a.f == g$c ? a : b : a.f == f$c ? a : b; - } - return a; - } - function wGb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - k = a.e.a.c.length; - for (g10 = new olb(a.e.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 121); - f.j = false; - } - a.i = KC(WD, oje, 25, k, 15, 1); - a.g = KC(WD, oje, 25, k, 15, 1); - a.n = new Rkb(); - e = 0; - l = new Rkb(); - for (i10 = new olb(a.e.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 121); - h.d = e++; - h.b.a.c.length == 0 && Ekb(a.n, h); - Gkb(l, h.g); - } - b = 0; - for (d = new olb(l); d.a < d.c.c.length; ) { - c = BD(mlb(d), 213); - c.c = b++; - c.f = false; - } - j = l.c.length; - if (a.b == null || a.b.length < j) { - a.b = KC(UD, Vje, 25, j, 15, 1); - a.c = KC(sbb, dle, 25, j, 16, 1); - } else { - Blb(a.c); - } - a.d = l; - a.p = new Asb(Cv(a.d.c.length)); - a.j = 1; - } - function sTb(a, b) { - var c, d, e, f, g10, h, i10, j, k; - if (b.e.c.length <= 1) { - return; - } - a.f = b; - a.d = BD(vNb(a.f, (bTb(), SSb)), 379); - a.g = BD(vNb(a.f, WSb), 19).a; - a.e = Edb(ED(vNb(a.f, TSb))); - a.c = Edb(ED(vNb(a.f, RSb))); - it(a.b); - for (e = new olb(a.f.c); e.a < e.c.c.length; ) { - d = BD(mlb(e), 282); - ht(a.b, d.c, d, null); - ht(a.b, d.d, d, null); - } - h = a.f.e.c.length; - a.a = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2); - for (j = new olb(a.f.e); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 144); - oTb(a, i10, a.a[i10.b]); - } - a.i = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2); - for (f = 0; f < h; ++f) { - for (g10 = 0; g10 < h; ++g10) { - c = a.a[f][g10]; - k = 1 / (c * c); - a.i[f][g10] = k; - } - } - } - function Vfe(a) { - var b, c, d, e; - if (a.b == null || a.b.length <= 2) - return; - if (a.a) - return; - b = 0; - e = 0; - while (e < a.b.length) { - if (b != e) { - a.b[b] = a.b[e++]; - a.b[b + 1] = a.b[e++]; - } else - e += 2; - c = a.b[b + 1]; - while (e < a.b.length) { - if (c + 1 < a.b[e]) - break; - if (c + 1 == a.b[e]) { - a.b[b + 1] = a.b[e + 1]; - c = a.b[b + 1]; - e += 2; - } else if (c >= a.b[e + 1]) { - e += 2; - } else if (c < a.b[e + 1]) { - a.b[b + 1] = a.b[e + 1]; - c = a.b[b + 1]; - e += 2; - } else { - throw vbb(new hz("Token#compactRanges(): Internel Error: [" + a.b[b] + "," + a.b[b + 1] + "] [" + a.b[e] + "," + a.b[e + 1] + "]")); - } - } - b += 2; - } - if (b != a.b.length) { - d = KC(WD, oje, 25, b, 15, 1); - $fb(a.b, 0, d, 0, b); - a.b = d; - } - a.a = true; - } - function pZb(a, b) { - var c, d, e, f, g10, h, i10; - for (g10 = Ec(a.a).Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 17); - if (f.b.c.length > 0) { - d = new Tkb(BD(Qc(a.a, f), 21)); - mmb(); - Okb(d, new EZb(b)); - e = new Bib(f.b, 0); - while (e.b < e.d.gc()) { - c = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70)); - h = -1; - switch (BD(vNb(c, (Nyc(), Qwc)), 272).g) { - case 1: - h = d.c.length - 1; - break; - case 0: - h = nZb(d); - break; - case 2: - h = 0; - } - if (h != -1) { - i10 = (tCb(h, d.c.length), BD(d.c[h], 243)); - Ekb(i10.b.b, c); - BD(vNb(Q_b(i10.b.c.i), (wtc(), Ksc)), 21).Fc((Orc(), Grc)); - BD(vNb(Q_b(i10.b.c.i), Ksc), 21).Fc(Erc); - uib(e); - yNb(c, btc, f); - } - } - } - QZb(f, null); - RZb(f, null); - } - } - function FLb(a, b) { - var c, d, e, f; - c = new KLb(); - d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21); - e = d.gc(); - e = e == 2 ? 1 : 0; - e == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new MLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (e = 0); - d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21); - f = d.gc(); - f = f == 2 ? 1 : 0; - f == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new OLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (f = 0); - if (e < f) { - return -1; - } - if (e == f) { - return 0; - } - return 1; - } - function h6b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - j = new Rkb(); - if (!wNb(a, (wtc(), Fsc))) { - return j; - } - for (d = BD(vNb(a, Fsc), 15).Kc(); d.Ob(); ) { - b = BD(d.Pb(), 10); - g6b(b, a); - j.c[j.c.length] = b; - } - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - for (h = new olb(e.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - if (g10.k != (j0b(), e0b)) { - continue; - } - i10 = BD(vNb(g10, Gsc), 10); - !!i10 && (k = new H0b(), F0b(k, g10), l = BD(vNb(g10, Hsc), 61), G0b(k, l), m = BD(Ikb(i10.j, 0), 11), n = new UZb(), QZb(n, k), RZb(n, m), void 0); - } - } - for (c = new olb(j); c.a < c.c.c.length; ) { - b = BD(mlb(c), 10); - $_b(b, BD(Ikb(a.b, a.b.c.length - 1), 29)); - } - return j; - } - function M1b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - b = mpd(a); - f = Ccb(DD(hkd(b, (Nyc(), fxc)))); - k = 0; - e = 0; - for (j = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); j.e != j.i.gc(); ) { - i10 = BD(Dyd(j), 79); - h = Qld(i10); - g10 = h && f && Ccb(DD(hkd(i10, gxc))); - m = atd(BD(qud((!i10.c && (i10.c = new y5d(z2, i10, 5, 8)), i10.c), 0), 82)); - h && g10 ? ++e : h && !g10 ? ++k : Xod(m) == b || m == b ? ++e : ++k; - } - for (d = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 79); - h = Qld(c); - g10 = h && f && Ccb(DD(hkd(c, gxc))); - l = atd(BD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 82)); - h && g10 ? ++k : h && !g10 ? ++e : Xod(l) == b || l == b ? ++k : ++e; - } - return k - e; - } - function ubc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - Odd(b, "Edge splitting", 1); - if (a.b.c.length <= 2) { - Qdd(b); - return; - } - f = new Bib(a.b, 0); - g10 = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 29)); - while (f.b < f.d.gc()) { - e = g10; - g10 = (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 29)); - for (i10 = new olb(e.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - for (k = new olb(h.j); k.a < k.c.c.length; ) { - j = BD(mlb(k), 11); - for (d = new olb(j.g); d.a < d.c.c.length; ) { - c = BD(mlb(d), 17); - m = c.d; - l = m.i.c; - l != e && l != g10 && zbc(c, (n = new b0b(a), __b(n, (j0b(), g0b)), yNb(n, (wtc(), $sc), c), yNb(n, (Nyc(), Vxc), (dcd(), $bd)), $_b(n, g10), n)); - } - } - } - } - Qdd(b); - } - function MTb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - h = b.p != null && !b.b; - h || Odd(b, kme, 1); - c = BD(vNb(a, (wtc(), itc)), 15); - g10 = 1 / c.gc(); - if (b.n) { - Sdd(b, "ELK Layered uses the following " + c.gc() + " modules:"); - n = 0; - for (m = c.Kc(); m.Ob(); ) { - k = BD(m.Pb(), 51); - d = (n < 10 ? "0" : "") + n++; - Sdd(b, " Slot " + d + ": " + hdb(rb(k))); - } - } - o10 = 0; - for (l = c.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 51); - k.pf(a, Udd(b, g10)); - ++o10; - } - for (f = new olb(a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - Gkb(a.a, e.a); - e.a.c = KC(SI, Uhe, 1, 0, 5, 1); - } - for (j = new olb(a.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - $_b(i10, null); - } - a.b.c = KC(SI, Uhe, 1, 0, 5, 1); - h || Qdd(b); - } - function kJc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A; - d = Edb(ED(vNb(b, (Nyc(), Bxc)))); - v = BD(vNb(b, Ayc), 19).a; - m = 4; - e = 3; - w = 20 / v; - n = false; - i10 = 0; - g10 = Ohe; - do { - f = i10 != 1; - l = i10 != 0; - A = 0; - for (q = a.a, s = 0, u = q.length; s < u; ++s) { - o10 = q[s]; - o10.f = null; - lJc(a, o10, f, l, d); - A += $wnd.Math.abs(o10.a); - } - do { - h = pJc(a, b); - } while (h); - for (p = a.a, r = 0, t = p.length; r < t; ++r) { - o10 = p[r]; - c = xJc(o10).a; - if (c != 0) { - for (k = new olb(o10.e); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - j.n.b += c; - } - } - } - if (i10 == 0 || i10 == 1) { - --m; - if (m <= 0 && (A < g10 || -m > v)) { - i10 = 2; - g10 = Ohe; - } else if (i10 == 0) { - i10 = 1; - g10 = A; - } else { - i10 = 0; - g10 = A; - } - } else { - n = A >= g10 || g10 - A < w; - g10 = A; - n && --e; - } - } while (!(n && e <= 0)); - } - function UCb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - o10 = new Lqb(); - for (f = a.a.ec().Kc(); f.Ob(); ) { - d = BD(f.Pb(), 168); - Rhb(o10, d, c.Je(d)); - } - g10 = (Qb(a), a ? new Tkb(a) : Nu(a.a.ec().Kc())); - Okb(g10, new WCb(o10)); - h = Gx(g10); - i10 = new hDb(b); - n = new Lqb(); - jrb(n.f, b, i10); - while (h.a.gc() != 0) { - j = null; - k = null; - l = null; - for (e = h.a.ec().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 168); - if (Edb(ED(Wd(irb(o10.f, d)))) <= Pje) { - if (Mhb(n, d.a) && !Mhb(n, d.b)) { - k = d.b; - l = d.a; - j = d; - break; - } - if (Mhb(n, d.b)) { - if (!Mhb(n, d.a)) { - k = d.a; - l = d.b; - j = d; - break; - } - } - } - } - if (!j) { - break; - } - m = new hDb(k); - Ekb(BD(Wd(irb(n.f, l)), 221).a, m); - jrb(n.f, k, m); - h.a.Bc(j) != null; - } - return i10; - } - function UBc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - Odd(c, "Depth-first cycle removal", 1); - l = b.a; - k = l.c.length; - a.c = new Rkb(); - a.d = KC(sbb, dle, 25, k, 16, 1); - a.a = KC(sbb, dle, 25, k, 16, 1); - a.b = new Rkb(); - g10 = 0; - for (j = new olb(l); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - i10.p = g10; - Qq(R_b(i10)) && Ekb(a.c, i10); - ++g10; - } - for (n = new olb(a.c); n.a < n.c.c.length; ) { - m = BD(mlb(n), 10); - TBc(a, m); - } - for (f = 0; f < k; f++) { - if (!a.d[f]) { - h = (tCb(f, l.c.length), BD(l.c[f], 10)); - TBc(a, h); - } - } - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - PZb(d, true); - yNb(b, (wtc(), Asc), (Bcb(), true)); - } - a.c = null; - a.d = null; - a.a = null; - a.b = null; - Qdd(c); - } - function PSc(a, b) { - var c, d, e, f, g10, h, i10; - a.a.c = KC(SI, Uhe, 1, 0, 5, 1); - for (d = Jsb(b.b, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 86); - if (c.b.b == 0) { - yNb(c, (mTc(), jTc), (Bcb(), true)); - Ekb(a.a, c); - } - } - switch (a.a.c.length) { - case 0: - e = new XRc(0, b, "DUMMY_ROOT"); - yNb(e, (mTc(), jTc), (Bcb(), true)); - yNb(e, YSc, true); - Dsb(b.b, e); - break; - case 1: - break; - default: - f = new XRc(0, b, "SUPER_ROOT"); - for (h = new olb(a.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 86); - i10 = new QRc(f, g10); - yNb(i10, (mTc(), YSc), (Bcb(), true)); - Dsb(f.a.a, i10); - Dsb(f.d, i10); - Dsb(g10.b, i10); - yNb(g10, jTc, false); - } - yNb(f, (mTc(), jTc), (Bcb(), true)); - yNb(f, YSc, true); - Dsb(b.b, f); - } - } - function z6c(a, b) { - i6c(); - var c, d, e, f, g10, h; - f = b.c - (a.c + a.b); - e = a.c - (b.c + b.b); - g10 = a.d - (b.d + b.a); - c = b.d - (a.d + a.a); - d = $wnd.Math.max(e, f); - h = $wnd.Math.max(g10, c); - Iy(); - My(Jqe); - if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) >= 0 ^ (null, My(Jqe), ($wnd.Math.abs(h) <= Jqe || h == 0 || isNaN(h) && isNaN(0) ? 0 : h < 0 ? -1 : h > 0 ? 1 : Ny(isNaN(h), isNaN(0))) >= 0)) { - return $wnd.Math.max(h, d); - } - My(Jqe); - if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) > 0) { - return $wnd.Math.sqrt(h * h + d * d); - } - return -$wnd.Math.sqrt(h * h + d * d); - } - function Kge(a, b) { - var c, d, e, f, g10, h; - if (!b) - return; - !a.a && (a.a = new Wvb()); - if (a.e == 2) { - Tvb(a.a, b); - return; - } - if (b.e == 1) { - for (e = 0; e < b.em(); e++) - Kge(a, b.am(e)); - return; - } - h = a.a.a.c.length; - if (h == 0) { - Tvb(a.a, b); - return; - } - g10 = BD(Uvb(a.a, h - 1), 117); - if (!((g10.e == 0 || g10.e == 10) && (b.e == 0 || b.e == 10))) { - Tvb(a.a, b); - return; - } - f = b.e == 0 ? 2 : b.bm().length; - if (g10.e == 0) { - c = new Ifb(); - d = g10._l(); - d >= Tje ? Efb(c, Tee(d)) : Afb(c, d & aje); - g10 = (++vfe, new Hge(10, null, 0)); - Vvb(a.a, g10, h - 1); - } else { - c = (g10.bm().length + f, new Ifb()); - Efb(c, g10.bm()); - } - if (b.e == 0) { - d = b._l(); - d >= Tje ? Efb(c, Tee(d)) : Afb(c, d & aje); - } else { - Efb(c, b.bm()); - } - BD(g10, 521).b = c.a; - } - function rgb(a) { - var b, c, d, e, f; - if (a.g != null) { - return a.g; - } - if (a.a < 32) { - a.g = rhb(Cbb(a.f), QD(a.e)); - return a.g; - } - e = shb((!a.c && (a.c = fhb(a.f)), a.c), 0); - if (a.e == 0) { - return e; - } - b = (!a.c && (a.c = fhb(a.f)), a.c).e < 0 ? 2 : 1; - c = e.length; - d = -a.e + c - b; - f = new Ufb(); - f.a += "" + e; - if (a.e > 0 && d >= -6) { - if (d >= 0) { - Tfb(f, c - QD(a.e), String.fromCharCode(46)); - } else { - f.a = qfb(f.a, 0, b - 1) + "0." + pfb(f.a, b - 1); - Tfb(f, b + 1, zfb(egb, 0, -QD(d) - 1)); - } - } else { - if (c - b >= 1) { - Tfb(f, b, String.fromCharCode(46)); - ++c; - } - Tfb(f, c, String.fromCharCode(69)); - d > 0 && Tfb(f, ++c, String.fromCharCode(43)); - Tfb(f, ++c, "" + Ubb(Cbb(d))); - } - a.g = f.a; - return a.g; - } - function npc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - if (c.dc()) { - return; - } - h = 0; - m = 0; - d = c.Kc(); - o10 = BD(d.Pb(), 19).a; - while (h < b.f) { - if (h == o10) { - m = 0; - d.Ob() ? o10 = BD(d.Pb(), 19).a : o10 = b.f + 1; - } - if (h != m) { - q = BD(Ikb(a.b, h), 29); - n = BD(Ikb(a.b, m), 29); - p = Mu(q.a); - for (l = new olb(p); l.a < l.c.c.length; ) { - k = BD(mlb(l), 10); - Z_b(k, n.a.c.length, n); - if (m == 0) { - g10 = Mu(R_b(k)); - for (f = new olb(g10); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - PZb(e, true); - yNb(a, (wtc(), Asc), (Bcb(), true)); - Noc(a, e, 1); - } - } - } - } - ++m; - ++h; - } - i10 = new Bib(a.b, 0); - while (i10.b < i10.d.gc()) { - j = (sCb(i10.b < i10.d.gc()), BD(i10.d.Xb(i10.c = i10.b++), 29)); - j.a.c.length == 0 && uib(i10); - } - } - function xmc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - g10 = b.b; - k = g10.o; - i10 = g10.d; - d = Edb(ED(c_b(g10, (Nyc(), lyc)))); - e = Edb(ED(c_b(g10, nyc))); - j = Edb(ED(c_b(g10, xyc))); - h = new L_b(); - v_b(h, i10.d, i10.c, i10.a, i10.b); - m = tmc(b, d, e, j); - for (r = new olb(b.d); r.a < r.c.c.length; ) { - q = BD(mlb(r), 101); - for (o10 = q.f.a.ec().Kc(); o10.Ob(); ) { - n = BD(o10.Pb(), 409); - f = n.a; - l = rmc(n); - c = (s = new s7c(), pmc(n, n.c, m, s), omc(n, l, m, s), pmc(n, n.d, m, s), s); - c = a.Uf(n, l, c); - Osb(f.a); - ye(f.a, c); - MAb(new YAb(null, new Kub(c, 16)), new Bmc(k, h)); - } - p = q.i; - if (p) { - wmc(q, p, m, e); - t = new g7c(p.g); - ymc(k, h, t); - P6c(t, p.j); - ymc(k, h, t); - } - } - v_b(i10, h.d, h.c, h.a, h.b); - } - function rgc(a, b, c) { - var d, e, f; - e = BD(vNb(b, (Nyc(), swc)), 275); - if (e == (yrc(), wrc)) { - return; - } - Odd(c, "Horizontal Compaction", 1); - a.a = b; - f = new Ygc(); - d = new cEb((f.d = b, f.c = BD(vNb(f.d, Swc), 218), Pgc(f), Wgc(f), Vgc(f), f.a)); - aEb(d, a.b); - switch (BD(vNb(b, rwc), 422).g) { - case 1: - $Db(d, new jfc(a.a)); - break; - default: - $Db(d, (ODb(), MDb)); - } - switch (e.g) { - case 1: - TDb(d); - break; - case 2: - TDb(SDb(d, (ead(), bad))); - break; - case 3: - TDb(_Db(SDb(TDb(d), (ead(), bad)), new Bgc())); - break; - case 4: - TDb(_Db(SDb(TDb(d), (ead(), bad)), new Dgc(f))); - break; - case 5: - TDb(ZDb(d, pgc)); - } - SDb(d, (ead(), aad)); - d.e = true; - Mgc(f); - Qdd(c); - } - function mYc(a, b, c, d, e, f, g10, h) { - var i10, j, k, l; - i10 = Ou(OC(GC(z_, 1), Uhe, 220, 0, [b, c, d, e])); - l = null; - switch (a.b.g) { - case 1: - l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new uYc(), new oYc(), new qYc()])); - break; - case 0: - l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new qYc(), new oYc(), new uYc()])); - break; - case 2: - l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new oYc(), new uYc(), new qYc()])); - } - for (k = new olb(l); k.a < k.c.c.length; ) { - j = BD(mlb(k), 526); - i10.c.length > 1 && (i10 = j.mg(i10, a.a, h)); - } - if (i10.c.length == 1) { - return BD(Ikb(i10, i10.c.length - 1), 220); - } - if (i10.c.length == 2) { - return lYc((tCb(0, i10.c.length), BD(i10.c[0], 220)), (tCb(1, i10.c.length), BD(i10.c[1], 220)), g10, f); - } - return null; - } - function JNb(a) { - var b, c, d, e, f, g10; - Hkb(a.a, new PNb()); - for (c = new olb(a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 221); - d = c7c(R6c(BD(a.b, 65).c), BD(b.b, 65).c); - if (FNb) { - g10 = BD(a.b, 65).b; - f = BD(b.b, 65).b; - if ($wnd.Math.abs(d.a) >= $wnd.Math.abs(d.b)) { - d.b = 0; - f.d + f.a > g10.d && f.d < g10.d + g10.a && $6c(d, $wnd.Math.max(g10.c - (f.c + f.b), f.c - (g10.c + g10.b))); - } else { - d.a = 0; - f.c + f.b > g10.c && f.c < g10.c + g10.b && $6c(d, $wnd.Math.max(g10.d - (f.d + f.a), f.d - (g10.d + g10.a))); - } - } else { - $6c(d, _Nb(BD(a.b, 65), BD(b.b, 65))); - } - e = $wnd.Math.sqrt(d.a * d.a + d.b * d.b); - e = LNb(GNb, b, e, d); - $6c(d, e); - $Nb(BD(b.b, 65), d); - Hkb(b.a, new RNb(d)); - BD(GNb.b, 65); - KNb(GNb, HNb, b); - } - } - function VJc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - a.f = new KFb(); - j = 0; - e = 0; - for (g10 = new olb(a.e.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - for (i10 = new olb(f.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - h.p = j++; - for (d = new Sr(ur(U_b(h).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 17); - c.p = e++; - } - b = bKc(h); - for (m = new olb(h.j); m.a < m.c.c.length; ) { - l = BD(mlb(m), 11); - if (b) { - o10 = l.a.b; - if (o10 != $wnd.Math.floor(o10)) { - k = o10 - Sbb(Cbb($wnd.Math.round(o10))); - l.a.b -= k; - } - } - n = l.n.b + l.a.b; - if (n != $wnd.Math.floor(n)) { - k = n - Sbb(Cbb($wnd.Math.round(n))); - l.n.b -= k; - } - } - } - } - a.g = j; - a.b = e; - a.i = KC(xY, Uhe, 401, j, 0, 1); - a.c = KC(wY, Uhe, 649, e, 0, 1); - a.d.a.$b(); - } - function Uxd(a) { - var b, c, d, e, f, g10, h, i10, j; - if (a.ej()) { - i10 = a.fj(); - if (a.i > 0) { - b = new _zd(a.i, a.g); - c = a.i; - f = c < 100 ? null : new Ixd(c); - if (a.ij()) { - for (d = 0; d < a.i; ++d) { - g10 = a.g[d]; - f = a.kj(g10, f); - } - } - oud(a); - e = c == 1 ? a.Zi(4, qud(b, 0), null, 0, i10) : a.Zi(6, b, null, -1, i10); - if (a.bj()) { - for (d = new $yd(b); d.e != d.i.gc(); ) { - f = a.dj(Zyd(d), f); - } - if (!f) { - a.$i(e); - } else { - f.Ei(e); - f.Fi(); - } - } else { - if (!f) { - a.$i(e); - } else { - f.Ei(e); - f.Fi(); - } - } - } else { - oud(a); - a.$i(a.Zi(6, (mmb(), jmb), null, -1, i10)); - } - } else if (a.bj()) { - if (a.i > 0) { - h = a.g; - j = a.i; - oud(a); - f = j < 100 ? null : new Ixd(j); - for (d = 0; d < j; ++d) { - g10 = h[d]; - f = a.dj(g10, f); - } - !!f && f.Fi(); - } else { - oud(a); - } - } else { - oud(a); - } - } - function ZQc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - TQc(this); - c == (FQc(), DQc) ? Qqb(this.r, a) : Qqb(this.w, a); - k = Pje; - j = Qje; - for (g10 = b.a.ec().Kc(); g10.Ob(); ) { - e = BD(g10.Pb(), 46); - h = BD(e.a, 455); - d = BD(e.b, 17); - i10 = d.c; - i10 == a && (i10 = d.d); - h == DQc ? Qqb(this.r, i10) : Qqb(this.w, i10); - m = (Ucd(), Lcd).Hc(i10.j) ? Edb(ED(vNb(i10, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [i10.i.n, i10.n, i10.a])).b; - k = $wnd.Math.min(k, m); - j = $wnd.Math.max(j, m); - } - l = (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b; - XQc(this, l, k, j); - for (f = b.a.ec().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 46); - UQc(this, BD(e.b, 17)); - } - this.o = false; - } - function gD(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G; - c = a.l & 8191; - d = a.l >> 13 | (a.m & 15) << 9; - e = a.m >> 4 & 8191; - f = a.m >> 17 | (a.h & 255) << 5; - g10 = (a.h & 1048320) >> 8; - h = b.l & 8191; - i10 = b.l >> 13 | (b.m & 15) << 9; - j = b.m >> 4 & 8191; - k = b.m >> 17 | (b.h & 255) << 5; - l = (b.h & 1048320) >> 8; - B = c * h; - C = d * h; - D = e * h; - F = f * h; - G = g10 * h; - if (i10 != 0) { - C += c * i10; - D += d * i10; - F += e * i10; - G += f * i10; - } - if (j != 0) { - D += c * j; - F += d * j; - G += e * j; - } - if (k != 0) { - F += c * k; - G += d * k; - } - l != 0 && (G += c * l); - n = B & Eje; - o10 = (C & 511) << 13; - m = n + o10; - q = B >> 22; - r = C >> 9; - s = (D & 262143) << 4; - t = (F & 31) << 17; - p = q + r + s + t; - v = D >> 18; - w = F >> 5; - A = (G & 4095) << 8; - u = v + w + A; - p += m >> 22; - m &= Eje; - u += p >> 22; - p &= Eje; - u &= Fje; - return TC(m, p, u); - } - function o7b(a) { - var b, c, d, e, f, g10, h; - h = BD(Ikb(a.j, 0), 11); - if (h.g.c.length != 0 && h.e.c.length != 0) { - throw vbb(new Zdb("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.")); - } - if (h.g.c.length != 0) { - f = Pje; - for (c = new olb(h.g); c.a < c.c.c.length; ) { - b = BD(mlb(c), 17); - g10 = b.d.i; - d = BD(vNb(g10, (Nyc(), txc)), 142); - f = $wnd.Math.min(f, g10.n.a - d.b); - } - return new cc(Qb(f)); - } - if (h.e.c.length != 0) { - e = Qje; - for (c = new olb(h.e); c.a < c.c.c.length; ) { - b = BD(mlb(c), 17); - g10 = b.c.i; - d = BD(vNb(g10, (Nyc(), txc)), 142); - e = $wnd.Math.max(e, g10.n.a + g10.o.a + d.c); - } - return new cc(Qb(e)); - } - return wb(), wb(), vb; - } - function ELd(a, b) { - var c, d, e, f, g10, h, i10; - if (a.Fk()) { - if (a.i > 4) { - if (a.wj(b)) { - if (a.rk()) { - e = BD(b, 49); - d = e.Ug(); - i10 = d == a.e && (a.Dk() ? e.Og(e.Vg(), a.zk()) == a.Ak() : -1 - e.Vg() == a.aj()); - if (a.Ek() && !i10 && !d && !!e.Zg()) { - for (f = 0; f < a.i; ++f) { - c = a.Gk(BD(a.g[f], 56)); - if (PD(c) === PD(b)) { - return true; - } - } - } - return i10; - } else if (a.Dk() && !a.Ck()) { - g10 = BD(b, 56).ah(zUd(BD(a.ak(), 18))); - if (PD(g10) === PD(a.e)) { - return true; - } else if (g10 == null || !BD(g10, 56).kh()) { - return false; - } - } - } else { - return false; - } - } - h = pud(a, b); - if (a.Ek() && !h) { - for (f = 0; f < a.i; ++f) { - e = a.Gk(BD(a.g[f], 56)); - if (PD(e) === PD(b)) { - return true; - } - } - } - return h; - } else { - return pud(a, b); - } - } - function mHc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - k = new Rkb(); - m = new Tqb(); - g10 = b.b; - for (e = 0; e < g10.c.length; e++) { - j = (tCb(e, g10.c.length), BD(g10.c[e], 29)).a; - k.c = KC(SI, Uhe, 1, 0, 5, 1); - for (f = 0; f < j.c.length; f++) { - h = a.a[e][f]; - h.p = f; - h.k == (j0b(), i0b) && (k.c[k.c.length] = h, true); - Nkb(BD(Ikb(b.b, e), 29).a, f, h); - h.j.c = KC(SI, Uhe, 1, 0, 5, 1); - Gkb(h.j, BD(BD(Ikb(a.b, e), 15).Xb(f), 14)); - ecd(BD(vNb(h, (Nyc(), Vxc)), 98)) || yNb(h, Vxc, (dcd(), Zbd)); - } - for (d = new olb(k); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - l = kHc(c); - m.a.zc(l, m); - m.a.zc(c, m); - } - } - for (i10 = m.a.ec().Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 10); - mmb(); - Okb(h.j, (Occ(), Icc)); - h.i = true; - N_b(h); - } - } - function g6b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - k = BD(vNb(a, (wtc(), Hsc)), 61); - d = BD(Ikb(a.j, 0), 11); - k == (Ucd(), Acd) ? G0b(d, Rcd) : k == Rcd && G0b(d, Acd); - if (BD(vNb(b, (Nyc(), Fxc)), 174).Hc((tdd(), sdd))) { - i10 = Edb(ED(vNb(a, tyc))); - j = Edb(ED(vNb(a, uyc))); - g10 = Edb(ED(vNb(a, ryc))); - h = BD(vNb(b, Yxc), 21); - if (h.Hc((rcd(), ncd))) { - c = j; - l = a.o.a / 2 - d.n.a; - for (f = new olb(d.f); f.a < f.c.c.length; ) { - e = BD(mlb(f), 70); - e.n.b = c; - e.n.a = l - e.o.a / 2; - c += e.o.b + g10; - } - } else if (h.Hc(pcd)) { - for (f = new olb(d.f); f.a < f.c.c.length; ) { - e = BD(mlb(f), 70); - e.n.a = i10 + a.o.a - d.n.a; - } - } - WGb(new YGb((a$b(), new l$b(b, false, false, new T$b()))), new x$b(null, a, false)); - } - } - function Ugc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - if (b.c.length == 0) { - return; - } - mmb(); - Mlb(b.c, b.c.length, null); - e = new olb(b); - d = BD(mlb(e), 145); - while (e.a < e.c.c.length) { - c = BD(mlb(e), 145); - if (ADb(d.e.c, c.e.c) && !(DDb(B6c(d.e).b, c.e.d) || DDb(B6c(c.e).b, d.e.d))) { - d = (Gkb(d.k, c.k), Gkb(d.b, c.b), Gkb(d.c, c.c), ye(d.i, c.i), Gkb(d.d, c.d), Gkb(d.j, c.j), f = $wnd.Math.min(d.e.c, c.e.c), g10 = $wnd.Math.min(d.e.d, c.e.d), h = $wnd.Math.max(d.e.c + d.e.b, c.e.c + c.e.b), i10 = h - f, j = $wnd.Math.max(d.e.d + d.e.a, c.e.d + c.e.a), k = j - g10, G6c(d.e, f, g10, i10, k), hEb(d.f, c.f), !d.a && (d.a = c.a), Gkb(d.g, c.g), Ekb(d.g, c), d); - } else { - Xgc(a, d); - d = c; - } - } - Xgc(a, d); - } - function e_b(a, b, c, d) { - var e, f, g10, h, i10, j; - h = a.j; - if (h == (Ucd(), Scd) && b != (dcd(), bcd) && b != (dcd(), ccd)) { - h = W$b(a, c); - G0b(a, h); - !(!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Uxc)) && h != Scd && (a.n.a != 0 || a.n.b != 0) && yNb(a, Uxc, V$b(a, h)); - } - if (b == (dcd(), _bd)) { - j = 0; - switch (h.g) { - case 1: - case 3: - f = a.i.o.a; - f > 0 && (j = a.n.a / f); - break; - case 2: - case 4: - e = a.i.o.b; - e > 0 && (j = a.n.b / e); - } - yNb(a, (wtc(), htc), j); - } - i10 = a.o; - g10 = a.a; - if (d) { - g10.a = d.a; - g10.b = d.b; - a.d = true; - } else if (b != bcd && b != ccd && h != Scd) { - switch (h.g) { - case 1: - g10.a = i10.a / 2; - break; - case 2: - g10.a = i10.a; - g10.b = i10.b / 2; - break; - case 3: - g10.a = i10.a / 2; - g10.b = i10.b; - break; - case 4: - g10.b = i10.b / 2; - } - } else { - g10.a = i10.a / 2; - g10.b = i10.b / 2; - } - } - function vwd(a) { - var b, c, d, e, f, g10, h, i10, j, k; - if (a.ej()) { - k = a.Vi(); - i10 = a.fj(); - if (k > 0) { - b = new Aud(a.Gi()); - c = k; - f = c < 100 ? null : new Ixd(c); - Cvd(a, c, b.g); - e = c == 1 ? a.Zi(4, qud(b, 0), null, 0, i10) : a.Zi(6, b, null, -1, i10); - if (a.bj()) { - for (d = new Fyd(b); d.e != d.i.gc(); ) { - f = a.dj(Dyd(d), f); - } - if (!f) { - a.$i(e); - } else { - f.Ei(e); - f.Fi(); - } - } else { - if (!f) { - a.$i(e); - } else { - f.Ei(e); - f.Fi(); - } - } - } else { - Cvd(a, a.Vi(), a.Wi()); - a.$i(a.Zi(6, (mmb(), jmb), null, -1, i10)); - } - } else if (a.bj()) { - k = a.Vi(); - if (k > 0) { - h = a.Wi(); - j = k; - Cvd(a, k, h); - f = j < 100 ? null : new Ixd(j); - for (d = 0; d < j; ++d) { - g10 = h[d]; - f = a.dj(g10, f); - } - !!f && f.Fi(); - } else { - Cvd(a, a.Vi(), a.Wi()); - } - } else { - Cvd(a, a.Vi(), a.Wi()); - } - } - function LEc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - for (h = new olb(b); h.a < h.c.c.length; ) { - f = BD(mlb(h), 233); - f.e = null; - f.c = 0; - } - i10 = null; - for (g10 = new olb(b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 233); - l = f.d[0]; - if (c && l.k != (j0b(), h0b)) { - continue; - } - for (n = BD(vNb(l, (wtc(), Qsc)), 15).Kc(); n.Ob(); ) { - m = BD(n.Pb(), 10); - if (!c || m.k == (j0b(), h0b)) { - (!f.e && (f.e = new Rkb()), f.e).Fc(a.b[m.c.p][m.p]); - ++a.b[m.c.p][m.p].c; - } - } - if (!c && l.k == (j0b(), h0b)) { - if (i10) { - for (k = BD(Qc(a.d, i10), 21).Kc(); k.Ob(); ) { - j = BD(k.Pb(), 10); - for (e = BD(Qc(a.d, l), 21).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 10); - YEc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]); - ++a.b[d.c.p][d.p].c; - } - } - } - i10 = l; - } - } - } - function OHc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - c = 0; - k = new Rkb(); - for (h = new olb(b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - AHc(a.b, a.d[g10.p]); - k.c = KC(SI, Uhe, 1, 0, 5, 1); - switch (g10.i.k.g) { - case 0: - d = BD(vNb(g10, (wtc(), gtc)), 10); - Hkb(d.j, new xIc(k)); - break; - case 1: - Ctb(KAb(JAb(new YAb(null, new Kub(g10.i.j, 16)), new zIc(g10))), new CIc(k)); - break; - case 3: - e = BD(vNb(g10, (wtc(), $sc)), 11); - Ekb(k, new vgd(e, meb(g10.e.c.length + g10.g.c.length))); - } - for (j = new olb(k); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 46); - f = aIc(a, BD(i10.a, 11)); - if (f > a.d[g10.p]) { - c += zHc(a.b, f) * BD(i10.b, 19).a; - Wjb(a.a, meb(f)); - } - } - while (!akb(a.a)) { - xHc(a.b, BD(fkb(a.a), 19).a); - } - } - return c; - } - function eed(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - l = new g7c(BD(hkd(a, (X7c(), R7c)), 8)); - l.a = $wnd.Math.max(l.a - c.b - c.c, 0); - l.b = $wnd.Math.max(l.b - c.d - c.a, 0); - e = ED(hkd(a, L7c)); - (e == null || (uCb(e), e) <= 0) && (e = 1.3); - h = new Rkb(); - for (o10 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); o10.e != o10.i.gc(); ) { - n = BD(Dyd(o10), 33); - g10 = new xed(n); - h.c[h.c.length] = g10; - } - m = BD(hkd(a, M7c), 311); - switch (m.g) { - case 3: - q = bed(h, b, l.a, l.b, (j = d, uCb(e), e, j)); - break; - case 1: - q = aed(h, b, l.a, l.b, (k = d, uCb(e), e, k)); - break; - default: - q = ced(h, b, l.a, l.b, (i10 = d, uCb(e), e, i10)); - } - f = new wed(q); - p = fed(f, b, c, l.a, l.b, d, (uCb(e), e)); - Afd(a, p.a, p.b, false, true); - } - function vkc(a, b) { - var c, d, e, f; - c = b.b; - f = new Tkb(c.j); - e = 0; - d = c.j; - d.c = KC(SI, Uhe, 1, 0, 5, 1); - hkc(BD(Si(a.b, (Ucd(), Acd), (Fkc(), Ekc)), 15), c); - e = ikc(f, e, new blc(), d); - hkc(BD(Si(a.b, Acd, Dkc), 15), c); - e = ikc(f, e, new dlc(), d); - hkc(BD(Si(a.b, Acd, Ckc), 15), c); - hkc(BD(Si(a.b, zcd, Ekc), 15), c); - hkc(BD(Si(a.b, zcd, Dkc), 15), c); - e = ikc(f, e, new flc(), d); - hkc(BD(Si(a.b, zcd, Ckc), 15), c); - hkc(BD(Si(a.b, Rcd, Ekc), 15), c); - e = ikc(f, e, new hlc(), d); - hkc(BD(Si(a.b, Rcd, Dkc), 15), c); - e = ikc(f, e, new jlc(), d); - hkc(BD(Si(a.b, Rcd, Ckc), 15), c); - hkc(BD(Si(a.b, Tcd, Ekc), 15), c); - e = ikc(f, e, new Pkc(), d); - hkc(BD(Si(a.b, Tcd, Dkc), 15), c); - hkc(BD(Si(a.b, Tcd, Ckc), 15), c); - } - function nbc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - Odd(b, "Layer size calculation", 1); - k = Pje; - j = Qje; - e = false; - for (h = new olb(a.b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 29); - i10 = g10.c; - i10.a = 0; - i10.b = 0; - if (g10.a.c.length == 0) { - continue; - } - e = true; - for (m = new olb(g10.a); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - o10 = l.o; - n = l.d; - i10.a = $wnd.Math.max(i10.a, o10.a + n.b + n.c); - } - d = BD(Ikb(g10.a, 0), 10); - p = d.n.b - d.d.d; - d.k == (j0b(), e0b) && (p -= BD(vNb(a, (Nyc(), yyc)), 142).d); - f = BD(Ikb(g10.a, g10.a.c.length - 1), 10); - c = f.n.b + f.o.b + f.d.a; - f.k == e0b && (c += BD(vNb(a, (Nyc(), yyc)), 142).a); - i10.b = c - p; - k = $wnd.Math.min(k, p); - j = $wnd.Math.max(j, c); - } - if (!e) { - k = 0; - j = 0; - } - a.f.b = j - k; - a.c.b -= k; - Qdd(b); - } - function h_b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - f = 0; - g10 = 0; - for (j = new olb(a.a); j.a < j.c.c.length; ) { - h = BD(mlb(j), 10); - f = $wnd.Math.max(f, h.d.b); - g10 = $wnd.Math.max(g10, h.d.c); - } - for (i10 = new olb(a.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - c = BD(vNb(h, (Nyc(), mwc)), 248); - switch (c.g) { - case 1: - o10 = 0; - break; - case 2: - o10 = 1; - break; - case 5: - o10 = 0.5; - break; - default: - d = 0; - l = 0; - for (n = new olb(h.j); n.a < n.c.c.length; ) { - m = BD(mlb(n), 11); - m.e.c.length == 0 || ++d; - m.g.c.length == 0 || ++l; - } - d + l == 0 ? o10 = 0.5 : o10 = l / (d + l); - } - q = a.c; - k = h.o.a; - r = (q.a - k) * o10; - o10 > 0.5 ? r -= g10 * 2 * (o10 - 0.5) : o10 < 0.5 && (r += f * 2 * (0.5 - o10)); - e = h.d.b; - r < e && (r = e); - p = h.d.c; - r > q.a - p - k && (r = q.a - p - k); - h.n.a = b + r; - } - } - function ced(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q; - h = KC(UD, Vje, 25, a.c.length, 15, 1); - m = new gub(new Ned()); - _tb(m, a); - j = 0; - p = new Rkb(); - while (m.b.c.length != 0) { - g10 = BD(m.b.c.length == 0 ? null : Ikb(m.b, 0), 157); - if (j > 1 && red(g10) * qed(g10) / 2 > h[0]) { - f = 0; - while (f < p.c.length - 1 && red(g10) * qed(g10) / 2 > h[f]) { - ++f; - } - o10 = new Jib(p, 0, f + 1); - l = new wed(o10); - k = red(g10) / qed(g10); - i10 = fed(l, b, new p0b(), c, d, e, k); - P6c(X6c(l.e), i10); - zCb(cub(m, l)); - n = new Jib(p, f + 1, p.c.length); - _tb(m, n); - p.c = KC(SI, Uhe, 1, 0, 5, 1); - j = 0; - Dlb(h, h.length, 0); - } else { - q = m.b.c.length == 0 ? null : Ikb(m.b, 0); - q != null && fub(m, 0); - j > 0 && (h[j] = h[j - 1]); - h[j] += red(g10) * qed(g10); - ++j; - p.c[p.c.length] = g10; - } - } - return p; - } - function Wac(a) { - var b, c, d, e, f; - d = BD(vNb(a, (Nyc(), mxc)), 163); - if (d == (Ctc(), ytc)) { - for (c = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 17); - if (!Yac(b)) { - throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges.")); - } - } - } else if (d == Atc) { - for (f = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (!Yac(e)) { - throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges.")); - } - } - } - } - function C9b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - Odd(b, "Label dummy removal", 1); - d = Edb(ED(vNb(a, (Nyc(), nyc)))); - e = Edb(ED(vNb(a, ryc))); - j = BD(vNb(a, Lwc), 103); - for (i10 = new olb(a.b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 29); - l = new Bib(h.a, 0); - while (l.b < l.d.gc()) { - k = (sCb(l.b < l.d.gc()), BD(l.d.Xb(l.c = l.b++), 10)); - if (k.k == (j0b(), f0b)) { - m = BD(vNb(k, (wtc(), $sc)), 17); - o10 = Edb(ED(vNb(m, Zwc))); - g10 = PD(vNb(k, Ssc)) === PD((rbd(), obd)); - c = new g7c(k.n); - g10 && (c.b += o10 + d); - f = new f7c(k.o.a, k.o.b - o10 - d); - n = BD(vNb(k, ktc), 15); - j == (ead(), dad) || j == _9c ? B9b(n, c, e, f, g10, j) : A9b(n, c, e, f); - Gkb(m.b, n); - sbc(k, PD(vNb(a, Swc)) === PD((Aad(), xad))); - uib(l); - } - } - } - Qdd(b); - } - function tZb(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v; - i10 = new Rkb(); - for (f = new olb(b.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - for (h = new olb(e.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - k = null; - for (t = k_b(g10.g), u = 0, v = t.length; u < v; ++u) { - s = t[u]; - if (!f_b(s.d.i, c)) { - r = oZb(a, b, c, s, s.c, (KAc(), IAc), k); - r != k && (i10.c[i10.c.length] = r, true); - r.c && (k = r); - } - } - j = null; - for (o10 = k_b(g10.e), p = 0, q = o10.length; p < q; ++p) { - n = o10[p]; - if (!f_b(n.c.i, c)) { - r = oZb(a, b, c, n, n.d, (KAc(), HAc), j); - r != j && (i10.c[i10.c.length] = r, true); - r.c && (j = r); - } - } - } - } - for (m = new olb(i10); m.a < m.c.c.length; ) { - l = BD(mlb(m), 441); - Jkb(b.a, l.a, 0) != -1 || Ekb(b.a, l.a); - l.c && (d.c[d.c.length] = l, true); - } - } - function jCc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - Odd(c, "Interactive cycle breaking", 1); - l = new Rkb(); - for (n = new olb(b.a); n.a < n.c.c.length; ) { - m = BD(mlb(n), 10); - m.p = 1; - o10 = T_b(m).a; - for (k = W_b(m, (KAc(), IAc)).Kc(); k.Ob(); ) { - j = BD(k.Pb(), 11); - for (f = new olb(j.g); f.a < f.c.c.length; ) { - d = BD(mlb(f), 17); - p = d.d.i; - if (p != m) { - q = T_b(p).a; - q < o10 && (l.c[l.c.length] = d, true); - } - } - } - } - for (g10 = new olb(l); g10.a < g10.c.c.length; ) { - d = BD(mlb(g10), 17); - PZb(d, true); - } - l.c = KC(SI, Uhe, 1, 0, 5, 1); - for (i10 = new olb(b.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - h.p > 0 && iCc(a, h, l); - } - for (e = new olb(l); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - PZb(d, true); - } - l.c = KC(SI, Uhe, 1, 0, 5, 1); - Qdd(c); - } - function _z(a, b) { - var c, d, e, f, g10, h, i10, j, k; - j = ""; - if (b.length == 0) { - return a.de(Zie, Xie, -1, -1); - } - k = ufb(b); - dfb(k.substr(0, 3), "at ") && (k = k.substr(3)); - k = k.replace(/\[.*?\]/g, ""); - g10 = k.indexOf("("); - if (g10 == -1) { - g10 = k.indexOf("@"); - if (g10 == -1) { - j = k; - k = ""; - } else { - j = ufb(k.substr(g10 + 1)); - k = ufb(k.substr(0, g10)); - } - } else { - c = k.indexOf(")", g10); - j = k.substr(g10 + 1, c - (g10 + 1)); - k = ufb(k.substr(0, g10)); - } - g10 = hfb(k, wfb(46)); - g10 != -1 && (k = k.substr(g10 + 1)); - (k.length == 0 || dfb(k, "Anonymous function")) && (k = Xie); - h = kfb(j, wfb(58)); - e = lfb(j, wfb(58), h - 1); - i10 = -1; - d = -1; - f = Zie; - if (h != -1 && e != -1) { - f = j.substr(0, e); - i10 = Vz(j.substr(e + 1, h - (e + 1))); - d = Vz(j.substr(h + 1)); - } - return a.de(f, k, i10, d); - } - function UC(a, b, c) { - var d, e, f, g10, h, i10; - if (b.l == 0 && b.m == 0 && b.h == 0) { - throw vbb(new ocb("divide by zero")); - } - if (a.l == 0 && a.m == 0 && a.h == 0) { - c && (QC = TC(0, 0, 0)); - return TC(0, 0, 0); - } - if (b.h == Gje && b.m == 0 && b.l == 0) { - return VC(a, c); - } - i10 = false; - if (b.h >> 19 != 0) { - b = hD(b); - i10 = !i10; - } - g10 = _C(b); - f = false; - e = false; - d = false; - if (a.h == Gje && a.m == 0 && a.l == 0) { - e = true; - f = true; - if (g10 == -1) { - a = SC((wD(), sD)); - d = true; - i10 = !i10; - } else { - h = lD(a, g10); - i10 && ZC(h); - c && (QC = TC(0, 0, 0)); - return h; - } - } else if (a.h >> 19 != 0) { - f = true; - a = hD(a); - d = true; - i10 = !i10; - } - if (g10 != -1) { - return WC(a, g10, i10, f, c); - } - if (eD(a, b) < 0) { - c && (f ? QC = hD(a) : QC = TC(a.l, a.m, a.h)); - return TC(0, 0, 0); - } - return XC(d ? a : TC(a.l, a.m, a.h), b, i10, f, e, c); - } - function F2c(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - if (a.e && a.c.c < a.f) { - throw vbb(new Zdb("Expected " + a.f + " phases to be configured; only found " + a.c.c)); - } - k = BD(gdb(a.g), 9); - n = Pu(a.f); - for (f = k, h = 0, j = f.length; h < j; ++h) { - d = f[h]; - l = BD(B2c(a, d.g), 246); - l ? Ekb(n, BD(I2c(a, l), 123)) : (n.c[n.c.length] = null, true); - } - o10 = new j3c(); - MAb(JAb(NAb(JAb(new YAb(null, new Kub(n, 16)), new O2c()), new Q2c(b)), new S2c()), new U2c(o10)); - d3c(o10, a.a); - c = new Rkb(); - for (e = k, g10 = 0, i10 = e.length; g10 < i10; ++g10) { - d = e[g10]; - Gkb(c, J2c(a, Dx(BD(B2c(o10, d.g), 20)))); - m = BD(Ikb(n, d.g), 123); - !!m && (c.c[c.c.length] = m, true); - } - Gkb(c, J2c(a, Dx(BD(B2c(o10, k[k.length - 1].g + 1), 20)))); - return c; - } - function qCc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - Odd(c, "Model order cycle breaking", 1); - a.a = 0; - a.b = 0; - n = new Rkb(); - k = b.a.c.length; - for (j = new olb(b.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - wNb(i10, (wtc(), Zsc)) && (k = $wnd.Math.max(k, BD(vNb(i10, Zsc), 19).a + 1)); - } - for (p = new olb(b.a); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 10); - g10 = pCc(a, o10, k); - for (m = W_b(o10, (KAc(), IAc)).Kc(); m.Ob(); ) { - l = BD(m.Pb(), 11); - for (f = new olb(l.g); f.a < f.c.c.length; ) { - d = BD(mlb(f), 17); - q = d.d.i; - h = pCc(a, q, k); - h < g10 && (n.c[n.c.length] = d, true); - } - } - } - for (e = new olb(n); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - PZb(d, true); - yNb(b, (wtc(), Asc), (Bcb(), true)); - } - n.c = KC(SI, Uhe, 1, 0, 5, 1); - Qdd(c); - } - function kQc(a, b) { - var c, d, e, f, g10, h, i10; - if (a.g > b.f || b.g > a.f) { - return; - } - c = 0; - d = 0; - for (g10 = a.w.a.ec().Kc(); g10.Ob(); ) { - e = BD(g10.Pb(), 11); - aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && ++c; - } - for (h = a.r.a.ec().Kc(); h.Ob(); ) { - e = BD(h.Pb(), 11); - aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && --c; - } - for (i10 = b.w.a.ec().Kc(); i10.Ob(); ) { - e = BD(i10.Pb(), 11); - aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && ++d; - } - for (f = b.r.a.ec().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 11); - aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && --d; - } - if (c < d) { - new BQc(a, b, d - c); - } else if (d < c) { - new BQc(b, a, c - d); - } else { - new BQc(b, a, 0); - new BQc(a, b, 0); - } - } - function JPb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s; - j = b.c; - e = IOb(a.e); - l = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5); - c = e.a - l.a; - d = e.b - l.b; - g10 = b.a; - c = g10.c - c; - d = g10.d - d; - for (i10 = new olb(j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 395); - m = h.b; - n = c + m.a; - q = d + m.b; - o10 = QD(n / a.a); - r = QD(q / a.b); - f = h.a; - switch (f.g) { - case 0: - k = (RMb(), OMb); - break; - case 1: - k = (RMb(), NMb); - break; - case 2: - k = (RMb(), PMb); - break; - default: - k = (RMb(), QMb); - } - if (f.a) { - s = QD((q + h.c) / a.b); - Ekb(a.f, new uOb(k, meb(r), meb(s))); - f == (ROb(), QOb) ? nNb(a, 0, r, o10, s) : nNb(a, o10, r, a.d - 1, s); - } else { - p = QD((n + h.c) / a.a); - Ekb(a.f, new uOb(k, meb(o10), meb(p))); - f == (ROb(), OOb) ? nNb(a, o10, 0, p, r) : nNb(a, o10, r, p, a.c - 1); - } - } - } - function coc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - m = new Rkb(); - e = new Rkb(); - p = null; - for (h = b.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 19); - f = new qoc(g10.a); - e.c[e.c.length] = f; - if (p) { - f.d = p; - p.e = f; - } - p = f; - } - t = boc(a); - for (k = 0; k < e.c.length; ++k) { - n = null; - q = poc((tCb(0, e.c.length), BD(e.c[0], 652))); - c = null; - d = Pje; - for (l = 1; l < a.b.c.length; ++l) { - r = q ? $wnd.Math.abs(q.b - l) : $wnd.Math.abs(l - n.b) + 1; - o10 = n ? $wnd.Math.abs(l - n.b) : r + 1; - if (o10 < r) { - j = n; - i10 = o10; - } else { - j = q; - i10 = r; - } - s = (u = Edb(ED(vNb(a, (Nyc(), Hyc)))), t[l] + $wnd.Math.pow(i10, u)); - if (s < d) { - d = s; - c = j; - c.c = l; - } - if (!!q && l == q.b) { - n = q; - q = koc(q); - } - } - if (c) { - Ekb(m, meb(c.c)); - c.a = true; - loc(c); - } - } - mmb(); - Mlb(m.c, m.c.length, null); - return m; - } - function qNd(a) { - var b, c, d, e, f, g10, h, i10, j, k; - b = new zNd(); - c = new zNd(); - j = dfb(Qve, (e = Dmd(a.b, Rve), !e ? null : GD(AAd((!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b), Sve)))); - for (i10 = 0; i10 < a.i; ++i10) { - h = BD(a.g[i10], 170); - if (JD(h, 99)) { - g10 = BD(h, 18); - (g10.Bb & ote) != 0 ? ((g10.Bb & oie) == 0 || !j && (f = Dmd(g10, Rve), (!f ? null : GD(AAd((!f.b && (f.b = new sId((jGd(), fGd), x6, f)), f.b), eue))) == null)) && wtd(b, g10) : (k = zUd(g10), !!k && (k.Bb & ote) != 0 || ((g10.Bb & oie) == 0 || !j && (d = Dmd(g10, Rve), (!d ? null : GD(AAd((!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b), eue))) == null)) && wtd(c, g10)); - } else { - Q6d(); - if (BD(h, 66).Oj()) { - if (!h.Jj()) { - wtd(b, h); - wtd(c, h); - } - } - } - } - vud(b); - vud(c); - a.a = BD(b.g, 247); - BD(c.g, 247); - } - function LTb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - j = ITb(b); - q = BD(vNb(b, (Nyc(), Iwc)), 314); - q != (Rpc(), Ppc) && reb(j, new STb()); - r = BD(vNb(b, Cwc), 292); - reb(j, new UTb(r)); - p = 0; - k = new Rkb(); - for (f = new xkb(j); f.a != f.b; ) { - e = BD(vkb(f), 37); - aUb(a.c, e); - m = BD(vNb(e, (wtc(), itc)), 15); - p += m.gc(); - d = m.Kc(); - Ekb(k, new vgd(e, d)); - } - Odd(c, "Recursive hierarchical layout", p); - o10 = 0; - n = BD(BD(Ikb(k, k.c.length - 1), 46).b, 47); - while (n.Ob()) { - for (i10 = new olb(k); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 46); - m = BD(h.b, 47); - g10 = BD(h.a, 37); - while (m.Ob()) { - l = BD(m.Pb(), 51); - if (JD(l, 507)) { - if (!g10.e) { - l.pf(g10, Udd(c, 1)); - ++o10; - break; - } else { - break; - } - } else { - l.pf(g10, Udd(c, 1)); - ++o10; - } - } - } - } - Qdd(c); - } - function rid(b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - j = c.length - 1; - i10 = (BCb(j, c.length), c.charCodeAt(j)); - if (i10 == 93) { - h = hfb(c, wfb(91)); - if (h >= 0) { - f = wid(b, c.substr(1, h - 1)); - l = c.substr(h + 1, j - (h + 1)); - return pid(b, l, f); - } - } else { - d = -1; - Vcb == null && (Vcb = new RegExp("\\d")); - if (Vcb.test(String.fromCharCode(i10))) { - d = lfb(c, wfb(46), j - 1); - if (d >= 0) { - e = BD(hid(b, Bid(b, c.substr(1, d - 1)), false), 58); - k = 0; - try { - k = Icb(c.substr(d + 1), Rie, Ohe); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - g10 = a; - throw vbb(new rFd(g10)); - } else - throw vbb(a); - } - if (k < e.gc()) { - m = e.Xb(k); - JD(m, 72) && (m = BD(m, 72).dd()); - return BD(m, 56); - } - } - } - if (d < 0) { - return BD(hid(b, Bid(b, c.substr(1)), false), 56); - } - } - return null; - } - function e1d(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - if (bLd(b, c) >= 0) { - return c; - } - switch ($1d(q1d(a, c))) { - case 2: { - if (dfb("", o1d(a, c.Hj()).ne())) { - i10 = b2d(q1d(a, c)); - h = a2d(q1d(a, c)); - k = r1d(a, b, i10, h); - if (k) { - return k; - } - e = f1d(a, b); - for (g10 = 0, l = e.gc(); g10 < l; ++g10) { - k = BD(e.Xb(g10), 170); - if (x1d(c2d(q1d(a, k)), i10)) { - return k; - } - } - } - return null; - } - case 4: { - if (dfb("", o1d(a, c.Hj()).ne())) { - for (d = c; d; d = Z1d(q1d(a, d))) { - j = b2d(q1d(a, d)); - h = a2d(q1d(a, d)); - k = s1d(a, b, j, h); - if (k) { - return k; - } - } - i10 = b2d(q1d(a, c)); - if (dfb(Ewe, i10)) { - return t1d(a, b); - } else { - f = g1d(a, b); - for (g10 = 0, l = f.gc(); g10 < l; ++g10) { - k = BD(f.Xb(g10), 170); - if (x1d(c2d(q1d(a, k)), i10)) { - return k; - } - } - } - } - return null; - } - default: { - return null; - } - } - } - function t2d(a, b, c) { - var d, e, f, g10, h, i10, j, k; - if (c.gc() == 0) { - return false; - } - h = (Q6d(), BD(b, 66).Oj()); - f = h ? c : new zud(c.gc()); - if (T6d(a.e, b)) { - if (b.hi()) { - for (j = c.Kc(); j.Ob(); ) { - i10 = j.Pb(); - if (!F2d(a, b, i10, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) { - e = R6d(b, i10); - f.Hc(e) || f.Fc(e); - } - } - } else if (!h) { - for (j = c.Kc(); j.Ob(); ) { - i10 = j.Pb(); - e = R6d(b, i10); - f.Fc(e); - } - } - } else { - if (c.gc() > 1) { - throw vbb(new Wdb(Hwe)); - } - k = S6d(a.e.Tg(), b); - d = BD(a.g, 119); - for (g10 = 0; g10 < a.i; ++g10) { - e = d[g10]; - if (k.rl(e.ak())) { - if (c.Hc(h ? e : e.dd())) { - return false; - } else { - for (j = c.Kc(); j.Ob(); ) { - i10 = j.Pb(); - BD(Gtd(a, g10, h ? BD(i10, 72) : R6d(b, i10)), 72); - } - return true; - } - } - } - if (!h) { - e = R6d(b, c.Kc().Pb()); - f.Fc(e); - } - } - return ytd(a, f); - } - function qMc(a, b) { - var c, d, e, f, g10, h, i10, j, k; - k = new Psb(); - for (h = (j = new $ib(a.c).a.vc().Kc(), new djb(j)); h.a.Ob(); ) { - f = (e = BD(h.a.Pb(), 42), BD(e.dd(), 458)); - f.b == 0 && (Gsb(k, f, k.c.b, k.c), true); - } - while (k.b != 0) { - f = BD(k.b == 0 ? null : (sCb(k.b != 0), Nsb(k, k.a.a)), 458); - f.a == null && (f.a = 0); - for (d = new olb(f.d); d.a < d.c.c.length; ) { - c = BD(mlb(d), 654); - c.b.a == null ? c.b.a = Edb(f.a) + c.a : b.o == (eMc(), cMc) ? c.b.a = $wnd.Math.min(Edb(c.b.a), Edb(f.a) + c.a) : c.b.a = $wnd.Math.max(Edb(c.b.a), Edb(f.a) + c.a); - --c.b.b; - c.b.b == 0 && Dsb(k, c.b); - } - } - for (g10 = (i10 = new $ib(a.c).a.vc().Kc(), new djb(i10)); g10.a.Ob(); ) { - f = (e = BD(g10.a.Pb(), 42), BD(e.dd(), 458)); - b.i[f.c.p] = f.a; - } - } - function mTc() { - mTc = ccb; - dTc = new Lsd(Ime); - new Lsd(Jme); - new Msd("DEPTH", meb(0)); - ZSc = new Msd("FAN", meb(0)); - XSc = new Msd(Yqe, meb(0)); - jTc = new Msd("ROOT", (Bcb(), false)); - _Sc = new Msd("LEFTNEIGHBOR", null); - hTc = new Msd("RIGHTNEIGHBOR", null); - aTc = new Msd("LEFTSIBLING", null); - iTc = new Msd("RIGHTSIBLING", null); - YSc = new Msd("DUMMY", false); - new Msd("LEVEL", meb(0)); - gTc = new Msd("REMOVABLE_EDGES", new Psb()); - kTc = new Msd("XCOOR", meb(0)); - lTc = new Msd("YCOOR", meb(0)); - bTc = new Msd("LEVELHEIGHT", 0); - $Sc = new Msd("ID", ""); - eTc = new Msd("POSITION", meb(0)); - fTc = new Msd("PRELIM", 0); - cTc = new Msd("MODIFIER", 0); - WSc = new Lsd(Kme); - VSc = new Lsd(Lme); - } - function MNc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10; - k = c + b.c.c.a; - for (n = new olb(b.j); n.a < n.c.c.length; ) { - m = BD(mlb(n), 11); - e = l7c(OC(GC(m1, 1), nie, 8, 0, [m.i.n, m.n, m.a])); - if (b.k == (j0b(), i0b)) { - h = BD(vNb(m, (wtc(), $sc)), 11); - e.a = l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).a; - b.n.a = e.a; - } - g10 = new f7c(0, e.b); - if (m.j == (Ucd(), zcd)) { - g10.a = k; - } else if (m.j == Tcd) { - g10.a = c; - } else { - continue; - } - o10 = $wnd.Math.abs(e.a - g10.a); - if (o10 <= d && !JNc(b)) { - continue; - } - f = m.g.c.length + m.e.c.length > 1; - for (j = new b1b(m.b); llb(j.a) || llb(j.b); ) { - i10 = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17); - l = i10.c == m ? i10.d : i10.c; - $wnd.Math.abs(l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a])).b - g10.b) > 1 && GNc(a, i10, g10, f, m); - } - } - } - function XPc(a) { - var b, c, d, e, f, g10; - e = new Bib(a.e, 0); - d = new Bib(a.a, 0); - if (a.d) { - for (c = 0; c < a.b; c++) { - sCb(e.b < e.d.gc()); - e.d.Xb(e.c = e.b++); - } - } else { - for (c = 0; c < a.b - 1; c++) { - sCb(e.b < e.d.gc()); - e.d.Xb(e.c = e.b++); - uib(e); - } - } - b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++)))); - while (a.f - b > Oqe) { - f = b; - g10 = 0; - while ($wnd.Math.abs(b - f) < Oqe) { - ++g10; - b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++)))); - sCb(d.b < d.d.gc()); - d.d.Xb(d.c = d.b++); - } - if (g10 < a.b) { - sCb(e.b > 0); - e.a.Xb(e.c = --e.b); - WPc(a, a.b - g10, f, d, e); - sCb(e.b < e.d.gc()); - e.d.Xb(e.c = e.b++); - } - sCb(d.b > 0); - d.a.Xb(d.c = --d.b); - } - if (!a.d) { - for (c = 0; c < a.b - 1; c++) { - sCb(e.b < e.d.gc()); - e.d.Xb(e.c = e.b++); - uib(e); - } - } - a.d = true; - a.c = true; - } - function Q8d() { - Q8d = ccb; - s8d = (r8d(), q8d).b; - v8d = BD(qud(ZKd(q8d.b), 0), 34); - t8d = BD(qud(ZKd(q8d.b), 1), 34); - u8d = BD(qud(ZKd(q8d.b), 2), 34); - F8d = q8d.bb; - BD(qud(ZKd(q8d.bb), 0), 34); - BD(qud(ZKd(q8d.bb), 1), 34); - H8d = q8d.fb; - I8d = BD(qud(ZKd(q8d.fb), 0), 34); - BD(qud(ZKd(q8d.fb), 1), 34); - BD(qud(ZKd(q8d.fb), 2), 18); - K8d = q8d.qb; - N8d = BD(qud(ZKd(q8d.qb), 0), 34); - BD(qud(ZKd(q8d.qb), 1), 18); - BD(qud(ZKd(q8d.qb), 2), 18); - L8d = BD(qud(ZKd(q8d.qb), 3), 34); - M8d = BD(qud(ZKd(q8d.qb), 4), 34); - P8d = BD(qud(ZKd(q8d.qb), 6), 34); - O8d = BD(qud(ZKd(q8d.qb), 5), 18); - w8d = q8d.j; - x8d = q8d.k; - y8d = q8d.q; - z8d = q8d.w; - A8d = q8d.B; - B8d = q8d.A; - C8d = q8d.C; - D8d = q8d.D; - E8d = q8d._; - G8d = q8d.cb; - J8d = q8d.hb; - } - function $Dc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - a.c = 0; - a.b = 0; - d = 2 * b.c.a.c.length + 1; - o: - for (l = c.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 11); - h = k.j == (Ucd(), Acd) || k.j == Rcd; - n = 0; - if (h) { - m = BD(vNb(k, (wtc(), gtc)), 10); - if (!m) { - continue; - } - n += VDc(a, d, k, m); - } else { - for (j = new olb(k.g); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 17); - e = i10.d; - if (e.i.c == b.c) { - Ekb(a.a, k); - continue o; - } else { - n += a.g[e.p]; - } - } - for (g10 = new olb(k.e); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - e = f.c; - if (e.i.c == b.c) { - Ekb(a.a, k); - continue o; - } else { - n -= a.g[e.p]; - } - } - } - if (k.e.c.length + k.g.c.length > 0) { - a.f[k.p] = n / (k.e.c.length + k.g.c.length); - a.c = $wnd.Math.min(a.c, a.f[k.p]); - a.b = $wnd.Math.max(a.b, a.f[k.p]); - } else - h && (a.f[k.p] = n); - } - } - function $9d(a) { - a.b = null; - a.bb = null; - a.fb = null; - a.qb = null; - a.a = null; - a.c = null; - a.d = null; - a.e = null; - a.f = null; - a.n = null; - a.M = null; - a.L = null; - a.Q = null; - a.R = null; - a.K = null; - a.db = null; - a.eb = null; - a.g = null; - a.i = null; - a.j = null; - a.k = null; - a.gb = null; - a.o = null; - a.p = null; - a.q = null; - a.r = null; - a.$ = null; - a.ib = null; - a.S = null; - a.T = null; - a.t = null; - a.s = null; - a.u = null; - a.v = null; - a.w = null; - a.B = null; - a.A = null; - a.C = null; - a.D = null; - a.F = null; - a.G = null; - a.H = null; - a.I = null; - a.J = null; - a.P = null; - a.Z = null; - a.U = null; - a.V = null; - a.W = null; - a.X = null; - a.Y = null; - a._ = null; - a.ab = null; - a.cb = null; - a.hb = null; - a.nb = null; - a.lb = null; - a.mb = null; - a.ob = null; - a.pb = null; - a.jb = null; - a.kb = null; - a.N = false; - a.O = false; - } - function l5b(a, b, c) { - var d, e, f, g10; - Odd(c, "Graph transformation (" + a.a + ")", 1); - g10 = Mu(b.a); - for (f = new olb(b.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - Gkb(g10, e.a); - } - d = BD(vNb(b, (Nyc(), Mwc)), 419); - if (d == (xqc(), vqc)) { - switch (BD(vNb(b, Lwc), 103).g) { - case 2: - _4b(b, g10); - break; - case 3: - p5b(b, g10); - break; - case 4: - if (a.a == (y5b(), x5b)) { - p5b(b, g10); - a5b(b, g10); - } else { - a5b(b, g10); - p5b(b, g10); - } - } - } else { - if (a.a == (y5b(), x5b)) { - switch (BD(vNb(b, Lwc), 103).g) { - case 2: - _4b(b, g10); - a5b(b, g10); - break; - case 3: - p5b(b, g10); - _4b(b, g10); - break; - case 4: - _4b(b, g10); - p5b(b, g10); - } - } else { - switch (BD(vNb(b, Lwc), 103).g) { - case 2: - _4b(b, g10); - a5b(b, g10); - break; - case 3: - _4b(b, g10); - p5b(b, g10); - break; - case 4: - p5b(b, g10); - _4b(b, g10); - } - } - } - Qdd(c); - } - function j6b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - j = new zsb(); - k = new zsb(); - o10 = new zsb(); - p = new zsb(); - i10 = Edb(ED(vNb(b, (Nyc(), vyc)))); - f = Edb(ED(vNb(b, lyc))); - for (h = new olb(c); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 10); - l = BD(vNb(g10, (wtc(), Hsc)), 61); - if (l == (Ucd(), Acd)) { - k.a.zc(g10, k); - for (e = new Sr(ur(R_b(g10).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - Qqb(j, d.c.i); - } - } else if (l == Rcd) { - p.a.zc(g10, p); - for (e = new Sr(ur(R_b(g10).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - Qqb(o10, d.c.i); - } - } - } - if (j.a.gc() != 0) { - m = new tPc(2, f); - n = sPc(m, b, j, k, -i10 - b.c.b); - if (n > 0) { - a.a = i10 + (n - 1) * f; - b.c.b += a.a; - b.f.b += a.a; - } - } - if (o10.a.gc() != 0) { - m = new tPc(1, f); - n = sPc(m, b, o10, p, b.f.b + i10 - b.c.b); - n > 0 && (b.f.b += i10 + (n - 1) * f); - } - } - function kKd(a, b) { - var c, d, e, f; - f = a.F; - if (b == null) { - a.F = null; - $Jd(a, null); - } else { - a.F = (uCb(b), b); - d = hfb(b, wfb(60)); - if (d != -1) { - e = b.substr(0, d); - hfb(b, wfb(46)) == -1 && !dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve) && (e = Lve); - c = kfb(b, wfb(62)); - c != -1 && (e += "" + b.substr(c + 1)); - $Jd(a, e); - } else { - e = b; - if (hfb(b, wfb(46)) == -1) { - d = hfb(b, wfb(91)); - d != -1 && (e = b.substr(0, d)); - if (!dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve)) { - e = Lve; - d != -1 && (e += "" + b.substr(d)); - } else { - e = b; - } - } - $Jd(a, e); - e == b && (a.F = a.D); - } - } - (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, f, b)); - } - function AMc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - p = b.b.c.length; - if (p < 3) { - return; - } - n = KC(WD, oje, 25, p, 15, 1); - l = 0; - for (k = new olb(b.b); k.a < k.c.c.length; ) { - j = BD(mlb(k), 29); - n[l++] = j.a.c.length; - } - m = new Bib(b.b, 2); - for (d = 1; d < p - 1; d++) { - c = (sCb(m.b < m.d.gc()), BD(m.d.Xb(m.c = m.b++), 29)); - o10 = new olb(c.a); - f = 0; - h = 0; - for (i10 = 0; i10 < n[d + 1]; i10++) { - t = BD(mlb(o10), 10); - if (i10 == n[d + 1] - 1 || zMc(a, t, d + 1, d)) { - g10 = n[d] - 1; - zMc(a, t, d + 1, d) && (g10 = a.c.e[BD(BD(BD(Ikb(a.c.b, t.p), 15).Xb(0), 46).a, 10).p]); - while (h <= i10) { - s = BD(Ikb(c.a, h), 10); - if (!zMc(a, s, d + 1, d)) { - for (r = BD(Ikb(a.c.b, s.p), 15).Kc(); r.Ob(); ) { - q = BD(r.Pb(), 46); - e = a.c.e[BD(q.a, 10).p]; - (e < f || e > g10) && Qqb(a.b, BD(q.b, 17)); - } - } - ++h; - } - f = g10; - } - } - } - } - function o5c(b, c) { - var d; - if (c == null || dfb(c, Xhe)) { - return null; - } - if (c.length == 0 && b.k != (_5c(), W5c)) { - return null; - } - switch (b.k.g) { - case 1: - return efb(c, kse) ? (Bcb(), Acb) : efb(c, lse) ? (Bcb(), zcb) : null; - case 2: - try { - return meb(Icb(c, Rie, Ohe)); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - return null; - } else - throw vbb(a); - } - case 4: - try { - return Hcb(c); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - return null; - } else - throw vbb(a); - } - case 3: - return c; - case 5: - j5c(b); - return m5c(b, c); - case 6: - j5c(b); - return n5c(b, b.a, c); - case 7: - try { - d = l5c(b); - d.Jf(c); - return d; - } catch (a) { - a = ubb(a); - if (JD(a, 32)) { - return null; - } else - throw vbb(a); - } - default: - throw vbb(new Zdb("Invalid type set for this layout option.")); - } - } - function JWb(a) { - AWb(); - var b, c, d, e, f, g10, h; - h = new CWb(); - for (c = new olb(a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 140); - (!h.b || b.c >= h.b.c) && (h.b = b); - if (!h.c || b.c <= h.c.c) { - h.d = h.c; - h.c = b; - } - (!h.e || b.d >= h.e.d) && (h.e = b); - (!h.f || b.d <= h.f.d) && (h.f = b); - } - d = new NWb((lWb(), hWb)); - rXb(a, yWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [d]))); - g10 = new NWb(kWb); - rXb(a, xWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [g10]))); - e = new NWb(iWb); - rXb(a, wWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [e]))); - f = new NWb(jWb); - rXb(a, vWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [f]))); - DWb(d.c, hWb); - DWb(e.c, iWb); - DWb(f.c, jWb); - DWb(g10.c, kWb); - h.a.c = KC(SI, Uhe, 1, 0, 5, 1); - Gkb(h.a, d.c); - Gkb(h.a, Su(e.c)); - Gkb(h.a, f.c); - Gkb(h.a, Su(g10.c)); - return h; - } - function jxd(a) { - var b; - switch (a.d) { - case 1: { - if (a.hj()) { - return a.o != -2; - } - break; - } - case 2: { - if (a.hj()) { - return a.o == -2; - } - break; - } - case 3: - case 5: - case 4: - case 6: - case 7: { - return a.o > -2; - } - default: { - return false; - } - } - b = a.gj(); - switch (a.p) { - case 0: - return b != null && Ccb(DD(b)) != Kbb(a.k, 0); - case 1: - return b != null && BD(b, 217).a != Tbb(a.k) << 24 >> 24; - case 2: - return b != null && BD(b, 172).a != (Tbb(a.k) & aje); - case 6: - return b != null && Kbb(BD(b, 162).a, a.k); - case 5: - return b != null && BD(b, 19).a != Tbb(a.k); - case 7: - return b != null && BD(b, 184).a != Tbb(a.k) << 16 >> 16; - case 3: - return b != null && Edb(ED(b)) != a.j; - case 4: - return b != null && BD(b, 155).a != a.j; - default: - return b == null ? a.n != null : !pb(b, a.n); - } - } - function nOd(a, b, c) { - var d, e, f, g10; - if (a.Fk() && a.Ek()) { - g10 = oOd(a, BD(c, 56)); - if (PD(g10) !== PD(c)) { - a.Oi(b); - a.Ui(b, pOd(a, b, g10)); - if (a.rk()) { - f = (e = BD(c, 49), a.Dk() ? a.Bk() ? e.ih(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), null) : e.ih(a.b, bLd(e.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, null) : e.ih(a.b, -1 - a.aj(), null, null)); - !BD(g10, 49).eh() && (f = (d = BD(g10, 49), a.Dk() ? a.Bk() ? d.gh(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), f) : d.gh(a.b, bLd(d.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, f) : d.gh(a.b, -1 - a.aj(), null, f))); - !!f && f.Fi(); - } - oid(a.b) && a.$i(a.Zi(9, c, g10, b, false)); - return g10; - } - } - return c; - } - function Noc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - k = Edb(ED(vNb(a, (Nyc(), oyc)))); - d = Edb(ED(vNb(a, Cyc))); - m = new _fd(); - yNb(m, oyc, k + d); - j = b; - r = j.d; - p = j.c.i; - s = j.d.i; - q = G1b(p.c); - t = G1b(s.c); - e = new Rkb(); - for (l = q; l <= t; l++) { - h = new b0b(a); - __b(h, (j0b(), g0b)); - yNb(h, (wtc(), $sc), j); - yNb(h, Vxc, (dcd(), $bd)); - yNb(h, qyc, m); - n = BD(Ikb(a.b, l), 29); - l == q ? Z_b(h, n.a.c.length - c, n) : $_b(h, n); - u = Edb(ED(vNb(j, Zwc))); - if (u < 0) { - u = 0; - yNb(j, Zwc, u); - } - h.o.b = u; - o10 = $wnd.Math.floor(u / 2); - g10 = new H0b(); - G0b(g10, (Ucd(), Tcd)); - F0b(g10, h); - g10.n.b = o10; - i10 = new H0b(); - G0b(i10, zcd); - F0b(i10, h); - i10.n.b = o10; - RZb(j, g10); - f = new UZb(); - tNb(f, j); - yNb(f, jxc, null); - QZb(f, i10); - RZb(f, r); - Ooc(h, j, f); - e.c[e.c.length] = f; - j = f; - } - return e; - } - function sbc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - i10 = BD(Y_b(a, (Ucd(), Tcd)).Kc().Pb(), 11).e; - n = BD(Y_b(a, zcd).Kc().Pb(), 11).g; - h = i10.c.length; - t = A0b(BD(Ikb(a.j, 0), 11)); - while (h-- > 0) { - p = (tCb(0, i10.c.length), BD(i10.c[0], 17)); - e = (tCb(0, n.c.length), BD(n.c[0], 17)); - s = e.d.e; - f = Jkb(s, e, 0); - SZb(p, e.d, f); - QZb(e, null); - RZb(e, null); - o10 = p.a; - b && Dsb(o10, new g7c(t)); - for (d = Jsb(e.a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 8); - Dsb(o10, new g7c(c)); - } - r = p.b; - for (m = new olb(e.b); m.a < m.c.c.length; ) { - l = BD(mlb(m), 70); - r.c[r.c.length] = l; - } - q = BD(vNb(p, (Nyc(), jxc)), 74); - g10 = BD(vNb(e, jxc), 74); - if (g10) { - if (!q) { - q = new s7c(); - yNb(p, jxc, q); - } - for (k = Jsb(g10, 0); k.b != k.d.c; ) { - j = BD(Xsb(k), 8); - Dsb(q, new g7c(j)); - } - } - } - } - function EJb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - c = BD(Mpb(a.b, b), 124); - i10 = BD(BD(Qc(a.r, b), 21), 84); - if (i10.dc()) { - c.n.b = 0; - c.n.c = 0; - return; - } - j = a.u.Hc((rcd(), ncd)); - g10 = 0; - h = i10.Kc(); - k = null; - l = 0; - m = 0; - while (h.Ob()) { - d = BD(h.Pb(), 111); - e = Edb(ED(d.b.We((CKb(), BKb)))); - f = d.b.rf().a; - a.A.Hc((tdd(), sdd)) && KJb(a, b); - if (!k) { - !!a.C && a.C.b > 0 && (g10 = $wnd.Math.max(g10, IJb(a.C.b + d.d.b, e))); - } else { - n = m + k.d.c + a.w + d.d.b; - g10 = $wnd.Math.max(g10, (Iy(), My(ple), $wnd.Math.abs(l - e) <= ple || l == e || isNaN(l) && isNaN(e) ? 0 : n / (e - l))); - } - k = d; - l = e; - m = f; - } - if (!!a.C && a.C.c > 0) { - n = m + a.C.c; - j && (n += k.d.c); - g10 = $wnd.Math.max(g10, (Iy(), My(ple), $wnd.Math.abs(l - 1) <= ple || l == 1 || isNaN(l) && isNaN(1) ? 0 : n / (1 - l))); - } - c.n.b = 0; - c.a.a = g10; - } - function NKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - c = BD(Mpb(a.b, b), 124); - i10 = BD(BD(Qc(a.r, b), 21), 84); - if (i10.dc()) { - c.n.d = 0; - c.n.a = 0; - return; - } - j = a.u.Hc((rcd(), ncd)); - g10 = 0; - a.A.Hc((tdd(), sdd)) && SKb(a, b); - h = i10.Kc(); - k = null; - m = 0; - l = 0; - while (h.Ob()) { - d = BD(h.Pb(), 111); - f = Edb(ED(d.b.We((CKb(), BKb)))); - e = d.b.rf().b; - if (!k) { - !!a.C && a.C.d > 0 && (g10 = $wnd.Math.max(g10, IJb(a.C.d + d.d.d, f))); - } else { - n = l + k.d.a + a.w + d.d.d; - g10 = $wnd.Math.max(g10, (Iy(), My(ple), $wnd.Math.abs(m - f) <= ple || m == f || isNaN(m) && isNaN(f) ? 0 : n / (f - m))); - } - k = d; - m = f; - l = e; - } - if (!!a.C && a.C.a > 0) { - n = l + a.C.a; - j && (n += k.d.a); - g10 = $wnd.Math.max(g10, (Iy(), My(ple), $wnd.Math.abs(m - 1) <= ple || m == 1 || isNaN(m) && isNaN(1) ? 0 : n / (1 - m))); - } - c.n.d = 0; - c.a.b = g10; - } - function _Ec(a, b, c) { - var d, e, f, g10, h, i10; - this.g = a; - h = b.d.length; - i10 = c.d.length; - this.d = KC(OQ, kne, 10, h + i10, 0, 1); - for (g10 = 0; g10 < h; g10++) { - this.d[g10] = b.d[g10]; - } - for (f = 0; f < i10; f++) { - this.d[h + f] = c.d[f]; - } - if (b.e) { - this.e = Ru(b.e); - this.e.Mc(c); - if (c.e) { - for (e = c.e.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 233); - if (d == b) { - continue; - } else - this.e.Hc(d) ? --d.c : this.e.Fc(d); - } - } - } else if (c.e) { - this.e = Ru(c.e); - this.e.Mc(b); - } - this.f = b.f + c.f; - this.a = b.a + c.a; - this.a > 0 ? ZEc(this, this.f / this.a) : REc(b.g, b.d[0]).a != null && REc(c.g, c.d[0]).a != null ? ZEc(this, (Edb(REc(b.g, b.d[0]).a) + Edb(REc(c.g, c.d[0]).a)) / 2) : REc(b.g, b.d[0]).a != null ? ZEc(this, REc(b.g, b.d[0]).a) : REc(c.g, c.d[0]).a != null && ZEc(this, REc(c.g, c.d[0]).a); - } - function BUb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - a.a = new dVb(oqb(t1)); - for (d = new olb(b.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 841); - h = new gVb(OC(GC(IP, 1), Uhe, 81, 0, [])); - Ekb(a.a.a, h); - for (j = new olb(c.d); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 110); - k = new GUb(a, i10); - AUb(k, BD(vNb(c.c, (wtc(), Esc)), 21)); - if (!Mhb(a.g, c)) { - Rhb(a.g, c, new f7c(i10.c, i10.d)); - Rhb(a.f, c, k); - } - Ekb(a.a.b, k); - eVb(h, k); - } - for (g10 = new olb(c.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 594); - k = new GUb(a, f.kf()); - Rhb(a.b, f, new vgd(h, k)); - AUb(k, BD(vNb(c.c, (wtc(), Esc)), 21)); - if (f.hf()) { - l = new HUb(a, f.hf(), 1); - AUb(l, BD(vNb(c.c, Esc), 21)); - e = new gVb(OC(GC(IP, 1), Uhe, 81, 0, [])); - eVb(e, l); - Rc(a.c, f.gf(), new vgd(h, l)); - } - } - } - return a.a; - } - function oBc(a) { - var b; - this.a = a; - b = (j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])).length; - this.b = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2); - this.c = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2); - nBc(this, h0b, (Nyc(), vyc), wyc); - lBc(this, h0b, g0b, oyc, pyc); - kBc(this, h0b, i0b, oyc); - kBc(this, h0b, e0b, oyc); - lBc(this, h0b, f0b, vyc, wyc); - nBc(this, g0b, lyc, myc); - kBc(this, g0b, i0b, lyc); - kBc(this, g0b, e0b, lyc); - lBc(this, g0b, f0b, oyc, pyc); - mBc(this, i0b, lyc); - kBc(this, i0b, e0b, lyc); - kBc(this, i0b, f0b, syc); - mBc(this, e0b, zyc); - lBc(this, e0b, f0b, uyc, tyc); - nBc(this, f0b, lyc, lyc); - nBc(this, d0b, lyc, myc); - lBc(this, d0b, h0b, oyc, pyc); - lBc(this, d0b, f0b, oyc, pyc); - lBc(this, d0b, g0b, oyc, pyc); - } - function _2d(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - g10 = c.ak(); - if (JD(g10, 99) && (BD(g10, 18).Bb & Tje) != 0) { - m = BD(c.dd(), 49); - p = xid(a.e, m); - if (p != m) { - k = R6d(g10, p); - mud(a, b, t3d(a, b, k)); - l = null; - if (oid(a.e)) { - d = e1d((O6d(), M6d), a.e.Tg(), g10); - if (d != XKd(a.e.Tg(), a.c)) { - q = S6d(a.e.Tg(), g10); - h = 0; - f = BD(a.g, 119); - for (i10 = 0; i10 < b; ++i10) { - e = f[i10]; - q.rl(e.ak()) && ++h; - } - l = new O7d(a.e, 9, d, m, p, h, false); - l.Ei(new pSd(a.e, 9, a.c, c, k, b, false)); - } - } - o10 = BD(g10, 18); - n = zUd(o10); - if (n) { - l = m.ih(a.e, bLd(m.Tg(), n), null, l); - l = BD(p, 49).gh(a.e, bLd(p.Tg(), n), null, l); - } else if ((o10.Bb & ote) != 0) { - j = -1 - bLd(a.e.Tg(), o10); - l = m.ih(a.e, j, null, null); - !BD(p, 49).eh() && (l = BD(p, 49).gh(a.e, j, null, l)); - } - !!l && l.Fi(); - return k; - } - } - return c; - } - function yUb(a) { - var b, c, d, e, f, g10, h, i10; - for (f = new olb(a.a.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 81); - e.b.c = e.g.c; - e.b.d = e.g.d; - } - i10 = new f7c(Pje, Pje); - b = new f7c(Qje, Qje); - for (d = new olb(a.a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 81); - i10.a = $wnd.Math.min(i10.a, c.g.c); - i10.b = $wnd.Math.min(i10.b, c.g.d); - b.a = $wnd.Math.max(b.a, c.g.c + c.g.b); - b.b = $wnd.Math.max(b.b, c.g.d + c.g.a); - } - for (h = Uc(a.c).a.nc(); h.Ob(); ) { - g10 = BD(h.Pb(), 46); - c = BD(g10.b, 81); - i10.a = $wnd.Math.min(i10.a, c.g.c); - i10.b = $wnd.Math.min(i10.b, c.g.d); - b.a = $wnd.Math.max(b.a, c.g.c + c.g.b); - b.b = $wnd.Math.max(b.b, c.g.d + c.g.a); - } - a.d = V6c(new f7c(i10.a, i10.b)); - a.e = c7c(new f7c(b.a, b.b), i10); - a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1); - } - function svd(a) { - var b, c, d; - l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()])); - c = new xB(a); - for (d = 0; d < c.a.length; ++d) { - b = tB(c, d).je().a; - dfb(b, "layered") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new kwc()])) : dfb(b, "force") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new TRb()])) : dfb(b, "stress") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PSb()])) : dfb(b, "mrtree") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new sTc()])) : dfb(b, "radial") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new IWc()])) : dfb(b, "disco") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new gFb(), new oPb()])) : dfb(b, "sporeOverlap") || dfb(b, "sporeCompaction") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new B0c()])) : dfb(b, "rectpacking") && l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PYc()])); - } - } - function j_b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - m = new g7c(a.o); - r = b.a / m.a; - h = b.b / m.b; - p = b.a - m.a; - f = b.b - m.b; - if (c) { - e = PD(vNb(a, (Nyc(), Vxc))) === PD((dcd(), $bd)); - for (o10 = new olb(a.j); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 11); - switch (n.j.g) { - case 1: - e || (n.n.a *= r); - break; - case 2: - n.n.a += p; - e || (n.n.b *= h); - break; - case 3: - e || (n.n.a *= r); - n.n.b += f; - break; - case 4: - e || (n.n.b *= h); - } - } - } - for (j = new olb(a.b); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 70); - k = i10.n.a + i10.o.a / 2; - l = i10.n.b + i10.o.b / 2; - q = k / m.a; - g10 = l / m.b; - if (q + g10 >= 1) { - if (q - g10 > 0 && l >= 0) { - i10.n.a += p; - i10.n.b += f * g10; - } else if (q - g10 < 0 && k >= 0) { - i10.n.a += p * q; - i10.n.b += f; - } - } - } - a.o.a = b.a; - a.o.b = b.b; - yNb(a, (Nyc(), Fxc), (tdd(), d = BD(gdb(I1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0))); - } - function iFd(a, b, c, d, e, f) { - var g10; - if (!(b == null || !OEd(b, zEd, AEd))) { - throw vbb(new Wdb("invalid scheme: " + b)); - } - if (!a && !(c != null && hfb(c, wfb(35)) == -1 && c.length > 0 && (BCb(0, c.length), c.charCodeAt(0) != 47))) { - throw vbb(new Wdb("invalid opaquePart: " + c)); - } - if (a && !(b != null && hnb(GEd, b.toLowerCase())) && !(c == null || !OEd(c, CEd, DEd))) { - throw vbb(new Wdb(mve + c)); - } - if (a && b != null && hnb(GEd, b.toLowerCase()) && !eFd(c)) { - throw vbb(new Wdb(mve + c)); - } - if (!fFd(d)) { - throw vbb(new Wdb("invalid device: " + d)); - } - if (!hFd(e)) { - g10 = e == null ? "invalid segments: null" : "invalid segment: " + VEd(e); - throw vbb(new Wdb(g10)); - } - if (!(f == null || hfb(f, wfb(35)) == -1)) { - throw vbb(new Wdb("invalid query: " + f)); - } - } - function nVc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - Odd(b, "Calculate Graph Size", 1); - b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - h = dme; - i10 = dme; - f = ere; - g10 = ere; - for (l = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); l.e != l.i.gc(); ) { - j = BD(Dyd(l), 33); - o10 = j.i; - p = j.j; - r = j.g; - d = j.f; - e = BD(hkd(j, (Y9c(), S8c)), 142); - h = $wnd.Math.min(h, o10 - e.b); - i10 = $wnd.Math.min(i10, p - e.d); - f = $wnd.Math.max(f, o10 + r + e.c); - g10 = $wnd.Math.max(g10, p + d + e.a); - } - n = BD(hkd(a, (Y9c(), f9c)), 116); - m = new f7c(h - n.b, i10 - n.d); - for (k = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); k.e != k.i.gc(); ) { - j = BD(Dyd(k), 33); - dld(j, j.i - m.a); - eld(j, j.j - m.b); - } - q = f - h + (n.b + n.c); - c = g10 - i10 + (n.d + n.a); - cld(a, q); - ald(a, c); - b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - } - function rGb(a) { - var b, c, d, e, f, g10, h, i10, j, k; - d = new Rkb(); - for (g10 = new olb(a.e.a); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 121); - k = 0; - e.k.c = KC(SI, Uhe, 1, 0, 5, 1); - for (c = new olb(LFb(e)); c.a < c.c.c.length; ) { - b = BD(mlb(c), 213); - if (b.f) { - Ekb(e.k, b); - ++k; - } - } - k == 1 && (d.c[d.c.length] = e, true); - } - for (f = new olb(d); f.a < f.c.c.length; ) { - e = BD(mlb(f), 121); - while (e.k.c.length == 1) { - j = BD(mlb(new olb(e.k)), 213); - a.b[j.c] = j.g; - h = j.d; - i10 = j.e; - for (c = new olb(LFb(e)); c.a < c.c.c.length; ) { - b = BD(mlb(c), 213); - pb(b, j) || (b.f ? h == b.d || i10 == b.e ? a.b[j.c] -= a.b[b.c] - b.g : a.b[j.c] += a.b[b.c] - b.g : e == h ? b.d == e ? a.b[j.c] += b.g : a.b[j.c] -= b.g : b.d == e ? a.b[j.c] -= b.g : a.b[j.c] += b.g); - } - Lkb(h.k, j); - Lkb(i10.k, j); - h == e ? e = j.e : e = j.d; - } - } - } - function k4c(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - if (b == null || b.length == 0) { - return null; - } - f = BD(Phb(a.f, b), 23); - if (!f) { - for (e = (n = new $ib(a.d).a.vc().Kc(), new djb(n)); e.a.Ob(); ) { - c = (g10 = BD(e.a.Pb(), 42), BD(g10.dd(), 23)); - h = c.f; - o10 = b.length; - if (dfb(h.substr(h.length - o10, o10), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) { - if (f) { - return null; - } - f = c; - } - } - if (!f) { - for (d = (m = new $ib(a.d).a.vc().Kc(), new djb(m)); d.a.Ob(); ) { - c = (g10 = BD(d.a.Pb(), 42), BD(g10.dd(), 23)); - l = c.g; - if (l != null) { - for (i10 = l, j = 0, k = i10.length; j < k; ++j) { - h = i10[j]; - o10 = b.length; - if (dfb(h.substr(h.length - o10, o10), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) { - if (f) { - return null; - } - f = c; - } - } - } - } - } - !!f && Shb(a.f, b, f); - } - return f; - } - function sA(a, b) { - var c, d, e, f, g10; - c = new Vfb(); - g10 = false; - for (f = 0; f < b.length; f++) { - d = (BCb(f, b.length), b.charCodeAt(f)); - if (d == 32) { - gA(a, c, 0); - c.a += " "; - gA(a, c, 0); - while (f + 1 < b.length && (BCb(f + 1, b.length), b.charCodeAt(f + 1) == 32)) { - ++f; - } - continue; - } - if (g10) { - if (d == 39) { - if (f + 1 < b.length && (BCb(f + 1, b.length), b.charCodeAt(f + 1) == 39)) { - c.a += String.fromCharCode(d); - ++f; - } else { - g10 = false; - } - } else { - c.a += String.fromCharCode(d); - } - continue; - } - if (hfb("GyMLdkHmsSEcDahKzZv", wfb(d)) > 0) { - gA(a, c, 0); - c.a += String.fromCharCode(d); - e = lA(b, f); - gA(a, c, e); - f += e - 1; - continue; - } - if (d == 39) { - if (f + 1 < b.length && (BCb(f + 1, b.length), b.charCodeAt(f + 1) == 39)) { - c.a += "'"; - ++f; - } else { - g10 = true; - } - } else { - c.a += String.fromCharCode(d); - } - } - gA(a, c, 0); - mA(a); - } - function wDc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - Odd(c, "Network simplex layering", 1); - a.b = b; - r = BD(vNb(b, (Nyc(), Ayc)), 19).a * 4; - q = a.b.a; - if (q.c.length < 1) { - Qdd(c); - return; - } - f = sDc(a, q); - p = null; - for (e = Jsb(f, 0); e.b != e.d.c; ) { - d = BD(Xsb(e), 15); - h = r * QD($wnd.Math.sqrt(d.gc())); - g10 = vDc(d); - uGb(HGb(JGb(IGb(LGb(g10), h), p), true), Udd(c, 1)); - m = a.b.b; - for (o10 = new olb(g10.a); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 121); - while (m.c.length <= n.e) { - Dkb(m, m.c.length, new H1b(a.b)); - } - k = BD(n.f, 10); - $_b(k, BD(Ikb(m, n.e), 29)); - } - if (f.b > 1) { - p = KC(WD, oje, 25, a.b.b.c.length, 15, 1); - l = 0; - for (j = new olb(a.b.b); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 29); - p[l++] = i10.a.c.length; - } - } - } - q.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a = null; - a.b = null; - a.c = null; - Qdd(c); - } - function OUb(a) { - var b, c, d, e, f, g10, h; - b = 0; - for (f = new olb(a.b.a); f.a < f.c.c.length; ) { - d = BD(mlb(f), 189); - d.b = 0; - d.c = 0; - } - NUb(a, 0); - MUb(a, a.g); - sVb(a.c); - wVb(a.c); - c = (ead(), aad); - uVb(oVb(tVb(uVb(oVb(tVb(uVb(tVb(a.c, c)), had(c)))), c))); - tVb(a.c, aad); - RUb(a, a.g); - SUb(a, 0); - TUb(a, 0); - UUb(a, 1); - NUb(a, 1); - MUb(a, a.d); - sVb(a.c); - for (g10 = new olb(a.b.a); g10.a < g10.c.c.length; ) { - d = BD(mlb(g10), 189); - b += $wnd.Math.abs(d.c); - } - for (h = new olb(a.b.a); h.a < h.c.c.length; ) { - d = BD(mlb(h), 189); - d.b = 0; - d.c = 0; - } - c = dad; - uVb(oVb(tVb(uVb(oVb(tVb(uVb(wVb(tVb(a.c, c))), had(c)))), c))); - tVb(a.c, aad); - RUb(a, a.d); - SUb(a, 1); - TUb(a, 1); - UUb(a, 0); - wVb(a.c); - for (e = new olb(a.b.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 189); - b += $wnd.Math.abs(d.c); - } - return b; - } - function Wfe(a, b) { - var c, d, e, f, g10, h, i10, j, k; - j = b; - if (j.b == null || a.b == null) - return; - Yfe(a); - Vfe(a); - Yfe(j); - Vfe(j); - c = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1); - k = 0; - d = 0; - g10 = 0; - while (d < a.b.length && g10 < j.b.length) { - e = a.b[d]; - f = a.b[d + 1]; - h = j.b[g10]; - i10 = j.b[g10 + 1]; - if (f < h) { - d += 2; - } else if (f >= h && e <= i10) { - if (h <= e && f <= i10) { - c[k++] = e; - c[k++] = f; - d += 2; - } else if (h <= e) { - c[k++] = e; - c[k++] = i10; - a.b[d] = i10 + 1; - g10 += 2; - } else if (f <= i10) { - c[k++] = h; - c[k++] = f; - d += 2; - } else { - c[k++] = h; - c[k++] = i10; - a.b[d] = i10 + 1; - } - } else if (i10 < e) { - g10 += 2; - } else { - throw vbb(new hz("Token#intersectRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] & [" + j.b[g10] + "," + j.b[g10 + 1] + "]")); - } - } - while (d < a.b.length) { - c[k++] = a.b[d++]; - c[k++] = a.b[d++]; - } - a.b = KC(WD, oje, 25, k, 15, 1); - $fb(c, 0, a.b, 0, k); - } - function PUb(a) { - var b, c, d, e, f, g10, h; - b = new Rkb(); - a.g = new Rkb(); - a.d = new Rkb(); - for (g10 = new nib(new eib(a.f.b).a); g10.b; ) { - f = lib(g10); - Ekb(b, BD(BD(f.dd(), 46).b, 81)); - fad(BD(f.cd(), 594).gf()) ? Ekb(a.d, BD(f.dd(), 46)) : Ekb(a.g, BD(f.dd(), 46)); - } - MUb(a, a.d); - MUb(a, a.g); - a.c = new CVb(a.b); - AVb(a.c, (xUb(), wUb)); - RUb(a, a.d); - RUb(a, a.g); - Gkb(b, a.c.a.b); - a.e = new f7c(Pje, Pje); - a.a = new f7c(Qje, Qje); - for (d = new olb(b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 81); - a.e.a = $wnd.Math.min(a.e.a, c.g.c); - a.e.b = $wnd.Math.min(a.e.b, c.g.d); - a.a.a = $wnd.Math.max(a.a.a, c.g.c + c.g.b); - a.a.b = $wnd.Math.max(a.a.b, c.g.d + c.g.a); - } - zVb(a.c, new YUb()); - h = 0; - do { - e = OUb(a); - ++h; - } while ((h < 2 || e > Qie) && h < 10); - zVb(a.c, new _Ub()); - OUb(a); - vVb(a.c); - yUb(a.f); - } - function sZb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - if (!Ccb(DD(vNb(c, (Nyc(), fxc))))) { - return; - } - for (h = new olb(c.j); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 11); - m = k_b(g10.g); - for (j = m, k = 0, l = j.length; k < l; ++k) { - i10 = j[k]; - f = i10.d.i == c; - e = f && Ccb(DD(vNb(i10, gxc))); - if (e) { - o10 = i10.c; - n = BD(Ohb(a.b, o10), 10); - if (!n) { - n = Z$b(o10, (dcd(), bcd), o10.j, -1, null, null, o10.o, BD(vNb(b, Lwc), 103), b); - yNb(n, (wtc(), $sc), o10); - Rhb(a.b, o10, n); - Ekb(b.a, n); - } - q = i10.d; - p = BD(Ohb(a.b, q), 10); - if (!p) { - p = Z$b(q, (dcd(), bcd), q.j, 1, null, null, q.o, BD(vNb(b, Lwc), 103), b); - yNb(p, (wtc(), $sc), q); - Rhb(a.b, q, p); - Ekb(b.a, p); - } - d = kZb(i10); - QZb(d, BD(Ikb(n.j, 0), 11)); - RZb(d, BD(Ikb(p.j, 0), 11)); - Rc(a.a, i10, new BZb(d, b, (KAc(), IAc))); - BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc)); - } - } - } - } - function W9b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - Odd(c, "Label dummy switching", 1); - d = BD(vNb(b, (Nyc(), Owc)), 227); - J9b(b); - e = T9b(b, d); - a.a = KC(UD, Vje, 25, b.b.c.length, 15, 1); - for (h = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), k = 0, n = h.length; k < n; ++k) { - f = h[k]; - if ((f == zpc || f == upc || f == xpc) && !BD(uqb(e.a, f) ? e.b[f.g] : null, 15).dc()) { - M9b(a, b); - break; - } - } - for (i10 = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), l = 0, o10 = i10.length; l < o10; ++l) { - f = i10[l]; - f == zpc || f == upc || f == xpc || X9b(a, BD(uqb(e.a, f) ? e.b[f.g] : null, 15)); - } - for (g10 = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), j = 0, m = g10.length; j < m; ++j) { - f = g10[j]; - (f == zpc || f == upc || f == xpc) && X9b(a, BD(uqb(e.a, f) ? e.b[f.g] : null, 15)); - } - a.a = null; - Qdd(c); - } - function AFc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - switch (a.k.g) { - case 1: - d = BD(vNb(a, (wtc(), $sc)), 17); - c = BD(vNb(d, _sc), 74); - !c ? c = new s7c() : Ccb(DD(vNb(d, ltc))) && (c = w7c(c)); - j = BD(vNb(a, Vsc), 11); - if (j) { - k = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a])); - if (b <= k.a) { - return k.b; - } - Gsb(c, k, c.a, c.a.a); - } - l = BD(vNb(a, Wsc), 11); - if (l) { - m = l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a])); - if (m.a <= b) { - return m.b; - } - Gsb(c, m, c.c.b, c.c); - } - if (c.b >= 2) { - i10 = Jsb(c, 0); - g10 = BD(Xsb(i10), 8); - h = BD(Xsb(i10), 8); - while (h.a < b && i10.b != i10.d.c) { - g10 = h; - h = BD(Xsb(i10), 8); - } - return g10.b + (b - g10.a) / (h.a - g10.a) * (h.b - g10.b); - } - break; - case 3: - f = BD(vNb(BD(Ikb(a.j, 0), 11), (wtc(), $sc)), 11); - e = f.i; - switch (f.j.g) { - case 1: - return e.n.b; - case 3: - return e.n.b + e.o.b; - } - } - return T_b(a).b; - } - function Wgc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - for (g10 = new olb(a.d.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 29); - for (i10 = new olb(f.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - if (Ccb(DD(vNb(h, (Nyc(), pwc))))) { - if (!Qq(O_b(h))) { - d = BD(Oq(O_b(h)), 17); - k = d.c.i; - k == h && (k = d.d.i); - l = new vgd(k, c7c(R6c(h.n), k.n)); - Rhb(a.b, h, l); - continue; - } - } - e = new J6c(h.n.a - h.d.b, h.n.b - h.d.d, h.o.a + h.d.b + h.d.c, h.o.b + h.d.d + h.d.a); - b = vDb(yDb(wDb(xDb(new zDb(), h), e), Fgc), a.a); - pDb(qDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), b), a.a); - j = new lEb(); - Rhb(a.e, b, j); - c = sr(new Sr(ur(R_b(h).a.Kc(), new Sq()))) - sr(new Sr(ur(U_b(h).a.Kc(), new Sq()))); - c < 0 ? jEb(j, true, (ead(), aad)) : c > 0 && jEb(j, true, (ead(), bad)); - h.k == (j0b(), e0b) && kEb(j); - Rhb(a.f, h, b); - } - } - } - function Bbc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - Odd(c, "Node promotion heuristic", 1); - a.g = b; - Abc(a); - a.q = BD(vNb(b, (Nyc(), rxc)), 260); - k = BD(vNb(a.g, qxc), 19).a; - f = new Jbc(); - switch (a.q.g) { - case 2: - case 1: - Dbc(a, f); - break; - case 3: - a.q = (kAc(), jAc); - Dbc(a, f); - i10 = 0; - for (h = new olb(a.a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 19); - i10 = $wnd.Math.max(i10, g10.a); - } - if (i10 > a.j) { - a.q = dAc; - Dbc(a, f); - } - break; - case 4: - a.q = (kAc(), jAc); - Dbc(a, f); - j = 0; - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = ED(mlb(e)); - j = $wnd.Math.max(j, (uCb(d), d)); - } - if (j > a.k) { - a.q = gAc; - Dbc(a, f); - } - break; - case 6: - m = QD($wnd.Math.ceil(a.f.length * k / 100)); - Dbc(a, new Mbc(m)); - break; - case 5: - l = QD($wnd.Math.ceil(a.d * k / 100)); - Dbc(a, new Pbc(l)); - break; - default: - Dbc(a, f); - } - Ebc(a, b); - Qdd(c); - } - function fFc(a, b, c) { - var d, e, f, g10; - this.j = a; - this.e = WZb(a); - this.o = this.j.e; - this.i = !!this.o; - this.p = this.i ? BD(Ikb(c, Q_b(this.o).p), 214) : null; - e = BD(vNb(a, (wtc(), Ksc)), 21); - this.g = e.Hc((Orc(), Hrc)); - this.b = new Rkb(); - this.d = new rHc(this.e); - g10 = BD(vNb(this.j, jtc), 230); - this.q = wFc(b, g10, this.e); - this.k = new BGc(this); - f = Ou(OC(GC(qY, 1), Uhe, 225, 0, [this, this.d, this.k, this.q])); - if (b == (rGc(), oGc) && !Ccb(DD(vNb(a, (Nyc(), Awc))))) { - d = new SEc(this.e); - f.c[f.c.length] = d; - this.c = new uEc(d, g10, BD(this.q, 402)); - } else if (b == oGc && Ccb(DD(vNb(a, (Nyc(), Awc))))) { - d = new SEc(this.e); - f.c[f.c.length] = d; - this.c = new XGc(d, g10, BD(this.q, 402)); - } else { - this.c = new Oic(b, this); - } - Ekb(f, this.c); - $Ic(f, this.e); - this.s = AGc(this.k); - } - function xUc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - l = BD(pr((g10 = Jsb(new ZRc(b).a.d, 0), new aSc(g10))), 86); - o10 = l ? BD(vNb(l, (mTc(), _Sc)), 86) : null; - e = 1; - while (!!l && !!o10) { - i10 = 0; - u = 0; - c = l; - d = o10; - for (h = 0; h < e; h++) { - c = VRc(c); - d = VRc(d); - u += Edb(ED(vNb(c, (mTc(), cTc)))); - i10 += Edb(ED(vNb(d, cTc))); - } - t = Edb(ED(vNb(o10, (mTc(), fTc)))); - s = Edb(ED(vNb(l, fTc))); - m = zUc(l, o10); - n = t + i10 + a.a + m - s - u; - if (0 < n) { - j = b; - k = 0; - while (!!j && j != d) { - ++k; - j = BD(vNb(j, aTc), 86); - } - if (j) { - r = n / k; - j = b; - while (j != d) { - q = Edb(ED(vNb(j, fTc))) + n; - yNb(j, fTc, q); - p = Edb(ED(vNb(j, cTc))) + n; - yNb(j, cTc, p); - n -= r; - j = BD(vNb(j, aTc), 86); - } - } else { - return; - } - } - ++e; - l.d.b == 0 ? l = JRc(new ZRc(b), e) : l = BD(pr((f = Jsb(new ZRc(l).a.d, 0), new aSc(f))), 86); - o10 = l ? BD(vNb(l, _Sc), 86) : null; - } - } - function Cbc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - i10 = true; - e = 0; - j = a.f[b.p]; - k = b.o.b + a.n; - c = a.c[b.p][2]; - Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a - 1 + c)); - Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) - k + c * a.e); - ++j; - if (j >= a.i) { - ++a.i; - Ekb(a.a, meb(1)); - Ekb(a.b, k); - } else { - d = a.c[b.p][1]; - Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a + 1 - d)); - Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) + k - d * a.e); - } - (a.q == (kAc(), dAc) && (BD(Ikb(a.a, j), 19).a > a.j || BD(Ikb(a.a, j - 1), 19).a > a.j) || a.q == gAc && (Edb(ED(Ikb(a.b, j))) > a.k || Edb(ED(Ikb(a.b, j - 1))) > a.k)) && (i10 = false); - for (g10 = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(g10); ) { - f = BD(Rr(g10), 17); - h = f.c.i; - if (a.f[h.p] == j) { - l = Cbc(a, h); - e = e + BD(l.a, 19).a; - i10 = i10 && Ccb(DD(l.b)); - } - } - a.f[b.p] = j; - e = e + a.c[b.p][0]; - return new vgd(meb(e), (Bcb(), i10 ? true : false)); - } - function sPc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - l = new Lqb(); - g10 = new Rkb(); - qPc(a, c, a.d.fg(), g10, l); - qPc(a, d, a.d.gg(), g10, l); - a.b = 0.2 * (p = rPc(LAb(new YAb(null, new Kub(g10, 16)), new xPc())), q = rPc(LAb(new YAb(null, new Kub(g10, 16)), new zPc())), $wnd.Math.min(p, q)); - f = 0; - for (h = 0; h < g10.c.length - 1; h++) { - i10 = (tCb(h, g10.c.length), BD(g10.c[h], 112)); - for (o10 = h + 1; o10 < g10.c.length; o10++) { - f += pPc(a, i10, (tCb(o10, g10.c.length), BD(g10.c[o10], 112))); - } - } - m = BD(vNb(b, (wtc(), jtc)), 230); - f >= 2 && (r = WNc(g10, true, m), !a.e && (a.e = new ZOc(a)), VOc(a.e, r, g10, a.b), void 0); - uPc(g10, m); - wPc(g10); - n = -1; - for (k = new olb(g10); k.a < k.c.c.length; ) { - j = BD(mlb(k), 112); - if ($wnd.Math.abs(j.s - j.c) < qme) { - continue; - } - n = $wnd.Math.max(n, j.o); - a.d.dg(j, e, a.c); - } - a.d.a.a.$b(); - return n + 1; - } - function aUb(a, b) { - var c, d, e, f, g10; - c = Edb(ED(vNb(b, (Nyc(), lyc)))); - c < 2 && yNb(b, lyc, 2); - d = BD(vNb(b, Lwc), 103); - d == (ead(), cad) && yNb(b, Lwc, a_b(b)); - e = BD(vNb(b, fyc), 19); - e.a == 0 ? yNb(b, (wtc(), jtc), new Gub()) : yNb(b, (wtc(), jtc), new Hub(e.a)); - f = DD(vNb(b, Axc)); - f == null && yNb(b, Axc, (Bcb(), PD(vNb(b, Swc)) === PD((Aad(), wad)) ? true : false)); - MAb(new YAb(null, new Kub(b.a, 16)), new dUb(a)); - MAb(LAb(new YAb(null, new Kub(b.b, 16)), new fUb()), new hUb(a)); - g10 = new oBc(b); - yNb(b, (wtc(), otc), g10); - H2c(a.a); - K2c(a.a, (qUb(), lUb), BD(vNb(b, Jwc), 246)); - K2c(a.a, mUb, BD(vNb(b, sxc), 246)); - K2c(a.a, nUb, BD(vNb(b, Iwc), 246)); - K2c(a.a, oUb, BD(vNb(b, Exc), 246)); - K2c(a.a, pUb, kNc(BD(vNb(b, Swc), 218))); - E2c(a.a, _Tb(b)); - yNb(b, itc, F2c(a.a, b)); - } - function fjc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - if (m = a.c[b], n = a.c[c], (o10 = BD(vNb(m, (wtc(), Qsc)), 15), !!o10 && o10.gc() != 0 && o10.Hc(n)) || (p = m.k != (j0b(), g0b) && n.k != g0b, q = BD(vNb(m, Psc), 10), r = BD(vNb(n, Psc), 10), s = q != r, t = !!q && q != m || !!r && r != n, u = gjc(m, (Ucd(), Acd)), v = gjc(n, Rcd), t = t | (gjc(m, Rcd) || gjc(n, Acd)), w = t && s || u || v, p && w) || m.k == (j0b(), i0b) && n.k == h0b || n.k == (j0b(), i0b) && m.k == h0b) { - return false; - } - k = a.c[b]; - f = a.c[c]; - e = LHc(a.e, k, f, (Ucd(), Tcd)); - i10 = LHc(a.i, k, f, zcd); - Yic(a.f, k, f); - j = Hic(a.b, k, f) + BD(e.a, 19).a + BD(i10.a, 19).a + a.f.d; - h = Hic(a.b, f, k) + BD(e.b, 19).a + BD(i10.b, 19).a + a.f.b; - if (a.a) { - l = BD(vNb(k, $sc), 11); - g10 = BD(vNb(f, $sc), 11); - d = JHc(a.g, l, g10); - j += BD(d.a, 19).a; - h += BD(d.b, 19).a; - } - return j > h; - } - function k6b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - c = BD(vNb(a, (Nyc(), Vxc)), 98); - g10 = a.f; - f = a.d; - h = g10.a + f.b + f.c; - i10 = 0 - f.d - a.c.b; - k = g10.b + f.d + f.a - a.c.b; - j = new Rkb(); - l = new Rkb(); - for (e = new olb(b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - switch (c.g) { - case 1: - case 2: - case 3: - a6b(d); - break; - case 4: - m = BD(vNb(d, Txc), 8); - n = !m ? 0 : m.a; - d.n.a = h * Edb(ED(vNb(d, (wtc(), htc)))) - n; - M_b(d, true, false); - break; - case 5: - o10 = BD(vNb(d, Txc), 8); - p = !o10 ? 0 : o10.a; - d.n.a = Edb(ED(vNb(d, (wtc(), htc)))) - p; - M_b(d, true, false); - g10.a = $wnd.Math.max(g10.a, d.n.a + d.o.a / 2); - } - switch (BD(vNb(d, (wtc(), Hsc)), 61).g) { - case 1: - d.n.b = i10; - j.c[j.c.length] = d; - break; - case 3: - d.n.b = k; - l.c[l.c.length] = d; - } - } - switch (c.g) { - case 1: - case 2: - c6b(j, a); - c6b(l, a); - break; - case 3: - i6b(j, a); - i6b(l, a); - } - } - function VHc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l; - k = new Rkb(); - l = new jkb(); - f = null; - e = 0; - for (d = 0; d < b.length; ++d) { - c = b[d]; - XHc(f, c) && (e = QHc(a, l, k, EHc, e)); - wNb(c, (wtc(), Psc)) && (f = BD(vNb(c, Psc), 10)); - switch (c.k.g) { - case 0: - for (i10 = Vq(Nq(V_b(c, (Ucd(), Acd)), new GIc())); xc(i10); ) { - g10 = BD(yc(i10), 11); - a.d[g10.p] = e++; - k.c[k.c.length] = g10; - } - e = QHc(a, l, k, EHc, e); - for (j = Vq(Nq(V_b(c, Rcd), new GIc())); xc(j); ) { - g10 = BD(yc(j), 11); - a.d[g10.p] = e++; - k.c[k.c.length] = g10; - } - break; - case 3: - if (!V_b(c, DHc).dc()) { - g10 = BD(V_b(c, DHc).Xb(0), 11); - a.d[g10.p] = e++; - k.c[k.c.length] = g10; - } - V_b(c, EHc).dc() || Wjb(l, c); - break; - case 1: - for (h = V_b(c, (Ucd(), Tcd)).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 11); - a.d[g10.p] = e++; - k.c[k.c.length] = g10; - } - V_b(c, zcd).Jc(new EIc(l, c)); - } - } - QHc(a, l, k, EHc, e); - return k; - } - function y$c(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s; - j = Pje; - k = Pje; - h = Qje; - i10 = Qje; - for (m = new olb(b.i); m.a < m.c.c.length; ) { - l = BD(mlb(m), 65); - e = BD(BD(Ohb(a.g, l.a), 46).b, 33); - bld(e, l.b.c, l.b.d); - j = $wnd.Math.min(j, e.i); - k = $wnd.Math.min(k, e.j); - h = $wnd.Math.max(h, e.i + e.g); - i10 = $wnd.Math.max(i10, e.j + e.f); - } - n = BD(hkd(a.c, (d0c(), W_c)), 116); - Afd(a.c, h - j + (n.b + n.c), i10 - k + (n.d + n.a), true, true); - Efd(a.c, -j + n.b, -k + n.d); - for (d = new Fyd(Wod(a.c)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 79); - g10 = itd(c, true, true); - o10 = jtd(c); - q = ltd(c); - p = new f7c(o10.i + o10.g / 2, o10.j + o10.f / 2); - f = new f7c(q.i + q.g / 2, q.j + q.f / 2); - r = c7c(new f7c(f.a, f.b), p); - l6c(r, o10.g, o10.f); - P6c(p, r); - s = c7c(new f7c(p.a, p.b), f); - l6c(s, q.g, q.f); - P6c(f, s); - nmd(g10, p.a, p.b); - gmd(g10, f.a, f.b); - } - } - function EYb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - a.c = a.d; - o10 = DD(vNb(b, (Nyc(), gyc))); - n = o10 == null || (uCb(o10), o10); - f = BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)); - e = BD(vNb(b, Vxc), 98); - c = !(e == (dcd(), Zbd) || e == _bd || e == $bd); - if (n && (c || !f)) { - for (l = new olb(b.a); l.a < l.c.c.length; ) { - j = BD(mlb(l), 10); - j.p = 0; - } - m = new Rkb(); - for (k = new olb(b.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 10); - d = DYb(a, j, null); - if (d) { - i10 = new XZb(); - tNb(i10, b); - yNb(i10, Esc, BD(d.b, 21)); - u_b(i10.d, b.d); - yNb(i10, Hxc, null); - for (h = BD(d.a, 15).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 10); - Ekb(i10.a, g10); - g10.a = i10; - } - m.Fc(i10); - } - } - f && (PD(vNb(b, twc)) === PD((RXb(), OXb)) ? a.c = a.b : a.c = a.a); - } else { - m = new amb(OC(GC(KQ, 1), cne, 37, 0, [b])); - } - PD(vNb(b, twc)) !== PD((RXb(), QXb)) && (mmb(), m.ad(new HYb())); - return m; - } - function KTc(a) { - r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), are), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new NTc()), bre), pqb((Csd(), wsd))))); - p4c(a, are, ame, CTc); - p4c(a, are, wme, 20); - p4c(a, are, _le, tme); - p4c(a, are, vme, meb(1)); - p4c(a, are, zme, (Bcb(), true)); - p4c(a, are, Zpe, Ksd(vTc)); - p4c(a, are, Fme, Ksd(xTc)); - p4c(a, are, Tme, Ksd(yTc)); - p4c(a, are, Eme, Ksd(zTc)); - p4c(a, are, Gme, Ksd(wTc)); - p4c(a, are, Dme, Ksd(ATc)); - p4c(a, are, Hme, Ksd(DTc)); - p4c(a, are, Zqe, Ksd(ITc)); - p4c(a, are, $qe, Ksd(FTc)); - } - function zod(a) { - if (a.q) - return; - a.q = true; - a.p = Lnd(a, 0); - a.a = Lnd(a, 1); - Qnd(a.a, 0); - a.f = Lnd(a, 2); - Qnd(a.f, 1); - Knd(a.f, 2); - a.n = Lnd(a, 3); - Knd(a.n, 3); - Knd(a.n, 4); - Knd(a.n, 5); - Knd(a.n, 6); - a.g = Lnd(a, 4); - Qnd(a.g, 7); - Knd(a.g, 8); - a.c = Lnd(a, 5); - Qnd(a.c, 7); - Qnd(a.c, 8); - a.i = Lnd(a, 6); - Qnd(a.i, 9); - Qnd(a.i, 10); - Qnd(a.i, 11); - Qnd(a.i, 12); - Knd(a.i, 13); - a.j = Lnd(a, 7); - Qnd(a.j, 9); - a.d = Lnd(a, 8); - Qnd(a.d, 3); - Qnd(a.d, 4); - Qnd(a.d, 5); - Qnd(a.d, 6); - Knd(a.d, 7); - Knd(a.d, 8); - Knd(a.d, 9); - Knd(a.d, 10); - a.b = Lnd(a, 9); - Knd(a.b, 0); - Knd(a.b, 1); - a.e = Lnd(a, 10); - Knd(a.e, 1); - Knd(a.e, 2); - Knd(a.e, 3); - Knd(a.e, 4); - Qnd(a.e, 5); - Qnd(a.e, 6); - Qnd(a.e, 7); - Qnd(a.e, 8); - Qnd(a.e, 9); - Qnd(a.e, 10); - Knd(a.e, 11); - a.k = Lnd(a, 11); - Knd(a.k, 0); - Knd(a.k, 1); - a.o = Mnd(a, 12); - a.s = Mnd(a, 13); - } - function AUb(a, b) { - b.dc() && HVb(a.j, true, true, true, true); - pb(b, (Ucd(), Gcd)) && HVb(a.j, true, true, true, false); - pb(b, Bcd) && HVb(a.j, false, true, true, true); - pb(b, Ocd) && HVb(a.j, true, true, false, true); - pb(b, Qcd) && HVb(a.j, true, false, true, true); - pb(b, Hcd) && HVb(a.j, false, true, true, false); - pb(b, Ccd) && HVb(a.j, false, true, false, true); - pb(b, Pcd) && HVb(a.j, true, false, false, true); - pb(b, Ncd) && HVb(a.j, true, false, true, false); - pb(b, Lcd) && HVb(a.j, true, true, true, true); - pb(b, Ecd) && HVb(a.j, true, true, true, true); - pb(b, Lcd) && HVb(a.j, true, true, true, true); - pb(b, Dcd) && HVb(a.j, true, true, true, true); - pb(b, Mcd) && HVb(a.j, true, true, true, true); - pb(b, Kcd) && HVb(a.j, true, true, true, true); - pb(b, Jcd) && HVb(a.j, true, true, true, true); - } - function rZb(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q; - f = new Rkb(); - for (j = new olb(d); j.a < j.c.c.length; ) { - h = BD(mlb(j), 441); - g10 = null; - if (h.f == (KAc(), IAc)) { - for (o10 = new olb(h.e); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 17); - q = n.d.i; - if (Q_b(q) == b) { - iZb(a, b, h, n, h.b, n.d); - } else if (!c || f_b(q, c)) { - jZb(a, b, h, d, n); - } else { - m = oZb(a, b, c, n, h.b, IAc, g10); - m != g10 && (f.c[f.c.length] = m, true); - m.c && (g10 = m); - } - } - } else { - for (l = new olb(h.e); l.a < l.c.c.length; ) { - k = BD(mlb(l), 17); - p = k.c.i; - if (Q_b(p) == b) { - iZb(a, b, h, k, k.c, h.b); - } else if (!c || f_b(p, c)) { - continue; - } else { - m = oZb(a, b, c, k, h.b, HAc, g10); - m != g10 && (f.c[f.c.length] = m, true); - m.c && (g10 = m); - } - } - } - } - for (i10 = new olb(f); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 441); - Jkb(b.a, h.a, 0) != -1 || Ekb(b.a, h.a); - h.c && (e.c[e.c.length] = h, true); - } - } - function SJc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - j = new Rkb(); - for (i10 = new olb(b.a); i10.a < i10.c.c.length; ) { - g10 = BD(mlb(i10), 10); - for (m = V_b(g10, (Ucd(), zcd)).Kc(); m.Ob(); ) { - l = BD(m.Pb(), 11); - for (e = new olb(l.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.d.i.c != c) { - continue; - } - j.c[j.c.length] = d; - } - } - } - for (h = Su(c.a).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 10); - for (m = V_b(g10, (Ucd(), Tcd)).Kc(); m.Ob(); ) { - l = BD(m.Pb(), 11); - for (e = new olb(l.e); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.c.i.c != b) { - continue; - } - k = new Bib(j, j.c.length); - f = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17)); - while (f != d && k.b > 0) { - a.a[f.p] = true; - a.a[d.p] = true; - f = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17)); - } - k.b > 0 && uib(k); - } - } - } - } - function Vmd(b, c, d) { - var e, f, g10, h, i10, j, k, l, m; - if (b.a != c.Aj()) { - throw vbb(new Wdb(tte + c.ne() + ute)); - } - e = o1d((O6d(), M6d), c).$k(); - if (e) { - return e.Aj().Nh().Ih(e, d); - } - h = o1d(M6d, c).al(); - if (h) { - if (d == null) { - return null; - } - i10 = BD(d, 15); - if (i10.dc()) { - return ""; - } - m = new Hfb(); - for (g10 = i10.Kc(); g10.Ob(); ) { - f = g10.Pb(); - Efb(m, h.Aj().Nh().Ih(h, f)); - m.a += " "; - } - return lcb(m, m.a.length - 1); - } - l = o1d(M6d, c).bl(); - if (!l.dc()) { - for (k = l.Kc(); k.Ob(); ) { - j = BD(k.Pb(), 148); - if (j.wj(d)) { - try { - m = j.Aj().Nh().Ih(j, d); - if (m != null) { - return m; - } - } catch (a) { - a = ubb(a); - if (!JD(a, 102)) - throw vbb(a); - } - } - } - throw vbb(new Wdb("Invalid value: '" + d + "' for datatype :" + c.ne())); - } - BD(c, 834).Fj(); - return d == null ? null : JD(d, 172) ? "" + BD(d, 172).a : rb(d) == $J ? CQd(Pmd[0], BD(d, 199)) : fcb(d); - } - function zQc(a) { - var b, c, d, e, f, g10, h, i10, j, k; - j = new Psb(); - h = new Psb(); - for (f = new olb(a); f.a < f.c.c.length; ) { - d = BD(mlb(f), 128); - d.v = 0; - d.n = d.i.c.length; - d.u = d.t.c.length; - d.n == 0 && (Gsb(j, d, j.c.b, j.c), true); - d.u == 0 && d.r.a.gc() == 0 && (Gsb(h, d, h.c.b, h.c), true); - } - g10 = -1; - while (j.b != 0) { - d = BD(Vt(j, 0), 128); - for (c = new olb(d.t); c.a < c.c.c.length; ) { - b = BD(mlb(c), 268); - k = b.b; - k.v = $wnd.Math.max(k.v, d.v + 1); - g10 = $wnd.Math.max(g10, k.v); - --k.n; - k.n == 0 && (Gsb(j, k, j.c.b, j.c), true); - } - } - if (g10 > -1) { - for (e = Jsb(h, 0); e.b != e.d.c; ) { - d = BD(Xsb(e), 128); - d.v = g10; - } - while (h.b != 0) { - d = BD(Vt(h, 0), 128); - for (c = new olb(d.i); c.a < c.c.c.length; ) { - b = BD(mlb(c), 268); - i10 = b.a; - if (i10.r.a.gc() != 0) { - continue; - } - i10.v = $wnd.Math.min(i10.v, d.v - 1); - --i10.u; - i10.u == 0 && (Gsb(h, i10, h.c.b, h.c), true); - } - } - } - } - function A6c(a, b, c, d, e) { - var f, g10, h, i10; - i10 = Pje; - g10 = false; - h = v6c(a, c7c(new f7c(b.a, b.b), a), P6c(new f7c(c.a, c.b), e), c7c(new f7c(d.a, d.b), c)); - f = !!h && !($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse || $wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse); - h = v6c(a, c7c(new f7c(b.a, b.b), a), c, e); - !!h && (($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f ? i10 = $wnd.Math.min(i10, U6c(c7c(h, c))) : g10 = true); - h = v6c(a, c7c(new f7c(b.a, b.b), a), d, e); - !!h && (g10 || ($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f) && (i10 = $wnd.Math.min(i10, U6c(c7c(h, d)))); - return i10; - } - function cTb(a) { - r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), Rme), Sme), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new fTb()), ume))); - p4c(a, Rme, Ame, Ksd(VSb)); - p4c(a, Rme, Cme, (Bcb(), true)); - p4c(a, Rme, Fme, Ksd(YSb)); - p4c(a, Rme, Tme, Ksd(ZSb)); - p4c(a, Rme, Eme, Ksd($Sb)); - p4c(a, Rme, Gme, Ksd(XSb)); - p4c(a, Rme, Dme, Ksd(_Sb)); - p4c(a, Rme, Hme, Ksd(aTb)); - p4c(a, Rme, Mme, Ksd(USb)); - p4c(a, Rme, Ome, Ksd(SSb)); - p4c(a, Rme, Pme, Ksd(TSb)); - p4c(a, Rme, Qme, Ksd(WSb)); - p4c(a, Rme, Nme, Ksd(RSb)); - } - function BFc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - Odd(b, "Interactive crossing minimization", 1); - g10 = 0; - for (f = new olb(a.b); f.a < f.c.c.length; ) { - d = BD(mlb(f), 29); - d.p = g10++; - } - m = WZb(a); - q = new iHc(m.length); - $Ic(new amb(OC(GC(qY, 1), Uhe, 225, 0, [q])), m); - p = 0; - g10 = 0; - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - c = 0; - l = 0; - for (k = new olb(d.a); k.a < k.c.c.length; ) { - i10 = BD(mlb(k), 10); - if (i10.n.a > 0) { - c += i10.n.a + i10.o.a / 2; - ++l; - } - for (o10 = new olb(i10.j); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 11); - n.p = p++; - } - } - l > 0 && (c /= l); - r = KC(UD, Vje, 25, d.a.c.length, 15, 1); - h = 0; - for (j = new olb(d.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - i10.p = h++; - r[i10.p] = AFc(i10, c); - i10.k == (j0b(), g0b) && yNb(i10, (wtc(), atc), r[i10.p]); - } - mmb(); - Okb(d.a, new GFc(r)); - YDc(q, m, g10, true); - ++g10; - } - Qdd(b); - } - function Zfe(a, b) { - var c, d, e, f, g10, h, i10, j, k; - if (b.e == 5) { - Wfe(a, b); - return; - } - j = b; - if (j.b == null || a.b == null) - return; - Yfe(a); - Vfe(a); - Yfe(j); - Vfe(j); - c = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1); - k = 0; - d = 0; - g10 = 0; - while (d < a.b.length && g10 < j.b.length) { - e = a.b[d]; - f = a.b[d + 1]; - h = j.b[g10]; - i10 = j.b[g10 + 1]; - if (f < h) { - c[k++] = a.b[d++]; - c[k++] = a.b[d++]; - } else if (f >= h && e <= i10) { - if (h <= e && f <= i10) { - d += 2; - } else if (h <= e) { - a.b[d] = i10 + 1; - g10 += 2; - } else if (f <= i10) { - c[k++] = e; - c[k++] = h - 1; - d += 2; - } else { - c[k++] = e; - c[k++] = h - 1; - a.b[d] = i10 + 1; - g10 += 2; - } - } else if (i10 < e) { - g10 += 2; - } else { - throw vbb(new hz("Token#subtractRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] - [" + j.b[g10] + "," + j.b[g10 + 1] + "]")); - } - } - while (d < a.b.length) { - c[k++] = a.b[d++]; - c[k++] = a.b[d++]; - } - a.b = KC(WD, oje, 25, k, 15, 1); - $fb(c, 0, a.b, 0, k); - } - function BJb(a) { - var b, c, d, e, f, g10, h; - if (a.A.dc()) { - return; - } - if (a.A.Hc((tdd(), rdd))) { - BD(Mpb(a.b, (Ucd(), Acd)), 124).k = true; - BD(Mpb(a.b, Rcd), 124).k = true; - b = a.q != (dcd(), _bd) && a.q != $bd; - ZGb(BD(Mpb(a.b, zcd), 124), b); - ZGb(BD(Mpb(a.b, Tcd), 124), b); - ZGb(a.g, b); - if (a.A.Hc(sdd)) { - BD(Mpb(a.b, Acd), 124).j = true; - BD(Mpb(a.b, Rcd), 124).j = true; - BD(Mpb(a.b, zcd), 124).k = true; - BD(Mpb(a.b, Tcd), 124).k = true; - a.g.k = true; - } - } - if (a.A.Hc(qdd)) { - a.a.j = true; - a.a.k = true; - a.g.j = true; - a.g.k = true; - h = a.B.Hc((Idd(), Edd)); - for (e = wJb(), f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - c = BD(Mpb(a.i, d), 306); - if (c) { - if (sJb(d)) { - c.j = true; - c.k = true; - } else { - c.j = !h; - c.k = !h; - } - } - } - } - if (a.A.Hc(pdd) && a.B.Hc((Idd(), Ddd))) { - a.g.j = true; - a.g.j = true; - if (!a.a.j) { - a.a.j = true; - a.a.k = true; - a.a.e = true; - } - } - } - function GJc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - for (d = new olb(a.e.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - n = a.i[e.p]; - j = n.a.e; - i10 = n.d.e; - e.n.b = j; - r = i10 - j - e.o.b; - b = bKc(e); - m = (Izc(), (!e.q ? (mmb(), mmb(), kmb) : e.q)._b((Nyc(), Cxc)) ? l = BD(vNb(e, Cxc), 197) : l = BD(vNb(Q_b(e), Dxc), 197), l); - b && (m == Fzc || m == Ezc) && (e.o.b += r); - if (b && (m == Hzc || m == Fzc || m == Ezc)) { - for (p = new olb(e.j); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 11); - if ((Ucd(), Ecd).Hc(o10.j)) { - k = BD(Ohb(a.k, o10), 121); - o10.n.b = k.e - j; - } - } - for (h = new olb(e.b); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 70); - q = BD(vNb(e, xxc), 21); - q.Hc((Hbd(), Ebd)) ? g10.n.b += r : q.Hc(Fbd) && (g10.n.b += r / 2); - } - (m == Fzc || m == Ezc) && V_b(e, (Ucd(), Rcd)).Jc(new $Kc(r)); - } - } - } - } - function Lwb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - if (!a.b) { - return false; - } - g10 = null; - m = null; - i10 = new exb(null, null); - e = 1; - i10.a[1] = a.b; - l = i10; - while (l.a[e]) { - j = e; - h = m; - m = l; - l = l.a[e]; - d = a.a.ue(b, l.d); - e = d < 0 ? 0 : 1; - d == 0 && (!c.c || wtb(l.e, c.d)) && (g10 = l); - if (!(!!l && l.b) && !Hwb(l.a[e])) { - if (Hwb(l.a[1 - e])) { - m = m.a[j] = Owb(l, e); - } else if (!Hwb(l.a[1 - e])) { - n = m.a[1 - j]; - if (n) { - if (!Hwb(n.a[1 - j]) && !Hwb(n.a[j])) { - m.b = false; - n.b = true; - l.b = true; - } else { - f = h.a[1] == m ? 1 : 0; - Hwb(n.a[j]) ? h.a[f] = Nwb(m, j) : Hwb(n.a[1 - j]) && (h.a[f] = Owb(m, j)); - l.b = h.a[f].b = true; - h.a[f].a[0].b = false; - h.a[f].a[1].b = false; - } - } - } - } - } - if (g10) { - c.b = true; - c.d = g10.e; - if (l != g10) { - k = new exb(l.d, l.e); - Mwb(a, i10, g10, k); - m == g10 && (m = k); - } - m.a[m.a[1] == l ? 1 : 0] = l.a[!l.a[0] ? 1 : 0]; - --a.c; - } - a.b = i10.a[1]; - !!a.b && (a.b.b = false); - return c.b; - } - function cic(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - for (e = new olb(a.a.a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 57); - for (i10 = d.c.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 57); - if (d.a == h.a) { - continue; - } - fad(a.a.d) ? l = a.a.g.Oe(d, h) : l = a.a.g.Pe(d, h); - f = d.b.a + d.d.b + l - h.b.a; - f = $wnd.Math.ceil(f); - f = $wnd.Math.max(0, f); - if (vgc(d, h)) { - g10 = nGb(new pGb(), a.d); - j = QD($wnd.Math.ceil(h.b.a - d.b.a)); - b = j - (h.b.a - d.b.a); - k = ugc(d).a; - c = d; - if (!k) { - k = ugc(h).a; - b = -b; - c = h; - } - if (k) { - c.b.a -= b; - k.n.a -= b; - } - AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, j)), 1), g10), a.c[d.a.d])); - AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, -j)), 1), g10), a.c[h.a.d])); - } else { - m = 1; - (JD(d.g, 145) && JD(h.g, 10) || JD(h.g, 145) && JD(d.g, 10)) && (m = 2); - AFb(DFb(CFb(EFb(BFb(new FFb(), QD(f)), m), a.c[d.a.d]), a.c[h.a.d])); - } - } - } - } - function pEc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - if (c) { - d = -1; - k = new Bib(b, 0); - while (k.b < k.d.gc()) { - h = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 10)); - l = a.c[h.c.p][h.p].a; - if (l == null) { - g10 = d + 1; - f = new Bib(b, k.b); - while (f.b < f.d.gc()) { - m = tEc(a, (sCb(f.b < f.d.gc()), BD(f.d.Xb(f.c = f.b++), 10))).a; - if (m != null) { - g10 = (uCb(m), m); - break; - } - } - l = (d + g10) / 2; - a.c[h.c.p][h.p].a = l; - a.c[h.c.p][h.p].d = (uCb(l), l); - a.c[h.c.p][h.p].b = 1; - } - d = (uCb(l), l); - } - } else { - e = 0; - for (j = new olb(b); j.a < j.c.c.length; ) { - h = BD(mlb(j), 10); - a.c[h.c.p][h.p].a != null && (e = $wnd.Math.max(e, Edb(a.c[h.c.p][h.p].a))); - } - e += 2; - for (i10 = new olb(b); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - if (a.c[h.c.p][h.p].a == null) { - l = Cub(a.i, 24) * lke * e - 1; - a.c[h.c.p][h.p].a = l; - a.c[h.c.p][h.p].d = l; - a.c[h.c.p][h.p].b = 1; - } - } - } - } - function CZd() { - rEd(b5, new i$d()); - rEd(a5, new P$d()); - rEd(c5, new u_d()); - rEd(d5, new M_d()); - rEd(f5, new P_d()); - rEd(h5, new S_d()); - rEd(g5, new V_d()); - rEd(i5, new Y_d()); - rEd(k5, new GZd()); - rEd(l5, new JZd()); - rEd(m5, new MZd()); - rEd(n5, new PZd()); - rEd(o5, new SZd()); - rEd(p5, new VZd()); - rEd(q5, new YZd()); - rEd(t5, new _Zd()); - rEd(v5, new c$d()); - rEd(x6, new f$d()); - rEd(j5, new l$d()); - rEd(u5, new o$d()); - rEd(wI, new r$d()); - rEd(GC(SD, 1), new u$d()); - rEd(xI, new x$d()); - rEd(yI, new A$d()); - rEd($J, new D$d()); - rEd(O4, new G$d()); - rEd(BI, new J$d()); - rEd(T4, new M$d()); - rEd(U4, new S$d()); - rEd(O9, new V$d()); - rEd(E9, new Y$d()); - rEd(FI, new _$d()); - rEd(JI, new c_d()); - rEd(AI, new f_d()); - rEd(MI, new i_d()); - rEd(DK, new l_d()); - rEd(v8, new o_d()); - rEd(u8, new r_d()); - rEd(UI, new x_d()); - rEd(ZI, new A_d()); - rEd(X4, new D_d()); - rEd(V4, new G_d()); - } - function hA(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - !c && (c = TA(b.q.getTimezoneOffset())); - e = (b.q.getTimezoneOffset() - c.a) * 6e4; - h = new gB(wbb(Cbb(b.q.getTime()), e)); - i10 = h; - if (h.q.getTimezoneOffset() != b.q.getTimezoneOffset()) { - e > 0 ? e -= 864e5 : e += 864e5; - i10 = new gB(wbb(Cbb(b.q.getTime()), e)); - } - k = new Vfb(); - j = a.a.length; - for (f = 0; f < j; ) { - d = bfb(a.a, f); - if (d >= 97 && d <= 122 || d >= 65 && d <= 90) { - for (g10 = f + 1; g10 < j && bfb(a.a, g10) == d; ++g10) - ; - vA(k, d, g10 - f, h, i10, c); - f = g10; - } else if (d == 39) { - ++f; - if (f < j && bfb(a.a, f) == 39) { - k.a += "'"; - ++f; - continue; - } - l = false; - while (!l) { - g10 = f; - while (g10 < j && bfb(a.a, g10) != 39) { - ++g10; - } - if (g10 >= j) { - throw vbb(new Wdb("Missing trailing '")); - } - g10 + 1 < j && bfb(a.a, g10 + 1) == 39 ? ++g10 : l = true; - Qfb(k, qfb(a.a, f, g10)); - f = g10 + 1; - } - } else { - k.a += String.fromCharCode(d); - ++f; - } - } - return k.a; - } - function MEc(a) { - var b, c, d, e, f, g10, h, i10; - b = null; - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 233); - Edb(REc(c.g, c.d[0]).a); - c.b = null; - if (!!c.e && c.e.gc() > 0 && c.c == 0) { - !b && (b = new Rkb()); - b.c[b.c.length] = c; - } - } - if (b) { - while (b.c.length != 0) { - c = BD(Kkb(b, 0), 233); - if (!!c.b && c.b.c.length > 0) { - for (f = (!c.b && (c.b = new Rkb()), new olb(c.b)); f.a < f.c.c.length; ) { - e = BD(mlb(f), 233); - if (Gdb(REc(e.g, e.d[0]).a) == Gdb(REc(c.g, c.d[0]).a)) { - if (Jkb(a, e, 0) > Jkb(a, c, 0)) { - return new vgd(e, c); - } - } else if (Edb(REc(e.g, e.d[0]).a) > Edb(REc(c.g, c.d[0]).a)) { - return new vgd(e, c); - } - } - } - for (h = (!c.e && (c.e = new Rkb()), c.e).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 233); - i10 = (!g10.b && (g10.b = new Rkb()), g10.b); - wCb(0, i10.c.length); - aCb(i10.c, 0, c); - g10.c == i10.c.length && (b.c[b.c.length] = g10, true); - } - } - } - return null; - } - function wlb(a, b) { - var c, d, e, f, g10, h, i10, j, k; - if (a == null) { - return Xhe; - } - i10 = b.a.zc(a, b); - if (i10 != null) { - return "[...]"; - } - c = new xwb(She, "[", "]"); - for (e = a, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - if (d != null && (rb(d).i & 4) != 0) { - if (Array.isArray(d) && (k = HC(d), !(k >= 14 && k <= 16))) { - if (b.a._b(d)) { - !c.a ? c.a = new Wfb(c.d) : Qfb(c.a, c.b); - Nfb(c.a, "[...]"); - } else { - h = CD(d); - j = new Vqb(b); - uwb(c, wlb(h, j)); - } - } else - JD(d, 177) ? uwb(c, Xlb(BD(d, 177))) : JD(d, 190) ? uwb(c, Qlb(BD(d, 190))) : JD(d, 195) ? uwb(c, Rlb(BD(d, 195))) : JD(d, 2012) ? uwb(c, Wlb(BD(d, 2012))) : JD(d, 48) ? uwb(c, Ulb(BD(d, 48))) : JD(d, 364) ? uwb(c, Vlb(BD(d, 364))) : JD(d, 832) ? uwb(c, Tlb(BD(d, 832))) : JD(d, 104) && uwb(c, Slb(BD(d, 104))); - } else { - uwb(c, d == null ? Xhe : fcb(d)); - } - } - return !c.a ? c.c : c.e.length == 0 ? c.a.a : c.a.a + ("" + c.e); - } - function xQb(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - h = itd(b, false, false); - r = ofd(h); - d && (r = w7c(r)); - t = Edb(ED(hkd(b, (CPb(), vPb)))); - q = (sCb(r.b != 0), BD(r.a.a.c, 8)); - l = BD(Ut(r, 1), 8); - if (r.b > 2) { - k = new Rkb(); - Gkb(k, new Jib(r, 1, r.b)); - f = sQb(k, t + a.a); - s = new XOb(f); - tNb(s, b); - c.c[c.c.length] = s; - } else { - d ? s = BD(Ohb(a.b, jtd(b)), 266) : s = BD(Ohb(a.b, ltd(b)), 266); - } - i10 = jtd(b); - d && (i10 = ltd(b)); - g10 = zQb(q, i10); - j = t + a.a; - if (g10.a) { - j += $wnd.Math.abs(q.b - l.b); - p = new f7c(l.a, (l.b + q.b) / 2); - } else { - j += $wnd.Math.abs(q.a - l.a); - p = new f7c((l.a + q.a) / 2, l.b); - } - d ? Rhb(a.d, b, new ZOb(s, g10, p, j)) : Rhb(a.c, b, new ZOb(s, g10, p, j)); - Rhb(a.b, b, s); - o10 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n); - for (n = new Fyd(o10); n.e != n.i.gc(); ) { - m = BD(Dyd(n), 137); - e = wQb(a, m, true, 0, 0); - c.c[c.c.length] = e; - } - } - function wPc(a) { - var b, c, d, e, f, g10, h, i10, j, k; - j = new Rkb(); - h = new Rkb(); - for (g10 = new olb(a); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 112); - pOc(e, e.f.c.length); - qOc(e, e.k.c.length); - e.d == 0 && (j.c[j.c.length] = e, true); - e.i == 0 && e.e.b == 0 && (h.c[h.c.length] = e, true); - } - d = -1; - while (j.c.length != 0) { - e = BD(Kkb(j, 0), 112); - for (c = new olb(e.k); c.a < c.c.c.length; ) { - b = BD(mlb(c), 129); - k = b.b; - rOc(k, $wnd.Math.max(k.o, e.o + 1)); - d = $wnd.Math.max(d, k.o); - pOc(k, k.d - 1); - k.d == 0 && (j.c[j.c.length] = k, true); - } - } - if (d > -1) { - for (f = new olb(h); f.a < f.c.c.length; ) { - e = BD(mlb(f), 112); - e.o = d; - } - while (h.c.length != 0) { - e = BD(Kkb(h, 0), 112); - for (c = new olb(e.f); c.a < c.c.c.length; ) { - b = BD(mlb(c), 129); - i10 = b.a; - if (i10.e.b > 0) { - continue; - } - rOc(i10, $wnd.Math.min(i10.o, e.o - 1)); - qOc(i10, i10.i - 1); - i10.i == 0 && (h.c[h.c.length] = i10, true); - } - } - } - } - function QQd(a, b, c) { - var d, e, f, g10, h, i10, j; - j = a.c; - !b && (b = FQd); - a.c = b; - if ((a.Db & 4) != 0 && (a.Db & 1) == 0) { - i10 = new nSd(a, 1, 2, j, a.c); - !c ? c = i10 : c.Ei(i10); - } - if (j != b) { - if (JD(a.Cb, 284)) { - if (a.Db >> 16 == -10) { - c = BD(a.Cb, 284).nk(b, c); - } else if (a.Db >> 16 == -15) { - !b && (b = (jGd(), YFd)); - !j && (j = (jGd(), YFd)); - if (a.Cb.nh()) { - i10 = new pSd(a.Cb, 1, 13, j, b, HLd(QSd(BD(a.Cb, 59)), a), false); - !c ? c = i10 : c.Ei(i10); - } - } - } else if (JD(a.Cb, 88)) { - if (a.Db >> 16 == -23) { - JD(b, 88) || (b = (jGd(), _Fd)); - JD(j, 88) || (j = (jGd(), _Fd)); - if (a.Cb.nh()) { - i10 = new pSd(a.Cb, 1, 10, j, b, HLd(VKd(BD(a.Cb, 26)), a), false); - !c ? c = i10 : c.Ei(i10); - } - } - } else if (JD(a.Cb, 444)) { - h = BD(a.Cb, 836); - g10 = (!h.b && (h.b = new RYd(new NYd())), h.b); - for (f = (d = new nib(new eib(g10.a).a), new ZYd(d)); f.a.b; ) { - e = BD(lib(f.a).cd(), 87); - c = QQd(e, MQd(e, h), c); - } - } - } - return c; - } - function O1b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - g10 = Ccb(DD(hkd(a, (Nyc(), fxc)))); - m = BD(hkd(a, Yxc), 21); - i10 = false; - j = false; - l = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); - while (l.e != l.i.gc() && (!i10 || !j)) { - f = BD(Dyd(l), 118); - h = 0; - for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!f.d && (f.d = new y5d(B2, f, 8, 5)), f.d), (!f.e && (f.e = new y5d(B2, f, 7, 4)), f.e)]))); Qr(e); ) { - d = BD(Rr(e), 79); - k = g10 && Qld(d) && Ccb(DD(hkd(d, gxc))); - c = ELd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), f) ? a == Xod(atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) : a == Xod(atd(BD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 82))); - if (k || c) { - ++h; - if (h > 1) { - break; - } - } - } - h > 0 ? i10 = true : m.Hc((rcd(), ncd)) && (!f.n && (f.n = new cUd(D2, f, 1, 7)), f.n).i > 0 && (i10 = true); - h > 1 && (j = true); - } - i10 && b.Fc((Orc(), Hrc)); - j && b.Fc((Orc(), Irc)); - } - function zfd(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - m = BD(hkd(a, (Y9c(), Y8c)), 21); - if (m.dc()) { - return null; - } - h = 0; - g10 = 0; - if (m.Hc((tdd(), rdd))) { - k = BD(hkd(a, t9c), 98); - d = 2; - c = 2; - e = 2; - f = 2; - b = !Xod(a) ? BD(hkd(a, z8c), 103) : BD(hkd(Xod(a), z8c), 103); - for (j = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); j.e != j.i.gc(); ) { - i10 = BD(Dyd(j), 118); - l = BD(hkd(i10, A9c), 61); - if (l == (Ucd(), Scd)) { - l = lfd(i10, b); - jkd(i10, A9c, l); - } - if (k == (dcd(), $bd)) { - switch (l.g) { - case 1: - d = $wnd.Math.max(d, i10.i + i10.g); - break; - case 2: - c = $wnd.Math.max(c, i10.j + i10.f); - break; - case 3: - e = $wnd.Math.max(e, i10.i + i10.g); - break; - case 4: - f = $wnd.Math.max(f, i10.j + i10.f); - } - } else { - switch (l.g) { - case 1: - d += i10.g + 2; - break; - case 2: - c += i10.f + 2; - break; - case 3: - e += i10.g + 2; - break; - case 4: - f += i10.f + 2; - } - } - } - h = $wnd.Math.max(d, e); - g10 = $wnd.Math.max(c, f); - } - return Afd(a, h, g10, true, true); - } - function lnc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - s = BD(GAb(VAb(JAb(new YAb(null, new Kub(b.d, 16)), new pnc(c)), new rnc(c)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15); - l = Ohe; - k = Rie; - for (i10 = new olb(b.b.j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 11); - if (h.j == c) { - l = $wnd.Math.min(l, h.p); - k = $wnd.Math.max(k, h.p); - } - } - if (l == Ohe) { - for (g10 = 0; g10 < s.gc(); g10++) { - ojc(BD(s.Xb(g10), 101), c, g10); - } - } else { - t = KC(WD, oje, 25, e.length, 15, 1); - Elb(t, t.length); - for (r = s.Kc(); r.Ob(); ) { - q = BD(r.Pb(), 101); - f = BD(Ohb(a.b, q), 177); - j = 0; - for (p = l; p <= k; p++) { - f[p] && (j = $wnd.Math.max(j, d[p])); - } - if (q.i) { - n = q.i.c; - u = new Tqb(); - for (m = 0; m < e.length; m++) { - e[n][m] && Qqb(u, meb(t[m])); - } - while (Rqb(u, meb(j))) { - ++j; - } - } - ojc(q, c, j); - for (o10 = l; o10 <= k; o10++) { - f[o10] && (d[o10] = j + 1); - } - !!q.i && (t[q.i.c] = j); - } - } - } - function YJc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - e = null; - for (d = new olb(b.a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - bKc(c) ? f = (h = nGb(oGb(new pGb(), c), a.f), i10 = nGb(oGb(new pGb(), c), a.f), j = new rKc(c, true, h, i10), k = c.o.b, l = (Izc(), (!c.q ? (mmb(), mmb(), kmb) : c.q)._b((Nyc(), Cxc)) ? m = BD(vNb(c, Cxc), 197) : m = BD(vNb(Q_b(c), Dxc), 197), m), n = 1e4, l == Ezc && (n = 1), o10 = AFb(DFb(CFb(BFb(EFb(new FFb(), n), QD($wnd.Math.ceil(k))), h), i10)), l == Fzc && Qqb(a.d, o10), ZJc(a, Su(V_b(c, (Ucd(), Tcd))), j), ZJc(a, V_b(c, zcd), j), j) : f = (p = nGb(oGb(new pGb(), c), a.f), MAb(JAb(new YAb(null, new Kub(c.j, 16)), new EKc()), new GKc(a, p)), new rKc(c, false, p, p)); - a.i[c.p] = f; - if (e) { - g10 = e.c.d.a + jBc(a.n, e.c, c) + c.d.d; - e.b || (g10 += e.c.o.b); - AFb(DFb(CFb(EFb(BFb(new FFb(), QD($wnd.Math.ceil(g10))), 0), e.d), f.a)); - } - e = f; - } - } - function s9b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - Odd(b, "Label dummy insertions", 1); - l = new Rkb(); - g10 = Edb(ED(vNb(a, (Nyc(), nyc)))); - j = Edb(ED(vNb(a, ryc))); - k = BD(vNb(a, Lwc), 103); - for (n = new olb(a.a); n.a < n.c.c.length; ) { - m = BD(mlb(n), 10); - for (f = new Sr(ur(U_b(m).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (e.c.i != e.d.i && Lq(e.b, p9b)) { - p = t9b(e); - o10 = Pu(e.b.c.length); - c = r9b(a, e, p, o10); - l.c[l.c.length] = c; - d = c.o; - h = new Bib(e.b, 0); - while (h.b < h.d.gc()) { - i10 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 70)); - if (PD(vNb(i10, Qwc)) === PD((qad(), nad))) { - if (k == (ead(), dad) || k == _9c) { - d.a += i10.o.a + j; - d.b = $wnd.Math.max(d.b, i10.o.b); - } else { - d.a = $wnd.Math.max(d.a, i10.o.a); - d.b += i10.o.b + j; - } - o10.c[o10.c.length] = i10; - uib(h); - } - } - if (k == (ead(), dad) || k == _9c) { - d.a -= j; - d.b += g10 + p; - } else { - d.b += g10 - j + p; - } - } - } - } - Gkb(a.a, l); - Qdd(b); - } - function eYb(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n; - f = new qYb(b); - l = _Xb(a, b, f); - n = $wnd.Math.max(Edb(ED(vNb(b, (Nyc(), Zwc)))), 1); - for (k = new olb(l.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 46); - i10 = dYb(BD(j.a, 8), BD(j.b, 8), n); - o = true; - o = o & iYb(c, new f7c(i10.c, i10.d)); - o = o & iYb(c, O6c(new f7c(i10.c, i10.d), i10.b, 0)); - o = o & iYb(c, O6c(new f7c(i10.c, i10.d), 0, i10.a)); - o & iYb(c, O6c(new f7c(i10.c, i10.d), i10.b, i10.a)); - } - m = f.d; - h = dYb(BD(l.b.a, 8), BD(l.b.b, 8), n); - if (m == (Ucd(), Tcd) || m == zcd) { - d.c[m.g] = $wnd.Math.min(d.c[m.g], h.d); - d.b[m.g] = $wnd.Math.max(d.b[m.g], h.d + h.a); - } else { - d.c[m.g] = $wnd.Math.min(d.c[m.g], h.c); - d.b[m.g] = $wnd.Math.max(d.b[m.g], h.c + h.b); - } - e = Qje; - g10 = f.c.i.d; - switch (m.g) { - case 4: - e = g10.c; - break; - case 2: - e = g10.b; - break; - case 1: - e = g10.a; - break; - case 3: - e = g10.d; - } - d.a[m.g] = $wnd.Math.max(d.a[m.g], e); - return f; - } - function eKd(b) { - var c, d, e, f; - d = b.D != null ? b.D : b.B; - c = hfb(d, wfb(91)); - if (c != -1) { - e = d.substr(0, c); - f = new Hfb(); - do - f.a += "["; - while ((c = gfb(d, 91, ++c)) != -1); - if (dfb(e, Khe)) - f.a += "Z"; - else if (dfb(e, Eve)) - f.a += "B"; - else if (dfb(e, Fve)) - f.a += "C"; - else if (dfb(e, Gve)) - f.a += "D"; - else if (dfb(e, Hve)) - f.a += "F"; - else if (dfb(e, Ive)) - f.a += "I"; - else if (dfb(e, Jve)) - f.a += "J"; - else if (dfb(e, Kve)) - f.a += "S"; - else { - f.a += "L"; - f.a += "" + e; - f.a += ";"; - } - try { - return null; - } catch (a) { - a = ubb(a); - if (!JD(a, 60)) - throw vbb(a); - } - } else if (hfb(d, wfb(46)) == -1) { - if (dfb(d, Khe)) - return sbb; - else if (dfb(d, Eve)) - return SD; - else if (dfb(d, Fve)) - return TD; - else if (dfb(d, Gve)) - return UD; - else if (dfb(d, Hve)) - return VD; - else if (dfb(d, Ive)) - return WD; - else if (dfb(d, Jve)) - return XD; - else if (dfb(d, Kve)) - return rbb; - } - return null; - } - function $1b(a, b, c) { - var d, e, f, g10, h, i10, j, k; - j = new b0b(c); - tNb(j, b); - yNb(j, (wtc(), $sc), b); - j.o.a = b.g; - j.o.b = b.f; - j.n.a = b.i; - j.n.b = b.j; - Ekb(c.a, j); - Rhb(a.a, b, j); - ((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0 || Ccb(DD(hkd(b, (Nyc(), fxc))))) && yNb(j, wsc, (Bcb(), true)); - i10 = BD(vNb(c, Ksc), 21); - k = BD(vNb(j, (Nyc(), Vxc)), 98); - k == (dcd(), ccd) ? yNb(j, Vxc, bcd) : k != bcd && i10.Fc((Orc(), Krc)); - d = BD(vNb(c, Lwc), 103); - for (h = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); h.e != h.i.gc(); ) { - g10 = BD(Dyd(h), 118); - Ccb(DD(hkd(g10, Jxc))) || _1b(a, g10, j, i10, d, k); - } - for (f = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); f.e != f.i.gc(); ) { - e = BD(Dyd(f), 137); - !Ccb(DD(hkd(e, Jxc))) && !!e.a && Ekb(j.b, Z1b(e)); - } - Ccb(DD(vNb(j, pwc))) && i10.Fc((Orc(), Frc)); - if (Ccb(DD(vNb(j, exc)))) { - i10.Fc((Orc(), Jrc)); - i10.Fc(Irc); - yNb(j, Vxc, bcd); - } - return j; - } - function F4b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - h = BD(Ohb(b.c, a), 459); - s = b.a.c; - i10 = b.a.c + b.a.b; - C = h.f; - D = h.a; - g10 = C < D; - p = new f7c(s, C); - t = new f7c(i10, D); - e = (s + i10) / 2; - q = new f7c(e, C); - u = new f7c(e, D); - f = G4b(a, C, D); - w = A0b(b.B); - A = new f7c(e, f); - B = A0b(b.D); - c = j6c(OC(GC(m1, 1), nie, 8, 0, [w, A, B])); - n = false; - r = b.B.i; - if (!!r && !!r.c && h.d) { - j = g10 && r.p < r.c.a.c.length - 1 || !g10 && r.p > 0; - if (j) { - if (j) { - m = r.p; - g10 ? ++m : --m; - l = BD(Ikb(r.c.a, m), 10); - d = I4b(l); - n = !(s6c(d, w, c[0]) || n6c(d, w, c[0])); - } - } else { - n = true; - } - } - o10 = false; - v = b.D.i; - if (!!v && !!v.c && h.e) { - k = g10 && v.p > 0 || !g10 && v.p < v.c.a.c.length - 1; - if (k) { - m = v.p; - g10 ? --m : ++m; - l = BD(Ikb(v.c.a, m), 10); - d = I4b(l); - o10 = !(s6c(d, c[0], B) || n6c(d, c[0], B)); - } else { - o10 = true; - } - } - n && o10 && Dsb(a.a, A); - n || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [p, q])); - o10 || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [u, t])); - } - function yfd(a, b) { - var c, d, e, f, g10, h, i10, j; - if (JD(a.Ug(), 160)) { - yfd(BD(a.Ug(), 160), b); - b.a += " > "; - } else { - b.a += "Root "; - } - c = a.Tg().zb; - dfb(c.substr(0, 3), "Elk") ? Qfb(b, c.substr(3)) : (b.a += "" + c, b); - e = a.zg(); - if (e) { - Qfb((b.a += " ", b), e); - return; - } - if (JD(a, 354)) { - j = BD(a, 137).a; - if (j) { - Qfb((b.a += " ", b), j); - return; - } - } - for (g10 = new Fyd(a.Ag()); g10.e != g10.i.gc(); ) { - f = BD(Dyd(g10), 137); - j = f.a; - if (j) { - Qfb((b.a += " ", b), j); - return; - } - } - if (JD(a, 352)) { - d = BD(a, 79); - !d.b && (d.b = new y5d(z2, d, 4, 7)); - if (d.b.i != 0 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i != 0)) { - b.a += " ("; - h = new Oyd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b)); - while (h.e != h.i.gc()) { - h.e > 0 && (b.a += She, b); - yfd(BD(Dyd(h), 160), b); - } - b.a += gne; - i10 = new Oyd((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c)); - while (i10.e != i10.i.gc()) { - i10.e > 0 && (b.a += She, b); - yfd(BD(Dyd(i10), 160), b); - } - b.a += ")"; - } - } - } - function y2b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - f = BD(vNb(a, (wtc(), $sc)), 79); - if (!f) { - return; - } - d = a.a; - e = new g7c(c); - P6c(e, C2b(a)); - if (f_b(a.d.i, a.c.i)) { - m = a.c; - l = l7c(OC(GC(m1, 1), nie, 8, 0, [m.n, m.a])); - c7c(l, c); - } else { - l = A0b(a.c); - } - Gsb(d, l, d.a, d.a.a); - n = A0b(a.d); - vNb(a, utc) != null && P6c(n, BD(vNb(a, utc), 8)); - Gsb(d, n, d.c.b, d.c); - q7c(d, e); - g10 = itd(f, true, true); - kmd(g10, BD(qud((!f.b && (f.b = new y5d(z2, f, 4, 7)), f.b), 0), 82)); - lmd(g10, BD(qud((!f.c && (f.c = new y5d(z2, f, 5, 8)), f.c), 0), 82)); - ifd(d, g10); - for (k = new olb(a.b); k.a < k.c.c.length; ) { - j = BD(mlb(k), 70); - h = BD(vNb(j, $sc), 137); - cld(h, j.o.a); - ald(h, j.o.b); - bld(h, j.n.a + e.a, j.n.b + e.b); - jkd(h, (I9b(), H9b), DD(vNb(j, H9b))); - } - i10 = BD(vNb(a, (Nyc(), jxc)), 74); - if (i10) { - q7c(i10, e); - jkd(f, jxc, i10); - } else { - jkd(f, jxc, null); - } - b == (Aad(), yad) ? jkd(f, Swc, yad) : jkd(f, Swc, null); - } - function mJc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s; - n = b.c.length; - m = 0; - for (l = new olb(a.b); l.a < l.c.c.length; ) { - k = BD(mlb(l), 29); - r = k.a; - if (r.c.length == 0) { - continue; - } - q = new olb(r); - j = 0; - s = null; - e = BD(mlb(q), 10); - f = null; - while (e) { - f = BD(Ikb(b, e.p), 257); - if (f.c >= 0) { - i10 = null; - h = new Bib(k.a, j + 1); - while (h.b < h.d.gc()) { - g10 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 10)); - i10 = BD(Ikb(b, g10.p), 257); - if (i10.d == f.d && i10.c < f.c) { - break; - } else { - i10 = null; - } - } - if (i10) { - if (s) { - Nkb(d, e.p, meb(BD(Ikb(d, e.p), 19).a - 1)); - BD(Ikb(c, s.p), 15).Mc(f); - } - f = yJc(f, e, n++); - b.c[b.c.length] = f; - Ekb(c, new Rkb()); - if (s) { - BD(Ikb(c, s.p), 15).Fc(f); - Ekb(d, meb(1)); - } else { - Ekb(d, meb(0)); - } - } - } - o10 = null; - if (q.a < q.c.c.length) { - o10 = BD(mlb(q), 10); - p = BD(Ikb(b, o10.p), 257); - BD(Ikb(c, e.p), 15).Fc(p); - Nkb(d, o10.p, meb(BD(Ikb(d, o10.p), 19).a + 1)); - } - f.d = m; - f.c = j++; - s = e; - e = o10; - } - ++m; - } - } - function u6c(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - i10 = a; - k = c7c(new f7c(b.a, b.b), a); - j = c; - l = c7c(new f7c(d.a, d.b), c); - m = i10.a; - q = i10.b; - o10 = j.a; - s = j.b; - n = k.a; - r = k.b; - p = l.a; - t = l.b; - e = p * r - n * t; - Iy(); - My(Jqe); - if ($wnd.Math.abs(0 - e) <= Jqe || 0 == e || isNaN(0) && isNaN(e)) { - return false; - } - g10 = 1 / e * ((m - o10) * r - (q - s) * n); - h = 1 / e * -(-(m - o10) * t + (q - s) * p); - f = (null, My(Jqe), ($wnd.Math.abs(0 - g10) <= Jqe || 0 == g10 || isNaN(0) && isNaN(g10) ? 0 : 0 < g10 ? -1 : 0 > g10 ? 1 : Ny(isNaN(0), isNaN(g10))) < 0 && (null, My(Jqe), ($wnd.Math.abs(g10 - 1) <= Jqe || g10 == 1 || isNaN(g10) && isNaN(1) ? 0 : g10 < 1 ? -1 : g10 > 1 ? 1 : Ny(isNaN(g10), isNaN(1))) < 0) && (null, My(Jqe), ($wnd.Math.abs(0 - h) <= Jqe || 0 == h || isNaN(0) && isNaN(h) ? 0 : 0 < h ? -1 : 0 > h ? 1 : Ny(isNaN(0), isNaN(h))) < 0) && (null, My(Jqe), ($wnd.Math.abs(h - 1) <= Jqe || h == 1 || isNaN(h) && isNaN(1) ? 0 : h < 1 ? -1 : h > 1 ? 1 : Ny(isNaN(h), isNaN(1))) < 0)); - return f; - } - function z6d(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - for (l = new usb(new nsb(a)); l.b != l.c.a.d; ) { - k = tsb(l); - h = BD(k.d, 56); - b = BD(k.e, 56); - g10 = h.Tg(); - for (p = 0, u = (g10.i == null && TKd(g10), g10.i).length; p < u; ++p) { - j = (f = (g10.i == null && TKd(g10), g10.i), p >= 0 && p < f.length ? f[p] : null); - if (j.Ij() && !j.Jj()) { - if (JD(j, 99)) { - i10 = BD(j, 18); - (i10.Bb & ote) == 0 && (w = zUd(i10), !(!!w && (w.Bb & ote) != 0)) && y6d(a, i10, h, b); - } else { - Q6d(); - if (BD(j, 66).Oj()) { - c = (v = j, BD(!v ? null : BD(b, 49).xh(v), 153)); - if (c) { - n = BD(h.ah(j), 153); - d = c.gc(); - for (q = 0, o10 = n.gc(); q < o10; ++q) { - m = n.il(q); - if (JD(m, 99)) { - t = n.jl(q); - e = Wrb(a, t); - if (e == null && t != null) { - s = BD(m, 18); - if (!a.b || (s.Bb & ote) != 0 || !!zUd(s)) { - continue; - } - e = t; - } - if (!c.dl(m, e)) { - for (r = 0; r < d; ++r) { - if (c.il(r) == m && PD(c.jl(r)) === PD(e)) { - c.ii(c.gc() - 1, r); - --d; - break; - } - } - } - } else { - c.dl(n.il(q), n.jl(q)); - } - } - } - } - } - } - } - } - } - function CZc(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m, n, o10, p, q, r, s, t; - r = xZc(b, c, a.g); - e.n && e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd)); - if (a.b) { - for (q = 0; q < r.c.length; q++) { - l = (tCb(q, r.c.length), BD(r.c[q], 200)); - if (q != 0) { - n = (tCb(q - 1, r.c.length), BD(r.c[q - 1], 200)); - w$c(l, n.f + n.b + a.g); - } - tZc(q, r, c, a.g); - AZc(a, l); - e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd)); - } - } else { - for (p = new olb(r); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 200); - for (k = new olb(o10.a); k.a < k.c.c.length; ) { - j = BD(mlb(k), 187); - s = new b$c(j.s, j.t, a.g); - WZc(s, j); - Ekb(o10.d, s); - } - } - } - BZc(a, r); - e.n && e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd)); - t = $wnd.Math.max(a.d, d.a - (g10.b + g10.c)); - m = $wnd.Math.max(a.c, d.b - (g10.d + g10.a)); - h = m - a.c; - if (a.e && a.f) { - i10 = t / m; - i10 < a.a ? t = m * a.a : h += t / a.a - m; - } - a.e && zZc(r, t, h); - e.n && e.n && !!f && Tdd(e, i6d(f), (pgd(), mgd)); - return new d$c(a.a, t, a.c + h, (k$c(), j$c)); - } - function UJc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - a.j = KC(WD, oje, 25, a.g, 15, 1); - a.o = new Rkb(); - MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new aLc()), new cLc(a)); - a.a = KC(sbb, dle, 25, a.b, 16, 1); - TAb(new YAb(null, new Kub(a.e.b, 16)), new rLc(a)); - d = (l = new Rkb(), MAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new hLc()), new jLc(a)), new lLc(a, l)), l); - for (i10 = new olb(d); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 508); - if (h.c.length <= 1) { - continue; - } - if (h.c.length == 2) { - uKc(h); - bKc((tCb(0, h.c.length), BD(h.c[0], 17)).d.i) || Ekb(a.o, h); - continue; - } - if (tKc(h) || sKc(h, new fLc())) { - continue; - } - j = new olb(h); - e = null; - while (j.a < j.c.c.length) { - b = BD(mlb(j), 17); - c = a.c[b.p]; - !e || j.a >= j.c.c.length ? k = JJc((j0b(), h0b), g0b) : k = JJc((j0b(), g0b), g0b); - k *= 2; - f = c.a.g; - c.a.g = $wnd.Math.max(f, f + (k - f)); - g10 = c.b.g; - c.b.g = $wnd.Math.max(g10, g10 + (k - g10)); - e = b; - } - } - } - function VNc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v; - v = Hx(a); - k = new Rkb(); - h = a.c.length; - l = h - 1; - m = h + 1; - while (v.a.c != 0) { - while (c.b != 0) { - t = (sCb(c.b != 0), BD(Nsb(c, c.a.a), 112)); - Jwb(v.a, t) != null; - t.g = l--; - YNc(t, b, c, d); - } - while (b.b != 0) { - u = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 112)); - Jwb(v.a, u) != null; - u.g = m++; - YNc(u, b, c, d); - } - j = Rie; - for (r = (g10 = new Ywb(new cxb(new Gjb(v.a).a).b), new Njb(g10)); sib(r.a.a); ) { - q = (f = Wwb(r.a), BD(f.cd(), 112)); - if (!d && q.b > 0 && q.a <= 0) { - k.c = KC(SI, Uhe, 1, 0, 5, 1); - k.c[k.c.length] = q; - break; - } - p = q.i - q.d; - if (p >= j) { - if (p > j) { - k.c = KC(SI, Uhe, 1, 0, 5, 1); - j = p; - } - k.c[k.c.length] = q; - } - } - if (k.c.length != 0) { - i10 = BD(Ikb(k, Bub(e, k.c.length)), 112); - Jwb(v.a, i10) != null; - i10.g = m++; - YNc(i10, b, c, d); - k.c = KC(SI, Uhe, 1, 0, 5, 1); - } - } - s = a.c.length + 1; - for (o10 = new olb(a); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 112); - n.g < h && (n.g = n.g + s); - } - } - function SDb(a, b) { - var c; - if (a.e) { - throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke))); - } - if (!lDb(a.a, b)) { - throw vbb(new hz(Lke + b + Mke)); - } - if (b == a.d) { - return a; - } - c = a.d; - a.d = b; - switch (c.g) { - case 0: - switch (b.g) { - case 2: - PDb(a); - break; - case 1: - XDb(a); - PDb(a); - break; - case 4: - bEb(a); - PDb(a); - break; - case 3: - bEb(a); - XDb(a); - PDb(a); - } - break; - case 2: - switch (b.g) { - case 1: - XDb(a); - YDb(a); - break; - case 4: - bEb(a); - PDb(a); - break; - case 3: - bEb(a); - XDb(a); - PDb(a); - } - break; - case 1: - switch (b.g) { - case 2: - XDb(a); - YDb(a); - break; - case 4: - XDb(a); - bEb(a); - PDb(a); - break; - case 3: - XDb(a); - bEb(a); - XDb(a); - PDb(a); - } - break; - case 4: - switch (b.g) { - case 2: - bEb(a); - PDb(a); - break; - case 1: - bEb(a); - XDb(a); - PDb(a); - break; - case 3: - XDb(a); - YDb(a); - } - break; - case 3: - switch (b.g) { - case 2: - XDb(a); - bEb(a); - PDb(a); - break; - case 1: - XDb(a); - bEb(a); - XDb(a); - PDb(a); - break; - case 4: - XDb(a); - YDb(a); - } - } - return a; - } - function tVb(a, b) { - var c; - if (a.d) { - throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke))); - } - if (!cVb(a.a, b)) { - throw vbb(new hz(Lke + b + Mke)); - } - if (b == a.c) { - return a; - } - c = a.c; - a.c = b; - switch (c.g) { - case 0: - switch (b.g) { - case 2: - qVb(a); - break; - case 1: - xVb(a); - qVb(a); - break; - case 4: - BVb(a); - qVb(a); - break; - case 3: - BVb(a); - xVb(a); - qVb(a); - } - break; - case 2: - switch (b.g) { - case 1: - xVb(a); - yVb(a); - break; - case 4: - BVb(a); - qVb(a); - break; - case 3: - BVb(a); - xVb(a); - qVb(a); - } - break; - case 1: - switch (b.g) { - case 2: - xVb(a); - yVb(a); - break; - case 4: - xVb(a); - BVb(a); - qVb(a); - break; - case 3: - xVb(a); - BVb(a); - xVb(a); - qVb(a); - } - break; - case 4: - switch (b.g) { - case 2: - BVb(a); - qVb(a); - break; - case 1: - BVb(a); - xVb(a); - qVb(a); - break; - case 3: - xVb(a); - yVb(a); - } - break; - case 3: - switch (b.g) { - case 2: - xVb(a); - BVb(a); - qVb(a); - break; - case 1: - xVb(a); - BVb(a); - xVb(a); - qVb(a); - break; - case 4: - xVb(a); - yVb(a); - } - } - return a; - } - function UQb(a, b, c) { - var d, e, f, g10, h, i10, j, k; - for (i10 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); i10.e != i10.i.gc(); ) { - h = BD(Dyd(i10), 33); - for (e = new Sr(ur(_sd(h).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 79); - !d.b && (d.b = new y5d(z2, d, 4, 7)); - if (!(d.b.i <= 1 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i <= 1))) { - throw vbb(new z2c("Graph must not contain hyperedges.")); - } - if (!Pld(d) && h != atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) { - j = new gRb(); - tNb(j, d); - yNb(j, (HSb(), FSb), d); - dRb(j, BD(Wd(irb(c.f, h)), 144)); - eRb(j, BD(Ohb(c, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 144)); - Ekb(b.c, j); - for (g10 = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); g10.e != g10.i.gc(); ) { - f = BD(Dyd(g10), 137); - k = new mRb(j, f.a); - tNb(k, f); - yNb(k, FSb, f); - k.e.a = $wnd.Math.max(f.g, 1); - k.e.b = $wnd.Math.max(f.f, 1); - lRb(k); - Ekb(b.d, k); - } - } - } - } - } - function OGb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - l = new LIb(a); - iKb(l, !(b == (ead(), dad) || b == _9c)); - k = l.a; - m = new p0b(); - for (e = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), g10 = 0, i10 = e.length; g10 < i10; ++g10) { - c = e[g10]; - j = xHb(k, dHb, c); - !!j && (m.d = $wnd.Math.max(m.d, j.Re())); - } - for (d = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), f = 0, h = d.length; f < h; ++f) { - c = d[f]; - j = xHb(k, fHb, c); - !!j && (m.a = $wnd.Math.max(m.a, j.Re())); - } - for (p = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), r = 0, t = p.length; r < t; ++r) { - n = p[r]; - j = xHb(k, n, dHb); - !!j && (m.b = $wnd.Math.max(m.b, j.Se())); - } - for (o10 = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), q = 0, s = o10.length; q < s; ++q) { - n = o10[q]; - j = xHb(k, n, fHb); - !!j && (m.c = $wnd.Math.max(m.c, j.Se())); - } - if (m.d > 0) { - m.d += k.n.d; - m.d += k.d; - } - if (m.a > 0) { - m.a += k.n.a; - m.a += k.d; - } - if (m.b > 0) { - m.b += k.n.b; - m.b += k.d; - } - if (m.c > 0) { - m.c += k.n.c; - m.c += k.d; - } - return m; - } - function d6b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10; - m = c.d; - l = c.c; - f = new f7c(c.f.a + c.d.b + c.d.c, c.f.b + c.d.d + c.d.a); - g10 = f.b; - for (j = new olb(a.a); j.a < j.c.c.length; ) { - h = BD(mlb(j), 10); - if (h.k != (j0b(), e0b)) { - continue; - } - d = BD(vNb(h, (wtc(), Hsc)), 61); - e = BD(vNb(h, Isc), 8); - k = h.n; - switch (d.g) { - case 2: - k.a = c.f.a + m.c - l.a; - break; - case 4: - k.a = -l.a - m.b; - } - o10 = 0; - switch (d.g) { - case 2: - case 4: - if (b == (dcd(), _bd)) { - n = Edb(ED(vNb(h, htc))); - k.b = f.b * n - BD(vNb(h, (Nyc(), Txc)), 8).b; - o10 = k.b + e.b; - M_b(h, false, true); - } else if (b == $bd) { - k.b = Edb(ED(vNb(h, htc))) - BD(vNb(h, (Nyc(), Txc)), 8).b; - o10 = k.b + e.b; - M_b(h, false, true); - } - } - g10 = $wnd.Math.max(g10, o10); - } - c.f.b += g10 - f.b; - for (i10 = new olb(a.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - if (h.k != (j0b(), e0b)) { - continue; - } - d = BD(vNb(h, (wtc(), Hsc)), 61); - k = h.n; - switch (d.g) { - case 1: - k.b = -l.b - m.d; - break; - case 3: - k.b = c.f.b + m.a - l.b; - } - } - } - function nRc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B; - e = BD(vNb(a, (mTc(), dTc)), 33); - j = Ohe; - k = Ohe; - h = Rie; - i10 = Rie; - for (w = Jsb(a.b, 0); w.b != w.d.c; ) { - u = BD(Xsb(w), 86); - p = u.e; - q = u.f; - j = $wnd.Math.min(j, p.a - q.a / 2); - k = $wnd.Math.min(k, p.b - q.b / 2); - h = $wnd.Math.max(h, p.a + q.a / 2); - i10 = $wnd.Math.max(i10, p.b + q.b / 2); - } - o10 = BD(hkd(e, (JTc(), BTc)), 116); - n = new f7c(o10.b - j, o10.d - k); - for (v = Jsb(a.b, 0); v.b != v.d.c; ) { - u = BD(Xsb(v), 86); - m = vNb(u, dTc); - if (JD(m, 239)) { - f = BD(m, 33); - l = P6c(u.e, n); - bld(f, l.a - f.g / 2, l.b - f.f / 2); - } - } - for (t = Jsb(a.a, 0); t.b != t.d.c; ) { - s = BD(Xsb(t), 188); - d = BD(vNb(s, dTc), 79); - if (d) { - b = s.a; - r = new g7c(s.b.e); - Gsb(b, r, b.a, b.a.a); - A = new g7c(s.c.e); - Gsb(b, A, b.c.b, b.c); - qRc(r, BD(Ut(b, 1), 8), s.b.f); - qRc(A, BD(Ut(b, b.b - 2), 8), s.c.f); - c = itd(d, true, true); - ifd(b, c); - } - } - B = h - j + (o10.b + o10.c); - g10 = i10 - k + (o10.d + o10.a); - Afd(e, B, g10, false, false); - } - function xoc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - l = a.b; - k = new Bib(l, 0); - Aib(k, new H1b(a)); - s = false; - g10 = 1; - while (k.b < k.d.gc()) { - j = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 29)); - p = (tCb(g10, l.c.length), BD(l.c[g10], 29)); - q = Mu(j.a); - r = q.c.length; - for (o10 = new olb(q); o10.a < o10.c.c.length; ) { - m = BD(mlb(o10), 10); - $_b(m, p); - } - if (s) { - for (n = av(new ov(q), 0); n.c.Sb(); ) { - m = BD(pv(n), 10); - for (f = new olb(Mu(R_b(m))); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - PZb(e, true); - yNb(a, (wtc(), Asc), (Bcb(), true)); - d = Noc(a, e, r); - c = BD(vNb(m, usc), 305); - t = BD(Ikb(d, d.c.length - 1), 17); - c.k = t.c.i; - c.n = t; - c.b = e.d.i; - c.c = e; - } - } - s = false; - } else { - if (q.c.length != 0) { - b = (tCb(0, q.c.length), BD(q.c[0], 10)); - if (b.k == (j0b(), d0b)) { - s = true; - g10 = -1; - } - } - } - ++g10; - } - h = new Bib(a.b, 0); - while (h.b < h.d.gc()) { - i10 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)); - i10.a.c.length == 0 && uib(h); - } - } - function wKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - k = BD(BD(Qc(a.r, b), 21), 84); - if (k.gc() <= 2 || b == (Ucd(), zcd) || b == (Ucd(), Tcd)) { - AKb(a, b); - return; - } - p = a.u.Hc((rcd(), qcd)); - c = b == (Ucd(), Acd) ? (vLb(), uLb) : (vLb(), rLb); - r = b == Acd ? (EIb(), BIb) : (EIb(), DIb); - d = dLb(iLb(c), a.s); - q = b == Acd ? Pje : Qje; - for (j = k.Kc(); j.Ob(); ) { - h = BD(j.Pb(), 111); - if (!h.c || h.c.d.c.length <= 0) { - continue; - } - o10 = h.b.rf(); - n = h.e; - l = h.c; - m = l.i; - m.b = (f = l.n, l.e.a + f.b + f.c); - m.a = (g10 = l.n, l.e.b + g10.d + g10.a); - if (p) { - m.c = n.a - (e = l.n, l.e.a + e.b + e.c) - a.s; - p = false; - } else { - m.c = n.a + o10.a + a.s; - } - ytb(r, lle); - l.f = r; - $Hb(l, (NHb(), MHb)); - Ekb(d.d, new BLb(m, bLb(d, m))); - q = b == Acd ? $wnd.Math.min(q, n.b) : $wnd.Math.max(q, n.b + h.b.rf().b); - } - q += b == Acd ? -a.t : a.t; - cLb((d.e = q, d)); - for (i10 = k.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 111); - if (!h.c || h.c.d.c.length <= 0) { - continue; - } - m = h.c.i; - m.c -= h.e.a; - m.d -= h.e.b; - } - } - function IDc(a, b, c) { - var d; - Odd(c, "StretchWidth layering", 1); - if (b.a.c.length == 0) { - Qdd(c); - return; - } - a.c = b; - a.t = 0; - a.u = 0; - a.i = Pje; - a.g = Qje; - a.d = Edb(ED(vNb(b, (Nyc(), lyc)))); - CDc(a); - DDc(a); - ADc(a); - HDc(a); - BDc(a); - a.i = $wnd.Math.max(1, a.i); - a.g = $wnd.Math.max(1, a.g); - a.d = a.d / a.i; - a.f = a.g / a.i; - a.s = FDc(a); - d = new H1b(a.c); - Ekb(a.c.b, d); - a.r = Mu(a.p); - a.n = tlb(a.k, a.k.length); - while (a.r.c.length != 0) { - a.o = JDc(a); - if (!a.o || EDc(a) && a.b.a.gc() != 0) { - KDc(a, d); - d = new H1b(a.c); - Ekb(a.c.b, d); - ye(a.a, a.b); - a.b.a.$b(); - a.t = a.u; - a.u = 0; - } else { - if (EDc(a)) { - a.c.b.c = KC(SI, Uhe, 1, 0, 5, 1); - d = new H1b(a.c); - Ekb(a.c.b, d); - a.t = 0; - a.u = 0; - a.b.a.$b(); - a.a.a.$b(); - ++a.f; - a.r = Mu(a.p); - a.n = tlb(a.k, a.k.length); - } else { - $_b(a.o, d); - Lkb(a.r, a.o); - Qqb(a.b, a.o); - a.t = a.t - a.k[a.o.p] * a.d + a.j[a.o.p]; - a.u += a.e[a.o.p] * a.d; - } - } - } - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - smb(b.b); - Qdd(c); - } - function Mgc(a) { - var b, c, d, e; - MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new khc()), new mhc()); - Kgc(a); - MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new ohc()), new qhc()); - if (a.c == (Aad(), yad)) { - MAb(JAb(LAb(new YAb(null, new Kub(new Pib(a.f), 1)), new yhc()), new Ahc()), new Chc(a)); - MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Ghc()), new Ihc()), new Khc()), new Mhc()), new Ohc(a)); - } - e = new f7c(Pje, Pje); - b = new f7c(Qje, Qje); - for (d = new olb(a.a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 57); - e.a = $wnd.Math.min(e.a, c.d.c); - e.b = $wnd.Math.min(e.b, c.d.d); - b.a = $wnd.Math.max(b.a, c.d.c + c.d.b); - b.b = $wnd.Math.max(b.b, c.d.d + c.d.a); - } - P6c(X6c(a.d.c), V6c(new f7c(e.a, e.b))); - P6c(X6c(a.d.f), c7c(new f7c(b.a, b.b), e)); - Lgc(a, e, b); - Uhb(a.f); - Uhb(a.b); - Uhb(a.g); - Uhb(a.e); - a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a = null; - a.d = null; - } - function vZb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - e = new Rkb(); - for (p = new olb(b.a); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 10); - n = o10.e; - if (n) { - d = vZb(a, n, o10); - Gkb(e, d); - sZb(a, n, o10); - if (BD(vNb(n, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) { - s = BD(vNb(o10, (Nyc(), Vxc)), 98); - m = BD(vNb(o10, Yxc), 174).Hc((rcd(), ncd)); - for (r = new olb(o10.j); r.a < r.c.c.length; ) { - q = BD(mlb(r), 11); - f = BD(Ohb(a.b, q), 10); - if (!f) { - f = Z$b(q, s, q.j, -(q.e.c.length - q.g.c.length), null, new d7c(), q.o, BD(vNb(n, Lwc), 103), n); - yNb(f, $sc, q); - Rhb(a.b, q, f); - Ekb(n.a, f); - } - g10 = BD(Ikb(f.j, 0), 11); - for (k = new olb(q.f); k.a < k.c.c.length; ) { - j = BD(mlb(k), 70); - h = new p_b(); - h.o.a = j.o.a; - h.o.b = j.o.b; - Ekb(g10.f, h); - if (!m) { - t = q.j; - l = 0; - tcd(BD(vNb(o10, Yxc), 21)) && (l = mfd(j.n, j.o, q.o, 0, t)); - s == (dcd(), bcd) || (Ucd(), Ecd).Hc(t) ? h.o.a = l : h.o.b = l; - } - } - } - } - } - } - i10 = new Rkb(); - rZb(a, b, c, e, i10); - !!c && tZb(a, b, c, i10); - return i10; - } - function nEc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - if (a.c[b.c.p][b.p].e) { - return; - } else { - a.c[b.c.p][b.p].e = true; - } - a.c[b.c.p][b.p].b = 0; - a.c[b.c.p][b.p].d = 0; - a.c[b.c.p][b.p].a = null; - for (k = new olb(b.j); k.a < k.c.c.length; ) { - j = BD(mlb(k), 11); - l = c ? new J0b(j) : new R0b(j); - for (i10 = l.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 11); - g10 = h.i; - if (g10.c == b.c) { - if (g10 != b) { - nEc(a, g10, c); - a.c[b.c.p][b.p].b += a.c[g10.c.p][g10.p].b; - a.c[b.c.p][b.p].d += a.c[g10.c.p][g10.p].d; - } - } else { - a.c[b.c.p][b.p].d += a.g[h.p]; - ++a.c[b.c.p][b.p].b; - } - } - } - f = BD(vNb(b, (wtc(), ssc)), 15); - if (f) { - for (e = f.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 10); - if (b.c == d.c) { - nEc(a, d, c); - a.c[b.c.p][b.p].b += a.c[d.c.p][d.p].b; - a.c[b.c.p][b.p].d += a.c[d.c.p][d.p].d; - } - } - } - if (a.c[b.c.p][b.p].b > 0) { - a.c[b.c.p][b.p].d += Cub(a.i, 24) * lke * 0.07000000029802322 - 0.03500000014901161; - a.c[b.c.p][b.p].a = a.c[b.c.p][b.p].d / a.c[b.c.p][b.p].b; - } - } - function m5b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - for (o10 = new olb(a); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 10); - n5b(n.n); - n5b(n.o); - o5b(n.f); - r5b(n); - t5b(n); - for (q = new olb(n.j); q.a < q.c.c.length; ) { - p = BD(mlb(q), 11); - n5b(p.n); - n5b(p.a); - n5b(p.o); - G0b(p, s5b(p.j)); - f = BD(vNb(p, (Nyc(), Wxc)), 19); - !!f && yNb(p, Wxc, meb(-f.a)); - for (e = new olb(p.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - for (c = Jsb(d.a, 0); c.b != c.d.c; ) { - b = BD(Xsb(c), 8); - n5b(b); - } - i10 = BD(vNb(d, jxc), 74); - if (i10) { - for (h = Jsb(i10, 0); h.b != h.d.c; ) { - g10 = BD(Xsb(h), 8); - n5b(g10); - } - } - for (l = new olb(d.b); l.a < l.c.c.length; ) { - j = BD(mlb(l), 70); - n5b(j.n); - n5b(j.o); - } - } - for (m = new olb(p.f); m.a < m.c.c.length; ) { - j = BD(mlb(m), 70); - n5b(j.n); - n5b(j.o); - } - } - if (n.k == (j0b(), e0b)) { - yNb(n, (wtc(), Hsc), s5b(BD(vNb(n, Hsc), 61))); - q5b(n); - } - for (k = new olb(n.b); k.a < k.c.c.length; ) { - j = BD(mlb(k), 70); - r5b(j); - n5b(j.o); - n5b(j.n); - } - } - } - function yQb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A; - a.e = b; - h = $Pb(b); - w = new Rkb(); - for (d = new olb(h); d.a < d.c.c.length; ) { - c = BD(mlb(d), 15); - A = new Rkb(); - w.c[w.c.length] = A; - i10 = new Tqb(); - for (o10 = c.Kc(); o10.Ob(); ) { - n = BD(o10.Pb(), 33); - f = wQb(a, n, true, 0, 0); - A.c[A.c.length] = f; - p = n.i; - q = n.j; - new f7c(p, q); - m = (!n.n && (n.n = new cUd(D2, n, 1, 7)), n.n); - for (l = new Fyd(m); l.e != l.i.gc(); ) { - j = BD(Dyd(l), 137); - e = wQb(a, j, false, p, q); - A.c[A.c.length] = e; - } - v = (!n.c && (n.c = new cUd(F2, n, 9, 9)), n.c); - for (s = new Fyd(v); s.e != s.i.gc(); ) { - r = BD(Dyd(s), 118); - g10 = wQb(a, r, false, p, q); - A.c[A.c.length] = g10; - t = r.i + p; - u = r.j + q; - m = (!r.n && (r.n = new cUd(D2, r, 1, 7)), r.n); - for (k = new Fyd(m); k.e != k.i.gc(); ) { - j = BD(Dyd(k), 137); - e = wQb(a, j, false, t, u); - A.c[A.c.length] = e; - } - } - ye(i10, Dx(pl(OC(GC(KI, 1), Uhe, 20, 0, [_sd(n), $sd(n)])))); - } - vQb(a, i10, A); - } - a.f = new aPb(w); - tNb(a.f, b); - return a.f; - } - function Kqd(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G; - D = Ohb(a.e, d); - if (D == null) { - D = new eC(); - n = BD(D, 183); - s = b + "_s"; - t = s + e; - m = new yC(t); - cC(n, Vte, m); - } - C = BD(D, 183); - Qpd(c, C); - G = new eC(); - Spd(G, "x", d.j); - Spd(G, "y", d.k); - cC(C, Yte, G); - A = new eC(); - Spd(A, "x", d.b); - Spd(A, "y", d.c); - cC(C, "endPoint", A); - l = Fhe((!d.a && (d.a = new xMd(y2, d, 5)), d.a)); - o10 = !l; - if (o10) { - w = new wB(); - f = new Srd(w); - reb((!d.a && (d.a = new xMd(y2, d, 5)), d.a), f); - cC(C, Ote, w); - } - i10 = dmd(d); - u = !!i10; - u && Tpd(a.a, C, Qte, kqd(a, dmd(d))); - r = emd(d); - v = !!r; - v && Tpd(a.a, C, Pte, kqd(a, emd(d))); - j = (!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e).i == 0; - p = !j; - if (p) { - B = new wB(); - g10 = new Urd(a, B); - reb((!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e), g10); - cC(C, Ste, B); - } - k = (!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g).i == 0; - q = !k; - if (q) { - F = new wB(); - h = new Wrd(a, F); - reb((!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g), h); - cC(C, Rte, F); - } - } - function eKb(a) { - $Jb(); - var b, c, d, e, f, g10, h; - d = a.f.n; - for (g10 = ci(a.r).a.nc(); g10.Ob(); ) { - f = BD(g10.Pb(), 111); - e = 0; - if (f.b.Xe((Y9c(), s9c))) { - e = Edb(ED(f.b.We(s9c))); - if (e < 0) { - switch (f.b.Hf().g) { - case 1: - d.d = $wnd.Math.max(d.d, -e); - break; - case 3: - d.a = $wnd.Math.max(d.a, -e); - break; - case 2: - d.c = $wnd.Math.max(d.c, -e); - break; - case 4: - d.b = $wnd.Math.max(d.b, -e); - } - } - } - if (tcd(a.u)) { - b = nfd(f.b, e); - h = !BD(a.e.We(b9c), 174).Hc((Idd(), zdd)); - c = false; - switch (f.b.Hf().g) { - case 1: - c = b > d.d; - d.d = $wnd.Math.max(d.d, b); - if (h && c) { - d.d = $wnd.Math.max(d.d, d.a); - d.a = d.d + e; - } - break; - case 3: - c = b > d.a; - d.a = $wnd.Math.max(d.a, b); - if (h && c) { - d.a = $wnd.Math.max(d.a, d.d); - d.d = d.a + e; - } - break; - case 2: - c = b > d.c; - d.c = $wnd.Math.max(d.c, b); - if (h && c) { - d.c = $wnd.Math.max(d.b, d.c); - d.b = d.c + e; - } - break; - case 4: - c = b > d.b; - d.b = $wnd.Math.max(d.b, b); - if (h && c) { - d.b = $wnd.Math.max(d.b, d.c); - d.c = d.b + e; - } - } - } - } - } - function l3b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - for (j = new olb(a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - g10 = BD(vNb(i10, (Nyc(), mxc)), 163); - f = null; - switch (g10.g) { - case 1: - case 2: - f = (Gqc(), Fqc); - break; - case 3: - case 4: - f = (Gqc(), Dqc); - } - if (f) { - yNb(i10, (wtc(), Bsc), (Gqc(), Fqc)); - f == Dqc ? o3b(i10, g10, (KAc(), HAc)) : f == Fqc && o3b(i10, g10, (KAc(), IAc)); - } else { - if (fcd(BD(vNb(i10, Vxc), 98)) && i10.j.c.length != 0) { - b = true; - for (l = new olb(i10.j); l.a < l.c.c.length; ) { - k = BD(mlb(l), 11); - if (!(k.j == (Ucd(), zcd) && k.e.c.length - k.g.c.length > 0 || k.j == Tcd && k.e.c.length - k.g.c.length < 0)) { - b = false; - break; - } - for (e = new olb(k.g); e.a < e.c.c.length; ) { - c = BD(mlb(e), 17); - h = BD(vNb(c.d.i, mxc), 163); - if (h == (Ctc(), ztc) || h == Atc) { - b = false; - break; - } - } - for (d = new olb(k.e); d.a < d.c.c.length; ) { - c = BD(mlb(d), 17); - h = BD(vNb(c.c.i, mxc), 163); - if (h == (Ctc(), xtc) || h == ytc) { - b = false; - break; - } - } - } - b && o3b(i10, g10, (KAc(), JAc)); - } - } - } - } - function lJc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - w = 0; - n = 0; - for (l = new olb(b.e); l.a < l.c.c.length; ) { - k = BD(mlb(l), 10); - m = 0; - h = 0; - i10 = c ? BD(vNb(k, hJc), 19).a : Rie; - r = d ? BD(vNb(k, iJc), 19).a : Rie; - j = $wnd.Math.max(i10, r); - for (t = new olb(k.j); t.a < t.c.c.length; ) { - s = BD(mlb(t), 11); - u = k.n.b + s.n.b + s.a.b; - if (d) { - for (g10 = new olb(s.g); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - p = f.d; - o10 = p.i; - if (b != a.a[o10.p]) { - q = $wnd.Math.max(BD(vNb(o10, hJc), 19).a, BD(vNb(o10, iJc), 19).a); - v = BD(vNb(f, (Nyc(), eyc)), 19).a; - if (v >= j && v >= q) { - m += o10.n.b + p.n.b + p.a.b - u; - ++h; - } - } - } - } - if (c) { - for (g10 = new olb(s.e); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - p = f.c; - o10 = p.i; - if (b != a.a[o10.p]) { - q = $wnd.Math.max(BD(vNb(o10, hJc), 19).a, BD(vNb(o10, iJc), 19).a); - v = BD(vNb(f, (Nyc(), eyc)), 19).a; - if (v >= j && v >= q) { - m += o10.n.b + p.n.b + p.a.b - u; - ++h; - } - } - } - } - } - if (h > 0) { - w += m / h; - ++n; - } - } - if (n > 0) { - b.a = e * w / n; - b.g = n; - } else { - b.a = 0; - b.g = 0; - } - } - function oMc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - for (e = new olb(a.a.b); e.a < e.c.c.length; ) { - c = BD(mlb(e), 29); - for (i10 = new olb(c.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - b.j[h.p] = h; - b.i[h.p] = b.o == (eMc(), dMc) ? Qje : Pje; - } - } - Uhb(a.c); - g10 = a.a.b; - b.c == (YLc(), WLc) && (g10 = JD(g10, 152) ? km(BD(g10, 152)) : JD(g10, 131) ? BD(g10, 131).a : JD(g10, 54) ? new ov(g10) : new dv(g10)); - UMc(a.e, b, a.b); - Alb(b.p, null); - for (f = g10.Kc(); f.Ob(); ) { - c = BD(f.Pb(), 29); - j = c.a; - b.o == (eMc(), dMc) && (j = JD(j, 152) ? km(BD(j, 152)) : JD(j, 131) ? BD(j, 131).a : JD(j, 54) ? new ov(j) : new dv(j)); - for (m = j.Kc(); m.Ob(); ) { - l = BD(m.Pb(), 10); - b.g[l.p] == l && pMc(a, l, b); - } - } - qMc(a, b); - for (d = g10.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 29); - for (m = new olb(c.a); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - b.p[l.p] = b.p[b.g[l.p].p]; - if (l == b.g[l.p]) { - k = Edb(b.i[b.j[l.p].p]); - (b.o == (eMc(), dMc) && k > Qje || b.o == cMc && k < Pje) && (b.p[l.p] = Edb(b.p[l.p]) + k); - } - } - } - a.e.cg(); - } - function PGb(a, b, c, d) { - var e, f, g10, h, i10; - h = new LIb(b); - rKb(h, d); - e = true; - if (!!a && a.Xe((Y9c(), z8c))) { - f = BD(a.We((Y9c(), z8c)), 103); - e = f == (ead(), cad) || f == aad || f == bad; - } - hKb(h, false); - Hkb(h.e.wf(), new mKb(h, false, e)); - NJb(h, h.f, (gHb(), dHb), (Ucd(), Acd)); - NJb(h, h.f, fHb, Rcd); - NJb(h, h.g, dHb, Tcd); - NJb(h, h.g, fHb, zcd); - PJb(h, Acd); - PJb(h, Rcd); - OJb(h, zcd); - OJb(h, Tcd); - $Jb(); - g10 = h.A.Hc((tdd(), pdd)) && h.B.Hc((Idd(), Ddd)) ? _Jb(h) : null; - !!g10 && DHb(h.a, g10); - eKb(h); - GJb(h); - PKb(h); - BJb(h); - pKb(h); - HKb(h); - xKb(h, Acd); - xKb(h, Rcd); - CJb(h); - oKb(h); - if (!c) { - return h.o; - } - cKb(h); - LKb(h); - xKb(h, zcd); - xKb(h, Tcd); - i10 = h.B.Hc((Idd(), Edd)); - RJb(h, i10, Acd); - RJb(h, i10, Rcd); - SJb(h, i10, zcd); - SJb(h, i10, Tcd); - MAb(new YAb(null, new Kub(new $ib(h.i), 0)), new TJb()); - MAb(JAb(new YAb(null, ci(h.r).a.oc()), new VJb()), new XJb()); - dKb(h); - h.e.uf(h.o); - MAb(new YAb(null, ci(h.r).a.oc()), new fKb()); - return h.o; - } - function JVb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - j = Pje; - for (d = new olb(a.a.b); d.a < d.c.c.length; ) { - b = BD(mlb(d), 81); - j = $wnd.Math.min(j, b.d.f.g.c + b.e.a); - } - n = new Psb(); - for (g10 = new olb(a.a.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 189); - f.i = j; - f.e == 0 && (Gsb(n, f, n.c.b, n.c), true); - } - while (n.b != 0) { - f = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 189); - e = f.f.g.c; - for (m = f.a.a.ec().Kc(); m.Ob(); ) { - k = BD(m.Pb(), 81); - p = f.i + k.e.a; - k.d.g || k.g.c < p ? k.o = p : k.o = k.g.c; - } - e -= f.f.o; - f.b += e; - a.c == (ead(), bad) || a.c == _9c ? f.c += e : f.c -= e; - for (l = f.a.a.ec().Kc(); l.Ob(); ) { - k = BD(l.Pb(), 81); - for (i10 = k.f.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 81); - fad(a.c) ? o10 = a.f.ef(k, h) : o10 = a.f.ff(k, h); - h.d.i = $wnd.Math.max(h.d.i, k.o + k.g.b + o10 - h.e.a); - h.k || (h.d.i = $wnd.Math.max(h.d.i, h.g.c - h.e.a)); - --h.d.e; - h.d.e == 0 && Dsb(n, h.d); - } - } - } - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 81); - b.g.c = b.o; - } - } - function ELb(a) { - var b, c, d, e, f, g10, h, i10; - h = a.b; - b = a.a; - switch (BD(vNb(a, (fFb(), bFb)), 427).g) { - case 0: - Okb(h, new tpb(new bMb())); - break; - case 1: - default: - Okb(h, new tpb(new gMb())); - } - switch (BD(vNb(a, _Eb), 428).g) { - case 1: - Okb(h, new YLb()); - Okb(h, new lMb()); - Okb(h, new GLb()); - break; - case 0: - default: - Okb(h, new YLb()); - Okb(h, new RLb()); - } - switch (BD(vNb(a, dFb), 250).g) { - case 0: - i10 = new FMb(); - break; - case 1: - i10 = new zMb(); - break; - case 2: - i10 = new CMb(); - break; - case 3: - i10 = new wMb(); - break; - case 5: - i10 = new JMb(new CMb()); - break; - case 4: - i10 = new JMb(new zMb()); - break; - case 7: - i10 = new tMb(new JMb(new zMb()), new JMb(new CMb())); - break; - case 8: - i10 = new tMb(new JMb(new wMb()), new JMb(new CMb())); - break; - case 6: - default: - i10 = new JMb(new wMb()); - } - for (g10 = new olb(h); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 167); - d = 0; - e = 0; - c = new vgd(meb(d), meb(e)); - while (gNb(b, f, d, e)) { - c = BD(i10.Ce(c, f), 46); - d = BD(c.a, 19).a; - e = BD(c.b, 19).a; - } - dNb(b, f, d, e); - } - } - function qQb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A; - f = a.f.b; - m = f.a; - k = f.b; - o10 = a.e.g; - n = a.e.f; - _kd(a.e, f.a, f.b); - w = m / o10; - A = k / n; - for (j = new Fyd(Kkd(a.e)); j.e != j.i.gc(); ) { - i10 = BD(Dyd(j), 137); - dld(i10, i10.i * w); - eld(i10, i10.j * A); - } - for (s = new Fyd(Yod(a.e)); s.e != s.i.gc(); ) { - r = BD(Dyd(s), 118); - u = r.i; - v = r.j; - u > 0 && dld(r, u * w); - v > 0 && eld(r, v * A); - } - stb(a.b, new CQb()); - b = new Rkb(); - for (h = new nib(new eib(a.c).a); h.b; ) { - g10 = lib(h); - d = BD(g10.cd(), 79); - c = BD(g10.dd(), 395).a; - e = itd(d, false, false); - l = oQb(jtd(d), ofd(e), c); - ifd(l, e); - t = ktd(d); - if (!!t && Jkb(b, t, 0) == -1) { - b.c[b.c.length] = t; - pQb(t, (sCb(l.b != 0), BD(l.a.a.c, 8)), c); - } - } - for (q = new nib(new eib(a.d).a); q.b; ) { - p = lib(q); - d = BD(p.cd(), 79); - c = BD(p.dd(), 395).a; - e = itd(d, false, false); - l = oQb(ltd(d), w7c(ofd(e)), c); - l = w7c(l); - ifd(l, e); - t = mtd(d); - if (!!t && Jkb(b, t, 0) == -1) { - b.c[b.c.length] = t; - pQb(t, (sCb(l.b != 0), BD(l.c.b.c, 8)), c); - } - } - } - function _Vc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B; - if (c.c.length != 0) { - o10 = new Rkb(); - for (n = new olb(c); n.a < n.c.c.length; ) { - m = BD(mlb(n), 33); - Ekb(o10, new f7c(m.i, m.j)); - } - d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd)); - while (CVc(a, c)) { - AVc(a, c, false); - } - d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd)); - h = 0; - i10 = 0; - e = null; - if (c.c.length != 0) { - e = (tCb(0, c.c.length), BD(c.c[0], 33)); - h = e.i - (tCb(0, o10.c.length), BD(o10.c[0], 8)).a; - i10 = e.j - (tCb(0, o10.c.length), BD(o10.c[0], 8)).b; - } - g10 = $wnd.Math.sqrt(h * h + i10 * i10); - l = cVc(c); - f = 1; - while (l.a.gc() != 0) { - for (k = l.a.ec().Kc(); k.Ob(); ) { - j = BD(k.Pb(), 33); - p = a.f; - q = p.i + p.g / 2; - r = p.j + p.f / 2; - s = j.i + j.g / 2; - t = j.j + j.f / 2; - u = s - q; - v = t - r; - w = $wnd.Math.sqrt(u * u + v * v); - A = u / w; - B = v / w; - dld(j, j.i + A * g10); - eld(j, j.j + B * g10); - } - d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd)); - l = cVc(new Tkb(l)); - ++f; - } - !!a.a && a.a.lg(new Tkb(l)); - d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd)); - _Vc(a, b, new Tkb(l), d); - } - } - function $2b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - p = a.n; - q = a.o; - m = a.d; - l = Edb(ED(pBc(a, (Nyc(), iyc)))); - if (b) { - k = l * (b.gc() - 1); - n = 0; - for (i10 = b.Kc(); i10.Ob(); ) { - g10 = BD(i10.Pb(), 10); - k += g10.o.a; - n = $wnd.Math.max(n, g10.o.b); - } - r = p.a - (k - q.a) / 2; - f = p.b - m.d + n; - d = q.a / (b.gc() + 1); - e = d; - for (h = b.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 10); - g10.n.a = r; - g10.n.b = f - g10.o.b; - r += g10.o.a + l; - j = Y2b(g10); - j.n.a = g10.o.a / 2 - j.a.a; - j.n.b = g10.o.b; - o10 = BD(vNb(g10, (wtc(), vsc)), 11); - if (o10.e.c.length + o10.g.c.length == 1) { - o10.n.a = e - o10.a.a; - o10.n.b = 0; - F0b(o10, a); - } - e += d; - } - } - if (c) { - k = l * (c.gc() - 1); - n = 0; - for (i10 = c.Kc(); i10.Ob(); ) { - g10 = BD(i10.Pb(), 10); - k += g10.o.a; - n = $wnd.Math.max(n, g10.o.b); - } - r = p.a - (k - q.a) / 2; - f = p.b + q.b + m.a - n; - d = q.a / (c.gc() + 1); - e = d; - for (h = c.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 10); - g10.n.a = r; - g10.n.b = f; - r += g10.o.a + l; - j = Y2b(g10); - j.n.a = g10.o.a / 2 - j.a.a; - j.n.b = 0; - o10 = BD(vNb(g10, (wtc(), vsc)), 11); - if (o10.e.c.length + o10.g.c.length == 1) { - o10.n.a = e - o10.a.a; - o10.n.b = q.b; - F0b(o10, a); - } - e += d; - } - } - } - function q7b(a, b) { - var c, d, e, f, g10, h; - if (!BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) { - return; - } - for (h = new olb(b.a); h.a < h.c.c.length; ) { - f = BD(mlb(h), 10); - if (f.k == (j0b(), h0b)) { - e = BD(vNb(f, (Nyc(), txc)), 142); - a.c = $wnd.Math.min(a.c, f.n.a - e.b); - a.a = $wnd.Math.max(a.a, f.n.a + f.o.a + e.c); - a.d = $wnd.Math.min(a.d, f.n.b - e.d); - a.b = $wnd.Math.max(a.b, f.n.b + f.o.b + e.a); - } - } - for (g10 = new olb(b.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - if (f.k != (j0b(), h0b)) { - switch (f.k.g) { - case 2: - d = BD(vNb(f, (Nyc(), mxc)), 163); - if (d == (Ctc(), ytc)) { - f.n.a = a.c - 10; - p7b(f, new x7b()).Jb(new A7b(f)); - break; - } - if (d == Atc) { - f.n.a = a.a + 10; - p7b(f, new D7b()).Jb(new G7b(f)); - break; - } - c = BD(vNb(f, Osc), 303); - if (c == (esc(), dsc)) { - o7b(f).Jb(new J7b(f)); - f.n.b = a.d - 10; - break; - } - if (c == bsc) { - o7b(f).Jb(new M7b(f)); - f.n.b = a.b + 10; - break; - } - break; - default: - throw vbb(new Wdb("The node type " + f.k + " is not supported by the " + zS)); - } - } - } - } - function Y1b(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - i10 = new f7c(d.i + d.g / 2, d.j + d.f / 2); - n = M1b(d); - o10 = BD(hkd(b, (Nyc(), Vxc)), 98); - q = BD(hkd(d, $xc), 61); - if (!hCd(gkd(d), Uxc)) { - d.i == 0 && d.j == 0 ? p = 0 : p = kfd(d, q); - jkd(d, Uxc, p); - } - j = new f7c(b.g, b.f); - e = Z$b(d, o10, q, n, j, i10, new f7c(d.g, d.f), BD(vNb(c, Lwc), 103), c); - yNb(e, (wtc(), $sc), d); - f = BD(Ikb(e.j, 0), 11); - E0b(f, W1b(d)); - yNb(e, Yxc, (rcd(), pqb(pcd))); - l = BD(hkd(b, Yxc), 174).Hc(ncd); - for (h = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); h.e != h.i.gc(); ) { - g10 = BD(Dyd(h), 137); - if (!Ccb(DD(hkd(g10, Jxc))) && !!g10.a) { - m = Z1b(g10); - Ekb(f.f, m); - if (!l) { - k = 0; - tcd(BD(hkd(b, Yxc), 21)) && (k = mfd(new f7c(g10.i, g10.j), new f7c(g10.g, g10.f), new f7c(d.g, d.f), 0, q)); - switch (q.g) { - case 2: - case 4: - m.o.a = k; - break; - case 1: - case 3: - m.o.b = k; - } - } - } - } - yNb(e, tyc, ED(hkd(Xod(b), tyc))); - yNb(e, uyc, ED(hkd(Xod(b), uyc))); - yNb(e, ryc, ED(hkd(Xod(b), ryc))); - Ekb(c.a, e); - Rhb(a.a, d, e); - } - function qUc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v; - Odd(c, "Processor arrange level", 1); - k = 0; - mmb(); - ktb(b, new Wsd((mTc(), ZSc))); - f = b.b; - h = Jsb(b, b.b); - j = true; - while (j && h.b.b != h.d.a) { - r = BD(Ysb(h), 86); - BD(vNb(r, ZSc), 19).a == 0 ? --f : j = false; - } - v = new Jib(b, 0, f); - g10 = new Qsb(v); - v = new Jib(b, f, b.b); - i10 = new Qsb(v); - if (g10.b == 0) { - for (o10 = Jsb(i10, 0); o10.b != o10.d.c; ) { - n = BD(Xsb(o10), 86); - yNb(n, eTc, meb(k++)); - } - } else { - l = g10.b; - for (u = Jsb(g10, 0); u.b != u.d.c; ) { - t = BD(Xsb(u), 86); - yNb(t, eTc, meb(k++)); - d = URc(t); - qUc(a, d, Udd(c, 1 / l | 0)); - ktb(d, tmb(new Wsd(eTc))); - m = new Psb(); - for (s = Jsb(d, 0); s.b != s.d.c; ) { - r = BD(Xsb(s), 86); - for (q = Jsb(t.d, 0); q.b != q.d.c; ) { - p = BD(Xsb(q), 188); - p.c == r && (Gsb(m, p, m.c.b, m.c), true); - } - } - Osb(t.d); - ye(t.d, m); - h = Jsb(i10, i10.b); - e = t.d.b; - j = true; - while (0 < e && j && h.b.b != h.d.a) { - r = BD(Ysb(h), 86); - if (BD(vNb(r, ZSc), 19).a == 0) { - yNb(r, eTc, meb(k++)); - --e; - Zsb(h); - } else { - j = false; - } - } - } - } - Qdd(c); - } - function _8b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - Odd(b, "Inverted port preprocessing", 1); - k = a.b; - j = new Bib(k, 0); - c = null; - t = new Rkb(); - while (j.b < j.d.gc()) { - s = c; - c = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 29)); - for (n = new olb(t); n.a < n.c.c.length; ) { - l = BD(mlb(n), 10); - $_b(l, s); - } - t.c = KC(SI, Uhe, 1, 0, 5, 1); - for (o10 = new olb(c.a); o10.a < o10.c.c.length; ) { - l = BD(mlb(o10), 10); - if (l.k != (j0b(), h0b)) { - continue; - } - if (!fcd(BD(vNb(l, (Nyc(), Vxc)), 98))) { - continue; - } - for (r = X_b(l, (KAc(), HAc), (Ucd(), zcd)).Kc(); r.Ob(); ) { - p = BD(r.Pb(), 11); - i10 = p.e; - h = BD(Qkb(i10, KC(AQ, jne, 17, i10.c.length, 0, 1)), 474); - for (e = h, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - Z8b(a, p, d, t); - } - } - for (q = X_b(l, IAc, Tcd).Kc(); q.Ob(); ) { - p = BD(q.Pb(), 11); - i10 = p.g; - h = BD(Qkb(i10, KC(AQ, jne, 17, i10.c.length, 0, 1)), 474); - for (e = h, f = 0, g10 = e.length; f < g10; ++f) { - d = e[f]; - $8b(a, p, d, t); - } - } - } - } - for (m = new olb(t); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - $_b(l, c); - } - Qdd(b); - } - function _1b(a, b, c, d, e, f) { - var g10, h, i10, j, k, l; - j = new H0b(); - tNb(j, b); - G0b(j, BD(hkd(b, (Nyc(), $xc)), 61)); - yNb(j, (wtc(), $sc), b); - F0b(j, c); - l = j.o; - l.a = b.g; - l.b = b.f; - k = j.n; - k.a = b.i; - k.b = b.j; - Rhb(a.a, b, j); - g10 = FAb(NAb(LAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new m2b()), new e2b()), new o2b(b)); - g10 || (g10 = FAb(NAb(LAb(new YAb(null, (!b.d && (b.d = new y5d(B2, b, 8, 5)), new Kub(b.d, 16))), new q2b()), new g2b()), new s2b(b))); - g10 || (g10 = FAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new u2b())); - yNb(j, Nsc, (Bcb(), g10 ? true : false)); - e_b(j, f, e, BD(hkd(b, Txc), 8)); - for (i10 = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); i10.e != i10.i.gc(); ) { - h = BD(Dyd(i10), 137); - !Ccb(DD(hkd(h, Jxc))) && !!h.a && Ekb(j.f, Z1b(h)); - } - switch (e.g) { - case 2: - case 1: - (j.j == (Ucd(), Acd) || j.j == Rcd) && d.Fc((Orc(), Lrc)); - break; - case 4: - case 3: - (j.j == (Ucd(), zcd) || j.j == Tcd) && d.Fc((Orc(), Lrc)); - } - return j; - } - function nQc(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m, n, o10, p, q, r, s, t; - m = null; - d == (FQc(), DQc) ? m = b : d == EQc && (m = c); - for (p = m.a.ec().Kc(); p.Ob(); ) { - o10 = BD(p.Pb(), 11); - q = l7c(OC(GC(m1, 1), nie, 8, 0, [o10.i.n, o10.n, o10.a])).b; - t = new Tqb(); - h = new Tqb(); - for (j = new b1b(o10.b); llb(j.a) || llb(j.b); ) { - i10 = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17); - if (Ccb(DD(vNb(i10, (wtc(), ltc)))) != e) { - continue; - } - if (Jkb(f, i10, 0) != -1) { - i10.d == o10 ? r = i10.c : r = i10.d; - s = l7c(OC(GC(m1, 1), nie, 8, 0, [r.i.n, r.n, r.a])).b; - if ($wnd.Math.abs(s - q) < 0.2) { - continue; - } - s < q ? b.a._b(r) ? Qqb(t, new vgd(DQc, i10)) : Qqb(t, new vgd(EQc, i10)) : b.a._b(r) ? Qqb(h, new vgd(DQc, i10)) : Qqb(h, new vgd(EQc, i10)); - } - } - if (t.a.gc() > 1) { - n = new ZQc(o10, t, d); - reb(t, new PQc(a, n)); - g10.c[g10.c.length] = n; - for (l = t.a.ec().Kc(); l.Ob(); ) { - k = BD(l.Pb(), 46); - Lkb(f, k.b); - } - } - if (h.a.gc() > 1) { - n = new ZQc(o10, h, d); - reb(h, new RQc(a, n)); - g10.c[g10.c.length] = n; - for (l = h.a.ec().Kc(); l.Ob(); ) { - k = BD(l.Pb(), 46); - Lkb(f, k.b); - } - } - } - } - function $Wc(a) { - r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sre), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new bXc()), sre))); - p4c(a, sre, uqe, Ksd(UWc)); - p4c(a, sre, wme, Ksd(XWc)); - p4c(a, sre, Fme, Ksd(NWc)); - p4c(a, sre, Tme, Ksd(OWc)); - p4c(a, sre, Eme, Ksd(PWc)); - p4c(a, sre, Gme, Ksd(MWc)); - p4c(a, sre, Dme, Ksd(QWc)); - p4c(a, sre, Hme, Ksd(TWc)); - p4c(a, sre, ore, Ksd(KWc)); - p4c(a, sre, nre, Ksd(LWc)); - p4c(a, sre, rre, Ksd(RWc)); - p4c(a, sre, lre, Ksd(SWc)); - p4c(a, sre, mre, Ksd(VWc)); - p4c(a, sre, pre, Ksd(WWc)); - p4c(a, sre, qre, Ksd(YWc)); - } - function LIb(a) { - var b; - this.r = Cy(new OIb(), new SIb()); - this.b = new Rpb(BD(Qb(F1), 290)); - this.p = new Rpb(BD(Qb(F1), 290)); - this.i = new Rpb(BD(Qb(DN), 290)); - this.e = a; - this.o = new g7c(a.rf()); - this.D = a.Df() || Ccb(DD(a.We((Y9c(), M8c)))); - this.A = BD(a.We((Y9c(), Y8c)), 21); - this.B = BD(a.We(b9c), 21); - this.q = BD(a.We(t9c), 98); - this.u = BD(a.We(x9c), 21); - if (!ucd(this.u)) { - throw vbb(new y2c("Invalid port label placement: " + this.u)); - } - this.v = Ccb(DD(a.We(z9c))); - this.j = BD(a.We(W8c), 21); - if (!Jbd(this.j)) { - throw vbb(new y2c("Invalid node label placement: " + this.j)); - } - this.n = BD(bgd(a, U8c), 116); - this.k = Edb(ED(bgd(a, Q9c))); - this.d = Edb(ED(bgd(a, P9c))); - this.w = Edb(ED(bgd(a, X9c))); - this.s = Edb(ED(bgd(a, R9c))); - this.t = Edb(ED(bgd(a, S9c))); - this.C = BD(bgd(a, V9c), 142); - this.c = 2 * this.d; - b = !this.B.Hc((Idd(), zdd)); - this.f = new mIb(0, b, 0); - this.g = new mIb(1, b, 0); - lIb(this.f, (gHb(), eHb), this.g); - } - function Lgd(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - t = 0; - o10 = 0; - n = 0; - m = 1; - for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) { - q = BD(Dyd(s), 33); - m += sr(new Sr(ur(_sd(q).a.Kc(), new Sq()))); - B = q.g; - o10 = $wnd.Math.max(o10, B); - l = q.f; - n = $wnd.Math.max(n, l); - t += B * l; - } - p = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i; - g10 = t + 2 * d * d * m * p; - f = $wnd.Math.sqrt(g10); - i10 = $wnd.Math.max(f * c, o10); - h = $wnd.Math.max(f / c, n); - for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) { - q = BD(Dyd(r), 33); - C = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (i10 - q.g); - D = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (h - q.f); - dld(q, C); - eld(q, D); - } - A = i10 + (e.b + e.c); - w = h + (e.d + e.a); - for (v = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); v.e != v.i.gc(); ) { - u = BD(Dyd(v), 33); - for (k = new Sr(ur(_sd(u).a.Kc(), new Sq())); Qr(k); ) { - j = BD(Rr(k), 79); - Pld(j) || Kgd(j, b, A, w); - } - } - A += e.b + e.c; - w += e.d + e.a; - Afd(a, A, w, false, true); - } - function Jcb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - if (a == null) { - throw vbb(new Oeb(Xhe)); - } - j = a; - f = a.length; - i10 = false; - if (f > 0) { - b = (BCb(0, a.length), a.charCodeAt(0)); - if (b == 45 || b == 43) { - a = a.substr(1); - --f; - i10 = b == 45; - } - } - if (f == 0) { - throw vbb(new Oeb(Oje + j + '"')); - } - while (a.length > 0 && (BCb(0, a.length), a.charCodeAt(0) == 48)) { - a = a.substr(1); - --f; - } - if (f > (Neb(), Leb)[10]) { - throw vbb(new Oeb(Oje + j + '"')); - } - for (e = 0; e < f; e++) { - if (Zcb((BCb(e, a.length), a.charCodeAt(e))) == -1) { - throw vbb(new Oeb(Oje + j + '"')); - } - } - l = 0; - g10 = Jeb[10]; - k = Keb[10]; - h = Jbb(Meb[10]); - c = true; - d = f % g10; - if (d > 0) { - l = -parseInt(a.substr(0, d), 10); - a = a.substr(d); - f -= d; - c = false; - } - while (f >= g10) { - d = parseInt(a.substr(0, g10), 10); - a = a.substr(g10); - f -= g10; - if (c) { - c = false; - } else { - if (ybb(l, h) < 0) { - throw vbb(new Oeb(Oje + j + '"')); - } - l = Ibb(l, k); - } - l = Qbb(l, d); - } - if (ybb(l, 0) > 0) { - throw vbb(new Oeb(Oje + j + '"')); - } - if (!i10) { - l = Jbb(l); - if (ybb(l, 0) < 0) { - throw vbb(new Oeb(Oje + j + '"')); - } - } - return l; - } - function Z6d(a, b) { - X6d(); - var c, d, e, f, g10, h, i10; - this.a = new a7d(this); - this.b = a; - this.c = b; - this.f = c2d(q1d((O6d(), M6d), b)); - if (this.f.dc()) { - if ((h = t1d(M6d, a)) == b) { - this.e = true; - this.d = new Rkb(); - this.f = new oFd(); - this.f.Fc(Ewe); - BD(V1d(p1d(M6d, bKd(a)), ""), 26) == a && this.f.Fc(u1d(M6d, bKd(a))); - for (e = g1d(M6d, a).Kc(); e.Ob(); ) { - d = BD(e.Pb(), 170); - switch ($1d(q1d(M6d, d))) { - case 4: { - this.d.Fc(d); - break; - } - case 5: { - this.f.Gc(c2d(q1d(M6d, d))); - break; - } - } - } - } else { - Q6d(); - if (BD(b, 66).Oj()) { - this.e = true; - this.f = null; - this.d = new Rkb(); - for (g10 = 0, i10 = (a.i == null && TKd(a), a.i).length; g10 < i10; ++g10) { - d = (c = (a.i == null && TKd(a), a.i), g10 >= 0 && g10 < c.length ? c[g10] : null); - for (f = _1d(q1d(M6d, d)); f; f = _1d(q1d(M6d, f))) { - f == b && this.d.Fc(d); - } - } - } else if ($1d(q1d(M6d, b)) == 1 && !!h) { - this.f = null; - this.d = (m8d(), l8d); - } else { - this.f = null; - this.e = true; - this.d = (mmb(), new anb(b)); - } - } - } else { - this.e = $1d(q1d(M6d, b)) == 5; - this.f.Fb(W6d) && (this.f = W6d); - } - } - function zKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - c = 0; - d = yKb(a, b); - m = a.s; - n = a.t; - for (j = BD(BD(Qc(a.r, b), 21), 84).Kc(); j.Ob(); ) { - i10 = BD(j.Pb(), 111); - if (!i10.c || i10.c.d.c.length <= 0) { - continue; - } - o10 = i10.b.rf(); - h = i10.b.Xe((Y9c(), s9c)) ? Edb(ED(i10.b.We(s9c))) : 0; - k = i10.c; - l = k.i; - l.b = (g10 = k.n, k.e.a + g10.b + g10.c); - l.a = (f = k.n, k.e.b + f.d + f.a); - switch (b.g) { - case 1: - l.c = i10.a ? (o10.a - l.b) / 2 : o10.a + m; - l.d = o10.b + h + d; - $Hb(k, (NHb(), KHb)); - _Hb(k, (EIb(), DIb)); - break; - case 3: - l.c = i10.a ? (o10.a - l.b) / 2 : o10.a + m; - l.d = -h - d - l.a; - $Hb(k, (NHb(), KHb)); - _Hb(k, (EIb(), BIb)); - break; - case 2: - l.c = -h - d - l.b; - if (i10.a) { - e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b; - l.d = (o10.b - e) / 2; - } else { - l.d = o10.b + n; - } - $Hb(k, (NHb(), MHb)); - _Hb(k, (EIb(), CIb)); - break; - case 4: - l.c = o10.a + h + d; - if (i10.a) { - e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b; - l.d = (o10.b - e) / 2; - } else { - l.d = o10.b + n; - } - $Hb(k, (NHb(), LHb)); - _Hb(k, (EIb(), CIb)); - } - (b == (Ucd(), Acd) || b == Rcd) && (c = $wnd.Math.max(c, l.a)); - } - c > 0 && (BD(Mpb(a.b, b), 124).a.b = c); - } - function b3b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - Odd(b, "Comment pre-processing", 1); - c = 0; - i10 = new olb(a.a); - while (i10.a < i10.c.c.length) { - h = BD(mlb(i10), 10); - if (Ccb(DD(vNb(h, (Nyc(), pwc))))) { - ++c; - e = 0; - d = null; - j = null; - for (o10 = new olb(h.j); o10.a < o10.c.c.length; ) { - m = BD(mlb(o10), 11); - e += m.e.c.length + m.g.c.length; - if (m.e.c.length == 1) { - d = BD(Ikb(m.e, 0), 17); - j = d.c; - } - if (m.g.c.length == 1) { - d = BD(Ikb(m.g, 0), 17); - j = d.d; - } - } - if (e == 1 && j.e.c.length + j.g.c.length == 1 && !Ccb(DD(vNb(j.i, pwc)))) { - c3b(h, d, j, j.i); - nlb(i10); - } else { - r = new Rkb(); - for (n = new olb(h.j); n.a < n.c.c.length; ) { - m = BD(mlb(n), 11); - for (l = new olb(m.g); l.a < l.c.c.length; ) { - k = BD(mlb(l), 17); - k.d.g.c.length == 0 || (r.c[r.c.length] = k, true); - } - for (g10 = new olb(m.e); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - f.c.e.c.length == 0 || (r.c[r.c.length] = f, true); - } - } - for (q = new olb(r); q.a < q.c.c.length; ) { - p = BD(mlb(q), 17); - PZb(p, true); - } - } - } - } - b.n && Sdd(b, "Found " + c + " comment boxes"); - Qdd(b); - } - function f9b(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p; - m = Edb(ED(vNb(a, (Nyc(), tyc)))); - n = Edb(ED(vNb(a, uyc))); - l = Edb(ED(vNb(a, ryc))); - h = a.o; - f = BD(Ikb(a.j, 0), 11); - g10 = f.n; - p = d9b(f, l); - if (!p) { - return; - } - if (b.Hc((rcd(), ncd))) { - switch (BD(vNb(a, (wtc(), Hsc)), 61).g) { - case 1: - p.c = (h.a - p.b) / 2 - g10.a; - p.d = n; - break; - case 3: - p.c = (h.a - p.b) / 2 - g10.a; - p.d = -n - p.a; - break; - case 2: - if (c && f.e.c.length == 0 && f.g.c.length == 0) { - k = d ? p.a : BD(Ikb(f.f, 0), 70).o.b; - p.d = (h.b - k) / 2 - g10.b; - } else { - p.d = h.b + n - g10.b; - } - p.c = -m - p.b; - break; - case 4: - if (c && f.e.c.length == 0 && f.g.c.length == 0) { - k = d ? p.a : BD(Ikb(f.f, 0), 70).o.b; - p.d = (h.b - k) / 2 - g10.b; - } else { - p.d = h.b + n - g10.b; - } - p.c = m; - } - } else if (b.Hc(pcd)) { - switch (BD(vNb(a, (wtc(), Hsc)), 61).g) { - case 1: - case 3: - p.c = g10.a + m; - break; - case 2: - case 4: - if (c && !f.c) { - k = d ? p.a : BD(Ikb(f.f, 0), 70).o.b; - p.d = (h.b - k) / 2 - g10.b; - } else { - p.d = g10.b + n; - } - } - } - e = p.d; - for (j = new olb(f.f); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 70); - o10 = i10.n; - o10.a = p.c; - o10.b = e; - e += i10.o.b + l; - } - } - function eae() { - rEd(Q9, new Lae()); - rEd(S9, new qbe()); - rEd(T9, new Xbe()); - rEd(U9, new Cce()); - rEd(ZI, new Oce()); - rEd(GC(SD, 1), new Rce()); - rEd(wI, new Uce()); - rEd(xI, new Xce()); - rEd(ZI, new hae()); - rEd(ZI, new kae()); - rEd(ZI, new nae()); - rEd(BI, new qae()); - rEd(ZI, new tae()); - rEd(yK, new wae()); - rEd(yK, new zae()); - rEd(ZI, new Cae()); - rEd(FI, new Fae()); - rEd(ZI, new Iae()); - rEd(ZI, new Oae()); - rEd(ZI, new Rae()); - rEd(ZI, new Uae()); - rEd(ZI, new Xae()); - rEd(GC(SD, 1), new $ae()); - rEd(ZI, new bbe()); - rEd(ZI, new ebe()); - rEd(yK, new hbe()); - rEd(yK, new kbe()); - rEd(ZI, new nbe()); - rEd(JI, new tbe()); - rEd(ZI, new wbe()); - rEd(MI, new zbe()); - rEd(ZI, new Cbe()); - rEd(ZI, new Fbe()); - rEd(ZI, new Ibe()); - rEd(ZI, new Lbe()); - rEd(yK, new Obe()); - rEd(yK, new Rbe()); - rEd(ZI, new Ube()); - rEd(ZI, new $be()); - rEd(ZI, new bce()); - rEd(ZI, new ece()); - rEd(ZI, new hce()); - rEd(ZI, new kce()); - rEd(UI, new nce()); - rEd(ZI, new qce()); - rEd(ZI, new tce()); - rEd(ZI, new wce()); - rEd(UI, new zce()); - rEd(MI, new Fce()); - rEd(ZI, new Ice()); - rEd(JI, new Lce()); - } - function Bmd(b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - n = c.length; - if (n > 0) { - j = (BCb(0, c.length), c.charCodeAt(0)); - if (j != 64) { - if (j == 37) { - m = c.lastIndexOf("%"); - k = false; - if (m != 0 && (m == n - 1 || (k = (BCb(m + 1, c.length), c.charCodeAt(m + 1) == 46)))) { - h = c.substr(1, m - 1); - u = dfb("%", h) ? null : QEd(h); - e = 0; - if (k) { - try { - e = Icb(c.substr(m + 2), Rie, Ohe); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - i10 = a; - throw vbb(new rFd(i10)); - } else - throw vbb(a); - } - } - for (r = pRd(b.Wg()); r.Ob(); ) { - p = MRd(r); - if (JD(p, 510)) { - f = BD(p, 590); - t = f.d; - if ((u == null ? t == null : dfb(u, t)) && e-- == 0) { - return f; - } - } - } - return null; - } - } - l = c.lastIndexOf("."); - o10 = l == -1 ? c : c.substr(0, l); - d = 0; - if (l != -1) { - try { - d = Icb(c.substr(l + 1), Rie, Ohe); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - o10 = c; - } else - throw vbb(a); - } - } - o10 = dfb("%", o10) ? null : QEd(o10); - for (q = pRd(b.Wg()); q.Ob(); ) { - p = MRd(q); - if (JD(p, 191)) { - g10 = BD(p, 191); - s = g10.ne(); - if ((o10 == null ? s == null : dfb(o10, s)) && d-- == 0) { - return g10; - } - } - } - return null; - } - } - return rid(b, c); - } - function f6b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F; - w = new Rkb(); - for (o10 = new olb(a.b); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 29); - for (r = new olb(n.a); r.a < r.c.c.length; ) { - p = BD(mlb(r), 10); - if (p.k != (j0b(), e0b)) { - continue; - } - if (!wNb(p, (wtc(), Gsc))) { - continue; - } - s = null; - u = null; - t = null; - for (C = new olb(p.j); C.a < C.c.c.length; ) { - B = BD(mlb(C), 11); - switch (B.j.g) { - case 4: - s = B; - break; - case 2: - u = B; - break; - default: - t = B; - } - } - v = BD(Ikb(t.g, 0), 17); - k = new t7c(v.a); - j = new g7c(t.n); - P6c(j, p.n); - l = Jsb(k, 0); - Vsb(l, j); - A = w7c(v.a); - m = new g7c(t.n); - P6c(m, p.n); - Gsb(A, m, A.c.b, A.c); - D = BD(vNb(p, Gsc), 10); - F = BD(Ikb(D.j, 0), 11); - i10 = BD(Qkb(s.e, KC(AQ, jne, 17, 0, 0, 1)), 474); - for (d = i10, f = 0, h = d.length; f < h; ++f) { - b = d[f]; - RZb(b, F); - o7c(b.a, b.a.b, k); - } - i10 = k_b(u.g); - for (c = i10, e = 0, g10 = c.length; e < g10; ++e) { - b = c[e]; - QZb(b, F); - o7c(b.a, 0, A); - } - QZb(v, null); - RZb(v, null); - w.c[w.c.length] = p; - } - } - for (q = new olb(w); q.a < q.c.c.length; ) { - p = BD(mlb(q), 10); - $_b(p, null); - } - } - function lgb() { - lgb = ccb; - var a, b, c; - new sgb(1, 0); - new sgb(10, 0); - new sgb(0, 0); - dgb = KC(bJ, nie, 240, 11, 0, 1); - egb = KC(TD, $ie, 25, 100, 15, 1); - fgb = OC(GC(UD, 1), Vje, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]); - ggb = KC(WD, oje, 25, fgb.length, 15, 1); - hgb = OC(GC(UD, 1), Vje, 25, 15, [1, 10, 100, _ie, 1e4, Wje, 1e6, 1e7, 1e8, Jje, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]); - igb = KC(WD, oje, 25, hgb.length, 15, 1); - jgb = KC(bJ, nie, 240, 11, 0, 1); - a = 0; - for (; a < jgb.length; a++) { - dgb[a] = new sgb(a, 0); - jgb[a] = new sgb(0, a); - egb[a] = 48; - } - for (; a < egb.length; a++) { - egb[a] = 48; - } - for (c = 0; c < ggb.length; c++) { - ggb[c] = ugb(fgb[c]); - } - for (b = 0; b < igb.length; b++) { - igb[b] = ugb(hgb[b]); - } - Dhb(); - } - function zrb() { - function e() { - this.obj = this.createObject(); - } - ; - e.prototype.createObject = function(a) { - return /* @__PURE__ */ Object.create(null); - }; - e.prototype.get = function(a) { - return this.obj[a]; - }; - e.prototype.set = function(a, b) { - this.obj[a] = b; - }; - e.prototype[hke] = function(a) { - delete this.obj[a]; - }; - e.prototype.keys = function() { - return Object.getOwnPropertyNames(this.obj); - }; - e.prototype.entries = function() { - var b = this.keys(); - var c = this; - var d = 0; - return { next: function() { - if (d >= b.length) - return { done: true }; - var a = b[d++]; - return { value: [a, c.get(a)], done: false }; - } }; - }; - if (!xrb()) { - e.prototype.createObject = function() { - return {}; - }; - e.prototype.get = function(a) { - return this.obj[":" + a]; - }; - e.prototype.set = function(a, b) { - this.obj[":" + a] = b; - }; - e.prototype[hke] = function(a) { - delete this.obj[":" + a]; - }; - e.prototype.keys = function() { - var a = []; - for (var b in this.obj) { - b.charCodeAt(0) == 58 && a.push(b.substring(1)); - } - return a; - }; - } - return e; - } - function cde(a) { - ade(); - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - if (a == null) - return null; - l = a.length * 8; - if (l == 0) { - return ""; - } - h = l % 24; - n = l / 24 | 0; - m = h != 0 ? n + 1 : n; - f = null; - f = KC(TD, $ie, 25, m * 4, 15, 1); - j = 0; - k = 0; - b = 0; - c = 0; - d = 0; - g10 = 0; - e = 0; - for (i10 = 0; i10 < n; i10++) { - b = a[e++]; - c = a[e++]; - d = a[e++]; - k = (c & 15) << 24 >> 24; - j = (b & 3) << 24 >> 24; - o10 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24; - p = (c & -128) == 0 ? c >> 4 << 24 >> 24 : (c >> 4 ^ 240) << 24 >> 24; - q = (d & -128) == 0 ? d >> 6 << 24 >> 24 : (d >> 6 ^ 252) << 24 >> 24; - f[g10++] = _ce[o10]; - f[g10++] = _ce[p | j << 4]; - f[g10++] = _ce[k << 2 | q]; - f[g10++] = _ce[d & 63]; - } - if (h == 8) { - b = a[e]; - j = (b & 3) << 24 >> 24; - o10 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24; - f[g10++] = _ce[o10]; - f[g10++] = _ce[j << 4]; - f[g10++] = 61; - f[g10++] = 61; - } else if (h == 16) { - b = a[e]; - c = a[e + 1]; - k = (c & 15) << 24 >> 24; - j = (b & 3) << 24 >> 24; - o10 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24; - p = (c & -128) == 0 ? c >> 4 << 24 >> 24 : (c >> 4 ^ 240) << 24 >> 24; - f[g10++] = _ce[o10]; - f[g10++] = _ce[p | j << 4]; - f[g10++] = _ce[k << 2]; - f[g10++] = 61; - } - return zfb(f, 0, f.length); - } - function mB(a, b) { - var c, d, e, f, g10, h, i10; - a.e == 0 && a.p > 0 && (a.p = -(a.p - 1)); - a.p > Rie && dB(b, a.p - nje); - g10 = b.q.getDate(); - ZA(b, 1); - a.k >= 0 && aB(b, a.k); - if (a.c >= 0) { - ZA(b, a.c); - } else if (a.k >= 0) { - i10 = new fB(b.q.getFullYear() - nje, b.q.getMonth(), 35); - d = 35 - i10.q.getDate(); - ZA(b, $wnd.Math.min(d, g10)); - } else { - ZA(b, g10); - } - a.f < 0 && (a.f = b.q.getHours()); - a.b > 0 && a.f < 12 && (a.f += 12); - $A(b, a.f == 24 && a.g ? 0 : a.f); - a.j >= 0 && _A(b, a.j); - a.n >= 0 && bB(b, a.n); - a.i >= 0 && cB(b, wbb(Ibb(Abb(Cbb(b.q.getTime()), _ie), _ie), a.i)); - if (a.a) { - e = new eB(); - dB(e, e.q.getFullYear() - nje - 80); - Gbb(Cbb(b.q.getTime()), Cbb(e.q.getTime())) && dB(b, e.q.getFullYear() - nje + 100); - } - if (a.d >= 0) { - if (a.c == -1) { - c = (7 + a.d - b.q.getDay()) % 7; - c > 3 && (c -= 7); - h = b.q.getMonth(); - ZA(b, b.q.getDate() + c); - b.q.getMonth() != h && ZA(b, b.q.getDate() + (c > 0 ? -7 : 7)); - } else { - if (b.q.getDay() != a.d) { - return false; - } - } - } - if (a.o > Rie) { - f = b.q.getTimezoneOffset(); - cB(b, wbb(Cbb(b.q.getTime()), (a.o - f) * 60 * _ie)); - } - return true; - } - function z2b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - e = vNb(b, (wtc(), $sc)); - if (!JD(e, 239)) { - return; - } - o10 = BD(e, 33); - p = b.e; - m = new g7c(b.c); - f = b.d; - m.a += f.b; - m.b += f.d; - u = BD(hkd(o10, (Nyc(), Ixc)), 174); - if (uqb(u, (Idd(), Add))) { - n = BD(hkd(o10, Kxc), 116); - w_b(n, f.a); - z_b(n, f.d); - x_b(n, f.b); - y_b(n, f.c); - } - c = new Rkb(); - for (k = new olb(b.a); k.a < k.c.c.length; ) { - i10 = BD(mlb(k), 10); - if (JD(vNb(i10, $sc), 239)) { - A2b(i10, m); - } else if (JD(vNb(i10, $sc), 186) && !p) { - d = BD(vNb(i10, $sc), 118); - s = b_b(b, i10, d.g, d.f); - bld(d, s.a, s.b); - } - for (r = new olb(i10.j); r.a < r.c.c.length; ) { - q = BD(mlb(r), 11); - MAb(JAb(new YAb(null, new Kub(q.g, 16)), new G2b(i10)), new I2b(c)); - } - } - if (p) { - for (r = new olb(p.j); r.a < r.c.c.length; ) { - q = BD(mlb(r), 11); - MAb(JAb(new YAb(null, new Kub(q.g, 16)), new K2b(p)), new M2b(c)); - } - } - t = BD(hkd(o10, Swc), 218); - for (h = new olb(c); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - y2b(g10, t, m); - } - B2b(b); - for (j = new olb(b.a); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 10); - l = i10.e; - !!l && z2b(a, l); - } - } - function xSb(a) { - r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), ume), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new ASb()), ume), qqb((Csd(), zsd), OC(GC(O3, 1), Kie, 237, 0, [xsd]))))); - p4c(a, ume, vme, meb(1)); - p4c(a, ume, wme, 80); - p4c(a, ume, xme, 5); - p4c(a, ume, _le, tme); - p4c(a, ume, yme, meb(1)); - p4c(a, ume, zme, (Bcb(), true)); - p4c(a, ume, ame, lSb); - p4c(a, ume, Ame, Ksd(dSb)); - p4c(a, ume, Bme, Ksd(mSb)); - p4c(a, ume, Cme, false); - p4c(a, ume, Dme, Ksd(jSb)); - p4c(a, ume, Eme, Ksd(iSb)); - p4c(a, ume, Fme, Ksd(hSb)); - p4c(a, ume, Gme, Ksd(gSb)); - p4c(a, ume, Hme, Ksd(nSb)); - p4c(a, ume, mme, Ksd(fSb)); - p4c(a, ume, pme, Ksd(vSb)); - p4c(a, ume, nme, Ksd(eSb)); - p4c(a, ume, rme, Ksd(qSb)); - p4c(a, ume, ome, Ksd(rSb)); - } - function GKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - if (BD(BD(Qc(a.r, b), 21), 84).dc()) { - return; - } - g10 = BD(Mpb(a.b, b), 124); - i10 = g10.i; - h = g10.n; - k = KIb(a, b); - d = i10.b - h.b - h.c; - e = g10.a.a; - f = i10.c + h.b; - n = a.w; - if ((k == (Tbd(), Qbd) || k == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) { - e = k == Qbd ? e - 2 * a.w : e; - k = Pbd; - } - if (d < e && !a.B.Hc((Idd(), Fdd))) { - if (k == Qbd) { - n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1); - f += n; - } else { - n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1); - } - } else { - if (d < e) { - e = k == Qbd ? e - 2 * a.w : e; - k = Pbd; - } - switch (k.g) { - case 3: - f += (d - e) / 2; - break; - case 4: - f += d - e; - break; - case 0: - c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1); - n += $wnd.Math.max(0, c); - f += n; - break; - case 1: - c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1); - n += $wnd.Math.max(0, c); - } - } - for (m = BD(BD(Qc(a.r, b), 21), 84).Kc(); m.Ob(); ) { - l = BD(m.Pb(), 111); - l.e.a = f + l.d.b; - l.e.b = (j = l.b, j.Xe((Y9c(), s9c)) ? j.Hf() == (Ucd(), Acd) ? -j.rf().b - Edb(ED(j.We(s9c))) : Edb(ED(j.We(s9c))) : j.Hf() == (Ucd(), Acd) ? -j.rf().b : 0); - f += l.d.b + l.b.rf().a + l.d.c + n; - } - } - function KKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - if (BD(BD(Qc(a.r, b), 21), 84).dc()) { - return; - } - g10 = BD(Mpb(a.b, b), 124); - i10 = g10.i; - h = g10.n; - l = KIb(a, b); - d = i10.a - h.d - h.a; - e = g10.a.b; - f = i10.d + h.d; - o10 = a.w; - j = a.o.a; - if ((l == (Tbd(), Qbd) || l == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) { - e = l == Qbd ? e - 2 * a.w : e; - l = Pbd; - } - if (d < e && !a.B.Hc((Idd(), Fdd))) { - if (l == Qbd) { - o10 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1); - f += o10; - } else { - o10 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1); - } - } else { - if (d < e) { - e = l == Qbd ? e - 2 * a.w : e; - l = Pbd; - } - switch (l.g) { - case 3: - f += (d - e) / 2; - break; - case 4: - f += d - e; - break; - case 0: - c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1); - o10 += $wnd.Math.max(0, c); - f += o10; - break; - case 1: - c = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1); - o10 += $wnd.Math.max(0, c); - } - } - for (n = BD(BD(Qc(a.r, b), 21), 84).Kc(); n.Ob(); ) { - m = BD(n.Pb(), 111); - m.e.a = (k = m.b, k.Xe((Y9c(), s9c)) ? k.Hf() == (Ucd(), Tcd) ? -k.rf().a - Edb(ED(k.We(s9c))) : j + Edb(ED(k.We(s9c))) : k.Hf() == (Ucd(), Tcd) ? -k.rf().a : j); - m.e.b = f + m.d.d; - f += m.d.d + m.b.rf().b + m.d.a + o10; - } - } - function Abc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - a.n = Edb(ED(vNb(a.g, (Nyc(), vyc)))); - a.e = Edb(ED(vNb(a.g, pyc))); - a.i = a.g.b.c.length; - h = a.i - 1; - m = 0; - a.j = 0; - a.k = 0; - a.a = Ou(KC(JI, nie, 19, a.i, 0, 1)); - a.b = Ou(KC(BI, nie, 333, a.i, 7, 1)); - for (g10 = new olb(a.g.b); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 29); - e.p = h; - for (l = new olb(e.a); l.a < l.c.c.length; ) { - k = BD(mlb(l), 10); - k.p = m; - ++m; - } - --h; - } - a.f = KC(WD, oje, 25, m, 15, 1); - a.c = IC(WD, [nie, oje], [48, 25], 15, [m, 3], 2); - a.o = new Rkb(); - a.p = new Rkb(); - b = 0; - a.d = 0; - for (f = new olb(a.g.b); f.a < f.c.c.length; ) { - e = BD(mlb(f), 29); - h = e.p; - d = 0; - p = 0; - i10 = e.a.c.length; - j = 0; - for (l = new olb(e.a); l.a < l.c.c.length; ) { - k = BD(mlb(l), 10); - m = k.p; - a.f[m] = k.c.p; - j += k.o.b + a.n; - c = sr(new Sr(ur(R_b(k).a.Kc(), new Sq()))); - o10 = sr(new Sr(ur(U_b(k).a.Kc(), new Sq()))); - a.c[m][0] = o10 - c; - a.c[m][1] = c; - a.c[m][2] = o10; - d += c; - p += o10; - c > 0 && Ekb(a.p, k); - Ekb(a.o, k); - } - b -= d; - n = i10 + b; - j += b * a.e; - Nkb(a.a, h, meb(n)); - Nkb(a.b, h, j); - a.j = $wnd.Math.max(a.j, n); - a.k = $wnd.Math.max(a.k, j); - a.d += b; - b += p; - } - } - function Ucd() { - Ucd = ccb; - var a; - Scd = new Ycd(ole, 0); - Acd = new Ycd(xle, 1); - zcd = new Ycd(yle, 2); - Rcd = new Ycd(zle, 3); - Tcd = new Ycd(Ale, 4); - Fcd = (mmb(), new zob((a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0)))); - Gcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, []))); - Bcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, []))); - Ocd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, []))); - Qcd = Up(qqb(Tcd, OC(GC(F1, 1), bne, 61, 0, []))); - Lcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd]))); - Ecd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Tcd]))); - Ncd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Tcd]))); - Hcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd]))); - Pcd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [Tcd]))); - Ccd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd]))); - Kcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Tcd]))); - Dcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd]))); - Mcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd]))); - Icd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd]))); - Jcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd]))); - } - function fSc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - if (b.b != 0) { - n = new Psb(); - h = null; - o10 = null; - d = QD($wnd.Math.floor($wnd.Math.log(b.b) * $wnd.Math.LOG10E) + 1); - i10 = 0; - for (t = Jsb(b, 0); t.b != t.d.c; ) { - r = BD(Xsb(t), 86); - if (PD(o10) !== PD(vNb(r, (mTc(), $Sc)))) { - o10 = GD(vNb(r, $Sc)); - i10 = 0; - } - o10 != null ? h = o10 + iSc(i10++, d) : h = iSc(i10++, d); - yNb(r, $Sc, h); - for (q = (e = Jsb(new ZRc(r).a.d, 0), new aSc(e)); Wsb(q.a); ) { - p = BD(Xsb(q.a), 188).c; - Gsb(n, p, n.c.b, n.c); - yNb(p, $Sc, h); - } - } - m = new Lqb(); - for (g10 = 0; g10 < h.length - d; g10++) { - for (s = Jsb(b, 0); s.b != s.d.c; ) { - r = BD(Xsb(s), 86); - j = qfb(GD(vNb(r, (mTc(), $Sc))), 0, g10 + 1); - c = (j == null ? Wd(irb(m.f, null)) : Crb(m.g, j)) != null ? BD(j == null ? Wd(irb(m.f, null)) : Crb(m.g, j), 19).a + 1 : 1; - Shb(m, j, meb(c)); - } - } - for (l = new nib(new eib(m).a); l.b; ) { - k = lib(l); - f = meb(Ohb(a.a, k.cd()) != null ? BD(Ohb(a.a, k.cd()), 19).a : 0); - Shb(a.a, GD(k.cd()), meb(BD(k.dd(), 19).a + f.a)); - f = BD(Ohb(a.b, k.cd()), 19); - (!f || f.a < BD(k.dd(), 19).a) && Shb(a.b, GD(k.cd()), BD(k.dd(), 19)); - } - fSc(a, n); - } - } - function PCc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - Odd(c, "Interactive node layering", 1); - d = new Rkb(); - for (n = new olb(b.a); n.a < n.c.c.length; ) { - l = BD(mlb(n), 10); - j = l.n.a; - i10 = j + l.o.a; - i10 = $wnd.Math.max(j + 1, i10); - r = new Bib(d, 0); - e = null; - while (r.b < r.d.gc()) { - p = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 569)); - if (p.c >= i10) { - sCb(r.b > 0); - r.a.Xb(r.c = --r.b); - break; - } else if (p.a > j) { - if (!e) { - Ekb(p.b, l); - p.c = $wnd.Math.min(p.c, j); - p.a = $wnd.Math.max(p.a, i10); - e = p; - } else { - Gkb(e.b, p.b); - e.a = $wnd.Math.max(e.a, p.a); - uib(r); - } - } - } - if (!e) { - e = new TCc(); - e.c = j; - e.a = i10; - Aib(r, e); - Ekb(e.b, l); - } - } - h = b.b; - k = 0; - for (q = new olb(d); q.a < q.c.c.length; ) { - p = BD(mlb(q), 569); - f = new H1b(b); - f.p = k++; - h.c[h.c.length] = f; - for (o10 = new olb(p.b); o10.a < o10.c.c.length; ) { - l = BD(mlb(o10), 10); - $_b(l, f); - l.p = 0; - } - } - for (m = new olb(b.a); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - l.p == 0 && OCc(a, l, b); - } - g10 = new Bib(h, 0); - while (g10.b < g10.d.gc()) { - (sCb(g10.b < g10.d.gc()), BD(g10.d.Xb(g10.c = g10.b++), 29)).a.c.length == 0 && uib(g10); - } - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - Qdd(c); - } - function Snc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - if (b.e.c.length != 0 && c.e.c.length != 0) { - d = BD(Ikb(b.e, 0), 17).c.i; - g10 = BD(Ikb(c.e, 0), 17).c.i; - if (d == g10) { - return beb(BD(vNb(BD(Ikb(b.e, 0), 17), (wtc(), Zsc)), 19).a, BD(vNb(BD(Ikb(c.e, 0), 17), Zsc), 19).a); - } - for (k = a.a, l = 0, m = k.length; l < m; ++l) { - j = k[l]; - if (j == d) { - return 1; - } else if (j == g10) { - return -1; - } - } - } - if (b.g.c.length != 0 && c.g.c.length != 0) { - f = BD(vNb(b, (wtc(), Xsc)), 10); - i10 = BD(vNb(c, Xsc), 10); - e = 0; - h = 0; - wNb(BD(Ikb(b.g, 0), 17), Zsc) && (e = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a); - wNb(BD(Ikb(c.g, 0), 17), Zsc) && (h = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a); - if (!!f && f == i10) { - if (Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && !Ccb(DD(vNb(BD(Ikb(c.g, 0), 17), ltc)))) { - return 1; - } else if (!Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && Ccb(DD(vNb(BD(Ikb(c.g, 0), 17), ltc)))) { - return -1; - } - return e < h ? -1 : e > h ? 1 : 0; - } - if (a.b) { - a.b._b(f) && (e = BD(a.b.xc(f), 19).a); - a.b._b(i10) && (h = BD(a.b.xc(i10), 19).a); - } - return e < h ? -1 : e > h ? 1 : 0; - } - return b.e.c.length != 0 && c.g.c.length != 0 ? 1 : -1; - } - function acc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A; - Odd(b, Ine, 1); - p = new Rkb(); - w = new Rkb(); - for (j = new olb(a.b); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 29); - r = -1; - o10 = l_b(i10.a); - for (l = o10, m = 0, n = l.length; m < n; ++m) { - k = l[m]; - ++r; - if (!(k.k == (j0b(), h0b) && fcd(BD(vNb(k, (Nyc(), Vxc)), 98)))) { - continue; - } - ecd(BD(vNb(k, (Nyc(), Vxc)), 98)) || bcc(k); - yNb(k, (wtc(), Psc), k); - p.c = KC(SI, Uhe, 1, 0, 5, 1); - w.c = KC(SI, Uhe, 1, 0, 5, 1); - c = new Rkb(); - u = new Psb(); - Jq(u, Y_b(k, (Ucd(), Acd))); - $bc(a, u, p, w, c); - h = r; - A = k; - for (f = new olb(p); f.a < f.c.c.length; ) { - d = BD(mlb(f), 10); - Z_b(d, h, i10); - ++r; - yNb(d, Psc, k); - g10 = BD(Ikb(d.j, 0), 11); - q = BD(vNb(g10, $sc), 11); - Ccb(DD(vNb(q, nwc))) || BD(vNb(d, Qsc), 15).Fc(A); - } - Osb(u); - for (t = Y_b(k, Rcd).Kc(); t.Ob(); ) { - s = BD(t.Pb(), 11); - Gsb(u, s, u.a, u.a.a); - } - $bc(a, u, w, null, c); - v = k; - for (e = new olb(w); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - Z_b(d, ++r, i10); - yNb(d, Psc, k); - g10 = BD(Ikb(d.j, 0), 11); - q = BD(vNb(g10, $sc), 11); - Ccb(DD(vNb(q, nwc))) || BD(vNb(v, Qsc), 15).Fc(d); - } - c.c.length == 0 || yNb(k, ssc, c); - } - } - Qdd(b); - } - function SQb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; - l = BD(vNb(a, (HSb(), FSb)), 33); - r = Ohe; - s = Ohe; - p = Rie; - q = Rie; - for (u = new olb(a.e); u.a < u.c.c.length; ) { - t = BD(mlb(u), 144); - C = t.d; - D = t.e; - r = $wnd.Math.min(r, C.a - D.a / 2); - s = $wnd.Math.min(s, C.b - D.b / 2); - p = $wnd.Math.max(p, C.a + D.a / 2); - q = $wnd.Math.max(q, C.b + D.b / 2); - } - B = BD(hkd(l, (wSb(), kSb)), 116); - A = new f7c(B.b - r, B.d - s); - for (h = new olb(a.e); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 144); - w = vNb(g10, FSb); - if (JD(w, 239)) { - n = BD(w, 33); - v = P6c(g10.d, A); - bld(n, v.a - n.g / 2, v.b - n.f / 2); - } - } - for (d = new olb(a.c); d.a < d.c.c.length; ) { - c = BD(mlb(d), 282); - j = BD(vNb(c, FSb), 79); - k = itd(j, true, true); - F = (H = c7c(R6c(c.d.d), c.c.d), l6c(H, c.c.e.a, c.c.e.b), P6c(H, c.c.d)); - nmd(k, F.a, F.b); - b = (I = c7c(R6c(c.c.d), c.d.d), l6c(I, c.d.e.a, c.d.e.b), P6c(I, c.d.d)); - gmd(k, b.a, b.b); - } - for (f = new olb(a.d); f.a < f.c.c.length; ) { - e = BD(mlb(f), 447); - m = BD(vNb(e, FSb), 137); - o10 = P6c(e.d, A); - bld(m, o10.a, o10.b); - } - G = p - r + (B.b + B.c); - i10 = q - s + (B.d + B.a); - Afd(l, G, i10, false, true); - } - function bmc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - c = null; - i10 = null; - e = BD(vNb(a.b, (Nyc(), Wwc)), 376); - if (e == (_Ac(), ZAc)) { - c = new Rkb(); - i10 = new Rkb(); - } - for (h = new olb(a.d); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 101); - f = g10.i; - if (!f) { - continue; - } - switch (g10.e.g) { - case 0: - b = BD(Fqb(new Gqb(g10.b)), 61); - e == ZAc && b == (Ucd(), Acd) ? (c.c[c.c.length] = g10, true) : e == ZAc && b == (Ucd(), Rcd) ? (i10.c[i10.c.length] = g10, true) : _lc(g10, b); - break; - case 1: - j = g10.a.d.j; - k = g10.c.d.j; - j == (Ucd(), Acd) ? amc(g10, Acd, (Ajc(), xjc), g10.a) : k == Acd ? amc(g10, Acd, (Ajc(), yjc), g10.c) : j == Rcd ? amc(g10, Rcd, (Ajc(), yjc), g10.a) : k == Rcd && amc(g10, Rcd, (Ajc(), xjc), g10.c); - break; - case 2: - case 3: - d = g10.b; - uqb(d, (Ucd(), Acd)) ? uqb(d, Rcd) ? uqb(d, Tcd) ? uqb(d, zcd) || amc(g10, Acd, (Ajc(), yjc), g10.c) : amc(g10, Acd, (Ajc(), xjc), g10.a) : amc(g10, Acd, (Ajc(), wjc), null) : amc(g10, Rcd, (Ajc(), wjc), null); - break; - case 4: - l = g10.a.d.j; - m = g10.a.d.j; - l == (Ucd(), Acd) || m == Acd ? amc(g10, Rcd, (Ajc(), wjc), null) : amc(g10, Acd, (Ajc(), wjc), null); - } - } - if (c) { - c.c.length == 0 || $lc(c, (Ucd(), Acd)); - i10.c.length == 0 || $lc(i10, (Ucd(), Rcd)); - } - } - function A2b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - d = BD(vNb(a, (wtc(), $sc)), 33); - o10 = BD(vNb(a, (Nyc(), Gwc)), 19).a; - f = BD(vNb(a, nxc), 19).a; - jkd(d, Gwc, meb(o10)); - jkd(d, nxc, meb(f)); - dld(d, a.n.a + b.a); - eld(d, a.n.b + b.b); - if (BD(hkd(d, Fxc), 174).gc() != 0 || !!a.e || PD(vNb(Q_b(a), Exc)) === PD((Vzc(), Tzc)) && Jzc((Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? m = BD(vNb(a, Cxc), 197) : m = BD(vNb(Q_b(a), Dxc), 197), m))) { - cld(d, a.o.a); - ald(d, a.o.b); - } - for (l = new olb(a.j); l.a < l.c.c.length; ) { - j = BD(mlb(l), 11); - p = vNb(j, $sc); - if (JD(p, 186)) { - e = BD(p, 118); - bld(e, j.n.a, j.n.b); - jkd(e, $xc, j.j); - } - } - n = BD(vNb(a, xxc), 174).gc() != 0; - for (i10 = new olb(a.b); i10.a < i10.c.c.length; ) { - g10 = BD(mlb(i10), 70); - if (n || BD(vNb(g10, xxc), 174).gc() != 0) { - c = BD(vNb(g10, $sc), 137); - _kd(c, g10.o.a, g10.o.b); - bld(c, g10.n.a, g10.n.b); - } - } - if (!tcd(BD(vNb(a, Yxc), 21))) { - for (k = new olb(a.j); k.a < k.c.c.length; ) { - j = BD(mlb(k), 11); - for (h = new olb(j.f); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 70); - c = BD(vNb(g10, $sc), 137); - cld(c, g10.o.a); - ald(c, g10.o.b); - bld(c, g10.n.a, g10.n.b); - } - } - } - } - function gtd(a) { - var b, c, d, e, f; - ytb(a, hue); - switch ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i + (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i) { - case 0: - throw vbb(new Wdb("The edge must have at least one source or target.")); - case 1: - return (!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0 ? Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82))) : Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82))); - } - if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 1) { - e = atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)); - f = atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)); - if (Xod(e) == Xod(f)) { - return Xod(e); - } else if (e == Xod(f)) { - return e; - } else if (f == Xod(e)) { - return f; - } - } - d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); - b = atd(BD(Rr(d), 82)); - while (Qr(d)) { - c = atd(BD(Rr(d), 82)); - if (c != b && !ntd(c, b)) { - if (Xod(c) == Xod(b)) { - b = Xod(c); - } else { - b = htd(b, c); - if (!b) { - return null; - } - } - } - } - return b; - } - function KNc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - Odd(c, "Polyline edge routing", 1); - q = Edb(ED(vNb(b, (Nyc(), Uwc)))); - n = Edb(ED(vNb(b, wyc))); - e = Edb(ED(vNb(b, myc))); - d = $wnd.Math.min(1, e / n); - t = 0; - i10 = 0; - if (b.b.c.length != 0) { - u = HNc(BD(Ikb(b.b, 0), 29)); - t = 0.4 * d * u; - } - h = new Bib(b.b, 0); - while (h.b < h.d.gc()) { - g10 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)); - f = Kq(g10, DNc); - f && t > 0 && (t -= n); - h_b(g10, t); - k = 0; - for (m = new olb(g10.a); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - j = 0; - for (p = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(p); ) { - o10 = BD(Rr(p), 17); - r = A0b(o10.c).b; - s = A0b(o10.d).b; - if (g10 == o10.d.i.c && !OZb(o10)) { - LNc(o10, t, 0.4 * d * $wnd.Math.abs(r - s)); - if (o10.c.j == (Ucd(), Tcd)) { - r = 0; - s = 0; - } - } - j = $wnd.Math.max(j, $wnd.Math.abs(s - r)); - } - switch (l.k.g) { - case 0: - case 4: - case 1: - case 3: - case 5: - MNc(a, l, t, q); - } - k = $wnd.Math.max(k, j); - } - if (h.b < h.d.gc()) { - u = HNc((sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29))); - k = $wnd.Math.max(k, u); - sCb(h.b > 0); - h.a.Xb(h.c = --h.b); - } - i10 = 0.4 * d * k; - !f && h.b < h.d.gc() && (i10 += n); - t += g10.c.a + i10; - } - a.a.a.$b(); - b.f.a = t; - Qdd(c); - } - function bic(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s; - k = new Lqb(); - i10 = new Hp(); - for (d = new olb(a.a.a.b); d.a < d.c.c.length; ) { - b = BD(mlb(d), 57); - j = tgc(b); - if (j) { - jrb(k.f, j, b); - } else { - s = ugc(b); - if (s) { - for (f = new olb(s.k); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - Rc(i10, e, b); - } - } - } - } - for (c = new olb(a.a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - j = tgc(b); - if (j) { - for (h = new Sr(ur(U_b(j).a.Kc(), new Sq())); Qr(h); ) { - g10 = BD(Rr(h), 17); - if (OZb(g10)) { - continue; - } - o10 = g10.c; - r = g10.d; - if ((Ucd(), Lcd).Hc(g10.c.j) && Lcd.Hc(g10.d.j)) { - continue; - } - p = BD(Ohb(k, g10.d.i), 57); - AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 100), a.c[b.a.d]), a.c[p.a.d])); - if (o10.j == Tcd && l1b((z0b(), w0b, o10))) { - for (m = BD(Qc(i10, g10), 21).Kc(); m.Ob(); ) { - l = BD(m.Pb(), 57); - if (l.d.c < b.d.c) { - n = a.c[l.a.d]; - q = a.c[b.a.d]; - if (n == q) { - continue; - } - AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q)); - } - } - } - if (r.j == zcd && g1b((z0b(), u0b, r))) { - for (m = BD(Qc(i10, g10), 21).Kc(); m.Ob(); ) { - l = BD(m.Pb(), 57); - if (l.d.c > b.d.c) { - n = a.c[b.a.d]; - q = a.c[l.a.d]; - if (n == q) { - continue; - } - AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q)); - } - } - } - } - } - } - } - function QEd(a) { - IEd(); - var b, c, d, e, f, g10, h, i10; - if (a == null) - return null; - e = hfb(a, wfb(37)); - if (e < 0) { - return a; - } else { - i10 = new Wfb(a.substr(0, e)); - b = KC(SD, wte, 25, 4, 15, 1); - h = 0; - d = 0; - for (g10 = a.length; e < g10; e++) { - BCb(e, a.length); - if (a.charCodeAt(e) == 37 && a.length > e + 2 && _Ed((BCb(e + 1, a.length), a.charCodeAt(e + 1)), xEd, yEd) && _Ed((BCb(e + 2, a.length), a.charCodeAt(e + 2)), xEd, yEd)) { - c = dFd((BCb(e + 1, a.length), a.charCodeAt(e + 1)), (BCb(e + 2, a.length), a.charCodeAt(e + 2))); - e += 2; - if (d > 0) { - (c & 192) == 128 ? b[h++] = c << 24 >> 24 : d = 0; - } else if (c >= 128) { - if ((c & 224) == 192) { - b[h++] = c << 24 >> 24; - d = 2; - } else if ((c & 240) == 224) { - b[h++] = c << 24 >> 24; - d = 3; - } else if ((c & 248) == 240) { - b[h++] = c << 24 >> 24; - d = 4; - } - } - if (d > 0) { - if (h == d) { - switch (h) { - case 2: { - Kfb(i10, ((b[0] & 31) << 6 | b[1] & 63) & aje); - break; - } - case 3: { - Kfb(i10, ((b[0] & 15) << 12 | (b[1] & 63) << 6 | b[2] & 63) & aje); - break; - } - } - h = 0; - d = 0; - } - } else { - for (f = 0; f < h; ++f) { - Kfb(i10, b[f] & aje); - } - h = 0; - i10.a += String.fromCharCode(c); - } - } else { - for (f = 0; f < h; ++f) { - Kfb(i10, b[f] & aje); - } - h = 0; - Kfb(i10, (BCb(e, a.length), a.charCodeAt(e))); - } - } - return i10.a; - } - } - function wA(a, b, c, d, e) { - var f, g10, h; - uA(a, b); - g10 = b[0]; - f = bfb(c.c, 0); - h = -1; - if (nA(c)) { - if (d > 0) { - if (g10 + d > a.length) { - return false; - } - h = rA(a.substr(0, g10 + d), b); - } else { - h = rA(a, b); - } - } - switch (f) { - case 71: - h = oA(a, g10, OC(GC(ZI, 1), nie, 2, 6, [pje, qje]), b); - e.e = h; - return true; - case 77: - return zA(a, b, e, h, g10); - case 76: - return BA(a, b, e, h, g10); - case 69: - return xA(a, b, g10, e); - case 99: - return AA(a, b, g10, e); - case 97: - h = oA(a, g10, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"]), b); - e.b = h; - return true; - case 121: - return DA(a, b, g10, h, c, e); - case 100: - if (h <= 0) { - return false; - } - e.c = h; - return true; - case 83: - if (h < 0) { - return false; - } - return yA(h, g10, b[0], e); - case 104: - h == 12 && (h = 0); - case 75: - case 72: - if (h < 0) { - return false; - } - e.f = h; - e.g = false; - return true; - case 107: - if (h < 0) { - return false; - } - e.f = h; - e.g = true; - return true; - case 109: - if (h < 0) { - return false; - } - e.j = h; - return true; - case 115: - if (h < 0) { - return false; - } - e.n = h; - return true; - case 90: - if (g10 < a.length && (BCb(g10, a.length), a.charCodeAt(g10) == 90)) { - ++b[0]; - e.o = 0; - return true; - } - case 122: - case 118: - return CA(a, g10, b, e); - default: - return false; - } - } - function vKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - m = BD(BD(Qc(a.r, b), 21), 84); - if (b == (Ucd(), zcd) || b == Tcd) { - zKb(a, b); - return; - } - f = b == Acd ? (vLb(), rLb) : (vLb(), uLb); - u = b == Acd ? (EIb(), DIb) : (EIb(), BIb); - c = BD(Mpb(a.b, b), 124); - d = c.i; - e = d.c + w6c(OC(GC(UD, 1), Vje, 25, 15, [c.n.b, a.C.b, a.k])); - r = d.c + d.b - w6c(OC(GC(UD, 1), Vje, 25, 15, [c.n.c, a.C.c, a.k])); - g10 = dLb(iLb(f), a.t); - s = b == Acd ? Qje : Pje; - for (l = m.Kc(); l.Ob(); ) { - j = BD(l.Pb(), 111); - if (!j.c || j.c.d.c.length <= 0) { - continue; - } - q = j.b.rf(); - p = j.e; - n = j.c; - o10 = n.i; - o10.b = (i10 = n.n, n.e.a + i10.b + i10.c); - o10.a = (h = n.n, n.e.b + h.d + h.a); - ytb(u, lle); - n.f = u; - $Hb(n, (NHb(), MHb)); - o10.c = p.a - (o10.b - q.a) / 2; - v = $wnd.Math.min(e, p.a); - w = $wnd.Math.max(r, p.a + q.a); - o10.c < v ? o10.c = v : o10.c + o10.b > w && (o10.c = w - o10.b); - Ekb(g10.d, new BLb(o10, bLb(g10, o10))); - s = b == Acd ? $wnd.Math.max(s, p.b + j.b.rf().b) : $wnd.Math.min(s, p.b); - } - s += b == Acd ? a.t : -a.t; - t = cLb((g10.e = s, g10)); - t > 0 && (BD(Mpb(a.b, b), 124).a.b = t); - for (k = m.Kc(); k.Ob(); ) { - j = BD(k.Pb(), 111); - if (!j.c || j.c.d.c.length <= 0) { - continue; - } - o10 = j.c.i; - o10.c -= j.e.a; - o10.d -= j.e.b; - } - } - function SPb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - b = new Lqb(); - for (i10 = new Fyd(a); i10.e != i10.i.gc(); ) { - h = BD(Dyd(i10), 33); - c = new Tqb(); - Rhb(OPb, h, c); - n = new aQb(); - e = BD(GAb(new YAb(null, new Lub(new Sr(ur($sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)])))), 83); - RPb(c, BD(e.xc((Bcb(), true)), 14), new cQb()); - d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new eQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15); - for (g10 = d.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 79); - m = ktd(f); - if (m) { - j = BD(Wd(irb(b.f, m)), 21); - if (!j) { - j = UPb(m); - jrb(b.f, m, j); - } - ye(c, j); - } - } - e = BD(GAb(new YAb(null, new Lub(new Sr(ur(_sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb])))), 83); - RPb(c, BD(e.xc(true), 14), new gQb()); - d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new iQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15); - for (l = d.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 79); - m = mtd(k); - if (m) { - j = BD(Wd(irb(b.f, m)), 21); - if (!j) { - j = UPb(m); - jrb(b.f, m, j); - } - ye(c, j); - } - } - } - } - function rhb(a, b) { - phb(); - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - i10 = ybb(a, 0) < 0; - i10 && (a = Jbb(a)); - if (ybb(a, 0) == 0) { - switch (b) { - case 0: - return "0"; - case 1: - return $je; - case 2: - return "0.00"; - case 3: - return "0.000"; - case 4: - return "0.0000"; - case 5: - return "0.00000"; - case 6: - return "0.000000"; - default: - n = new Ufb(); - b < 0 ? (n.a += "0E+", n) : (n.a += "0E", n); - n.a += b == Rie ? "2147483648" : "" + -b; - return n.a; - } - } - k = 18; - l = KC(TD, $ie, 25, k + 1, 15, 1); - c = k; - p = a; - do { - j = p; - p = Abb(p, 10); - l[--c] = Tbb(wbb(48, Qbb(j, Ibb(p, 10)))) & aje; - } while (ybb(p, 0) != 0); - e = Qbb(Qbb(Qbb(k, c), b), 1); - if (b == 0) { - i10 && (l[--c] = 45); - return zfb(l, c, k - c); - } - if (b > 0 && ybb(e, -6) >= 0) { - if (ybb(e, 0) >= 0) { - f = c + Tbb(e); - for (h = k - 1; h >= f; h--) { - l[h + 1] = l[h]; - } - l[++f] = 46; - i10 && (l[--c] = 45); - return zfb(l, c, k - c + 1); - } - for (g10 = 2; Gbb(g10, wbb(Jbb(e), 1)); g10++) { - l[--c] = 48; - } - l[--c] = 46; - l[--c] = 48; - i10 && (l[--c] = 45); - return zfb(l, c, k - c); - } - o10 = c + 1; - d = k; - m = new Vfb(); - i10 && (m.a += "-", m); - if (d - o10 >= 1) { - Kfb(m, l[c]); - m.a += "."; - m.a += zfb(l, c + 1, k - c - 1); - } else { - m.a += zfb(l, c, k - c); - } - m.a += "E"; - ybb(e, 0) > 0 && (m.a += "+", m); - m.a += "" + Ubb(e); - return m.a; - } - function iQc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - a.e.a.$b(); - a.f.a.$b(); - a.c.c = KC(SI, Uhe, 1, 0, 5, 1); - a.i.c = KC(SI, Uhe, 1, 0, 5, 1); - a.g.a.$b(); - if (b) { - for (g10 = new olb(b.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - for (l = Y_b(f, (Ucd(), zcd)).Kc(); l.Ob(); ) { - k = BD(l.Pb(), 11); - Qqb(a.e, k); - for (e = new olb(k.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - if (OZb(d)) { - continue; - } - Ekb(a.c, d); - oQc(a, d); - h = d.c.i.k; - (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d); - n = d.d; - m = n.i.c; - m == c ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d); - } - } - } - } - if (c) { - for (g10 = new olb(c.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 10); - for (j = new olb(f.j); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 11); - for (e = new olb(i10.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - OZb(d) && Qqb(a.g, d); - } - } - for (l = Y_b(f, (Ucd(), Tcd)).Kc(); l.Ob(); ) { - k = BD(l.Pb(), 11); - Qqb(a.f, k); - for (e = new olb(k.g); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - if (OZb(d)) { - continue; - } - Ekb(a.c, d); - oQc(a, d); - h = d.c.i.k; - (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d); - n = d.d; - m = n.i.c; - m == c ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d); - } - } - } - } - } - function Afd(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - q = new f7c(a.g, a.f); - p = rfd(a); - p.a = $wnd.Math.max(p.a, b); - p.b = $wnd.Math.max(p.b, c); - w = p.a / q.a; - k = p.b / q.b; - u = p.a - q.a; - i10 = p.b - q.b; - if (d) { - g10 = !Xod(a) ? BD(hkd(a, (Y9c(), z8c)), 103) : BD(hkd(Xod(a), (Y9c(), z8c)), 103); - h = PD(hkd(a, (Y9c(), t9c))) === PD((dcd(), $bd)); - for (s = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); s.e != s.i.gc(); ) { - r = BD(Dyd(s), 118); - t = BD(hkd(r, A9c), 61); - if (t == (Ucd(), Scd)) { - t = lfd(r, g10); - jkd(r, A9c, t); - } - switch (t.g) { - case 1: - h || dld(r, r.i * w); - break; - case 2: - dld(r, r.i + u); - h || eld(r, r.j * k); - break; - case 3: - h || dld(r, r.i * w); - eld(r, r.j + i10); - break; - case 4: - h || eld(r, r.j * k); - } - } - } - _kd(a, p.a, p.b); - if (e) { - for (m = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); m.e != m.i.gc(); ) { - l = BD(Dyd(m), 137); - n = l.i + l.g / 2; - o10 = l.j + l.f / 2; - v = n / q.a; - j = o10 / q.b; - if (v + j >= 1) { - if (v - j > 0 && o10 >= 0) { - dld(l, l.i + u); - eld(l, l.j + i10 * j); - } else if (v - j < 0 && n >= 0) { - dld(l, l.i + u * v); - eld(l, l.j + i10); - } - } - } - } - jkd(a, (Y9c(), Y8c), (tdd(), f = BD(gdb(I1), 9), new xqb(f, BD(_Bb(f, f.length), 9), 0))); - return new f7c(w, k); - } - function Yfd(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - n = Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82))); - o10 = Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82))); - l = n == o10; - h = new d7c(); - b = BD(hkd(a, (Zad(), Sad)), 74); - if (!!b && b.b >= 2) { - if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) { - c = (Fhd(), e = new rmd(), e); - wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c); - } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) { - m = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a)); - while (m.e != m.i.gc()) { - Eyd(m); - } - } - ifd(b, BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202)); - } - if (l) { - for (d = new Fyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a)); d.e != d.i.gc(); ) { - c = BD(Dyd(d), 202); - for (j = new Fyd((!c.a && (c.a = new xMd(y2, c, 5)), c.a)); j.e != j.i.gc(); ) { - i10 = BD(Dyd(j), 469); - h.a = $wnd.Math.max(h.a, i10.a); - h.b = $wnd.Math.max(h.b, i10.b); - } - } - } - for (g10 = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); g10.e != g10.i.gc(); ) { - f = BD(Dyd(g10), 137); - k = BD(hkd(f, Yad), 8); - !!k && bld(f, k.a, k.b); - if (l) { - h.a = $wnd.Math.max(h.a, f.i + f.g); - h.b = $wnd.Math.max(h.b, f.j + f.f); - } - } - return h; - } - function yMc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B; - t = b.c.length; - e = new ULc(a.a, c, null, null); - B = KC(UD, Vje, 25, t, 15, 1); - p = KC(UD, Vje, 25, t, 15, 1); - o10 = KC(UD, Vje, 25, t, 15, 1); - q = 0; - for (h = 0; h < t; h++) { - p[h] = Ohe; - o10[h] = Rie; - } - for (i10 = 0; i10 < t; i10++) { - d = (tCb(i10, b.c.length), BD(b.c[i10], 180)); - B[i10] = SLc(d); - B[q] > B[i10] && (q = i10); - for (l = new olb(a.a.b); l.a < l.c.c.length; ) { - k = BD(mlb(l), 29); - for (s = new olb(k.a); s.a < s.c.c.length; ) { - r = BD(mlb(s), 10); - w = Edb(d.p[r.p]) + Edb(d.d[r.p]); - p[i10] = $wnd.Math.min(p[i10], w); - o10[i10] = $wnd.Math.max(o10[i10], w + r.o.b); - } - } - } - A = KC(UD, Vje, 25, t, 15, 1); - for (j = 0; j < t; j++) { - (tCb(j, b.c.length), BD(b.c[j], 180)).o == (eMc(), cMc) ? A[j] = p[q] - p[j] : A[j] = o10[q] - o10[j]; - } - f = KC(UD, Vje, 25, t, 15, 1); - for (n = new olb(a.a.b); n.a < n.c.c.length; ) { - m = BD(mlb(n), 29); - for (v = new olb(m.a); v.a < v.c.c.length; ) { - u = BD(mlb(v), 10); - for (g10 = 0; g10 < t; g10++) { - f[g10] = Edb((tCb(g10, b.c.length), BD(b.c[g10], 180)).p[u.p]) + Edb((tCb(g10, b.c.length), BD(b.c[g10], 180)).d[u.p]) + A[g10]; - } - f.sort(dcb(Ylb.prototype.te, Ylb, [])); - e.p[u.p] = (f[1] + f[2]) / 2; - e.d[u.p] = 0; - } - } - return e; - } - function G3b(a, b, c) { - var d, e, f, g10, h; - d = b.i; - f = a.i.o; - e = a.i.d; - h = a.n; - g10 = l7c(OC(GC(m1, 1), nie, 8, 0, [h, a.a])); - switch (a.j.g) { - case 1: - _Hb(b, (EIb(), BIb)); - d.d = -e.d - c - d.a; - if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) { - $Hb(b, (NHb(), MHb)); - d.c = g10.a - Edb(ED(vNb(a, Ysc))) - c - d.b; - } else { - $Hb(b, (NHb(), LHb)); - d.c = g10.a + Edb(ED(vNb(a, Ysc))) + c; - } - break; - case 2: - $Hb(b, (NHb(), LHb)); - d.c = f.a + e.c + c; - if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) { - _Hb(b, (EIb(), BIb)); - d.d = g10.b - Edb(ED(vNb(a, Ysc))) - c - d.a; - } else { - _Hb(b, (EIb(), DIb)); - d.d = g10.b + Edb(ED(vNb(a, Ysc))) + c; - } - break; - case 3: - _Hb(b, (EIb(), DIb)); - d.d = f.b + e.a + c; - if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) { - $Hb(b, (NHb(), MHb)); - d.c = g10.a - Edb(ED(vNb(a, Ysc))) - c - d.b; - } else { - $Hb(b, (NHb(), LHb)); - d.c = g10.a + Edb(ED(vNb(a, Ysc))) + c; - } - break; - case 4: - $Hb(b, (NHb(), MHb)); - d.c = -e.b - c - d.b; - if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) { - _Hb(b, (EIb(), BIb)); - d.d = g10.b - Edb(ED(vNb(a, Ysc))) - c - d.a; - } else { - _Hb(b, (EIb(), DIb)); - d.d = g10.b + Edb(ED(vNb(a, Ysc))) + c; - } - } - } - function ded(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; - n = 0; - D = 0; - for (i10 = new olb(a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 33); - zfd(h); - n = $wnd.Math.max(n, h.g); - D += h.g * h.f; - } - o10 = D / a.c.length; - C = $dd(a, o10); - D += a.c.length * C; - n = $wnd.Math.max(n, $wnd.Math.sqrt(D * g10)) + c.b; - H = c.b; - I = c.d; - m = 0; - k = c.b + c.c; - B = new Psb(); - Dsb(B, meb(0)); - w = new Psb(); - j = new Bib(a, 0); - while (j.b < j.d.gc()) { - h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33)); - G = h.g; - l = h.f; - if (H + G > n) { - if (f) { - Fsb(w, m); - Fsb(B, meb(j.b - 1)); - } - H = c.b; - I += m + b; - m = 0; - k = $wnd.Math.max(k, c.b + c.c + G); - } - dld(h, H); - eld(h, I); - k = $wnd.Math.max(k, H + G + c.c); - m = $wnd.Math.max(m, l); - H += G + b; - } - k = $wnd.Math.max(k, d); - F = I + m + c.a; - if (F < e) { - m += e - F; - F = e; - } - if (f) { - H = c.b; - j = new Bib(a, 0); - Fsb(B, meb(a.c.length)); - A = Jsb(B, 0); - r = BD(Xsb(A), 19).a; - Fsb(w, m); - v = Jsb(w, 0); - u = 0; - while (j.b < j.d.gc()) { - if (j.b == r) { - H = c.b; - u = Edb(ED(Xsb(v))); - r = BD(Xsb(A), 19).a; - } - h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33)); - s = h.f; - ald(h, u); - p = u; - if (j.b == r) { - q = k - H - c.c; - t = h.g; - cld(h, q); - Ffd(h, new f7c(q, p), new f7c(t, s)); - } - H += h.g + b; - } - } - return new f7c(k, F); - } - function _Yb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C; - Odd(b, "Compound graph postprocessor", 1); - c = Ccb(DD(vNb(a, (Nyc(), Byc)))); - h = BD(vNb(a, (wtc(), zsc)), 224); - k = new Tqb(); - for (r = h.ec().Kc(); r.Ob(); ) { - q = BD(r.Pb(), 17); - g10 = new Tkb(h.cc(q)); - mmb(); - Okb(g10, new EZb(a)); - v = zZb((tCb(0, g10.c.length), BD(g10.c[0], 243))); - A = AZb(BD(Ikb(g10, g10.c.length - 1), 243)); - t = v.i; - f_b(A.i, t) ? s = t.e : s = Q_b(t); - l = aZb(q, g10); - Osb(q.a); - m = null; - for (f = new olb(g10); f.a < f.c.c.length; ) { - e = BD(mlb(f), 243); - p = new d7c(); - Y$b(p, e.a, s); - n = e.b; - d = new s7c(); - o7c(d, 0, n.a); - q7c(d, p); - u = new g7c(A0b(n.c)); - w = new g7c(A0b(n.d)); - P6c(u, p); - P6c(w, p); - if (m) { - d.b == 0 ? o10 = w : o10 = (sCb(d.b != 0), BD(d.a.a.c, 8)); - B = $wnd.Math.abs(m.a - o10.a) > qme; - C = $wnd.Math.abs(m.b - o10.b) > qme; - (!c && B && C || c && (B || C)) && Dsb(q.a, u); - } - ye(q.a, d); - d.b == 0 ? m = u : m = (sCb(d.b != 0), BD(d.c.b.c, 8)); - bZb(n, l, p); - if (AZb(e) == A) { - if (Q_b(A.i) != e.a) { - p = new d7c(); - Y$b(p, Q_b(A.i), s); - } - yNb(q, utc, p); - } - cZb(n, q, s); - k.a.zc(n, k); - } - QZb(q, v); - RZb(q, A); - } - for (j = k.a.ec().Kc(); j.Ob(); ) { - i10 = BD(j.Pb(), 17); - QZb(i10, null); - RZb(i10, null); - } - Qdd(b); - } - function KQb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - if (a.gc() == 1) { - return BD(a.Xb(0), 231); - } else if (a.gc() <= 0) { - return new kRb(); - } - for (e = a.Kc(); e.Ob(); ) { - c = BD(e.Pb(), 231); - o10 = 0; - k = Ohe; - l = Ohe; - i10 = Rie; - j = Rie; - for (n = new olb(c.e); n.a < n.c.c.length; ) { - m = BD(mlb(n), 144); - o10 += BD(vNb(m, (wSb(), oSb)), 19).a; - k = $wnd.Math.min(k, m.d.a - m.e.a / 2); - l = $wnd.Math.min(l, m.d.b - m.e.b / 2); - i10 = $wnd.Math.max(i10, m.d.a + m.e.a / 2); - j = $wnd.Math.max(j, m.d.b + m.e.b / 2); - } - yNb(c, (wSb(), oSb), meb(o10)); - yNb(c, (HSb(), ESb), new f7c(k, l)); - yNb(c, DSb, new f7c(i10, j)); - } - mmb(); - a.ad(new OQb()); - p = new kRb(); - tNb(p, BD(a.Xb(0), 94)); - h = 0; - s = 0; - for (f = a.Kc(); f.Ob(); ) { - c = BD(f.Pb(), 231); - q = c7c(R6c(BD(vNb(c, (HSb(), DSb)), 8)), BD(vNb(c, ESb), 8)); - h = $wnd.Math.max(h, q.a); - s += q.a * q.b; - } - h = $wnd.Math.max(h, $wnd.Math.sqrt(s) * Edb(ED(vNb(p, (wSb(), bSb))))); - r = Edb(ED(vNb(p, uSb))); - t = 0; - u = 0; - g10 = 0; - b = r; - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 231); - q = c7c(R6c(BD(vNb(c, (HSb(), DSb)), 8)), BD(vNb(c, ESb), 8)); - if (t + q.a > h) { - t = 0; - u += g10 + r; - g10 = 0; - } - JQb(p, c, t, u); - b = $wnd.Math.max(b, t + q.a); - g10 = $wnd.Math.max(g10, q.b); - t += q.a + r; - } - return p; - } - function Ioc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - k = new s7c(); - switch (a.a.g) { - case 3: - m = BD(vNb(b.e, (wtc(), rtc)), 15); - n = BD(vNb(b.j, rtc), 15); - o10 = BD(vNb(b.f, rtc), 15); - c = BD(vNb(b.e, ptc), 15); - d = BD(vNb(b.j, ptc), 15); - e = BD(vNb(b.f, ptc), 15); - g10 = new Rkb(); - Gkb(g10, m); - n.Jc(new Loc()); - Gkb(g10, JD(n, 152) ? km(BD(n, 152)) : JD(n, 131) ? BD(n, 131).a : JD(n, 54) ? new ov(n) : new dv(n)); - Gkb(g10, o10); - f = new Rkb(); - Gkb(f, c); - Gkb(f, JD(d, 152) ? km(BD(d, 152)) : JD(d, 131) ? BD(d, 131).a : JD(d, 54) ? new ov(d) : new dv(d)); - Gkb(f, e); - yNb(b.f, rtc, g10); - yNb(b.f, ptc, f); - yNb(b.f, stc, b.f); - yNb(b.e, rtc, null); - yNb(b.e, ptc, null); - yNb(b.j, rtc, null); - yNb(b.j, ptc, null); - break; - case 1: - ye(k, b.e.a); - Dsb(k, b.i.n); - ye(k, Su(b.j.a)); - Dsb(k, b.a.n); - ye(k, b.f.a); - break; - default: - ye(k, b.e.a); - ye(k, Su(b.j.a)); - ye(k, b.f.a); - } - Osb(b.f.a); - ye(b.f.a, k); - QZb(b.f, b.e.c); - h = BD(vNb(b.e, (Nyc(), jxc)), 74); - j = BD(vNb(b.j, jxc), 74); - i10 = BD(vNb(b.f, jxc), 74); - if (!!h || !!j || !!i10) { - l = new s7c(); - Goc(l, i10); - Goc(l, j); - Goc(l, h); - yNb(b.f, jxc, l); - } - QZb(b.j, null); - RZb(b.j, null); - QZb(b.e, null); - RZb(b.e, null); - $_b(b.a, null); - $_b(b.i, null); - !!b.g && Ioc(a, b.g); - } - function bde(a) { - ade(); - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - if (a == null) - return null; - f = rfb(a); - o10 = ede(f); - if (o10 % 4 != 0) { - return null; - } - p = o10 / 4 | 0; - if (p == 0) - return KC(SD, wte, 25, 0, 15, 1); - l = null; - b = 0; - c = 0; - d = 0; - e = 0; - g10 = 0; - h = 0; - i10 = 0; - j = 0; - n = 0; - m = 0; - k = 0; - l = KC(SD, wte, 25, p * 3, 15, 1); - for (; n < p - 1; n++) { - if (!dde(g10 = f[k++]) || !dde(h = f[k++]) || !dde(i10 = f[k++]) || !dde(j = f[k++])) - return null; - b = $ce[g10]; - c = $ce[h]; - d = $ce[i10]; - e = $ce[j]; - l[m++] = (b << 2 | c >> 4) << 24 >> 24; - l[m++] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24; - l[m++] = (d << 6 | e) << 24 >> 24; - } - if (!dde(g10 = f[k++]) || !dde(h = f[k++])) { - return null; - } - b = $ce[g10]; - c = $ce[h]; - i10 = f[k++]; - j = f[k++]; - if ($ce[i10] == -1 || $ce[j] == -1) { - if (i10 == 61 && j == 61) { - if ((c & 15) != 0) - return null; - q = KC(SD, wte, 25, n * 3 + 1, 15, 1); - $fb(l, 0, q, 0, n * 3); - q[m] = (b << 2 | c >> 4) << 24 >> 24; - return q; - } else if (i10 != 61 && j == 61) { - d = $ce[i10]; - if ((d & 3) != 0) - return null; - q = KC(SD, wte, 25, n * 3 + 2, 15, 1); - $fb(l, 0, q, 0, n * 3); - q[m++] = (b << 2 | c >> 4) << 24 >> 24; - q[m] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24; - return q; - } else { - return null; - } - } else { - d = $ce[i10]; - e = $ce[j]; - l[m++] = (b << 2 | c >> 4) << 24 >> 24; - l[m++] = ((c & 15) << 4 | d >> 2 & 15) << 24 >> 24; - l[m++] = (d << 6 | e) << 24 >> 24; - } - return l; - } - function Sbc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v; - Odd(b, Ine, 1); - o10 = BD(vNb(a, (Nyc(), Swc)), 218); - for (e = new olb(a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 29); - j = l_b(d.a); - for (g10 = j, h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - if (f.k != (j0b(), i0b)) { - continue; - } - if (o10 == (Aad(), yad)) { - for (l = new olb(f.j); l.a < l.c.c.length; ) { - k = BD(mlb(l), 11); - k.e.c.length == 0 || Vbc(k); - k.g.c.length == 0 || Wbc(k); - } - } else if (JD(vNb(f, (wtc(), $sc)), 17)) { - q = BD(vNb(f, $sc), 17); - r = BD(Y_b(f, (Ucd(), Tcd)).Kc().Pb(), 11); - s = BD(Y_b(f, zcd).Kc().Pb(), 11); - t = BD(vNb(r, $sc), 11); - u = BD(vNb(s, $sc), 11); - QZb(q, u); - RZb(q, t); - v = new g7c(s.i.n); - v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [u.i.n, u.n, u.a])).a; - Dsb(q.a, v); - v = new g7c(r.i.n); - v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [t.i.n, t.n, t.a])).a; - Dsb(q.a, v); - } else { - if (f.j.c.length >= 2) { - p = true; - m = new olb(f.j); - c = BD(mlb(m), 11); - n = null; - while (m.a < m.c.c.length) { - n = c; - c = BD(mlb(m), 11); - if (!pb(vNb(n, $sc), vNb(c, $sc))) { - p = false; - break; - } - } - } else { - p = false; - } - for (l = new olb(f.j); l.a < l.c.c.length; ) { - k = BD(mlb(l), 11); - k.e.c.length == 0 || Tbc(k, p); - k.g.c.length == 0 || Ubc(k, p); - } - } - $_b(f, null); - } - } - Qdd(b); - } - function KJc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B; - t = a.c[(tCb(0, b.c.length), BD(b.c[0], 17)).p]; - A = a.c[(tCb(1, b.c.length), BD(b.c[1], 17)).p]; - if (t.a.e.e - t.a.a - (t.b.e.e - t.b.a) == 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) == 0) { - return false; - } - r = t.b.e.f; - if (!JD(r, 10)) { - return false; - } - q = BD(r, 10); - v = a.i[q.p]; - w = !q.c ? -1 : Jkb(q.c.a, q, 0); - f = Pje; - if (w > 0) { - e = BD(Ikb(q.c.a, w - 1), 10); - g10 = a.i[e.p]; - B = $wnd.Math.ceil(jBc(a.n, e, q)); - f = v.a.e - q.d.d - (g10.a.e + e.o.b + e.d.a) - B; - } - j = Pje; - if (w < q.c.a.c.length - 1) { - i10 = BD(Ikb(q.c.a, w + 1), 10); - k = a.i[i10.p]; - B = $wnd.Math.ceil(jBc(a.n, i10, q)); - j = k.a.e - i10.d.d - (v.a.e + q.o.b + q.d.a) - B; - } - if (c && (Iy(), My(Jqe), $wnd.Math.abs(f - j) <= Jqe || f == j || isNaN(f) && isNaN(j))) { - return true; - } - d = gKc(t.a); - h = -gKc(t.b); - l = -gKc(A.a); - s = gKc(A.b); - p = t.a.e.e - t.a.a - (t.b.e.e - t.b.a) > 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) < 0; - o10 = t.a.e.e - t.a.a - (t.b.e.e - t.b.a) < 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) > 0; - n = t.a.e.e + t.b.a < A.b.e.e + A.a.a; - m = t.a.e.e + t.b.a > A.b.e.e + A.a.a; - u = 0; - !p && !o10 && (m ? f + l > 0 ? u = l : j - d > 0 && (u = d) : n && (f + h > 0 ? u = h : j - s > 0 && (u = s))); - v.a.e += u; - v.b && (v.d.e += u); - return false; - } - function XGb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - d = new J6c(b.qf().a, b.qf().b, b.rf().a, b.rf().b); - e = new I6c(); - if (a.c) { - for (g10 = new olb(b.wf()); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 181); - e.c = f.qf().a + b.qf().a; - e.d = f.qf().b + b.qf().b; - e.b = f.rf().a; - e.a = f.rf().b; - H6c(d, e); - } - } - for (j = new olb(b.Cf()); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 838); - k = i10.qf().a + b.qf().a; - l = i10.qf().b + b.qf().b; - if (a.e) { - e.c = k; - e.d = l; - e.b = i10.rf().a; - e.a = i10.rf().b; - H6c(d, e); - } - if (a.d) { - for (g10 = new olb(i10.wf()); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 181); - e.c = f.qf().a + k; - e.d = f.qf().b + l; - e.b = f.rf().a; - e.a = f.rf().b; - H6c(d, e); - } - } - if (a.b) { - m = new f7c(-c, -c); - if (BD(b.We((Y9c(), x9c)), 174).Hc((rcd(), pcd))) { - for (g10 = new olb(i10.wf()); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 181); - m.a += f.rf().a + c; - m.b += f.rf().b + c; - } - } - m.a = $wnd.Math.max(m.a, 0); - m.b = $wnd.Math.max(m.b, 0); - VGb(d, i10.Bf(), i10.zf(), b, i10, m, c); - } - } - a.b && VGb(d, b.Bf(), b.zf(), b, null, null, c); - h = new K_b(b.Af()); - h.d = $wnd.Math.max(0, b.qf().b - d.d); - h.a = $wnd.Math.max(0, d.d + d.a - (b.qf().b + b.rf().b)); - h.b = $wnd.Math.max(0, b.qf().a - d.c); - h.c = $wnd.Math.max(0, d.c + d.b - (b.qf().a + b.rf().a)); - b.Ef(h); - } - function wz() { - var a = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"]; - a[34] = '\\"'; - a[92] = "\\\\"; - a[173] = "\\u00ad"; - a[1536] = "\\u0600"; - a[1537] = "\\u0601"; - a[1538] = "\\u0602"; - a[1539] = "\\u0603"; - a[1757] = "\\u06dd"; - a[1807] = "\\u070f"; - a[6068] = "\\u17b4"; - a[6069] = "\\u17b5"; - a[8203] = "\\u200b"; - a[8204] = "\\u200c"; - a[8205] = "\\u200d"; - a[8206] = "\\u200e"; - a[8207] = "\\u200f"; - a[8232] = "\\u2028"; - a[8233] = "\\u2029"; - a[8234] = "\\u202a"; - a[8235] = "\\u202b"; - a[8236] = "\\u202c"; - a[8237] = "\\u202d"; - a[8238] = "\\u202e"; - a[8288] = "\\u2060"; - a[8289] = "\\u2061"; - a[8290] = "\\u2062"; - a[8291] = "\\u2063"; - a[8292] = "\\u2064"; - a[8298] = "\\u206a"; - a[8299] = "\\u206b"; - a[8300] = "\\u206c"; - a[8301] = "\\u206d"; - a[8302] = "\\u206e"; - a[8303] = "\\u206f"; - a[65279] = "\\ufeff"; - a[65529] = "\\ufff9"; - a[65530] = "\\ufffa"; - a[65531] = "\\ufffb"; - return a; - } - function pid(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m; - i10 = new Rkb(); - l = b.length; - g10 = AUd(c); - for (j = 0; j < l; ++j) { - k = ifb(b, wfb(61), j); - d = $hd(g10, b.substr(j, k - j)); - e = KJd(d); - f = e.Aj().Nh(); - switch (bfb(b, ++k)) { - case 39: { - h = gfb(b, 39, ++k); - Ekb(i10, new kGd(d, Pid(b.substr(k, h - k), f, e))); - j = h + 1; - break; - } - case 34: { - h = gfb(b, 34, ++k); - Ekb(i10, new kGd(d, Pid(b.substr(k, h - k), f, e))); - j = h + 1; - break; - } - case 91: { - m = new Rkb(); - Ekb(i10, new kGd(d, m)); - n: - for (; ; ) { - switch (bfb(b, ++k)) { - case 39: { - h = gfb(b, 39, ++k); - Ekb(m, Pid(b.substr(k, h - k), f, e)); - k = h + 1; - break; - } - case 34: { - h = gfb(b, 34, ++k); - Ekb(m, Pid(b.substr(k, h - k), f, e)); - k = h + 1; - break; - } - case 110: { - ++k; - if (b.indexOf("ull", k) == k) { - m.c[m.c.length] = null; - } else { - throw vbb(new hz(kte)); - } - k += 3; - break; - } - } - if (k < l) { - switch (BCb(k, b.length), b.charCodeAt(k)) { - case 44: { - break; - } - case 93: { - break n; - } - default: { - throw vbb(new hz("Expecting , or ]")); - } - } - } else { - break; - } - } - j = k + 1; - break; - } - case 110: { - ++k; - if (b.indexOf("ull", k) == k) { - Ekb(i10, new kGd(d, null)); - } else { - throw vbb(new hz(kte)); - } - j = k + 3; - break; - } - } - if (j < l) { - BCb(j, b.length); - if (b.charCodeAt(j) != 44) { - throw vbb(new hz("Expecting ,")); - } - } else { - break; - } - } - return qid(a, i10, c); - } - function AKb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - j = BD(BD(Qc(a.r, b), 21), 84); - g10 = bKb(a, b); - c = a.u.Hc((rcd(), lcd)); - for (i10 = j.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 111); - if (!h.c || h.c.d.c.length <= 0) { - continue; - } - m = h.b.rf(); - k = h.c; - l = k.i; - l.b = (f = k.n, k.e.a + f.b + f.c); - l.a = (e = k.n, k.e.b + e.d + e.a); - switch (b.g) { - case 1: - if (h.a) { - l.c = (m.a - l.b) / 2; - $Hb(k, (NHb(), KHb)); - } else if (g10 || c) { - l.c = -l.b - a.s; - $Hb(k, (NHb(), MHb)); - } else { - l.c = m.a + a.s; - $Hb(k, (NHb(), LHb)); - } - l.d = -l.a - a.t; - _Hb(k, (EIb(), BIb)); - break; - case 3: - if (h.a) { - l.c = (m.a - l.b) / 2; - $Hb(k, (NHb(), KHb)); - } else if (g10 || c) { - l.c = -l.b - a.s; - $Hb(k, (NHb(), MHb)); - } else { - l.c = m.a + a.s; - $Hb(k, (NHb(), LHb)); - } - l.d = m.b + a.t; - _Hb(k, (EIb(), DIb)); - break; - case 2: - if (h.a) { - d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b; - l.d = (m.b - d) / 2; - _Hb(k, (EIb(), CIb)); - } else if (g10 || c) { - l.d = -l.a - a.t; - _Hb(k, (EIb(), BIb)); - } else { - l.d = m.b + a.t; - _Hb(k, (EIb(), DIb)); - } - l.c = m.a + a.s; - $Hb(k, (NHb(), LHb)); - break; - case 4: - if (h.a) { - d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b; - l.d = (m.b - d) / 2; - _Hb(k, (EIb(), CIb)); - } else if (g10 || c) { - l.d = -l.a - a.t; - _Hb(k, (EIb(), BIb)); - } else { - l.d = m.b + a.t; - _Hb(k, (EIb(), DIb)); - } - l.c = -l.b - a.s; - $Hb(k, (NHb(), MHb)); - } - g10 = false; - } - } - function Kfe(a, b) { - wfe(); - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - if (Vhb(Zee) == 0) { - l = KC(lbb, nie, 117, _ee.length, 0, 1); - for (g10 = 0; g10 < l.length; g10++) { - l[g10] = (++vfe, new $fe(4)); - } - d = new Ifb(); - for (f = 0; f < Yee.length; f++) { - k = (++vfe, new $fe(4)); - if (f < 84) { - h = f * 2; - n = (BCb(h, wxe.length), wxe.charCodeAt(h)); - m = (BCb(h + 1, wxe.length), wxe.charCodeAt(h + 1)); - Ufe(k, n, m); - } else { - h = (f - 84) * 2; - Ufe(k, afe[h], afe[h + 1]); - } - i10 = Yee[f]; - dfb(i10, "Specials") && Ufe(k, 65520, 65533); - if (dfb(i10, uxe)) { - Ufe(k, 983040, 1048573); - Ufe(k, 1048576, 1114109); - } - Shb(Zee, i10, k); - Shb($ee, i10, _fe(k)); - j = d.a.length; - 0 < j ? d.a = d.a.substr(0, 0) : 0 > j && (d.a += yfb(KC(TD, $ie, 25, -j, 15, 1))); - d.a += "Is"; - if (hfb(i10, wfb(32)) >= 0) { - for (e = 0; e < i10.length; e++) { - BCb(e, i10.length); - i10.charCodeAt(e) != 32 && Afb(d, (BCb(e, i10.length), i10.charCodeAt(e))); - } - } else { - d.a += "" + i10; - } - Ofe(d.a, i10, true); - } - Ofe(vxe, "Cn", false); - Ofe(xxe, "Cn", true); - c = (++vfe, new $fe(4)); - Ufe(c, 0, lxe); - Shb(Zee, "ALL", c); - Shb($ee, "ALL", _fe(c)); - !bfe && (bfe = new Lqb()); - Shb(bfe, vxe, vxe); - !bfe && (bfe = new Lqb()); - Shb(bfe, xxe, xxe); - !bfe && (bfe = new Lqb()); - Shb(bfe, "ALL", "ALL"); - } - o10 = b ? BD(Phb(Zee, a), 136) : BD(Phb($ee, a), 136); - return o10; - } - function c3b(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s; - m = false; - l = false; - if (fcd(BD(vNb(d, (Nyc(), Vxc)), 98))) { - g10 = false; - h = false; - t: - for (o10 = new olb(d.j); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 11); - for (q = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(n), new R0b(n)]))); Qr(q); ) { - p = BD(Rr(q), 11); - if (!Ccb(DD(vNb(p.i, pwc)))) { - if (n.j == (Ucd(), Acd)) { - g10 = true; - break t; - } - if (n.j == Rcd) { - h = true; - break t; - } - } - } - } - m = h && !g10; - l = g10 && !h; - } - if (!m && !l && d.b.c.length != 0) { - k = 0; - for (j = new olb(d.b); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 70); - k += i10.n.b + i10.o.b / 2; - } - k /= d.b.c.length; - s = k >= d.o.b / 2; - } else { - s = !l; - } - if (s) { - r = BD(vNb(d, (wtc(), vtc)), 15); - if (!r) { - f = new Rkb(); - yNb(d, vtc, f); - } else if (m) { - f = r; - } else { - e = BD(vNb(d, tsc), 15); - if (!e) { - f = new Rkb(); - yNb(d, tsc, f); - } else { - r.gc() <= e.gc() ? f = r : f = e; - } - } - } else { - e = BD(vNb(d, (wtc(), tsc)), 15); - if (!e) { - f = new Rkb(); - yNb(d, tsc, f); - } else if (l) { - f = e; - } else { - r = BD(vNb(d, vtc), 15); - if (!r) { - f = new Rkb(); - yNb(d, vtc, f); - } else { - e.gc() <= r.gc() ? f = e : f = r; - } - } - } - f.Fc(a); - yNb(a, (wtc(), vsc), c); - if (b.d == c) { - RZb(b, null); - c.e.c.length + c.g.c.length == 0 && F0b(c, null); - d3b(c); - } else { - QZb(b, null); - c.e.c.length + c.g.c.length == 0 && F0b(c, null); - } - Osb(b.a); - } - function aoc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H; - s = new Bib(a.b, 0); - k = b.Kc(); - o10 = 0; - j = BD(k.Pb(), 19).a; - v = 0; - c = new Tqb(); - A = new zsb(); - while (s.b < s.d.gc()) { - r = (sCb(s.b < s.d.gc()), BD(s.d.Xb(s.c = s.b++), 29)); - for (u = new olb(r.a); u.a < u.c.c.length; ) { - t = BD(mlb(u), 10); - for (n = new Sr(ur(U_b(t).a.Kc(), new Sq())); Qr(n); ) { - l = BD(Rr(n), 17); - A.a.zc(l, A); - } - for (m = new Sr(ur(R_b(t).a.Kc(), new Sq())); Qr(m); ) { - l = BD(Rr(m), 17); - A.a.Bc(l) != null; - } - } - if (o10 + 1 == j) { - e = new H1b(a); - Aib(s, e); - f = new H1b(a); - Aib(s, f); - for (C = A.a.ec().Kc(); C.Ob(); ) { - B = BD(C.Pb(), 17); - if (!c.a._b(B)) { - ++v; - c.a.zc(B, c); - } - g10 = new b0b(a); - yNb(g10, (Nyc(), Vxc), (dcd(), acd)); - $_b(g10, e); - __b(g10, (j0b(), d0b)); - p = new H0b(); - F0b(p, g10); - G0b(p, (Ucd(), Tcd)); - D = new H0b(); - F0b(D, g10); - G0b(D, zcd); - d = new b0b(a); - yNb(d, Vxc, acd); - $_b(d, f); - __b(d, d0b); - q = new H0b(); - F0b(q, d); - G0b(q, Tcd); - F = new H0b(); - F0b(F, d); - G0b(F, zcd); - w = new UZb(); - QZb(w, B.c); - RZb(w, p); - H = new UZb(); - QZb(H, D); - RZb(H, q); - QZb(B, F); - h = new goc(g10, d, w, H, B); - yNb(g10, (wtc(), usc), h); - yNb(d, usc, h); - G = w.c.i; - if (G.k == d0b) { - i10 = BD(vNb(G, usc), 305); - i10.d = h; - h.g = i10; - } - } - if (k.Ob()) { - j = BD(k.Pb(), 19).a; - } else { - break; - } - } - ++o10; - } - return meb(v); - } - function T1b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - l = 0; - for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - if (!Ccb(DD(hkd(d, (Nyc(), Jxc))))) { - if ((PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(d, xwc)))) { - jkd(d, (wtc(), Zsc), meb(l)); - ++l; - } - $1b(a, d, c); - } - } - l = 0; - for (j = new Fyd((!b.b && (b.b = new cUd(B2, b, 12, 3)), b.b)); j.e != j.i.gc(); ) { - h = BD(Dyd(j), 79); - if (PD(hkd(b, (Nyc(), ywc))) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) { - jkd(h, (wtc(), Zsc), meb(l)); - ++l; - } - o10 = jtd(h); - p = ltd(h); - k = Ccb(DD(hkd(o10, fxc))); - n = !Ccb(DD(hkd(h, Jxc))); - m = k && Qld(h) && Ccb(DD(hkd(h, gxc))); - f = Xod(o10) == b && Xod(o10) == Xod(p); - g10 = (Xod(o10) == b && p == b) ^ (Xod(p) == b && o10 == b); - n && !m && (g10 || f) && X1b(a, h, b, c); - } - if (Xod(b)) { - for (i10 = new Fyd(Wod(Xod(b))); i10.e != i10.i.gc(); ) { - h = BD(Dyd(i10), 79); - o10 = jtd(h); - if (o10 == b && Qld(h)) { - m = Ccb(DD(hkd(o10, (Nyc(), fxc)))) && Ccb(DD(hkd(h, gxc))); - m && X1b(a, h, b, c); - } - } - } - } - function gDc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; - Odd(c, "MinWidth layering", 1); - n = b.b; - A = b.a; - I = BD(vNb(b, (Nyc(), oxc)), 19).a; - h = BD(vNb(b, pxc), 19).a; - a.b = Edb(ED(vNb(b, lyc))); - a.d = Pje; - for (u = new olb(A); u.a < u.c.c.length; ) { - s = BD(mlb(u), 10); - if (s.k != (j0b(), h0b)) { - continue; - } - D = s.o.b; - a.d = $wnd.Math.min(a.d, D); - } - a.d = $wnd.Math.max(1, a.d); - B = A.c.length; - a.c = KC(WD, oje, 25, B, 15, 1); - a.f = KC(WD, oje, 25, B, 15, 1); - a.e = KC(UD, Vje, 25, B, 15, 1); - j = 0; - a.a = 0; - for (v = new olb(A); v.a < v.c.c.length; ) { - s = BD(mlb(v), 10); - s.p = j++; - a.c[s.p] = eDc(R_b(s)); - a.f[s.p] = eDc(U_b(s)); - a.e[s.p] = s.o.b / a.d; - a.a += a.e[s.p]; - } - a.b /= a.d; - a.a /= B; - w = fDc(A); - Okb(A, tmb(new mDc(a))); - p = Pje; - o10 = Ohe; - g10 = null; - H = I; - G = I; - f = h; - e = h; - if (I < 0) { - H = BD(bDc.a.zd(), 19).a; - G = BD(bDc.b.zd(), 19).a; - } - if (h < 0) { - f = BD(aDc.a.zd(), 19).a; - e = BD(aDc.b.zd(), 19).a; - } - for (F = H; F <= G; F++) { - for (d = f; d <= e; d++) { - C = dDc(a, F, d, A, w); - r = Edb(ED(C.a)); - m = BD(C.b, 15); - q = m.gc(); - if (r < p || r == p && q < o10) { - p = r; - o10 = q; - g10 = m; - } - } - } - for (l = g10.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 15); - i10 = new H1b(b); - for (t = k.Kc(); t.Ob(); ) { - s = BD(t.Pb(), 10); - $_b(s, i10); - } - n.c[n.c.length] = i10; - } - smb(n); - A.c = KC(SI, Uhe, 1, 0, 5, 1); - Qdd(c); - } - function I6b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - a.b = b; - a.a = BD(vNb(b, (Nyc(), bxc)), 19).a; - a.c = BD(vNb(b, dxc), 19).a; - a.c == 0 && (a.c = Ohe); - q = new Bib(b.b, 0); - while (q.b < q.d.gc()) { - p = (sCb(q.b < q.d.gc()), BD(q.d.Xb(q.c = q.b++), 29)); - h = new Rkb(); - k = -1; - u = -1; - for (t = new olb(p.a); t.a < t.c.c.length; ) { - s = BD(mlb(t), 10); - if (sr((D6b(), new Sr(ur(O_b(s).a.Kc(), new Sq())))) >= a.a) { - d = E6b(a, s); - k = $wnd.Math.max(k, d.b); - u = $wnd.Math.max(u, d.d); - Ekb(h, new vgd(s, d)); - } - } - B = new Rkb(); - for (j = 0; j < k; ++j) { - Dkb(B, 0, (sCb(q.b > 0), q.a.Xb(q.c = --q.b), C = new H1b(a.b), Aib(q, C), sCb(q.b < q.d.gc()), q.d.Xb(q.c = q.b++), C)); - } - for (g10 = new olb(h); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 46); - n = BD(e.b, 571).a; - if (!n) { - continue; - } - for (m = new olb(n); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - H6b(a, l, B6b, B); - } - } - c = new Rkb(); - for (i10 = 0; i10 < u; ++i10) { - Ekb(c, (D = new H1b(a.b), Aib(q, D), D)); - } - for (f = new olb(h); f.a < f.c.c.length; ) { - e = BD(mlb(f), 46); - A = BD(e.b, 571).c; - if (!A) { - continue; - } - for (w = new olb(A); w.a < w.c.c.length; ) { - v = BD(mlb(w), 10); - H6b(a, v, C6b, c); - } - } - } - r = new Bib(b.b, 0); - while (r.b < r.d.gc()) { - o10 = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 29)); - o10.a.c.length == 0 && uib(r); - } - } - function uQc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G; - Odd(c, "Spline edge routing", 1); - if (b.b.c.length == 0) { - b.f.a = 0; - Qdd(c); - return; - } - s = Edb(ED(vNb(b, (Nyc(), wyc)))); - h = Edb(ED(vNb(b, pyc))); - g10 = Edb(ED(vNb(b, myc))); - r = BD(vNb(b, Xwc), 336); - B = r == (tBc(), sBc); - A = Edb(ED(vNb(b, Ywc))); - a.d = b; - a.j.c = KC(SI, Uhe, 1, 0, 5, 1); - a.a.c = KC(SI, Uhe, 1, 0, 5, 1); - Uhb(a.k); - i10 = BD(Ikb(b.b, 0), 29); - k = Kq(i10.a, (FNc(), DNc)); - o10 = BD(Ikb(b.b, b.b.c.length - 1), 29); - l = Kq(o10.a, DNc); - p = new olb(b.b); - q = null; - G = 0; - do { - t = p.a < p.c.c.length ? BD(mlb(p), 29) : null; - iQc(a, q, t); - lQc(a); - C = Vtb(uAb(PAb(JAb(new YAb(null, new Kub(a.i, 16)), new LQc()), new NQc()))); - F = 0; - u = G; - m = !q || k && q == i10; - n = !t || l && t == o10; - if (C > 0) { - j = 0; - !!q && (j += h); - j += (C - 1) * g10; - !!t && (j += h); - B && !!t && (j = $wnd.Math.max(j, jQc(t, g10, s, A))); - if (j < s && !m && !n) { - F = (s - j) / 2; - j = s; - } - u += j; - } else - !m && !n && (u += s); - !!t && h_b(t, u); - for (w = new olb(a.i); w.a < w.c.c.length; ) { - v = BD(mlb(w), 128); - v.a.c = G; - v.a.b = u - G; - v.F = F; - v.p = !q; - } - Gkb(a.a, a.i); - G = u; - !!t && (G += t.c.a); - q = t; - m = n; - } while (t); - for (e = new olb(a.j); e.a < e.c.c.length; ) { - d = BD(mlb(e), 17); - f = pQc(a, d); - yNb(d, (wtc(), ptc), f); - D = rQc(a, d); - yNb(d, rtc, D); - } - b.f.a = G; - a.d = null; - Qdd(c); - } - function Yxd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - p = a.i != 0; - t = false; - r = null; - if (oid(a.e)) { - k = b.gc(); - if (k > 0) { - m = k < 100 ? null : new Ixd(k); - j = new Aud(b); - o10 = j.g; - r = KC(WD, oje, 25, k, 15, 1); - d = 0; - u = new zud(k); - for (e = 0; e < a.i; ++e) { - h = a.g[e]; - n = h; - v: - for (s = 0; s < 2; ++s) { - for (i10 = k; --i10 >= 0; ) { - if (n != null ? pb(n, o10[i10]) : PD(n) === PD(o10[i10])) { - if (r.length <= d) { - q = r; - r = KC(WD, oje, 25, 2 * r.length, 15, 1); - $fb(q, 0, r, 0, d); - } - r[d++] = e; - wtd(u, o10[i10]); - break v; - } - } - n = n; - if (PD(n) === PD(h)) { - break; - } - } - } - j = u; - o10 = u.g; - k = d; - if (d > r.length) { - q = r; - r = KC(WD, oje, 25, d, 15, 1); - $fb(q, 0, r, 0, d); - } - if (d > 0) { - t = true; - for (f = 0; f < d; ++f) { - n = o10[f]; - m = k3d(a, BD(n, 72), m); - } - for (g10 = d; --g10 >= 0; ) { - tud(a, r[g10]); - } - if (d != k) { - for (e = k; --e >= d; ) { - tud(j, e); - } - q = r; - r = KC(WD, oje, 25, d, 15, 1); - $fb(q, 0, r, 0, d); - } - b = j; - } - } - } else { - b = Ctd(a, b); - for (e = a.i; --e >= 0; ) { - if (b.Hc(a.g[e])) { - tud(a, e); - t = true; - } - } - } - if (t) { - if (r != null) { - c = b.gc(); - l = c == 1 ? FLd(a, 4, b.Kc().Pb(), null, r[0], p) : FLd(a, 6, b, r, r[0], p); - m = c < 100 ? null : new Ixd(c); - for (e = b.Kc(); e.Ob(); ) { - n = e.Pb(); - m = Q2d(a, BD(n, 72), m); - } - if (!m) { - Uhd(a.e, l); - } else { - m.Ei(l); - m.Fi(); - } - } else { - m = Vxd(b.gc()); - for (e = b.Kc(); e.Ob(); ) { - n = e.Pb(); - m = Q2d(a, BD(n, 72), m); - } - !!m && m.Fi(); - } - return true; - } else { - return false; - } - } - function fYb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - c = new mYb(b); - c.a || $Xb(b); - j = ZXb(b); - i10 = new Hp(); - q = new AYb(); - for (p = new olb(b.a); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 10); - for (e = new Sr(ur(U_b(o10).a.Kc(), new Sq())); Qr(e); ) { - d = BD(Rr(e), 17); - if (d.c.i.k == (j0b(), e0b) || d.d.i.k == e0b) { - k = eYb(a, d, j, q); - Rc(i10, cYb(k.d), k.a); - } - } - } - g10 = new Rkb(); - for (t = BD(vNb(c.c, (wtc(), Esc)), 21).Kc(); t.Ob(); ) { - s = BD(t.Pb(), 61); - n = q.c[s.g]; - m = q.b[s.g]; - h = q.a[s.g]; - f = null; - r = null; - switch (s.g) { - case 4: - f = new J6c(a.d.a, n, j.b.a - a.d.a, m - n); - r = new J6c(a.d.a, n, h, m - n); - iYb(j, new f7c(f.c + f.b, f.d)); - iYb(j, new f7c(f.c + f.b, f.d + f.a)); - break; - case 2: - f = new J6c(j.a.a, n, a.c.a - j.a.a, m - n); - r = new J6c(a.c.a - h, n, h, m - n); - iYb(j, new f7c(f.c, f.d)); - iYb(j, new f7c(f.c, f.d + f.a)); - break; - case 1: - f = new J6c(n, a.d.b, m - n, j.b.b - a.d.b); - r = new J6c(n, a.d.b, m - n, h); - iYb(j, new f7c(f.c, f.d + f.a)); - iYb(j, new f7c(f.c + f.b, f.d + f.a)); - break; - case 3: - f = new J6c(n, j.a.b, m - n, a.c.b - j.a.b); - r = new J6c(n, a.c.b - h, m - n, h); - iYb(j, new f7c(f.c, f.d)); - iYb(j, new f7c(f.c + f.b, f.d)); - } - if (f) { - l = new vYb(); - l.d = s; - l.b = f; - l.c = r; - l.a = Dx(BD(Qc(i10, cYb(s)), 21)); - g10.c[g10.c.length] = l; - } - } - Gkb(c.b, g10); - c.d = BWb(JWb(j)); - return c; - } - function pMc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - if (c.p[b.p] != null) { - return; - } - h = true; - c.p[b.p] = 0; - g10 = b; - p = c.o == (eMc(), cMc) ? Qje : Pje; - do { - e = a.b.e[g10.p]; - f = g10.c.a.c.length; - if (c.o == cMc && e > 0 || c.o == dMc && e < f - 1) { - i10 = null; - j = null; - c.o == dMc ? i10 = BD(Ikb(g10.c.a, e + 1), 10) : i10 = BD(Ikb(g10.c.a, e - 1), 10); - j = c.g[i10.p]; - pMc(a, j, c); - p = a.e.bg(p, b, g10); - c.j[b.p] == b && (c.j[b.p] = c.j[j.p]); - if (c.j[b.p] == c.j[j.p]) { - o10 = jBc(a.d, g10, i10); - if (c.o == dMc) { - d = Edb(c.p[b.p]); - l = Edb(c.p[j.p]) + Edb(c.d[i10.p]) - i10.d.d - o10 - g10.d.a - g10.o.b - Edb(c.d[g10.p]); - if (h) { - h = false; - c.p[b.p] = $wnd.Math.min(l, p); - } else { - c.p[b.p] = $wnd.Math.min(d, $wnd.Math.min(l, p)); - } - } else { - d = Edb(c.p[b.p]); - l = Edb(c.p[j.p]) + Edb(c.d[i10.p]) + i10.o.b + i10.d.a + o10 + g10.d.d - Edb(c.d[g10.p]); - if (h) { - h = false; - c.p[b.p] = $wnd.Math.max(l, p); - } else { - c.p[b.p] = $wnd.Math.max(d, $wnd.Math.max(l, p)); - } - } - } else { - o10 = Edb(ED(vNb(a.a, (Nyc(), vyc)))); - n = nMc(a, c.j[b.p]); - k = nMc(a, c.j[j.p]); - if (c.o == dMc) { - m = Edb(c.p[b.p]) + Edb(c.d[g10.p]) + g10.o.b + g10.d.a + o10 - (Edb(c.p[j.p]) + Edb(c.d[i10.p]) - i10.d.d); - tMc(n, k, m); - } else { - m = Edb(c.p[b.p]) + Edb(c.d[g10.p]) - g10.d.d - Edb(c.p[j.p]) - Edb(c.d[i10.p]) - i10.o.b - i10.d.a - o10; - tMc(n, k, m); - } - } - } else { - p = a.e.bg(p, b, g10); - } - g10 = c.a[g10.p]; - } while (g10 != b); - SMc(a.e, b); - } - function _qd(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G; - t = b; - s = new Hp(); - u = new Hp(); - k = Ypd(t, Nte); - d = new ord(a, c, s, u); - qqd(d.a, d.b, d.c, d.d, k); - i10 = (A = s.i, !A ? s.i = new zf(s, s.c) : A); - for (C = i10.Kc(); C.Ob(); ) { - B = BD(C.Pb(), 202); - e = BD(Qc(s, B), 21); - for (p = e.Kc(); p.Ob(); ) { - o10 = p.Pb(); - v = BD(oo(a.d, o10), 202); - if (v) { - h = (!B.e && (B.e = new y5d(A2, B, 10, 9)), B.e); - wtd(h, v); - } else { - g10 = _pd(t, Vte); - m = _te + o10 + aue + g10; - n = m + $te; - throw vbb(new cqd(n)); - } - } - } - j = (w = u.i, !w ? u.i = new zf(u, u.c) : w); - for (F = j.Kc(); F.Ob(); ) { - D = BD(F.Pb(), 202); - f = BD(Qc(u, D), 21); - for (r = f.Kc(); r.Ob(); ) { - q = r.Pb(); - v = BD(oo(a.d, q), 202); - if (v) { - l = (!D.g && (D.g = new y5d(A2, D, 9, 10)), D.g); - wtd(l, v); - } else { - g10 = _pd(t, Vte); - m = _te + q + aue + g10; - n = m + $te; - throw vbb(new cqd(n)); - } - } - } - !c.b && (c.b = new y5d(z2, c, 4, 7)); - if (c.b.i != 0 && (!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c.i != 0) && (!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b.i <= 1 && (!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c.i <= 1)) && (!c.a && (c.a = new cUd(A2, c, 6, 6)), c.a).i == 1) { - G = BD(qud((!c.a && (c.a = new cUd(A2, c, 6, 6)), c.a), 0), 202); - if (!dmd(G) && !emd(G)) { - kmd(G, BD(qud((!c.b && (c.b = new y5d(z2, c, 4, 7)), c.b), 0), 82)); - lmd(G, BD(qud((!c.c && (c.c = new y5d(z2, c, 5, 8)), c.c), 0), 82)); - } - } - } - function qJc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - for (t = a.a, u = 0, v = t.length; u < v; ++u) { - s = t[u]; - j = Ohe; - k = Ohe; - for (o10 = new olb(s.e); o10.a < o10.c.c.length; ) { - m = BD(mlb(o10), 10); - g10 = !m.c ? -1 : Jkb(m.c.a, m, 0); - if (g10 > 0) { - l = BD(Ikb(m.c.a, g10 - 1), 10); - B = jBc(a.b, m, l); - q = m.n.b - m.d.d - (l.n.b + l.o.b + l.d.a + B); - } else { - q = m.n.b - m.d.d; - } - j = $wnd.Math.min(q, j); - if (g10 < m.c.a.c.length - 1) { - l = BD(Ikb(m.c.a, g10 + 1), 10); - B = jBc(a.b, m, l); - r = l.n.b - l.d.d - (m.n.b + m.o.b + m.d.a + B); - } else { - r = 2 * m.n.b; - } - k = $wnd.Math.min(r, k); - } - i10 = Ohe; - f = false; - e = BD(Ikb(s.e, 0), 10); - for (D = new olb(e.j); D.a < D.c.c.length; ) { - C = BD(mlb(D), 11); - p = e.n.b + C.n.b + C.a.b; - for (d = new olb(C.e); d.a < d.c.c.length; ) { - c = BD(mlb(d), 17); - w = c.c; - b = w.i.n.b + w.n.b + w.a.b - p; - if ($wnd.Math.abs(b) < $wnd.Math.abs(i10) && $wnd.Math.abs(b) < (b < 0 ? j : k)) { - i10 = b; - f = true; - } - } - } - h = BD(Ikb(s.e, s.e.c.length - 1), 10); - for (A = new olb(h.j); A.a < A.c.c.length; ) { - w = BD(mlb(A), 11); - p = h.n.b + w.n.b + w.a.b; - for (d = new olb(w.g); d.a < d.c.c.length; ) { - c = BD(mlb(d), 17); - C = c.d; - b = C.i.n.b + C.n.b + C.a.b - p; - if ($wnd.Math.abs(b) < $wnd.Math.abs(i10) && $wnd.Math.abs(b) < (b < 0 ? j : k)) { - i10 = b; - f = true; - } - } - } - if (f && i10 != 0) { - for (n = new olb(s.e); n.a < n.c.c.length; ) { - m = BD(mlb(n), 10); - m.n.b += i10; - } - } - } - } - function ync(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - if (Mhb(a.a, b)) { - if (Rqb(BD(Ohb(a.a, b), 53), c)) { - return 1; - } - } else { - Rhb(a.a, b, new Tqb()); - } - if (Mhb(a.a, c)) { - if (Rqb(BD(Ohb(a.a, c), 53), b)) { - return -1; - } - } else { - Rhb(a.a, c, new Tqb()); - } - if (Mhb(a.e, b)) { - if (Rqb(BD(Ohb(a.e, b), 53), c)) { - return -1; - } - } else { - Rhb(a.e, b, new Tqb()); - } - if (Mhb(a.e, c)) { - if (Rqb(BD(Ohb(a.a, c), 53), b)) { - return 1; - } - } else { - Rhb(a.e, c, new Tqb()); - } - if (a.c == (tAc(), sAc) || !wNb(b, (wtc(), Zsc)) || !wNb(c, (wtc(), Zsc))) { - i10 = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Hnc())), new Jnc())), 11); - k = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(c.j, 16)), new Lnc())), new Nnc())), 11); - if (!!i10 && !!k) { - h = i10.i; - j = k.i; - if (!!h && h == j) { - for (m = new olb(h.j); m.a < m.c.c.length; ) { - l = BD(mlb(m), 11); - if (l == i10) { - Anc(a, c, b); - return -1; - } else if (l == k) { - Anc(a, b, c); - return 1; - } - } - return beb(znc(a, b), znc(a, c)); - } - for (o10 = a.d, p = 0, q = o10.length; p < q; ++p) { - n = o10[p]; - if (n == h) { - Anc(a, c, b); - return -1; - } else if (n == j) { - Anc(a, b, c); - return 1; - } - } - } - if (!wNb(b, (wtc(), Zsc)) || !wNb(c, Zsc)) { - e = znc(a, b); - g10 = znc(a, c); - e > g10 ? Anc(a, b, c) : Anc(a, c, b); - return e < g10 ? -1 : e > g10 ? 1 : 0; - } - } - d = BD(vNb(b, (wtc(), Zsc)), 19).a; - f = BD(vNb(c, Zsc), 19).a; - d > f ? Anc(a, b, c) : Anc(a, c, b); - return d < f ? -1 : d > f ? 1 : 0; - } - function u2c(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s; - if (Ccb(DD(hkd(b, (Y9c(), d9c))))) { - return mmb(), mmb(), jmb; - } - j = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0; - l = s2c(b); - k = !l.dc(); - if (j || k) { - e = BD(hkd(b, F9c), 149); - if (!e) { - throw vbb(new y2c("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.")); - } - s = D3c(e, (Csd(), ysd)); - q2c(b); - if (!j && k && !s) { - return mmb(), mmb(), jmb; - } - i10 = new Rkb(); - if (PD(hkd(b, J8c)) === PD((hbd(), ebd)) && (D3c(e, vsd) || D3c(e, usd))) { - n = p2c(a, b); - o10 = new Psb(); - ye(o10, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); - while (o10.b != 0) { - m = BD(o10.b == 0 ? null : (sCb(o10.b != 0), Nsb(o10, o10.a.a)), 33); - q2c(m); - r = PD(hkd(m, J8c)) === PD(gbd); - if (r || ikd(m, o8c) && !C3c(e, hkd(m, F9c))) { - h = u2c(a, m, c, d); - Gkb(i10, h); - jkd(m, J8c, gbd); - hfd(m); - } else { - ye(o10, (!m.a && (m.a = new cUd(E2, m, 10, 11)), m.a)); - } - } - } else { - n = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i; - for (g10 = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); g10.e != g10.i.gc(); ) { - f = BD(Dyd(g10), 33); - h = u2c(a, f, c, d); - Gkb(i10, h); - hfd(f); - } - } - for (q = new olb(i10); q.a < q.c.c.length; ) { - p = BD(mlb(q), 79); - jkd(p, d9c, (Bcb(), true)); - } - r2c(b, e, Udd(d, n)); - v2c(i10); - return k && s ? l : (mmb(), mmb(), jmb); - } else { - return mmb(), mmb(), jmb; - } - } - function Z$b(a, b, c, d, e, f, g10, h, i10) { - var j, k, l, m, n, o10, p; - n = c; - k = new b0b(i10); - __b(k, (j0b(), e0b)); - yNb(k, (wtc(), Isc), g10); - yNb(k, (Nyc(), Vxc), (dcd(), $bd)); - p = Edb(ED(a.We(Uxc))); - yNb(k, Uxc, p); - l = new H0b(); - F0b(l, k); - if (!(b != bcd && b != ccd)) { - d >= 0 ? n = Zcd(h) : n = Wcd(Zcd(h)); - a.Ye($xc, n); - } - j = new d7c(); - m = false; - if (a.Xe(Txc)) { - a7c(j, BD(a.We(Txc), 8)); - m = true; - } else { - _6c(j, g10.a / 2, g10.b / 2); - } - switch (n.g) { - case 4: - yNb(k, mxc, (Ctc(), ytc)); - yNb(k, Bsc, (Gqc(), Fqc)); - k.o.b = g10.b; - p < 0 && (k.o.a = -p); - G0b(l, (Ucd(), zcd)); - m || (j.a = g10.a); - j.a -= g10.a; - break; - case 2: - yNb(k, mxc, (Ctc(), Atc)); - yNb(k, Bsc, (Gqc(), Dqc)); - k.o.b = g10.b; - p < 0 && (k.o.a = -p); - G0b(l, (Ucd(), Tcd)); - m || (j.a = 0); - break; - case 1: - yNb(k, Osc, (esc(), dsc)); - k.o.a = g10.a; - p < 0 && (k.o.b = -p); - G0b(l, (Ucd(), Rcd)); - m || (j.b = g10.b); - j.b -= g10.b; - break; - case 3: - yNb(k, Osc, (esc(), bsc)); - k.o.a = g10.a; - p < 0 && (k.o.b = -p); - G0b(l, (Ucd(), Acd)); - m || (j.b = 0); - } - a7c(l.n, j); - yNb(k, Txc, j); - if (b == Zbd || b == _bd || b == $bd) { - o10 = 0; - if (b == Zbd && a.Xe(Wxc)) { - switch (n.g) { - case 1: - case 2: - o10 = BD(a.We(Wxc), 19).a; - break; - case 3: - case 4: - o10 = -BD(a.We(Wxc), 19).a; - } - } else { - switch (n.g) { - case 4: - case 2: - o10 = f.b; - b == _bd && (o10 /= e.b); - break; - case 1: - case 3: - o10 = f.a; - b == _bd && (o10 /= e.a); - } - } - yNb(k, htc, o10); - } - yNb(k, Hsc, n); - return k; - } - function AGc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C; - c = Edb(ED(vNb(a.a.j, (Nyc(), Ewc)))); - if (c < -1 || !a.a.i || ecd(BD(vNb(a.a.o, Vxc), 98)) || V_b(a.a.o, (Ucd(), zcd)).gc() < 2 && V_b(a.a.o, Tcd).gc() < 2) { - return true; - } - if (a.a.c.Rf()) { - return false; - } - v = 0; - u = 0; - t = new Rkb(); - for (i10 = a.a.e, j = 0, k = i10.length; j < k; ++j) { - h = i10[j]; - for (m = h, n = 0, p = m.length; n < p; ++n) { - l = m[n]; - if (l.k == (j0b(), i0b)) { - t.c[t.c.length] = l; - continue; - } - d = a.b[l.c.p][l.p]; - if (l.k == e0b) { - d.b = 1; - BD(vNb(l, (wtc(), $sc)), 11).j == (Ucd(), zcd) && (u += d.a); - } else { - C = V_b(l, (Ucd(), Tcd)); - C.dc() || !Lq(C, new NGc()) ? d.c = 1 : (e = V_b(l, zcd), (e.dc() || !Lq(e, new JGc())) && (v += d.a)); - } - for (g10 = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g10); ) { - f = BD(Rr(g10), 17); - v += d.c; - u += d.b; - B = f.d.i; - zGc(a, d, B); - } - r = pl(OC(GC(KI, 1), Uhe, 20, 0, [V_b(l, (Ucd(), Acd)), V_b(l, Rcd)])); - for (A = new Sr(new xl(r.a.length, r.a)); Qr(A); ) { - w = BD(Rr(A), 11); - s = BD(vNb(w, (wtc(), gtc)), 10); - if (s) { - v += d.c; - u += d.b; - zGc(a, d, s); - } - } - } - for (o10 = new olb(t); o10.a < o10.c.c.length; ) { - l = BD(mlb(o10), 10); - d = a.b[l.c.p][l.p]; - for (g10 = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g10); ) { - f = BD(Rr(g10), 17); - v += d.c; - u += d.b; - B = f.d.i; - zGc(a, d, B); - } - } - t.c = KC(SI, Uhe, 1, 0, 5, 1); - } - b = v + u; - q = b == 0 ? Pje : (v - u) / b; - return q >= c; - } - function ovd() { - mvd(); - function h(f) { - var g10 = this; - this.dispatch = function(a) { - var b = a.data; - switch (b.cmd) { - case "algorithms": - var c = pvd((mmb(), new lnb(new $ib(lvd.b)))); - f.postMessage({ id: b.id, data: c }); - break; - case "categories": - var d = pvd((mmb(), new lnb(new $ib(lvd.c)))); - f.postMessage({ id: b.id, data: d }); - break; - case "options": - var e = pvd((mmb(), new lnb(new $ib(lvd.d)))); - f.postMessage({ id: b.id, data: e }); - break; - case "register": - svd(b.algorithms); - f.postMessage({ id: b.id }); - break; - case "layout": - qvd(b.graph, b.layoutOptions || {}, b.options || {}); - f.postMessage({ id: b.id, data: b.graph }); - break; - } - }; - this.saveDispatch = function(b) { - try { - g10.dispatch(b); - } catch (a) { - f.postMessage({ id: b.data.id, error: a }); - } - }; - } - function j(b) { - var c = this; - this.dispatcher = new h({ postMessage: function(a) { - c.onmessage({ data: a }); - } }); - this.postMessage = function(a) { - setTimeout(function() { - c.dispatcher.saveDispatch({ data: a }); - }, 0); - }; - } - if (typeof document === uke && typeof self !== uke) { - var i10 = new h(self); - self.onmessage = i10.saveDispatch; - } else if (typeof module3 !== uke && module3.exports) { - Object.defineProperty(exports3, "__esModule", { value: true }); - module3.exports = { "default": j, Worker: j }; - } - } - function aae(a) { - if (a.N) - return; - a.N = true; - a.b = Lnd(a, 0); - Knd(a.b, 0); - Knd(a.b, 1); - Knd(a.b, 2); - a.bb = Lnd(a, 1); - Knd(a.bb, 0); - Knd(a.bb, 1); - a.fb = Lnd(a, 2); - Knd(a.fb, 3); - Knd(a.fb, 4); - Qnd(a.fb, 5); - a.qb = Lnd(a, 3); - Knd(a.qb, 0); - Qnd(a.qb, 1); - Qnd(a.qb, 2); - Knd(a.qb, 3); - Knd(a.qb, 4); - Qnd(a.qb, 5); - Knd(a.qb, 6); - a.a = Mnd(a, 4); - a.c = Mnd(a, 5); - a.d = Mnd(a, 6); - a.e = Mnd(a, 7); - a.f = Mnd(a, 8); - a.g = Mnd(a, 9); - a.i = Mnd(a, 10); - a.j = Mnd(a, 11); - a.k = Mnd(a, 12); - a.n = Mnd(a, 13); - a.o = Mnd(a, 14); - a.p = Mnd(a, 15); - a.q = Mnd(a, 16); - a.s = Mnd(a, 17); - a.r = Mnd(a, 18); - a.t = Mnd(a, 19); - a.u = Mnd(a, 20); - a.v = Mnd(a, 21); - a.w = Mnd(a, 22); - a.B = Mnd(a, 23); - a.A = Mnd(a, 24); - a.C = Mnd(a, 25); - a.D = Mnd(a, 26); - a.F = Mnd(a, 27); - a.G = Mnd(a, 28); - a.H = Mnd(a, 29); - a.J = Mnd(a, 30); - a.I = Mnd(a, 31); - a.K = Mnd(a, 32); - a.M = Mnd(a, 33); - a.L = Mnd(a, 34); - a.P = Mnd(a, 35); - a.Q = Mnd(a, 36); - a.R = Mnd(a, 37); - a.S = Mnd(a, 38); - a.T = Mnd(a, 39); - a.U = Mnd(a, 40); - a.V = Mnd(a, 41); - a.X = Mnd(a, 42); - a.W = Mnd(a, 43); - a.Y = Mnd(a, 44); - a.Z = Mnd(a, 45); - a.$ = Mnd(a, 46); - a._ = Mnd(a, 47); - a.ab = Mnd(a, 48); - a.cb = Mnd(a, 49); - a.db = Mnd(a, 50); - a.eb = Mnd(a, 51); - a.gb = Mnd(a, 52); - a.hb = Mnd(a, 53); - a.ib = Mnd(a, 54); - a.jb = Mnd(a, 55); - a.kb = Mnd(a, 56); - a.lb = Mnd(a, 57); - a.mb = Mnd(a, 58); - a.nb = Mnd(a, 59); - a.ob = Mnd(a, 60); - a.pb = Mnd(a, 61); - } - function f5b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - s = 0; - if (b.f.a == 0) { - for (q = new olb(a); q.a < q.c.c.length; ) { - o10 = BD(mlb(q), 10); - s = $wnd.Math.max(s, o10.n.a + o10.o.a + o10.d.c); - } - } else { - s = b.f.a - b.c.a; - } - s -= b.c.a; - for (p = new olb(a); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 10); - g5b(o10.n, s - o10.o.a); - h5b(o10.f); - d5b(o10); - (!o10.q ? (mmb(), mmb(), kmb) : o10.q)._b((Nyc(), ayc)) && g5b(BD(vNb(o10, ayc), 8), s - o10.o.a); - switch (BD(vNb(o10, mwc), 248).g) { - case 1: - yNb(o10, mwc, (F7c(), D7c)); - break; - case 2: - yNb(o10, mwc, (F7c(), C7c)); - } - r = o10.o; - for (u = new olb(o10.j); u.a < u.c.c.length; ) { - t = BD(mlb(u), 11); - g5b(t.n, r.a - t.o.a); - g5b(t.a, t.o.a); - G0b(t, Z4b(t.j)); - g10 = BD(vNb(t, Wxc), 19); - !!g10 && yNb(t, Wxc, meb(-g10.a)); - for (f = new olb(t.g); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - for (d = Jsb(e.a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 8); - c.a = s - c.a; - } - j = BD(vNb(e, jxc), 74); - if (j) { - for (i10 = Jsb(j, 0); i10.b != i10.d.c; ) { - h = BD(Xsb(i10), 8); - h.a = s - h.a; - } - } - for (m = new olb(e.b); m.a < m.c.c.length; ) { - k = BD(mlb(m), 70); - g5b(k.n, s - k.o.a); - } - } - for (n = new olb(t.f); n.a < n.c.c.length; ) { - k = BD(mlb(n), 70); - g5b(k.n, t.o.a - k.o.a); - } - } - if (o10.k == (j0b(), e0b)) { - yNb(o10, (wtc(), Hsc), Z4b(BD(vNb(o10, Hsc), 61))); - c5b(o10); - } - for (l = new olb(o10.b); l.a < l.c.c.length; ) { - k = BD(mlb(l), 70); - d5b(k); - g5b(k.n, r.a - k.o.a); - } - } - } - function i5b(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - s = 0; - if (b.f.b == 0) { - for (q = new olb(a); q.a < q.c.c.length; ) { - o10 = BD(mlb(q), 10); - s = $wnd.Math.max(s, o10.n.b + o10.o.b + o10.d.a); - } - } else { - s = b.f.b - b.c.b; - } - s -= b.c.b; - for (p = new olb(a); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 10); - j5b(o10.n, s - o10.o.b); - k5b(o10.f); - e5b(o10); - (!o10.q ? (mmb(), mmb(), kmb) : o10.q)._b((Nyc(), ayc)) && j5b(BD(vNb(o10, ayc), 8), s - o10.o.b); - switch (BD(vNb(o10, mwc), 248).g) { - case 3: - yNb(o10, mwc, (F7c(), A7c)); - break; - case 4: - yNb(o10, mwc, (F7c(), E7c)); - } - r = o10.o; - for (u = new olb(o10.j); u.a < u.c.c.length; ) { - t = BD(mlb(u), 11); - j5b(t.n, r.b - t.o.b); - j5b(t.a, t.o.b); - G0b(t, $4b(t.j)); - g10 = BD(vNb(t, Wxc), 19); - !!g10 && yNb(t, Wxc, meb(-g10.a)); - for (f = new olb(t.g); f.a < f.c.c.length; ) { - e = BD(mlb(f), 17); - for (d = Jsb(e.a, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 8); - c.b = s - c.b; - } - j = BD(vNb(e, jxc), 74); - if (j) { - for (i10 = Jsb(j, 0); i10.b != i10.d.c; ) { - h = BD(Xsb(i10), 8); - h.b = s - h.b; - } - } - for (m = new olb(e.b); m.a < m.c.c.length; ) { - k = BD(mlb(m), 70); - j5b(k.n, s - k.o.b); - } - } - for (n = new olb(t.f); n.a < n.c.c.length; ) { - k = BD(mlb(n), 70); - j5b(k.n, t.o.b - k.o.b); - } - } - if (o10.k == (j0b(), e0b)) { - yNb(o10, (wtc(), Hsc), $4b(BD(vNb(o10, Hsc), 61))); - b5b(o10); - } - for (l = new olb(o10.b); l.a < l.c.c.length; ) { - k = BD(mlb(l), 70); - e5b(k); - j5b(k.n, r.b - k.o.b); - } - } - } - function tZc(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n; - l = false; - j = a + 1; - k = (tCb(a, b.c.length), BD(b.c[a], 200)); - g10 = k.a; - h = null; - for (f = 0; f < k.a.c.length; f++) { - e = (tCb(f, g10.c.length), BD(g10.c[f], 187)); - if (e.c) { - continue; - } - if (e.b.c.length == 0) { - Zfb(); - v$c(k, e); - --f; - l = true; - continue; - } - if (!e.k) { - !!h && a$c(h); - h = new b$c(!h ? 0 : h.e + h.d + d, k.f, d); - OZc(e, h.e + h.d, k.f); - Ekb(k.d, h); - WZc(h, e); - e.k = true; - } - i10 = null; - i10 = (n = null, f < k.a.c.length - 1 ? n = BD(Ikb(k.a, f + 1), 187) : j < b.c.length && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length != 0 && (n = BD(Ikb((tCb(j, b.c.length), BD(b.c[j], 200)).a, 0), 187)), n); - m = false; - !!i10 && (m = !pb(i10.j, k)); - if (i10) { - if (i10.b.c.length == 0) { - v$c(k, i10); - break; - } else { - KZc(e, c - e.s); - a$c(e.q); - l = l | sZc(k, e, i10, c, d); - } - if (i10.b.c.length == 0) { - v$c((tCb(j, b.c.length), BD(b.c[j], 200)), i10); - i10 = null; - while (b.c.length > j && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length == 0) { - Lkb(b, (tCb(j, b.c.length), b.c[j])); - } - } - if (!i10) { - --f; - continue; - } - if (uZc(b, k, e, i10, m, c, j, d)) { - l = true; - continue; - } - if (m) { - if (vZc(b, k, e, i10, c, j, d)) { - l = true; - continue; - } else if (wZc(k, e)) { - e.c = true; - l = true; - continue; - } - } else if (wZc(k, e)) { - e.c = true; - l = true; - continue; - } - if (l) { - continue; - } - } - if (wZc(k, e)) { - e.c = true; - l = true; - !!i10 && (i10.k = false); - continue; - } else { - a$c(e.q); - } - } - return l; - } - function fed(a, b, c, d, e, f, g10) { - var h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I; - p = 0; - D = 0; - for (j = new olb(a.b); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 157); - !!i10.c && zfd(i10.c); - p = $wnd.Math.max(p, red(i10)); - D += red(i10) * qed(i10); - } - q = D / a.b.c.length; - C = _dd(a.b, q); - D += a.b.c.length * C; - p = $wnd.Math.max(p, $wnd.Math.sqrt(D * g10)) + c.b; - H = c.b; - I = c.d; - n = 0; - l = c.b + c.c; - B = new Psb(); - Dsb(B, meb(0)); - w = new Psb(); - k = new Bib(a.b, 0); - o10 = null; - h = new Rkb(); - while (k.b < k.d.gc()) { - i10 = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157)); - G = red(i10); - m = qed(i10); - if (H + G > p) { - if (f) { - Fsb(w, n); - Fsb(B, meb(k.b - 1)); - Ekb(a.d, o10); - h.c = KC(SI, Uhe, 1, 0, 5, 1); - } - H = c.b; - I += n + b; - n = 0; - l = $wnd.Math.max(l, c.b + c.c + G); - } - h.c[h.c.length] = i10; - ued(i10, H, I); - l = $wnd.Math.max(l, H + G + c.c); - n = $wnd.Math.max(n, m); - H += G + b; - o10 = i10; - } - Gkb(a.a, h); - Ekb(a.d, BD(Ikb(h, h.c.length - 1), 157)); - l = $wnd.Math.max(l, d); - F = I + n + c.a; - if (F < e) { - n += e - F; - F = e; - } - if (f) { - H = c.b; - k = new Bib(a.b, 0); - Fsb(B, meb(a.b.c.length)); - A = Jsb(B, 0); - s = BD(Xsb(A), 19).a; - Fsb(w, n); - v = Jsb(w, 0); - u = 0; - while (k.b < k.d.gc()) { - if (k.b == s) { - H = c.b; - u = Edb(ED(Xsb(v))); - s = BD(Xsb(A), 19).a; - } - i10 = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157)); - sed(i10, u); - if (k.b == s) { - r = l - H - c.c; - t = red(i10); - ted(i10, r); - ved(i10, (r - t) / 2, 0); - } - H += red(i10) + b; - } - } - return new f7c(l, F); - } - function pde(a) { - var b, c, d, e, f; - b = a.c; - f = null; - switch (b) { - case 6: - return a.Vl(); - case 13: - return a.Wl(); - case 23: - return a.Nl(); - case 22: - return a.Sl(); - case 18: - return a.Pl(); - case 8: - nde(a); - f = (wfe(), efe); - break; - case 9: - return a.vl(true); - case 19: - return a.wl(); - case 10: - switch (a.a) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - f = a.ul(a.a); - nde(a); - return f; - case 101: - case 102: - case 110: - case 114: - case 116: - case 117: - case 118: - case 120: - { - c = a.tl(); - c < Tje ? f = (wfe(), wfe(), ++vfe, new ige(0, c)) : f = Ffe(Tee(c)); - } - break; - case 99: - return a.Fl(); - case 67: - return a.Al(); - case 105: - return a.Il(); - case 73: - return a.Bl(); - case 103: - return a.Gl(); - case 88: - return a.Cl(); - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - return a.xl(); - case 80: - case 112: - f = tde(a, a.a); - if (!f) - throw vbb(new mde(tvd((h0d(), Iue)))); - break; - default: - f = zfe(a.a); - } - nde(a); - break; - case 0: - if (a.a == 93 || a.a == 123 || a.a == 125) - throw vbb(new mde(tvd((h0d(), Hue)))); - f = zfe(a.a); - d = a.a; - nde(a); - if ((d & 64512) == Uje && a.c == 0 && (a.a & 64512) == 56320) { - e = KC(TD, $ie, 25, 2, 15, 1); - e[0] = d & aje; - e[1] = a.a & aje; - f = Efe(Ffe(zfb(e, 0, e.length)), 0); - nde(a); - } - break; - default: - throw vbb(new mde(tvd((h0d(), Hue)))); - } - return f; - } - function e7b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - d = new Rkb(); - e = Ohe; - f = Ohe; - g10 = Ohe; - if (c) { - e = a.f.a; - for (p = new olb(b.j); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 11); - for (i10 = new olb(o10.g); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 17); - if (h.a.b != 0) { - k = BD(Hsb(h.a), 8); - if (k.a < e) { - f = e - k.a; - g10 = Ohe; - d.c = KC(SI, Uhe, 1, 0, 5, 1); - e = k.a; - } - if (k.a <= e) { - d.c[d.c.length] = h; - h.a.b > 1 && (g10 = $wnd.Math.min(g10, $wnd.Math.abs(BD(Ut(h.a, 1), 8).b - k.b))); - } - } - } - } - } else { - for (p = new olb(b.j); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 11); - for (i10 = new olb(o10.e); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 17); - if (h.a.b != 0) { - m = BD(Isb(h.a), 8); - if (m.a > e) { - f = m.a - e; - g10 = Ohe; - d.c = KC(SI, Uhe, 1, 0, 5, 1); - e = m.a; - } - if (m.a >= e) { - d.c[d.c.length] = h; - h.a.b > 1 && (g10 = $wnd.Math.min(g10, $wnd.Math.abs(BD(Ut(h.a, h.a.b - 2), 8).b - m.b))); - } - } - } - } - } - if (d.c.length != 0 && f > b.o.a / 2 && g10 > b.o.b / 2) { - n = new H0b(); - F0b(n, b); - G0b(n, (Ucd(), Acd)); - n.n.a = b.o.a / 2; - r = new H0b(); - F0b(r, b); - G0b(r, Rcd); - r.n.a = b.o.a / 2; - r.n.b = b.o.b; - for (i10 = new olb(d); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 17); - if (c) { - j = BD(Lsb(h.a), 8); - q = h.a.b == 0 ? A0b(h.d) : BD(Hsb(h.a), 8); - q.b >= j.b ? QZb(h, r) : QZb(h, n); - } else { - j = BD(Msb(h.a), 8); - q = h.a.b == 0 ? A0b(h.c) : BD(Isb(h.a), 8); - q.b >= j.b ? RZb(h, r) : RZb(h, n); - } - l = BD(vNb(h, (Nyc(), jxc)), 74); - !!l && ze(l, j, true); - } - b.n.a = e - b.o.a / 2; - } - } - function erd(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K; - D = null; - G = b; - F = Rqd(a, dtd(c), G); - Lkd(F, _pd(G, Vte)); - H = BD(oo(a.g, Vpd(aC(G, Cte))), 33); - m = aC(G, "sourcePort"); - d = null; - !!m && (d = Vpd(m)); - I = BD(oo(a.j, d), 118); - if (!H) { - h = Wpd(G); - o10 = "An edge must have a source node (edge id: '" + h; - p = o10 + $te; - throw vbb(new cqd(p)); - } - if (!!I && !Hb(mpd(I), H)) { - i10 = _pd(G, Vte); - q = "The source port of an edge must be a port of the edge's source node (edge id: '" + i10; - r = q + $te; - throw vbb(new cqd(r)); - } - B = (!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b); - f = null; - I ? f = I : f = H; - wtd(B, f); - J = BD(oo(a.g, Vpd(aC(G, bue))), 33); - n = aC(G, "targetPort"); - e = null; - !!n && (e = Vpd(n)); - K = BD(oo(a.j, e), 118); - if (!J) { - l = Wpd(G); - s = "An edge must have a target node (edge id: '" + l; - t = s + $te; - throw vbb(new cqd(t)); - } - if (!!K && !Hb(mpd(K), J)) { - j = _pd(G, Vte); - u = "The target port of an edge must be a port of the edge's target node (edge id: '" + j; - v = u + $te; - throw vbb(new cqd(v)); - } - C = (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c); - g10 = null; - K ? g10 = K : g10 = J; - wtd(C, g10); - if ((!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b).i == 0 || (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c).i == 0) { - k = _pd(G, Vte); - w = Zte + k; - A = w + $te; - throw vbb(new cqd(A)); - } - grd(G, F); - frd(G, F); - D = crd(a, G, F); - return D; - } - function DXb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - l = FXb(zXb(a, (Ucd(), Fcd)), b); - o10 = EXb(zXb(a, Gcd), b); - u = EXb(zXb(a, Ocd), b); - B = GXb(zXb(a, Qcd), b); - m = GXb(zXb(a, Bcd), b); - s = EXb(zXb(a, Ncd), b); - p = EXb(zXb(a, Hcd), b); - w = EXb(zXb(a, Pcd), b); - v = EXb(zXb(a, Ccd), b); - C = GXb(zXb(a, Ecd), b); - r = EXb(zXb(a, Lcd), b); - t = EXb(zXb(a, Kcd), b); - A = EXb(zXb(a, Dcd), b); - D = GXb(zXb(a, Mcd), b); - n = GXb(zXb(a, Icd), b); - q = EXb(zXb(a, Jcd), b); - c = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.a, B.a, w.a, D.a])); - d = w6c(OC(GC(UD, 1), Vje, 25, 15, [o10.a, l.a, u.a, q.a])); - e = r.a; - f = w6c(OC(GC(UD, 1), Vje, 25, 15, [p.a, m.a, v.a, n.a])); - j = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.b, o10.b, p.b, t.b])); - i10 = w6c(OC(GC(UD, 1), Vje, 25, 15, [B.b, l.b, m.b, q.b])); - k = C.b; - h = w6c(OC(GC(UD, 1), Vje, 25, 15, [w.b, u.b, v.b, A.b])); - vXb(zXb(a, Fcd), c + e, j + k); - vXb(zXb(a, Jcd), c + e, j + k); - vXb(zXb(a, Gcd), c + e, 0); - vXb(zXb(a, Ocd), c + e, j + k + i10); - vXb(zXb(a, Qcd), 0, j + k); - vXb(zXb(a, Bcd), c + e + d, j + k); - vXb(zXb(a, Hcd), c + e + d, 0); - vXb(zXb(a, Pcd), 0, j + k + i10); - vXb(zXb(a, Ccd), c + e + d, j + k + i10); - vXb(zXb(a, Ecd), 0, j); - vXb(zXb(a, Lcd), c, 0); - vXb(zXb(a, Dcd), 0, j + k + i10); - vXb(zXb(a, Icd), c + e + d, 0); - g10 = new d7c(); - g10.a = w6c(OC(GC(UD, 1), Vje, 25, 15, [c + d + e + f, C.a, t.a, A.a])); - g10.b = w6c(OC(GC(UD, 1), Vje, 25, 15, [j + i10 + k + h, r.b, D.b, n.b])); - return g10; - } - function Ngc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - p = new Rkb(); - for (m = new olb(a.d.b); m.a < m.c.c.length; ) { - l = BD(mlb(m), 29); - for (o10 = new olb(l.a); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 10); - e = BD(Ohb(a.f, n), 57); - for (i10 = new Sr(ur(U_b(n).a.Kc(), new Sq())); Qr(i10); ) { - g10 = BD(Rr(i10), 17); - d = Jsb(g10.a, 0); - j = true; - k = null; - if (d.b != d.d.c) { - b = BD(Xsb(d), 8); - c = null; - if (g10.c.j == (Ucd(), Acd)) { - q = new hic(b, new f7c(b.a, e.d.d), e, g10); - q.f.a = true; - q.a = g10.c; - p.c[p.c.length] = q; - } - if (g10.c.j == Rcd) { - q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g10); - q.f.d = true; - q.a = g10.c; - p.c[p.c.length] = q; - } - while (d.b != d.d.c) { - c = BD(Xsb(d), 8); - if (!ADb(b.b, c.b)) { - k = new hic(b, c, null, g10); - p.c[p.c.length] = k; - if (j) { - j = false; - if (c.b < e.d.d) { - k.f.a = true; - } else if (c.b > e.d.d + e.d.a) { - k.f.d = true; - } else { - k.f.d = true; - k.f.a = true; - } - } - } - d.b != d.d.c && (b = c); - } - if (k) { - f = BD(Ohb(a.f, g10.d.i), 57); - if (b.b < f.d.d) { - k.f.a = true; - } else if (b.b > f.d.d + f.d.a) { - k.f.d = true; - } else { - k.f.d = true; - k.f.a = true; - } - } - } - } - for (h = new Sr(ur(R_b(n).a.Kc(), new Sq())); Qr(h); ) { - g10 = BD(Rr(h), 17); - if (g10.a.b != 0) { - b = BD(Isb(g10.a), 8); - if (g10.d.j == (Ucd(), Acd)) { - q = new hic(b, new f7c(b.a, e.d.d), e, g10); - q.f.a = true; - q.a = g10.d; - p.c[p.c.length] = q; - } - if (g10.d.j == Rcd) { - q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g10); - q.f.d = true; - q.a = g10.d; - p.c[p.c.length] = q; - } - } - } - } - } - return p; - } - function WJc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - Odd(c, "Network simplex node placement", 1); - a.e = b; - a.n = BD(vNb(b, (wtc(), otc)), 304); - VJc(a); - HJc(a); - MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new KKc()), new MKc(a)); - MAb(JAb(LAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new zLc()), new BLc()), new DLc()), new FLc()), new IKc(a)); - if (Ccb(DD(vNb(a.e, (Nyc(), Axc))))) { - g10 = Udd(c, 1); - Odd(g10, "Straight Edges Pre-Processing", 1); - UJc(a); - Qdd(g10); - } - JFb(a.f); - f = BD(vNb(b, Ayc), 19).a * a.f.a.c.length; - uGb(HGb(IGb(LGb(a.f), f), false), Udd(c, 1)); - if (a.d.a.gc() != 0) { - g10 = Udd(c, 1); - Odd(g10, "Flexible Where Space Processing", 1); - h = BD(Btb(RAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new OKc()), new iKc())), 19).a; - i10 = BD(Btb(QAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new QKc()), new mKc())), 19).a; - j = i10 - h; - k = nGb(new pGb(), a.f); - l = nGb(new pGb(), a.f); - AFb(DFb(CFb(BFb(EFb(new FFb(), 2e4), j), k), l)); - MAb(JAb(JAb(Plb(a.i), new SKc()), new UKc()), new WKc(h, k, j, l)); - for (e = a.d.a.ec().Kc(); e.Ob(); ) { - d = BD(e.Pb(), 213); - d.g = 1; - } - uGb(HGb(IGb(LGb(a.f), f), false), Udd(g10, 1)); - Qdd(g10); - } - if (Ccb(DD(vNb(b, Axc)))) { - g10 = Udd(c, 1); - Odd(g10, "Straight Edges Post-Processing", 1); - TJc(a); - Qdd(g10); - } - GJc(a); - a.e = null; - a.f = null; - a.i = null; - a.c = null; - Uhb(a.k); - a.j = null; - a.a = null; - a.o = null; - a.d.a.$b(); - Qdd(c); - } - function lMc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v; - for (h = new olb(a.a.b); h.a < h.c.c.length; ) { - f = BD(mlb(h), 29); - for (t = new olb(f.a); t.a < t.c.c.length; ) { - s = BD(mlb(t), 10); - b.g[s.p] = s; - b.a[s.p] = s; - b.d[s.p] = 0; - } - } - i10 = a.a.b; - b.c == (YLc(), WLc) && (i10 = JD(i10, 152) ? km(BD(i10, 152)) : JD(i10, 131) ? BD(i10, 131).a : JD(i10, 54) ? new ov(i10) : new dv(i10)); - for (g10 = i10.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 29); - n = -1; - m = f.a; - if (b.o == (eMc(), dMc)) { - n = Ohe; - m = JD(m, 152) ? km(BD(m, 152)) : JD(m, 131) ? BD(m, 131).a : JD(m, 54) ? new ov(m) : new dv(m); - } - for (v = m.Kc(); v.Ob(); ) { - u = BD(v.Pb(), 10); - l = null; - b.c == WLc ? l = BD(Ikb(a.b.f, u.p), 15) : l = BD(Ikb(a.b.b, u.p), 15); - if (l.gc() > 0) { - d = l.gc(); - j = QD($wnd.Math.floor((d + 1) / 2)) - 1; - e = QD($wnd.Math.ceil((d + 1) / 2)) - 1; - if (b.o == dMc) { - for (k = e; k >= j; k--) { - if (b.a[u.p] == u) { - p = BD(l.Xb(k), 46); - o10 = BD(p.a, 10); - if (!Rqb(c, p.b) && n > a.b.e[o10.p]) { - b.a[o10.p] = u; - b.g[u.p] = b.g[o10.p]; - b.a[u.p] = b.g[u.p]; - b.f[b.g[u.p].p] = (Bcb(), Ccb(b.f[b.g[u.p].p]) & u.k == (j0b(), g0b) ? true : false); - n = a.b.e[o10.p]; - } - } - } - } else { - for (k = j; k <= e; k++) { - if (b.a[u.p] == u) { - r = BD(l.Xb(k), 46); - q = BD(r.a, 10); - if (!Rqb(c, r.b) && n < a.b.e[q.p]) { - b.a[q.p] = u; - b.g[u.p] = b.g[q.p]; - b.a[u.p] = b.g[u.p]; - b.f[b.g[u.p].p] = (Bcb(), Ccb(b.f[b.g[u.p].p]) & u.k == (j0b(), g0b) ? true : false); - n = a.b.e[q.p]; - } - } - } - } - } - } - } - } - function Thd() { - Thd = ccb; - Hhd(); - Shd = Ghd.a; - BD(qud(ZKd(Ghd.a), 0), 18); - Mhd = Ghd.f; - BD(qud(ZKd(Ghd.f), 0), 18); - BD(qud(ZKd(Ghd.f), 1), 34); - Rhd = Ghd.n; - BD(qud(ZKd(Ghd.n), 0), 34); - BD(qud(ZKd(Ghd.n), 1), 34); - BD(qud(ZKd(Ghd.n), 2), 34); - BD(qud(ZKd(Ghd.n), 3), 34); - Nhd = Ghd.g; - BD(qud(ZKd(Ghd.g), 0), 18); - BD(qud(ZKd(Ghd.g), 1), 34); - Jhd = Ghd.c; - BD(qud(ZKd(Ghd.c), 0), 18); - BD(qud(ZKd(Ghd.c), 1), 18); - Ohd = Ghd.i; - BD(qud(ZKd(Ghd.i), 0), 18); - BD(qud(ZKd(Ghd.i), 1), 18); - BD(qud(ZKd(Ghd.i), 2), 18); - BD(qud(ZKd(Ghd.i), 3), 18); - BD(qud(ZKd(Ghd.i), 4), 34); - Phd = Ghd.j; - BD(qud(ZKd(Ghd.j), 0), 18); - Khd = Ghd.d; - BD(qud(ZKd(Ghd.d), 0), 18); - BD(qud(ZKd(Ghd.d), 1), 18); - BD(qud(ZKd(Ghd.d), 2), 18); - BD(qud(ZKd(Ghd.d), 3), 18); - BD(qud(ZKd(Ghd.d), 4), 34); - BD(qud(ZKd(Ghd.d), 5), 34); - BD(qud(ZKd(Ghd.d), 6), 34); - BD(qud(ZKd(Ghd.d), 7), 34); - Ihd = Ghd.b; - BD(qud(ZKd(Ghd.b), 0), 34); - BD(qud(ZKd(Ghd.b), 1), 34); - Lhd = Ghd.e; - BD(qud(ZKd(Ghd.e), 0), 34); - BD(qud(ZKd(Ghd.e), 1), 34); - BD(qud(ZKd(Ghd.e), 2), 34); - BD(qud(ZKd(Ghd.e), 3), 34); - BD(qud(ZKd(Ghd.e), 4), 18); - BD(qud(ZKd(Ghd.e), 5), 18); - BD(qud(ZKd(Ghd.e), 6), 18); - BD(qud(ZKd(Ghd.e), 7), 18); - BD(qud(ZKd(Ghd.e), 8), 18); - BD(qud(ZKd(Ghd.e), 9), 18); - BD(qud(ZKd(Ghd.e), 10), 34); - Qhd = Ghd.k; - BD(qud(ZKd(Ghd.k), 0), 34); - BD(qud(ZKd(Ghd.k), 1), 34); - } - function wQc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F; - C = new Psb(); - w = new Psb(); - q = -1; - for (i10 = new olb(a); i10.a < i10.c.c.length; ) { - g10 = BD(mlb(i10), 128); - g10.s = q--; - k = 0; - t = 0; - for (f = new olb(g10.t); f.a < f.c.c.length; ) { - d = BD(mlb(f), 268); - t += d.c; - } - for (e = new olb(g10.i); e.a < e.c.c.length; ) { - d = BD(mlb(e), 268); - k += d.c; - } - g10.n = k; - g10.u = t; - t == 0 ? (Gsb(w, g10, w.c.b, w.c), true) : k == 0 && (Gsb(C, g10, C.c.b, C.c), true); - } - F = Gx(a); - l = a.c.length; - p = l + 1; - r = l - 1; - n = new Rkb(); - while (F.a.gc() != 0) { - while (w.b != 0) { - v = (sCb(w.b != 0), BD(Nsb(w, w.a.a), 128)); - F.a.Bc(v) != null; - v.s = r--; - AQc(v, C, w); - } - while (C.b != 0) { - A = (sCb(C.b != 0), BD(Nsb(C, C.a.a), 128)); - F.a.Bc(A) != null; - A.s = p++; - AQc(A, C, w); - } - o10 = Rie; - for (j = F.a.ec().Kc(); j.Ob(); ) { - g10 = BD(j.Pb(), 128); - s = g10.u - g10.n; - if (s >= o10) { - if (s > o10) { - n.c = KC(SI, Uhe, 1, 0, 5, 1); - o10 = s; - } - n.c[n.c.length] = g10; - } - } - if (n.c.length != 0) { - m = BD(Ikb(n, Bub(b, n.c.length)), 128); - F.a.Bc(m) != null; - m.s = p++; - AQc(m, C, w); - n.c = KC(SI, Uhe, 1, 0, 5, 1); - } - } - u = a.c.length + 1; - for (h = new olb(a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 128); - g10.s < l && (g10.s += u); - } - for (B = new olb(a); B.a < B.c.c.length; ) { - A = BD(mlb(B), 128); - c = new Bib(A.t, 0); - while (c.b < c.d.gc()) { - d = (sCb(c.b < c.d.gc()), BD(c.d.Xb(c.c = c.b++), 268)); - D = d.b; - if (A.s > D.s) { - uib(c); - Lkb(D.i, d); - if (d.c > 0) { - d.a = D; - Ekb(D.t, d); - d.b = A; - Ekb(A.i, d); - } - } - } - } - } - function qde(a) { - var b, c, d, e, f; - b = a.c; - switch (b) { - case 11: - return a.Ml(); - case 12: - return a.Ol(); - case 14: - return a.Ql(); - case 15: - return a.Tl(); - case 16: - return a.Rl(); - case 17: - return a.Ul(); - case 21: - nde(a); - return wfe(), wfe(), ffe; - case 10: - switch (a.a) { - case 65: - return a.yl(); - case 90: - return a.Dl(); - case 122: - return a.Kl(); - case 98: - return a.El(); - case 66: - return a.zl(); - case 60: - return a.Jl(); - case 62: - return a.Hl(); - } - } - f = pde(a); - b = a.c; - switch (b) { - case 3: - return a.Zl(f); - case 4: - return a.Xl(f); - case 5: - return a.Yl(f); - case 0: - if (a.a == 123 && a.d < a.j) { - e = a.d; - d = 0; - c = -1; - if ((b = bfb(a.i, e++)) >= 48 && b <= 57) { - d = b - 48; - while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) { - d = d * 10 + b - 48; - if (d < 0) - throw vbb(new mde(tvd((h0d(), bve)))); - } - } else { - throw vbb(new mde(tvd((h0d(), Zue)))); - } - c = d; - if (b == 44) { - if (e >= a.j) { - throw vbb(new mde(tvd((h0d(), _ue)))); - } else if ((b = bfb(a.i, e++)) >= 48 && b <= 57) { - c = b - 48; - while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) { - c = c * 10 + b - 48; - if (c < 0) - throw vbb(new mde(tvd((h0d(), bve)))); - } - if (d > c) - throw vbb(new mde(tvd((h0d(), ave)))); - } else { - c = -1; - } - } - if (b != 125) - throw vbb(new mde(tvd((h0d(), $ue)))); - if (a.sl(e)) { - f = (wfe(), wfe(), ++vfe, new lge(9, f)); - a.d = e + 1; - } else { - f = (wfe(), wfe(), ++vfe, new lge(3, f)); - a.d = e; - } - f.dm(d); - f.cm(c); - nde(a); - } - } - return f; - } - function $bc(a, b, c, d, e) { - var f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F; - p = new Skb(b.b); - u = new Skb(b.b); - m = new Skb(b.b); - B = new Skb(b.b); - q = new Skb(b.b); - for (A = Jsb(b, 0); A.b != A.d.c; ) { - v = BD(Xsb(A), 11); - for (h = new olb(v.g); h.a < h.c.c.length; ) { - f = BD(mlb(h), 17); - if (f.c.i == f.d.i) { - if (v.j == f.d.j) { - B.c[B.c.length] = f; - continue; - } else if (v.j == (Ucd(), Acd) && f.d.j == Rcd) { - q.c[q.c.length] = f; - continue; - } - } - } - } - for (i10 = new olb(q); i10.a < i10.c.c.length; ) { - f = BD(mlb(i10), 17); - _bc(a, f, c, d, (Ucd(), zcd)); - } - for (g10 = new olb(B); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 17); - C = new b0b(a); - __b(C, (j0b(), i0b)); - yNb(C, (Nyc(), Vxc), (dcd(), $bd)); - yNb(C, (wtc(), $sc), f); - D = new H0b(); - yNb(D, $sc, f.d); - G0b(D, (Ucd(), Tcd)); - F0b(D, C); - F = new H0b(); - yNb(F, $sc, f.c); - G0b(F, zcd); - F0b(F, C); - yNb(f.c, gtc, C); - yNb(f.d, gtc, C); - QZb(f, null); - RZb(f, null); - c.c[c.c.length] = C; - yNb(C, ysc, meb(2)); - } - for (w = Jsb(b, 0); w.b != w.d.c; ) { - v = BD(Xsb(w), 11); - j = v.e.c.length > 0; - r = v.g.c.length > 0; - j && r ? (m.c[m.c.length] = v, true) : j ? (p.c[p.c.length] = v, true) : r && (u.c[u.c.length] = v, true); - } - for (o10 = new olb(p); o10.a < o10.c.c.length; ) { - n = BD(mlb(o10), 11); - Ekb(e, Zbc(a, n, null, c)); - } - for (t = new olb(u); t.a < t.c.c.length; ) { - s = BD(mlb(t), 11); - Ekb(e, Zbc(a, null, s, c)); - } - for (l = new olb(m); l.a < l.c.c.length; ) { - k = BD(mlb(l), 11); - Ekb(e, Zbc(a, k, k, c)); - } - } - function NCb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D; - s = new f7c(Pje, Pje); - b = new f7c(Qje, Qje); - for (B = new olb(a); B.a < B.c.c.length; ) { - A = BD(mlb(B), 8); - s.a = $wnd.Math.min(s.a, A.a); - s.b = $wnd.Math.min(s.b, A.b); - b.a = $wnd.Math.max(b.a, A.a); - b.b = $wnd.Math.max(b.b, A.b); - } - m = new f7c(b.a - s.a, b.b - s.b); - j = new f7c(s.a - 50, s.b - m.a - 50); - k = new f7c(s.a - 50, b.b + m.a + 50); - l = new f7c(b.a + m.b / 2 + 50, s.b + m.b / 2); - n = new eDb(j, k, l); - w = new Tqb(); - f = new Rkb(); - c = new Rkb(); - w.a.zc(n, w); - for (D = new olb(a); D.a < D.c.c.length; ) { - C = BD(mlb(D), 8); - f.c = KC(SI, Uhe, 1, 0, 5, 1); - for (v = w.a.ec().Kc(); v.Ob(); ) { - t = BD(v.Pb(), 308); - d = t.d; - S6c(d, t.a); - Jy(S6c(t.d, C), S6c(t.d, t.a)) < 0 && (f.c[f.c.length] = t, true); - } - c.c = KC(SI, Uhe, 1, 0, 5, 1); - for (u = new olb(f); u.a < u.c.c.length; ) { - t = BD(mlb(u), 308); - for (q = new olb(t.e); q.a < q.c.c.length; ) { - o10 = BD(mlb(q), 168); - g10 = true; - for (i10 = new olb(f); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 308); - h != t && (wtb(o10, Ikb(h.e, 0)) || wtb(o10, Ikb(h.e, 1)) || wtb(o10, Ikb(h.e, 2))) && (g10 = false); - } - g10 && (c.c[c.c.length] = o10, true); - } - } - Ve(w, f); - reb(w, new OCb()); - for (p = new olb(c); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 168); - Qqb(w, new eDb(C, o10.a, o10.b)); - } - } - r = new Tqb(); - reb(w, new QCb(r)); - e = r.a.ec().Kc(); - while (e.Ob()) { - o10 = BD(e.Pb(), 168); - (dDb(n, o10.a) || dDb(n, o10.b)) && e.Qb(); - } - reb(r, new SCb()); - return r; - } - function _Tb(a) { - var b, c, d, e, f; - c = BD(vNb(a, (wtc(), Ksc)), 21); - b = k3c(WTb); - e = BD(vNb(a, (Nyc(), axc)), 334); - e == (hbd(), ebd) && d3c(b, XTb); - Ccb(DD(vNb(a, $wc))) ? e3c(b, (qUb(), lUb), (S8b(), I8b)) : e3c(b, (qUb(), nUb), (S8b(), I8b)); - vNb(a, (g6c(), f6c)) != null && d3c(b, YTb); - (Ccb(DD(vNb(a, hxc))) || Ccb(DD(vNb(a, _wc)))) && c3c(b, (qUb(), pUb), (S8b(), W7b)); - switch (BD(vNb(a, Lwc), 103).g) { - case 2: - case 3: - case 4: - c3c(e3c(b, (qUb(), lUb), (S8b(), Y7b)), pUb, X7b); - } - c.Hc((Orc(), Frc)) && c3c(e3c(e3c(b, (qUb(), lUb), (S8b(), V7b)), oUb, T7b), pUb, U7b); - PD(vNb(a, rxc)) !== PD((kAc(), iAc)) && e3c(b, (qUb(), nUb), (S8b(), A8b)); - if (c.Hc(Mrc)) { - e3c(b, (qUb(), lUb), (S8b(), G8b)); - e3c(b, mUb, E8b); - e3c(b, nUb, F8b); - } - PD(vNb(a, swc)) !== PD((yrc(), wrc)) && PD(vNb(a, Swc)) !== PD((Aad(), xad)) && c3c(b, (qUb(), pUb), (S8b(), j8b)); - Ccb(DD(vNb(a, cxc))) && e3c(b, (qUb(), nUb), (S8b(), i8b)); - Ccb(DD(vNb(a, Hwc))) && e3c(b, (qUb(), nUb), (S8b(), O8b)); - if (cUb(a)) { - PD(vNb(a, axc)) === PD(ebd) ? d = BD(vNb(a, Cwc), 292) : d = BD(vNb(a, Dwc), 292); - f = d == (Xrc(), Vrc) ? (S8b(), D8b) : (S8b(), R8b); - e3c(b, (qUb(), oUb), f); - } - switch (BD(vNb(a, Kyc), 377).g) { - case 1: - e3c(b, (qUb(), oUb), (S8b(), P8b)); - break; - case 2: - c3c(e3c(e3c(b, (qUb(), nUb), (S8b(), P7b)), oUb, Q7b), pUb, R7b); - } - PD(vNb(a, ywc)) !== PD((tAc(), rAc)) && e3c(b, (qUb(), nUb), (S8b(), Q8b)); - return b; - } - function mZc(a) { - r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Kre), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new pZc()))); - p4c(a, Kre, _le, 1.3); - p4c(a, Kre, Jre, Ksd(VYc)); - p4c(a, Kre, ame, gZc); - p4c(a, Kre, wme, 15); - p4c(a, Kre, lqe, Ksd(SYc)); - p4c(a, Kre, Fme, Ksd(_Yc)); - p4c(a, Kre, Tme, Ksd(aZc)); - p4c(a, Kre, Eme, Ksd(bZc)); - p4c(a, Kre, Gme, Ksd($Yc)); - p4c(a, Kre, Dme, Ksd(cZc)); - p4c(a, Kre, Hme, Ksd(hZc)); - p4c(a, Kre, Bre, Ksd(eZc)); - p4c(a, Kre, Cre, Ksd(ZYc)); - p4c(a, Kre, Fre, Ksd(dZc)); - p4c(a, Kre, Gre, Ksd(iZc)); - p4c(a, Kre, Hre, Ksd(WYc)); - p4c(a, Kre, Ame, Ksd(XYc)); - p4c(a, Kre, xqe, Ksd(YYc)); - p4c(a, Kre, Ere, Ksd(UYc)); - p4c(a, Kre, Dre, Ksd(TYc)); - p4c(a, Kre, Ire, Ksd(kZc)); - } - function Wmd(b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - if (d == null) { - return null; - } - if (b.a != c.Aj()) { - throw vbb(new Wdb(tte + c.ne() + ute)); - } - if (JD(c, 457)) { - r = _Pd(BD(c, 671), d); - if (!r) { - throw vbb(new Wdb(vte + d + "' is not a valid enumerator of '" + c.ne() + "'")); - } - return r; - } - switch (o1d((O6d(), M6d), c).cl()) { - case 2: { - d = Qge(d, false); - break; - } - case 3: { - d = Qge(d, true); - break; - } - } - e = o1d(M6d, c).$k(); - if (e) { - return e.Aj().Nh().Kh(e, d); - } - n = o1d(M6d, c).al(); - if (n) { - r = new Rkb(); - for (k = Zmd(d), l = 0, m = k.length; l < m; ++l) { - j = k[l]; - Ekb(r, n.Aj().Nh().Kh(n, j)); - } - return r; - } - q = o1d(M6d, c).bl(); - if (!q.dc()) { - for (p = q.Kc(); p.Ob(); ) { - o10 = BD(p.Pb(), 148); - try { - r = o10.Aj().Nh().Kh(o10, d); - if (r != null) { - return r; - } - } catch (a) { - a = ubb(a); - if (!JD(a, 60)) - throw vbb(a); - } - } - throw vbb(new Wdb(vte + d + "' does not match any member types of the union datatype '" + c.ne() + "'")); - } - BD(c, 834).Fj(); - f = r6d(c.Bj()); - if (!f) - return null; - if (f == yI) { - h = 0; - try { - h = Icb(d, Rie, Ohe) & aje; - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - g10 = rfb(d); - h = g10[0]; - } else - throw vbb(a); - } - return bdb(h); - } - if (f == $J) { - for (i10 = 0; i10 < Pmd.length; ++i10) { - try { - return DQd(Pmd[i10], d); - } catch (a) { - a = ubb(a); - if (!JD(a, 32)) - throw vbb(a); - } - } - throw vbb(new Wdb(vte + d + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof")); - } - throw vbb(new Wdb(vte + d + "' is invalid. ")); - } - function ngb(a, b) { - var c, d, e, f, g10, h, i10, j; - c = 0; - g10 = 0; - f = b.length; - h = null; - j = new Vfb(); - if (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) == 43)) { - ++g10; - ++c; - if (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) == 43 || (BCb(g10, b.length), b.charCodeAt(g10) == 45))) { - throw vbb(new Oeb(Oje + b + '"')); - } - } - while (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) != 46) && (BCb(g10, b.length), b.charCodeAt(g10) != 101) && (BCb(g10, b.length), b.charCodeAt(g10) != 69)) { - ++g10; - } - j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c, g10); - if (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) == 46)) { - ++g10; - c = g10; - while (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) != 101) && (BCb(g10, b.length), b.charCodeAt(g10) != 69)) { - ++g10; - } - a.e = g10 - c; - j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c, g10); - } else { - a.e = 0; - } - if (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) == 101 || (BCb(g10, b.length), b.charCodeAt(g10) == 69))) { - ++g10; - c = g10; - if (g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) == 43)) { - ++g10; - g10 < f && (BCb(g10, b.length), b.charCodeAt(g10) != 45) && ++c; - } - h = b.substr(c, f - c); - a.e = a.e - Icb(h, Rie, Ohe); - if (a.e != QD(a.e)) { - throw vbb(new Oeb("Scale out of range.")); - } - } - i10 = j.a; - if (i10.length < 16) { - a.f = (kgb == null && (kgb = new RegExp("^[+-]?\\d*$", "i")), kgb.test(i10) ? parseInt(i10, 10) : NaN); - if (isNaN(a.f)) { - throw vbb(new Oeb(Oje + b + '"')); - } - a.a = ugb(a.f); - } else { - ogb(a, new Ygb(i10)); - } - a.d = j.a.length; - for (e = 0; e < j.a.length; ++e) { - d = bfb(j.a, e); - if (d != 45 && d != 48) { - break; - } - --a.d; - } - a.d == 0 && (a.d = 1); - } - function xXb() { - xXb = ccb; - wXb = new Hp(); - Rc(wXb, (Ucd(), Fcd), Jcd); - Rc(wXb, Qcd, Jcd); - Rc(wXb, Qcd, Mcd); - Rc(wXb, Bcd, Icd); - Rc(wXb, Bcd, Jcd); - Rc(wXb, Gcd, Jcd); - Rc(wXb, Gcd, Kcd); - Rc(wXb, Ocd, Dcd); - Rc(wXb, Ocd, Jcd); - Rc(wXb, Lcd, Ecd); - Rc(wXb, Lcd, Jcd); - Rc(wXb, Lcd, Kcd); - Rc(wXb, Lcd, Dcd); - Rc(wXb, Ecd, Lcd); - Rc(wXb, Ecd, Mcd); - Rc(wXb, Ecd, Icd); - Rc(wXb, Ecd, Jcd); - Rc(wXb, Ncd, Ncd); - Rc(wXb, Ncd, Kcd); - Rc(wXb, Ncd, Mcd); - Rc(wXb, Hcd, Hcd); - Rc(wXb, Hcd, Kcd); - Rc(wXb, Hcd, Icd); - Rc(wXb, Pcd, Pcd); - Rc(wXb, Pcd, Dcd); - Rc(wXb, Pcd, Mcd); - Rc(wXb, Ccd, Ccd); - Rc(wXb, Ccd, Dcd); - Rc(wXb, Ccd, Icd); - Rc(wXb, Kcd, Gcd); - Rc(wXb, Kcd, Lcd); - Rc(wXb, Kcd, Ncd); - Rc(wXb, Kcd, Hcd); - Rc(wXb, Kcd, Jcd); - Rc(wXb, Kcd, Kcd); - Rc(wXb, Kcd, Mcd); - Rc(wXb, Kcd, Icd); - Rc(wXb, Dcd, Ocd); - Rc(wXb, Dcd, Lcd); - Rc(wXb, Dcd, Pcd); - Rc(wXb, Dcd, Ccd); - Rc(wXb, Dcd, Dcd); - Rc(wXb, Dcd, Mcd); - Rc(wXb, Dcd, Icd); - Rc(wXb, Dcd, Jcd); - Rc(wXb, Mcd, Qcd); - Rc(wXb, Mcd, Ecd); - Rc(wXb, Mcd, Ncd); - Rc(wXb, Mcd, Pcd); - Rc(wXb, Mcd, Kcd); - Rc(wXb, Mcd, Dcd); - Rc(wXb, Mcd, Mcd); - Rc(wXb, Mcd, Jcd); - Rc(wXb, Icd, Bcd); - Rc(wXb, Icd, Ecd); - Rc(wXb, Icd, Hcd); - Rc(wXb, Icd, Ccd); - Rc(wXb, Icd, Kcd); - Rc(wXb, Icd, Dcd); - Rc(wXb, Icd, Icd); - Rc(wXb, Icd, Jcd); - Rc(wXb, Jcd, Fcd); - Rc(wXb, Jcd, Qcd); - Rc(wXb, Jcd, Bcd); - Rc(wXb, Jcd, Gcd); - Rc(wXb, Jcd, Ocd); - Rc(wXb, Jcd, Lcd); - Rc(wXb, Jcd, Ecd); - Rc(wXb, Jcd, Kcd); - Rc(wXb, Jcd, Dcd); - Rc(wXb, Jcd, Mcd); - Rc(wXb, Jcd, Icd); - Rc(wXb, Jcd, Jcd); - } - function YXb(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B; - a.d = new f7c(Pje, Pje); - a.c = new f7c(Qje, Qje); - for (m = b.Kc(); m.Ob(); ) { - k = BD(m.Pb(), 37); - for (t = new olb(k.a); t.a < t.c.c.length; ) { - s = BD(mlb(t), 10); - a.d.a = $wnd.Math.min(a.d.a, s.n.a - s.d.b); - a.d.b = $wnd.Math.min(a.d.b, s.n.b - s.d.d); - a.c.a = $wnd.Math.max(a.c.a, s.n.a + s.o.a + s.d.c); - a.c.b = $wnd.Math.max(a.c.b, s.n.b + s.o.b + s.d.a); - } - } - h = new nYb(); - for (l = b.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 37); - d = fYb(a, k); - Ekb(h.a, d); - d.a = d.a | !BD(vNb(d.c, (wtc(), Esc)), 21).dc(); - } - a.b = (LUb(), B = new VUb(), B.f = new CUb(c), B.b = BUb(B.f, h), B); - PUb((o10 = a.b, new Zdd(), o10)); - a.e = new d7c(); - a.a = a.b.f.e; - for (g10 = new olb(h.a); g10.a < g10.c.c.length; ) { - e = BD(mlb(g10), 841); - u = QUb(a.b, e); - g_b(e.c, u.a, u.b); - for (q = new olb(e.c.a); q.a < q.c.c.length; ) { - p = BD(mlb(q), 10); - if (p.k == (j0b(), e0b)) { - r = aYb(a, p.n, BD(vNb(p, (wtc(), Hsc)), 61)); - P6c(X6c(p.n), r); - } - } - } - for (f = new olb(h.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 841); - for (j = new olb(lYb(e)); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 17); - A = new t7c(i10.a); - St(A, 0, A0b(i10.c)); - Dsb(A, A0b(i10.d)); - n = null; - for (w = Jsb(A, 0); w.b != w.d.c; ) { - v = BD(Xsb(w), 8); - if (!n) { - n = v; - continue; - } - if (Ky(n.a, v.a)) { - a.e.a = $wnd.Math.min(a.e.a, n.a); - a.a.a = $wnd.Math.max(a.a.a, n.a); - } else if (Ky(n.b, v.b)) { - a.e.b = $wnd.Math.min(a.e.b, n.b); - a.a.b = $wnd.Math.max(a.a.b, n.b); - } - n = v; - } - } - } - V6c(a.e); - P6c(a.a, a.e); - } - function wZd(a) { - Bnd(a.b, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentTransient"])); - Bnd(a.a, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedSourceURI"])); - Bnd(a.o, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])); - Bnd(a.p, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedInstanceTypeName UniqueTypeParameterNames"])); - Bnd(a.v, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueEnumeratorNames UniqueEnumeratorLiterals"])); - Bnd(a.R, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedName"])); - Bnd(a.T, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])); - Bnd(a.U, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])); - Bnd(a.W, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])); - Bnd(a.bb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidDefaultValueLiteral"])); - Bnd(a.eb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])); - Bnd(a.H, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentType ConsistentBounds ConsistentArguments"])); - } - function B4b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C; - if (b.dc()) { - return; - } - e = new s7c(); - h = c ? c : BD(b.Xb(0), 17); - o10 = h.c; - hQc(); - m = o10.i.k; - if (!(m == (j0b(), h0b) || m == i0b || m == e0b || m == d0b)) { - throw vbb(new Wdb("The target node of the edge must be a normal node or a northSouthPort.")); - } - Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [o10.i.n, o10.n, o10.a]))); - if ((Ucd(), Lcd).Hc(o10.j)) { - q = Edb(ED(vNb(o10, (wtc(), qtc)))); - l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [o10.i.n, o10.n, o10.a])).a, q); - Gsb(e, l, e.c.b, e.c); - } - k = null; - d = false; - i10 = b.Kc(); - while (i10.Ob()) { - g10 = BD(i10.Pb(), 17); - f = g10.a; - if (f.b != 0) { - if (d) { - j = Y6c(P6c(k, (sCb(f.b != 0), BD(f.a.a.c, 8))), 0.5); - Gsb(e, j, e.c.b, e.c); - d = false; - } else { - d = true; - } - k = R6c((sCb(f.b != 0), BD(f.c.b.c, 8))); - ye(e, f); - Osb(f); - } - } - p = h.d; - if (Lcd.Hc(p.j)) { - q = Edb(ED(vNb(p, (wtc(), qtc)))); - l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])).a, q); - Gsb(e, l, e.c.b, e.c); - } - Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a]))); - a.d == (tBc(), qBc) && (r = (sCb(e.b != 0), BD(e.a.a.c, 8)), s = BD(Ut(e, 1), 8), t = new e7c(bRc(o10.j)), t.a *= 5, t.b *= 5, u = c7c(new f7c(s.a, s.b), r), v = new f7c(A4b(t.a, u.a), A4b(t.b, u.b)), P6c(v, r), w = Jsb(e, 1), Vsb(w, v), A = (sCb(e.b != 0), BD(e.c.b.c, 8)), B = BD(Ut(e, e.b - 2), 8), t = new e7c(bRc(p.j)), t.a *= 5, t.b *= 5, u = c7c(new f7c(B.a, B.b), A), C = new f7c(A4b(t.a, u.a), A4b(t.b, u.b)), P6c(C, A), St(e, e.b - 1, C), void 0); - n = new YPc(e); - ye(h.a, UPc(n)); - } - function Kgd(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P; - t = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82); - v = t.Dg(); - w = t.Eg(); - u = t.Cg() / 2; - p = t.Bg() / 2; - if (JD(t, 186)) { - s = BD(t, 118); - v += mpd(s).i; - v += mpd(s).i; - } - v += u; - w += p; - F = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82); - H = F.Dg(); - I = F.Eg(); - G = F.Cg() / 2; - A = F.Bg() / 2; - if (JD(F, 186)) { - D = BD(F, 118); - H += mpd(D).i; - H += mpd(D).i; - } - H += G; - I += A; - if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) { - h = (Fhd(), j = new rmd(), j); - wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), h); - } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) { - o10 = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a)); - while (o10.e != o10.i.gc()) { - Eyd(o10); - } - } - g10 = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202); - q = H; - H > v + u ? q = v + u : H < v - u && (q = v - u); - r = I; - I > w + p ? r = w + p : I < w - p && (r = w - p); - q > v - u && q < v + u && r > w - p && r < w + p && (q = v + u); - omd(g10, q); - pmd(g10, r); - B = v; - v > H + G ? B = H + G : v < H - G && (B = H - G); - C = w; - w > I + A ? C = I + A : w < I - A && (C = I - A); - B > H - G && B < H + G && C > I - A && C < I + A && (C = I + A); - hmd(g10, B); - imd(g10, C); - Uxd((!g10.a && (g10.a = new xMd(y2, g10, 5)), g10.a)); - f = Bub(b, 5); - t == F && ++f; - L = B - q; - O = C - r; - J = $wnd.Math.sqrt(L * L + O * O); - l = J * 0.20000000298023224; - M = L / (f + 1); - P = O / (f + 1); - K = q; - N = r; - for (k = 0; k < f; k++) { - K += M; - N += P; - m = K + Cub(b, 24) * lke * l - l / 2; - m < 0 ? m = 1 : m > c && (m = c - 1); - n = N + Cub(b, 24) * lke * l - l / 2; - n < 0 ? n = 1 : n > d && (n = d - 1); - e = (Fhd(), i10 = new xkd(), i10); - vkd(e, m); - wkd(e, n); - wtd((!g10.a && (g10.a = new xMd(y2, g10, 5)), g10.a), e); - } - } - function Nyc() { - Nyc = ccb; - iyc = (Y9c(), I9c); - jyc = J9c; - kyc = K9c; - lyc = L9c; - nyc = M9c; - oyc = N9c; - ryc = P9c; - tyc = R9c; - uyc = S9c; - syc = Q9c; - vyc = T9c; - xyc = U9c; - zyc = X9c; - qyc = O9c; - hyc = (jwc(), Bvc); - myc = Cvc; - pyc = Dvc; - wyc = Evc; - byc = new Osd(D9c, meb(0)); - cyc = yvc; - dyc = zvc; - eyc = Avc; - Kyc = awc; - Cyc = Hvc; - Dyc = Kvc; - Gyc = Svc; - Eyc = Nvc; - Fyc = Pvc; - Myc = fwc; - Lyc = cwc; - Iyc = Yvc; - Hyc = Wvc; - Jyc = $vc; - Cxc = pvc; - Dxc = qvc; - Xwc = Auc; - Ywc = Duc; - Lxc = new q0b(12); - Kxc = new Osd(f9c, Lxc); - Twc = (Aad(), wad); - Swc = new Osd(E8c, Twc); - Uxc = new Osd(s9c, 0); - fyc = new Osd(E9c, meb(1)); - owc = new Osd(r8c, tme); - Jxc = d9c; - Vxc = t9c; - $xc = A9c; - Kwc = y8c; - mwc = p8c; - axc = J8c; - gyc = new Osd(H9c, (Bcb(), true)); - fxc = M8c; - gxc = N8c; - Fxc = Y8c; - Ixc = b9c; - Gxc = $8c; - Nwc = (ead(), cad); - Lwc = new Osd(z8c, Nwc); - xxc = W8c; - wxc = U8c; - Yxc = x9c; - Xxc = w9c; - Zxc = z9c; - Oxc = (Tbd(), Sbd); - new Osd(l9c, Oxc); - Qxc = o9c; - Rxc = p9c; - Sxc = q9c; - Pxc = n9c; - Byc = Gvc; - sxc = avc; - rxc = $uc; - Ayc = Fvc; - mxc = Suc; - Jwc = muc; - Iwc = kuc; - Awc = Xtc; - Bwc = Ytc; - Dwc = buc; - Cwc = Ztc; - Hwc = iuc; - uxc = cvc; - vxc = dvc; - ixc = Luc; - Exc = uvc; - zxc = hvc; - $wc = Guc; - Bxc = nvc; - Vwc = wuc; - Wwc = yuc; - zwc = w8c; - yxc = evc; - swc = Mtc; - rwc = Ktc; - qwc = Jtc; - cxc = Juc; - bxc = Iuc; - dxc = Kuc; - Hxc = _8c; - jxc = Q8c; - Zwc = G8c; - Qwc = C8c; - Pwc = B8c; - Ewc = euc; - Wxc = v9c; - pwc = v8c; - exc = L8c; - Txc = r9c; - Mxc = h9c; - Nxc = j9c; - oxc = Vuc; - pxc = Xuc; - ayc = C9c; - nwc = Itc; - qxc = Zuc; - Rwc = suc; - Owc = quc; - txc = S8c; - kxc = Puc; - Axc = kvc; - yyc = V9c; - Mwc = ouc; - _xc = wvc; - Uwc = uuc; - lxc = Ruc; - Fwc = guc; - hxc = P8c; - nxc = Uuc; - Gwc = huc; - ywc = Vtc; - wwc = Stc; - uwc = Qtc; - vwc = Rtc; - xwc = Utc; - twc = Otc; - _wc = Huc; - } - function shb(a, b) { - phb(); - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H; - B = a.e; - o10 = a.d; - e = a.a; - if (B == 0) { - switch (b) { - case 0: - return "0"; - case 1: - return $je; - case 2: - return "0.00"; - case 3: - return "0.000"; - case 4: - return "0.0000"; - case 5: - return "0.00000"; - case 6: - return "0.000000"; - default: - w = new Ufb(); - b < 0 ? (w.a += "0E+", w) : (w.a += "0E", w); - w.a += -b; - return w.a; - } - } - t = o10 * 10 + 1 + 7; - u = KC(TD, $ie, 25, t + 1, 15, 1); - c = t; - if (o10 == 1) { - h = e[0]; - if (h < 0) { - H = xbb(h, Yje); - do { - p = H; - H = Abb(H, 10); - u[--c] = 48 + Tbb(Qbb(p, Ibb(H, 10))) & aje; - } while (ybb(H, 0) != 0); - } else { - H = h; - do { - p = H; - H = H / 10 | 0; - u[--c] = 48 + (p - H * 10) & aje; - } while (H != 0); - } - } else { - D = KC(WD, oje, 25, o10, 15, 1); - G = o10; - $fb(e, 0, D, 0, G); - I: - while (true) { - A = 0; - for (j = G - 1; j >= 0; j--) { - F = wbb(Nbb(A, 32), xbb(D[j], Yje)); - r = qhb(F); - D[j] = Tbb(r); - A = Tbb(Obb(r, 32)); - } - s = Tbb(A); - q = c; - do { - u[--c] = 48 + s % 10 & aje; - } while ((s = s / 10 | 0) != 0 && c != 0); - d = 9 - q + c; - for (i10 = 0; i10 < d && c > 0; i10++) { - u[--c] = 48; - } - l = G - 1; - for (; D[l] == 0; l--) { - if (l == 0) { - break I; - } - } - G = l + 1; - } - while (u[c] == 48) { - ++c; - } - } - n = B < 0; - g10 = t - c - b - 1; - if (b == 0) { - n && (u[--c] = 45); - return zfb(u, c, t - c); - } - if (b > 0 && g10 >= -6) { - if (g10 >= 0) { - k = c + g10; - for (m = t - 1; m >= k; m--) { - u[m + 1] = u[m]; - } - u[++k] = 46; - n && (u[--c] = 45); - return zfb(u, c, t - c + 1); - } - for (l = 2; l < -g10 + 1; l++) { - u[--c] = 48; - } - u[--c] = 46; - u[--c] = 48; - n && (u[--c] = 45); - return zfb(u, c, t - c); - } - C = c + 1; - f = t; - v = new Vfb(); - n && (v.a += "-", v); - if (f - C >= 1) { - Kfb(v, u[c]); - v.a += "."; - v.a += zfb(u, c + 1, t - c - 1); - } else { - v.a += zfb(u, c, t - c); - } - v.a += "E"; - g10 > 0 && (v.a += "+", v); - v.a += "" + g10; - return v.a; - } - function z$c(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - a.c = b; - a.g = new Lqb(); - c = (Pgd(), new bhd(a.c)); - d = new YGb(c); - UGb(d); - t = GD(hkd(a.c, (d0c(), Y_c))); - i10 = BD(hkd(a.c, $_c), 316); - v = BD(hkd(a.c, __c), 429); - g10 = BD(hkd(a.c, T_c), 482); - u = BD(hkd(a.c, Z_c), 430); - a.j = Edb(ED(hkd(a.c, a0c))); - h = a.a; - switch (i10.g) { - case 0: - h = a.a; - break; - case 1: - h = a.b; - break; - case 2: - h = a.i; - break; - case 3: - h = a.e; - break; - case 4: - h = a.f; - break; - default: - throw vbb(new Wdb(Mre + (i10.f != null ? i10.f : "" + i10.g))); - } - a.d = new g_c(h, v, g10); - yNb(a.d, (XNb(), VNb), DD(hkd(a.c, V_c))); - a.d.c = Ccb(DD(hkd(a.c, U_c))); - if (Vod(a.c).i == 0) { - return a.d; - } - for (l = new Fyd(Vod(a.c)); l.e != l.i.gc(); ) { - k = BD(Dyd(l), 33); - n = k.g / 2; - m = k.f / 2; - w = new f7c(k.i + n, k.j + m); - while (Mhb(a.g, w)) { - O6c(w, ($wnd.Math.random() - 0.5) * qme, ($wnd.Math.random() - 0.5) * qme); - } - p = BD(hkd(k, (Y9c(), S8c)), 142); - q = new aOb(w, new J6c(w.a - n - a.j / 2 - p.b, w.b - m - a.j / 2 - p.d, k.g + a.j + (p.b + p.c), k.f + a.j + (p.d + p.a))); - Ekb(a.d.i, q); - Rhb(a.g, w, new vgd(q, k)); - } - switch (u.g) { - case 0: - if (t == null) { - a.d.d = BD(Ikb(a.d.i, 0), 65); - } else { - for (s = new olb(a.d.i); s.a < s.c.c.length; ) { - q = BD(mlb(s), 65); - o10 = BD(BD(Ohb(a.g, q.a), 46).b, 33).zg(); - o10 != null && dfb(o10, t) && (a.d.d = q); - } - } - break; - case 1: - e = new f7c(a.c.g, a.c.f); - e.a *= 0.5; - e.b *= 0.5; - O6c(e, a.c.i, a.c.j); - f = Pje; - for (r = new olb(a.d.i); r.a < r.c.c.length; ) { - q = BD(mlb(r), 65); - j = S6c(q.a, e); - if (j < f) { - f = j; - a.d.d = q; - } - } - break; - default: - throw vbb(new Wdb(Mre + (u.f != null ? u.f : "" + u.g))); - } - return a.d; - } - function qfd(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - v = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202); - k = new s7c(); - u = new Lqb(); - w = tfd(v); - jrb(u.f, v, w); - m = new Lqb(); - d = new Psb(); - for (o10 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!b.d && (b.d = new y5d(B2, b, 8, 5)), b.d), (!b.e && (b.e = new y5d(B2, b, 7, 4)), b.e)]))); Qr(o10); ) { - n = BD(Rr(o10), 79); - if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) { - throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i)); - } - if (n != a) { - q = BD(qud((!n.a && (n.a = new cUd(A2, n, 6, 6)), n.a), 0), 202); - Gsb(d, q, d.c.b, d.c); - p = BD(Wd(irb(u.f, q)), 12); - if (!p) { - p = tfd(q); - jrb(u.f, q, p); - } - l = c ? c7c(new g7c(BD(Ikb(w, w.c.length - 1), 8)), BD(Ikb(p, p.c.length - 1), 8)) : c7c(new g7c((tCb(0, w.c.length), BD(w.c[0], 8))), (tCb(0, p.c.length), BD(p.c[0], 8))); - jrb(m.f, q, l); - } - } - if (d.b != 0) { - r = BD(Ikb(w, c ? w.c.length - 1 : 0), 8); - for (j = 1; j < w.c.length; j++) { - s = BD(Ikb(w, c ? w.c.length - 1 - j : j), 8); - e = Jsb(d, 0); - while (e.b != e.d.c) { - q = BD(Xsb(e), 202); - p = BD(Wd(irb(u.f, q)), 12); - if (p.c.length <= j) { - Zsb(e); - } else { - t = P6c(new g7c(BD(Ikb(p, c ? p.c.length - 1 - j : j), 8)), BD(Wd(irb(m.f, q)), 8)); - if (s.a != t.a || s.b != t.b) { - f = s.a - r.a; - h = s.b - r.b; - g10 = t.a - r.a; - i10 = t.b - r.b; - g10 * h == i10 * f && (f == 0 || isNaN(f) ? f : f < 0 ? -1 : 1) == (g10 == 0 || isNaN(g10) ? g10 : g10 < 0 ? -1 : 1) && (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) == (i10 == 0 || isNaN(i10) ? i10 : i10 < 0 ? -1 : 1) ? ($wnd.Math.abs(f) < $wnd.Math.abs(g10) || $wnd.Math.abs(h) < $wnd.Math.abs(i10)) && (Gsb(k, s, k.c.b, k.c), true) : j > 1 && (Gsb(k, r, k.c.b, k.c), true); - Zsb(e); - } - } - } - r = s; - } - } - return k; - } - function $Bc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L; - Odd(c, "Greedy cycle removal", 1); - t = b.a; - L = t.c.length; - a.a = KC(WD, oje, 25, L, 15, 1); - a.c = KC(WD, oje, 25, L, 15, 1); - a.b = KC(WD, oje, 25, L, 15, 1); - j = 0; - for (r = new olb(t); r.a < r.c.c.length; ) { - p = BD(mlb(r), 10); - p.p = j; - for (C = new olb(p.j); C.a < C.c.c.length; ) { - w = BD(mlb(C), 11); - for (h = new olb(w.e); h.a < h.c.c.length; ) { - d = BD(mlb(h), 17); - if (d.c.i == p) { - continue; - } - G = BD(vNb(d, (Nyc(), cyc)), 19).a; - a.a[j] += G > 0 ? G + 1 : 1; - } - for (g10 = new olb(w.g); g10.a < g10.c.c.length; ) { - d = BD(mlb(g10), 17); - if (d.d.i == p) { - continue; - } - G = BD(vNb(d, (Nyc(), cyc)), 19).a; - a.c[j] += G > 0 ? G + 1 : 1; - } - } - a.c[j] == 0 ? Dsb(a.e, p) : a.a[j] == 0 && Dsb(a.f, p); - ++j; - } - o10 = -1; - n = 1; - l = new Rkb(); - a.d = BD(vNb(b, (wtc(), jtc)), 230); - while (L > 0) { - while (a.e.b != 0) { - I = BD(Lsb(a.e), 10); - a.b[I.p] = o10--; - _Bc(a, I); - --L; - } - while (a.f.b != 0) { - J = BD(Lsb(a.f), 10); - a.b[J.p] = n++; - _Bc(a, J); - --L; - } - if (L > 0) { - m = Rie; - for (s = new olb(t); s.a < s.c.c.length; ) { - p = BD(mlb(s), 10); - if (a.b[p.p] == 0) { - u = a.c[p.p] - a.a[p.p]; - if (u >= m) { - if (u > m) { - l.c = KC(SI, Uhe, 1, 0, 5, 1); - m = u; - } - l.c[l.c.length] = p; - } - } - } - k = a.Zf(l); - a.b[k.p] = n++; - _Bc(a, k); - --L; - } - } - H = t.c.length + 1; - for (j = 0; j < t.c.length; j++) { - a.b[j] < 0 && (a.b[j] += H); - } - for (q = new olb(t); q.a < q.c.c.length; ) { - p = BD(mlb(q), 10); - F = m_b(p.j); - for (A = F, B = 0, D = A.length; B < D; ++B) { - w = A[B]; - v = k_b(w.g); - for (e = v, f = 0, i10 = e.length; f < i10; ++f) { - d = e[f]; - K = d.d.i.p; - if (a.b[p.p] > a.b[K]) { - PZb(d, true); - yNb(b, Asc, (Bcb(), true)); - } - } - } - } - a.a = null; - a.c = null; - a.b = null; - Osb(a.f); - Osb(a.e); - Qdd(c); - } - function sQb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - d = new Rkb(); - h = new Rkb(); - q = b / 2; - n = a.gc(); - e = BD(a.Xb(0), 8); - r = BD(a.Xb(1), 8); - o10 = tQb(e.a, e.b, r.a, r.b, q); - Ekb(d, (tCb(0, o10.c.length), BD(o10.c[0], 8))); - Ekb(h, (tCb(1, o10.c.length), BD(o10.c[1], 8))); - for (j = 2; j < n; j++) { - p = e; - e = r; - r = BD(a.Xb(j), 8); - o10 = tQb(e.a, e.b, p.a, p.b, q); - Ekb(d, (tCb(1, o10.c.length), BD(o10.c[1], 8))); - Ekb(h, (tCb(0, o10.c.length), BD(o10.c[0], 8))); - o10 = tQb(e.a, e.b, r.a, r.b, q); - Ekb(d, (tCb(0, o10.c.length), BD(o10.c[0], 8))); - Ekb(h, (tCb(1, o10.c.length), BD(o10.c[1], 8))); - } - o10 = tQb(r.a, r.b, e.a, e.b, q); - Ekb(d, (tCb(1, o10.c.length), BD(o10.c[1], 8))); - Ekb(h, (tCb(0, o10.c.length), BD(o10.c[0], 8))); - c = new s7c(); - g10 = new Rkb(); - Dsb(c, (tCb(0, d.c.length), BD(d.c[0], 8))); - for (k = 1; k < d.c.length - 2; k += 2) { - f = (tCb(k, d.c.length), BD(d.c[k], 8)); - m = rQb((tCb(k - 1, d.c.length), BD(d.c[k - 1], 8)), f, (tCb(k + 1, d.c.length), BD(d.c[k + 1], 8)), (tCb(k + 2, d.c.length), BD(d.c[k + 2], 8))); - !isFinite(m.a) || !isFinite(m.b) ? (Gsb(c, f, c.c.b, c.c), true) : (Gsb(c, m, c.c.b, c.c), true); - } - Dsb(c, BD(Ikb(d, d.c.length - 1), 8)); - Ekb(g10, (tCb(0, h.c.length), BD(h.c[0], 8))); - for (l = 1; l < h.c.length - 2; l += 2) { - f = (tCb(l, h.c.length), BD(h.c[l], 8)); - m = rQb((tCb(l - 1, h.c.length), BD(h.c[l - 1], 8)), f, (tCb(l + 1, h.c.length), BD(h.c[l + 1], 8)), (tCb(l + 2, h.c.length), BD(h.c[l + 2], 8))); - !isFinite(m.a) || !isFinite(m.b) ? (g10.c[g10.c.length] = f, true) : (g10.c[g10.c.length] = m, true); - } - Ekb(g10, BD(Ikb(h, h.c.length - 1), 8)); - for (i10 = g10.c.length - 1; i10 >= 0; i10--) { - Dsb(c, (tCb(i10, g10.c.length), BD(g10.c[i10], 8))); - } - return c; - } - function aFd(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - g10 = true; - l = null; - d = null; - e = null; - b = false; - n = BEd; - j = null; - f = null; - h = 0; - i10 = UEd(a, h, zEd, AEd); - if (i10 < a.length && (BCb(i10, a.length), a.charCodeAt(i10) == 58)) { - l = a.substr(h, i10 - h); - h = i10 + 1; - } - c = l != null && hnb(GEd, l.toLowerCase()); - if (c) { - i10 = a.lastIndexOf("!/"); - if (i10 == -1) { - throw vbb(new Wdb("no archive separator")); - } - g10 = true; - d = qfb(a, h, ++i10); - h = i10; - } else if (h >= 0 && dfb(a.substr(h, "//".length), "//")) { - h += 2; - i10 = UEd(a, h, CEd, DEd); - d = a.substr(h, i10 - h); - h = i10; - } else if (l != null && (h == a.length || (BCb(h, a.length), a.charCodeAt(h) != 47))) { - g10 = false; - i10 = ifb(a, wfb(35), h); - i10 == -1 && (i10 = a.length); - d = a.substr(h, i10 - h); - h = i10; - } - if (!c && h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) { - i10 = UEd(a, h + 1, CEd, DEd); - k = a.substr(h + 1, i10 - (h + 1)); - if (k.length > 0 && bfb(k, k.length - 1) == 58) { - e = k; - h = i10; - } - } - if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) { - ++h; - b = true; - } - if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) { - m = new Rkb(); - while (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) { - i10 = UEd(a, h, CEd, DEd); - Ekb(m, a.substr(h, i10 - h)); - h = i10; - h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47) && (bFd(a, ++h) || (m.c[m.c.length] = "", true)); - } - n = KC(ZI, nie, 2, m.c.length, 6, 1); - Qkb(m, n); - } - if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 63)) { - i10 = gfb(a, 35, ++h); - i10 == -1 && (i10 = a.length); - j = a.substr(h, i10 - h); - h = i10; - } - h < a.length && (f = pfb(a, ++h)); - iFd(g10, l, d, e, n, j); - return new NEd(g10, l, d, e, b, n, j, f); - } - function sJc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K; - I = new Rkb(); - for (o10 = new olb(b.b); o10.a < o10.c.c.length; ) { - m = BD(mlb(o10), 29); - for (v = new olb(m.a); v.a < v.c.c.length; ) { - u = BD(mlb(v), 10); - u.p = -1; - l = Rie; - B = Rie; - for (D = new olb(u.j); D.a < D.c.c.length; ) { - C = BD(mlb(D), 11); - for (e = new olb(C.e); e.a < e.c.c.length; ) { - c = BD(mlb(e), 17); - F = BD(vNb(c, (Nyc(), eyc)), 19).a; - l = $wnd.Math.max(l, F); - } - for (d = new olb(C.g); d.a < d.c.c.length; ) { - c = BD(mlb(d), 17); - F = BD(vNb(c, (Nyc(), eyc)), 19).a; - B = $wnd.Math.max(B, F); - } - } - yNb(u, hJc, meb(l)); - yNb(u, iJc, meb(B)); - } - } - r = 0; - for (n = new olb(b.b); n.a < n.c.c.length; ) { - m = BD(mlb(n), 29); - for (v = new olb(m.a); v.a < v.c.c.length; ) { - u = BD(mlb(v), 10); - if (u.p < 0) { - H = new zJc(); - H.b = r++; - oJc(a, u, H); - I.c[I.c.length] = H; - } - } - } - A = Pu(I.c.length); - k = Pu(I.c.length); - for (g10 = 0; g10 < I.c.length; g10++) { - Ekb(A, new Rkb()); - Ekb(k, meb(0)); - } - mJc(b, I, A, k); - J = BD(Qkb(I, KC(sY, Iqe, 257, I.c.length, 0, 1)), 840); - w = BD(Qkb(A, KC(yK, eme, 15, A.c.length, 0, 1)), 192); - j = KC(WD, oje, 25, k.c.length, 15, 1); - for (h = 0; h < j.length; h++) { - j[h] = (tCb(h, k.c.length), BD(k.c[h], 19)).a; - } - s = 0; - t = new Rkb(); - for (i10 = 0; i10 < J.length; i10++) { - j[i10] == 0 && Ekb(t, J[i10]); - } - q = KC(WD, oje, 25, J.length, 15, 1); - while (t.c.length != 0) { - H = BD(Kkb(t, 0), 257); - q[H.b] = s++; - while (!w[H.b].dc()) { - K = BD(w[H.b].$c(0), 257); - --j[K.b]; - j[K.b] == 0 && (t.c[t.c.length] = K, true); - } - } - a.a = KC(sY, Iqe, 257, J.length, 0, 1); - for (f = 0; f < J.length; f++) { - p = J[f]; - G = q[f]; - a.a[G] = p; - p.b = G; - for (v = new olb(p.e); v.a < v.c.c.length; ) { - u = BD(mlb(v), 10); - u.p = G; - } - } - return a.a; - } - function nde(a) { - var b, c, d; - if (a.d >= a.j) { - a.a = -1; - a.c = 1; - return; - } - b = bfb(a.i, a.d++); - a.a = b; - if (a.b == 1) { - switch (b) { - case 92: - d = 10; - if (a.d >= a.j) - throw vbb(new mde(tvd((h0d(), uue)))); - a.a = bfb(a.i, a.d++); - break; - case 45: - if ((a.e & 512) == 512 && a.d < a.j && bfb(a.i, a.d) == 91) { - ++a.d; - d = 24; - } else - d = 0; - break; - case 91: - if ((a.e & 512) != 512 && a.d < a.j && bfb(a.i, a.d) == 58) { - ++a.d; - d = 20; - break; - } - default: - if ((b & 64512) == Uje && a.d < a.j) { - c = bfb(a.i, a.d); - if ((c & 64512) == 56320) { - a.a = Tje + (b - Uje << 10) + c - 56320; - ++a.d; - } - } - d = 0; - } - a.c = d; - return; - } - switch (b) { - case 124: - d = 2; - break; - case 42: - d = 3; - break; - case 43: - d = 4; - break; - case 63: - d = 5; - break; - case 41: - d = 7; - break; - case 46: - d = 8; - break; - case 91: - d = 9; - break; - case 94: - d = 11; - break; - case 36: - d = 12; - break; - case 40: - d = 6; - if (a.d >= a.j) - break; - if (bfb(a.i, a.d) != 63) - break; - if (++a.d >= a.j) - throw vbb(new mde(tvd((h0d(), vue)))); - b = bfb(a.i, a.d++); - switch (b) { - case 58: - d = 13; - break; - case 61: - d = 14; - break; - case 33: - d = 15; - break; - case 91: - d = 19; - break; - case 62: - d = 18; - break; - case 60: - if (a.d >= a.j) - throw vbb(new mde(tvd((h0d(), vue)))); - b = bfb(a.i, a.d++); - if (b == 61) { - d = 16; - } else if (b == 33) { - d = 17; - } else - throw vbb(new mde(tvd((h0d(), wue)))); - break; - case 35: - while (a.d < a.j) { - b = bfb(a.i, a.d++); - if (b == 41) - break; - } - if (b != 41) - throw vbb(new mde(tvd((h0d(), xue)))); - d = 21; - break; - default: - if (b == 45 || 97 <= b && b <= 122 || 65 <= b && b <= 90) { - --a.d; - d = 22; - break; - } else if (b == 40) { - d = 23; - break; - } - throw vbb(new mde(tvd((h0d(), vue)))); - } - break; - case 92: - d = 10; - if (a.d >= a.j) - throw vbb(new mde(tvd((h0d(), uue)))); - a.a = bfb(a.i, a.d++); - break; - default: - d = 0; - } - a.c = d; - } - function P5b(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G; - A = BD(vNb(a, (Nyc(), Vxc)), 98); - if (!(A != (dcd(), bcd) && A != ccd)) { - return; - } - o10 = a.b; - n = o10.c.length; - k = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0)))); - p = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0)))); - Ekb(k, new Lqb()); - Ekb(k, new Lqb()); - Ekb(p, new Rkb()); - Ekb(p, new Rkb()); - w = new Rkb(); - for (b = 0; b < n; b++) { - c = (tCb(b, o10.c.length), BD(o10.c[b], 29)); - B = (tCb(b, k.c.length), BD(k.c[b], 83)); - q = new Lqb(); - k.c[k.c.length] = q; - D = (tCb(b, p.c.length), BD(p.c[b], 15)); - s = new Rkb(); - p.c[p.c.length] = s; - for (e = new olb(c.a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - if (L5b(d)) { - w.c[w.c.length] = d; - continue; - } - for (j = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(j); ) { - h = BD(Rr(j), 17); - F = h.c.i; - if (!L5b(F)) { - continue; - } - C = BD(B.xc(vNb(F, (wtc(), $sc))), 10); - if (!C) { - C = K5b(a, F); - B.zc(vNb(F, $sc), C); - D.Fc(C); - } - QZb(h, BD(Ikb(C.j, 1), 11)); - } - for (i10 = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(i10); ) { - h = BD(Rr(i10), 17); - G = h.d.i; - if (!L5b(G)) { - continue; - } - r = BD(Ohb(q, vNb(G, (wtc(), $sc))), 10); - if (!r) { - r = K5b(a, G); - Rhb(q, vNb(G, $sc), r); - s.c[s.c.length] = r; - } - RZb(h, BD(Ikb(r.j, 0), 11)); - } - } - } - for (l = 0; l < p.c.length; l++) { - t = (tCb(l, p.c.length), BD(p.c[l], 15)); - if (t.dc()) { - continue; - } - m = null; - if (l == 0) { - m = new H1b(a); - wCb(0, o10.c.length); - aCb(o10.c, 0, m); - } else if (l == k.c.length - 1) { - m = new H1b(a); - o10.c[o10.c.length] = m; - } else { - m = (tCb(l - 1, o10.c.length), BD(o10.c[l - 1], 29)); - } - for (g10 = t.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 10); - $_b(f, m); - } - } - for (v = new olb(w); v.a < v.c.c.length; ) { - u = BD(mlb(v), 10); - $_b(u, null); - } - yNb(a, (wtc(), Fsc), w); - } - function BCc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v; - Odd(c, "Coffman-Graham Layering", 1); - if (b.a.c.length == 0) { - Qdd(c); - return; - } - v = BD(vNb(b, (Nyc(), kxc)), 19).a; - i10 = 0; - g10 = 0; - for (m = new olb(b.a); m.a < m.c.c.length; ) { - l = BD(mlb(m), 10); - l.p = i10++; - for (f = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - e.p = g10++; - } - } - a.d = KC(sbb, dle, 25, i10, 16, 1); - a.a = KC(sbb, dle, 25, g10, 16, 1); - a.b = KC(WD, oje, 25, i10, 15, 1); - a.e = KC(WD, oje, 25, i10, 15, 1); - a.f = KC(WD, oje, 25, i10, 15, 1); - Nc(a.c); - CCc(a, b); - o10 = new gub(new GCc(a)); - for (u = new olb(b.a); u.a < u.c.c.length; ) { - s = BD(mlb(u), 10); - for (f = new Sr(ur(R_b(s).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - a.a[e.p] || ++a.b[s.p]; - } - a.b[s.p] == 0 && (zCb(cub(o10, s)), true); - } - h = 0; - while (o10.b.c.length != 0) { - s = BD(dub(o10), 10); - a.f[s.p] = h++; - for (f = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (a.a[e.p]) { - continue; - } - q = e.d.i; - --a.b[q.p]; - Rc(a.c, q, meb(a.f[s.p])); - a.b[q.p] == 0 && (zCb(cub(o10, q)), true); - } - } - n = new gub(new KCc(a)); - for (t = new olb(b.a); t.a < t.c.c.length; ) { - s = BD(mlb(t), 10); - for (f = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - a.a[e.p] || ++a.e[s.p]; - } - a.e[s.p] == 0 && (zCb(cub(n, s)), true); - } - k = new Rkb(); - d = yCc(b, k); - while (n.b.c.length != 0) { - r = BD(dub(n), 10); - (d.a.c.length >= v || !wCc(r, d)) && (d = yCc(b, k)); - $_b(r, d); - for (f = new Sr(ur(R_b(r).a.Kc(), new Sq())); Qr(f); ) { - e = BD(Rr(f), 17); - if (a.a[e.p]) { - continue; - } - p = e.c.i; - --a.e[p.p]; - a.e[p.p] == 0 && (zCb(cub(n, p)), true); - } - } - for (j = k.c.length - 1; j >= 0; --j) { - Ekb(b.b, (tCb(j, k.c.length), BD(k.c[j], 29))); - } - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - Qdd(c); - } - function gee(a) { - var b, c, d, e, f, g10, h, i10, j; - a.b = 1; - nde(a); - b = null; - if (a.c == 0 && a.a == 94) { - nde(a); - b = (wfe(), wfe(), ++vfe, new $fe(4)); - Ufe(b, 0, lxe); - h = (null, ++vfe, new $fe(4)); - } else { - h = (wfe(), wfe(), ++vfe, new $fe(4)); - } - e = true; - while ((j = a.c) != 1) { - if (j == 0 && a.a == 93 && !e) { - if (b) { - Zfe(b, h); - h = b; - } - break; - } - c = a.a; - d = false; - if (j == 10) { - switch (c) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - Xfe(h, fee(c)); - d = true; - break; - case 105: - case 73: - case 99: - case 67: - c = (Xfe(h, fee(c)), -1); - c < 0 && (d = true); - break; - case 112: - case 80: - i10 = tde(a, c); - if (!i10) - throw vbb(new mde(tvd((h0d(), Iue)))); - Xfe(h, i10); - d = true; - break; - default: - c = eee(a); - } - } else if (j == 24 && !e) { - if (b) { - Zfe(b, h); - h = b; - } - f = gee(a); - Zfe(h, f); - if (a.c != 0 || a.a != 93) - throw vbb(new mde(tvd((h0d(), Mue)))); - break; - } - nde(a); - if (!d) { - if (j == 0) { - if (c == 91) - throw vbb(new mde(tvd((h0d(), Nue)))); - if (c == 93) - throw vbb(new mde(tvd((h0d(), Oue)))); - if (c == 45 && !e && a.a != 93) - throw vbb(new mde(tvd((h0d(), Pue)))); - } - if (a.c != 0 || a.a != 45 || c == 45 && e) { - Ufe(h, c, c); - } else { - nde(a); - if ((j = a.c) == 1) - throw vbb(new mde(tvd((h0d(), Kue)))); - if (j == 0 && a.a == 93) { - Ufe(h, c, c); - Ufe(h, 45, 45); - } else if (j == 0 && a.a == 93 || j == 24) { - throw vbb(new mde(tvd((h0d(), Pue)))); - } else { - g10 = a.a; - if (j == 0) { - if (g10 == 91) - throw vbb(new mde(tvd((h0d(), Nue)))); - if (g10 == 93) - throw vbb(new mde(tvd((h0d(), Oue)))); - if (g10 == 45) - throw vbb(new mde(tvd((h0d(), Pue)))); - } else - j == 10 && (g10 = eee(a)); - nde(a); - if (c > g10) - throw vbb(new mde(tvd((h0d(), Sue)))); - Ufe(h, c, g10); - } - } - } - e = false; - } - if (a.c == 1) - throw vbb(new mde(tvd((h0d(), Kue)))); - Yfe(h); - Vfe(h); - a.b = 0; - nde(a); - return h; - } - function xZd(a) { - Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#decimal"])); - Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#integer"])); - Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#boolean"])); - Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EBoolean", fue, "EBoolean:Object"])); - Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#byte"])); - Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#hexBinary"])); - Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EByte", fue, "EByte:Object"])); - Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EChar", fue, "EChar:Object"])); - Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#double"])); - Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EDouble", fue, "EDouble:Object"])); - Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#float"])); - Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EFloat", fue, "EFloat:Object"])); - Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#int"])); - Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EInt", fue, "EInt:Object"])); - Bnd(a.N, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#long"])); - Bnd(a.O, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "ELong", fue, "ELong:Object"])); - Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#short"])); - Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EShort", fue, "EShort:Object"])); - Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#string"])); - } - function fRc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G; - if (a.c.length == 1) { - return tCb(0, a.c.length), BD(a.c[0], 135); - } else if (a.c.length <= 0) { - return new SRc(); - } - for (i10 = new olb(a); i10.a < i10.c.c.length; ) { - g10 = BD(mlb(i10), 135); - s = 0; - o10 = Ohe; - p = Ohe; - m = Rie; - n = Rie; - for (r = Jsb(g10.b, 0); r.b != r.d.c; ) { - q = BD(Xsb(r), 86); - s += BD(vNb(q, (JTc(), ETc)), 19).a; - o10 = $wnd.Math.min(o10, q.e.a); - p = $wnd.Math.min(p, q.e.b); - m = $wnd.Math.max(m, q.e.a + q.f.a); - n = $wnd.Math.max(n, q.e.b + q.f.b); - } - yNb(g10, (JTc(), ETc), meb(s)); - yNb(g10, (mTc(), WSc), new f7c(o10, p)); - yNb(g10, VSc, new f7c(m, n)); - } - mmb(); - Okb(a, new jRc()); - v = new SRc(); - tNb(v, (tCb(0, a.c.length), BD(a.c[0], 94))); - l = 0; - D = 0; - for (j = new olb(a); j.a < j.c.c.length; ) { - g10 = BD(mlb(j), 135); - w = c7c(R6c(BD(vNb(g10, (mTc(), VSc)), 8)), BD(vNb(g10, WSc), 8)); - l = $wnd.Math.max(l, w.a); - D += w.a * w.b; - } - l = $wnd.Math.max(l, $wnd.Math.sqrt(D) * Edb(ED(vNb(v, (JTc(), uTc))))); - A = Edb(ED(vNb(v, HTc))); - F = 0; - G = 0; - k = 0; - b = A; - for (h = new olb(a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 135); - w = c7c(R6c(BD(vNb(g10, (mTc(), VSc)), 8)), BD(vNb(g10, WSc), 8)); - if (F + w.a > l) { - F = 0; - G += k + A; - k = 0; - } - eRc(v, g10, F, G); - b = $wnd.Math.max(b, F + w.a); - k = $wnd.Math.max(k, w.b); - F += w.a + A; - } - u = new Lqb(); - c = new Lqb(); - for (C = new olb(a); C.a < C.c.c.length; ) { - B = BD(mlb(C), 135); - d = Ccb(DD(vNb(B, (Y9c(), y8c)))); - t = !B.q ? (null, kmb) : B.q; - for (f = t.vc().Kc(); f.Ob(); ) { - e = BD(f.Pb(), 42); - if (Mhb(u, e.cd())) { - if (PD(BD(e.cd(), 146).wg()) !== PD(e.dd())) { - if (d && Mhb(c, e.cd())) { - Zfb(); - "Found different values for property " + BD(e.cd(), 146).tg() + " in components."; - } else { - Rhb(u, BD(e.cd(), 146), e.dd()); - yNb(v, BD(e.cd(), 146), e.dd()); - d && Rhb(c, BD(e.cd(), 146), e.dd()); - } - } - } else { - Rhb(u, BD(e.cd(), 146), e.dd()); - yNb(v, BD(e.cd(), 146), e.dd()); - } - } - } - return v; - } - function MYb() { - MYb = ccb; - xXb(); - LYb = new Hp(); - Rc(LYb, (Ucd(), Gcd), Fcd); - Rc(LYb, Qcd, Fcd); - Rc(LYb, Hcd, Fcd); - Rc(LYb, Ncd, Fcd); - Rc(LYb, Mcd, Fcd); - Rc(LYb, Kcd, Fcd); - Rc(LYb, Ncd, Gcd); - Rc(LYb, Fcd, Bcd); - Rc(LYb, Gcd, Bcd); - Rc(LYb, Qcd, Bcd); - Rc(LYb, Hcd, Bcd); - Rc(LYb, Lcd, Bcd); - Rc(LYb, Ncd, Bcd); - Rc(LYb, Mcd, Bcd); - Rc(LYb, Kcd, Bcd); - Rc(LYb, Ecd, Bcd); - Rc(LYb, Fcd, Ocd); - Rc(LYb, Gcd, Ocd); - Rc(LYb, Bcd, Ocd); - Rc(LYb, Qcd, Ocd); - Rc(LYb, Hcd, Ocd); - Rc(LYb, Lcd, Ocd); - Rc(LYb, Ncd, Ocd); - Rc(LYb, Ecd, Ocd); - Rc(LYb, Pcd, Ocd); - Rc(LYb, Mcd, Ocd); - Rc(LYb, Icd, Ocd); - Rc(LYb, Kcd, Ocd); - Rc(LYb, Gcd, Qcd); - Rc(LYb, Hcd, Qcd); - Rc(LYb, Ncd, Qcd); - Rc(LYb, Kcd, Qcd); - Rc(LYb, Gcd, Hcd); - Rc(LYb, Qcd, Hcd); - Rc(LYb, Ncd, Hcd); - Rc(LYb, Hcd, Hcd); - Rc(LYb, Mcd, Hcd); - Rc(LYb, Fcd, Ccd); - Rc(LYb, Gcd, Ccd); - Rc(LYb, Bcd, Ccd); - Rc(LYb, Ocd, Ccd); - Rc(LYb, Qcd, Ccd); - Rc(LYb, Hcd, Ccd); - Rc(LYb, Lcd, Ccd); - Rc(LYb, Ncd, Ccd); - Rc(LYb, Pcd, Ccd); - Rc(LYb, Ecd, Ccd); - Rc(LYb, Kcd, Ccd); - Rc(LYb, Mcd, Ccd); - Rc(LYb, Jcd, Ccd); - Rc(LYb, Fcd, Pcd); - Rc(LYb, Gcd, Pcd); - Rc(LYb, Bcd, Pcd); - Rc(LYb, Qcd, Pcd); - Rc(LYb, Hcd, Pcd); - Rc(LYb, Lcd, Pcd); - Rc(LYb, Ncd, Pcd); - Rc(LYb, Ecd, Pcd); - Rc(LYb, Kcd, Pcd); - Rc(LYb, Icd, Pcd); - Rc(LYb, Jcd, Pcd); - Rc(LYb, Gcd, Ecd); - Rc(LYb, Qcd, Ecd); - Rc(LYb, Hcd, Ecd); - Rc(LYb, Ncd, Ecd); - Rc(LYb, Pcd, Ecd); - Rc(LYb, Kcd, Ecd); - Rc(LYb, Mcd, Ecd); - Rc(LYb, Fcd, Dcd); - Rc(LYb, Gcd, Dcd); - Rc(LYb, Bcd, Dcd); - Rc(LYb, Qcd, Dcd); - Rc(LYb, Hcd, Dcd); - Rc(LYb, Lcd, Dcd); - Rc(LYb, Ncd, Dcd); - Rc(LYb, Ecd, Dcd); - Rc(LYb, Kcd, Dcd); - Rc(LYb, Gcd, Mcd); - Rc(LYb, Bcd, Mcd); - Rc(LYb, Ocd, Mcd); - Rc(LYb, Hcd, Mcd); - Rc(LYb, Fcd, Icd); - Rc(LYb, Gcd, Icd); - Rc(LYb, Ocd, Icd); - Rc(LYb, Qcd, Icd); - Rc(LYb, Hcd, Icd); - Rc(LYb, Lcd, Icd); - Rc(LYb, Ncd, Icd); - Rc(LYb, Ncd, Jcd); - Rc(LYb, Hcd, Jcd); - Rc(LYb, Ecd, Fcd); - Rc(LYb, Ecd, Qcd); - Rc(LYb, Ecd, Bcd); - Rc(LYb, Lcd, Fcd); - Rc(LYb, Lcd, Gcd); - Rc(LYb, Lcd, Ocd); - } - function HVd(a, b) { - switch (a.e) { - case 0: - case 2: - case 4: - case 6: - case 42: - case 44: - case 46: - case 48: - case 8: - case 10: - case 12: - case 14: - case 16: - case 18: - case 20: - case 22: - case 24: - case 26: - case 28: - case 30: - case 32: - case 34: - case 36: - case 38: - return new U5d(a.b, a.a, b, a.c); - case 1: - return new BMd(a.a, b, bLd(b.Tg(), a.c)); - case 43: - return new N4d(a.a, b, bLd(b.Tg(), a.c)); - case 3: - return new xMd(a.a, b, bLd(b.Tg(), a.c)); - case 45: - return new K4d(a.a, b, bLd(b.Tg(), a.c)); - case 41: - return new dId(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c)); - case 50: - return new c6d(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c)); - case 5: - return new Q4d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 47: - return new U4d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 7: - return new cUd(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 49: - return new gUd(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 9: - return new I4d(a.a, b, bLd(b.Tg(), a.c)); - case 11: - return new G4d(a.a, b, bLd(b.Tg(), a.c)); - case 13: - return new C4d(a.a, b, bLd(b.Tg(), a.c)); - case 15: - return new k2d(a.a, b, bLd(b.Tg(), a.c)); - case 17: - return new c5d(a.a, b, bLd(b.Tg(), a.c)); - case 19: - return new _4d(a.a, b, bLd(b.Tg(), a.c)); - case 21: - return new X4d(a.a, b, bLd(b.Tg(), a.c)); - case 23: - return new pMd(a.a, b, bLd(b.Tg(), a.c)); - case 25: - return new D5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 27: - return new y5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 29: - return new t5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 31: - return new n5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 33: - return new A5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 35: - return new v5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 37: - return new p5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 39: - return new i5d(a.a, b, bLd(b.Tg(), a.c), a.d.n); - case 40: - return new u3d(b, bLd(b.Tg(), a.c)); - default: - throw vbb(new hz("Unknown feature style: " + a.e)); - } - } - function BMc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - Odd(c, "Brandes & Koepf node placement", 1); - a.a = b; - a.c = KMc(b); - d = BD(vNb(b, (Nyc(), zxc)), 274); - n = Ccb(DD(vNb(b, Axc))); - a.d = d == (lrc(), irc) && !n || d == frc; - AMc(a, b); - v = null; - w = null; - r = null; - s = null; - q = (Xj(4, Jie), new Skb(4)); - switch (BD(vNb(b, zxc), 274).g) { - case 3: - r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc)); - q.c[q.c.length] = r; - break; - case 1: - s = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), WLc)); - q.c[q.c.length] = s; - break; - case 4: - v = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), XLc)); - q.c[q.c.length] = v; - break; - case 2: - w = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), XLc)); - q.c[q.c.length] = w; - break; - default: - r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc)); - s = new ULc(b, a.c.d, dMc, WLc); - v = new ULc(b, a.c.d, cMc, XLc); - w = new ULc(b, a.c.d, dMc, XLc); - q.c[q.c.length] = v; - q.c[q.c.length] = w; - q.c[q.c.length] = r; - q.c[q.c.length] = s; - } - e = new mMc(b, a.c); - for (h = new olb(q); h.a < h.c.c.length; ) { - f = BD(mlb(h), 180); - lMc(e, f, a.b); - kMc(f); - } - m = new rMc(b, a.c); - for (i10 = new olb(q); i10.a < i10.c.c.length; ) { - f = BD(mlb(i10), 180); - oMc(m, f); - } - if (c.n) { - for (j = new olb(q); j.a < j.c.c.length; ) { - f = BD(mlb(j), 180); - Sdd(c, f + " size is " + SLc(f)); - } - } - l = null; - if (a.d) { - k = yMc(a, q, a.c.d); - xMc(b, k, c) && (l = k); - } - if (!l) { - for (j = new olb(q); j.a < j.c.c.length; ) { - f = BD(mlb(j), 180); - xMc(b, f, c) && (!l || SLc(l) > SLc(f)) && (l = f); - } - } - !l && (l = (tCb(0, q.c.length), BD(q.c[0], 180))); - for (p = new olb(b.b); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 29); - for (u = new olb(o10.a); u.a < u.c.c.length; ) { - t = BD(mlb(u), 10); - t.n.b = Edb(l.p[t.p]) + Edb(l.d[t.p]); - } - } - if (c.n) { - Sdd(c, "Chosen node placement: " + l); - Sdd(c, "Blocks: " + DMc(l)); - Sdd(c, "Classes: " + EMc(l, c)); - Sdd(c, "Marked edges: " + a.b); - } - for (g10 = new olb(q); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 180); - f.g = null; - f.b = null; - f.a = null; - f.d = null; - f.j = null; - f.i = null; - f.p = null; - } - IMc(a.c); - a.b.a.$b(); - Qdd(c); - } - function V1b(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F; - g10 = new Psb(); - v = BD(vNb(c, (Nyc(), Lwc)), 103); - o10 = 0; - ye(g10, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); - while (g10.b != 0) { - j = BD(g10.b == 0 ? null : (sCb(g10.b != 0), Nsb(g10, g10.a.a)), 33); - (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(j, xwc))) && jkd(j, (wtc(), Zsc), meb(o10++)); - q = !Ccb(DD(hkd(j, Jxc))); - if (q) { - l = (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a).i != 0; - n = S1b(j); - m = PD(hkd(j, axc)) === PD((hbd(), ebd)); - F = !ikd(j, (Y9c(), o8c)) || dfb(GD(hkd(j, o8c)), sne); - t = null; - if (F && m && (l || n)) { - t = P1b(j); - yNb(t, Lwc, v); - wNb(t, hyc) && Wyc(new ezc(Edb(ED(vNb(t, hyc)))), t); - if (BD(hkd(j, Fxc), 174).gc() != 0) { - k = t; - MAb(new YAb(null, (!j.c && (j.c = new cUd(F2, j, 9, 9)), new Kub(j.c, 16))), new k2b(k)); - L1b(j, t); - } - } - w = c; - A = BD(Ohb(a.a, Xod(j)), 10); - !!A && (w = A.e); - s = $1b(a, j, w); - if (t) { - s.e = t; - t.e = s; - ye(g10, (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a)); - } - } - } - o10 = 0; - Gsb(g10, b, g10.c.b, g10.c); - while (g10.b != 0) { - f = BD(g10.b == 0 ? null : (sCb(g10.b != 0), Nsb(g10, g10.a.a)), 33); - for (i10 = new Fyd((!f.b && (f.b = new cUd(B2, f, 12, 3)), f.b)); i10.e != i10.i.gc(); ) { - h = BD(Dyd(i10), 79); - N1b(h); - (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && jkd(h, (wtc(), Zsc), meb(o10++)); - C = atd(BD(qud((!h.b && (h.b = new y5d(z2, h, 4, 7)), h.b), 0), 82)); - D = atd(BD(qud((!h.c && (h.c = new y5d(z2, h, 5, 8)), h.c), 0), 82)); - if (Ccb(DD(hkd(h, Jxc))) || Ccb(DD(hkd(C, Jxc))) || Ccb(DD(hkd(D, Jxc)))) { - continue; - } - p = Qld(h) && Ccb(DD(hkd(C, fxc))) && Ccb(DD(hkd(h, gxc))); - u = f; - p || ntd(D, C) ? u = C : ntd(C, D) && (u = D); - w = c; - A = BD(Ohb(a.a, u), 10); - !!A && (w = A.e); - r = X1b(a, h, u, w); - yNb(r, (wtc(), xsc), R1b(a, h, b, c)); - } - m = PD(hkd(f, axc)) === PD((hbd(), ebd)); - if (m) { - for (e = new Fyd((!f.a && (f.a = new cUd(E2, f, 10, 11)), f.a)); e.e != e.i.gc(); ) { - d = BD(Dyd(e), 33); - F = !ikd(d, (Y9c(), o8c)) || dfb(GD(hkd(d, o8c)), sne); - B = PD(hkd(d, axc)) === PD(ebd); - F && B && (Gsb(g10, d, g10.c.b, g10.c), true); - } - } - } - } - function vA(a, b, c, d, e, f) { - var g10, h, i10, j, k, l, m, n, o10, p, q, r; - switch (b) { - case 71: - h = d.q.getFullYear() - nje >= -1900 ? 1 : 0; - c >= 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [pje, qje])[h]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["BC", "AD"])[h]); - break; - case 121: - kA(a, c, d); - break; - case 77: - jA(a, c, d); - break; - case 107: - i10 = e.q.getHours(); - i10 == 0 ? EA(a, 24, c) : EA(a, i10, c); - break; - case 83: - iA(a, c, e); - break; - case 69: - k = d.q.getDay(); - c == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[k]) : c == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[k]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[k]); - break; - case 97: - e.q.getHours() >= 12 && e.q.getHours() < 24 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[1]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[0]); - break; - case 104: - l = e.q.getHours() % 12; - l == 0 ? EA(a, 12, c) : EA(a, l, c); - break; - case 75: - m = e.q.getHours() % 12; - EA(a, m, c); - break; - case 72: - n = e.q.getHours(); - EA(a, n, c); - break; - case 99: - o10 = d.q.getDay(); - c == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[o10]) : c == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[o10]) : c == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[o10]) : EA(a, o10, 1); - break; - case 76: - p = d.q.getMonth(); - c == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[p]) : c == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[p]) : c == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[p]) : EA(a, p + 1, c); - break; - case 81: - q = d.q.getMonth() / 3 | 0; - c < 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[q]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[q]); - break; - case 100: - r = d.q.getDate(); - EA(a, r, c); - break; - case 109: - j = e.q.getMinutes(); - EA(a, j, c); - break; - case 115: - g10 = e.q.getSeconds(); - EA(a, g10, c); - break; - case 122: - c < 4 ? Qfb(a, f.c[0]) : Qfb(a, f.c[1]); - break; - case 118: - Qfb(a, f.b); - break; - case 90: - c < 3 ? Qfb(a, OA(f)) : c == 3 ? Qfb(a, NA(f)) : Qfb(a, QA(f.a)); - break; - default: - return false; - } - return true; - } - function X1b(a, b, c, d) { - var e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H; - N1b(b); - i10 = BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82); - k = BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82); - h = atd(i10); - j = atd(k); - g10 = (!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a).i == 0 ? null : BD(qud((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), 0), 202); - A = BD(Ohb(a.a, h), 10); - F = BD(Ohb(a.a, j), 10); - B = null; - G = null; - if (JD(i10, 186)) { - w = BD(Ohb(a.a, i10), 299); - if (JD(w, 11)) { - B = BD(w, 11); - } else if (JD(w, 10)) { - A = BD(w, 10); - B = BD(Ikb(A.j, 0), 11); - } - } - if (JD(k, 186)) { - D = BD(Ohb(a.a, k), 299); - if (JD(D, 11)) { - G = BD(D, 11); - } else if (JD(D, 10)) { - F = BD(D, 10); - G = BD(Ikb(F.j, 0), 11); - } - } - if (!A || !F) { - throw vbb(new z2c("The source or the target of edge " + b + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN.")); - } - p = new UZb(); - tNb(p, b); - yNb(p, (wtc(), $sc), b); - yNb(p, (Nyc(), jxc), null); - n = BD(vNb(d, Ksc), 21); - A == F && n.Fc((Orc(), Nrc)); - if (!B) { - v = (KAc(), IAc); - C = null; - if (!!g10 && fcd(BD(vNb(A, Vxc), 98))) { - C = new f7c(g10.j, g10.k); - Bfd(C, Mld(b)); - Cfd(C, c); - if (ntd(j, h)) { - v = HAc; - P6c(C, A.n); - } - } - B = $$b(A, C, v, d); - } - if (!G) { - v = (KAc(), HAc); - H = null; - if (!!g10 && fcd(BD(vNb(F, Vxc), 98))) { - H = new f7c(g10.b, g10.c); - Bfd(H, Mld(b)); - Cfd(H, c); - } - G = $$b(F, H, v, Q_b(F)); - } - QZb(p, B); - RZb(p, G); - (B.e.c.length > 1 || B.g.c.length > 1 || G.e.c.length > 1 || G.g.c.length > 1) && n.Fc((Orc(), Irc)); - for (m = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); m.e != m.i.gc(); ) { - l = BD(Dyd(m), 137); - if (!Ccb(DD(hkd(l, Jxc))) && !!l.a) { - q = Z1b(l); - Ekb(p.b, q); - switch (BD(vNb(q, Qwc), 272).g) { - case 1: - case 2: - n.Fc((Orc(), Grc)); - break; - case 0: - n.Fc((Orc(), Erc)); - yNb(q, Qwc, (qad(), nad)); - } - } - } - f = BD(vNb(d, Iwc), 314); - r = BD(vNb(d, Exc), 315); - e = f == (Rpc(), Opc) || r == (Vzc(), Rzc); - if (!!g10 && (!g10.a && (g10.a = new xMd(y2, g10, 5)), g10.a).i != 0 && e) { - s = ofd(g10); - o10 = new s7c(); - for (u = Jsb(s, 0); u.b != u.d.c; ) { - t = BD(Xsb(u), 8); - Dsb(o10, new g7c(t)); - } - yNb(p, _sc, o10); - } - return p; - } - function yZd(a) { - if (a.gb) - return; - a.gb = true; - a.b = Lnd(a, 0); - Knd(a.b, 18); - Qnd(a.b, 19); - a.a = Lnd(a, 1); - Knd(a.a, 1); - Qnd(a.a, 2); - Qnd(a.a, 3); - Qnd(a.a, 4); - Qnd(a.a, 5); - a.o = Lnd(a, 2); - Knd(a.o, 8); - Knd(a.o, 9); - Qnd(a.o, 10); - Qnd(a.o, 11); - Qnd(a.o, 12); - Qnd(a.o, 13); - Qnd(a.o, 14); - Qnd(a.o, 15); - Qnd(a.o, 16); - Qnd(a.o, 17); - Qnd(a.o, 18); - Qnd(a.o, 19); - Qnd(a.o, 20); - Qnd(a.o, 21); - Qnd(a.o, 22); - Qnd(a.o, 23); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - Pnd(a.o); - a.p = Lnd(a, 3); - Knd(a.p, 2); - Knd(a.p, 3); - Knd(a.p, 4); - Knd(a.p, 5); - Qnd(a.p, 6); - Qnd(a.p, 7); - Pnd(a.p); - Pnd(a.p); - a.q = Lnd(a, 4); - Knd(a.q, 8); - a.v = Lnd(a, 5); - Qnd(a.v, 9); - Pnd(a.v); - Pnd(a.v); - Pnd(a.v); - a.w = Lnd(a, 6); - Knd(a.w, 2); - Knd(a.w, 3); - Knd(a.w, 4); - Qnd(a.w, 5); - a.B = Lnd(a, 7); - Qnd(a.B, 1); - Pnd(a.B); - Pnd(a.B); - Pnd(a.B); - a.Q = Lnd(a, 8); - Qnd(a.Q, 0); - Pnd(a.Q); - a.R = Lnd(a, 9); - Knd(a.R, 1); - a.S = Lnd(a, 10); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - Pnd(a.S); - a.T = Lnd(a, 11); - Qnd(a.T, 10); - Qnd(a.T, 11); - Qnd(a.T, 12); - Qnd(a.T, 13); - Qnd(a.T, 14); - Pnd(a.T); - Pnd(a.T); - a.U = Lnd(a, 12); - Knd(a.U, 2); - Knd(a.U, 3); - Qnd(a.U, 4); - Qnd(a.U, 5); - Qnd(a.U, 6); - Qnd(a.U, 7); - Pnd(a.U); - a.V = Lnd(a, 13); - Qnd(a.V, 10); - a.W = Lnd(a, 14); - Knd(a.W, 18); - Knd(a.W, 19); - Knd(a.W, 20); - Qnd(a.W, 21); - Qnd(a.W, 22); - Qnd(a.W, 23); - a.bb = Lnd(a, 15); - Knd(a.bb, 10); - Knd(a.bb, 11); - Knd(a.bb, 12); - Knd(a.bb, 13); - Knd(a.bb, 14); - Knd(a.bb, 15); - Knd(a.bb, 16); - Qnd(a.bb, 17); - Pnd(a.bb); - Pnd(a.bb); - a.eb = Lnd(a, 16); - Knd(a.eb, 2); - Knd(a.eb, 3); - Knd(a.eb, 4); - Knd(a.eb, 5); - Knd(a.eb, 6); - Knd(a.eb, 7); - Qnd(a.eb, 8); - Qnd(a.eb, 9); - a.ab = Lnd(a, 17); - Knd(a.ab, 0); - Knd(a.ab, 1); - a.H = Lnd(a, 18); - Qnd(a.H, 0); - Qnd(a.H, 1); - Qnd(a.H, 2); - Qnd(a.H, 3); - Qnd(a.H, 4); - Qnd(a.H, 5); - Pnd(a.H); - a.db = Lnd(a, 19); - Qnd(a.db, 2); - a.c = Mnd(a, 20); - a.d = Mnd(a, 21); - a.e = Mnd(a, 22); - a.f = Mnd(a, 23); - a.i = Mnd(a, 24); - a.g = Mnd(a, 25); - a.j = Mnd(a, 26); - a.k = Mnd(a, 27); - a.n = Mnd(a, 28); - a.r = Mnd(a, 29); - a.s = Mnd(a, 30); - a.t = Mnd(a, 31); - a.u = Mnd(a, 32); - a.fb = Mnd(a, 33); - a.A = Mnd(a, 34); - a.C = Mnd(a, 35); - a.D = Mnd(a, 36); - a.F = Mnd(a, 37); - a.G = Mnd(a, 38); - a.I = Mnd(a, 39); - a.J = Mnd(a, 40); - a.L = Mnd(a, 41); - a.M = Mnd(a, 42); - a.N = Mnd(a, 43); - a.O = Mnd(a, 44); - a.P = Mnd(a, 45); - a.X = Mnd(a, 46); - a.Y = Mnd(a, 47); - a.Z = Mnd(a, 48); - a.$ = Mnd(a, 49); - a._ = Mnd(a, 50); - a.cb = Mnd(a, 51); - a.K = Mnd(a, 52); - } - function Y9c() { - Y9c = ccb; - var a, b; - o8c = new Lsd(sse); - F9c = new Lsd(tse); - q8c = (F7c(), z7c); - p8c = new Nsd($pe, q8c); - new Tfd(); - r8c = new Nsd(_le, null); - s8c = new Lsd(use); - x8c = (i8c(), qqb(h8c, OC(GC(r1, 1), Kie, 291, 0, [d8c]))); - w8c = new Nsd(lqe, x8c); - y8c = new Nsd(Zpe, (Bcb(), false)); - A8c = (ead(), cad); - z8c = new Nsd(cqe, A8c); - F8c = (Aad(), zad); - E8c = new Nsd(ype, F8c); - I8c = new Nsd(Jre, false); - K8c = (hbd(), fbd); - J8c = new Nsd(tpe, K8c); - g9c = new q0b(12); - f9c = new Nsd(ame, g9c); - O8c = new Nsd(Ame, false); - P8c = new Nsd(xqe, false); - e9c = new Nsd(Dme, false); - u9c = (dcd(), ccd); - t9c = new Nsd(Bme, u9c); - C9c = new Lsd(uqe); - D9c = new Lsd(vme); - E9c = new Lsd(yme); - H9c = new Lsd(zme); - R8c = new s7c(); - Q8c = new Nsd(mqe, R8c); - v8c = new Nsd(pqe, false); - L8c = new Nsd(qqe, false); - new Lsd(vse); - T8c = new H_b(); - S8c = new Nsd(vqe, T8c); - d9c = new Nsd(Xpe, false); - new Tfd(); - G9c = new Nsd(wse, 1); - new Nsd(xse, true); - meb(0); - new Nsd(yse, meb(100)); - new Nsd(zse, false); - meb(0); - new Nsd(Ase, meb(4e3)); - meb(0); - new Nsd(Bse, meb(400)); - new Nsd(Cse, false); - new Nsd(Dse, false); - new Nsd(Ese, true); - new Nsd(Fse, false); - u8c = (Ded(), Ced); - t8c = new Nsd(rse, u8c); - I9c = new Nsd(Lpe, 10); - J9c = new Nsd(Mpe, 10); - K9c = new Nsd(Zle, 20); - L9c = new Nsd(Npe, 10); - M9c = new Nsd(xme, 2); - N9c = new Nsd(Ope, 10); - P9c = new Nsd(Ppe, 0); - Q9c = new Nsd(Spe, 5); - R9c = new Nsd(Qpe, 1); - S9c = new Nsd(Rpe, 1); - T9c = new Nsd(wme, 20); - U9c = new Nsd(Tpe, 10); - X9c = new Nsd(Upe, 10); - O9c = new Lsd(Vpe); - W9c = new I_b(); - V9c = new Nsd(wqe, W9c); - j9c = new Lsd(tqe); - i9c = false; - h9c = new Nsd(sqe, i9c); - V8c = new q0b(5); - U8c = new Nsd(dqe, V8c); - X8c = (Hbd(), b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)); - W8c = new Nsd(Gme, X8c); - m9c = (Tbd(), Qbd); - l9c = new Nsd(gqe, m9c); - o9c = new Lsd(hqe); - p9c = new Lsd(iqe); - q9c = new Lsd(jqe); - n9c = new Lsd(kqe); - Z8c = (a = BD(gdb(I1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0)); - Y8c = new Nsd(Fme, Z8c); - c9c = pqb((Idd(), Bdd)); - b9c = new Nsd(Eme, c9c); - a9c = new f7c(0, 0); - _8c = new Nsd(Tme, a9c); - $8c = new Nsd(bqe, false); - D8c = (qad(), nad); - C8c = new Nsd(nqe, D8c); - B8c = new Nsd(Cme, false); - new Lsd(Gse); - meb(1); - new Nsd(Hse, null); - r9c = new Lsd(rqe); - v9c = new Lsd(oqe); - B9c = (Ucd(), Scd); - A9c = new Nsd(Ype, B9c); - s9c = new Lsd(Wpe); - y9c = (rcd(), pqb(pcd)); - x9c = new Nsd(Hme, y9c); - w9c = new Nsd(eqe, false); - z9c = new Nsd(fqe, true); - M8c = new Nsd(_pe, false); - N8c = new Nsd(aqe, false); - G8c = new Nsd($le, 1); - H8c = (Mad(), Kad); - new Nsd(Ise, H8c); - k9c = true; - } - function wtc() { - wtc = ccb; - var a, b; - $sc = new Lsd(Ime); - xsc = new Lsd("coordinateOrigin"); - itc = new Lsd("processors"); - wsc = new Msd("compoundNode", (Bcb(), false)); - Nsc = new Msd("insideConnections", false); - _sc = new Lsd("originalBendpoints"); - atc = new Lsd("originalDummyNodePosition"); - btc = new Lsd("originalLabelEdge"); - ktc = new Lsd("representedLabels"); - Csc = new Lsd("endLabels"); - Dsc = new Lsd("endLabel.origin"); - Ssc = new Msd("labelSide", (rbd(), qbd)); - Ysc = new Msd("maxEdgeThickness", 0); - ltc = new Msd("reversed", false); - jtc = new Lsd(Jme); - Vsc = new Msd("longEdgeSource", null); - Wsc = new Msd("longEdgeTarget", null); - Usc = new Msd("longEdgeHasLabelDummies", false); - Tsc = new Msd("longEdgeBeforeLabelDummy", false); - Bsc = new Msd("edgeConstraint", (Gqc(), Eqc)); - Psc = new Lsd("inLayerLayoutUnit"); - Osc = new Msd("inLayerConstraint", (esc(), csc)); - Qsc = new Msd("inLayerSuccessorConstraint", new Rkb()); - Rsc = new Msd("inLayerSuccessorConstraintBetweenNonDummies", false); - gtc = new Lsd("portDummy"); - ysc = new Msd("crossingHint", meb(0)); - Ksc = new Msd("graphProperties", (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0))); - Hsc = new Msd("externalPortSide", (Ucd(), Scd)); - Isc = new Msd("externalPortSize", new d7c()); - Fsc = new Lsd("externalPortReplacedDummies"); - Gsc = new Lsd("externalPortReplacedDummy"); - Esc = new Msd("externalPortConnections", (a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0))); - htc = new Msd(tle, 0); - ssc = new Lsd("barycenterAssociates"); - vtc = new Lsd("TopSideComments"); - tsc = new Lsd("BottomSideComments"); - vsc = new Lsd("CommentConnectionPort"); - Msc = new Msd("inputCollect", false); - etc = new Msd("outputCollect", false); - Asc = new Msd("cyclic", false); - zsc = new Lsd("crossHierarchyMap"); - utc = new Lsd("targetOffset"); - new Msd("splineLabelSize", new d7c()); - otc = new Lsd("spacings"); - ftc = new Msd("partitionConstraint", false); - usc = new Lsd("breakingPoint.info"); - stc = new Lsd("splines.survivingEdge"); - rtc = new Lsd("splines.route.start"); - ptc = new Lsd("splines.edgeChain"); - dtc = new Lsd("originalPortConstraints"); - ntc = new Lsd("selfLoopHolder"); - qtc = new Lsd("splines.nsPortY"); - Zsc = new Lsd("modelOrder"); - Xsc = new Lsd("longEdgeTargetNode"); - Jsc = new Msd(Xne, false); - mtc = new Msd(Xne, false); - Lsc = new Lsd("layerConstraints.hiddenNodes"); - ctc = new Lsd("layerConstraints.opposidePort"); - ttc = new Lsd("targetNode.modelOrder"); - } - function jwc() { - jwc = ccb; - puc = (xqc(), vqc); - ouc = new Nsd(Yne, puc); - Guc = new Nsd(Zne, (Bcb(), false)); - Muc = (msc(), ksc); - Luc = new Nsd($ne, Muc); - cvc = new Nsd(_ne, false); - dvc = new Nsd(aoe, true); - Itc = new Nsd(boe, false); - xvc = (BAc(), zAc); - wvc = new Nsd(coe, xvc); - meb(1); - Fvc = new Nsd(doe, meb(7)); - Gvc = new Nsd(eoe, false); - Huc = new Nsd(foe, false); - nuc = (mqc(), iqc); - muc = new Nsd(goe, nuc); - bvc = (lzc(), jzc); - avc = new Nsd(hoe, bvc); - Tuc = (Ctc(), Btc); - Suc = new Nsd(ioe, Tuc); - meb(-1); - Ruc = new Nsd(joe, meb(-1)); - meb(-1); - Uuc = new Nsd(koe, meb(-1)); - meb(-1); - Vuc = new Nsd(loe, meb(4)); - meb(-1); - Xuc = new Nsd(moe, meb(2)); - _uc = (kAc(), iAc); - $uc = new Nsd(noe, _uc); - meb(0); - Zuc = new Nsd(ooe, meb(0)); - Puc = new Nsd(poe, meb(Ohe)); - luc = (Rpc(), Ppc); - kuc = new Nsd(qoe, luc); - Xtc = new Nsd(roe, false); - euc = new Nsd(soe, 0.1); - iuc = new Nsd(toe, false); - meb(-1); - guc = new Nsd(uoe, meb(-1)); - meb(-1); - huc = new Nsd(voe, meb(-1)); - meb(0); - Ytc = new Nsd(woe, meb(40)); - cuc = (Xrc(), Wrc); - buc = new Nsd(xoe, cuc); - $tc = Urc; - Ztc = new Nsd(yoe, $tc); - vvc = (Vzc(), Qzc); - uvc = new Nsd(zoe, vvc); - kvc = new Lsd(Aoe); - fvc = (_qc(), Zqc); - evc = new Nsd(Boe, fvc); - ivc = (lrc(), irc); - hvc = new Nsd(Coe, ivc); - new Tfd(); - nvc = new Nsd(Doe, 0.3); - pvc = new Lsd(Eoe); - rvc = (Izc(), Gzc); - qvc = new Nsd(Foe, rvc); - xuc = (TAc(), RAc); - wuc = new Nsd(Goe, xuc); - zuc = (_Ac(), $Ac); - yuc = new Nsd(Hoe, zuc); - Buc = (tBc(), sBc); - Auc = new Nsd(Ioe, Buc); - Duc = new Nsd(Joe, 0.2); - uuc = new Nsd(Koe, 2); - Bvc = new Nsd(Loe, null); - Dvc = new Nsd(Moe, 10); - Cvc = new Nsd(Noe, 10); - Evc = new Nsd(Ooe, 20); - meb(0); - yvc = new Nsd(Poe, meb(0)); - meb(0); - zvc = new Nsd(Qoe, meb(0)); - meb(0); - Avc = new Nsd(Roe, meb(0)); - Jtc = new Nsd(Soe, false); - Ntc = (yrc(), wrc); - Mtc = new Nsd(Toe, Ntc); - Ltc = (Ipc(), Hpc); - Ktc = new Nsd(Uoe, Ltc); - Juc = new Nsd(Voe, false); - meb(0); - Iuc = new Nsd(Woe, meb(16)); - meb(0); - Kuc = new Nsd(Xoe, meb(5)); - bwc = (LBc(), JBc); - awc = new Nsd(Yoe, bwc); - Hvc = new Nsd(Zoe, 10); - Kvc = new Nsd($oe, 1); - Tvc = (bqc(), aqc); - Svc = new Nsd(_oe, Tvc); - Nvc = new Lsd(ape); - Qvc = meb(1); - meb(0); - Pvc = new Nsd(bpe, Qvc); - gwc = (CBc(), zBc); - fwc = new Nsd(cpe, gwc); - cwc = new Lsd(dpe); - Yvc = new Nsd(epe, true); - Wvc = new Nsd(fpe, 2); - $vc = new Nsd(gpe, true); - tuc = (Sqc(), Qqc); - suc = new Nsd(hpe, tuc); - ruc = (Apc(), wpc); - quc = new Nsd(ipe, ruc); - Wtc = (tAc(), rAc); - Vtc = new Nsd(jpe, Wtc); - Utc = new Nsd(kpe, false); - Ptc = (RXb(), QXb); - Otc = new Nsd(lpe, Ptc); - Ttc = (xzc(), uzc); - Stc = new Nsd(mpe, Ttc); - Qtc = new Nsd(npe, 0); - Rtc = new Nsd(ope, 0); - Ouc = kqc; - Nuc = Opc; - Wuc = izc; - Yuc = izc; - Quc = fzc; - fuc = (hbd(), ebd); - juc = Ppc; - duc = Ppc; - _tc = Ppc; - auc = ebd; - lvc = Tzc; - mvc = Qzc; - gvc = Qzc; - jvc = Qzc; - ovc = Szc; - tvc = Tzc; - svc = Tzc; - Cuc = (Aad(), yad); - Euc = yad; - Fuc = sBc; - vuc = xad; - Ivc = KBc; - Jvc = IBc; - Lvc = KBc; - Mvc = IBc; - Uvc = KBc; - Vvc = IBc; - Ovc = _pc; - Rvc = aqc; - hwc = KBc; - iwc = IBc; - dwc = KBc; - ewc = IBc; - Zvc = IBc; - Xvc = IBc; - _vc = IBc; - } - function S8b() { - S8b = ccb; - Y7b = new T8b("DIRECTION_PREPROCESSOR", 0); - V7b = new T8b("COMMENT_PREPROCESSOR", 1); - Z7b = new T8b("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2); - n8b = new T8b("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3); - G8b = new T8b("PARTITION_PREPROCESSOR", 4); - r8b = new T8b("LABEL_DUMMY_INSERTER", 5); - M8b = new T8b("SELF_LOOP_PREPROCESSOR", 6); - w8b = new T8b("LAYER_CONSTRAINT_PREPROCESSOR", 7); - E8b = new T8b("PARTITION_MIDPROCESSOR", 8); - i8b = new T8b("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9); - A8b = new T8b("NODE_PROMOTION", 10); - v8b = new T8b("LAYER_CONSTRAINT_POSTPROCESSOR", 11); - F8b = new T8b("PARTITION_POSTPROCESSOR", 12); - e8b = new T8b("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13); - O8b = new T8b("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14); - P7b = new T8b("BREAKING_POINT_INSERTER", 15); - z8b = new T8b("LONG_EDGE_SPLITTER", 16); - I8b = new T8b("PORT_SIDE_PROCESSOR", 17); - o8b = new T8b("INVERTED_PORT_PROCESSOR", 18); - H8b = new T8b("PORT_LIST_SORTER", 19); - Q8b = new T8b("SORT_BY_INPUT_ORDER_OF_MODEL", 20); - C8b = new T8b("NORTH_SOUTH_PORT_PREPROCESSOR", 21); - Q7b = new T8b("BREAKING_POINT_PROCESSOR", 22); - D8b = new T8b(Bne, 23); - R8b = new T8b(Cne, 24); - K8b = new T8b("SELF_LOOP_PORT_RESTORER", 25); - P8b = new T8b("SINGLE_EDGE_GRAPH_WRAPPER", 26); - p8b = new T8b("IN_LAYER_CONSTRAINT_PROCESSOR", 27); - b8b = new T8b("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28); - q8b = new T8b("LABEL_AND_NODE_SIZE_PROCESSOR", 29); - m8b = new T8b("INNERMOST_NODE_MARGIN_CALCULATOR", 30); - N8b = new T8b("SELF_LOOP_ROUTER", 31); - T7b = new T8b("COMMENT_NODE_MARGIN_CALCULATOR", 32); - _7b = new T8b("END_LABEL_PREPROCESSOR", 33); - t8b = new T8b("LABEL_DUMMY_SWITCHER", 34); - S7b = new T8b("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35); - u8b = new T8b("LABEL_SIDE_SELECTOR", 36); - k8b = new T8b("HYPEREDGE_DUMMY_MERGER", 37); - f8b = new T8b("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38); - x8b = new T8b("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39); - h8b = new T8b("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40); - W7b = new T8b("CONSTRAINTS_POSTPROCESSOR", 41); - U7b = new T8b("COMMENT_POSTPROCESSOR", 42); - l8b = new T8b("HYPERNODE_PROCESSOR", 43); - g8b = new T8b("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44); - y8b = new T8b("LONG_EDGE_JOINER", 45); - L8b = new T8b("SELF_LOOP_POSTPROCESSOR", 46); - R7b = new T8b("BREAKING_POINT_REMOVER", 47); - B8b = new T8b("NORTH_SOUTH_PORT_POSTPROCESSOR", 48); - j8b = new T8b("HORIZONTAL_COMPACTOR", 49); - s8b = new T8b("LABEL_DUMMY_REMOVER", 50); - c8b = new T8b("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51); - a8b = new T8b("END_LABEL_SORTER", 52); - J8b = new T8b("REVERSED_EDGE_RESTORER", 53); - $7b = new T8b("END_LABEL_POSTPROCESSOR", 54); - d8b = new T8b("HIERARCHICAL_NODE_RESIZER", 55); - X7b = new T8b("DIRECTION_POSTPROCESSOR", 56); - } - function KIc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, $, ab, bb, cb, db2, eb, fb, gb, hb, ib, jb, kb, lb; - cb = 0; - for (H = b, K = 0, N = H.length; K < N; ++K) { - F = H[K]; - for (V = new olb(F.j); V.a < V.c.c.length; ) { - U = BD(mlb(V), 11); - X = 0; - for (h = new olb(U.g); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - F.c != g10.d.i.c && ++X; - } - X > 0 && (a.a[U.p] = cb++); - } - } - hb = 0; - for (I = c, L = 0, O = I.length; L < O; ++L) { - F = I[L]; - P = 0; - for (V = new olb(F.j); V.a < V.c.c.length; ) { - U = BD(mlb(V), 11); - if (U.j == (Ucd(), Acd)) { - for (h = new olb(U.e); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - if (F.c != g10.c.i.c) { - ++P; - break; - } - } - } else { - break; - } - } - R = 0; - Y = new Bib(F.j, F.j.c.length); - while (Y.b > 0) { - U = (sCb(Y.b > 0), BD(Y.a.Xb(Y.c = --Y.b), 11)); - X = 0; - for (h = new olb(U.e); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - F.c != g10.c.i.c && ++X; - } - if (X > 0) { - if (U.j == (Ucd(), Acd)) { - a.a[U.p] = hb; - ++hb; - } else { - a.a[U.p] = hb + P + R; - ++R; - } - } - } - hb += R; - } - W = new Lqb(); - o10 = new zsb(); - for (G = b, J = 0, M = G.length; J < M; ++J) { - F = G[J]; - for (fb = new olb(F.j); fb.a < fb.c.c.length; ) { - eb = BD(mlb(fb), 11); - for (h = new olb(eb.g); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - jb = g10.d; - if (F.c != jb.i.c) { - db2 = BD(Wd(irb(W.f, eb)), 467); - ib = BD(Wd(irb(W.f, jb)), 467); - if (!db2 && !ib) { - n = new NIc(); - o10.a.zc(n, o10); - Ekb(n.a, g10); - Ekb(n.d, eb); - jrb(W.f, eb, n); - Ekb(n.d, jb); - jrb(W.f, jb, n); - } else if (!db2) { - Ekb(ib.a, g10); - Ekb(ib.d, eb); - jrb(W.f, eb, ib); - } else if (!ib) { - Ekb(db2.a, g10); - Ekb(db2.d, jb); - jrb(W.f, jb, db2); - } else if (db2 == ib) { - Ekb(db2.a, g10); - } else { - Ekb(db2.a, g10); - for (T = new olb(ib.d); T.a < T.c.c.length; ) { - S = BD(mlb(T), 11); - jrb(W.f, S, db2); - } - Gkb(db2.a, ib.a); - Gkb(db2.d, ib.d); - o10.a.Bc(ib) != null; - } - } - } - } - } - p = BD(Ee(o10, KC(oY, { 3: 1, 4: 1, 5: 1, 1946: 1 }, 467, o10.a.gc(), 0, 1)), 1946); - D = b[0].c; - bb = c[0].c; - for (k = p, l = 0, m = k.length; l < m; ++l) { - j = k[l]; - j.e = cb; - j.f = hb; - for (V = new olb(j.d); V.a < V.c.c.length; ) { - U = BD(mlb(V), 11); - Z = a.a[U.p]; - if (U.i.c == D) { - Z < j.e && (j.e = Z); - Z > j.b && (j.b = Z); - } else if (U.i.c == bb) { - Z < j.f && (j.f = Z); - Z > j.c && (j.c = Z); - } - } - } - Klb(p, 0, p.length, null); - gb = KC(WD, oje, 25, p.length, 15, 1); - d = KC(WD, oje, 25, hb + 1, 15, 1); - for (r = 0; r < p.length; r++) { - gb[r] = p[r].f; - d[gb[r]] = 1; - } - f = 0; - for (s = 0; s < d.length; s++) { - d[s] == 1 ? d[s] = f : --f; - } - $ = 0; - for (t = 0; t < gb.length; t++) { - gb[t] += d[gb[t]]; - $ = $wnd.Math.max($, gb[t] + 1); - } - i10 = 1; - while (i10 < $) { - i10 *= 2; - } - lb = 2 * i10 - 1; - i10 -= 1; - kb = KC(WD, oje, 25, lb, 15, 1); - e = 0; - for (B = 0; B < gb.length; B++) { - A = gb[B] + i10; - ++kb[A]; - while (A > 0) { - A % 2 > 0 && (e += kb[A + 1]); - A = (A - 1) / 2 | 0; - ++kb[A]; - } - } - C = KC(nY, Uhe, 362, p.length * 2, 0, 1); - for (u = 0; u < p.length; u++) { - C[2 * u] = new QIc(p[u], p[u].e, p[u].b, (UIc(), TIc)); - C[2 * u + 1] = new QIc(p[u], p[u].b, p[u].e, SIc); - } - Klb(C, 0, C.length, null); - Q = 0; - for (v = 0; v < C.length; v++) { - switch (C[v].d.g) { - case 0: - ++Q; - break; - case 1: - --Q; - e += Q; - } - } - ab = KC(nY, Uhe, 362, p.length * 2, 0, 1); - for (w = 0; w < p.length; w++) { - ab[2 * w] = new QIc(p[w], p[w].f, p[w].c, (UIc(), TIc)); - ab[2 * w + 1] = new QIc(p[w], p[w].c, p[w].f, SIc); - } - Klb(ab, 0, ab.length, null); - Q = 0; - for (q = 0; q < ab.length; q++) { - switch (ab[q].d.g) { - case 0: - ++Q; - break; - case 1: - --Q; - e += Q; - } - } - return e; - } - function wfe() { - wfe = ccb; - ffe = new xfe(7); - hfe = (++vfe, new ige(8, 94)); - ++vfe; - new ige(8, 64); - ife = (++vfe, new ige(8, 36)); - ofe = (++vfe, new ige(8, 65)); - pfe = (++vfe, new ige(8, 122)); - qfe = (++vfe, new ige(8, 90)); - tfe = (++vfe, new ige(8, 98)); - mfe = (++vfe, new ige(8, 66)); - rfe = (++vfe, new ige(8, 60)); - ufe = (++vfe, new ige(8, 62)); - efe = new xfe(11); - cfe = (++vfe, new $fe(4)); - Ufe(cfe, 48, 57); - sfe = (++vfe, new $fe(4)); - Ufe(sfe, 48, 57); - Ufe(sfe, 65, 90); - Ufe(sfe, 95, 95); - Ufe(sfe, 97, 122); - nfe = (++vfe, new $fe(4)); - Ufe(nfe, 9, 9); - Ufe(nfe, 10, 10); - Ufe(nfe, 12, 12); - Ufe(nfe, 13, 13); - Ufe(nfe, 32, 32); - jfe = _fe(cfe); - lfe = _fe(sfe); - kfe = _fe(nfe); - Zee = new Lqb(); - $ee = new Lqb(); - _ee = OC(GC(ZI, 1), nie, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]); - Yee = OC(GC(ZI, 1), nie, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", uxe, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]); - afe = OC(GC(WD, 1), oje, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]); - } - function qJb() { - qJb = ccb; - nJb = new tJb("OUT_T_L", 0, (NHb(), LHb), (EIb(), BIb), (gHb(), dHb), dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb((Hbd(), Dbd), OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd]))])); - mJb = new tJb("OUT_T_C", 1, KHb, BIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))])); - oJb = new tJb("OUT_T_R", 2, MHb, BIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd]))])); - eJb = new tJb("OUT_B_L", 3, LHb, DIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd]))])); - dJb = new tJb("OUT_B_C", 4, KHb, DIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))])); - fJb = new tJb("OUT_B_R", 5, MHb, DIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd]))])); - iJb = new tJb("OUT_L_T", 6, MHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Gbd, Abd]))])); - hJb = new tJb("OUT_L_C", 7, MHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd, Abd]))])); - gJb = new tJb("OUT_L_B", 8, MHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Ebd, Abd]))])); - lJb = new tJb("OUT_R_T", 9, LHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Gbd, Abd]))])); - kJb = new tJb("OUT_R_C", 10, LHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd, Abd]))])); - jJb = new tJb("OUT_R_B", 11, LHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Ebd, Abd]))])); - bJb = new tJb("IN_T_L", 12, LHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd, Abd]))])); - aJb = new tJb("IN_T_C", 13, KHb, DIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))])); - cJb = new tJb("IN_T_R", 14, MHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd, Abd]))])); - $Ib = new tJb("IN_C_L", 15, LHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd, Abd]))])); - ZIb = new tJb("IN_C_C", 16, KHb, CIb, eHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd, Abd]))])); - _Ib = new tJb("IN_C_R", 17, MHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd, Abd]))])); - XIb = new tJb("IN_B_L", 18, LHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd, Abd]))])); - WIb = new tJb("IN_B_C", 19, KHb, BIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))])); - YIb = new tJb("IN_B_R", 20, MHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd, Abd]))])); - pJb = new tJb(ole, 21, null, null, null, null, OC(GC(LK, 1), Uhe, 21, 0, [])); - } - function jGd() { - jGd = ccb; - PFd = (NFd(), MFd).b; - BD(qud(ZKd(MFd.b), 0), 34); - BD(qud(ZKd(MFd.b), 1), 18); - OFd = MFd.a; - BD(qud(ZKd(MFd.a), 0), 34); - BD(qud(ZKd(MFd.a), 1), 18); - BD(qud(ZKd(MFd.a), 2), 18); - BD(qud(ZKd(MFd.a), 3), 18); - BD(qud(ZKd(MFd.a), 4), 18); - QFd = MFd.o; - BD(qud(ZKd(MFd.o), 0), 34); - BD(qud(ZKd(MFd.o), 1), 34); - SFd = BD(qud(ZKd(MFd.o), 2), 18); - BD(qud(ZKd(MFd.o), 3), 18); - BD(qud(ZKd(MFd.o), 4), 18); - BD(qud(ZKd(MFd.o), 5), 18); - BD(qud(ZKd(MFd.o), 6), 18); - BD(qud(ZKd(MFd.o), 7), 18); - BD(qud(ZKd(MFd.o), 8), 18); - BD(qud(ZKd(MFd.o), 9), 18); - BD(qud(ZKd(MFd.o), 10), 18); - BD(qud(ZKd(MFd.o), 11), 18); - BD(qud(ZKd(MFd.o), 12), 18); - BD(qud(ZKd(MFd.o), 13), 18); - BD(qud(ZKd(MFd.o), 14), 18); - BD(qud(ZKd(MFd.o), 15), 18); - BD(qud(WKd(MFd.o), 0), 59); - BD(qud(WKd(MFd.o), 1), 59); - BD(qud(WKd(MFd.o), 2), 59); - BD(qud(WKd(MFd.o), 3), 59); - BD(qud(WKd(MFd.o), 4), 59); - BD(qud(WKd(MFd.o), 5), 59); - BD(qud(WKd(MFd.o), 6), 59); - BD(qud(WKd(MFd.o), 7), 59); - BD(qud(WKd(MFd.o), 8), 59); - BD(qud(WKd(MFd.o), 9), 59); - RFd = MFd.p; - BD(qud(ZKd(MFd.p), 0), 34); - BD(qud(ZKd(MFd.p), 1), 34); - BD(qud(ZKd(MFd.p), 2), 34); - BD(qud(ZKd(MFd.p), 3), 34); - BD(qud(ZKd(MFd.p), 4), 18); - BD(qud(ZKd(MFd.p), 5), 18); - BD(qud(WKd(MFd.p), 0), 59); - BD(qud(WKd(MFd.p), 1), 59); - TFd = MFd.q; - BD(qud(ZKd(MFd.q), 0), 34); - UFd = MFd.v; - BD(qud(ZKd(MFd.v), 0), 18); - BD(qud(WKd(MFd.v), 0), 59); - BD(qud(WKd(MFd.v), 1), 59); - BD(qud(WKd(MFd.v), 2), 59); - VFd = MFd.w; - BD(qud(ZKd(MFd.w), 0), 34); - BD(qud(ZKd(MFd.w), 1), 34); - BD(qud(ZKd(MFd.w), 2), 34); - BD(qud(ZKd(MFd.w), 3), 18); - WFd = MFd.B; - BD(qud(ZKd(MFd.B), 0), 18); - BD(qud(WKd(MFd.B), 0), 59); - BD(qud(WKd(MFd.B), 1), 59); - BD(qud(WKd(MFd.B), 2), 59); - ZFd = MFd.Q; - BD(qud(ZKd(MFd.Q), 0), 18); - BD(qud(WKd(MFd.Q), 0), 59); - $Fd = MFd.R; - BD(qud(ZKd(MFd.R), 0), 34); - _Fd = MFd.S; - BD(qud(WKd(MFd.S), 0), 59); - BD(qud(WKd(MFd.S), 1), 59); - BD(qud(WKd(MFd.S), 2), 59); - BD(qud(WKd(MFd.S), 3), 59); - BD(qud(WKd(MFd.S), 4), 59); - BD(qud(WKd(MFd.S), 5), 59); - BD(qud(WKd(MFd.S), 6), 59); - BD(qud(WKd(MFd.S), 7), 59); - BD(qud(WKd(MFd.S), 8), 59); - BD(qud(WKd(MFd.S), 9), 59); - BD(qud(WKd(MFd.S), 10), 59); - BD(qud(WKd(MFd.S), 11), 59); - BD(qud(WKd(MFd.S), 12), 59); - BD(qud(WKd(MFd.S), 13), 59); - BD(qud(WKd(MFd.S), 14), 59); - aGd = MFd.T; - BD(qud(ZKd(MFd.T), 0), 18); - BD(qud(ZKd(MFd.T), 2), 18); - bGd = BD(qud(ZKd(MFd.T), 3), 18); - BD(qud(ZKd(MFd.T), 4), 18); - BD(qud(WKd(MFd.T), 0), 59); - BD(qud(WKd(MFd.T), 1), 59); - BD(qud(ZKd(MFd.T), 1), 18); - cGd = MFd.U; - BD(qud(ZKd(MFd.U), 0), 34); - BD(qud(ZKd(MFd.U), 1), 34); - BD(qud(ZKd(MFd.U), 2), 18); - BD(qud(ZKd(MFd.U), 3), 18); - BD(qud(ZKd(MFd.U), 4), 18); - BD(qud(ZKd(MFd.U), 5), 18); - BD(qud(WKd(MFd.U), 0), 59); - dGd = MFd.V; - BD(qud(ZKd(MFd.V), 0), 18); - eGd = MFd.W; - BD(qud(ZKd(MFd.W), 0), 34); - BD(qud(ZKd(MFd.W), 1), 34); - BD(qud(ZKd(MFd.W), 2), 34); - BD(qud(ZKd(MFd.W), 3), 18); - BD(qud(ZKd(MFd.W), 4), 18); - BD(qud(ZKd(MFd.W), 5), 18); - gGd = MFd.bb; - BD(qud(ZKd(MFd.bb), 0), 34); - BD(qud(ZKd(MFd.bb), 1), 34); - BD(qud(ZKd(MFd.bb), 2), 34); - BD(qud(ZKd(MFd.bb), 3), 34); - BD(qud(ZKd(MFd.bb), 4), 34); - BD(qud(ZKd(MFd.bb), 5), 34); - BD(qud(ZKd(MFd.bb), 6), 34); - BD(qud(ZKd(MFd.bb), 7), 18); - BD(qud(WKd(MFd.bb), 0), 59); - BD(qud(WKd(MFd.bb), 1), 59); - hGd = MFd.eb; - BD(qud(ZKd(MFd.eb), 0), 34); - BD(qud(ZKd(MFd.eb), 1), 34); - BD(qud(ZKd(MFd.eb), 2), 34); - BD(qud(ZKd(MFd.eb), 3), 34); - BD(qud(ZKd(MFd.eb), 4), 34); - BD(qud(ZKd(MFd.eb), 5), 34); - BD(qud(ZKd(MFd.eb), 6), 18); - BD(qud(ZKd(MFd.eb), 7), 18); - fGd = MFd.ab; - BD(qud(ZKd(MFd.ab), 0), 34); - BD(qud(ZKd(MFd.ab), 1), 34); - XFd = MFd.H; - BD(qud(ZKd(MFd.H), 0), 18); - BD(qud(ZKd(MFd.H), 1), 18); - BD(qud(ZKd(MFd.H), 2), 18); - BD(qud(ZKd(MFd.H), 3), 18); - BD(qud(ZKd(MFd.H), 4), 18); - BD(qud(ZKd(MFd.H), 5), 18); - BD(qud(WKd(MFd.H), 0), 59); - iGd = MFd.db; - BD(qud(ZKd(MFd.db), 0), 18); - YFd = MFd.M; - } - function bae(a) { - var b; - if (a.O) - return; - a.O = true; - pnd(a, "type"); - cod(a, "ecore.xml.type"); - dod(a, Ewe); - b = BD(nUd((yFd(), xFd), Ewe), 1945); - wtd(_Kd(a.fb), a.b); - Xnd(a.b, Q9, "AnyType", false, false, true); - Vnd(BD(qud(ZKd(a.b), 0), 34), a.wb.D, Qve, null, 0, -1, Q9, false, false, true, false, false, false); - Vnd(BD(qud(ZKd(a.b), 1), 34), a.wb.D, "any", null, 0, -1, Q9, true, true, true, false, false, true); - Vnd(BD(qud(ZKd(a.b), 2), 34), a.wb.D, "anyAttribute", null, 0, -1, Q9, false, false, true, false, false, false); - Xnd(a.bb, S9, Jwe, false, false, true); - Vnd(BD(qud(ZKd(a.bb), 0), 34), a.gb, "data", null, 0, 1, S9, false, false, true, false, true, false); - Vnd(BD(qud(ZKd(a.bb), 1), 34), a.gb, bue, null, 1, 1, S9, false, false, true, false, true, false); - Xnd(a.fb, T9, Kwe, false, false, true); - Vnd(BD(qud(ZKd(a.fb), 0), 34), b.gb, "rawValue", null, 0, 1, T9, true, true, true, false, true, true); - Vnd(BD(qud(ZKd(a.fb), 1), 34), b.a, Bte, null, 0, 1, T9, true, true, true, false, true, true); - _nd(BD(qud(ZKd(a.fb), 2), 18), a.wb.q, null, "instanceType", 1, 1, T9, false, false, true, false, false, false, false); - Xnd(a.qb, U9, Lwe, false, false, true); - Vnd(BD(qud(ZKd(a.qb), 0), 34), a.wb.D, Qve, null, 0, -1, null, false, false, true, false, false, false); - _nd(BD(qud(ZKd(a.qb), 1), 18), a.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, true, false, true, true, false, false, false); - _nd(BD(qud(ZKd(a.qb), 2), 18), a.wb.ab, null, "xSISchemaLocation", 0, -1, null, true, false, true, true, false, false, false); - Vnd(BD(qud(ZKd(a.qb), 3), 34), a.gb, "cDATA", null, 0, -2, null, true, true, true, false, false, true); - Vnd(BD(qud(ZKd(a.qb), 4), 34), a.gb, "comment", null, 0, -2, null, true, true, true, false, false, true); - _nd(BD(qud(ZKd(a.qb), 5), 18), a.bb, null, jxe, 0, -2, null, true, true, true, true, false, false, true); - Vnd(BD(qud(ZKd(a.qb), 6), 34), a.gb, Ite, null, 0, -2, null, true, true, true, false, false, true); - Znd(a.a, SI, "AnySimpleType", true); - Znd(a.c, ZI, "AnyURI", true); - Znd(a.d, GC(SD, 1), "Base64Binary", true); - Znd(a.e, sbb, "Boolean", true); - Znd(a.f, wI, "BooleanObject", true); - Znd(a.g, SD, "Byte", true); - Znd(a.i, xI, "ByteObject", true); - Znd(a.j, ZI, "Date", true); - Znd(a.k, ZI, "DateTime", true); - Znd(a.n, bJ, "Decimal", true); - Znd(a.o, UD, "Double", true); - Znd(a.p, BI, "DoubleObject", true); - Znd(a.q, ZI, "Duration", true); - Znd(a.s, yK, "ENTITIES", true); - Znd(a.r, yK, "ENTITIESBase", true); - Znd(a.t, ZI, Rwe, true); - Znd(a.u, VD, "Float", true); - Znd(a.v, FI, "FloatObject", true); - Znd(a.w, ZI, "GDay", true); - Znd(a.B, ZI, "GMonth", true); - Znd(a.A, ZI, "GMonthDay", true); - Znd(a.C, ZI, "GYear", true); - Znd(a.D, ZI, "GYearMonth", true); - Znd(a.F, GC(SD, 1), "HexBinary", true); - Znd(a.G, ZI, "ID", true); - Znd(a.H, ZI, "IDREF", true); - Znd(a.J, yK, "IDREFS", true); - Znd(a.I, yK, "IDREFSBase", true); - Znd(a.K, WD, "Int", true); - Znd(a.M, cJ, "Integer", true); - Znd(a.L, JI, "IntObject", true); - Znd(a.P, ZI, "Language", true); - Znd(a.Q, XD, "Long", true); - Znd(a.R, MI, "LongObject", true); - Znd(a.S, ZI, "Name", true); - Znd(a.T, ZI, Swe, true); - Znd(a.U, cJ, "NegativeInteger", true); - Znd(a.V, ZI, axe, true); - Znd(a.X, yK, "NMTOKENS", true); - Znd(a.W, yK, "NMTOKENSBase", true); - Znd(a.Y, cJ, "NonNegativeInteger", true); - Znd(a.Z, cJ, "NonPositiveInteger", true); - Znd(a.$, ZI, "NormalizedString", true); - Znd(a._, ZI, "NOTATION", true); - Znd(a.ab, ZI, "PositiveInteger", true); - Znd(a.cb, ZI, "QName", true); - Znd(a.db, rbb, "Short", true); - Znd(a.eb, UI, "ShortObject", true); - Znd(a.gb, ZI, Vie, true); - Znd(a.hb, ZI, "Time", true); - Znd(a.ib, ZI, "Token", true); - Znd(a.jb, rbb, "UnsignedByte", true); - Znd(a.kb, UI, "UnsignedByteObject", true); - Znd(a.lb, XD, "UnsignedInt", true); - Znd(a.mb, MI, "UnsignedIntObject", true); - Znd(a.nb, cJ, "UnsignedLong", true); - Znd(a.ob, WD, "UnsignedShort", true); - Znd(a.pb, JI, "UnsignedShortObject", true); - Rnd(a, Ewe); - _9d(a); - } - function Oyc(a) { - r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sne), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new Ryc()), sne), qqb((Csd(), Bsd), OC(GC(O3, 1), Kie, 237, 0, [ysd, zsd, xsd, Asd, vsd, usd]))))); - p4c(a, sne, Lpe, Ksd(iyc)); - p4c(a, sne, Mpe, Ksd(jyc)); - p4c(a, sne, Zle, Ksd(kyc)); - p4c(a, sne, Npe, Ksd(lyc)); - p4c(a, sne, xme, Ksd(nyc)); - p4c(a, sne, Ope, Ksd(oyc)); - p4c(a, sne, Ppe, Ksd(ryc)); - p4c(a, sne, Qpe, Ksd(tyc)); - p4c(a, sne, Rpe, Ksd(uyc)); - p4c(a, sne, Spe, Ksd(syc)); - p4c(a, sne, wme, Ksd(vyc)); - p4c(a, sne, Tpe, Ksd(xyc)); - p4c(a, sne, Upe, Ksd(zyc)); - p4c(a, sne, Vpe, Ksd(qyc)); - p4c(a, sne, Loe, Ksd(hyc)); - p4c(a, sne, Noe, Ksd(myc)); - p4c(a, sne, Moe, Ksd(pyc)); - p4c(a, sne, Ooe, Ksd(wyc)); - p4c(a, sne, vme, meb(0)); - p4c(a, sne, Poe, Ksd(cyc)); - p4c(a, sne, Qoe, Ksd(dyc)); - p4c(a, sne, Roe, Ksd(eyc)); - p4c(a, sne, Yoe, Ksd(Kyc)); - p4c(a, sne, Zoe, Ksd(Cyc)); - p4c(a, sne, $oe, Ksd(Dyc)); - p4c(a, sne, _oe, Ksd(Gyc)); - p4c(a, sne, ape, Ksd(Eyc)); - p4c(a, sne, bpe, Ksd(Fyc)); - p4c(a, sne, cpe, Ksd(Myc)); - p4c(a, sne, dpe, Ksd(Lyc)); - p4c(a, sne, epe, Ksd(Iyc)); - p4c(a, sne, fpe, Ksd(Hyc)); - p4c(a, sne, gpe, Ksd(Jyc)); - p4c(a, sne, Eoe, Ksd(Cxc)); - p4c(a, sne, Foe, Ksd(Dxc)); - p4c(a, sne, Ioe, Ksd(Xwc)); - p4c(a, sne, Joe, Ksd(Ywc)); - p4c(a, sne, ame, Lxc); - p4c(a, sne, ype, Twc); - p4c(a, sne, Wpe, 0); - p4c(a, sne, yme, meb(1)); - p4c(a, sne, _le, tme); - p4c(a, sne, Xpe, Ksd(Jxc)); - p4c(a, sne, Bme, Ksd(Vxc)); - p4c(a, sne, Ype, Ksd($xc)); - p4c(a, sne, Zpe, Ksd(Kwc)); - p4c(a, sne, $pe, Ksd(mwc)); - p4c(a, sne, tpe, Ksd(axc)); - p4c(a, sne, zme, (Bcb(), true)); - p4c(a, sne, _pe, Ksd(fxc)); - p4c(a, sne, aqe, Ksd(gxc)); - p4c(a, sne, Fme, Ksd(Fxc)); - p4c(a, sne, Eme, Ksd(Ixc)); - p4c(a, sne, bqe, Ksd(Gxc)); - p4c(a, sne, cqe, Nwc); - p4c(a, sne, Gme, Ksd(xxc)); - p4c(a, sne, dqe, Ksd(wxc)); - p4c(a, sne, Hme, Ksd(Yxc)); - p4c(a, sne, eqe, Ksd(Xxc)); - p4c(a, sne, fqe, Ksd(Zxc)); - p4c(a, sne, gqe, Oxc); - p4c(a, sne, hqe, Ksd(Qxc)); - p4c(a, sne, iqe, Ksd(Rxc)); - p4c(a, sne, jqe, Ksd(Sxc)); - p4c(a, sne, kqe, Ksd(Pxc)); - p4c(a, sne, eoe, Ksd(Byc)); - p4c(a, sne, hoe, Ksd(sxc)); - p4c(a, sne, noe, Ksd(rxc)); - p4c(a, sne, doe, Ksd(Ayc)); - p4c(a, sne, ioe, Ksd(mxc)); - p4c(a, sne, goe, Ksd(Jwc)); - p4c(a, sne, qoe, Ksd(Iwc)); - p4c(a, sne, roe, Ksd(Awc)); - p4c(a, sne, woe, Ksd(Bwc)); - p4c(a, sne, xoe, Ksd(Dwc)); - p4c(a, sne, yoe, Ksd(Cwc)); - p4c(a, sne, toe, Ksd(Hwc)); - p4c(a, sne, _ne, Ksd(uxc)); - p4c(a, sne, aoe, Ksd(vxc)); - p4c(a, sne, $ne, Ksd(ixc)); - p4c(a, sne, zoe, Ksd(Exc)); - p4c(a, sne, Coe, Ksd(zxc)); - p4c(a, sne, Zne, Ksd($wc)); - p4c(a, sne, Doe, Ksd(Bxc)); - p4c(a, sne, Goe, Ksd(Vwc)); - p4c(a, sne, Hoe, Ksd(Wwc)); - p4c(a, sne, lqe, Ksd(zwc)); - p4c(a, sne, Boe, Ksd(yxc)); - p4c(a, sne, Toe, Ksd(swc)); - p4c(a, sne, Uoe, Ksd(rwc)); - p4c(a, sne, Soe, Ksd(qwc)); - p4c(a, sne, Voe, Ksd(cxc)); - p4c(a, sne, Woe, Ksd(bxc)); - p4c(a, sne, Xoe, Ksd(dxc)); - p4c(a, sne, Tme, Ksd(Hxc)); - p4c(a, sne, mqe, Ksd(jxc)); - p4c(a, sne, $le, Ksd(Zwc)); - p4c(a, sne, nqe, Ksd(Qwc)); - p4c(a, sne, Cme, Ksd(Pwc)); - p4c(a, sne, soe, Ksd(Ewc)); - p4c(a, sne, oqe, Ksd(Wxc)); - p4c(a, sne, pqe, Ksd(pwc)); - p4c(a, sne, qqe, Ksd(exc)); - p4c(a, sne, rqe, Ksd(Txc)); - p4c(a, sne, sqe, Ksd(Mxc)); - p4c(a, sne, tqe, Ksd(Nxc)); - p4c(a, sne, loe, Ksd(oxc)); - p4c(a, sne, moe, Ksd(pxc)); - p4c(a, sne, uqe, Ksd(ayc)); - p4c(a, sne, boe, Ksd(nwc)); - p4c(a, sne, ooe, Ksd(qxc)); - p4c(a, sne, hpe, Ksd(Rwc)); - p4c(a, sne, ipe, Ksd(Owc)); - p4c(a, sne, vqe, Ksd(txc)); - p4c(a, sne, poe, Ksd(kxc)); - p4c(a, sne, Aoe, Ksd(Axc)); - p4c(a, sne, wqe, Ksd(yyc)); - p4c(a, sne, Yne, Ksd(Mwc)); - p4c(a, sne, coe, Ksd(_xc)); - p4c(a, sne, Koe, Ksd(Uwc)); - p4c(a, sne, joe, Ksd(lxc)); - p4c(a, sne, uoe, Ksd(Fwc)); - p4c(a, sne, xqe, Ksd(hxc)); - p4c(a, sne, koe, Ksd(nxc)); - p4c(a, sne, voe, Ksd(Gwc)); - p4c(a, sne, jpe, Ksd(ywc)); - p4c(a, sne, mpe, Ksd(wwc)); - p4c(a, sne, npe, Ksd(uwc)); - p4c(a, sne, ope, Ksd(vwc)); - p4c(a, sne, kpe, Ksd(xwc)); - p4c(a, sne, lpe, Ksd(twc)); - p4c(a, sne, foe, Ksd(_wc)); - } - function kee(a, b) { - var c, d; - if (!cee) { - cee = new Lqb(); - dee = new Lqb(); - d = (wfe(), wfe(), ++vfe, new $fe(4)); - Ree(d, " \n\r\r "); - Shb(cee, pxe, d); - Shb(dee, pxe, _fe(d)); - d = (null, ++vfe, new $fe(4)); - Ree(d, sxe); - Shb(cee, nxe, d); - Shb(dee, nxe, _fe(d)); - d = (null, ++vfe, new $fe(4)); - Ree(d, sxe); - Shb(cee, nxe, d); - Shb(dee, nxe, _fe(d)); - d = (null, ++vfe, new $fe(4)); - Ree(d, txe); - Xfe(d, BD(Phb(cee, nxe), 117)); - Shb(cee, oxe, d); - Shb(dee, oxe, _fe(d)); - d = (null, ++vfe, new $fe(4)); - Ree(d, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣"); - Shb(cee, qxe, d); - Shb(dee, qxe, _fe(d)); - d = (null, ++vfe, new $fe(4)); - Ree(d, txe); - Ufe(d, 95, 95); - Ufe(d, 58, 58); - Shb(cee, rxe, d); - Shb(dee, rxe, _fe(d)); - } - c = b ? BD(Phb(cee, a), 136) : BD(Phb(dee, a), 136); - return c; - } - function _9d(a) { - Bnd(a.a, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anySimpleType"])); - Bnd(a.b, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyType", Sve, Qve])); - Bnd(BD(qud(ZKd(a.b), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"])); - Bnd(BD(qud(ZKd(a.b), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, Dwe, Fwe, fue, ":1", Owe, "lax"])); - Bnd(BD(qud(ZKd(a.b), 2), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, vwe, Dwe, Fwe, fue, ":2", Owe, "lax"])); - Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyURI", Cwe, ywe])); - Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "base64Binary", Cwe, ywe])); - Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Khe, Cwe, ywe])); - Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "boolean:Object", cwe, Khe])); - Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Eve])); - Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "byte:Object", cwe, Eve])); - Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "date", Cwe, ywe])); - Bnd(a.k, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "dateTime", Cwe, ywe])); - Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "decimal", Cwe, ywe])); - Bnd(a.o, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Gve, Cwe, ywe])); - Bnd(a.p, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "double:Object", cwe, Gve])); - Bnd(a.q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "duration", Cwe, ywe])); - Bnd(a.s, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ENTITIES", cwe, Pwe, Qwe, "1"])); - Bnd(a.r, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Pwe, zwe, Rwe])); - Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Rwe, cwe, Swe])); - Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Hve, Cwe, ywe])); - Bnd(a.v, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "float:Object", cwe, Hve])); - Bnd(a.w, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gDay", Cwe, ywe])); - Bnd(a.B, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonth", Cwe, ywe])); - Bnd(a.A, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonthDay", Cwe, ywe])); - Bnd(a.C, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYear", Cwe, ywe])); - Bnd(a.D, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYearMonth", Cwe, ywe])); - Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "hexBinary", Cwe, ywe])); - Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ID", cwe, Swe])); - Bnd(a.H, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREF", cwe, Swe])); - Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREFS", cwe, Twe, Qwe, "1"])); - Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Twe, zwe, "IDREF"])); - Bnd(a.K, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Ive])); - Bnd(a.M, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Uwe])); - Bnd(a.L, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "int:Object", cwe, Ive])); - Bnd(a.P, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "language", cwe, Vwe, Wwe, Xwe])); - Bnd(a.Q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Jve])); - Bnd(a.R, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "long:Object", cwe, Jve])); - Bnd(a.S, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "Name", cwe, Vwe, Wwe, Ywe])); - Bnd(a.T, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Swe, cwe, "Name", Wwe, Zwe])); - Bnd(a.U, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "negativeInteger", cwe, $we, _we, "-1"])); - Bnd(a.V, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, axe, cwe, Vwe, Wwe, "\\c+"])); - Bnd(a.X, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NMTOKENS", cwe, bxe, Qwe, "1"])); - Bnd(a.W, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, bxe, zwe, axe])); - Bnd(a.Y, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, cxe, cwe, Uwe, dxe, "0"])); - Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, $we, cwe, Uwe, _we, "0"])); - Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, exe, cwe, Mhe, Cwe, "replace"])); - Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NOTATION", Cwe, ywe])); - Bnd(a.ab, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "positiveInteger", cwe, cxe, dxe, "1"])); - Bnd(a.bb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "processingInstruction_._type", Sve, "empty"])); - Bnd(BD(qud(ZKd(a.bb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "data"])); - Bnd(BD(qud(ZKd(a.bb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, bue])); - Bnd(a.cb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "QName", Cwe, ywe])); - Bnd(a.db, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Kve])); - Bnd(a.eb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "short:Object", cwe, Kve])); - Bnd(a.fb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "simpleAnyType", Sve, twe])); - Bnd(BD(qud(ZKd(a.fb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":3", Sve, twe])); - Bnd(BD(qud(ZKd(a.fb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":4", Sve, twe])); - Bnd(BD(qud(ZKd(a.fb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":5", Sve, twe])); - Bnd(a.gb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Mhe, Cwe, "preserve"])); - Bnd(a.hb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "time", Cwe, ywe])); - Bnd(a.ib, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Vwe, cwe, exe, Cwe, ywe])); - Bnd(a.jb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, fxe, _we, "255", dxe, "0"])); - Bnd(a.kb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedByte:Object", cwe, fxe])); - Bnd(a.lb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, gxe, _we, "4294967295", dxe, "0"])); - Bnd(a.mb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedInt:Object", cwe, gxe])); - Bnd(a.nb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedLong", cwe, cxe, _we, hxe, dxe, "0"])); - Bnd(a.ob, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ixe, _we, "65535", dxe, "0"])); - Bnd(a.pb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedShort:Object", cwe, ixe])); - Bnd(a.qb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "", Sve, Qve])); - Bnd(BD(qud(ZKd(a.qb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"])); - Bnd(BD(qud(ZKd(a.qb), 1), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xmlns:prefix"])); - Bnd(BD(qud(ZKd(a.qb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xsi:schemaLocation"])); - Bnd(BD(qud(ZKd(a.qb), 3), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "cDATA", Awe, Bwe])); - Bnd(BD(qud(ZKd(a.qb), 4), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "comment", Awe, Bwe])); - Bnd(BD(qud(ZKd(a.qb), 5), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, jxe, Awe, Bwe])); - Bnd(BD(qud(ZKd(a.qb), 6), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, Ite, Awe, Bwe])); - } - function tvd(a) { - return dfb("_UI_EMFDiagnostic_marker", a) ? "EMF Problem" : dfb("_UI_CircularContainment_diagnostic", a) ? "An object may not circularly contain itself" : dfb(sue, a) ? "Wrong character." : dfb(tue, a) ? "Invalid reference number." : dfb(uue, a) ? "A character is required after \\." : dfb(vue, a) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : dfb(wue, a) ? "'(?<' or '(? toIndex: ", zke = ", toIndex: ", Ake = "Index: ", Bke = ", Size: ", Cke = "org.eclipse.elk.alg.common", Dke = { 62: 1 }, Eke = "org.eclipse.elk.alg.common.compaction", Fke = "Scanline/EventHandler", Gke = "org.eclipse.elk.alg.common.compaction.oned", Hke = "CNode belongs to another CGroup.", Ike = "ISpacingsHandler/1", Jke = "The ", Kke = " instance has been finished already.", Lke = "The direction ", Mke = " is not supported by the CGraph instance.", Nke = "OneDimensionalCompactor", Oke = "OneDimensionalCompactor/lambda$0$Type", Pke = "Quadruplet", Qke = "ScanlineConstraintCalculator", Rke = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", Ske = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", Tke = "ScanlineConstraintCalculator/Timestamp", Uke = "ScanlineConstraintCalculator/lambda$0$Type", Vke = { 169: 1, 45: 1 }, Wke = "org.eclipse.elk.alg.common.compaction.options", Xke = "org.eclipse.elk.core.data", Yke = "org.eclipse.elk.polyomino.traversalStrategy", Zke = "org.eclipse.elk.polyomino.lowLevelSort", $ke = "org.eclipse.elk.polyomino.highLevelSort", _ke = "org.eclipse.elk.polyomino.fill", ale = { 130: 1 }, ble = "polyomino", cle = "org.eclipse.elk.alg.common.networksimplex", dle = { 177: 1, 3: 1, 4: 1 }, ele = "org.eclipse.elk.alg.common.nodespacing", fle = "org.eclipse.elk.alg.common.nodespacing.cellsystem", gle = "CENTER", hle = { 212: 1, 326: 1 }, ile = { 3: 1, 4: 1, 5: 1, 595: 1 }, jle = "LEFT", kle = "RIGHT", lle = "Vertical alignment cannot be null", mle = "BOTTOM", nle = "org.eclipse.elk.alg.common.nodespacing.internal", ole = "UNDEFINED", ple = 0.01, qle = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", rle = "LabelPlacer/lambda$0$Type", sle = "LabelPlacer/lambda$1$Type", tle = "portRatioOrPosition", ule = "org.eclipse.elk.alg.common.overlaps", vle = "DOWN", wle = "org.eclipse.elk.alg.common.polyomino", xle = "NORTH", yle = "EAST", zle = "SOUTH", Ale = "WEST", Ble = "org.eclipse.elk.alg.common.polyomino.structures", Cle = "Direction", Dle = "Grid is only of size ", Ele = ". Requested point (", Fle = ") is out of bounds.", Gle = " Given center based coordinates were (", Hle = "org.eclipse.elk.graph.properties", Ile = "IPropertyHolder", Jle = { 3: 1, 94: 1, 134: 1 }, Kle = "org.eclipse.elk.alg.common.spore", Lle = "org.eclipse.elk.alg.common.utils", Mle = { 209: 1 }, Nle = "org.eclipse.elk.core", Ole = "Connected Components Compaction", Ple = "org.eclipse.elk.alg.disco", Qle = "org.eclipse.elk.alg.disco.graph", Rle = "org.eclipse.elk.alg.disco.options", Sle = "CompactionStrategy", Tle = "org.eclipse.elk.disco.componentCompaction.strategy", Ule = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", Vle = "org.eclipse.elk.disco.debug.discoGraph", Wle = "org.eclipse.elk.disco.debug.discoPolys", Xle = "componentCompaction", Yle = "org.eclipse.elk.disco", Zle = "org.eclipse.elk.spacing.componentComponent", $le = "org.eclipse.elk.edge.thickness", _le = "org.eclipse.elk.aspectRatio", ame = "org.eclipse.elk.padding", bme = "org.eclipse.elk.alg.disco.transform", cme = 1.5707963267948966, dme = 17976931348623157e292, eme = { 3: 1, 4: 1, 5: 1, 192: 1 }, fme = { 3: 1, 6: 1, 4: 1, 5: 1, 106: 1, 120: 1 }, gme = "org.eclipse.elk.alg.force", hme = "ComponentsProcessor", ime = "ComponentsProcessor/1", jme = "org.eclipse.elk.alg.force.graph", kme = "Component Layout", lme = "org.eclipse.elk.alg.force.model", mme = "org.eclipse.elk.force.model", nme = "org.eclipse.elk.force.iterations", ome = "org.eclipse.elk.force.repulsivePower", pme = "org.eclipse.elk.force.temperature", qme = 1e-3, rme = "org.eclipse.elk.force.repulsion", sme = "org.eclipse.elk.alg.force.options", tme = 1.600000023841858, ume = "org.eclipse.elk.force", vme = "org.eclipse.elk.priority", wme = "org.eclipse.elk.spacing.nodeNode", xme = "org.eclipse.elk.spacing.edgeLabel", yme = "org.eclipse.elk.randomSeed", zme = "org.eclipse.elk.separateConnectedComponents", Ame = "org.eclipse.elk.interactive", Bme = "org.eclipse.elk.portConstraints", Cme = "org.eclipse.elk.edgeLabels.inline", Dme = "org.eclipse.elk.omitNodeMicroLayout", Eme = "org.eclipse.elk.nodeSize.options", Fme = "org.eclipse.elk.nodeSize.constraints", Gme = "org.eclipse.elk.nodeLabels.placement", Hme = "org.eclipse.elk.portLabels.placement", Ime = "origin", Jme = "random", Kme = "boundingBox.upLeft", Lme = "boundingBox.lowRight", Mme = "org.eclipse.elk.stress.fixed", Nme = "org.eclipse.elk.stress.desiredEdgeLength", Ome = "org.eclipse.elk.stress.dimension", Pme = "org.eclipse.elk.stress.epsilon", Qme = "org.eclipse.elk.stress.iterationLimit", Rme = "org.eclipse.elk.stress", Sme = "ELK Stress", Tme = "org.eclipse.elk.nodeSize.minimum", Ume = "org.eclipse.elk.alg.force.stress", Vme = "Layered layout", Wme = "org.eclipse.elk.alg.layered", Xme = "org.eclipse.elk.alg.layered.compaction.components", Yme = "org.eclipse.elk.alg.layered.compaction.oned", Zme = "org.eclipse.elk.alg.layered.compaction.oned.algs", $me = "org.eclipse.elk.alg.layered.compaction.recthull", _me = "org.eclipse.elk.alg.layered.components", ane = "NONE", bne = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 122: 1 }, cne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 106: 1, 120: 1 }, dne = "org.eclipse.elk.alg.layered.compound", ene = { 51: 1 }, fne = "org.eclipse.elk.alg.layered.graph", gne = " -> ", hne = "Not supported by LGraph", ine = "Port side is undefined", jne = { 3: 1, 6: 1, 4: 1, 5: 1, 474: 1, 141: 1, 106: 1, 120: 1 }, kne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 193: 1, 203: 1, 106: 1, 120: 1 }, lne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 1943: 1, 203: 1, 106: 1, 120: 1 }, mne = `([{"' \r -`, nne = `)]}"' \r -`, one = "The given string contains parts that cannot be parsed as numbers.", pne = "org.eclipse.elk.core.math", qne = { 3: 1, 4: 1, 142: 1, 207: 1, 414: 1 }, rne = { 3: 1, 4: 1, 116: 1, 207: 1, 414: 1 }, sne = "org.eclipse.elk.layered", tne = "org.eclipse.elk.alg.layered.graph.transform", une = "ElkGraphImporter", vne = "ElkGraphImporter/lambda$0$Type", wne = "ElkGraphImporter/lambda$1$Type", xne = "ElkGraphImporter/lambda$2$Type", yne = "ElkGraphImporter/lambda$4$Type", zne = "Node margin calculation", Ane = "org.eclipse.elk.alg.layered.intermediate", Bne = "ONE_SIDED_GREEDY_SWITCH", Cne = "TWO_SIDED_GREEDY_SWITCH", Dne = "No implementation is available for the layout processor ", Ene = "IntermediateProcessorStrategy", Fne = "Node '", Gne = "FIRST_SEPARATE", Hne = "LAST_SEPARATE", Ine = "Odd port side processing", Jne = "org.eclipse.elk.alg.layered.intermediate.compaction", Kne = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", Lne = "org.eclipse.elk.alg.layered.p3order.counting", Mne = { 225: 1 }, Nne = "org.eclipse.elk.alg.layered.intermediate.loops", One = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", Pne = "org.eclipse.elk.alg.layered.intermediate.loops.routing", Qne = "org.eclipse.elk.alg.layered.intermediate.preserveorder", Rne = "org.eclipse.elk.alg.layered.intermediate.wrapping", Sne = "org.eclipse.elk.alg.layered.options", Tne = "INTERACTIVE", Une = "DEPTH_FIRST", Vne = "EDGE_LENGTH", Wne = "SELF_LOOPS", Xne = "firstTryWithInitialOrder", Yne = "org.eclipse.elk.layered.directionCongruency", Zne = "org.eclipse.elk.layered.feedbackEdges", $ne = "org.eclipse.elk.layered.interactiveReferencePoint", _ne = "org.eclipse.elk.layered.mergeEdges", aoe = "org.eclipse.elk.layered.mergeHierarchyEdges", boe = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", coe = "org.eclipse.elk.layered.portSortingStrategy", doe = "org.eclipse.elk.layered.thoroughness", eoe = "org.eclipse.elk.layered.unnecessaryBendpoints", foe = "org.eclipse.elk.layered.generatePositionAndLayerIds", goe = "org.eclipse.elk.layered.cycleBreaking.strategy", hoe = "org.eclipse.elk.layered.layering.strategy", ioe = "org.eclipse.elk.layered.layering.layerConstraint", joe = "org.eclipse.elk.layered.layering.layerChoiceConstraint", koe = "org.eclipse.elk.layered.layering.layerId", loe = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", moe = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", noe = "org.eclipse.elk.layered.layering.nodePromotion.strategy", ooe = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", poe = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", qoe = "org.eclipse.elk.layered.crossingMinimization.strategy", roe = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", soe = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", toe = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", uoe = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", voe = "org.eclipse.elk.layered.crossingMinimization.positionId", woe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", xoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", yoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", zoe = "org.eclipse.elk.layered.nodePlacement.strategy", Aoe = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", Boe = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", Coe = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", Doe = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", Eoe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", Foe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", Goe = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", Hoe = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", Ioe = "org.eclipse.elk.layered.edgeRouting.splines.mode", Joe = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", Koe = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", Loe = "org.eclipse.elk.layered.spacing.baseValue", Moe = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", Noe = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", Ooe = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", Poe = "org.eclipse.elk.layered.priority.direction", Qoe = "org.eclipse.elk.layered.priority.shortness", Roe = "org.eclipse.elk.layered.priority.straightness", Soe = "org.eclipse.elk.layered.compaction.connectedComponents", Toe = "org.eclipse.elk.layered.compaction.postCompaction.strategy", Uoe = "org.eclipse.elk.layered.compaction.postCompaction.constraints", Voe = "org.eclipse.elk.layered.highDegreeNodes.treatment", Woe = "org.eclipse.elk.layered.highDegreeNodes.threshold", Xoe = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", Yoe = "org.eclipse.elk.layered.wrapping.strategy", Zoe = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", $oe = "org.eclipse.elk.layered.wrapping.correctionFactor", _oe = "org.eclipse.elk.layered.wrapping.cutting.strategy", ape = "org.eclipse.elk.layered.wrapping.cutting.cuts", bpe = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", cpe = "org.eclipse.elk.layered.wrapping.validify.strategy", dpe = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", epe = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", fpe = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", gpe = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", hpe = "org.eclipse.elk.layered.edgeLabels.sideSelection", ipe = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", jpe = "org.eclipse.elk.layered.considerModelOrder.strategy", kpe = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", lpe = "org.eclipse.elk.layered.considerModelOrder.components", mpe = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", npe = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", ope = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", ppe = "layering", qpe = "layering.minWidth", rpe = "layering.nodePromotion", spe = "crossingMinimization", tpe = "org.eclipse.elk.hierarchyHandling", upe = "crossingMinimization.greedySwitch", vpe = "nodePlacement", wpe = "nodePlacement.bk", xpe = "edgeRouting", ype = "org.eclipse.elk.edgeRouting", zpe = "spacing", Ape = "priority", Bpe = "compaction", Cpe = "compaction.postCompaction", Dpe = "Specifies whether and how post-process compaction is applied.", Epe = "highDegreeNodes", Fpe = "wrapping", Gpe = "wrapping.cutting", Hpe = "wrapping.validify", Ipe = "wrapping.multiEdge", Jpe = "edgeLabels", Kpe = "considerModelOrder", Lpe = "org.eclipse.elk.spacing.commentComment", Mpe = "org.eclipse.elk.spacing.commentNode", Npe = "org.eclipse.elk.spacing.edgeEdge", Ope = "org.eclipse.elk.spacing.edgeNode", Ppe = "org.eclipse.elk.spacing.labelLabel", Qpe = "org.eclipse.elk.spacing.labelPortHorizontal", Rpe = "org.eclipse.elk.spacing.labelPortVertical", Spe = "org.eclipse.elk.spacing.labelNode", Tpe = "org.eclipse.elk.spacing.nodeSelfLoop", Upe = "org.eclipse.elk.spacing.portPort", Vpe = "org.eclipse.elk.spacing.individual", Wpe = "org.eclipse.elk.port.borderOffset", Xpe = "org.eclipse.elk.noLayout", Ype = "org.eclipse.elk.port.side", Zpe = "org.eclipse.elk.debugMode", $pe = "org.eclipse.elk.alignment", _pe = "org.eclipse.elk.insideSelfLoops.activate", aqe = "org.eclipse.elk.insideSelfLoops.yo", bqe = "org.eclipse.elk.nodeSize.fixedGraphSize", cqe = "org.eclipse.elk.direction", dqe = "org.eclipse.elk.nodeLabels.padding", eqe = "org.eclipse.elk.portLabels.nextToPortIfPossible", fqe = "org.eclipse.elk.portLabels.treatAsGroup", gqe = "org.eclipse.elk.portAlignment.default", hqe = "org.eclipse.elk.portAlignment.north", iqe = "org.eclipse.elk.portAlignment.south", jqe = "org.eclipse.elk.portAlignment.west", kqe = "org.eclipse.elk.portAlignment.east", lqe = "org.eclipse.elk.contentAlignment", mqe = "org.eclipse.elk.junctionPoints", nqe = "org.eclipse.elk.edgeLabels.placement", oqe = "org.eclipse.elk.port.index", pqe = "org.eclipse.elk.commentBox", qqe = "org.eclipse.elk.hypernode", rqe = "org.eclipse.elk.port.anchor", sqe = "org.eclipse.elk.partitioning.activate", tqe = "org.eclipse.elk.partitioning.partition", uqe = "org.eclipse.elk.position", vqe = "org.eclipse.elk.margins", wqe = "org.eclipse.elk.spacing.portsSurrounding", xqe = "org.eclipse.elk.interactiveLayout", yqe = "org.eclipse.elk.core.util", zqe = { 3: 1, 4: 1, 5: 1, 593: 1 }, Aqe = "NETWORK_SIMPLEX", Bqe = { 123: 1, 51: 1 }, Cqe = "org.eclipse.elk.alg.layered.p1cycles", Dqe = "org.eclipse.elk.alg.layered.p2layers", Eqe = { 402: 1, 225: 1 }, Fqe = { 832: 1, 3: 1, 4: 1 }, Gqe = "org.eclipse.elk.alg.layered.p3order", Hqe = "org.eclipse.elk.alg.layered.p4nodes", Iqe = { 3: 1, 4: 1, 5: 1, 840: 1 }, Jqe = 1e-5, Kqe = "org.eclipse.elk.alg.layered.p4nodes.bk", Lqe = "org.eclipse.elk.alg.layered.p5edges", Mqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal", Nqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", Oqe = 1e-6, Pqe = "org.eclipse.elk.alg.layered.p5edges.splines", Qqe = 0.09999999999999998, Rqe = 1e-8, Sqe = 4.71238898038469, Tqe = 3.141592653589793, Uqe = "org.eclipse.elk.alg.mrtree", Vqe = "org.eclipse.elk.alg.mrtree.graph", Wqe = "org.eclipse.elk.alg.mrtree.intermediate", Xqe = "Set neighbors in level", Yqe = "DESCENDANTS", Zqe = "org.eclipse.elk.mrtree.weighting", $qe = "org.eclipse.elk.mrtree.searchOrder", _qe = "org.eclipse.elk.alg.mrtree.options", are = "org.eclipse.elk.mrtree", bre = "org.eclipse.elk.tree", cre = "org.eclipse.elk.alg.radial", dre = 6.283185307179586, ere = 5e-324, fre = "org.eclipse.elk.alg.radial.intermediate", gre = "org.eclipse.elk.alg.radial.intermediate.compaction", hre = { 3: 1, 4: 1, 5: 1, 106: 1 }, ire = "org.eclipse.elk.alg.radial.intermediate.optimization", jre = "No implementation is available for the layout option ", kre = "org.eclipse.elk.alg.radial.options", lre = "org.eclipse.elk.radial.orderId", mre = "org.eclipse.elk.radial.radius", nre = "org.eclipse.elk.radial.compactor", ore = "org.eclipse.elk.radial.compactionStepSize", pre = "org.eclipse.elk.radial.sorter", qre = "org.eclipse.elk.radial.wedgeCriteria", rre = "org.eclipse.elk.radial.optimizationCriteria", sre = "org.eclipse.elk.radial", tre = "org.eclipse.elk.alg.radial.p1position.wedge", ure = "org.eclipse.elk.alg.radial.sorting", vre = 5.497787143782138, wre = 3.9269908169872414, xre = 2.356194490192345, yre = "org.eclipse.elk.alg.rectpacking", zre = "org.eclipse.elk.alg.rectpacking.firstiteration", Are = "org.eclipse.elk.alg.rectpacking.options", Bre = "org.eclipse.elk.rectpacking.optimizationGoal", Cre = "org.eclipse.elk.rectpacking.lastPlaceShift", Dre = "org.eclipse.elk.rectpacking.currentPosition", Ere = "org.eclipse.elk.rectpacking.desiredPosition", Fre = "org.eclipse.elk.rectpacking.onlyFirstIteration", Gre = "org.eclipse.elk.rectpacking.rowCompaction", Hre = "org.eclipse.elk.rectpacking.expandToAspectRatio", Ire = "org.eclipse.elk.rectpacking.targetWidth", Jre = "org.eclipse.elk.expandNodes", Kre = "org.eclipse.elk.rectpacking", Lre = "org.eclipse.elk.alg.rectpacking.util", Mre = "No implementation available for ", Nre = "org.eclipse.elk.alg.spore", Ore = "org.eclipse.elk.alg.spore.options", Pre = "org.eclipse.elk.sporeCompaction", Qre = "org.eclipse.elk.underlyingLayoutAlgorithm", Rre = "org.eclipse.elk.processingOrder.treeConstruction", Sre = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", Tre = "org.eclipse.elk.processingOrder.preferredRoot", Ure = "org.eclipse.elk.processingOrder.rootSelection", Vre = "org.eclipse.elk.structure.structureExtractionStrategy", Wre = "org.eclipse.elk.compaction.compactionStrategy", Xre = "org.eclipse.elk.compaction.orthogonal", Yre = "org.eclipse.elk.overlapRemoval.maxIterations", Zre = "org.eclipse.elk.overlapRemoval.runScanline", $re = "processingOrder", _re = "overlapRemoval", ase = "org.eclipse.elk.sporeOverlap", bse = "org.eclipse.elk.alg.spore.p1structure", cse = "org.eclipse.elk.alg.spore.p2processingorder", dse = "org.eclipse.elk.alg.spore.p3execution", ese = "Invalid index: ", fse = "org.eclipse.elk.core.alg", gse = { 331: 1 }, hse = { 288: 1 }, ise = "Make sure its type is registered with the ", jse = " utility class.", kse = "true", lse = "false", mse = "Couldn't clone property '", nse = 0.05, ose = "org.eclipse.elk.core.options", pse = 1.2999999523162842, qse = "org.eclipse.elk.box", rse = "org.eclipse.elk.box.packingMode", sse = "org.eclipse.elk.algorithm", tse = "org.eclipse.elk.resolvedAlgorithm", use = "org.eclipse.elk.bendPoints", vse = "org.eclipse.elk.labelManager", wse = "org.eclipse.elk.scaleFactor", xse = "org.eclipse.elk.animate", yse = "org.eclipse.elk.animTimeFactor", zse = "org.eclipse.elk.layoutAncestors", Ase = "org.eclipse.elk.maxAnimTime", Bse = "org.eclipse.elk.minAnimTime", Cse = "org.eclipse.elk.progressBar", Dse = "org.eclipse.elk.validateGraph", Ese = "org.eclipse.elk.validateOptions", Fse = "org.eclipse.elk.zoomToFit", Gse = "org.eclipse.elk.font.name", Hse = "org.eclipse.elk.font.size", Ise = "org.eclipse.elk.edge.type", Jse = "partitioning", Kse = "nodeLabels", Lse = "portAlignment", Mse = "nodeSize", Nse = "port", Ose = "portLabels", Pse = "insideSelfLoops", Qse = "org.eclipse.elk.fixed", Rse = "org.eclipse.elk.random", Sse = "port must have a parent node to calculate the port side", Tse = "The edge needs to have exactly one edge section. Found: ", Use = "org.eclipse.elk.core.util.adapters", Vse = "org.eclipse.emf.ecore", Wse = "org.eclipse.elk.graph", Xse = "EMapPropertyHolder", Yse = "ElkBendPoint", Zse = "ElkGraphElement", $se = "ElkConnectableShape", _se = "ElkEdge", ate = "ElkEdgeSection", bte = "EModelElement", cte = "ENamedElement", dte = "ElkLabel", ete = "ElkNode", fte = "ElkPort", gte = { 92: 1, 90: 1 }, hte = "org.eclipse.emf.common.notify.impl", ite = "The feature '", jte = "' is not a valid changeable feature", kte = "Expecting null", lte = "' is not a valid feature", mte = "The feature ID", nte = " is not a valid feature ID", ote = 32768, pte = { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1 }, qte = "org.eclipse.emf.ecore.impl", rte = "org.eclipse.elk.graph.impl", ste = "Recursive containment not allowed for ", tte = "The datatype '", ute = "' is not a valid classifier", vte = "The value '", wte = { 190: 1, 3: 1, 4: 1 }, xte = "The class '", yte = "http://www.eclipse.org/elk/ElkGraph", zte = 1024, Ate = "property", Bte = "value", Cte = "source", Dte = "properties", Ete = "identifier", Fte = "height", Gte = "width", Hte = "parent", Ite = "text", Jte = "children", Kte = "hierarchical", Lte = "sources", Mte = "targets", Nte = "sections", Ote = "bendPoints", Pte = "outgoingShape", Qte = "incomingShape", Rte = "outgoingSections", Ste = "incomingSections", Tte = "org.eclipse.emf.common.util", Ute = "Severe implementation error in the Json to ElkGraph importer.", Vte = "id", Wte = "org.eclipse.elk.graph.json", Xte = "Unhandled parameter types: ", Yte = "startPoint", Zte = "An edge must have at least one source and one target (edge id: '", $te = "').", _te = "Referenced edge section does not exist: ", aue = " (edge id: '", bue = "target", cue = "sourcePoint", due = "targetPoint", eue = "group", fue = "name", gue = "connectableShape cannot be null", hue = "edge cannot be null", iue = "Passed edge is not 'simple'.", jue = "org.eclipse.elk.graph.util", kue = "The 'no duplicates' constraint is violated", lue = "targetIndex=", mue = ", size=", nue = "sourceIndex=", oue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1 }, pue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 47: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 588: 1 }, que = "logging", rue = "measureExecutionTime", sue = "parser.parse.1", tue = "parser.parse.2", uue = "parser.next.1", vue = "parser.next.2", wue = "parser.next.3", xue = "parser.next.4", yue = "parser.factor.1", zue = "parser.factor.2", Aue = "parser.factor.3", Bue = "parser.factor.4", Cue = "parser.factor.5", Due = "parser.factor.6", Eue = "parser.atom.1", Fue = "parser.atom.2", Gue = "parser.atom.3", Hue = "parser.atom.4", Iue = "parser.atom.5", Jue = "parser.cc.1", Kue = "parser.cc.2", Lue = "parser.cc.3", Mue = "parser.cc.5", Nue = "parser.cc.6", Oue = "parser.cc.7", Pue = "parser.cc.8", Que = "parser.ope.1", Rue = "parser.ope.2", Sue = "parser.ope.3", Tue = "parser.descape.1", Uue = "parser.descape.2", Vue = "parser.descape.3", Wue = "parser.descape.4", Xue = "parser.descape.5", Yue = "parser.process.1", Zue = "parser.quantifier.1", $ue = "parser.quantifier.2", _ue = "parser.quantifier.3", ave = "parser.quantifier.4", bve = "parser.quantifier.5", cve = "org.eclipse.emf.common.notify", dve = { 415: 1, 672: 1 }, eve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }, fve = { 366: 1, 143: 1 }, gve = "index=", hve = { 3: 1, 4: 1, 5: 1, 126: 1 }, ive = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 58: 1 }, jve = { 3: 1, 6: 1, 4: 1, 5: 1, 192: 1 }, kve = { 3: 1, 4: 1, 5: 1, 165: 1, 367: 1 }, lve = ";/?:@&=+$,", mve = "invalid authority: ", nve = "EAnnotation", ove = "ETypedElement", pve = "EStructuralFeature", qve = "EAttribute", rve = "EClassifier", sve = "EEnumLiteral", tve = "EGenericType", uve = "EOperation", vve = "EParameter", wve = "EReference", xve = "ETypeParameter", yve = "org.eclipse.emf.ecore.util", zve = { 76: 1 }, Ave = { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1, 76: 1, 69: 1, 95: 1 }, Bve = "org.eclipse.emf.ecore.util.FeatureMap$Entry", Cve = 8192, Dve = 2048, Eve = "byte", Fve = "char", Gve = "double", Hve = "float", Ive = "int", Jve = "long", Kve = "short", Lve = "java.lang.Object", Mve = { 3: 1, 4: 1, 5: 1, 247: 1 }, Nve = { 3: 1, 4: 1, 5: 1, 673: 1 }, Ove = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 69: 1 }, Pve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Qve = "mixed", Rve = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", Sve = "kind", Tve = { 3: 1, 4: 1, 5: 1, 674: 1 }, Uve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Vve = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 69: 1 }, Wve = { 47: 1, 125: 1, 279: 1 }, Xve = { 72: 1, 332: 1 }, Yve = "The value of type '", Zve = "' must be of type '", $ve = 1316, _ve = "http://www.eclipse.org/emf/2002/Ecore", awe = -32768, bwe = "constraints", cwe = "baseType", dwe = "getEStructuralFeature", ewe = "getFeatureID", fwe = "feature", gwe = "getOperationID", hwe = "operation", iwe = "defaultValue", jwe = "eTypeParameters", kwe = "isInstance", lwe = "getEEnumLiteral", mwe = "eContainingClass", nwe = { 55: 1 }, owe = { 3: 1, 4: 1, 5: 1, 119: 1 }, pwe = "org.eclipse.emf.ecore.resource", qwe = { 92: 1, 90: 1, 591: 1, 1935: 1 }, rwe = "org.eclipse.emf.ecore.resource.impl", swe = "unspecified", twe = "simple", uwe = "attribute", vwe = "attributeWildcard", wwe = "element", xwe = "elementWildcard", ywe = "collapse", zwe = "itemType", Awe = "namespace", Bwe = "##targetNamespace", Cwe = "whiteSpace", Dwe = "wildcards", Ewe = "http://www.eclipse.org/emf/2003/XMLType", Fwe = "##any", Gwe = "uninitialized", Hwe = "The multiplicity constraint is violated", Iwe = "org.eclipse.emf.ecore.xml.type", Jwe = "ProcessingInstruction", Kwe = "SimpleAnyType", Lwe = "XMLTypeDocumentRoot", Mwe = "org.eclipse.emf.ecore.xml.type.impl", Nwe = "INF", Owe = "processing", Pwe = "ENTITIES_._base", Qwe = "minLength", Rwe = "ENTITY", Swe = "NCName", Twe = "IDREFS_._base", Uwe = "integer", Vwe = "token", Wwe = "pattern", Xwe = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", Ywe = "\\i\\c*", Zwe = "[\\i-[:]][\\c-[:]]*", $we = "nonPositiveInteger", _we = "maxInclusive", axe = "NMTOKEN", bxe = "NMTOKENS_._base", cxe = "nonNegativeInteger", dxe = "minInclusive", exe = "normalizedString", fxe = "unsignedByte", gxe = "unsignedInt", hxe = "18446744073709551615", ixe = "unsignedShort", jxe = "processingInstruction", kxe = "org.eclipse.emf.ecore.xml.type.internal", lxe = 1114111, mxe = "Internal Error: shorthands: \\u", nxe = "xml:isDigit", oxe = "xml:isWord", pxe = "xml:isSpace", qxe = "xml:isNameChar", rxe = "xml:isInitialNameChar", sxe = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", txe = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", uxe = "Private Use", vxe = "ASSIGNED", wxe = "\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯", xxe = "UNASSIGNED", yxe = { 3: 1, 117: 1 }, zxe = "org.eclipse.emf.ecore.xml.type.util", Axe = { 3: 1, 4: 1, 5: 1, 368: 1 }, Bxe = "org.eclipse.xtext.xbase.lib", Cxe = "Cannot add elements to a Range", Dxe = "Cannot set elements in a Range", Exe = "Cannot remove elements from a Range", Fxe = "locale", Gxe = "default", Hxe = "user.agent"; - var _, _bb, Wbb, tbb = -1; - $wnd.goog = $wnd.goog || {}; - $wnd.goog.global = $wnd.goog.global || $wnd; - acb(); - bcb(1, null, {}, nb); - _.Fb = function ob(a) { - return mb(this, a); - }; - _.Gb = function qb() { - return this.gm; - }; - _.Hb = function sb() { - return FCb(this); - }; - _.Ib = function ub() { - var a; - return hdb(rb(this)) + "@" + (a = tb(this) >>> 0, a.toString(16)); - }; - _.equals = function(a) { - return this.Fb(a); - }; - _.hashCode = function() { - return this.Hb(); - }; - _.toString = function() { - return this.Ib(); - }; - var xD, yD, zD; - bcb(290, 1, { 290: 1, 2026: 1 }, jdb); - _.le = function kdb(a) { - var b; - b = new jdb(); - b.i = 4; - a > 1 ? b.c = rdb(this, a - 1) : b.c = this; - return b; - }; - _.me = function qdb() { - fdb(this); - return this.b; - }; - _.ne = function sdb() { - return hdb(this); - }; - _.oe = function udb() { - return fdb(this), this.k; - }; - _.pe = function wdb() { - return (this.i & 4) != 0; - }; - _.qe = function xdb() { - return (this.i & 1) != 0; - }; - _.Ib = function Adb() { - return idb(this); - }; - _.i = 0; - var edb = 1; - var SI = mdb(Phe, "Object", 1); - var AI = mdb(Phe, "Class", 290); - bcb(1998, 1, Qhe); - var $D = mdb(Rhe, "Optional", 1998); - bcb(1170, 1998, Qhe, xb); - _.Fb = function yb(a) { - return a === this; - }; - _.Hb = function zb() { - return 2040732332; - }; - _.Ib = function Ab() { - return "Optional.absent()"; - }; - _.Jb = function Bb(a) { - Qb(a); - return wb(), vb; - }; - var vb; - var YD = mdb(Rhe, "Absent", 1170); - bcb(628, 1, {}, Gb); - var ZD = mdb(Rhe, "Joiner", 628); - var _D = odb(Rhe, "Predicate"); - bcb(582, 1, { 169: 1, 582: 1, 3: 1, 45: 1 }, Yb); - _.Mb = function ac(a) { - return Xb(this, a); - }; - _.Lb = function Zb(a) { - return Xb(this, a); - }; - _.Fb = function $b(a) { - var b; - if (JD(a, 582)) { - b = BD(a, 582); - return At(this.a, b.a); - } - return false; - }; - _.Hb = function _b() { - return qmb(this.a) + 306654252; - }; - _.Ib = function bc() { - return Wb(this.a); - }; - var aE = mdb(Rhe, "Predicates/AndPredicate", 582); - bcb(408, 1998, { 408: 1, 3: 1 }, cc); - _.Fb = function dc(a) { - var b; - if (JD(a, 408)) { - b = BD(a, 408); - return pb(this.a, b.a); - } - return false; - }; - _.Hb = function ec() { - return 1502476572 + tb(this.a); - }; - _.Ib = function fc() { - return Whe + this.a + ")"; - }; - _.Jb = function gc(a) { - return new cc(Rb(a.Kb(this.a), "the Function passed to Optional.transform() must not return null.")); - }; - var bE = mdb(Rhe, "Present", 408); - bcb(198, 1, Yhe); - _.Nb = function kc(a) { - Rrb(this, a); - }; - _.Qb = function lc() { - jc(); - }; - var MH = mdb(Zhe, "UnmodifiableIterator", 198); - bcb(1978, 198, $he); - _.Qb = function nc() { - jc(); - }; - _.Rb = function mc(a) { - throw vbb(new bgb()); - }; - _.Wb = function oc(a) { - throw vbb(new bgb()); - }; - var NH = mdb(Zhe, "UnmodifiableListIterator", 1978); - bcb(386, 1978, $he); - _.Ob = function rc() { - return this.c < this.d; - }; - _.Sb = function sc() { - return this.c > 0; - }; - _.Pb = function tc() { - if (this.c >= this.d) { - throw vbb(new utb()); - } - return this.Xb(this.c++); - }; - _.Tb = function uc() { - return this.c; - }; - _.Ub = function vc() { - if (this.c <= 0) { - throw vbb(new utb()); - } - return this.Xb(--this.c); - }; - _.Vb = function wc() { - return this.c - 1; - }; - _.c = 0; - _.d = 0; - var cE = mdb(Zhe, "AbstractIndexedListIterator", 386); - bcb(699, 198, Yhe); - _.Ob = function Ac() { - return xc(this); - }; - _.Pb = function Bc() { - return yc(this); - }; - _.e = 1; - var dE = mdb(Zhe, "AbstractIterator", 699); - bcb(1986, 1, { 224: 1 }); - _.Zb = function Hc() { - var a; - return a = this.f, !a ? this.f = this.ac() : a; - }; - _.Fb = function Ic(a) { - return hw(this, a); - }; - _.Hb = function Jc() { - return tb(this.Zb()); - }; - _.dc = function Kc() { - return this.gc() == 0; - }; - _.ec = function Lc() { - return Ec(this); - }; - _.Ib = function Mc() { - return fcb(this.Zb()); - }; - var IE = mdb(Zhe, "AbstractMultimap", 1986); - bcb(726, 1986, _he); - _.$b = function Xc() { - Nc(this); - }; - _._b = function Yc(a) { - return Oc(this, a); - }; - _.ac = function Zc() { - return new ne(this, this.c); - }; - _.ic = function $c(a) { - return this.hc(); - }; - _.bc = function _c() { - return new zf(this, this.c); - }; - _.jc = function ad() { - return this.mc(this.hc()); - }; - _.kc = function bd() { - return new Hd(this); - }; - _.lc = function cd() { - return Yj(this.c.vc().Nc(), new $g(), 64, this.d); - }; - _.cc = function dd(a) { - return Qc(this, a); - }; - _.fc = function gd(a) { - return Sc(this, a); - }; - _.gc = function hd() { - return this.d; - }; - _.mc = function jd(a) { - return mmb(), new lnb(a); - }; - _.nc = function kd() { - return new Dd(this); - }; - _.oc = function ld() { - return Yj(this.c.Cc().Nc(), new Fd(), 64, this.d); - }; - _.pc = function md(a, b) { - return new dg(this, a, b, null); - }; - _.d = 0; - var DE = mdb(Zhe, "AbstractMapBasedMultimap", 726); - bcb(1631, 726, _he); - _.hc = function pd() { - return new Skb(this.a); - }; - _.jc = function qd() { - return mmb(), mmb(), jmb; - }; - _.cc = function sd(a) { - return BD(Qc(this, a), 15); - }; - _.fc = function ud(a) { - return BD(Sc(this, a), 15); - }; - _.Zb = function od() { - return nd(this); - }; - _.Fb = function rd(a) { - return hw(this, a); - }; - _.qc = function td(a) { - return BD(Qc(this, a), 15); - }; - _.rc = function vd(a) { - return BD(Sc(this, a), 15); - }; - _.mc = function wd(a) { - return vmb(BD(a, 15)); - }; - _.pc = function xd(a, b) { - return Vc(this, a, BD(b, 15), null); - }; - var eE = mdb(Zhe, "AbstractListMultimap", 1631); - bcb(732, 1, aie); - _.Nb = function zd(a) { - Rrb(this, a); - }; - _.Ob = function Ad() { - return this.c.Ob() || this.e.Ob(); - }; - _.Pb = function Bd() { - var a; - if (!this.e.Ob()) { - a = BD(this.c.Pb(), 42); - this.b = a.cd(); - this.a = BD(a.dd(), 14); - this.e = this.a.Kc(); - } - return this.sc(this.b, this.e.Pb()); - }; - _.Qb = function Cd() { - this.e.Qb(); - this.a.dc() && this.c.Qb(); - --this.d.d; - }; - var mE = mdb(Zhe, "AbstractMapBasedMultimap/Itr", 732); - bcb(1099, 732, aie, Dd); - _.sc = function Ed(a, b) { - return b; - }; - var fE = mdb(Zhe, "AbstractMapBasedMultimap/1", 1099); - bcb(1100, 1, {}, Fd); - _.Kb = function Gd(a) { - return BD(a, 14).Nc(); - }; - var gE = mdb(Zhe, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1100); - bcb(1101, 732, aie, Hd); - _.sc = function Id(a, b) { - return new Wo(a, b); - }; - var hE = mdb(Zhe, "AbstractMapBasedMultimap/2", 1101); - var DK = odb(bie, "Map"); - bcb(1967, 1, cie); - _.wc = function Td(a) { - stb(this, a); - }; - _.yc = function $d(a, b, c) { - return ttb(this, a, b, c); - }; - _.$b = function Od() { - this.vc().$b(); - }; - _.tc = function Pd(a) { - return Jd(this, a); - }; - _._b = function Qd(a) { - return !!Kd(this, a, false); - }; - _.uc = function Rd(a) { - var b, c, d; - for (c = this.vc().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 42); - d = b.dd(); - if (PD(a) === PD(d) || a != null && pb(a, d)) { - return true; - } - } - return false; - }; - _.Fb = function Sd(a) { - var b, c, d; - if (a === this) { - return true; - } - if (!JD(a, 83)) { - return false; - } - d = BD(a, 83); - if (this.gc() != d.gc()) { - return false; - } - for (c = d.vc().Kc(); c.Ob(); ) { - b = BD(c.Pb(), 42); - if (!this.tc(b)) { - return false; - } - } - return true; - }; - _.xc = function Ud(a) { - return Wd(Kd(this, a, false)); - }; - _.Hb = function Xd() { - return pmb(this.vc()); - }; - _.dc = function Yd() { - return this.gc() == 0; - }; - _.ec = function Zd() { - return new Pib(this); - }; - _.zc = function _d(a, b) { - throw vbb(new cgb("Put not supported on this map")); - }; - _.Ac = function ae(a) { - Ld(this, a); - }; - _.Bc = function be(a) { - return Wd(Kd(this, a, true)); - }; - _.gc = function ce() { - return this.vc().gc(); - }; - _.Ib = function de() { - return Md(this); - }; - _.Cc = function ee() { - return new $ib(this); - }; - var sJ = mdb(bie, "AbstractMap", 1967); - bcb(1987, 1967, cie); - _.bc = function ge() { - return new rf(this); - }; - _.vc = function he() { - return fe(this); - }; - _.ec = function ie() { - var a; - a = this.g; - return !a ? this.g = this.bc() : a; - }; - _.Cc = function je() { - var a; - a = this.i; - return !a ? this.i = new Zv(this) : a; - }; - var bH = mdb(Zhe, "Maps/ViewCachingAbstractMap", 1987); - bcb(389, 1987, cie, ne); - _.xc = function se(a) { - return ke(this, a); - }; - _.Bc = function ve(a) { - return le(this, a); - }; - _.$b = function oe() { - this.d == this.e.c ? this.e.$b() : ir(new mf(this)); - }; - _._b = function pe(a) { - return Gv(this.d, a); - }; - _.Ec = function qe() { - return new df(this); - }; - _.Dc = function() { - return this.Ec(); - }; - _.Fb = function re(a) { - return this === a || pb(this.d, a); - }; - _.Hb = function te() { - return tb(this.d); - }; - _.ec = function ue() { - return this.e.ec(); - }; - _.gc = function we() { - return this.d.gc(); - }; - _.Ib = function xe() { - return fcb(this.d); - }; - var lE = mdb(Zhe, "AbstractMapBasedMultimap/AsMap", 389); - var KI = odb(Phe, "Iterable"); - bcb(28, 1, die); - _.Jc = function Le(a) { - reb(this, a); - }; - _.Lc = function Ne() { - return this.Oc(); - }; - _.Nc = function Pe() { - return new Kub(this, 0); - }; - _.Oc = function Qe() { - return new YAb(null, this.Nc()); - }; - _.Fc = function Ge(a) { - throw vbb(new cgb("Add not supported on this collection")); - }; - _.Gc = function He(a) { - return ye(this, a); - }; - _.$b = function Ie() { - Ae(this); - }; - _.Hc = function Je(a) { - return ze(this, a, false); - }; - _.Ic = function Ke(a) { - return Be(this, a); - }; - _.dc = function Me() { - return this.gc() == 0; - }; - _.Mc = function Oe(a) { - return ze(this, a, true); - }; - _.Pc = function Re() { - return De(this); - }; - _.Qc = function Se(a) { - return Ee(this, a); - }; - _.Ib = function Te() { - return Fe(this); - }; - var dJ = mdb(bie, "AbstractCollection", 28); - var LK = odb(bie, "Set"); - bcb(eie, 28, fie); - _.Nc = function Ye() { - return new Kub(this, 1); - }; - _.Fb = function We(a) { - return Ue(this, a); - }; - _.Hb = function Xe() { - return pmb(this); - }; - var zJ = mdb(bie, "AbstractSet", eie); - bcb(1970, eie, fie); - var BH = mdb(Zhe, "Sets/ImprovedAbstractSet", 1970); - bcb(1971, 1970, fie); - _.$b = function $e() { - this.Rc().$b(); - }; - _.Hc = function _e(a) { - return Ze(this, a); - }; - _.dc = function af() { - return this.Rc().dc(); - }; - _.Mc = function bf(a) { - var b; - if (this.Hc(a)) { - b = BD(a, 42); - return this.Rc().ec().Mc(b.cd()); - } - return false; - }; - _.gc = function cf() { - return this.Rc().gc(); - }; - var WG = mdb(Zhe, "Maps/EntrySet", 1971); - bcb(1097, 1971, fie, df); - _.Hc = function ef(a) { - return Ck(this.a.d.vc(), a); - }; - _.Kc = function ff() { - return new mf(this.a); - }; - _.Rc = function gf() { - return this.a; - }; - _.Mc = function hf(a) { - var b; - if (!Ck(this.a.d.vc(), a)) { - return false; - } - b = BD(a, 42); - Tc(this.a.e, b.cd()); - return true; - }; - _.Nc = function jf() { - return $j(this.a.d.vc().Nc(), new kf(this.a)); - }; - var jE = mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1097); - bcb(1098, 1, {}, kf); - _.Kb = function lf(a) { - return me(this.a, BD(a, 42)); - }; - var iE = mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1098); - bcb(730, 1, aie, mf); - _.Nb = function nf(a) { - Rrb(this, a); - }; - _.Pb = function pf() { - var a; - return a = BD(this.b.Pb(), 42), this.a = BD(a.dd(), 14), me(this.c, a); - }; - _.Ob = function of() { - return this.b.Ob(); - }; - _.Qb = function qf() { - Vb(!!this.a); - this.b.Qb(); - this.c.e.d -= this.a.gc(); - this.a.$b(); - this.a = null; - }; - var kE = mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 730); - bcb(532, 1970, fie, rf); - _.$b = function sf() { - this.b.$b(); - }; - _.Hc = function tf(a) { - return this.b._b(a); - }; - _.Jc = function uf(a) { - Qb(a); - this.b.wc(new Xv(a)); - }; - _.dc = function vf() { - return this.b.dc(); - }; - _.Kc = function wf() { - return new Mv(this.b.vc().Kc()); - }; - _.Mc = function xf(a) { - if (this.b._b(a)) { - this.b.Bc(a); - return true; - } - return false; - }; - _.gc = function yf() { - return this.b.gc(); - }; - var $G = mdb(Zhe, "Maps/KeySet", 532); - bcb(318, 532, fie, zf); - _.$b = function Af() { - var a; - ir((a = this.b.vc().Kc(), new Hf(this, a))); - }; - _.Ic = function Bf(a) { - return this.b.ec().Ic(a); - }; - _.Fb = function Cf(a) { - return this === a || pb(this.b.ec(), a); - }; - _.Hb = function Df() { - return tb(this.b.ec()); - }; - _.Kc = function Ef() { - var a; - return a = this.b.vc().Kc(), new Hf(this, a); - }; - _.Mc = function Ff(a) { - var b, c; - c = 0; - b = BD(this.b.Bc(a), 14); - if (b) { - c = b.gc(); - b.$b(); - this.a.d -= c; - } - return c > 0; - }; - _.Nc = function Gf() { - return this.b.ec().Nc(); - }; - var oE = mdb(Zhe, "AbstractMapBasedMultimap/KeySet", 318); - bcb(731, 1, aie, Hf); - _.Nb = function If(a) { - Rrb(this, a); - }; - _.Ob = function Jf() { - return this.c.Ob(); - }; - _.Pb = function Kf() { - this.a = BD(this.c.Pb(), 42); - return this.a.cd(); - }; - _.Qb = function Lf() { - var a; - Vb(!!this.a); - a = BD(this.a.dd(), 14); - this.c.Qb(); - this.b.a.d -= a.gc(); - a.$b(); - this.a = null; - }; - var nE = mdb(Zhe, "AbstractMapBasedMultimap/KeySet/1", 731); - bcb(491, 389, { 83: 1, 161: 1 }, Mf); - _.bc = function Nf() { - return this.Sc(); - }; - _.ec = function Pf() { - return this.Tc(); - }; - _.Sc = function Of() { - return new Yf(this.c, this.Uc()); - }; - _.Tc = function Qf() { - var a; - return a = this.b, !a ? this.b = this.Sc() : a; - }; - _.Uc = function Rf() { - return BD(this.d, 161); - }; - var sE = mdb(Zhe, "AbstractMapBasedMultimap/SortedAsMap", 491); - bcb(542, 491, gie, Sf); - _.bc = function Tf() { - return new $f(this.a, BD(BD(this.d, 161), 171)); - }; - _.Sc = function Uf() { - return new $f(this.a, BD(BD(this.d, 161), 171)); - }; - _.ec = function Vf() { - var a; - return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271); - }; - _.Tc = function Wf() { - var a; - return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271); - }; - _.Uc = function Xf() { - return BD(BD(this.d, 161), 171); - }; - var pE = mdb(Zhe, "AbstractMapBasedMultimap/NavigableAsMap", 542); - bcb(490, 318, hie, Yf); - _.Nc = function Zf() { - return this.b.ec().Nc(); - }; - var tE = mdb(Zhe, "AbstractMapBasedMultimap/SortedKeySet", 490); - bcb(388, 490, iie, $f); - var qE = mdb(Zhe, "AbstractMapBasedMultimap/NavigableKeySet", 388); - bcb(541, 28, die, dg); - _.Fc = function eg(a) { - var b, c; - ag(this); - c = this.d.dc(); - b = this.d.Fc(a); - if (b) { - ++this.f.d; - c && _f(this); - } - return b; - }; - _.Gc = function fg(a) { - var b, c, d; - if (a.dc()) { - return false; - } - d = (ag(this), this.d.gc()); - b = this.d.Gc(a); - if (b) { - c = this.d.gc(); - this.f.d += c - d; - d == 0 && _f(this); - } - return b; - }; - _.$b = function gg() { - var a; - a = (ag(this), this.d.gc()); - if (a == 0) { - return; - } - this.d.$b(); - this.f.d -= a; - bg(this); - }; - _.Hc = function hg(a) { - ag(this); - return this.d.Hc(a); - }; - _.Ic = function ig(a) { - ag(this); - return this.d.Ic(a); - }; - _.Fb = function jg(a) { - if (a === this) { - return true; - } - ag(this); - return pb(this.d, a); - }; - _.Hb = function kg() { - ag(this); - return tb(this.d); - }; - _.Kc = function lg() { - ag(this); - return new Gg(this); - }; - _.Mc = function mg(a) { - var b; - ag(this); - b = this.d.Mc(a); - if (b) { - --this.f.d; - bg(this); - } - return b; - }; - _.gc = function ng() { - return cg(this); - }; - _.Nc = function og() { - return ag(this), this.d.Nc(); - }; - _.Ib = function pg() { - ag(this); - return fcb(this.d); - }; - var vE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection", 541); - var yK = odb(bie, "List"); - bcb(728, 541, { 20: 1, 28: 1, 14: 1, 15: 1 }, qg); - _.ad = function zg(a) { - ktb(this, a); - }; - _.Nc = function Ag() { - return ag(this), this.d.Nc(); - }; - _.Vc = function rg(a, b) { - var c; - ag(this); - c = this.d.dc(); - BD(this.d, 15).Vc(a, b); - ++this.a.d; - c && _f(this); - }; - _.Wc = function sg(a, b) { - var c, d, e; - if (b.dc()) { - return false; - } - e = (ag(this), this.d.gc()); - c = BD(this.d, 15).Wc(a, b); - if (c) { - d = this.d.gc(); - this.a.d += d - e; - e == 0 && _f(this); - } - return c; - }; - _.Xb = function tg(a) { - ag(this); - return BD(this.d, 15).Xb(a); - }; - _.Xc = function ug(a) { - ag(this); - return BD(this.d, 15).Xc(a); - }; - _.Yc = function vg() { - ag(this); - return new Mg(this); - }; - _.Zc = function wg(a) { - ag(this); - return new Ng(this, a); - }; - _.$c = function xg(a) { - var b; - ag(this); - b = BD(this.d, 15).$c(a); - --this.a.d; - bg(this); - return b; - }; - _._c = function yg(a, b) { - ag(this); - return BD(this.d, 15)._c(a, b); - }; - _.bd = function Bg(a, b) { - ag(this); - return Vc(this.a, this.e, BD(this.d, 15).bd(a, b), !this.b ? this : this.b); - }; - var xE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedList", 728); - bcb(1096, 728, { 20: 1, 28: 1, 14: 1, 15: 1, 54: 1 }, Cg); - var rE = mdb(Zhe, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1096); - bcb(620, 1, aie, Gg); - _.Nb = function Ig(a) { - Rrb(this, a); - }; - _.Ob = function Jg() { - Fg(this); - return this.b.Ob(); - }; - _.Pb = function Kg() { - Fg(this); - return this.b.Pb(); - }; - _.Qb = function Lg() { - Eg(this); - }; - var uE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 620); - bcb(729, 620, jie, Mg, Ng); - _.Qb = function Tg() { - Eg(this); - }; - _.Rb = function Og(a) { - var b; - b = cg(this.a) == 0; - (Fg(this), BD(this.b, 125)).Rb(a); - ++this.a.a.d; - b && _f(this.a); - }; - _.Sb = function Pg() { - return (Fg(this), BD(this.b, 125)).Sb(); - }; - _.Tb = function Qg() { - return (Fg(this), BD(this.b, 125)).Tb(); - }; - _.Ub = function Rg() { - return (Fg(this), BD(this.b, 125)).Ub(); - }; - _.Vb = function Sg() { - return (Fg(this), BD(this.b, 125)).Vb(); - }; - _.Wb = function Ug(a) { - (Fg(this), BD(this.b, 125)).Wb(a); - }; - var wE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 729); - bcb(727, 541, hie, Vg); - _.Nc = function Wg() { - return ag(this), this.d.Nc(); - }; - var AE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedSortedSet", 727); - bcb(1095, 727, iie, Xg); - var yE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedNavigableSet", 1095); - bcb(1094, 541, fie, Yg); - _.Nc = function Zg() { - return ag(this), this.d.Nc(); - }; - var zE = mdb(Zhe, "AbstractMapBasedMultimap/WrappedSet", 1094); - bcb(1103, 1, {}, $g); - _.Kb = function _g(a) { - return fd(BD(a, 42)); - }; - var BE = mdb(Zhe, "AbstractMapBasedMultimap/lambda$1$Type", 1103); - bcb(1102, 1, {}, ah); - _.Kb = function bh(a) { - return new Wo(this.a, a); - }; - var CE = mdb(Zhe, "AbstractMapBasedMultimap/lambda$2$Type", 1102); - var CK = odb(bie, "Map/Entry"); - bcb(345, 1, kie); - _.Fb = function dh(a) { - var b; - if (JD(a, 42)) { - b = BD(a, 42); - return Hb(this.cd(), b.cd()) && Hb(this.dd(), b.dd()); - } - return false; - }; - _.Hb = function eh() { - var a, b; - a = this.cd(); - b = this.dd(); - return (a == null ? 0 : tb(a)) ^ (b == null ? 0 : tb(b)); - }; - _.ed = function fh(a) { - throw vbb(new bgb()); - }; - _.Ib = function gh() { - return this.cd() + "=" + this.dd(); - }; - var EE = mdb(Zhe, lie, 345); - bcb(1988, 28, die); - _.$b = function hh() { - this.fd().$b(); - }; - _.Hc = function ih(a) { - var b; - if (JD(a, 42)) { - b = BD(a, 42); - return Cc(this.fd(), b.cd(), b.dd()); - } - return false; - }; - _.Mc = function jh(a) { - var b; - if (JD(a, 42)) { - b = BD(a, 42); - return Gc(this.fd(), b.cd(), b.dd()); - } - return false; - }; - _.gc = function kh() { - return this.fd().d; - }; - var fH = mdb(Zhe, "Multimaps/Entries", 1988); - bcb(733, 1988, die, lh); - _.Kc = function mh() { - return this.a.kc(); - }; - _.fd = function nh() { - return this.a; - }; - _.Nc = function oh() { - return this.a.lc(); - }; - var FE = mdb(Zhe, "AbstractMultimap/Entries", 733); - bcb(734, 733, fie, ph); - _.Nc = function sh() { - return this.a.lc(); - }; - _.Fb = function qh(a) { - return Ax(this, a); - }; - _.Hb = function rh() { - return Bx(this); - }; - var GE = mdb(Zhe, "AbstractMultimap/EntrySet", 734); - bcb(735, 28, die, th); - _.$b = function uh() { - this.a.$b(); - }; - _.Hc = function vh(a) { - return Dc(this.a, a); - }; - _.Kc = function wh() { - return this.a.nc(); - }; - _.gc = function xh() { - return this.a.d; - }; - _.Nc = function yh() { - return this.a.oc(); - }; - var HE = mdb(Zhe, "AbstractMultimap/Values", 735); - bcb(1989, 28, { 835: 1, 20: 1, 28: 1, 14: 1 }); - _.Jc = function Gh(a) { - Qb(a); - Ah(this).Jc(new Xw(a)); - }; - _.Nc = function Kh() { - var a; - return a = Ah(this).Nc(), Yj(a, new cx(), 64 | a.qd() & 1296, this.a.d); - }; - _.Fc = function Ch(a) { - zh(); - return true; - }; - _.Gc = function Dh(a) { - return Qb(this), Qb(a), JD(a, 543) ? Zw(BD(a, 835)) : !a.dc() && fr(this, a.Kc()); - }; - _.Hc = function Eh(a) { - var b; - return b = BD(Hv(nd(this.a), a), 14), (!b ? 0 : b.gc()) > 0; - }; - _.Fb = function Fh(a) { - return $w(this, a); - }; - _.Hb = function Hh() { - return tb(Ah(this)); - }; - _.dc = function Ih() { - return Ah(this).dc(); - }; - _.Mc = function Jh(a) { - return Bw(this, a, 1) > 0; - }; - _.Ib = function Lh() { - return fcb(Ah(this)); - }; - var KE = mdb(Zhe, "AbstractMultiset", 1989); - bcb(1991, 1970, fie); - _.$b = function Mh() { - Nc(this.a.a); - }; - _.Hc = function Nh(a) { - var b, c; - if (JD(a, 492)) { - c = BD(a, 416); - if (BD(c.a.dd(), 14).gc() <= 0) { - return false; - } - b = Aw(this.a, c.a.cd()); - return b == BD(c.a.dd(), 14).gc(); - } - return false; - }; - _.Mc = function Oh(a) { - var b, c, d, e; - if (JD(a, 492)) { - c = BD(a, 416); - b = c.a.cd(); - d = BD(c.a.dd(), 14).gc(); - if (d != 0) { - e = this.a; - return ax(e, b, d); - } - } - return false; - }; - var pH = mdb(Zhe, "Multisets/EntrySet", 1991); - bcb(1109, 1991, fie, Ph); - _.Kc = function Qh() { - return new Lw(fe(nd(this.a.a)).Kc()); - }; - _.gc = function Rh() { - return nd(this.a.a).gc(); - }; - var JE = mdb(Zhe, "AbstractMultiset/EntrySet", 1109); - bcb(619, 726, _he); - _.hc = function Uh() { - return this.gd(); - }; - _.jc = function Vh() { - return this.hd(); - }; - _.cc = function Yh(a) { - return this.jd(a); - }; - _.fc = function $h(a) { - return this.kd(a); - }; - _.Zb = function Th() { - var a; - return a = this.f, !a ? this.f = this.ac() : a; - }; - _.hd = function Wh() { - return mmb(), mmb(), lmb; - }; - _.Fb = function Xh(a) { - return hw(this, a); - }; - _.jd = function Zh(a) { - return BD(Qc(this, a), 21); - }; - _.kd = function _h(a) { - return BD(Sc(this, a), 21); - }; - _.mc = function ai(a) { - return mmb(), new zob(BD(a, 21)); - }; - _.pc = function bi(a, b) { - return new Yg(this, a, BD(b, 21)); - }; - var LE = mdb(Zhe, "AbstractSetMultimap", 619); - bcb(1657, 619, _he); - _.hc = function ei() { - return new Hxb(this.b); - }; - _.gd = function fi() { - return new Hxb(this.b); - }; - _.jc = function gi() { - return Ix(new Hxb(this.b)); - }; - _.hd = function hi() { - return Ix(new Hxb(this.b)); - }; - _.cc = function ii(a) { - return BD(BD(Qc(this, a), 21), 84); - }; - _.jd = function ji(a) { - return BD(BD(Qc(this, a), 21), 84); - }; - _.fc = function ki(a) { - return BD(BD(Sc(this, a), 21), 84); - }; - _.kd = function li(a) { - return BD(BD(Sc(this, a), 21), 84); - }; - _.mc = function mi(a) { - return JD(a, 271) ? Ix(BD(a, 271)) : (mmb(), new Zob(BD(a, 84))); - }; - _.Zb = function di() { - var a; - return a = this.f, !a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a; - }; - _.pc = function ni(a, b) { - return JD(b, 271) ? new Xg(this, a, BD(b, 271)) : new Vg(this, a, BD(b, 84)); - }; - var NE = mdb(Zhe, "AbstractSortedSetMultimap", 1657); - bcb(1658, 1657, _he); - _.Zb = function pi() { - var a; - return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171); - }; - _.ec = function ri() { - var a; - return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271); - }; - _.bc = function qi() { - return JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c); - }; - var ME = mdb(Zhe, "AbstractSortedKeySortedSetMultimap", 1658); - bcb(2010, 1, { 1947: 1 }); - _.Fb = function si(a) { - return zy(this, a); - }; - _.Hb = function ti() { - var a; - return pmb((a = this.g, !a ? this.g = new vi(this) : a)); - }; - _.Ib = function ui() { - var a; - return Md((a = this.f, !a ? this.f = new Rj(this) : a)); - }; - var QE = mdb(Zhe, "AbstractTable", 2010); - bcb(665, eie, fie, vi); - _.$b = function wi() { - Pi(); - }; - _.Hc = function xi(a) { - var b, c; - if (JD(a, 468)) { - b = BD(a, 682); - c = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83); - return !!c && Ck(c.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a))); - } - return false; - }; - _.Kc = function yi() { - return Ni(this.a); - }; - _.Mc = function zi(a) { - var b, c; - if (JD(a, 468)) { - b = BD(a, 682); - c = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83); - return !!c && Dk(c.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a))); - } - return false; - }; - _.gc = function Ai() { - return Xi(this.a); - }; - _.Nc = function Bi() { - return Oi(this.a); - }; - var OE = mdb(Zhe, "AbstractTable/CellSet", 665); - bcb(1928, 28, die, Ci); - _.$b = function Di() { - Pi(); - }; - _.Hc = function Ei(a) { - return Qi(this.a, a); - }; - _.Kc = function Fi() { - return Zi(this.a); - }; - _.gc = function Gi() { - return Xi(this.a); - }; - _.Nc = function Hi() { - return $i(this.a); - }; - var PE = mdb(Zhe, "AbstractTable/Values", 1928); - bcb(1632, 1631, _he); - var RE = mdb(Zhe, "ArrayListMultimapGwtSerializationDependencies", 1632); - bcb(513, 1632, _he, Ji, Ki); - _.hc = function Li() { - return new Skb(this.a); - }; - _.a = 0; - var SE = mdb(Zhe, "ArrayListMultimap", 513); - bcb(664, 2010, { 664: 1, 1947: 1, 3: 1 }, _i); - var cF = mdb(Zhe, "ArrayTable", 664); - bcb(1924, 386, $he, aj); - _.Xb = function bj(a) { - return new hj(this.a, a); - }; - var TE = mdb(Zhe, "ArrayTable/1", 1924); - bcb(1925, 1, {}, cj); - _.ld = function dj(a) { - return new hj(this.a, a); - }; - var UE = mdb(Zhe, "ArrayTable/1methodref$getCell$Type", 1925); - bcb(2011, 1, { 682: 1 }); - _.Fb = function ej(a) { - var b; - if (a === this) { - return true; - } - if (JD(a, 468)) { - b = BD(a, 682); - return Hb(Em(this.c.e, this.b), Em(b.c.e, b.b)) && Hb(Em(this.c.c, this.a), Em(b.c.c, b.a)) && Hb(Mi(this.c, this.b, this.a), Mi(b.c, b.b, b.a)); - } - return false; - }; - _.Hb = function fj() { - return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [Em(this.c.e, this.b), Em(this.c.c, this.a), Mi(this.c, this.b, this.a)])); - }; - _.Ib = function gj() { - return "(" + Em(this.c.e, this.b) + "," + Em(this.c.c, this.a) + ")=" + Mi(this.c, this.b, this.a); - }; - var JH = mdb(Zhe, "Tables/AbstractCell", 2011); - bcb(468, 2011, { 468: 1, 682: 1 }, hj); - _.a = 0; - _.b = 0; - _.d = 0; - var VE = mdb(Zhe, "ArrayTable/2", 468); - bcb(1927, 1, {}, ij); - _.ld = function jj(a) { - return Ti(this.a, a); - }; - var WE = mdb(Zhe, "ArrayTable/2methodref$getValue$Type", 1927); - bcb(1926, 386, $he, kj); - _.Xb = function lj(a) { - return Ti(this.a, a); - }; - var XE = mdb(Zhe, "ArrayTable/3", 1926); - bcb(1979, 1967, cie); - _.$b = function nj() { - ir(this.kc()); - }; - _.vc = function oj() { - return new Sv(this); - }; - _.lc = function pj() { - return new Mub(this.kc(), this.gc()); - }; - var YG = mdb(Zhe, "Maps/IteratorBasedAbstractMap", 1979); - bcb(828, 1979, cie); - _.$b = function tj() { - throw vbb(new bgb()); - }; - _._b = function uj(a) { - return sn(this.c, a); - }; - _.kc = function vj() { - return new Jj(this, this.c.b.c.gc()); - }; - _.lc = function wj() { - return Zj(this.c.b.c.gc(), 16, new Dj(this)); - }; - _.xc = function xj(a) { - var b; - b = BD(tn(this.c, a), 19); - return !b ? null : this.nd(b.a); - }; - _.dc = function yj() { - return this.c.b.c.dc(); - }; - _.ec = function zj() { - return Xm(this.c); - }; - _.zc = function Aj(a, b) { - var c; - c = BD(tn(this.c, a), 19); - if (!c) { - throw vbb(new Wdb(this.md() + " " + a + " not in " + Xm(this.c))); - } - return this.od(c.a, b); - }; - _.Bc = function Bj(a) { - throw vbb(new bgb()); - }; - _.gc = function Cj() { - return this.c.b.c.gc(); - }; - var _E = mdb(Zhe, "ArrayTable/ArrayMap", 828); - bcb(1923, 1, {}, Dj); - _.ld = function Ej(a) { - return qj(this.a, a); - }; - var YE = mdb(Zhe, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 1923); - bcb(1921, 345, kie, Fj); - _.cd = function Gj() { - return rj(this.a, this.b); - }; - _.dd = function Hj() { - return this.a.nd(this.b); - }; - _.ed = function Ij(a) { - return this.a.od(this.b, a); - }; - _.b = 0; - var ZE = mdb(Zhe, "ArrayTable/ArrayMap/1", 1921); - bcb(1922, 386, $he, Jj); - _.Xb = function Kj(a) { - return qj(this.a, a); - }; - var $E = mdb(Zhe, "ArrayTable/ArrayMap/2", 1922); - bcb(1920, 828, cie, Lj); - _.md = function Mj() { - return "Column"; - }; - _.nd = function Nj(a) { - return Mi(this.b, this.a, a); - }; - _.od = function Oj(a, b) { - return Wi(this.b, this.a, a, b); - }; - _.a = 0; - var bF = mdb(Zhe, "ArrayTable/Row", 1920); - bcb(829, 828, cie, Rj); - _.nd = function Tj(a) { - return new Lj(this.a, a); - }; - _.zc = function Uj(a, b) { - return BD(b, 83), Pj(); - }; - _.od = function Vj(a, b) { - return BD(b, 83), Qj(); - }; - _.md = function Sj() { - return "Row"; - }; - var aF = mdb(Zhe, "ArrayTable/RowMap", 829); - bcb(1120, 1, pie, _j); - _.qd = function ak() { - return this.a.qd() & -262; - }; - _.rd = function bk() { - return this.a.rd(); - }; - _.Nb = function ck(a) { - this.a.Nb(new gk(a, this.b)); - }; - _.sd = function dk(a) { - return this.a.sd(new ek(a, this.b)); - }; - var lF = mdb(Zhe, "CollectSpliterators/1", 1120); - bcb(1121, 1, qie, ek); - _.td = function fk(a) { - this.a.td(this.b.Kb(a)); - }; - var dF = mdb(Zhe, "CollectSpliterators/1/lambda$0$Type", 1121); - bcb(1122, 1, qie, gk); - _.td = function hk(a) { - this.a.td(this.b.Kb(a)); - }; - var eF = mdb(Zhe, "CollectSpliterators/1/lambda$1$Type", 1122); - bcb(1123, 1, pie, jk); - _.qd = function kk() { - return this.a; - }; - _.rd = function lk() { - !!this.d && (this.b = Deb(this.b, this.d.rd())); - return Deb(this.b, 0); - }; - _.Nb = function mk(a) { - if (this.d) { - this.d.Nb(a); - this.d = null; - } - this.c.Nb(new rk(this.e, a)); - this.b = 0; - }; - _.sd = function ok(a) { - while (true) { - if (!!this.d && this.d.sd(a)) { - Kbb(this.b, rie) && (this.b = Qbb(this.b, 1)); - return true; - } else { - this.d = null; - } - if (!this.c.sd(new pk(this, this.e))) { - return false; - } - } - }; - _.a = 0; - _.b = 0; - var hF = mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator", 1123); - bcb(1124, 1, qie, pk); - _.td = function qk(a) { - ik(this.a, this.b, a); - }; - var fF = mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$0$Type", 1124); - bcb(1125, 1, qie, rk); - _.td = function sk(a) { - nk(this.b, this.a, a); - }; - var gF = mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$1$Type", 1125); - bcb(1117, 1, pie, tk); - _.qd = function uk() { - return 16464 | this.b; - }; - _.rd = function vk() { - return this.a.rd(); - }; - _.Nb = function wk(a) { - this.a.xe(new Ak(a, this.c)); - }; - _.sd = function xk(a) { - return this.a.ye(new yk(a, this.c)); - }; - _.b = 0; - var kF = mdb(Zhe, "CollectSpliterators/1WithCharacteristics", 1117); - bcb(1118, 1, sie, yk); - _.ud = function zk(a) { - this.a.td(this.b.ld(a)); - }; - var iF = mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1118); - bcb(1119, 1, sie, Ak); - _.ud = function Bk(a) { - this.a.td(this.b.ld(a)); - }; - var jF = mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1119); - bcb(245, 1, tie); - _.wd = function Hk(a) { - return this.vd(BD(a, 245)); - }; - _.vd = function Gk(a) { - var b; - if (a == (_k(), $k)) { - return 1; - } - if (a == (Lk(), Kk)) { - return -1; - } - b = (ex(), Fcb(this.a, a.a)); - if (b != 0) { - return b; - } - return JD(this, 519) == JD(a, 519) ? 0 : JD(this, 519) ? 1 : -1; - }; - _.zd = function Ik() { - return this.a; - }; - _.Fb = function Jk(a) { - return Ek(this, a); - }; - var qF = mdb(Zhe, "Cut", 245); - bcb(1761, 245, tie, Mk); - _.vd = function Nk(a) { - return a == this ? 0 : 1; - }; - _.xd = function Ok(a) { - throw vbb(new xcb()); - }; - _.yd = function Pk(a) { - a.a += "+∞)"; - }; - _.zd = function Qk() { - throw vbb(new Zdb(uie)); - }; - _.Hb = function Rk() { - return Zfb(), kCb(this); - }; - _.Ad = function Sk(a) { - return false; - }; - _.Ib = function Tk() { - return "+∞"; - }; - var Kk; - var mF = mdb(Zhe, "Cut/AboveAll", 1761); - bcb(519, 245, { 245: 1, 519: 1, 3: 1, 35: 1 }, Uk); - _.xd = function Vk(a) { - Pfb((a.a += "(", a), this.a); - }; - _.yd = function Wk(a) { - Kfb(Pfb(a, this.a), 93); - }; - _.Hb = function Xk() { - return ~tb(this.a); - }; - _.Ad = function Yk(a) { - return ex(), Fcb(this.a, a) < 0; - }; - _.Ib = function Zk() { - return "/" + this.a + "\\"; - }; - var nF = mdb(Zhe, "Cut/AboveValue", 519); - bcb(1760, 245, tie, al); - _.vd = function bl(a) { - return a == this ? 0 : -1; - }; - _.xd = function cl(a) { - a.a += "(-∞"; - }; - _.yd = function dl(a) { - throw vbb(new xcb()); - }; - _.zd = function el() { - throw vbb(new Zdb(uie)); - }; - _.Hb = function fl() { - return Zfb(), kCb(this); - }; - _.Ad = function gl(a) { - return true; - }; - _.Ib = function hl() { - return "-∞"; - }; - var $k; - var oF = mdb(Zhe, "Cut/BelowAll", 1760); - bcb(1762, 245, tie, il); - _.xd = function jl(a) { - Pfb((a.a += "[", a), this.a); - }; - _.yd = function kl(a) { - Kfb(Pfb(a, this.a), 41); - }; - _.Hb = function ll() { - return tb(this.a); - }; - _.Ad = function ml(a) { - return ex(), Fcb(this.a, a) <= 0; - }; - _.Ib = function nl() { - return "\\" + this.a + "/"; - }; - var pF = mdb(Zhe, "Cut/BelowValue", 1762); - bcb(537, 1, vie); - _.Jc = function ql(a) { - reb(this, a); - }; - _.Ib = function rl() { - return tr(BD(Rb(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc()); - }; - var uF = mdb(Zhe, "FluentIterable", 537); - bcb(433, 537, vie, sl); - _.Kc = function tl() { - return new Sr(ur(this.a.Kc(), new Sq())); - }; - var rF = mdb(Zhe, "FluentIterable/2", 433); - bcb(1046, 537, vie, vl); - _.Kc = function wl() { - return ul(this); - }; - var tF = mdb(Zhe, "FluentIterable/3", 1046); - bcb(708, 386, $he, xl); - _.Xb = function yl(a) { - return this.a[a].Kc(); - }; - var sF = mdb(Zhe, "FluentIterable/3/1", 708); - bcb(1972, 1, {}); - _.Ib = function zl() { - return fcb(this.Bd().b); - }; - var BF = mdb(Zhe, "ForwardingObject", 1972); - bcb(1973, 1972, wie); - _.Bd = function Fl() { - return this.Cd(); - }; - _.Jc = function Gl(a) { - reb(this, a); - }; - _.Lc = function Jl() { - return this.Oc(); - }; - _.Nc = function Ml() { - return new Kub(this, 0); - }; - _.Oc = function Nl() { - return new YAb(null, this.Nc()); - }; - _.Fc = function Al(a) { - return this.Cd(), enb(); - }; - _.Gc = function Bl(a) { - return this.Cd(), fnb(); - }; - _.$b = function Cl() { - this.Cd(), gnb(); - }; - _.Hc = function Dl(a) { - return this.Cd().Hc(a); - }; - _.Ic = function El(a) { - return this.Cd().Ic(a); - }; - _.dc = function Hl() { - return this.Cd().b.dc(); - }; - _.Kc = function Il() { - return this.Cd().Kc(); - }; - _.Mc = function Kl(a) { - return this.Cd(), jnb(); - }; - _.gc = function Ll() { - return this.Cd().b.gc(); - }; - _.Pc = function Ol() { - return this.Cd().Pc(); - }; - _.Qc = function Pl(a) { - return this.Cd().Qc(a); - }; - var vF = mdb(Zhe, "ForwardingCollection", 1973); - bcb(1980, 28, xie); - _.Kc = function Xl() { - return this.Ed(); - }; - _.Fc = function Sl(a) { - throw vbb(new bgb()); - }; - _.Gc = function Tl(a) { - throw vbb(new bgb()); - }; - _.$b = function Ul() { - throw vbb(new bgb()); - }; - _.Hc = function Vl(a) { - return a != null && ze(this, a, false); - }; - _.Dd = function Wl() { - switch (this.gc()) { - case 0: - return im(), im(), hm; - case 1: - return im(), new my(Qb(this.Ed().Pb())); - default: - return new px(this, this.Pc()); - } - }; - _.Mc = function Yl(a) { - throw vbb(new bgb()); - }; - var WF = mdb(Zhe, "ImmutableCollection", 1980); - bcb(712, 1980, xie, Zl); - _.Kc = function cm() { - return vr(this.a.Kc()); - }; - _.Hc = function $l(a) { - return a != null && this.a.Hc(a); - }; - _.Ic = function _l(a) { - return this.a.Ic(a); - }; - _.dc = function am() { - return this.a.dc(); - }; - _.Ed = function bm() { - return vr(this.a.Kc()); - }; - _.gc = function dm() { - return this.a.gc(); - }; - _.Pc = function em() { - return this.a.Pc(); - }; - _.Qc = function fm(a) { - return this.a.Qc(a); - }; - _.Ib = function gm() { - return fcb(this.a); - }; - var wF = mdb(Zhe, "ForwardingImmutableCollection", 712); - bcb(152, 1980, yie); - _.Kc = function sm() { - return this.Ed(); - }; - _.Yc = function tm() { - return this.Fd(0); - }; - _.Zc = function vm(a) { - return this.Fd(a); - }; - _.ad = function zm(a) { - ktb(this, a); - }; - _.Nc = function Am() { - return new Kub(this, 16); - }; - _.bd = function Cm(a, b) { - return this.Gd(a, b); - }; - _.Vc = function lm(a, b) { - throw vbb(new bgb()); - }; - _.Wc = function mm(a, b) { - throw vbb(new bgb()); - }; - _.Fb = function om(a) { - return Ju(this, a); - }; - _.Hb = function pm() { - return Ku(this); - }; - _.Xc = function qm(a) { - return a == null ? -1 : Lu(this, a); - }; - _.Ed = function rm() { - return this.Fd(0); - }; - _.Fd = function um(a) { - return jm(this, a); - }; - _.$c = function xm(a) { - throw vbb(new bgb()); - }; - _._c = function ym(a, b) { - throw vbb(new bgb()); - }; - _.Gd = function Bm(a, b) { - var c; - return Dm((c = new $u(this), new Jib(c, a, b))); - }; - var hm; - var _F = mdb(Zhe, "ImmutableList", 152); - bcb(2006, 152, yie); - _.Kc = function Nm() { - return vr(this.Hd().Kc()); - }; - _.bd = function Qm(a, b) { - return Dm(this.Hd().bd(a, b)); - }; - _.Hc = function Fm(a) { - return a != null && this.Hd().Hc(a); - }; - _.Ic = function Gm(a) { - return this.Hd().Ic(a); - }; - _.Fb = function Hm(a) { - return pb(this.Hd(), a); - }; - _.Xb = function Im(a) { - return Em(this, a); - }; - _.Hb = function Jm() { - return tb(this.Hd()); - }; - _.Xc = function Km(a) { - return this.Hd().Xc(a); - }; - _.dc = function Lm() { - return this.Hd().dc(); - }; - _.Ed = function Mm() { - return vr(this.Hd().Kc()); - }; - _.gc = function Om() { - return this.Hd().gc(); - }; - _.Gd = function Pm(a, b) { - return Dm(this.Hd().bd(a, b)); - }; - _.Pc = function Rm() { - return this.Hd().Qc(KC(SI, Uhe, 1, this.Hd().gc(), 5, 1)); - }; - _.Qc = function Sm(a) { - return this.Hd().Qc(a); - }; - _.Ib = function Tm() { - return fcb(this.Hd()); - }; - var xF = mdb(Zhe, "ForwardingImmutableList", 2006); - bcb(714, 1, Aie); - _.vc = function cn() { - return Wm(this); - }; - _.wc = function en(a) { - stb(this, a); - }; - _.ec = function jn() { - return Xm(this); - }; - _.yc = function kn(a, b, c) { - return ttb(this, a, b, c); - }; - _.Cc = function rn() { - return this.Ld(); - }; - _.$b = function Zm() { - throw vbb(new bgb()); - }; - _._b = function $m(a) { - return this.xc(a) != null; - }; - _.uc = function _m(a) { - return this.Ld().Hc(a); - }; - _.Jd = function an() { - return new jq(this); - }; - _.Kd = function bn() { - return new sq(this); - }; - _.Fb = function dn(a) { - return Dv(this, a); - }; - _.Hb = function gn() { - return Wm(this).Hb(); - }; - _.dc = function hn() { - return this.gc() == 0; - }; - _.zc = function nn(a, b) { - return Ym(); - }; - _.Bc = function on(a) { - throw vbb(new bgb()); - }; - _.Ib = function pn() { - return Jv(this); - }; - _.Ld = function qn() { - if (this.e) { - return this.e; - } - return this.e = this.Kd(); - }; - _.c = null; - _.d = null; - _.e = null; - var Um; - var iG = mdb(Zhe, "ImmutableMap", 714); - bcb(715, 714, Aie); - _._b = function vn(a) { - return sn(this, a); - }; - _.uc = function wn(a) { - return dob(this.b, a); - }; - _.Id = function xn() { - return Vn(new Ln(this)); - }; - _.Jd = function yn() { - return Vn(gob(this.b)); - }; - _.Kd = function zn() { - return Ql(), new Zl(hob(this.b)); - }; - _.Fb = function An(a) { - return fob(this.b, a); - }; - _.xc = function Bn(a) { - return tn(this, a); - }; - _.Hb = function Cn() { - return tb(this.b.c); - }; - _.dc = function Dn() { - return this.b.c.dc(); - }; - _.gc = function En() { - return this.b.c.gc(); - }; - _.Ib = function Fn() { - return fcb(this.b.c); - }; - var zF = mdb(Zhe, "ForwardingImmutableMap", 715); - bcb(1974, 1973, Bie); - _.Bd = function Gn() { - return this.Md(); - }; - _.Cd = function Hn() { - return this.Md(); - }; - _.Nc = function Kn() { - return new Kub(this, 1); - }; - _.Fb = function In(a) { - return a === this || this.Md().Fb(a); - }; - _.Hb = function Jn() { - return this.Md().Hb(); - }; - var CF = mdb(Zhe, "ForwardingSet", 1974); - bcb(1069, 1974, Bie, Ln); - _.Bd = function Nn() { - return eob(this.a.b); - }; - _.Cd = function On() { - return eob(this.a.b); - }; - _.Hc = function Mn(b) { - if (JD(b, 42) && BD(b, 42).cd() == null) { - return false; - } - try { - return Dob(eob(this.a.b), b); - } catch (a) { - a = ubb(a); - if (JD(a, 205)) { - return false; - } else - throw vbb(a); - } - }; - _.Md = function Pn() { - return eob(this.a.b); - }; - _.Qc = function Qn(a) { - var b; - b = Eob(eob(this.a.b), a); - eob(this.a.b).b.gc() < b.length && NC(b, eob(this.a.b).b.gc(), null); - return b; - }; - var yF = mdb(Zhe, "ForwardingImmutableMap/1", 1069); - bcb(1981, 1980, Cie); - _.Kc = function Tn() { - return this.Ed(); - }; - _.Nc = function Un() { - return new Kub(this, 1); - }; - _.Fb = function Rn(a) { - return Ax(this, a); - }; - _.Hb = function Sn() { - return Bx(this); - }; - var jG = mdb(Zhe, "ImmutableSet", 1981); - bcb(703, 1981, Cie); - _.Kc = function ao() { - return vr(new Dnb(this.a.b.Kc())); - }; - _.Hc = function Xn(a) { - return a != null && hnb(this.a, a); - }; - _.Ic = function Yn(a) { - return inb(this.a, a); - }; - _.Hb = function Zn() { - return tb(this.a.b); - }; - _.dc = function $n() { - return this.a.b.dc(); - }; - _.Ed = function _n() { - return vr(new Dnb(this.a.b.Kc())); - }; - _.gc = function bo() { - return this.a.b.gc(); - }; - _.Pc = function co() { - return this.a.b.Pc(); - }; - _.Qc = function eo(a) { - return knb(this.a, a); - }; - _.Ib = function fo() { - return fcb(this.a.b); - }; - var AF = mdb(Zhe, "ForwardingImmutableSet", 703); - bcb(1975, 1974, Die); - _.Bd = function go() { - return this.b; - }; - _.Cd = function ho() { - return this.b; - }; - _.Md = function io() { - return this.b; - }; - _.Nc = function jo() { - return new Rub(this); - }; - var DF = mdb(Zhe, "ForwardingSortedSet", 1975); - bcb(533, 1979, Aie, wo); - _.Ac = function Fo(a) { - Ld(this, a); - }; - _.Cc = function Io() { - var a; - return a = this.d, new up(!a ? this.d = new ap(this) : a); - }; - _.$b = function xo() { - ko(this); - }; - _._b = function yo(a) { - return !!uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)))); - }; - _.uc = function zo(a) { - return lo(this, a); - }; - _.kc = function Ao() { - return new Qo(this, this); - }; - _.wc = function Bo(a) { - no(this, a); - }; - _.xc = function Co(a) { - return oo(this, a); - }; - _.ec = function Do() { - return new Bp(this); - }; - _.zc = function Eo(a, b) { - return ro(this, a, b); - }; - _.Bc = function Go(a) { - var b; - b = uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)))); - if (!b) { - return null; - } else { - mo(this, b); - b.e = null; - b.c = null; - return b.i; - } - }; - _.gc = function Ho() { - return this.i; - }; - _.pd = function Jo() { - var a; - return a = this.d, new up(!a ? this.d = new ap(this) : a); - }; - _.f = 0; - _.g = 0; - _.i = 0; - var QF = mdb(Zhe, "HashBiMap", 533); - bcb(534, 1, aie); - _.Nb = function Mo(a) { - Rrb(this, a); - }; - _.Ob = function No() { - return Ko(this); - }; - _.Pb = function Oo() { - var a; - if (!Ko(this)) { - throw vbb(new utb()); - } - a = this.c; - this.c = a.c; - this.f = a; - --this.d; - return this.Nd(a); - }; - _.Qb = function Po() { - if (this.e.g != this.b) { - throw vbb(new Apb()); - } - Vb(!!this.f); - mo(this.e, this.f); - this.b = this.e.g; - this.f = null; - }; - _.b = 0; - _.d = 0; - _.f = null; - var NF = mdb(Zhe, "HashBiMap/Itr", 534); - bcb(1011, 534, aie, Qo); - _.Nd = function Ro(a) { - return new So(this, a); - }; - var FF = mdb(Zhe, "HashBiMap/1", 1011); - bcb(1012, 345, kie, So); - _.cd = function To() { - return this.a.g; - }; - _.dd = function Uo() { - return this.a.i; - }; - _.ed = function Vo(a) { - var b, c, d; - c = this.a.i; - d = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))); - if (d == this.a.f && (PD(a) === PD(c) || a != null && pb(a, c))) { - return a; - } - Nb(!vo(this.b.a, a, d), a); - mo(this.b.a, this.a); - b = new $o(this.a.g, this.a.a, a, d); - po(this.b.a, b, this.a); - this.a.e = null; - this.a.c = null; - this.b.b = this.b.a.g; - this.b.f == this.a && (this.b.f = b); - this.a = b; - return c; - }; - var EF = mdb(Zhe, "HashBiMap/1/MapEntry", 1012); - bcb(238, 345, { 345: 1, 238: 1, 3: 1, 42: 1 }, Wo); - _.cd = function Xo() { - return this.g; - }; - _.dd = function Yo() { - return this.i; - }; - _.ed = function Zo(a) { - throw vbb(new bgb()); - }; - var XF = mdb(Zhe, "ImmutableEntry", 238); - bcb(317, 238, { 345: 1, 317: 1, 238: 1, 3: 1, 42: 1 }, $o); - _.a = 0; - _.f = 0; - var GF = mdb(Zhe, "HashBiMap/BiEntry", 317); - bcb(610, 1979, Aie, ap); - _.Ac = function jp(a) { - Ld(this, a); - }; - _.Cc = function mp() { - return new Bp(this.a); - }; - _.$b = function bp() { - ko(this.a); - }; - _._b = function cp(a) { - return lo(this.a, a); - }; - _.kc = function dp() { - return new op(this, this.a); - }; - _.wc = function ep(a) { - Qb(a); - no(this.a, new zp(a)); - }; - _.xc = function fp(a) { - return _o(this, a); - }; - _.ec = function gp() { - return new up(this); - }; - _.zc = function ip(a, b) { - return so(this.a, a, b, false); - }; - _.Bc = function kp(a) { - var b; - b = vo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)))); - if (!b) { - return null; - } else { - mo(this.a, b); - b.e = null; - b.c = null; - return b.g; - } - }; - _.gc = function lp() { - return this.a.i; - }; - _.pd = function np() { - return new Bp(this.a); - }; - var MF = mdb(Zhe, "HashBiMap/Inverse", 610); - bcb(1008, 534, aie, op); - _.Nd = function pp(a) { - return new qp(this, a); - }; - var IF = mdb(Zhe, "HashBiMap/Inverse/1", 1008); - bcb(1009, 345, kie, qp); - _.cd = function rp() { - return this.a.i; - }; - _.dd = function sp() { - return this.a.g; - }; - _.ed = function tp(a) { - var b, c, d; - d = this.a.g; - b = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))); - if (b == this.a.a && (PD(a) === PD(d) || a != null && pb(a, d))) { - return a; - } - Nb(!uo(this.b.a.a, a, b), a); - mo(this.b.a.a, this.a); - c = new $o(a, b, this.a.i, this.a.f); - this.a = c; - po(this.b.a.a, c, null); - this.b.b = this.b.a.a.g; - return d; - }; - var HF = mdb(Zhe, "HashBiMap/Inverse/1/InverseEntry", 1009); - bcb(611, 532, fie, up); - _.Kc = function vp() { - return new xp(this.a.a); - }; - _.Mc = function wp(a) { - var b; - b = vo(this.a.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)))); - if (!b) { - return false; - } else { - mo(this.a.a, b); - return true; - } - }; - var KF = mdb(Zhe, "HashBiMap/Inverse/InverseKeySet", 611); - bcb(1007, 534, aie, xp); - _.Nd = function yp(a) { - return a.i; - }; - var JF = mdb(Zhe, "HashBiMap/Inverse/InverseKeySet/1", 1007); - bcb(1010, 1, {}, zp); - _.Od = function Ap(a, b) { - hp(this.a, a, b); - }; - var LF = mdb(Zhe, "HashBiMap/Inverse/lambda$0$Type", 1010); - bcb(609, 532, fie, Bp); - _.Kc = function Cp() { - return new Ep(this.a); - }; - _.Mc = function Dp(a) { - var b; - b = uo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)))); - if (!b) { - return false; - } else { - mo(this.a, b); - b.e = null; - b.c = null; - return true; - } - }; - var PF = mdb(Zhe, "HashBiMap/KeySet", 609); - bcb(1006, 534, aie, Ep); - _.Nd = function Fp(a) { - return a.g; - }; - var OF = mdb(Zhe, "HashBiMap/KeySet/1", 1006); - bcb(1093, 619, _he); - var RF = mdb(Zhe, "HashMultimapGwtSerializationDependencies", 1093); - bcb(265, 1093, _he, Hp); - _.hc = function Ip() { - return new Uqb(Cv(this.a)); - }; - _.gd = function Jp() { - return new Uqb(Cv(this.a)); - }; - _.a = 2; - var SF = mdb(Zhe, "HashMultimap", 265); - bcb(1999, 152, yie); - _.Hc = function Mp(a) { - return this.Pd().Hc(a); - }; - _.dc = function Np() { - return this.Pd().dc(); - }; - _.gc = function Op() { - return this.Pd().gc(); - }; - var TF = mdb(Zhe, "ImmutableAsList", 1999); - bcb(1931, 715, Aie); - _.Ld = function Qp() { - return Ql(), new oy(this.a); - }; - _.Cc = function Rp() { - return Ql(), new oy(this.a); - }; - _.pd = function Sp() { - return Ql(), new oy(this.a); - }; - var UF = mdb(Zhe, "ImmutableBiMap", 1931); - bcb(1977, 1, {}); - var VF = mdb(Zhe, "ImmutableCollection/Builder", 1977); - bcb(1022, 703, Cie, Tp); - var YF = mdb(Zhe, "ImmutableEnumSet", 1022); - bcb(969, 386, $he, Vp); - _.Xb = function Wp(a) { - return this.a.Xb(a); - }; - var ZF = mdb(Zhe, "ImmutableList/1", 969); - bcb(968, 1977, {}, Xp); - var $F = mdb(Zhe, "ImmutableList/Builder", 968); - bcb(614, 198, Yhe, Yp); - _.Ob = function Zp() { - return this.a.Ob(); - }; - _.Pb = function $p() { - return BD(this.a.Pb(), 42).cd(); - }; - var aG = mdb(Zhe, "ImmutableMap/1", 614); - bcb(1041, 1, {}, _p); - _.Kb = function aq(a) { - return BD(a, 42).cd(); - }; - var bG = mdb(Zhe, "ImmutableMap/2methodref$getKey$Type", 1041); - bcb(1040, 1, {}, cq); - var cG = mdb(Zhe, "ImmutableMap/Builder", 1040); - bcb(2e3, 1981, Cie); - _.Kc = function gq() { - var a; - return a = Wm(this.a).Ed(), new Yp(a); - }; - _.Dd = function dq() { - return new Fq(this); - }; - _.Jc = function eq(a) { - var b, c; - Qb(a); - c = this.gc(); - for (b = 0; b < c; b++) { - a.td(BD(Rl(Wm(this.a)).Xb(b), 42).cd()); - } - }; - _.Ed = function fq() { - var a; - return (a = this.c, !a ? this.c = new Fq(this) : a).Ed(); - }; - _.Nc = function hq() { - return Zj(this.gc(), 1296, new Dq(this)); - }; - var mG = mdb(Zhe, "IndexedImmutableSet", 2e3); - bcb(1180, 2e3, Cie, jq); - _.Kc = function nq() { - var a; - return a = Wm(this.a).Ed(), new Yp(a); - }; - _.Hc = function kq(a) { - return this.a._b(a); - }; - _.Jc = function lq(a) { - Qb(a); - stb(this.a, new qq(a)); - }; - _.Ed = function mq() { - var a; - return a = Wm(this.a).Ed(), new Yp(a); - }; - _.gc = function oq() { - return this.a.gc(); - }; - _.Nc = function pq() { - return $j(Wm(this.a).Nc(), new _p()); - }; - var eG = mdb(Zhe, "ImmutableMapKeySet", 1180); - bcb(1181, 1, {}, qq); - _.Od = function rq(a, b) { - Ql(); - this.a.td(a); - }; - var dG = mdb(Zhe, "ImmutableMapKeySet/lambda$0$Type", 1181); - bcb(1178, 1980, xie, sq); - _.Kc = function vq() { - return new Aq(this); - }; - _.Hc = function tq(a) { - return a != null && jr(new Aq(this), a); - }; - _.Ed = function uq() { - return new Aq(this); - }; - _.gc = function wq() { - return this.a.gc(); - }; - _.Nc = function xq() { - return $j(Wm(this.a).Nc(), new yq()); - }; - var hG = mdb(Zhe, "ImmutableMapValues", 1178); - bcb(1179, 1, {}, yq); - _.Kb = function zq(a) { - return BD(a, 42).dd(); - }; - var fG = mdb(Zhe, "ImmutableMapValues/0methodref$getValue$Type", 1179); - bcb(626, 198, Yhe, Aq); - _.Ob = function Bq() { - return this.a.Ob(); - }; - _.Pb = function Cq() { - return BD(this.a.Pb(), 42).dd(); - }; - var gG = mdb(Zhe, "ImmutableMapValues/1", 626); - bcb(1182, 1, {}, Dq); - _.ld = function Eq(a) { - return iq(this.a, a); - }; - var kG = mdb(Zhe, "IndexedImmutableSet/0methodref$get$Type", 1182); - bcb(752, 1999, yie, Fq); - _.Pd = function Gq() { - return this.a; - }; - _.Xb = function Hq(a) { - return iq(this.a, a); - }; - _.gc = function Iq() { - return this.a.a.gc(); - }; - var lG = mdb(Zhe, "IndexedImmutableSet/1", 752); - bcb(44, 1, {}, Sq); - _.Kb = function Tq(a) { - return BD(a, 20).Kc(); - }; - _.Fb = function Uq(a) { - return this === a; - }; - var nG = mdb(Zhe, "Iterables/10", 44); - bcb(1042, 537, vie, Wq); - _.Jc = function Xq(a) { - Qb(a); - this.b.Jc(new $q(this.a, a)); - }; - _.Kc = function Yq() { - return Vq(this); - }; - var pG = mdb(Zhe, "Iterables/4", 1042); - bcb(1043, 1, qie, $q); - _.td = function _q(a) { - Zq(this.b, this.a, a); - }; - var oG = mdb(Zhe, "Iterables/4/lambda$0$Type", 1043); - bcb(1044, 537, vie, ar); - _.Jc = function br(a) { - Qb(a); - reb(this.a, new dr(a, this.b)); - }; - _.Kc = function cr() { - return ur(new Fyd(this.a), this.b); - }; - var rG = mdb(Zhe, "Iterables/5", 1044); - bcb(1045, 1, qie, dr); - _.td = function er(a) { - this.a.td(Gfd(a)); - }; - var qG = mdb(Zhe, "Iterables/5/lambda$0$Type", 1045); - bcb(1071, 198, Yhe, wr); - _.Ob = function xr() { - return this.a.Ob(); - }; - _.Pb = function yr() { - return this.a.Pb(); - }; - var sG = mdb(Zhe, "Iterators/1", 1071); - bcb(1072, 699, Yhe, zr); - _.Yb = function Ar() { - var a; - while (this.b.Ob()) { - a = this.b.Pb(); - if (this.a.Lb(a)) { - return a; - } - } - return this.e = 2, null; - }; - var tG = mdb(Zhe, "Iterators/5", 1072); - bcb(487, 1, aie); - _.Nb = function Cr(a) { - Rrb(this, a); - }; - _.Ob = function Dr() { - return this.b.Ob(); - }; - _.Pb = function Er() { - return this.Qd(this.b.Pb()); - }; - _.Qb = function Fr() { - this.b.Qb(); - }; - var KH = mdb(Zhe, "TransformedIterator", 487); - bcb(1073, 487, aie, Gr); - _.Qd = function Hr(a) { - return this.a.Kb(a); - }; - var uG = mdb(Zhe, "Iterators/6", 1073); - bcb(717, 198, Yhe, Ir); - _.Ob = function Jr() { - return !this.a; - }; - _.Pb = function Kr() { - if (this.a) { - throw vbb(new utb()); - } - this.a = true; - return this.b; - }; - _.a = false; - var vG = mdb(Zhe, "Iterators/9", 717); - bcb(1070, 386, $he, Nr); - _.Xb = function Or(a) { - return this.a[this.b + a]; - }; - _.b = 0; - var Lr; - var wG = mdb(Zhe, "Iterators/ArrayItr", 1070); - bcb(39, 1, { 39: 1, 47: 1 }, Sr); - _.Nb = function Tr(a) { - Rrb(this, a); - }; - _.Ob = function Ur() { - return Qr(this); - }; - _.Pb = function Vr() { - return Rr(this); - }; - _.Qb = function Wr() { - Vb(!!this.c); - this.c.Qb(); - this.c = null; - }; - var xG = mdb(Zhe, "Iterators/ConcatenatedIterator", 39); - bcb(22, 1, { 3: 1, 35: 1, 22: 1 }); - _.wd = function _r(a) { - return Xr(this, BD(a, 22)); - }; - _.Fb = function bs(a) { - return this === a; - }; - _.Hb = function cs() { - return FCb(this); - }; - _.Ib = function ds() { - return Zr(this); - }; - _.g = 0; - var CI = mdb(Phe, "Enum", 22); - bcb(538, 22, { 538: 1, 3: 1, 35: 1, 22: 1, 47: 1 }, is); - _.Nb = function js(a) { - Rrb(this, a); - }; - _.Ob = function ks() { - return false; - }; - _.Pb = function ls() { - throw vbb(new utb()); - }; - _.Qb = function ms() { - Vb(false); - }; - var gs; - var yG = ndb(Zhe, "Iterators/EmptyModifiableIterator", 538, CI, os, ns); - var ps; - bcb(1834, 619, _he); - var EG = mdb(Zhe, "LinkedHashMultimapGwtSerializationDependencies", 1834); - bcb(1835, 1834, _he, ss); - _.hc = function us() { - return new Asb(Cv(this.b)); - }; - _.$b = function ts() { - Nc(this); - As(this.a, this.a); - }; - _.gd = function vs() { - return new Asb(Cv(this.b)); - }; - _.ic = function ws(a) { - return new Ss(this, a, this.b); - }; - _.kc = function xs() { - return new Hs(this); - }; - _.lc = function ys() { - var a; - return new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17); - }; - _.ec = function zs() { - var a; - return a = this.i, !a ? this.i = new zf(this, this.c) : a; - }; - _.nc = function Cs() { - return new Ov(new Hs(this)); - }; - _.oc = function Ds() { - var a; - return $j(new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17), new Es()); - }; - _.b = 2; - var FG = mdb(Zhe, "LinkedHashMultimap", 1835); - bcb(1838, 1, {}, Es); - _.Kb = function Fs(a) { - return BD(a, 42).dd(); - }; - var zG = mdb(Zhe, "LinkedHashMultimap/0methodref$getValue$Type", 1838); - bcb(824, 1, aie, Hs); - _.Nb = function Is(a) { - Rrb(this, a); - }; - _.Pb = function Ks() { - return Gs(this); - }; - _.Ob = function Js() { - return this.a != this.b.a; - }; - _.Qb = function Ls() { - Vb(!!this.c); - Gc(this.b, this.c.g, this.c.i); - this.c = null; - }; - var AG = mdb(Zhe, "LinkedHashMultimap/1", 824); - bcb(330, 238, { 345: 1, 238: 1, 330: 1, 2020: 1, 3: 1, 42: 1 }, Ms); - _.Rd = function Ns() { - return this.f; - }; - _.Sd = function Os(a) { - this.c = a; - }; - _.Td = function Ps(a) { - this.f = a; - }; - _.d = 0; - var BG = mdb(Zhe, "LinkedHashMultimap/ValueEntry", 330); - bcb(1836, 1970, { 2020: 1, 20: 1, 28: 1, 14: 1, 21: 1 }, Ss); - _.Fc = function Ts(a) { - var b, c, d, e, f; - f = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))); - b = f & this.b.length - 1; - e = this.b[b]; - for (c = e; c; c = c.a) { - if (c.d == f && Hb(c.i, a)) { - return false; - } - } - d = new Ms(this.c, a, f, e); - Bs(this.d, d); - d.f = this; - this.d = d; - As(this.g.a.b, d); - As(d, this.g.a); - this.b[b] = d; - ++this.f; - ++this.e; - Qs(this); - return true; - }; - _.$b = function Us() { - var a, b; - Alb(this.b, null); - this.f = 0; - for (a = this.a; a != this; a = a.Rd()) { - b = BD(a, 330); - As(b.b, b.e); - } - this.a = this; - this.d = this; - ++this.e; - }; - _.Hc = function Vs(a) { - var b, c; - c = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))); - for (b = this.b[c & this.b.length - 1]; b; b = b.a) { - if (b.d == c && Hb(b.i, a)) { - return true; - } - } - return false; - }; - _.Jc = function Ws(a) { - var b; - Qb(a); - for (b = this.a; b != this; b = b.Rd()) { - a.td(BD(b, 330).i); - } - }; - _.Rd = function Xs() { - return this.a; - }; - _.Kc = function Ys() { - return new ct(this); - }; - _.Mc = function Zs(a) { - return Rs(this, a); - }; - _.Sd = function $s(a) { - this.d = a; - }; - _.Td = function _s(a) { - this.a = a; - }; - _.gc = function at() { - return this.f; - }; - _.e = 0; - _.f = 0; - var DG = mdb(Zhe, "LinkedHashMultimap/ValueSet", 1836); - bcb(1837, 1, aie, ct); - _.Nb = function dt(a) { - Rrb(this, a); - }; - _.Ob = function et() { - return bt(this), this.b != this.c; - }; - _.Pb = function ft() { - var a, b; - bt(this); - if (this.b == this.c) { - throw vbb(new utb()); - } - a = BD(this.b, 330); - b = a.i; - this.d = a; - this.b = a.f; - return b; - }; - _.Qb = function gt() { - bt(this); - Vb(!!this.d); - Rs(this.c, this.d.i); - this.a = this.c.e; - this.d = null; - }; - _.a = 0; - var CG = mdb(Zhe, "LinkedHashMultimap/ValueSet/1", 1837); - bcb(766, 1986, _he, mt); - _.Zb = function nt() { - var a; - return a = this.f, !a ? this.f = new jw(this) : a; - }; - _.Fb = function tt(a) { - return hw(this, a); - }; - _.cc = function ut(a) { - return new bu(this, a); - }; - _.fc = function xt(a) { - return kt(this, a); - }; - _.$b = function pt() { - it(this); - }; - _._b = function qt(a) { - return jt(this, a); - }; - _.ac = function rt() { - return new jw(this); - }; - _.bc = function st() { - return new eu(this); - }; - _.qc = function vt(a) { - return new bu(this, a); - }; - _.dc = function wt() { - return !this.a; - }; - _.rc = function yt(a) { - return kt(this, a); - }; - _.gc = function zt() { - return this.d; - }; - _.c = 0; - _.d = 0; - var MG = mdb(Zhe, "LinkedListMultimap", 766); - bcb(52, 28, Lie); - _.ad = function Pt(a) { - ktb(this, a); - }; - _.Nc = function Qt() { - return new Kub(this, 16); - }; - _.Vc = function Ct(a, b) { - throw vbb(new cgb("Add not supported on this list")); - }; - _.Fc = function Dt(a) { - this.Vc(this.gc(), a); - return true; - }; - _.Wc = function Et(a, b) { - var c, d, e; - uCb(b); - c = false; - for (e = b.Kc(); e.Ob(); ) { - d = e.Pb(); - this.Vc(a++, d); - c = true; - } - return c; - }; - _.$b = function Ft() { - this.Ud(0, this.gc()); - }; - _.Fb = function Gt(a) { - return At(this, a); - }; - _.Hb = function Ht() { - return qmb(this); - }; - _.Xc = function It(a) { - return Bt(this, a); - }; - _.Kc = function Jt() { - return new vib(this); - }; - _.Yc = function Kt() { - return this.Zc(0); - }; - _.Zc = function Lt(a) { - return new Bib(this, a); - }; - _.$c = function Mt(a) { - throw vbb(new cgb("Remove not supported on this list")); - }; - _.Ud = function Nt(a, b) { - var c, d; - d = this.Zc(a); - for (c = a; c < b; ++c) { - d.Pb(); - d.Qb(); - } - }; - _._c = function Ot(a, b) { - throw vbb(new cgb("Set not supported on this list")); - }; - _.bd = function Rt(a, b) { - return new Jib(this, a, b); - }; - _.j = 0; - var kJ = mdb(bie, "AbstractList", 52); - bcb(1964, 52, Lie); - _.Vc = function Wt(a, b) { - St(this, a, b); - }; - _.Wc = function Xt(a, b) { - return Tt(this, a, b); - }; - _.Xb = function Yt(a) { - return Ut(this, a); - }; - _.Kc = function Zt() { - return this.Zc(0); - }; - _.$c = function $t(a) { - return Vt(this, a); - }; - _._c = function _t(b, c) { - var d, e; - d = this.Zc(b); - try { - e = d.Pb(); - d.Wb(c); - return e; - } catch (a) { - a = ubb(a); - if (JD(a, 109)) { - throw vbb(new qcb("Can't set element " + b)); - } else - throw vbb(a); - } - }; - var yJ = mdb(bie, "AbstractSequentialList", 1964); - bcb(636, 1964, Lie, bu); - _.Zc = function cu(a) { - return au(this, a); - }; - _.gc = function du() { - var a; - a = BD(Ohb(this.a.b, this.b), 283); - return !a ? 0 : a.a; - }; - var HG = mdb(Zhe, "LinkedListMultimap/1", 636); - bcb(1297, 1970, fie, eu); - _.Hc = function fu(a) { - return jt(this.a, a); - }; - _.Kc = function gu() { - return new ku(this.a); - }; - _.Mc = function hu(a) { - return !kt(this.a, a).a.dc(); - }; - _.gc = function iu() { - return Vhb(this.a.b); - }; - var GG = mdb(Zhe, "LinkedListMultimap/1KeySetImpl", 1297); - bcb(1296, 1, aie, ku); - _.Nb = function lu(a) { - Rrb(this, a); - }; - _.Ob = function mu() { - ju(this); - return !!this.c; - }; - _.Pb = function nu() { - ju(this); - ot(this.c); - this.a = this.c; - Qqb(this.d, this.a.a); - do { - this.c = this.c.b; - } while (!!this.c && !Qqb(this.d, this.c.a)); - return this.a.a; - }; - _.Qb = function ou() { - ju(this); - Vb(!!this.a); - ir(new wu(this.e, this.a.a)); - this.a = null; - this.b = this.e.c; - }; - _.b = 0; - var IG = mdb(Zhe, "LinkedListMultimap/DistinctKeyIterator", 1296); - bcb(283, 1, { 283: 1 }, pu); - _.a = 0; - var JG = mdb(Zhe, "LinkedListMultimap/KeyList", 283); - bcb(1295, 345, kie, qu); - _.cd = function ru() { - return this.a; - }; - _.dd = function su() { - return this.f; - }; - _.ed = function tu(a) { - var b; - b = this.f; - this.f = a; - return b; - }; - var KG = mdb(Zhe, "LinkedListMultimap/Node", 1295); - bcb(560, 1, jie, wu, xu); - _.Nb = function zu(a) { - Rrb(this, a); - }; - _.Rb = function yu(a) { - this.e = ht(this.f, this.b, a, this.c); - ++this.d; - this.a = null; - }; - _.Ob = function Au() { - return !!this.c; - }; - _.Sb = function Bu() { - return !!this.e; - }; - _.Pb = function Cu() { - return uu(this); - }; - _.Tb = function Du() { - return this.d; - }; - _.Ub = function Eu() { - return vu(this); - }; - _.Vb = function Fu() { - return this.d - 1; - }; - _.Qb = function Gu() { - Vb(!!this.a); - if (this.a != this.c) { - this.e = this.a.e; - --this.d; - } else { - this.c = this.a.c; - } - lt(this.f, this.a); - this.a = null; - }; - _.Wb = function Hu(a) { - Ub(!!this.a); - this.a.f = a; - }; - _.d = 0; - var LG = mdb(Zhe, "LinkedListMultimap/ValueForKeyIterator", 560); - bcb(1018, 52, Lie); - _.Vc = function Tu(a, b) { - this.a.Vc(a, b); - }; - _.Wc = function Uu(a, b) { - return this.a.Wc(a, b); - }; - _.Hc = function Vu(a) { - return this.a.Hc(a); - }; - _.Xb = function Wu(a) { - return this.a.Xb(a); - }; - _.$c = function Xu(a) { - return this.a.$c(a); - }; - _._c = function Yu(a, b) { - return this.a._c(a, b); - }; - _.gc = function Zu() { - return this.a.gc(); - }; - var OG = mdb(Zhe, "Lists/AbstractListWrapper", 1018); - bcb(1019, 1018, Nie); - var PG = mdb(Zhe, "Lists/RandomAccessListWrapper", 1019); - bcb(1021, 1019, Nie, $u); - _.Zc = function _u(a) { - return this.a.Zc(a); - }; - var NG = mdb(Zhe, "Lists/1", 1021); - bcb(131, 52, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, dv); - _.Vc = function ev(a, b) { - this.a.Vc(cv(this, a), b); - }; - _.$b = function fv() { - this.a.$b(); - }; - _.Xb = function gv(a) { - return this.a.Xb(bv(this, a)); - }; - _.Kc = function hv() { - return av(this, 0); - }; - _.Zc = function iv(a) { - return av(this, a); - }; - _.$c = function jv(a) { - return this.a.$c(bv(this, a)); - }; - _.Ud = function kv(a, b) { - (Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)))).$b(); - }; - _._c = function lv(a, b) { - return this.a._c(bv(this, a), b); - }; - _.gc = function mv() { - return this.a.gc(); - }; - _.bd = function nv(a, b) { - return Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a))); - }; - var SG = mdb(Zhe, "Lists/ReverseList", 131); - bcb(280, 131, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, ov); - var QG = mdb(Zhe, "Lists/RandomAccessReverseList", 280); - bcb(1020, 1, jie, qv); - _.Nb = function sv(a) { - Rrb(this, a); - }; - _.Rb = function rv(a) { - this.c.Rb(a); - this.c.Ub(); - this.a = false; - }; - _.Ob = function tv() { - return this.c.Sb(); - }; - _.Sb = function uv() { - return this.c.Ob(); - }; - _.Pb = function vv() { - return pv(this); - }; - _.Tb = function wv() { - return cv(this.b, this.c.Tb()); - }; - _.Ub = function xv() { - if (!this.c.Ob()) { - throw vbb(new utb()); - } - this.a = true; - return this.c.Pb(); - }; - _.Vb = function yv() { - return cv(this.b, this.c.Tb()) - 1; - }; - _.Qb = function zv() { - Vb(this.a); - this.c.Qb(); - this.a = false; - }; - _.Wb = function Av(a) { - Ub(this.a); - this.c.Wb(a); - }; - _.a = false; - var RG = mdb(Zhe, "Lists/ReverseList/1", 1020); - bcb(432, 487, aie, Mv); - _.Qd = function Nv(a) { - return Lv(a); - }; - var TG = mdb(Zhe, "Maps/1", 432); - bcb(698, 487, aie, Ov); - _.Qd = function Pv(a) { - return BD(a, 42).dd(); - }; - var UG = mdb(Zhe, "Maps/2", 698); - bcb(962, 487, aie, Qv); - _.Qd = function Rv(a) { - return new Wo(a, ww(this.a, a)); - }; - var VG = mdb(Zhe, "Maps/3", 962); - bcb(959, 1971, fie, Sv); - _.Jc = function Tv(a) { - mj(this.a, a); - }; - _.Kc = function Uv() { - return this.a.kc(); - }; - _.Rc = function Vv() { - return this.a; - }; - _.Nc = function Wv() { - return this.a.lc(); - }; - var XG = mdb(Zhe, "Maps/IteratorBasedAbstractMap/1", 959); - bcb(960, 1, {}, Xv); - _.Od = function Yv(a, b) { - this.a.td(a); - }; - var ZG = mdb(Zhe, "Maps/KeySet/lambda$0$Type", 960); - bcb(958, 28, die, Zv); - _.$b = function $v() { - this.a.$b(); - }; - _.Hc = function _v(a) { - return this.a.uc(a); - }; - _.Jc = function aw(a) { - Qb(a); - this.a.wc(new fw(a)); - }; - _.dc = function bw() { - return this.a.dc(); - }; - _.Kc = function cw() { - return new Ov(this.a.vc().Kc()); - }; - _.Mc = function dw(b) { - var c, d; - try { - return ze(this, b, true); - } catch (a) { - a = ubb(a); - if (JD(a, 41)) { - for (d = this.a.vc().Kc(); d.Ob(); ) { - c = BD(d.Pb(), 42); - if (Hb(b, c.dd())) { - this.a.Bc(c.cd()); - return true; - } - } - return false; - } else - throw vbb(a); - } - }; - _.gc = function ew() { - return this.a.gc(); - }; - var aH = mdb(Zhe, "Maps/Values", 958); - bcb(961, 1, {}, fw); - _.Od = function gw(a, b) { - this.a.td(b); - }; - var _G = mdb(Zhe, "Maps/Values/lambda$0$Type", 961); - bcb(736, 1987, cie, jw); - _.xc = function nw(a) { - return this.a._b(a) ? this.a.cc(a) : null; - }; - _.Bc = function qw(a) { - return this.a._b(a) ? this.a.fc(a) : null; - }; - _.$b = function kw() { - this.a.$b(); - }; - _._b = function lw(a) { - return this.a._b(a); - }; - _.Ec = function mw() { - return new sw(this); - }; - _.Dc = function() { - return this.Ec(); - }; - _.dc = function ow() { - return this.a.dc(); - }; - _.ec = function pw() { - return this.a.ec(); - }; - _.gc = function rw() { - return this.a.ec().gc(); - }; - var eH = mdb(Zhe, "Multimaps/AsMap", 736); - bcb(1104, 1971, fie, sw); - _.Kc = function tw() { - return Bv(this.a.a.ec(), new xw(this)); - }; - _.Rc = function uw() { - return this.a; - }; - _.Mc = function vw(a) { - var b; - if (!Ze(this, a)) { - return false; - } - b = BD(a, 42); - iw(this.a, b.cd()); - return true; - }; - var dH = mdb(Zhe, "Multimaps/AsMap/EntrySet", 1104); - bcb(1108, 1, {}, xw); - _.Kb = function yw(a) { - return ww(this, a); - }; - _.Fb = function zw(a) { - return this === a; - }; - var cH = mdb(Zhe, "Multimaps/AsMap/EntrySet/1", 1108); - bcb(543, 1989, { 543: 1, 835: 1, 20: 1, 28: 1, 14: 1 }, Cw); - _.$b = function Dw() { - Nc(this.a); - }; - _.Hc = function Ew(a) { - return Oc(this.a, a); - }; - _.Jc = function Fw(a) { - Qb(a); - reb(Pc(this.a), new Rw(a)); - }; - _.Kc = function Gw() { - return new Mv(Pc(this.a).a.kc()); - }; - _.gc = function Hw() { - return this.a.d; - }; - _.Nc = function Iw() { - return $j(Pc(this.a).Nc(), new Jw()); - }; - var kH = mdb(Zhe, "Multimaps/Keys", 543); - bcb(1106, 1, {}, Jw); - _.Kb = function Kw(a) { - return BD(a, 42).cd(); - }; - var gH = mdb(Zhe, "Multimaps/Keys/0methodref$getKey$Type", 1106); - bcb(1105, 487, aie, Lw); - _.Qd = function Mw(a) { - return new Qw(BD(a, 42)); - }; - var iH = mdb(Zhe, "Multimaps/Keys/1", 1105); - bcb(1990, 1, { 416: 1 }); - _.Fb = function Nw(a) { - var b; - if (JD(a, 492)) { - b = BD(a, 416); - return BD(this.a.dd(), 14).gc() == BD(b.a.dd(), 14).gc() && Hb(this.a.cd(), b.a.cd()); - } - return false; - }; - _.Hb = function Ow() { - var a; - a = this.a.cd(); - return (a == null ? 0 : tb(a)) ^ BD(this.a.dd(), 14).gc(); - }; - _.Ib = function Pw() { - var a, b; - b = xfb(this.a.cd()); - a = BD(this.a.dd(), 14).gc(); - return a == 1 ? b : b + " x " + a; - }; - var oH = mdb(Zhe, "Multisets/AbstractEntry", 1990); - bcb(492, 1990, { 492: 1, 416: 1 }, Qw); - var hH = mdb(Zhe, "Multimaps/Keys/1/1", 492); - bcb(1107, 1, qie, Rw); - _.td = function Sw(a) { - this.a.td(BD(a, 42).cd()); - }; - var jH = mdb(Zhe, "Multimaps/Keys/lambda$1$Type", 1107); - bcb(1110, 1, qie, Vw); - _.td = function Ww(a) { - Tw(BD(a, 416)); - }; - var lH = mdb(Zhe, "Multiset/lambda$0$Type", 1110); - bcb(737, 1, qie, Xw); - _.td = function Yw(a) { - Uw(this.a, BD(a, 416)); - }; - var mH = mdb(Zhe, "Multiset/lambda$1$Type", 737); - bcb(1111, 1, {}, bx); - var nH = mdb(Zhe, "Multisets/0methodref$add$Type", 1111); - bcb(738, 1, {}, cx); - _.Kb = function dx(a) { - return _w(BD(a, 416)); - }; - var qH = mdb(Zhe, "Multisets/lambda$3$Type", 738); - bcb(2008, 1, Qhe); - var rH = mdb(Zhe, "RangeGwtSerializationDependencies", 2008); - bcb(514, 2008, { 169: 1, 514: 1, 3: 1, 45: 1 }, gx); - _.Lb = function hx(a) { - return fx(this, BD(a, 35)); - }; - _.Mb = function lx(a) { - return fx(this, BD(a, 35)); - }; - _.Fb = function jx(a) { - var b; - if (JD(a, 514)) { - b = BD(a, 514); - return Ek(this.a, b.a) && Ek(this.b, b.b); - } - return false; - }; - _.Hb = function kx() { - return this.a.Hb() * 31 + this.b.Hb(); - }; - _.Ib = function mx() { - return nx(this.a, this.b); - }; - var sH = mdb(Zhe, "Range", 514); - bcb(778, 1999, yie, px); - _.Zc = function tx(a) { - return jm(this.b, a); - }; - _.Pd = function qx() { - return this.a; - }; - _.Xb = function rx(a) { - return Em(this.b, a); - }; - _.Fd = function sx(a) { - return jm(this.b, a); - }; - var tH = mdb(Zhe, "RegularImmutableAsList", 778); - bcb(646, 2006, yie, ux); - _.Hd = function vx() { - return this.a; - }; - var uH = mdb(Zhe, "RegularImmutableList", 646); - bcb(616, 715, Aie, wx); - var vH = mdb(Zhe, "RegularImmutableMap", 616); - bcb(716, 703, Cie, zx); - var xx; - var wH = mdb(Zhe, "RegularImmutableSet", 716); - bcb(1976, eie, fie); - _.Kc = function Mx() { - return new Xx(this.a, this.b); - }; - _.Fc = function Jx(a) { - throw vbb(new bgb()); - }; - _.Gc = function Kx(a) { - throw vbb(new bgb()); - }; - _.$b = function Lx() { - throw vbb(new bgb()); - }; - _.Mc = function Nx(a) { - throw vbb(new bgb()); - }; - var CH = mdb(Zhe, "Sets/SetView", 1976); - bcb(963, 1976, fie, Px); - _.Kc = function Tx() { - return new Xx(this.a, this.b); - }; - _.Hc = function Qx(a) { - return tqb(this.a, a) && this.b.Hc(a); - }; - _.Ic = function Rx(a) { - return Be(this.a, a) && this.b.Ic(a); - }; - _.dc = function Sx() { - return omb(this.b, this.a); - }; - _.Lc = function Ux() { - return JAb(new YAb(null, new Kub(this.a, 1)), new _x(this.b)); - }; - _.gc = function Vx() { - return Ox(this); - }; - _.Oc = function Wx() { - return JAb(new YAb(null, new Kub(this.a, 1)), new Zx(this.b)); - }; - var AH = mdb(Zhe, "Sets/2", 963); - bcb(700, 699, Yhe, Xx); - _.Yb = function Yx() { - var a; - while (Eqb(this.a)) { - a = Fqb(this.a); - if (this.c.Hc(a)) { - return a; - } - } - return this.e = 2, null; - }; - var xH = mdb(Zhe, "Sets/2/1", 700); - bcb(964, 1, Oie, Zx); - _.Mb = function $x(a) { - return this.a.Hc(a); - }; - var yH = mdb(Zhe, "Sets/2/4methodref$contains$Type", 964); - bcb(965, 1, Oie, _x); - _.Mb = function ay(a) { - return this.a.Hc(a); - }; - var zH = mdb(Zhe, "Sets/2/5methodref$contains$Type", 965); - bcb(607, 1975, { 607: 1, 3: 1, 20: 1, 14: 1, 271: 1, 21: 1, 84: 1 }, by); - _.Bd = function cy() { - return this.b; - }; - _.Cd = function dy() { - return this.b; - }; - _.Md = function ey() { - return this.b; - }; - _.Jc = function fy(a) { - this.a.Jc(a); - }; - _.Lc = function gy() { - return this.a.Lc(); - }; - _.Oc = function hy() { - return this.a.Oc(); - }; - var DH = mdb(Zhe, "Sets/UnmodifiableNavigableSet", 607); - bcb(1932, 1931, Aie, iy); - _.Ld = function jy() { - return Ql(), new oy(this.a); - }; - _.Cc = function ky() { - return Ql(), new oy(this.a); - }; - _.pd = function ly() { - return Ql(), new oy(this.a); - }; - var EH = mdb(Zhe, "SingletonImmutableBiMap", 1932); - bcb(647, 2006, yie, my); - _.Hd = function ny() { - return this.a; - }; - var FH = mdb(Zhe, "SingletonImmutableList", 647); - bcb(350, 1981, Cie, oy); - _.Kc = function ry() { - return new Ir(this.a); - }; - _.Hc = function py(a) { - return pb(this.a, a); - }; - _.Ed = function qy() { - return new Ir(this.a); - }; - _.gc = function sy() { - return 1; - }; - var GH = mdb(Zhe, "SingletonImmutableSet", 350); - bcb(1115, 1, {}, vy); - _.Kb = function wy(a) { - return BD(a, 164); - }; - var HH = mdb(Zhe, "Streams/lambda$0$Type", 1115); - bcb(1116, 1, Pie, xy); - _.Vd = function yy() { - uy(this.a); - }; - var IH = mdb(Zhe, "Streams/lambda$1$Type", 1116); - bcb(1659, 1658, _he, Ay); - _.Zb = function By() { - var a; - return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171); - }; - _.hc = function Ey() { - return new Hxb(this.b); - }; - _.gd = function Fy() { - return new Hxb(this.b); - }; - _.ec = function Hy() { - var a; - return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271); - }; - _.ac = function Dy() { - return JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c); - }; - _.ic = function Gy(a) { - a == null && this.a.ue(a, a); - return new Hxb(this.b); - }; - var LH = mdb(Zhe, "TreeMultimap", 1659); - bcb(78, 1, { 3: 1, 78: 1 }); - _.Wd = function $y(a) { - return new Error(a); - }; - _.Xd = function az() { - return this.e; - }; - _.Yd = function bz() { - return XAb(NAb(Plb((this.k == null && (this.k = KC(_I, nie, 78, 0, 0, 1)), this.k)), new _fb()), new bBb()); - }; - _.Zd = function cz() { - return this.f; - }; - _.$d = function dz() { - return this.g; - }; - _._d = function ez() { - Vy(this, _y(this.Wd(Wy(this, this.g)))); - Sz(this); - }; - _.Ib = function fz() { - return Wy(this, this.$d()); - }; - _.e = Sie; - _.i = false; - _.n = true; - var _I = mdb(Phe, "Throwable", 78); - bcb(102, 78, { 3: 1, 102: 1, 78: 1 }); - var EI = mdb(Phe, "Exception", 102); - bcb(60, 102, Tie, gz, hz); - var TI = mdb(Phe, "RuntimeException", 60); - bcb(598, 60, Tie); - var LI = mdb(Phe, "JsException", 598); - bcb(863, 598, Tie); - var RH = mdb(Uie, "JavaScriptExceptionBase", 863); - bcb(477, 863, { 477: 1, 3: 1, 102: 1, 60: 1, 78: 1 }, lz); - _.$d = function oz() { - kz(this); - return this.c; - }; - _.ae = function pz() { - return PD(this.b) === PD(iz) ? null : this.b; - }; - var iz; - var OH = mdb(Wie, "JavaScriptException", 477); - var PH = mdb(Wie, "JavaScriptObject$", 0); - var tz; - bcb(1948, 1, {}); - var QH = mdb(Wie, "Scheduler", 1948); - var xz = 0, yz = 0, zz = -1; - bcb(890, 1948, {}, Nz); - var Jz; - var SH = mdb(Uie, "SchedulerImpl", 890); - var Qz; - bcb(1960, 1, {}); - var WH = mdb(Uie, "StackTraceCreator/Collector", 1960); - bcb(864, 1960, {}, Yz); - _.be = function Zz(a) { - var b = {}, j; - var c = []; - a[Yie] = c; - var d = arguments.callee.caller; - while (d) { - var e = (Rz(), d.name || (d.name = Uz(d.toString()))); - c.push(e); - var f = ":" + e; - var g10 = b[f]; - if (g10) { - var h, i10; - for (h = 0, i10 = g10.length; h < i10; h++) { - if (g10[h] === d) { - return; - } - } - } - (g10 || (b[f] = [])).push(d); - d = d.caller; - } - }; - _.ce = function $z(a) { - var b, c, d, e; - d = (Rz(), a && a[Yie] ? a[Yie] : []); - c = d.length; - e = KC(VI, nie, 310, c, 0, 1); - for (b = 0; b < c; b++) { - e[b] = new Zeb(d[b], null, -1); - } - return e; - }; - var TH = mdb(Uie, "StackTraceCreator/CollectorLegacy", 864); - bcb(1961, 1960, {}); - _.be = function aA(a) { - }; - _.de = function bA(a, b, c, d) { - return new Zeb(b, a + "@" + d, c < 0 ? -1 : c); - }; - _.ce = function cA(a) { - var b, c, d, e, f, g10; - e = Wz(a); - f = KC(VI, nie, 310, 0, 0, 1); - b = 0; - d = e.length; - if (d == 0) { - return f; - } - g10 = _z(this, e[0]); - dfb(g10.d, Xie) || (f[b++] = g10); - for (c = 1; c < d; c++) { - f[b++] = _z(this, e[c]); - } - return f; - }; - var VH = mdb(Uie, "StackTraceCreator/CollectorModern", 1961); - bcb(865, 1961, {}, dA); - _.de = function eA(a, b, c, d) { - return new Zeb(b, a, -1); - }; - var UH = mdb(Uie, "StackTraceCreator/CollectorModernNoSourceMap", 865); - bcb(1050, 1, {}); - var cI = mdb(yje, zje, 1050); - bcb(615, 1050, { 615: 1 }, HA); - var FA; - var XH = mdb(Aje, zje, 615); - bcb(2001, 1, {}); - var dI = mdb(yje, Bje, 2001); - bcb(2002, 2001, {}); - var YH = mdb(Aje, Bje, 2002); - bcb(1090, 1, {}, MA); - var JA; - var ZH = mdb(Aje, "LocaleInfo", 1090); - bcb(1918, 1, {}, PA); - _.a = 0; - var _H = mdb(Aje, "TimeZone", 1918); - bcb(1258, 2002, {}, VA); - var aI = mdb("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1258); - bcb(434, 1, { 434: 1 }, WA); - _.a = false; - _.b = 0; - var bI = mdb(yje, "DateTimeFormat/PatternPart", 434); - bcb(199, 1, Cje, eB, fB, gB); - _.wd = function hB(a) { - return XA(this, BD(a, 199)); - }; - _.Fb = function iB(a) { - return JD(a, 199) && Bbb(Cbb(this.q.getTime()), Cbb(BD(a, 199).q.getTime())); - }; - _.Hb = function jB() { - var a; - a = Cbb(this.q.getTime()); - return Tbb(Vbb(a, Pbb(a, 32))); - }; - _.Ib = function lB() { - var a, b, c; - c = -this.q.getTimezoneOffset(); - a = (c >= 0 ? "+" : "") + (c / 60 | 0); - b = kB($wnd.Math.abs(c) % 60); - return (Dpb(), Bpb)[this.q.getDay()] + " " + Cpb[this.q.getMonth()] + " " + kB(this.q.getDate()) + " " + kB(this.q.getHours()) + ":" + kB(this.q.getMinutes()) + ":" + kB(this.q.getSeconds()) + " GMT" + a + b + " " + this.q.getFullYear(); - }; - var $J = mdb(bie, "Date", 199); - bcb(1915, 199, Cje, nB); - _.a = false; - _.b = 0; - _.c = 0; - _.d = 0; - _.e = 0; - _.f = 0; - _.g = false; - _.i = 0; - _.j = 0; - _.k = 0; - _.n = 0; - _.o = 0; - _.p = 0; - var eI = mdb("com.google.gwt.i18n.shared.impl", "DateRecord", 1915); - bcb(1966, 1, {}); - _.fe = function oB() { - return null; - }; - _.ge = function pB() { - return null; - }; - _.he = function qB() { - return null; - }; - _.ie = function rB() { - return null; - }; - _.je = function sB() { - return null; - }; - var nI = mdb(Dje, "JSONValue", 1966); - bcb(216, 1966, { 216: 1 }, wB, xB); - _.Fb = function yB(a) { - if (!JD(a, 216)) { - return false; - } - return qz(this.a, BD(a, 216).a); - }; - _.ee = function zB() { - return DB; - }; - _.Hb = function AB() { - return rz(this.a); - }; - _.fe = function BB() { - return this; - }; - _.Ib = function CB() { - var a, b, c; - c = new Wfb("["); - for (b = 0, a = this.a.length; b < a; b++) { - b > 0 && (c.a += ",", c); - Pfb(c, tB(this, b)); - } - c.a += "]"; - return c.a; - }; - var fI = mdb(Dje, "JSONArray", 216); - bcb(483, 1966, { 483: 1 }, HB); - _.ee = function IB() { - return LB; - }; - _.ge = function JB() { - return this; - }; - _.Ib = function KB() { - return Bcb(), "" + this.a; - }; - _.a = false; - var EB, FB; - var gI = mdb(Dje, "JSONBoolean", 483); - bcb(985, 60, Tie, MB); - var hI = mdb(Dje, "JSONException", 985); - bcb(1023, 1966, {}, PB); - _.ee = function QB() { - return SB; - }; - _.Ib = function RB() { - return Xhe; - }; - var NB; - var iI = mdb(Dje, "JSONNull", 1023); - bcb(258, 1966, { 258: 1 }, TB); - _.Fb = function UB(a) { - if (!JD(a, 258)) { - return false; - } - return this.a == BD(a, 258).a; - }; - _.ee = function VB() { - return ZB; - }; - _.Hb = function WB() { - return Hdb(this.a); - }; - _.he = function XB() { - return this; - }; - _.Ib = function YB() { - return this.a + ""; - }; - _.a = 0; - var jI = mdb(Dje, "JSONNumber", 258); - bcb(183, 1966, { 183: 1 }, eC, fC); - _.Fb = function gC(a) { - if (!JD(a, 183)) { - return false; - } - return qz(this.a, BD(a, 183).a); - }; - _.ee = function hC() { - return lC; - }; - _.Hb = function iC() { - return rz(this.a); - }; - _.ie = function jC() { - return this; - }; - _.Ib = function kC() { - var a, b, c, d, e, f, g10; - g10 = new Wfb("{"); - a = true; - f = $B(this, KC(ZI, nie, 2, 0, 6, 1)); - for (c = f, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - a ? a = false : (g10.a += She, g10); - Qfb(g10, vz(b)); - g10.a += ":"; - Pfb(g10, aC(this, b)); - } - g10.a += "}"; - return g10.a; - }; - var lI = mdb(Dje, "JSONObject", 183); - bcb(596, eie, fie, mC); - _.Hc = function nC(a) { - return ND(a) && _B(this.a, GD(a)); - }; - _.Kc = function oC() { - return new vib(new amb(this.b)); - }; - _.gc = function pC() { - return this.b.length; - }; - var kI = mdb(Dje, "JSONObject/1", 596); - var qC; - bcb(204, 1966, { 204: 1 }, yC); - _.Fb = function zC(a) { - if (!JD(a, 204)) { - return false; - } - return dfb(this.a, BD(a, 204).a); - }; - _.ee = function AC() { - return EC; - }; - _.Hb = function BC() { - return LCb(this.a); - }; - _.je = function CC() { - return this; - }; - _.Ib = function DC() { - return vz(this.a); - }; - var mI = mdb(Dje, "JSONString", 204); - var QC; - var sD, tD, uD, vD; - bcb(1962, 1, { 525: 1 }); - var pI = mdb(Lje, "OutputStream", 1962); - bcb(1963, 1962, { 525: 1 }); - var oI = mdb(Lje, "FilterOutputStream", 1963); - bcb(866, 1963, { 525: 1 }, jcb); - var qI = mdb(Lje, "PrintStream", 866); - bcb(418, 1, { 475: 1 }); - _.Ib = function ncb() { - return this.a; - }; - var rI = mdb(Phe, "AbstractStringBuilder", 418); - bcb(529, 60, Tie, ocb); - var sI = mdb(Phe, "ArithmeticException", 529); - bcb(73, 60, Mje, pcb, qcb); - var II = mdb(Phe, "IndexOutOfBoundsException", 73); - bcb(320, 73, { 3: 1, 320: 1, 102: 1, 73: 1, 60: 1, 78: 1 }, rcb, scb); - var tI = mdb(Phe, "ArrayIndexOutOfBoundsException", 320); - bcb(528, 60, Tie, tcb, ucb); - var uI = mdb(Phe, "ArrayStoreException", 528); - bcb(289, 78, Nje, vcb); - var DI = mdb(Phe, "Error", 289); - bcb(194, 289, Nje, xcb, ycb); - var vI = mdb(Phe, "AssertionError", 194); - xD = { 3: 1, 476: 1, 35: 1 }; - var zcb, Acb; - var wI = mdb(Phe, "Boolean", 476); - bcb(236, 1, { 3: 1, 236: 1 }); - var Gcb; - var RI = mdb(Phe, "Number", 236); - bcb(217, 236, { 3: 1, 217: 1, 35: 1, 236: 1 }, Mcb); - _.wd = function Ncb(a) { - return Lcb(this, BD(a, 217)); - }; - _.ke = function Ocb() { - return this.a; - }; - _.Fb = function Pcb(a) { - return JD(a, 217) && BD(a, 217).a == this.a; - }; - _.Hb = function Qcb() { - return this.a; - }; - _.Ib = function Rcb() { - return "" + this.a; - }; - _.a = 0; - var xI = mdb(Phe, "Byte", 217); - var Tcb; - bcb(172, 1, { 3: 1, 172: 1, 35: 1 }, Xcb); - _.wd = function Ycb(a) { - return Wcb(this, BD(a, 172)); - }; - _.Fb = function $cb(a) { - return JD(a, 172) && BD(a, 172).a == this.a; - }; - _.Hb = function _cb() { - return this.a; - }; - _.Ib = function adb() { - return String.fromCharCode(this.a); - }; - _.a = 0; - var Vcb; - var yI = mdb(Phe, "Character", 172); - var cdb; - bcb(205, 60, { 3: 1, 205: 1, 102: 1, 60: 1, 78: 1 }, Bdb, Cdb); - var zI = mdb(Phe, "ClassCastException", 205); - yD = { 3: 1, 35: 1, 333: 1, 236: 1 }; - var BI = mdb(Phe, "Double", 333); - bcb(155, 236, { 3: 1, 35: 1, 155: 1, 236: 1 }, Ndb, Odb); - _.wd = function Pdb(a) { - return Mdb(this, BD(a, 155)); - }; - _.ke = function Qdb() { - return this.a; - }; - _.Fb = function Rdb(a) { - return JD(a, 155) && Fdb(this.a, BD(a, 155).a); - }; - _.Hb = function Sdb() { - return QD(this.a); - }; - _.Ib = function Udb() { - return "" + this.a; - }; - _.a = 0; - var FI = mdb(Phe, "Float", 155); - bcb(32, 60, { 3: 1, 102: 1, 32: 1, 60: 1, 78: 1 }, Vdb, Wdb, Xdb); - var GI = mdb(Phe, "IllegalArgumentException", 32); - bcb(71, 60, Tie, Ydb, Zdb); - var HI = mdb(Phe, "IllegalStateException", 71); - bcb(19, 236, { 3: 1, 35: 1, 19: 1, 236: 1 }, _db); - _.wd = function ceb(a) { - return $db(this, BD(a, 19)); - }; - _.ke = function deb() { - return this.a; - }; - _.Fb = function eeb(a) { - return JD(a, 19) && BD(a, 19).a == this.a; - }; - _.Hb = function feb() { - return this.a; - }; - _.Ib = function leb() { - return "" + this.a; - }; - _.a = 0; - var JI = mdb(Phe, "Integer", 19); - var neb; - var peb; - bcb(162, 236, { 3: 1, 35: 1, 162: 1, 236: 1 }, teb); - _.wd = function veb(a) { - return seb(this, BD(a, 162)); - }; - _.ke = function web() { - return Sbb(this.a); - }; - _.Fb = function xeb(a) { - return JD(a, 162) && Bbb(BD(a, 162).a, this.a); - }; - _.Hb = function yeb() { - return Tbb(this.a); - }; - _.Ib = function zeb() { - return "" + Ubb(this.a); - }; - _.a = 0; - var MI = mdb(Phe, "Long", 162); - var Beb; - bcb(2039, 1, {}); - bcb(1831, 60, Tie, Feb); - var NI = mdb(Phe, "NegativeArraySizeException", 1831); - bcb(173, 598, { 3: 1, 102: 1, 173: 1, 60: 1, 78: 1 }, Geb, Heb); - _.Wd = function Ieb(a) { - return new TypeError(a); - }; - var OI = mdb(Phe, "NullPointerException", 173); - var Jeb, Keb, Leb, Meb; - bcb(127, 32, { 3: 1, 102: 1, 32: 1, 127: 1, 60: 1, 78: 1 }, Oeb); - var QI = mdb(Phe, "NumberFormatException", 127); - bcb(184, 236, { 3: 1, 35: 1, 236: 1, 184: 1 }, Qeb); - _.wd = function Reb(a) { - return Peb(this, BD(a, 184)); - }; - _.ke = function Seb() { - return this.a; - }; - _.Fb = function Teb(a) { - return JD(a, 184) && BD(a, 184).a == this.a; - }; - _.Hb = function Ueb() { - return this.a; - }; - _.Ib = function Veb() { - return "" + this.a; - }; - _.a = 0; - var UI = mdb(Phe, "Short", 184); - var Xeb; - bcb(310, 1, { 3: 1, 310: 1 }, Zeb); - _.Fb = function $eb(a) { - var b; - if (JD(a, 310)) { - b = BD(a, 310); - return this.c == b.c && this.d == b.d && this.a == b.a && this.b == b.b; - } - return false; - }; - _.Hb = function _eb() { - return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [meb(this.c), this.a, this.d, this.b])); - }; - _.Ib = function afb() { - return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")"; - }; - _.c = 0; - var VI = mdb(Phe, "StackTraceElement", 310); - zD = { 3: 1, 475: 1, 35: 1, 2: 1 }; - var ZI = mdb(Phe, Vie, 2); - bcb(107, 418, { 475: 1 }, Hfb, Ifb, Jfb); - var WI = mdb(Phe, "StringBuffer", 107); - bcb(100, 418, { 475: 1 }, Ufb, Vfb, Wfb); - var XI = mdb(Phe, "StringBuilder", 100); - bcb(687, 73, Mje, Xfb); - var YI = mdb(Phe, "StringIndexOutOfBoundsException", 687); - bcb(2043, 1, {}); - var Yfb; - bcb(844, 1, {}, _fb); - _.Kb = function agb(a) { - return BD(a, 78).e; - }; - var $I = mdb(Phe, "Throwable/lambda$0$Type", 844); - bcb(41, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 41: 1 }, bgb, cgb); - var aJ = mdb(Phe, "UnsupportedOperationException", 41); - bcb(240, 236, { 3: 1, 35: 1, 236: 1, 240: 1 }, sgb, tgb); - _.wd = function wgb(a) { - return mgb(this, BD(a, 240)); - }; - _.ke = function xgb() { - return Hcb(rgb(this)); - }; - _.Fb = function ygb(a) { - var b; - if (this === a) { - return true; - } - if (JD(a, 240)) { - b = BD(a, 240); - return this.e == b.e && mgb(this, b) == 0; - } - return false; - }; - _.Hb = function zgb() { - var a; - if (this.b != 0) { - return this.b; - } - if (this.a < 54) { - a = Cbb(this.f); - this.b = Tbb(xbb(a, -1)); - this.b = 33 * this.b + Tbb(xbb(Obb(a, 32), -1)); - this.b = 17 * this.b + QD(this.e); - return this.b; - } - this.b = 17 * Ngb(this.c) + QD(this.e); - return this.b; - }; - _.Ib = function Agb() { - return rgb(this); - }; - _.a = 0; - _.b = 0; - _.d = 0; - _.e = 0; - _.f = 0; - var dgb, egb, fgb, ggb, hgb, igb, jgb, kgb; - var bJ = mdb("java.math", "BigDecimal", 240); - bcb(91, 236, { 3: 1, 35: 1, 236: 1, 91: 1 }, Tgb, Ugb, Vgb, Wgb, Xgb, Ygb); - _.wd = function $gb(a) { - return Igb(this, BD(a, 91)); - }; - _.ke = function _gb() { - return Hcb(shb(this, 0)); - }; - _.Fb = function ahb(a) { - return Kgb(this, a); - }; - _.Hb = function chb() { - return Ngb(this); - }; - _.Ib = function ehb() { - return shb(this, 0); - }; - _.b = -2; - _.c = 0; - _.d = 0; - _.e = 0; - var Bgb, Cgb, Dgb, Egb, Fgb, Ggb; - var cJ = mdb("java.math", "BigInteger", 91); - var nhb, ohb; - var Bhb, Chb; - bcb(488, 1967, cie); - _.$b = function Xhb() { - Uhb(this); - }; - _._b = function Yhb(a) { - return Mhb(this, a); - }; - _.uc = function Zhb(a) { - return Nhb(this, a, this.g) || Nhb(this, a, this.f); - }; - _.vc = function $hb() { - return new eib(this); - }; - _.xc = function _hb(a) { - return Ohb(this, a); - }; - _.zc = function aib(a, b) { - return Rhb(this, a, b); - }; - _.Bc = function bib(a) { - return Thb(this, a); - }; - _.gc = function cib() { - return Vhb(this); - }; - var gJ = mdb(bie, "AbstractHashMap", 488); - bcb(261, eie, fie, eib); - _.$b = function fib() { - this.a.$b(); - }; - _.Hc = function gib(a) { - return dib(this, a); - }; - _.Kc = function hib() { - return new nib(this.a); - }; - _.Mc = function iib(a) { - var b; - if (dib(this, a)) { - b = BD(a, 42).cd(); - this.a.Bc(b); - return true; - } - return false; - }; - _.gc = function jib() { - return this.a.gc(); - }; - var fJ = mdb(bie, "AbstractHashMap/EntrySet", 261); - bcb(262, 1, aie, nib); - _.Nb = function oib(a) { - Rrb(this, a); - }; - _.Pb = function qib() { - return lib(this); - }; - _.Ob = function pib() { - return this.b; - }; - _.Qb = function rib() { - mib(this); - }; - _.b = false; - var eJ = mdb(bie, "AbstractHashMap/EntrySetIterator", 262); - bcb(417, 1, aie, vib); - _.Nb = function wib(a) { - Rrb(this, a); - }; - _.Ob = function xib() { - return sib(this); - }; - _.Pb = function yib() { - return tib(this); - }; - _.Qb = function zib() { - uib(this); - }; - _.b = 0; - _.c = -1; - var hJ = mdb(bie, "AbstractList/IteratorImpl", 417); - bcb(96, 417, jie, Bib); - _.Qb = function Hib() { - uib(this); - }; - _.Rb = function Cib(a) { - Aib(this, a); - }; - _.Sb = function Dib() { - return this.b > 0; - }; - _.Tb = function Eib() { - return this.b; - }; - _.Ub = function Fib() { - return sCb(this.b > 0), this.a.Xb(this.c = --this.b); - }; - _.Vb = function Gib() { - return this.b - 1; - }; - _.Wb = function Iib(a) { - yCb(this.c != -1); - this.a._c(this.c, a); - }; - var iJ = mdb(bie, "AbstractList/ListIteratorImpl", 96); - bcb(219, 52, Lie, Jib); - _.Vc = function Kib(a, b) { - wCb(a, this.b); - this.c.Vc(this.a + a, b); - ++this.b; - }; - _.Xb = function Lib(a) { - tCb(a, this.b); - return this.c.Xb(this.a + a); - }; - _.$c = function Mib(a) { - var b; - tCb(a, this.b); - b = this.c.$c(this.a + a); - --this.b; - return b; - }; - _._c = function Nib(a, b) { - tCb(a, this.b); - return this.c._c(this.a + a, b); - }; - _.gc = function Oib() { - return this.b; - }; - _.a = 0; - _.b = 0; - var jJ = mdb(bie, "AbstractList/SubList", 219); - bcb(384, eie, fie, Pib); - _.$b = function Qib() { - this.a.$b(); - }; - _.Hc = function Rib(a) { - return this.a._b(a); - }; - _.Kc = function Sib() { - var a; - return a = this.a.vc().Kc(), new Vib(a); - }; - _.Mc = function Tib(a) { - if (this.a._b(a)) { - this.a.Bc(a); - return true; - } - return false; - }; - _.gc = function Uib() { - return this.a.gc(); - }; - var mJ = mdb(bie, "AbstractMap/1", 384); - bcb(691, 1, aie, Vib); - _.Nb = function Wib(a) { - Rrb(this, a); - }; - _.Ob = function Xib() { - return this.a.Ob(); - }; - _.Pb = function Yib() { - var a; - return a = BD(this.a.Pb(), 42), a.cd(); - }; - _.Qb = function Zib() { - this.a.Qb(); - }; - var lJ = mdb(bie, "AbstractMap/1/1", 691); - bcb(226, 28, die, $ib); - _.$b = function _ib() { - this.a.$b(); - }; - _.Hc = function ajb(a) { - return this.a.uc(a); - }; - _.Kc = function bjb() { - var a; - return a = this.a.vc().Kc(), new djb(a); - }; - _.gc = function cjb() { - return this.a.gc(); - }; - var oJ = mdb(bie, "AbstractMap/2", 226); - bcb(294, 1, aie, djb); - _.Nb = function ejb(a) { - Rrb(this, a); - }; - _.Ob = function fjb() { - return this.a.Ob(); - }; - _.Pb = function gjb() { - var a; - return a = BD(this.a.Pb(), 42), a.dd(); - }; - _.Qb = function hjb() { - this.a.Qb(); - }; - var nJ = mdb(bie, "AbstractMap/2/1", 294); - bcb(484, 1, { 484: 1, 42: 1 }); - _.Fb = function jjb(a) { - var b; - if (!JD(a, 42)) { - return false; - } - b = BD(a, 42); - return wtb(this.d, b.cd()) && wtb(this.e, b.dd()); - }; - _.cd = function kjb() { - return this.d; - }; - _.dd = function ljb() { - return this.e; - }; - _.Hb = function mjb() { - return xtb(this.d) ^ xtb(this.e); - }; - _.ed = function njb(a) { - return ijb(this, a); - }; - _.Ib = function ojb() { - return this.d + "=" + this.e; - }; - var pJ = mdb(bie, "AbstractMap/AbstractEntry", 484); - bcb(383, 484, { 484: 1, 383: 1, 42: 1 }, pjb); - var qJ = mdb(bie, "AbstractMap/SimpleEntry", 383); - bcb(1984, 1, _je); - _.Fb = function qjb(a) { - var b; - if (!JD(a, 42)) { - return false; - } - b = BD(a, 42); - return wtb(this.cd(), b.cd()) && wtb(this.dd(), b.dd()); - }; - _.Hb = function rjb() { - return xtb(this.cd()) ^ xtb(this.dd()); - }; - _.Ib = function sjb() { - return this.cd() + "=" + this.dd(); - }; - var rJ = mdb(bie, lie, 1984); - bcb(1992, 1967, gie); - _.tc = function vjb(a) { - return tjb(this, a); - }; - _._b = function wjb(a) { - return ujb(this, a); - }; - _.vc = function xjb() { - return new Bjb(this); - }; - _.xc = function yjb(a) { - var b; - b = a; - return Wd(Awb(this, b)); - }; - _.ec = function Ajb() { - return new Gjb(this); - }; - var wJ = mdb(bie, "AbstractNavigableMap", 1992); - bcb(739, eie, fie, Bjb); - _.Hc = function Cjb(a) { - return JD(a, 42) && tjb(this.b, BD(a, 42)); - }; - _.Kc = function Djb() { - return new Ywb(this.b); - }; - _.Mc = function Ejb(a) { - var b; - if (JD(a, 42)) { - b = BD(a, 42); - return Kwb(this.b, b); - } - return false; - }; - _.gc = function Fjb() { - return this.b.c; - }; - var tJ = mdb(bie, "AbstractNavigableMap/EntrySet", 739); - bcb(493, eie, iie, Gjb); - _.Nc = function Mjb() { - return new Rub(this); - }; - _.$b = function Hjb() { - zwb(this.a); - }; - _.Hc = function Ijb(a) { - return ujb(this.a, a); - }; - _.Kc = function Jjb() { - var a; - return a = new Ywb(new cxb(this.a).b), new Njb(a); - }; - _.Mc = function Kjb(a) { - if (ujb(this.a, a)) { - Jwb(this.a, a); - return true; - } - return false; - }; - _.gc = function Ljb() { - return this.a.c; - }; - var vJ = mdb(bie, "AbstractNavigableMap/NavigableKeySet", 493); - bcb(494, 1, aie, Njb); - _.Nb = function Ojb(a) { - Rrb(this, a); - }; - _.Ob = function Pjb() { - return sib(this.a.a); - }; - _.Pb = function Qjb() { - var a; - return a = Wwb(this.a), a.cd(); - }; - _.Qb = function Rjb() { - Xwb(this.a); - }; - var uJ = mdb(bie, "AbstractNavigableMap/NavigableKeySet/1", 494); - bcb(2004, 28, die); - _.Fc = function Sjb(a) { - return zCb(cub(this, a)), true; - }; - _.Gc = function Tjb(a) { - uCb(a); - mCb(a != this, "Can't add a queue to itself"); - return ye(this, a); - }; - _.$b = function Ujb() { - while (dub(this) != null) - ; - }; - var xJ = mdb(bie, "AbstractQueue", 2004); - bcb(302, 28, { 4: 1, 20: 1, 28: 1, 14: 1 }, jkb, kkb); - _.Fc = function lkb(a) { - return Xjb(this, a), true; - }; - _.$b = function nkb() { - Yjb(this); - }; - _.Hc = function okb(a) { - return Zjb(new xkb(this), a); - }; - _.dc = function pkb() { - return akb(this); - }; - _.Kc = function qkb() { - return new xkb(this); - }; - _.Mc = function rkb(a) { - return dkb(new xkb(this), a); - }; - _.gc = function skb() { - return this.c - this.b & this.a.length - 1; - }; - _.Nc = function tkb() { - return new Kub(this, 272); - }; - _.Qc = function ukb(a) { - var b; - b = this.c - this.b & this.a.length - 1; - a.length < b && (a = eCb(new Array(b), a)); - $jb(this, a, b); - a.length > b && NC(a, b, null); - return a; - }; - _.b = 0; - _.c = 0; - var BJ = mdb(bie, "ArrayDeque", 302); - bcb(446, 1, aie, xkb); - _.Nb = function ykb(a) { - Rrb(this, a); - }; - _.Ob = function zkb() { - return this.a != this.b; - }; - _.Pb = function Akb() { - return vkb(this); - }; - _.Qb = function Bkb() { - wkb(this); - }; - _.a = 0; - _.b = 0; - _.c = -1; - var AJ = mdb(bie, "ArrayDeque/IteratorImpl", 446); - bcb(12, 52, ake, Rkb, Skb, Tkb); - _.Vc = function Ukb(a, b) { - Dkb(this, a, b); - }; - _.Fc = function Vkb(a) { - return Ekb(this, a); - }; - _.Wc = function Wkb(a, b) { - return Fkb(this, a, b); - }; - _.Gc = function Xkb(a) { - return Gkb(this, a); - }; - _.$b = function Ykb() { - this.c = KC(SI, Uhe, 1, 0, 5, 1); - }; - _.Hc = function Zkb(a) { - return Jkb(this, a, 0) != -1; - }; - _.Jc = function $kb(a) { - Hkb(this, a); - }; - _.Xb = function _kb(a) { - return Ikb(this, a); - }; - _.Xc = function alb(a) { - return Jkb(this, a, 0); - }; - _.dc = function blb() { - return this.c.length == 0; - }; - _.Kc = function clb() { - return new olb(this); - }; - _.$c = function dlb(a) { - return Kkb(this, a); - }; - _.Mc = function elb(a) { - return Lkb(this, a); - }; - _.Ud = function flb(a, b) { - Mkb(this, a, b); - }; - _._c = function glb(a, b) { - return Nkb(this, a, b); - }; - _.gc = function hlb() { - return this.c.length; - }; - _.ad = function ilb(a) { - Okb(this, a); - }; - _.Pc = function jlb() { - return Pkb(this); - }; - _.Qc = function klb(a) { - return Qkb(this, a); - }; - var DJ = mdb(bie, "ArrayList", 12); - bcb(7, 1, aie, olb); - _.Nb = function plb(a) { - Rrb(this, a); - }; - _.Ob = function qlb() { - return llb(this); - }; - _.Pb = function rlb() { - return mlb(this); - }; - _.Qb = function slb() { - nlb(this); - }; - _.a = 0; - _.b = -1; - var CJ = mdb(bie, "ArrayList/1", 7); - bcb(2013, $wnd.Function, {}, Ylb); - _.te = function Zlb(a, b) { - return Kdb(a, b); - }; - bcb(154, 52, bke, amb); - _.Hc = function bmb(a) { - return Bt(this, a) != -1; - }; - _.Jc = function cmb(a) { - var b, c, d, e; - uCb(a); - for (c = this.a, d = 0, e = c.length; d < e; ++d) { - b = c[d]; - a.td(b); - } - }; - _.Xb = function dmb(a) { - return $lb(this, a); - }; - _._c = function emb(a, b) { - var c; - c = (tCb(a, this.a.length), this.a[a]); - NC(this.a, a, b); - return c; - }; - _.gc = function fmb() { - return this.a.length; - }; - _.ad = function gmb(a) { - Mlb(this.a, this.a.length, a); - }; - _.Pc = function hmb() { - return _lb(this, KC(SI, Uhe, 1, this.a.length, 5, 1)); - }; - _.Qc = function imb(a) { - return _lb(this, a); - }; - var EJ = mdb(bie, "Arrays/ArrayList", 154); - var jmb, kmb, lmb; - bcb(940, 52, bke, xmb); - _.Hc = function ymb(a) { - return false; - }; - _.Xb = function zmb(a) { - return wmb(a); - }; - _.Kc = function Amb() { - return mmb(), Emb(), Dmb; - }; - _.Yc = function Bmb() { - return mmb(), Emb(), Dmb; - }; - _.gc = function Cmb() { - return 0; - }; - var GJ = mdb(bie, "Collections/EmptyList", 940); - bcb(941, 1, jie, Fmb); - _.Nb = function Hmb(a) { - Rrb(this, a); - }; - _.Rb = function Gmb(a) { - throw vbb(new bgb()); - }; - _.Ob = function Imb() { - return false; - }; - _.Sb = function Jmb() { - return false; - }; - _.Pb = function Kmb() { - throw vbb(new utb()); - }; - _.Tb = function Lmb() { - return 0; - }; - _.Ub = function Mmb() { - throw vbb(new utb()); - }; - _.Vb = function Nmb() { - return -1; - }; - _.Qb = function Omb() { - throw vbb(new Ydb()); - }; - _.Wb = function Pmb(a) { - throw vbb(new Ydb()); - }; - var Dmb; - var FJ = mdb(bie, "Collections/EmptyListIterator", 941); - bcb(943, 1967, Aie, Qmb); - _._b = function Rmb(a) { - return false; - }; - _.uc = function Smb(a) { - return false; - }; - _.vc = function Tmb() { - return mmb(), lmb; - }; - _.xc = function Umb(a) { - return null; - }; - _.ec = function Vmb() { - return mmb(), lmb; - }; - _.gc = function Wmb() { - return 0; - }; - _.Cc = function Xmb() { - return mmb(), jmb; - }; - var HJ = mdb(bie, "Collections/EmptyMap", 943); - bcb(942, eie, Cie, Ymb); - _.Hc = function Zmb(a) { - return false; - }; - _.Kc = function $mb() { - return mmb(), Emb(), Dmb; - }; - _.gc = function _mb() { - return 0; - }; - var IJ = mdb(bie, "Collections/EmptySet", 942); - bcb(599, 52, { 3: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, anb); - _.Hc = function bnb(a) { - return wtb(this.a, a); - }; - _.Xb = function cnb(a) { - tCb(a, 1); - return this.a; - }; - _.gc = function dnb() { - return 1; - }; - var JJ = mdb(bie, "Collections/SingletonList", 599); - bcb(372, 1, wie, lnb); - _.Jc = function rnb(a) { - reb(this, a); - }; - _.Lc = function unb() { - return new YAb(null, this.Nc()); - }; - _.Nc = function xnb() { - return new Kub(this, 0); - }; - _.Oc = function ynb() { - return new YAb(null, this.Nc()); - }; - _.Fc = function mnb(a) { - return enb(); - }; - _.Gc = function nnb(a) { - return fnb(); - }; - _.$b = function onb() { - gnb(); - }; - _.Hc = function pnb(a) { - return hnb(this, a); - }; - _.Ic = function qnb(a) { - return inb(this, a); - }; - _.dc = function snb() { - return this.b.dc(); - }; - _.Kc = function tnb() { - return new Dnb(this.b.Kc()); - }; - _.Mc = function vnb(a) { - return jnb(); - }; - _.gc = function wnb() { - return this.b.gc(); - }; - _.Pc = function znb() { - return this.b.Pc(); - }; - _.Qc = function Anb(a) { - return knb(this, a); - }; - _.Ib = function Bnb() { - return fcb(this.b); - }; - var LJ = mdb(bie, "Collections/UnmodifiableCollection", 372); - bcb(371, 1, aie, Dnb); - _.Nb = function Enb(a) { - Rrb(this, a); - }; - _.Ob = function Fnb() { - return this.b.Ob(); - }; - _.Pb = function Gnb() { - return this.b.Pb(); - }; - _.Qb = function Hnb() { - Cnb(); - }; - var KJ = mdb(bie, "Collections/UnmodifiableCollectionIterator", 371); - bcb(531, 372, cke, Inb); - _.Nc = function Vnb() { - return new Kub(this, 16); - }; - _.Vc = function Jnb(a, b) { - throw vbb(new bgb()); - }; - _.Wc = function Knb(a, b) { - throw vbb(new bgb()); - }; - _.Fb = function Lnb(a) { - return pb(this.a, a); - }; - _.Xb = function Mnb(a) { - return this.a.Xb(a); - }; - _.Hb = function Nnb() { - return tb(this.a); - }; - _.Xc = function Onb(a) { - return this.a.Xc(a); - }; - _.dc = function Pnb() { - return this.a.dc(); - }; - _.Yc = function Qnb() { - return new Xnb(this.a.Zc(0)); - }; - _.Zc = function Rnb(a) { - return new Xnb(this.a.Zc(a)); - }; - _.$c = function Snb(a) { - throw vbb(new bgb()); - }; - _._c = function Tnb(a, b) { - throw vbb(new bgb()); - }; - _.ad = function Unb(a) { - throw vbb(new bgb()); - }; - _.bd = function Wnb(a, b) { - return new Inb(this.a.bd(a, b)); - }; - var NJ = mdb(bie, "Collections/UnmodifiableList", 531); - bcb(690, 371, jie, Xnb); - _.Qb = function bob() { - Cnb(); - }; - _.Rb = function Ynb(a) { - throw vbb(new bgb()); - }; - _.Sb = function Znb() { - return this.a.Sb(); - }; - _.Tb = function $nb() { - return this.a.Tb(); - }; - _.Ub = function _nb() { - return this.a.Ub(); - }; - _.Vb = function aob() { - return this.a.Vb(); - }; - _.Wb = function cob(a) { - throw vbb(new bgb()); - }; - var MJ = mdb(bie, "Collections/UnmodifiableListIterator", 690); - bcb(600, 1, cie, iob); - _.wc = function oob(a) { - stb(this, a); - }; - _.yc = function tob(a, b, c) { - return ttb(this, a, b, c); - }; - _.$b = function job() { - throw vbb(new bgb()); - }; - _._b = function kob(a) { - return this.c._b(a); - }; - _.uc = function lob(a) { - return dob(this, a); - }; - _.vc = function mob() { - return eob(this); - }; - _.Fb = function nob(a) { - return fob(this, a); - }; - _.xc = function pob(a) { - return this.c.xc(a); - }; - _.Hb = function qob() { - return tb(this.c); - }; - _.dc = function rob() { - return this.c.dc(); - }; - _.ec = function sob() { - return gob(this); - }; - _.zc = function uob(a, b) { - throw vbb(new bgb()); - }; - _.Bc = function vob(a) { - throw vbb(new bgb()); - }; - _.gc = function wob() { - return this.c.gc(); - }; - _.Ib = function xob() { - return fcb(this.c); - }; - _.Cc = function yob() { - return hob(this); - }; - var RJ = mdb(bie, "Collections/UnmodifiableMap", 600); - bcb(382, 372, Bie, zob); - _.Nc = function Cob() { - return new Kub(this, 1); - }; - _.Fb = function Aob(a) { - return pb(this.b, a); - }; - _.Hb = function Bob() { - return tb(this.b); - }; - var TJ = mdb(bie, "Collections/UnmodifiableSet", 382); - bcb(944, 382, Bie, Gob); - _.Hc = function Hob(a) { - return Dob(this, a); - }; - _.Ic = function Iob(a) { - return this.b.Ic(a); - }; - _.Kc = function Job() { - var a; - a = this.b.Kc(); - return new Mob(a); - }; - _.Pc = function Kob() { - var a; - a = this.b.Pc(); - Fob(a, a.length); - return a; - }; - _.Qc = function Lob(a) { - return Eob(this, a); - }; - var QJ = mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 944); - bcb(945, 1, aie, Mob); - _.Nb = function Nob(a) { - Rrb(this, a); - }; - _.Pb = function Pob() { - return new Rob(BD(this.a.Pb(), 42)); - }; - _.Ob = function Oob() { - return this.a.Ob(); - }; - _.Qb = function Qob() { - throw vbb(new bgb()); - }; - var OJ = mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 945); - bcb(688, 1, _je, Rob); - _.Fb = function Sob(a) { - return this.a.Fb(a); - }; - _.cd = function Tob() { - return this.a.cd(); - }; - _.dd = function Uob() { - return this.a.dd(); - }; - _.Hb = function Vob() { - return this.a.Hb(); - }; - _.ed = function Wob(a) { - throw vbb(new bgb()); - }; - _.Ib = function Xob() { - return fcb(this.a); - }; - var PJ = mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 688); - bcb(601, 531, { 20: 1, 14: 1, 15: 1, 54: 1 }, Yob); - var SJ = mdb(bie, "Collections/UnmodifiableRandomAccessList", 601); - bcb(689, 382, Die, Zob); - _.Nc = function apb() { - return new Rub(this); - }; - _.Fb = function $ob(a) { - return pb(this.a, a); - }; - _.Hb = function _ob() { - return tb(this.a); - }; - var UJ = mdb(bie, "Collections/UnmodifiableSortedSet", 689); - bcb(847, 1, dke, bpb); - _.ue = function cpb(a, b) { - var c; - return c = Ucc(BD(a, 11), BD(b, 11)), c != 0 ? c : Wcc(BD(a, 11), BD(b, 11)); - }; - _.Fb = function dpb(a) { - return this === a; - }; - _.ve = function epb() { - return new tpb(this); - }; - var VJ = mdb(bie, "Comparator/lambda$0$Type", 847); - var fpb, gpb, hpb; - bcb(751, 1, dke, kpb); - _.ue = function lpb(a, b) { - return jpb(BD(a, 35), BD(b, 35)); - }; - _.Fb = function mpb(a) { - return this === a; - }; - _.ve = function npb() { - return ipb(), hpb; - }; - var WJ = mdb(bie, "Comparators/NaturalOrderComparator", 751); - bcb(1177, 1, dke, ppb); - _.ue = function qpb(a, b) { - return opb(BD(a, 35), BD(b, 35)); - }; - _.Fb = function rpb(a) { - return this === a; - }; - _.ve = function spb() { - return ipb(), gpb; - }; - var XJ = mdb(bie, "Comparators/ReverseNaturalOrderComparator", 1177); - bcb(64, 1, dke, tpb); - _.Fb = function vpb(a) { - return this === a; - }; - _.ue = function upb(a, b) { - return this.a.ue(b, a); - }; - _.ve = function wpb() { - return this.a; - }; - var YJ = mdb(bie, "Comparators/ReversedComparator", 64); - bcb(166, 60, Tie, Apb); - var ZJ = mdb(bie, "ConcurrentModificationException", 166); - var Bpb, Cpb; - bcb(1904, 1, eke, Gpb); - _.we = function Hpb(a) { - Epb(this, a); - }; - _.Ib = function Ipb() { - return "DoubleSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Fpb(this) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Fpb(this) + "]"; - }; - _.a = 0; - _.b = Qje; - _.c = Pje; - _.d = 0; - _.e = 0; - _.f = 0; - var _J = mdb(bie, "DoubleSummaryStatistics", 1904); - bcb(1805, 60, Tie, Jpb); - var aK = mdb(bie, "EmptyStackException", 1805); - bcb(451, 1967, cie, Rpb); - _.zc = function Xpb(a, b) { - return Opb(this, a, b); - }; - _.$b = function Spb() { - Kpb(this); - }; - _._b = function Tpb(a) { - return Lpb(this, a); - }; - _.uc = function Upb(a) { - var b, c; - for (c = new Gqb(this.a); c.a < c.c.a.length; ) { - b = Fqb(c); - if (wtb(a, this.b[b.g])) { - return true; - } - } - return false; - }; - _.vc = function Vpb() { - return new _pb(this); - }; - _.xc = function Wpb(a) { - return Mpb(this, a); - }; - _.Bc = function Ypb(a) { - return Ppb(this, a); - }; - _.gc = function Zpb() { - return this.a.c; - }; - var eK = mdb(bie, "EnumMap", 451); - bcb(1352, eie, fie, _pb); - _.$b = function aqb() { - Kpb(this.a); - }; - _.Hc = function bqb(a) { - return $pb(this, a); - }; - _.Kc = function cqb() { - return new fqb(this.a); - }; - _.Mc = function dqb(a) { - var b; - if ($pb(this, a)) { - b = BD(a, 42).cd(); - Ppb(this.a, b); - return true; - } - return false; - }; - _.gc = function eqb() { - return this.a.a.c; - }; - var cK = mdb(bie, "EnumMap/EntrySet", 1352); - bcb(1353, 1, aie, fqb); - _.Nb = function gqb(a) { - Rrb(this, a); - }; - _.Pb = function iqb() { - return this.b = Fqb(this.a), new kqb(this.c, this.b); - }; - _.Ob = function hqb() { - return Eqb(this.a); - }; - _.Qb = function jqb() { - yCb(!!this.b); - Ppb(this.c, this.b); - this.b = null; - }; - var bK = mdb(bie, "EnumMap/EntrySetIterator", 1353); - bcb(1354, 1984, _je, kqb); - _.cd = function lqb() { - return this.a; - }; - _.dd = function mqb() { - return this.b.b[this.a.g]; - }; - _.ed = function nqb(a) { - return Qpb(this.b, this.a.g, a); - }; - var dK = mdb(bie, "EnumMap/MapEntry", 1354); - bcb(174, eie, { 20: 1, 28: 1, 14: 1, 174: 1, 21: 1 }); - var hK = mdb(bie, "EnumSet", 174); - bcb(156, 174, { 20: 1, 28: 1, 14: 1, 174: 1, 156: 1, 21: 1 }, xqb); - _.Fc = function yqb(a) { - return rqb(this, BD(a, 22)); - }; - _.Hc = function zqb(a) { - return tqb(this, a); - }; - _.Kc = function Aqb() { - return new Gqb(this); - }; - _.Mc = function Bqb(a) { - return vqb(this, a); - }; - _.gc = function Cqb() { - return this.c; - }; - _.c = 0; - var gK = mdb(bie, "EnumSet/EnumSetImpl", 156); - bcb(343, 1, aie, Gqb); - _.Nb = function Hqb(a) { - Rrb(this, a); - }; - _.Pb = function Jqb() { - return Fqb(this); - }; - _.Ob = function Iqb() { - return Eqb(this); - }; - _.Qb = function Kqb() { - yCb(this.b != -1); - NC(this.c.b, this.b, null); - --this.c.c; - this.b = -1; - }; - _.a = -1; - _.b = -1; - var fK = mdb(bie, "EnumSet/EnumSetImpl/IteratorImpl", 343); - bcb(43, 488, fke, Lqb, Mqb, Nqb); - _.re = function Oqb(a, b) { - return PD(a) === PD(b) || a != null && pb(a, b); - }; - _.se = function Pqb(a) { - var b; - b = tb(a); - return b | 0; - }; - var iK = mdb(bie, "HashMap", 43); - bcb(53, eie, gke, Tqb, Uqb, Vqb); - _.Fc = function Xqb(a) { - return Qqb(this, a); - }; - _.$b = function Yqb() { - this.a.$b(); - }; - _.Hc = function Zqb(a) { - return Rqb(this, a); - }; - _.dc = function $qb() { - return this.a.gc() == 0; - }; - _.Kc = function _qb() { - return this.a.ec().Kc(); - }; - _.Mc = function arb(a) { - return Sqb(this, a); - }; - _.gc = function brb() { - return this.a.gc(); - }; - var jK = mdb(bie, "HashSet", 53); - bcb(1781, 1, sie, drb); - _.ud = function erb(a) { - crb(this, a); - }; - _.Ib = function frb() { - return "IntSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Sbb(this.d) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Ubb(this.d) + "]"; - }; - _.a = 0; - _.b = Rie; - _.c = Ohe; - _.d = 0; - var kK = mdb(bie, "IntSummaryStatistics", 1781); - bcb(1049, 1, vie, lrb); - _.Jc = function mrb(a) { - reb(this, a); - }; - _.Kc = function nrb() { - return new orb(this); - }; - _.c = 0; - var mK = mdb(bie, "InternalHashCodeMap", 1049); - bcb(711, 1, aie, orb); - _.Nb = function prb(a) { - Rrb(this, a); - }; - _.Pb = function rrb() { - return this.d = this.a[this.c++], this.d; - }; - _.Ob = function qrb() { - var a; - if (this.c < this.a.length) { - return true; - } - a = this.b.next(); - if (!a.done) { - this.a = a.value[1]; - this.c = 0; - return true; - } - return false; - }; - _.Qb = function srb() { - krb(this.e, this.d.cd()); - this.c != 0 && --this.c; - }; - _.c = 0; - _.d = null; - var lK = mdb(bie, "InternalHashCodeMap/1", 711); - var vrb; - bcb(1047, 1, vie, Frb); - _.Jc = function Grb(a) { - reb(this, a); - }; - _.Kc = function Hrb() { - return new Irb(this); - }; - _.c = 0; - _.d = 0; - var pK = mdb(bie, "InternalStringMap", 1047); - bcb(710, 1, aie, Irb); - _.Nb = function Jrb(a) { - Rrb(this, a); - }; - _.Pb = function Lrb() { - return this.c = this.a, this.a = this.b.next(), new Nrb(this.d, this.c, this.d.d); - }; - _.Ob = function Krb() { - return !this.a.done; - }; - _.Qb = function Mrb() { - Erb(this.d, this.c.value[0]); - }; - var nK = mdb(bie, "InternalStringMap/1", 710); - bcb(1048, 1984, _je, Nrb); - _.cd = function Orb() { - return this.b.value[0]; - }; - _.dd = function Prb() { - if (this.a.d != this.c) { - return Crb(this.a, this.b.value[0]); - } - return this.b.value[1]; - }; - _.ed = function Qrb(a) { - return Drb(this.a, this.b.value[0], a); - }; - _.c = 0; - var oK = mdb(bie, "InternalStringMap/2", 1048); - bcb(228, 43, fke, $rb, _rb); - _.$b = function asb() { - Urb(this); - }; - _._b = function bsb(a) { - return Vrb(this, a); - }; - _.uc = function csb(a) { - var b; - b = this.d.a; - while (b != this.d) { - if (wtb(b.e, a)) { - return true; - } - b = b.a; - } - return false; - }; - _.vc = function dsb() { - return new nsb(this); - }; - _.xc = function esb(a) { - return Wrb(this, a); - }; - _.zc = function fsb(a, b) { - return Xrb(this, a, b); - }; - _.Bc = function gsb(a) { - return Zrb(this, a); - }; - _.gc = function hsb() { - return Vhb(this.e); - }; - _.c = false; - var tK = mdb(bie, "LinkedHashMap", 228); - bcb(387, 383, { 484: 1, 383: 1, 387: 1, 42: 1 }, ksb, lsb); - var qK = mdb(bie, "LinkedHashMap/ChainEntry", 387); - bcb(701, eie, fie, nsb); - _.$b = function osb() { - Urb(this.a); - }; - _.Hc = function psb(a) { - return msb(this, a); - }; - _.Kc = function qsb() { - return new usb(this); - }; - _.Mc = function rsb(a) { - var b; - if (msb(this, a)) { - b = BD(a, 42).cd(); - Zrb(this.a, b); - return true; - } - return false; - }; - _.gc = function ssb() { - return Vhb(this.a.e); - }; - var sK = mdb(bie, "LinkedHashMap/EntrySet", 701); - bcb(702, 1, aie, usb); - _.Nb = function vsb(a) { - Rrb(this, a); - }; - _.Pb = function xsb() { - return tsb(this); - }; - _.Ob = function wsb() { - return this.b != this.c.a.d; - }; - _.Qb = function ysb() { - yCb(!!this.a); - xpb(this.c.a.e, this); - jsb(this.a); - Thb(this.c.a.e, this.a.d); - ypb(this.c.a.e, this); - this.a = null; - }; - var rK = mdb(bie, "LinkedHashMap/EntrySet/EntryIterator", 702); - bcb(178, 53, gke, zsb, Asb, Bsb); - var uK = mdb(bie, "LinkedHashSet", 178); - bcb(68, 1964, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1 }, Psb, Qsb); - _.Fc = function Rsb(a) { - return Dsb(this, a); - }; - _.$b = function Ssb() { - Osb(this); - }; - _.Zc = function Tsb(a) { - return Jsb(this, a); - }; - _.gc = function Usb() { - return this.b; - }; - _.b = 0; - var xK = mdb(bie, "LinkedList", 68); - bcb(970, 1, jie, $sb); - _.Nb = function atb(a) { - Rrb(this, a); - }; - _.Rb = function _sb(a) { - Vsb(this, a); - }; - _.Ob = function btb() { - return Wsb(this); - }; - _.Sb = function ctb() { - return this.b.b != this.d.a; - }; - _.Pb = function dtb() { - return Xsb(this); - }; - _.Tb = function etb() { - return this.a; - }; - _.Ub = function ftb() { - return Ysb(this); - }; - _.Vb = function gtb() { - return this.a - 1; - }; - _.Qb = function htb() { - Zsb(this); - }; - _.Wb = function itb(a) { - yCb(!!this.c); - this.c.c = a; - }; - _.a = 0; - _.c = null; - var vK = mdb(bie, "LinkedList/ListIteratorImpl", 970); - bcb(608, 1, {}, jtb); - var wK = mdb(bie, "LinkedList/Node", 608); - bcb(1959, 1, {}); - var ltb, mtb; - var BK = mdb(bie, "Locale", 1959); - bcb(861, 1959, {}, otb); - _.Ib = function ptb() { - return ""; - }; - var zK = mdb(bie, "Locale/1", 861); - bcb(862, 1959, {}, qtb); - _.Ib = function rtb() { - return "unknown"; - }; - var AK = mdb(bie, "Locale/4", 862); - bcb(109, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 109: 1 }, utb, vtb); - var EK = mdb(bie, "NoSuchElementException", 109); - bcb(404, 1, { 404: 1 }, Ftb); - _.Fb = function Gtb(a) { - var b; - if (a === this) { - return true; - } - if (!JD(a, 404)) { - return false; - } - b = BD(a, 404); - return wtb(this.a, b.a); - }; - _.Hb = function Htb() { - return xtb(this.a); - }; - _.Ib = function Jtb() { - return this.a != null ? Whe + xfb(this.a) + ")" : "Optional.empty()"; - }; - var ztb; - var HK = mdb(bie, "Optional", 404); - bcb(463, 1, { 463: 1 }, Otb, Ptb); - _.Fb = function Qtb(a) { - var b; - if (a === this) { - return true; - } - if (!JD(a, 463)) { - return false; - } - b = BD(a, 463); - return this.a == b.a && Kdb(this.b, b.b) == 0; - }; - _.Hb = function Rtb() { - return this.a ? QD(this.b) : 0; - }; - _.Ib = function Stb() { - return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()"; - }; - _.a = false; - _.b = 0; - var Ktb; - var FK = mdb(bie, "OptionalDouble", 463); - bcb(517, 1, { 517: 1 }, Wtb, Xtb); - _.Fb = function Ytb(a) { - var b; - if (a === this) { - return true; - } - if (!JD(a, 517)) { - return false; - } - b = BD(a, 517); - return this.a == b.a && beb(this.b, b.b) == 0; - }; - _.Hb = function Ztb() { - return this.a ? this.b : 0; - }; - _.Ib = function $tb() { - return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()"; - }; - _.a = false; - _.b = 0; - var Ttb; - var GK = mdb(bie, "OptionalInt", 517); - bcb(503, 2004, die, gub); - _.Gc = function hub(a) { - return _tb(this, a); - }; - _.$b = function iub() { - this.b.c = KC(SI, Uhe, 1, 0, 5, 1); - }; - _.Hc = function jub(a) { - return (a == null ? -1 : Jkb(this.b, a, 0)) != -1; - }; - _.Kc = function kub() { - return new qub(this); - }; - _.Mc = function lub(a) { - return eub(this, a); - }; - _.gc = function mub() { - return this.b.c.length; - }; - _.Nc = function nub() { - return new Kub(this, 256); - }; - _.Pc = function oub() { - return Pkb(this.b); - }; - _.Qc = function pub(a) { - return Qkb(this.b, a); - }; - var JK = mdb(bie, "PriorityQueue", 503); - bcb(1277, 1, aie, qub); - _.Nb = function rub(a) { - Rrb(this, a); - }; - _.Ob = function tub() { - return this.a < this.c.b.c.length; - }; - _.Pb = function uub() { - sCb(this.a < this.c.b.c.length); - this.b = this.a++; - return Ikb(this.c.b, this.b); - }; - _.Qb = function vub() { - yCb(this.b != -1); - fub(this.c, this.a = this.b); - this.b = -1; - }; - _.a = 0; - _.b = -1; - var IK = mdb(bie, "PriorityQueue/1", 1277); - bcb(230, 1, { 230: 1 }, Gub, Hub); - _.a = 0; - _.b = 0; - var wub, xub, yub = 0; - var KK = mdb(bie, "Random", 230); - bcb(27, 1, pie, Kub, Lub, Mub); - _.qd = function Nub() { - return this.a; - }; - _.rd = function Oub() { - Iub(this); - return this.c; - }; - _.Nb = function Pub(a) { - Iub(this); - this.d.Nb(a); - }; - _.sd = function Qub(a) { - return Jub(this, a); - }; - _.a = 0; - _.c = 0; - var $K = mdb(bie, "Spliterators/IteratorSpliterator", 27); - bcb(485, 27, pie, Rub); - var MK = mdb(bie, "SortedSet/1", 485); - bcb(602, 1, eke, Tub); - _.we = function Uub(a) { - this.a.td(a); - }; - var NK = mdb(bie, "Spliterator/OfDouble/0methodref$accept$Type", 602); - bcb(603, 1, eke, Vub); - _.we = function Wub(a) { - this.a.td(a); - }; - var OK = mdb(bie, "Spliterator/OfDouble/1methodref$accept$Type", 603); - bcb(604, 1, sie, Xub); - _.ud = function Yub(a) { - this.a.td(meb(a)); - }; - var PK = mdb(bie, "Spliterator/OfInt/2methodref$accept$Type", 604); - bcb(605, 1, sie, Zub); - _.ud = function $ub(a) { - this.a.td(meb(a)); - }; - var QK = mdb(bie, "Spliterator/OfInt/3methodref$accept$Type", 605); - bcb(617, 1, pie); - _.Nb = function evb(a) { - Sub(this, a); - }; - _.qd = function cvb() { - return this.d; - }; - _.rd = function dvb() { - return this.e; - }; - _.d = 0; - _.e = 0; - var WK = mdb(bie, "Spliterators/BaseSpliterator", 617); - bcb(721, 617, pie); - _.xe = function gvb(a) { - _ub(this, a); - }; - _.Nb = function hvb(a) { - JD(a, 182) ? _ub(this, BD(a, 182)) : _ub(this, new Vub(a)); - }; - _.sd = function ivb(a) { - return JD(a, 182) ? this.ye(BD(a, 182)) : this.ye(new Tub(a)); - }; - var RK = mdb(bie, "Spliterators/AbstractDoubleSpliterator", 721); - bcb(720, 617, pie); - _.xe = function kvb(a) { - _ub(this, a); - }; - _.Nb = function lvb(a) { - JD(a, 196) ? _ub(this, BD(a, 196)) : _ub(this, new Zub(a)); - }; - _.sd = function mvb(a) { - return JD(a, 196) ? this.ye(BD(a, 196)) : this.ye(new Xub(a)); - }; - var SK = mdb(bie, "Spliterators/AbstractIntSpliterator", 720); - bcb(540, 617, pie); - var TK = mdb(bie, "Spliterators/AbstractSpliterator", 540); - bcb(692, 1, pie); - _.Nb = function tvb(a) { - Sub(this, a); - }; - _.qd = function rvb() { - return this.b; - }; - _.rd = function svb() { - return this.d - this.c; - }; - _.b = 0; - _.c = 0; - _.d = 0; - var VK = mdb(bie, "Spliterators/BaseArraySpliterator", 692); - bcb(947, 692, pie, vvb); - _.ze = function wvb(a, b) { - uvb(this, BD(a, 38), b); - }; - _.Nb = function xvb(a) { - ovb(this, a); - }; - _.sd = function yvb(a) { - return pvb(this, a); - }; - var UK = mdb(bie, "Spliterators/ArraySpliterator", 947); - bcb(693, 692, pie, Avb); - _.ze = function Cvb(a, b) { - zvb(this, BD(a, 182), b); - }; - _.xe = function Dvb(a) { - ovb(this, a); - }; - _.Nb = function Evb(a) { - JD(a, 182) ? ovb(this, BD(a, 182)) : ovb(this, new Vub(a)); - }; - _.ye = function Fvb(a) { - return pvb(this, a); - }; - _.sd = function Gvb(a) { - return JD(a, 182) ? pvb(this, BD(a, 182)) : pvb(this, new Tub(a)); - }; - var XK = mdb(bie, "Spliterators/DoubleArraySpliterator", 693); - bcb(1968, 1, pie); - _.Nb = function Lvb(a) { - Sub(this, a); - }; - _.qd = function Jvb() { - return 16448; - }; - _.rd = function Kvb() { - return 0; - }; - var Hvb; - var ZK = mdb(bie, "Spliterators/EmptySpliterator", 1968); - bcb(946, 1968, pie, Ovb); - _.xe = function Pvb(a) { - Mvb(a); - }; - _.Nb = function Qvb(a) { - JD(a, 196) ? Mvb(BD(a, 196)) : Mvb(new Zub(a)); - }; - _.ye = function Rvb(a) { - return Nvb(a); - }; - _.sd = function Svb(a) { - return JD(a, 196) ? Nvb(BD(a, 196)) : Nvb(new Xub(a)); - }; - var YK = mdb(bie, "Spliterators/EmptySpliterator/OfInt", 946); - bcb(580, 52, pke, Wvb); - _.Vc = function Xvb(a, b) { - _vb(a, this.a.c.length + 1); - Dkb(this.a, a, b); - }; - _.Fc = function Yvb(a) { - return Ekb(this.a, a); - }; - _.Wc = function Zvb(a, b) { - _vb(a, this.a.c.length + 1); - return Fkb(this.a, a, b); - }; - _.Gc = function $vb(a) { - return Gkb(this.a, a); - }; - _.$b = function awb() { - this.a.c = KC(SI, Uhe, 1, 0, 5, 1); - }; - _.Hc = function bwb(a) { - return Jkb(this.a, a, 0) != -1; - }; - _.Ic = function cwb(a) { - return Be(this.a, a); - }; - _.Jc = function dwb(a) { - Hkb(this.a, a); - }; - _.Xb = function ewb(a) { - return _vb(a, this.a.c.length), Ikb(this.a, a); - }; - _.Xc = function fwb(a) { - return Jkb(this.a, a, 0); - }; - _.dc = function gwb() { - return this.a.c.length == 0; - }; - _.Kc = function hwb() { - return new olb(this.a); - }; - _.$c = function iwb(a) { - return _vb(a, this.a.c.length), Kkb(this.a, a); - }; - _.Ud = function jwb(a, b) { - Mkb(this.a, a, b); - }; - _._c = function kwb(a, b) { - return _vb(a, this.a.c.length), Nkb(this.a, a, b); - }; - _.gc = function lwb() { - return this.a.c.length; - }; - _.ad = function mwb(a) { - Okb(this.a, a); - }; - _.bd = function nwb(a, b) { - return new Jib(this.a, a, b); - }; - _.Pc = function owb() { - return Pkb(this.a); - }; - _.Qc = function pwb(a) { - return Qkb(this.a, a); - }; - _.Ib = function qwb() { - return Fe(this.a); - }; - var lL = mdb(bie, "Vector", 580); - bcb(809, 580, pke, twb); - var _K = mdb(bie, "Stack", 809); - bcb(206, 1, { 206: 1 }, xwb); - _.Ib = function ywb() { - return wwb(this); - }; - var aL = mdb(bie, "StringJoiner", 206); - bcb(544, 1992, { 3: 1, 83: 1, 171: 1, 161: 1 }, Pwb, Qwb); - _.$b = function Rwb() { - zwb(this); - }; - _.vc = function Swb() { - return new cxb(this); - }; - _.zc = function Twb(a, b) { - return Iwb(this, a, b); - }; - _.Bc = function Uwb(a) { - return Jwb(this, a); - }; - _.gc = function Vwb() { - return this.c; - }; - _.c = 0; - var jL = mdb(bie, "TreeMap", 544); - bcb(390, 1, aie, Ywb); - _.Nb = function $wb(a) { - Rrb(this, a); - }; - _.Pb = function axb() { - return Wwb(this); - }; - _.Ob = function _wb() { - return sib(this.a); - }; - _.Qb = function bxb() { - Xwb(this); - }; - var bL = mdb(bie, "TreeMap/EntryIterator", 390); - bcb(435, 739, fie, cxb); - _.$b = function dxb() { - zwb(this.a); - }; - var cL = mdb(bie, "TreeMap/EntrySet", 435); - bcb(436, 383, { 484: 1, 383: 1, 42: 1, 436: 1 }, exb); - _.b = false; - var dL = mdb(bie, "TreeMap/Node", 436); - bcb(621, 1, {}, fxb); - _.Ib = function gxb() { - return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b; - }; - _.a = false; - _.b = false; - _.c = false; - var eL = mdb(bie, "TreeMap/State", 621); - bcb(297, 22, qke, mxb); - _.Ae = function nxb() { - return false; - }; - _.Be = function oxb() { - return false; - }; - var hxb, ixb, jxb, kxb; - var iL = ndb(bie, "TreeMap/SubMapType", 297, CI, qxb, pxb); - bcb(1112, 297, qke, rxb); - _.Be = function sxb() { - return true; - }; - var fL = ndb(bie, "TreeMap/SubMapType/1", 1112, iL, null, null); - bcb(1113, 297, qke, txb); - _.Ae = function uxb() { - return true; - }; - _.Be = function vxb() { - return true; - }; - var gL = ndb(bie, "TreeMap/SubMapType/2", 1113, iL, null, null); - bcb(1114, 297, qke, wxb); - _.Ae = function xxb() { - return true; - }; - var hL = ndb(bie, "TreeMap/SubMapType/3", 1114, iL, null, null); - var yxb; - bcb(208, eie, { 3: 1, 20: 1, 28: 1, 14: 1, 271: 1, 21: 1, 84: 1, 208: 1 }, Gxb, Hxb); - _.Nc = function Oxb() { - return new Rub(this); - }; - _.Fc = function Ixb(a) { - return Axb(this, a); - }; - _.$b = function Jxb() { - zwb(this.a); - }; - _.Hc = function Kxb(a) { - return ujb(this.a, a); - }; - _.Kc = function Lxb() { - var a; - return a = new Ywb(new cxb(new Gjb(this.a).a).b), new Njb(a); - }; - _.Mc = function Mxb(a) { - return Fxb(this, a); - }; - _.gc = function Nxb() { - return this.a.c; - }; - var kL = mdb(bie, "TreeSet", 208); - bcb(966, 1, {}, Rxb); - _.Ce = function Sxb(a, b) { - return Pxb(this.a, a, b); - }; - var mL = mdb(rke, "BinaryOperator/lambda$0$Type", 966); - bcb(967, 1, {}, Txb); - _.Ce = function Uxb(a, b) { - return Qxb(this.a, a, b); - }; - var nL = mdb(rke, "BinaryOperator/lambda$1$Type", 967); - bcb(846, 1, {}, Vxb); - _.Kb = function Wxb(a) { - return a; - }; - var oL = mdb(rke, "Function/lambda$0$Type", 846); - bcb(431, 1, Oie, Xxb); - _.Mb = function Yxb(a) { - return !this.a.Mb(a); - }; - var pL = mdb(rke, "Predicate/lambda$2$Type", 431); - bcb(572, 1, { 572: 1 }); - var qL = mdb(ske, "Handler", 572); - bcb(2007, 1, Qhe); - _.ne = function _xb() { - return "DUMMY"; - }; - _.Ib = function ayb() { - return this.ne(); - }; - var Zxb; - var sL = mdb(ske, "Level", 2007); - bcb(1621, 2007, Qhe, byb); - _.ne = function cyb() { - return "INFO"; - }; - var rL = mdb(ske, "Level/LevelInfo", 1621); - bcb(1640, 1, {}, gyb); - var dyb; - var tL = mdb(ske, "LogManager", 1640); - bcb(1780, 1, Qhe, iyb); - _.b = null; - var uL = mdb(ske, "LogRecord", 1780); - bcb(512, 1, { 512: 1 }, wyb); - _.e = false; - var jyb = false, kyb = false, lyb = false, myb = false, nyb = false; - var vL = mdb(ske, "Logger", 512); - bcb(819, 572, { 572: 1 }, zyb); - var wL = mdb(ske, "SimpleConsoleLogHandler", 819); - bcb(132, 22, { 3: 1, 35: 1, 22: 1, 132: 1 }, Gyb); - var Cyb, Dyb, Eyb; - var xL = ndb(vke, "Collector/Characteristics", 132, CI, Iyb, Hyb); - var Jyb; - bcb(744, 1, {}, Lyb); - var yL = mdb(vke, "CollectorImpl", 744); - bcb(1060, 1, {}, Zyb); - _.Ce = function $yb(a, b) { - return vwb(BD(a, 206), BD(b, 206)); - }; - var zL = mdb(vke, "Collectors/10methodref$merge$Type", 1060); - bcb(1061, 1, {}, _yb); - _.Kb = function azb(a) { - return wwb(BD(a, 206)); - }; - var AL = mdb(vke, "Collectors/11methodref$toString$Type", 1061); - bcb(1062, 1, {}, bzb); - _.Kb = function czb(a) { - return Bcb(), _Pb(a) ? true : false; - }; - var BL = mdb(vke, "Collectors/12methodref$test$Type", 1062); - bcb(251, 1, {}, dzb); - _.Od = function ezb(a, b) { - BD(a, 14).Fc(b); - }; - var CL = mdb(vke, "Collectors/20methodref$add$Type", 251); - bcb(253, 1, {}, fzb); - _.Ee = function gzb() { - return new Rkb(); - }; - var DL = mdb(vke, "Collectors/21methodref$ctor$Type", 253); - bcb(346, 1, {}, hzb); - _.Ee = function izb() { - return new Tqb(); - }; - var EL = mdb(vke, "Collectors/23methodref$ctor$Type", 346); - bcb(347, 1, {}, jzb); - _.Od = function kzb(a, b) { - Qqb(BD(a, 53), b); - }; - var FL = mdb(vke, "Collectors/24methodref$add$Type", 347); - bcb(1055, 1, {}, lzb); - _.Ce = function mzb(a, b) { - return Myb(BD(a, 15), BD(b, 14)); - }; - var GL = mdb(vke, "Collectors/4methodref$addAll$Type", 1055); - bcb(1059, 1, {}, nzb); - _.Od = function ozb(a, b) { - uwb(BD(a, 206), BD(b, 475)); - }; - var HL = mdb(vke, "Collectors/9methodref$add$Type", 1059); - bcb(1058, 1, {}, pzb); - _.Ee = function qzb() { - return new xwb(this.a, this.b, this.c); - }; - var IL = mdb(vke, "Collectors/lambda$15$Type", 1058); - bcb(1063, 1, {}, rzb); - _.Ee = function szb() { - var a; - return a = new $rb(), Xrb(a, (Bcb(), false), new Rkb()), Xrb(a, true, new Rkb()), a; - }; - var JL = mdb(vke, "Collectors/lambda$22$Type", 1063); - bcb(1064, 1, {}, tzb); - _.Ee = function uzb() { - return OC(GC(SI, 1), Uhe, 1, 5, [this.a]); - }; - var KL = mdb(vke, "Collectors/lambda$25$Type", 1064); - bcb(1065, 1, {}, vzb); - _.Od = function wzb(a, b) { - Oyb(this.a, CD(a)); - }; - var LL = mdb(vke, "Collectors/lambda$26$Type", 1065); - bcb(1066, 1, {}, xzb); - _.Ce = function yzb(a, b) { - return Pyb(this.a, CD(a), CD(b)); - }; - var ML = mdb(vke, "Collectors/lambda$27$Type", 1066); - bcb(1067, 1, {}, zzb); - _.Kb = function Azb(a) { - return CD(a)[0]; - }; - var NL = mdb(vke, "Collectors/lambda$28$Type", 1067); - bcb(713, 1, {}, Czb); - _.Ce = function Dzb(a, b) { - return Bzb(a, b); - }; - var OL = mdb(vke, "Collectors/lambda$4$Type", 713); - bcb(252, 1, {}, Ezb); - _.Ce = function Fzb(a, b) { - return Ryb(BD(a, 14), BD(b, 14)); - }; - var PL = mdb(vke, "Collectors/lambda$42$Type", 252); - bcb(348, 1, {}, Gzb); - _.Ce = function Hzb(a, b) { - return Syb(BD(a, 53), BD(b, 53)); - }; - var QL = mdb(vke, "Collectors/lambda$50$Type", 348); - bcb(349, 1, {}, Izb); - _.Kb = function Jzb(a) { - return BD(a, 53); - }; - var RL = mdb(vke, "Collectors/lambda$51$Type", 349); - bcb(1054, 1, {}, Kzb); - _.Od = function Lzb(a, b) { - Tyb(this.a, BD(a, 83), b); - }; - var SL = mdb(vke, "Collectors/lambda$7$Type", 1054); - bcb(1056, 1, {}, Mzb); - _.Ce = function Nzb(a, b) { - return Vyb(BD(a, 83), BD(b, 83), new lzb()); - }; - var TL = mdb(vke, "Collectors/lambda$8$Type", 1056); - bcb(1057, 1, {}, Ozb); - _.Kb = function Pzb(a) { - return Uyb(this.a, BD(a, 83)); - }; - var UL = mdb(vke, "Collectors/lambda$9$Type", 1057); - bcb(539, 1, {}); - _.He = function Wzb() { - Qzb(this); - }; - _.d = false; - var zM = mdb(vke, "TerminatableStream", 539); - bcb(812, 539, wke, bAb); - _.He = function cAb() { - Qzb(this); - }; - var ZL = mdb(vke, "DoubleStreamImpl", 812); - bcb(1784, 721, pie, fAb); - _.ye = function hAb(a) { - return eAb(this, BD(a, 182)); - }; - _.a = null; - var WL = mdb(vke, "DoubleStreamImpl/2", 1784); - bcb(1785, 1, eke, iAb); - _.we = function jAb(a) { - gAb(this.a, a); - }; - var VL = mdb(vke, "DoubleStreamImpl/2/lambda$0$Type", 1785); - bcb(1782, 1, eke, kAb); - _.we = function lAb(a) { - dAb(this.a, a); - }; - var XL = mdb(vke, "DoubleStreamImpl/lambda$0$Type", 1782); - bcb(1783, 1, eke, mAb); - _.we = function nAb(a) { - Epb(this.a, a); - }; - var YL = mdb(vke, "DoubleStreamImpl/lambda$2$Type", 1783); - bcb(1358, 720, pie, rAb); - _.ye = function sAb(a) { - return qAb(this, BD(a, 196)); - }; - _.a = 0; - _.b = 0; - _.c = 0; - var $L = mdb(vke, "IntStream/5", 1358); - bcb(787, 539, wke, vAb); - _.He = function wAb() { - Qzb(this); - }; - _.Ie = function xAb() { - return Tzb(this), this.a; - }; - var bM = mdb(vke, "IntStreamImpl", 787); - bcb(788, 539, wke, yAb); - _.He = function zAb() { - Qzb(this); - }; - _.Ie = function AAb() { - return Tzb(this), Ivb(), Hvb; - }; - var _L = mdb(vke, "IntStreamImpl/Empty", 788); - bcb(1463, 1, sie, BAb); - _.ud = function CAb(a) { - crb(this.a, a); - }; - var aM = mdb(vke, "IntStreamImpl/lambda$4$Type", 1463); - var xM = odb(vke, "Stream"); - bcb(30, 539, { 525: 1, 670: 1, 833: 1 }, YAb); - _.He = function ZAb() { - Qzb(this); - }; - var DAb; - var wM = mdb(vke, "StreamImpl", 30); - bcb(845, 1, {}, bBb); - _.ld = function cBb(a) { - return aBb(a); - }; - var cM = mdb(vke, "StreamImpl/0methodref$lambda$2$Type", 845); - bcb(1084, 540, pie, fBb); - _.sd = function gBb(a) { - while (dBb(this)) { - if (this.a.sd(a)) { - return true; - } else { - Qzb(this.b); - this.b = null; - this.a = null; - } - } - return false; - }; - var eM = mdb(vke, "StreamImpl/1", 1084); - bcb(1085, 1, qie, hBb); - _.td = function iBb(a) { - eBb(this.a, BD(a, 833)); - }; - var dM = mdb(vke, "StreamImpl/1/lambda$0$Type", 1085); - bcb(1086, 1, Oie, jBb); - _.Mb = function kBb(a) { - return Qqb(this.a, a); - }; - var fM = mdb(vke, "StreamImpl/1methodref$add$Type", 1086); - bcb(1087, 540, pie, lBb); - _.sd = function mBb(a) { - var b; - if (!this.a) { - b = new Rkb(); - this.b.a.Nb(new nBb(b)); - mmb(); - Okb(b, this.c); - this.a = new Kub(b, 16); - } - return Jub(this.a, a); - }; - _.a = null; - var hM = mdb(vke, "StreamImpl/5", 1087); - bcb(1088, 1, qie, nBb); - _.td = function oBb(a) { - Ekb(this.a, a); - }; - var gM = mdb(vke, "StreamImpl/5/2methodref$add$Type", 1088); - bcb(722, 540, pie, qBb); - _.sd = function rBb(a) { - this.b = false; - while (!this.b && this.c.sd(new sBb(this, a))) - ; - return this.b; - }; - _.b = false; - var jM = mdb(vke, "StreamImpl/FilterSpliterator", 722); - bcb(1079, 1, qie, sBb); - _.td = function tBb(a) { - pBb(this.a, this.b, a); - }; - var iM = mdb(vke, "StreamImpl/FilterSpliterator/lambda$0$Type", 1079); - bcb(1075, 721, pie, wBb); - _.ye = function xBb(a) { - return vBb(this, BD(a, 182)); - }; - var lM = mdb(vke, "StreamImpl/MapToDoubleSpliterator", 1075); - bcb(1078, 1, qie, yBb); - _.td = function zBb(a) { - uBb(this.a, this.b, a); - }; - var kM = mdb(vke, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1078); - bcb(1074, 720, pie, CBb); - _.ye = function DBb(a) { - return BBb(this, BD(a, 196)); - }; - var nM = mdb(vke, "StreamImpl/MapToIntSpliterator", 1074); - bcb(1077, 1, qie, EBb); - _.td = function FBb(a) { - ABb(this.a, this.b, a); - }; - var mM = mdb(vke, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1077); - bcb(719, 540, pie, IBb); - _.sd = function JBb(a) { - return HBb(this, a); - }; - var pM = mdb(vke, "StreamImpl/MapToObjSpliterator", 719); - bcb(1076, 1, qie, KBb); - _.td = function LBb(a) { - GBb(this.a, this.b, a); - }; - var oM = mdb(vke, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1076); - bcb(618, 1, qie, NBb); - _.td = function OBb(a) { - MBb(this, a); - }; - var qM = mdb(vke, "StreamImpl/ValueConsumer", 618); - bcb(1080, 1, qie, PBb); - _.td = function QBb(a) { - EAb(); - }; - var rM = mdb(vke, "StreamImpl/lambda$0$Type", 1080); - bcb(1081, 1, qie, RBb); - _.td = function SBb(a) { - EAb(); - }; - var sM = mdb(vke, "StreamImpl/lambda$1$Type", 1081); - bcb(1082, 1, {}, TBb); - _.Ce = function UBb(a, b) { - return $Ab(this.a, a, b); - }; - var uM = mdb(vke, "StreamImpl/lambda$4$Type", 1082); - bcb(1083, 1, qie, VBb); - _.td = function WBb(a) { - _Ab(this.b, this.a, a); - }; - var vM = mdb(vke, "StreamImpl/lambda$5$Type", 1083); - bcb(1089, 1, qie, XBb); - _.td = function YBb(a) { - Xzb(this.a, BD(a, 365)); - }; - var yM = mdb(vke, "TerminatableStream/lambda$0$Type", 1089); - bcb(2041, 1, {}); - bcb(1914, 1, {}, iCb); - var AM = mdb("javaemul.internal", "ConsoleLogger", 1914); - bcb(2038, 1, {}); - var ECb = 0; - var GCb, HCb = 0, ICb; - bcb(1768, 1, qie, OCb); - _.td = function PCb(a) { - BD(a, 308); - }; - var BM = mdb(Cke, "BowyerWatsonTriangulation/lambda$0$Type", 1768); - bcb(1769, 1, qie, QCb); - _.td = function RCb(a) { - ye(this.a, BD(a, 308).e); - }; - var CM = mdb(Cke, "BowyerWatsonTriangulation/lambda$1$Type", 1769); - bcb(1770, 1, qie, SCb); - _.td = function TCb(a) { - BD(a, 168); - }; - var DM = mdb(Cke, "BowyerWatsonTriangulation/lambda$2$Type", 1770); - bcb(1765, 1, Dke, WCb); - _.ue = function XCb(a, b) { - return VCb(this.a, BD(a, 168), BD(b, 168)); - }; - _.Fb = function YCb(a) { - return this === a; - }; - _.ve = function ZCb() { - return new tpb(this); - }; - var EM = mdb(Cke, "NaiveMinST/lambda$0$Type", 1765); - bcb(499, 1, {}, _Cb); - var FM = mdb(Cke, "NodeMicroLayout", 499); - bcb(168, 1, { 168: 1 }, aDb); - _.Fb = function bDb(a) { - var b; - if (JD(a, 168)) { - b = BD(a, 168); - return wtb(this.a, b.a) && wtb(this.b, b.b) || wtb(this.a, b.b) && wtb(this.b, b.a); - } else { - return false; - } - }; - _.Hb = function cDb() { - return xtb(this.a) + xtb(this.b); - }; - var GM = mdb(Cke, "TEdge", 168); - bcb(308, 1, { 308: 1 }, eDb); - _.Fb = function fDb(a) { - var b; - if (JD(a, 308)) { - b = BD(a, 308); - return dDb(this, b.a) && dDb(this, b.b) && dDb(this, b.c); - } else { - return false; - } - }; - _.Hb = function gDb() { - return xtb(this.a) + xtb(this.b) + xtb(this.c); - }; - var HM = mdb(Cke, "TTriangle", 308); - bcb(221, 1, { 221: 1 }, hDb); - var IM = mdb(Cke, "Tree", 221); - bcb(1254, 1, {}, jDb); - var KM = mdb(Eke, "Scanline", 1254); - var JM = odb(Eke, Fke); - bcb(1692, 1, {}, mDb); - var LM = mdb(Gke, "CGraph", 1692); - bcb(307, 1, { 307: 1 }, oDb); - _.b = 0; - _.c = 0; - _.d = 0; - _.g = 0; - _.i = 0; - _.k = Qje; - var NM = mdb(Gke, "CGroup", 307); - bcb(815, 1, {}, sDb); - var MM = mdb(Gke, "CGroup/CGroupBuilder", 815); - bcb(57, 1, { 57: 1 }, tDb); - _.Ib = function uDb() { - var a; - if (this.j) { - return GD(this.j.Kb(this)); - } - return fdb(PM), PM.o + "@" + (a = FCb(this) >>> 0, a.toString(16)); - }; - _.f = 0; - _.i = Qje; - var PM = mdb(Gke, "CNode", 57); - bcb(814, 1, {}, zDb); - var OM = mdb(Gke, "CNode/CNodeBuilder", 814); - var EDb; - bcb(1525, 1, {}, GDb); - _.Oe = function HDb(a, b) { - return 0; - }; - _.Pe = function IDb(a, b) { - return 0; - }; - var QM = mdb(Gke, Ike, 1525); - bcb(1790, 1, {}, JDb); - _.Le = function KDb(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - j = Pje; - for (d = new olb(a.a.b); d.a < d.c.c.length; ) { - b = BD(mlb(d), 57); - j = $wnd.Math.min(j, b.a.j.d.c + b.b.a); - } - n = new Psb(); - for (g10 = new olb(a.a.a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 307); - f.k = j; - f.g == 0 && (Gsb(n, f, n.c.b, n.c), true); - } - while (n.b != 0) { - f = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 307); - e = f.j.d.c; - for (m = f.a.a.ec().Kc(); m.Ob(); ) { - k = BD(m.Pb(), 57); - p = f.k + k.b.a; - !UDb(a, f, a.d) || k.d.c < p ? k.i = p : k.i = k.d.c; - } - e -= f.j.i; - f.b += e; - a.d == (ead(), bad) || a.d == _9c ? f.c += e : f.c -= e; - for (l = f.a.a.ec().Kc(); l.Ob(); ) { - k = BD(l.Pb(), 57); - for (i10 = k.c.Kc(); i10.Ob(); ) { - h = BD(i10.Pb(), 57); - fad(a.d) ? o10 = a.g.Oe(k, h) : o10 = a.g.Pe(k, h); - h.a.k = $wnd.Math.max(h.a.k, k.i + k.d.b + o10 - h.b.a); - VDb(a, h, a.d) && (h.a.k = $wnd.Math.max(h.a.k, h.d.c - h.b.a)); - --h.a.g; - h.a.g == 0 && Dsb(n, h.a); - } - } - } - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - b.d.c = b.i; - } - }; - var RM = mdb(Gke, "LongestPathCompaction", 1790); - bcb(1690, 1, {}, cEb); - _.e = false; - var LDb, MDb, NDb; - var TM = mdb(Gke, Nke, 1690); - bcb(1691, 1, qie, dEb); - _.td = function eEb(a) { - WDb(this.a, BD(a, 46)); - }; - var SM = mdb(Gke, Oke, 1691); - bcb(1791, 1, {}, fEb); - _.Me = function gEb(a) { - var b, c, d, e, f, g10, h; - for (c = new olb(a.a.b); c.a < c.c.c.length; ) { - b = BD(mlb(c), 57); - b.c.$b(); - } - for (e = new olb(a.a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 57); - for (g10 = new olb(a.a.b); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 57); - if (d == f) { - continue; - } - if (!!d.a && d.a == f.a) { - continue; - } - fad(a.d) ? h = a.g.Pe(d, f) : h = a.g.Oe(d, f); - (f.d.c > d.d.c || d.d.c == f.d.c && d.d.b < f.d.b) && BDb(f.d.d + f.d.a + h, d.d.d) && DDb(f.d.d, d.d.d + d.d.a + h) && d.c.Fc(f); - } - } - }; - var UM = mdb(Gke, "QuadraticConstraintCalculation", 1791); - bcb(522, 1, { 522: 1 }, lEb); - _.a = false; - _.b = false; - _.c = false; - _.d = false; - var VM = mdb(Gke, Pke, 522); - bcb(803, 1, {}, oEb); - _.Me = function pEb(a) { - this.c = a; - nEb(this, new GEb()); - }; - var _M = mdb(Gke, Qke, 803); - bcb(1718, 1, { 679: 1 }, uEb); - _.Ke = function vEb(a) { - rEb(this, BD(a, 464)); - }; - var XM = mdb(Gke, Rke, 1718); - bcb(1719, 1, Dke, xEb); - _.ue = function yEb(a, b) { - return wEb(BD(a, 57), BD(b, 57)); - }; - _.Fb = function zEb(a) { - return this === a; - }; - _.ve = function AEb() { - return new tpb(this); - }; - var WM = mdb(Gke, Ske, 1719); - bcb(464, 1, { 464: 1 }, BEb); - _.a = false; - var YM = mdb(Gke, Tke, 464); - bcb(1720, 1, Dke, CEb); - _.ue = function DEb(a, b) { - return qEb(BD(a, 464), BD(b, 464)); - }; - _.Fb = function EEb(a) { - return this === a; - }; - _.ve = function FEb() { - return new tpb(this); - }; - var ZM = mdb(Gke, Uke, 1720); - bcb(1721, 1, Vke, GEb); - _.Lb = function HEb(a) { - return BD(a, 57), true; - }; - _.Fb = function IEb(a) { - return this === a; - }; - _.Mb = function JEb(a) { - return BD(a, 57), true; - }; - var $M = mdb(Gke, "ScanlineConstraintCalculator/lambda$1$Type", 1721); - bcb(428, 22, { 3: 1, 35: 1, 22: 1, 428: 1 }, NEb); - var KEb, LEb; - var aN = ndb(Wke, "HighLevelSortingCriterion", 428, CI, PEb, OEb); - var QEb; - bcb(427, 22, { 3: 1, 35: 1, 22: 1, 427: 1 }, VEb); - var SEb, TEb; - var bN = ndb(Wke, "LowLevelSortingCriterion", 427, CI, XEb, WEb); - var YEb; - var C0 = odb(Xke, "ILayoutMetaDataProvider"); - bcb(853, 1, ale, gFb); - _.Qe = function hFb(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yke), ble), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), eFb), (_5c(), V5c)), dN), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zke), ble), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), cFb), V5c), bN), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ke), ble), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), aFb), V5c), aN), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ke), ble), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (Bcb(), true)), T5c), wI), pqb(L5c)))); - }; - var $Eb, _Eb, aFb, bFb, cFb, dFb, eFb; - var cN = mdb(Wke, "PolyominoOptions", 853); - bcb(250, 22, { 3: 1, 35: 1, 22: 1, 250: 1 }, sFb); - var iFb, jFb, kFb, lFb, mFb, nFb, oFb, pFb, qFb; - var dN = ndb(Wke, "TraversalStrategy", 250, CI, uFb, tFb); - var vFb; - bcb(213, 1, { 213: 1 }, yFb); - _.Ib = function zFb() { - return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]"; - }; - _.a = 1; - _.b = 0; - _.c = 0; - _.f = false; - _.g = 0; - var fN = mdb(cle, "NEdge", 213); - bcb(176, 1, {}, FFb); - var eN = mdb(cle, "NEdge/NEdgeBuilder", 176); - bcb(653, 1, {}, KFb); - var gN = mdb(cle, "NGraph", 653); - bcb(121, 1, { 121: 1 }, MFb); - _.c = -1; - _.d = 0; - _.e = 0; - _.i = -1; - _.j = false; - var jN = mdb(cle, "NNode", 121); - bcb(795, 1, cke, PFb); - _.Jc = function XFb(a) { - reb(this, a); - }; - _.Lc = function cGb() { - return new YAb(null, new Kub(this, 16)); - }; - _.ad = function hGb(a) { - ktb(this, a); - }; - _.Nc = function iGb() { - return new Kub(this, 16); - }; - _.Oc = function jGb() { - return new YAb(null, new Kub(this, 16)); - }; - _.Vc = function QFb(a, b) { - ++this.b; - Dkb(this.a, a, b); - }; - _.Fc = function RFb(a) { - return NFb(this, a); - }; - _.Wc = function SFb(a, b) { - ++this.b; - return Fkb(this.a, a, b); - }; - _.Gc = function TFb(a) { - ++this.b; - return Gkb(this.a, a); - }; - _.$b = function UFb() { - ++this.b; - this.a.c = KC(SI, Uhe, 1, 0, 5, 1); - }; - _.Hc = function VFb(a) { - return Jkb(this.a, a, 0) != -1; - }; - _.Ic = function WFb(a) { - return Be(this.a, a); - }; - _.Xb = function YFb(a) { - return Ikb(this.a, a); - }; - _.Xc = function ZFb(a) { - return Jkb(this.a, a, 0); - }; - _.dc = function $Fb() { - return this.a.c.length == 0; - }; - _.Kc = function _Fb() { - return vr(new olb(this.a)); - }; - _.Yc = function aGb() { - throw vbb(new bgb()); - }; - _.Zc = function bGb(a) { - throw vbb(new bgb()); - }; - _.$c = function dGb(a) { - ++this.b; - return Kkb(this.a, a); - }; - _.Mc = function eGb(a) { - return OFb(this, a); - }; - _._c = function fGb(a, b) { - ++this.b; - return Nkb(this.a, a, b); - }; - _.gc = function gGb() { - return this.a.c.length; - }; - _.bd = function kGb(a, b) { - return new Jib(this.a, a, b); - }; - _.Pc = function lGb() { - return Pkb(this.a); - }; - _.Qc = function mGb(a) { - return Qkb(this.a, a); - }; - _.b = 0; - var hN = mdb(cle, "NNode/ChangeAwareArrayList", 795); - bcb(269, 1, {}, pGb); - var iN = mdb(cle, "NNode/NNodeBuilder", 269); - bcb(1630, 1, {}, KGb); - _.a = false; - _.f = Ohe; - _.j = 0; - var kN = mdb(cle, "NetworkSimplex", 1630); - bcb(1294, 1, qie, QGb); - _.td = function RGb(a) { - PGb(this.a, BD(a, 680), true, false); - }; - var lN = mdb(ele, "NodeLabelAndSizeCalculator/lambda$0$Type", 1294); - bcb(558, 1, {}, YGb); - _.b = true; - _.c = true; - _.d = true; - _.e = true; - var mN = mdb(ele, "NodeMarginCalculator", 558); - bcb(212, 1, { 212: 1 }); - _.j = false; - _.k = false; - var oN = mdb(fle, "Cell", 212); - bcb(124, 212, { 124: 1, 212: 1 }, aHb); - _.Re = function bHb() { - return _Gb(this); - }; - _.Se = function cHb() { - var a; - a = this.n; - return this.a.a + a.b + a.c; - }; - var nN = mdb(fle, "AtomicCell", 124); - bcb(232, 22, { 3: 1, 35: 1, 22: 1, 232: 1 }, hHb); - var dHb, eHb, fHb; - var pN = ndb(fle, "ContainerArea", 232, CI, jHb, iHb); - var kHb; - bcb(326, 212, hle); - var qN = mdb(fle, "ContainerCell", 326); - bcb(1473, 326, hle, FHb); - _.Re = function GHb() { - var a; - a = 0; - this.e ? this.b ? a = this.b.b : !!this.a[1][1] && (a = this.a[1][1].Re()) : a = EHb(this, AHb(this, true)); - return a > 0 ? a + this.n.d + this.n.a : 0; - }; - _.Se = function HHb() { - var a, b, c, d, e; - e = 0; - if (this.e) { - this.b ? e = this.b.a : !!this.a[1][1] && (e = this.a[1][1].Se()); - } else if (this.g) { - e = EHb(this, yHb(this, null, true)); - } else { - for (b = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), c = 0, d = b.length; c < d; ++c) { - a = b[c]; - e = $wnd.Math.max(e, EHb(this, yHb(this, a, true))); - } - } - return e > 0 ? e + this.n.b + this.n.c : 0; - }; - _.Te = function IHb() { - var a, b, c, d, e; - if (this.g) { - a = yHb(this, null, false); - for (c = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - wHb(this, b, a); - } - } else { - for (c = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c.length; d < e; ++d) { - b = c[d]; - a = yHb(this, b, false); - wHb(this, b, a); - } - } - }; - _.Ue = function JHb() { - var a, b, c, d; - b = this.i; - a = this.n; - d = AHb(this, false); - uHb(this, (gHb(), dHb), b.d + a.d, d); - uHb(this, fHb, b.d + b.a - a.a - d[2], d); - c = b.a - a.d - a.a; - if (d[0] > 0) { - d[0] += this.d; - c -= d[0]; - } - if (d[2] > 0) { - d[2] += this.d; - c -= d[2]; - } - this.c.a = $wnd.Math.max(0, c); - this.c.d = b.d + a.d + (this.c.a - c) / 2; - d[1] = $wnd.Math.max(d[1], c); - uHb(this, eHb, b.d + a.d + d[0] - (d[1] - c) / 2, d); - }; - _.b = null; - _.d = 0; - _.e = false; - _.f = false; - _.g = false; - var rHb = 0, sHb = 0; - var rN = mdb(fle, "GridContainerCell", 1473); - bcb(461, 22, { 3: 1, 35: 1, 22: 1, 461: 1 }, OHb); - var KHb, LHb, MHb; - var sN = ndb(fle, "HorizontalLabelAlignment", 461, CI, QHb, PHb); - var RHb; - bcb(306, 212, { 212: 1, 306: 1 }, aIb, bIb, cIb); - _.Re = function dIb() { - return YHb(this); - }; - _.Se = function eIb() { - return ZHb(this); - }; - _.a = 0; - _.c = false; - var tN = mdb(fle, "LabelCell", 306); - bcb(244, 326, { 212: 1, 326: 1, 244: 1 }, mIb); - _.Re = function nIb() { - return fIb(this); - }; - _.Se = function oIb() { - return gIb(this); - }; - _.Te = function rIb() { - hIb(this); - }; - _.Ue = function sIb() { - iIb(this); - }; - _.b = 0; - _.c = 0; - _.d = false; - var yN = mdb(fle, "StripContainerCell", 244); - bcb(1626, 1, Oie, tIb); - _.Mb = function uIb(a) { - return pIb(BD(a, 212)); - }; - var uN = mdb(fle, "StripContainerCell/lambda$0$Type", 1626); - bcb(1627, 1, {}, vIb); - _.Fe = function wIb(a) { - return BD(a, 212).Se(); - }; - var vN = mdb(fle, "StripContainerCell/lambda$1$Type", 1627); - bcb(1628, 1, Oie, xIb); - _.Mb = function yIb(a) { - return qIb(BD(a, 212)); - }; - var wN = mdb(fle, "StripContainerCell/lambda$2$Type", 1628); - bcb(1629, 1, {}, zIb); - _.Fe = function AIb(a) { - return BD(a, 212).Re(); - }; - var xN = mdb(fle, "StripContainerCell/lambda$3$Type", 1629); - bcb(462, 22, { 3: 1, 35: 1, 22: 1, 462: 1 }, FIb); - var BIb, CIb, DIb; - var zN = ndb(fle, "VerticalLabelAlignment", 462, CI, HIb, GIb); - var IIb; - bcb(789, 1, {}, LIb); - _.c = 0; - _.d = 0; - _.k = 0; - _.s = 0; - _.t = 0; - _.v = false; - _.w = 0; - _.D = false; - var CN = mdb(nle, "NodeContext", 789); - bcb(1471, 1, Dke, OIb); - _.ue = function PIb(a, b) { - return NIb(BD(a, 61), BD(b, 61)); - }; - _.Fb = function QIb(a) { - return this === a; - }; - _.ve = function RIb() { - return new tpb(this); - }; - var AN = mdb(nle, "NodeContext/0methodref$comparePortSides$Type", 1471); - bcb(1472, 1, Dke, SIb); - _.ue = function TIb(a, b) { - return MIb(BD(a, 111), BD(b, 111)); - }; - _.Fb = function UIb(a) { - return this === a; - }; - _.ve = function VIb() { - return new tpb(this); - }; - var BN = mdb(nle, "NodeContext/1methodref$comparePortContexts$Type", 1472); - bcb(159, 22, { 3: 1, 35: 1, 22: 1, 159: 1 }, tJb); - var WIb, XIb, YIb, ZIb, $Ib, _Ib, aJb, bJb, cJb, dJb, eJb, fJb, gJb, hJb, iJb, jJb, kJb, lJb, mJb, nJb, oJb, pJb; - var DN = ndb(nle, "NodeLabelLocation", 159, CI, wJb, vJb); - var xJb; - bcb(111, 1, { 111: 1 }, AJb); - _.a = false; - var EN = mdb(nle, "PortContext", 111); - bcb(1476, 1, qie, TJb); - _.td = function UJb(a) { - WHb(BD(a, 306)); - }; - var FN = mdb(qle, rle, 1476); - bcb(1477, 1, Oie, VJb); - _.Mb = function WJb(a) { - return !!BD(a, 111).c; - }; - var GN = mdb(qle, sle, 1477); - bcb(1478, 1, qie, XJb); - _.td = function YJb(a) { - WHb(BD(a, 111).c); - }; - var HN = mdb(qle, "LabelPlacer/lambda$2$Type", 1478); - var ZJb; - bcb(1475, 1, qie, fKb); - _.td = function gKb(a) { - $Jb(); - zJb(BD(a, 111)); - }; - var IN = mdb(qle, "NodeLabelAndSizeUtilities/lambda$0$Type", 1475); - bcb(790, 1, qie, mKb); - _.td = function nKb(a) { - kKb(this.b, this.c, this.a, BD(a, 181)); - }; - _.a = false; - _.c = false; - var JN = mdb(qle, "NodeLabelCellCreator/lambda$0$Type", 790); - bcb(1474, 1, qie, tKb); - _.td = function uKb(a) { - sKb(this.a, BD(a, 181)); - }; - var KN = mdb(qle, "PortContextCreator/lambda$0$Type", 1474); - var BKb; - bcb(1829, 1, {}, VKb); - var MN = mdb(ule, "GreedyRectangleStripOverlapRemover", 1829); - bcb(1830, 1, Dke, XKb); - _.ue = function YKb(a, b) { - return WKb(BD(a, 222), BD(b, 222)); - }; - _.Fb = function ZKb(a) { - return this === a; - }; - _.ve = function $Kb() { - return new tpb(this); - }; - var LN = mdb(ule, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1830); - bcb(1786, 1, {}, fLb); - _.a = 5; - _.e = 0; - var SN = mdb(ule, "RectangleStripOverlapRemover", 1786); - bcb(1787, 1, Dke, jLb); - _.ue = function kLb(a, b) { - return gLb(BD(a, 222), BD(b, 222)); - }; - _.Fb = function lLb(a) { - return this === a; - }; - _.ve = function mLb() { - return new tpb(this); - }; - var NN = mdb(ule, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1787); - bcb(1789, 1, Dke, nLb); - _.ue = function oLb(a, b) { - return hLb(BD(a, 222), BD(b, 222)); - }; - _.Fb = function pLb(a) { - return this === a; - }; - _.ve = function qLb() { - return new tpb(this); - }; - var ON = mdb(ule, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1789); - bcb(406, 22, { 3: 1, 35: 1, 22: 1, 406: 1 }, wLb); - var rLb, sLb, tLb, uLb; - var PN = ndb(ule, "RectangleStripOverlapRemover/OverlapRemovalDirection", 406, CI, yLb, xLb); - var zLb; - bcb(222, 1, { 222: 1 }, BLb); - var QN = mdb(ule, "RectangleStripOverlapRemover/RectangleNode", 222); - bcb(1788, 1, qie, CLb); - _.td = function DLb(a) { - aLb(this.a, BD(a, 222)); - }; - var RN = mdb(ule, "RectangleStripOverlapRemover/lambda$1$Type", 1788); - bcb(1304, 1, Dke, GLb); - _.ue = function HLb(a, b) { - return FLb(BD(a, 167), BD(b, 167)); - }; - _.Fb = function ILb(a) { - return this === a; - }; - _.ve = function JLb() { - return new tpb(this); - }; - var WN = mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1304); - bcb(1307, 1, {}, KLb); - _.Kb = function LLb(a) { - return BD(a, 324).a; - }; - var TN = mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1307); - bcb(1308, 1, Oie, MLb); - _.Mb = function NLb(a) { - return BD(a, 323).a; - }; - var UN = mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1308); - bcb(1309, 1, Oie, OLb); - _.Mb = function PLb(a) { - return BD(a, 323).a; - }; - var VN = mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1309); - bcb(1302, 1, Dke, RLb); - _.ue = function SLb(a, b) { - return QLb(BD(a, 167), BD(b, 167)); - }; - _.Fb = function TLb(a) { - return this === a; - }; - _.ve = function ULb() { - return new tpb(this); - }; - var YN = mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1302); - bcb(1305, 1, {}, VLb); - _.Kb = function WLb(a) { - return BD(a, 324).a; - }; - var XN = mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1305); - bcb(767, 1, Dke, YLb); - _.ue = function ZLb(a, b) { - return XLb(BD(a, 167), BD(b, 167)); - }; - _.Fb = function $Lb(a) { - return this === a; - }; - _.ve = function _Lb() { - return new tpb(this); - }; - var ZN = mdb(wle, "PolyominoCompactor/MinNumOfExtensionsComparator", 767); - bcb(1300, 1, Dke, bMb); - _.ue = function cMb(a, b) { - return aMb(BD(a, 321), BD(b, 321)); - }; - _.Fb = function dMb(a) { - return this === a; - }; - _.ve = function eMb() { - return new tpb(this); - }; - var _N = mdb(wle, "PolyominoCompactor/MinPerimeterComparator", 1300); - bcb(1301, 1, Dke, gMb); - _.ue = function hMb(a, b) { - return fMb(BD(a, 321), BD(b, 321)); - }; - _.Fb = function iMb(a) { - return this === a; - }; - _.ve = function jMb() { - return new tpb(this); - }; - var $N = mdb(wle, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1301); - bcb(1303, 1, Dke, lMb); - _.ue = function mMb(a, b) { - return kMb(BD(a, 167), BD(b, 167)); - }; - _.Fb = function nMb(a) { - return this === a; - }; - _.ve = function oMb() { - return new tpb(this); - }; - var bO = mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1303); - bcb(1306, 1, {}, pMb); - _.Kb = function qMb(a) { - return BD(a, 324).a; - }; - var aO = mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1306); - bcb(777, 1, {}, tMb); - _.Ce = function uMb(a, b) { - return sMb(this, BD(a, 46), BD(b, 167)); - }; - var cO = mdb(wle, "SuccessorCombination", 777); - bcb(644, 1, {}, wMb); - _.Ce = function xMb(a, b) { - var c; - return vMb((c = BD(a, 46), BD(b, 167), c)); - }; - var dO = mdb(wle, "SuccessorJitter", 644); - bcb(643, 1, {}, zMb); - _.Ce = function AMb(a, b) { - var c; - return yMb((c = BD(a, 46), BD(b, 167), c)); - }; - var eO = mdb(wle, "SuccessorLineByLine", 643); - bcb(568, 1, {}, CMb); - _.Ce = function DMb(a, b) { - var c; - return BMb((c = BD(a, 46), BD(b, 167), c)); - }; - var fO = mdb(wle, "SuccessorManhattan", 568); - bcb(1356, 1, {}, FMb); - _.Ce = function GMb(a, b) { - var c; - return EMb((c = BD(a, 46), BD(b, 167), c)); - }; - var gO = mdb(wle, "SuccessorMaxNormWindingInMathPosSense", 1356); - bcb(400, 1, {}, JMb); - _.Ce = function KMb(a, b) { - return HMb(this, a, b); - }; - _.c = false; - _.d = false; - _.e = false; - _.f = false; - var iO = mdb(wle, "SuccessorQuadrantsGeneric", 400); - bcb(1357, 1, {}, LMb); - _.Kb = function MMb(a) { - return BD(a, 324).a; - }; - var hO = mdb(wle, "SuccessorQuadrantsGeneric/lambda$0$Type", 1357); - bcb(323, 22, { 3: 1, 35: 1, 22: 1, 323: 1 }, SMb); - _.a = false; - var NMb, OMb, PMb, QMb; - var jO = ndb(Ble, Cle, 323, CI, UMb, TMb); - var VMb; - bcb(1298, 1, {}); - _.Ib = function bNb() { - var a, b, c, d, e, f; - c = " "; - a = meb(0); - for (e = 0; e < this.o; e++) { - c += "" + a.a; - a = meb(XMb(a.a)); - } - c += "\n"; - a = meb(0); - for (f = 0; f < this.p; f++) { - c += "" + a.a; - a = meb(XMb(a.a)); - for (d = 0; d < this.o; d++) { - b = _Mb(this, d, f); - ybb(b, 0) == 0 ? c += "_" : ybb(b, 1) == 0 ? c += "X" : c += "0"; - } - c += "\n"; - } - return qfb(c, 0, c.length - 1); - }; - _.o = 0; - _.p = 0; - var nO = mdb(Ble, "TwoBitGrid", 1298); - bcb(321, 1298, { 321: 1 }, pNb); - _.j = 0; - _.k = 0; - var kO = mdb(Ble, "PlanarGrid", 321); - bcb(167, 321, { 321: 1, 167: 1 }); - _.g = 0; - _.i = 0; - var lO = mdb(Ble, "Polyomino", 167); - var P3 = odb(Hle, Ile); - bcb(134, 1, Jle, zNb); - _.Ye = function DNb(a, b) { - return xNb(this, a, b); - }; - _.Ve = function ANb() { - return uNb(this); - }; - _.We = function BNb(a) { - return vNb(this, a); - }; - _.Xe = function CNb(a) { - return wNb(this, a); - }; - var R3 = mdb(Hle, "MapPropertyHolder", 134); - bcb(1299, 134, Jle, ENb); - var mO = mdb(Ble, "Polyominoes", 1299); - var FNb = false, GNb, HNb; - bcb(1766, 1, qie, PNb); - _.td = function QNb(a) { - JNb(BD(a, 221)); - }; - var oO = mdb(Kle, "DepthFirstCompaction/0methodref$compactTree$Type", 1766); - bcb(810, 1, qie, RNb); - _.td = function SNb(a) { - MNb(this.a, BD(a, 221)); - }; - var pO = mdb(Kle, "DepthFirstCompaction/lambda$1$Type", 810); - bcb(1767, 1, qie, TNb); - _.td = function UNb(a) { - NNb(this.a, this.b, this.c, BD(a, 221)); - }; - var qO = mdb(Kle, "DepthFirstCompaction/lambda$2$Type", 1767); - var VNb, WNb; - bcb(65, 1, { 65: 1 }, aOb); - var rO = mdb(Kle, "Node", 65); - bcb(1250, 1, {}, dOb); - var wO = mdb(Kle, "ScanlineOverlapCheck", 1250); - bcb(1251, 1, { 679: 1 }, hOb); - _.Ke = function iOb(a) { - fOb(this, BD(a, 440)); - }; - var tO = mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1251); - bcb(1252, 1, Dke, kOb); - _.ue = function lOb(a, b) { - return jOb(BD(a, 65), BD(b, 65)); - }; - _.Fb = function mOb(a) { - return this === a; - }; - _.ve = function nOb() { - return new tpb(this); - }; - var sO = mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1252); - bcb(440, 1, { 440: 1 }, oOb); - _.a = false; - var uO = mdb(Kle, "ScanlineOverlapCheck/Timestamp", 440); - bcb(1253, 1, Dke, pOb); - _.ue = function qOb(a, b) { - return eOb(BD(a, 440), BD(b, 440)); - }; - _.Fb = function rOb(a) { - return this === a; - }; - _.ve = function sOb() { - return new tpb(this); - }; - var vO = mdb(Kle, "ScanlineOverlapCheck/lambda$0$Type", 1253); - bcb(550, 1, {}, tOb); - var xO = mdb(Lle, "SVGImage", 550); - bcb(324, 1, { 324: 1 }, uOb); - _.Ib = function vOb() { - return "(" + this.a + She + this.b + She + this.c + ")"; - }; - var yO = mdb(Lle, "UniqueTriple", 324); - bcb(209, 1, Mle); - var g0 = mdb(Nle, "AbstractLayoutProvider", 209); - bcb(1132, 209, Mle, yOb); - _.Ze = function zOb(a, b) { - var c, d, e, f; - Odd(b, Ole, 1); - this.a = Edb(ED(hkd(a, (CPb(), BPb)))); - if (ikd(a, rPb)) { - e = GD(hkd(a, rPb)); - c = h4c(n4c(), e); - if (c) { - d = BD(hgd(c.f), 209); - d.Ze(a, Udd(b, 1)); - } - } - f = new AQb(this.a); - this.b = yQb(f, a); - switch (BD(hkd(a, (nPb(), jPb)), 481).g) { - case 0: - BOb(new FOb(), this.b); - jkd(a, uPb, vNb(this.b, uPb)); - break; - default: - Zfb(); - } - qQb(f); - jkd(a, tPb, this.b); - Qdd(b); - }; - _.a = 0; - var zO = mdb(Ple, "DisCoLayoutProvider", 1132); - bcb(1244, 1, {}, FOb); - _.c = false; - _.e = 0; - _.f = 0; - var AO = mdb(Ple, "DisCoPolyominoCompactor", 1244); - bcb(561, 1, { 561: 1 }, MOb); - _.b = true; - var BO = mdb(Qle, "DCComponent", 561); - bcb(394, 22, { 3: 1, 35: 1, 22: 1, 394: 1 }, SOb); - _.a = false; - var NOb, OOb, POb, QOb; - var CO = ndb(Qle, "DCDirection", 394, CI, UOb, TOb); - var VOb; - bcb(266, 134, { 3: 1, 266: 1, 94: 1, 134: 1 }, XOb); - var DO = mdb(Qle, "DCElement", 266); - bcb(395, 1, { 395: 1 }, ZOb); - _.c = 0; - var EO = mdb(Qle, "DCExtension", 395); - bcb(755, 134, Jle, aPb); - var FO = mdb(Qle, "DCGraph", 755); - bcb(481, 22, { 3: 1, 35: 1, 22: 1, 481: 1 }, dPb); - var bPb; - var GO = ndb(Rle, Sle, 481, CI, fPb, ePb); - var gPb; - bcb(854, 1, ale, oPb); - _.Qe = function pPb(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tle), Xle), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), kPb), (_5c(), V5c)), GO), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Ule), Xle), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), Z5c), ZI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vle), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), Y5c), SI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wle), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), Y5c), SI), pqb(L5c)))); - DPb((new EPb(), a)); - }; - var iPb, jPb, kPb, lPb, mPb; - var HO = mdb(Rle, "DisCoMetaDataProvider", 854); - bcb(998, 1, ale, EPb); - _.Qe = function FPb(a) { - DPb(a); - }; - var qPb, rPb, sPb, tPb, uPb, vPb, wPb, xPb, yPb, zPb, APb, BPb; - var JO = mdb(Rle, "DisCoOptions", 998); - bcb(999, 1, {}, GPb); - _.$e = function HPb() { - var a; - return a = new yOb(), a; - }; - _._e = function IPb(a) { - }; - var IO = mdb(Rle, "DisCoOptions/DiscoFactory", 999); - bcb(562, 167, { 321: 1, 167: 1, 562: 1 }, MPb); - _.a = 0; - _.b = 0; - _.c = 0; - _.d = 0; - var KO = mdb("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 562); - var NPb, OPb, PPb; - bcb(1268, 1, Oie, aQb); - _.Mb = function bQb(a) { - return _Pb(a); - }; - var LO = mdb(bme, "ElkGraphComponentsProcessor/lambda$0$Type", 1268); - bcb(1269, 1, {}, cQb); - _.Kb = function dQb(a) { - return QPb(), jtd(BD(a, 79)); - }; - var MO = mdb(bme, "ElkGraphComponentsProcessor/lambda$1$Type", 1269); - bcb(1270, 1, Oie, eQb); - _.Mb = function fQb(a) { - return WPb(BD(a, 79)); - }; - var NO = mdb(bme, "ElkGraphComponentsProcessor/lambda$2$Type", 1270); - bcb(1271, 1, {}, gQb); - _.Kb = function hQb(a) { - return QPb(), ltd(BD(a, 79)); - }; - var OO = mdb(bme, "ElkGraphComponentsProcessor/lambda$3$Type", 1271); - bcb(1272, 1, Oie, iQb); - _.Mb = function jQb(a) { - return XPb(BD(a, 79)); - }; - var PO = mdb(bme, "ElkGraphComponentsProcessor/lambda$4$Type", 1272); - bcb(1273, 1, Oie, kQb); - _.Mb = function lQb(a) { - return YPb(this.a, BD(a, 79)); - }; - var QO = mdb(bme, "ElkGraphComponentsProcessor/lambda$5$Type", 1273); - bcb(1274, 1, {}, mQb); - _.Kb = function nQb(a) { - return ZPb(this.a, BD(a, 79)); - }; - var RO = mdb(bme, "ElkGraphComponentsProcessor/lambda$6$Type", 1274); - bcb(1241, 1, {}, AQb); - _.a = 0; - var UO = mdb(bme, "ElkGraphTransformer", 1241); - bcb(1242, 1, {}, CQb); - _.Od = function DQb(a, b) { - BQb(this, BD(a, 160), BD(b, 266)); - }; - var TO = mdb(bme, "ElkGraphTransformer/OffsetApplier", 1242); - bcb(1243, 1, qie, FQb); - _.td = function GQb(a) { - EQb(this, BD(a, 8)); - }; - var SO = mdb(bme, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1243); - bcb(753, 1, {}, MQb); - var WO = mdb(gme, hme, 753); - bcb(1232, 1, Dke, OQb); - _.ue = function PQb(a, b) { - return NQb(BD(a, 231), BD(b, 231)); - }; - _.Fb = function QQb(a) { - return this === a; - }; - _.ve = function RQb() { - return new tpb(this); - }; - var VO = mdb(gme, ime, 1232); - bcb(740, 209, Mle, ZQb); - _.Ze = function $Qb(a, b) { - WQb(this, a, b); - }; - var XO = mdb(gme, "ForceLayoutProvider", 740); - bcb(357, 134, { 3: 1, 357: 1, 94: 1, 134: 1 }); - var bP = mdb(jme, "FParticle", 357); - bcb(559, 357, { 3: 1, 559: 1, 357: 1, 94: 1, 134: 1 }, aRb); - _.Ib = function bRb() { - var a; - if (this.a) { - a = Jkb(this.a.a, this, 0); - return a >= 0 ? "b" + a + "[" + fRb(this.a) + "]" : "b[" + fRb(this.a) + "]"; - } - return "b_" + FCb(this); - }; - var YO = mdb(jme, "FBendpoint", 559); - bcb(282, 134, { 3: 1, 282: 1, 94: 1, 134: 1 }, gRb); - _.Ib = function hRb() { - return fRb(this); - }; - var ZO = mdb(jme, "FEdge", 282); - bcb(231, 134, { 3: 1, 231: 1, 94: 1, 134: 1 }, kRb); - var $O = mdb(jme, "FGraph", 231); - bcb(447, 357, { 3: 1, 447: 1, 357: 1, 94: 1, 134: 1 }, mRb); - _.Ib = function nRb() { - return this.b == null || this.b.length == 0 ? "l[" + fRb(this.a) + "]" : "l_" + this.b; - }; - var _O = mdb(jme, "FLabel", 447); - bcb(144, 357, { 3: 1, 144: 1, 357: 1, 94: 1, 134: 1 }, pRb); - _.Ib = function qRb() { - return oRb(this); - }; - _.b = 0; - var aP = mdb(jme, "FNode", 144); - bcb(2003, 1, {}); - _.bf = function vRb(a) { - rRb(this, a); - }; - _.cf = function wRb() { - sRb(this); - }; - _.d = 0; - var cP = mdb(lme, "AbstractForceModel", 2003); - bcb(631, 2003, { 631: 1 }, xRb); - _.af = function zRb(a, b) { - var c, d, e, f, g10; - uRb(this.f, a, b); - e = c7c(R6c(b.d), a.d); - g10 = $wnd.Math.sqrt(e.a * e.a + e.b * e.b); - d = $wnd.Math.max(0, g10 - U6c(a.e) / 2 - U6c(b.e) / 2); - c = jRb(this.e, a, b); - c > 0 ? f = -yRb(d, this.c) * c : f = CRb(d, this.b) * BD(vNb(a, (wSb(), oSb)), 19).a; - Y6c(e, f / g10); - return e; - }; - _.bf = function ARb(a) { - rRb(this, a); - this.a = BD(vNb(a, (wSb(), eSb)), 19).a; - this.c = Edb(ED(vNb(a, uSb))); - this.b = Edb(ED(vNb(a, qSb))); - }; - _.df = function BRb(a) { - return a < this.a; - }; - _.a = 0; - _.b = 0; - _.c = 0; - var dP = mdb(lme, "EadesModel", 631); - bcb(632, 2003, { 632: 1 }, DRb); - _.af = function FRb(a, b) { - var c, d, e, f, g10; - uRb(this.f, a, b); - e = c7c(R6c(b.d), a.d); - g10 = $wnd.Math.sqrt(e.a * e.a + e.b * e.b); - d = $wnd.Math.max(0, g10 - U6c(a.e) / 2 - U6c(b.e) / 2); - f = JRb(d, this.a) * BD(vNb(a, (wSb(), oSb)), 19).a; - c = jRb(this.e, a, b); - c > 0 && (f -= ERb(d, this.a) * c); - Y6c(e, f * this.b / g10); - return e; - }; - _.bf = function GRb(a) { - var b, c, d, e, f, g10, h; - rRb(this, a); - this.b = Edb(ED(vNb(a, (wSb(), vSb)))); - this.c = this.b / BD(vNb(a, eSb), 19).a; - d = a.e.c.length; - f = 0; - e = 0; - for (h = new olb(a.e); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 144); - f += g10.e.a; - e += g10.e.b; - } - b = f * e; - c = Edb(ED(vNb(a, uSb))) * ple; - this.a = $wnd.Math.sqrt(b / (2 * d)) * c; - }; - _.cf = function HRb() { - sRb(this); - this.b -= this.c; - }; - _.df = function IRb(a) { - return this.b > 0; - }; - _.a = 0; - _.b = 0; - _.c = 0; - var eP = mdb(lme, "FruchtermanReingoldModel", 632); - bcb(849, 1, ale, TRb); - _.Qe = function URb(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mme), ""), "Force Model"), "Determines the model for force calculation."), MRb), (_5c(), V5c)), gP), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nme), ""), "Iterations"), "The number of iterations on the force model."), meb(300)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ome), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), meb(0)), X5c), JI), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pme), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), qme), U5c), BI), pqb(L5c)))); - o4c(a, pme, mme, RRb); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rme), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), U5c), BI), pqb(L5c)))); - o4c(a, rme, mme, ORb); - xSb((new ySb(), a)); - }; - var KRb, LRb, MRb, NRb, ORb, PRb, QRb, RRb; - var fP = mdb(sme, "ForceMetaDataProvider", 849); - bcb(424, 22, { 3: 1, 35: 1, 22: 1, 424: 1 }, YRb); - var VRb, WRb; - var gP = ndb(sme, "ForceModelStrategy", 424, CI, $Rb, ZRb); - var _Rb; - bcb(988, 1, ale, ySb); - _.Qe = function zSb(a) { - xSb(a); - }; - var bSb, cSb, dSb, eSb, fSb, gSb, hSb, iSb, jSb, kSb, lSb, mSb, nSb, oSb, pSb, qSb, rSb, sSb, tSb, uSb, vSb; - var iP = mdb(sme, "ForceOptions", 988); - bcb(989, 1, {}, ASb); - _.$e = function BSb() { - var a; - return a = new ZQb(), a; - }; - _._e = function CSb(a) { - }; - var hP = mdb(sme, "ForceOptions/ForceFactory", 989); - var DSb, ESb, FSb, GSb; - bcb(850, 1, ale, PSb); - _.Qe = function QSb(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mme), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (Bcb(), false)), (_5c(), T5c)), wI), pqb((N5c(), K5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Nme), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [I5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ome), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), KSb), V5c), oP), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Pme), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), qme), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qme), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), meb(Ohe)), X5c), JI), pqb(L5c)))); - cTb((new dTb(), a)); - }; - var ISb, JSb, KSb, LSb, MSb, NSb; - var jP = mdb(sme, "StressMetaDataProvider", 850); - bcb(992, 1, ale, dTb); - _.Qe = function eTb(a) { - cTb(a); - }; - var RSb, SSb, TSb, USb, VSb, WSb, XSb, YSb, ZSb, $Sb, _Sb, aTb; - var lP = mdb(sme, "StressOptions", 992); - bcb(993, 1, {}, fTb); - _.$e = function gTb() { - var a; - return a = new iTb(), a; - }; - _._e = function hTb(a) { - }; - var kP = mdb(sme, "StressOptions/StressFactory", 993); - bcb(1128, 209, Mle, iTb); - _.Ze = function jTb(a, b) { - var c, d, e, f, g10; - Odd(b, Sme, 1); - Ccb(DD(hkd(a, (bTb(), VSb)))) ? Ccb(DD(hkd(a, _Sb))) || $Cb((c = new _Cb((Pgd(), new bhd(a))), c)) : WQb(new ZQb(), a, Udd(b, 1)); - e = TQb(a); - d = LQb(this.a, e); - for (g10 = d.Kc(); g10.Ob(); ) { - f = BD(g10.Pb(), 231); - if (f.e.c.length <= 1) { - continue; - } - sTb(this.b, f); - qTb(this.b); - Hkb(f.d, new kTb()); - } - e = KQb(d); - SQb(e); - Qdd(b); - }; - var nP = mdb(Ume, "StressLayoutProvider", 1128); - bcb(1129, 1, qie, kTb); - _.td = function lTb(a) { - lRb(BD(a, 447)); - }; - var mP = mdb(Ume, "StressLayoutProvider/lambda$0$Type", 1129); - bcb(990, 1, {}, tTb); - _.c = 0; - _.e = 0; - _.g = 0; - var qP = mdb(Ume, "StressMajorization", 990); - bcb(379, 22, { 3: 1, 35: 1, 22: 1, 379: 1 }, zTb); - var vTb, wTb, xTb; - var oP = ndb(Ume, "StressMajorization/Dimension", 379, CI, BTb, ATb); - var CTb; - bcb(991, 1, Dke, ETb); - _.ue = function FTb(a, b) { - return uTb(this.a, BD(a, 144), BD(b, 144)); - }; - _.Fb = function GTb(a) { - return this === a; - }; - _.ve = function HTb() { - return new tpb(this); - }; - var pP = mdb(Ume, "StressMajorization/lambda$0$Type", 991); - bcb(1229, 1, {}, PTb); - var tP = mdb(Wme, "ElkLayered", 1229); - bcb(1230, 1, qie, STb); - _.td = function TTb(a) { - QTb(BD(a, 37)); - }; - var rP = mdb(Wme, "ElkLayered/lambda$0$Type", 1230); - bcb(1231, 1, qie, UTb); - _.td = function VTb(a) { - RTb(this.a, BD(a, 37)); - }; - var sP = mdb(Wme, "ElkLayered/lambda$1$Type", 1231); - bcb(1263, 1, {}, bUb); - var WTb, XTb, YTb; - var xP = mdb(Wme, "GraphConfigurator", 1263); - bcb(759, 1, qie, dUb); - _.td = function eUb(a) { - $Tb(this.a, BD(a, 10)); - }; - var uP = mdb(Wme, "GraphConfigurator/lambda$0$Type", 759); - bcb(760, 1, {}, fUb); - _.Kb = function gUb(a) { - return ZTb(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var vP = mdb(Wme, "GraphConfigurator/lambda$1$Type", 760); - bcb(761, 1, qie, hUb); - _.td = function iUb(a) { - $Tb(this.a, BD(a, 10)); - }; - var wP = mdb(Wme, "GraphConfigurator/lambda$2$Type", 761); - bcb(1127, 209, Mle, jUb); - _.Ze = function kUb(a, b) { - var c; - c = U1b(new a2b(), a); - PD(hkd(a, (Nyc(), axc))) === PD((hbd(), ebd)) ? JTb(this.a, c, b) : KTb(this.a, c, b); - z2b(new D2b(), c); - }; - var yP = mdb(Wme, "LayeredLayoutProvider", 1127); - bcb(356, 22, { 3: 1, 35: 1, 22: 1, 356: 1 }, rUb); - var lUb, mUb, nUb, oUb, pUb; - var zP = ndb(Wme, "LayeredPhases", 356, CI, tUb, sUb); - var uUb; - bcb(1651, 1, {}, CUb); - _.i = 0; - var wUb; - var CP = mdb(Xme, "ComponentsToCGraphTransformer", 1651); - var hVb; - bcb(1652, 1, {}, DUb); - _.ef = function EUb(a, b) { - return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i); - }; - _.ff = function FUb(a, b) { - return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i); - }; - var AP = mdb(Xme, "ComponentsToCGraphTransformer/1", 1652); - bcb(81, 1, { 81: 1 }); - _.i = 0; - _.k = true; - _.o = Qje; - var IP = mdb(Yme, "CNode", 81); - bcb(460, 81, { 460: 1, 81: 1 }, GUb, HUb); - _.Ib = function IUb() { - return ""; - }; - var BP = mdb(Xme, "ComponentsToCGraphTransformer/CRectNode", 460); - bcb(1623, 1, {}, VUb); - var JUb, KUb; - var FP = mdb(Xme, "OneDimensionalComponentsCompaction", 1623); - bcb(1624, 1, {}, YUb); - _.Kb = function ZUb(a) { - return WUb(BD(a, 46)); - }; - _.Fb = function $Ub(a) { - return this === a; - }; - var DP = mdb(Xme, "OneDimensionalComponentsCompaction/lambda$0$Type", 1624); - bcb(1625, 1, {}, _Ub); - _.Kb = function aVb(a) { - return XUb(BD(a, 46)); - }; - _.Fb = function bVb(a) { - return this === a; - }; - var EP = mdb(Xme, "OneDimensionalComponentsCompaction/lambda$1$Type", 1625); - bcb(1654, 1, {}, dVb); - var GP = mdb(Yme, "CGraph", 1654); - bcb(189, 1, { 189: 1 }, gVb); - _.b = 0; - _.c = 0; - _.e = 0; - _.g = true; - _.i = Qje; - var HP = mdb(Yme, "CGroup", 189); - bcb(1653, 1, {}, jVb); - _.ef = function kVb(a, b) { - return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i); - }; - _.ff = function lVb(a, b) { - return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i); - }; - var JP = mdb(Yme, Ike, 1653); - bcb(1655, 1, {}, CVb); - _.d = false; - var mVb; - var LP = mdb(Yme, Nke, 1655); - bcb(1656, 1, {}, DVb); - _.Kb = function EVb(a) { - return nVb(), Bcb(), BD(BD(a, 46).a, 81).d.e != 0 ? true : false; - }; - _.Fb = function FVb(a) { - return this === a; - }; - var KP = mdb(Yme, Oke, 1656); - bcb(823, 1, {}, IVb); - _.a = false; - _.b = false; - _.c = false; - _.d = false; - var MP = mdb(Yme, Pke, 823); - bcb(1825, 1, {}, OVb); - var RP = mdb(Zme, Qke, 1825); - var bQ = odb($me, Fke); - bcb(1826, 1, { 369: 1 }, SVb); - _.Ke = function TVb(a) { - QVb(this, BD(a, 466)); - }; - var OP = mdb(Zme, Rke, 1826); - bcb(1827, 1, Dke, VVb); - _.ue = function WVb(a, b) { - return UVb(BD(a, 81), BD(b, 81)); - }; - _.Fb = function XVb(a) { - return this === a; - }; - _.ve = function YVb() { - return new tpb(this); - }; - var NP = mdb(Zme, Ske, 1827); - bcb(466, 1, { 466: 1 }, ZVb); - _.a = false; - var PP = mdb(Zme, Tke, 466); - bcb(1828, 1, Dke, $Vb); - _.ue = function _Vb(a, b) { - return PVb(BD(a, 466), BD(b, 466)); - }; - _.Fb = function aWb(a) { - return this === a; - }; - _.ve = function bWb() { - return new tpb(this); - }; - var QP = mdb(Zme, Uke, 1828); - bcb(140, 1, { 140: 1 }, cWb, dWb); - _.Fb = function eWb(a) { - var b; - if (a == null) { - return false; - } - if (TP != rb(a)) { - return false; - } - b = BD(a, 140); - return wtb(this.c, b.c) && wtb(this.d, b.d); - }; - _.Hb = function fWb() { - return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d])); - }; - _.Ib = function gWb() { - return "(" + this.c + She + this.d + (this.a ? "cx" : "") + this.b + ")"; - }; - _.a = true; - _.c = 0; - _.d = 0; - var TP = mdb($me, "Point", 140); - bcb(405, 22, { 3: 1, 35: 1, 22: 1, 405: 1 }, oWb); - var hWb, iWb, jWb, kWb; - var SP = ndb($me, "Point/Quadrant", 405, CI, sWb, rWb); - var tWb; - bcb(1642, 1, {}, CWb); - _.b = null; - _.c = null; - _.d = null; - _.e = null; - _.f = null; - var vWb, wWb, xWb, yWb, zWb; - var aQ = mdb($me, "RectilinearConvexHull", 1642); - bcb(574, 1, { 369: 1 }, NWb); - _.Ke = function OWb(a) { - MWb(this, BD(a, 140)); - }; - _.b = 0; - var KWb; - var VP = mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler", 574); - bcb(1644, 1, Dke, QWb); - _.ue = function RWb(a, b) { - return PWb(ED(a), ED(b)); - }; - _.Fb = function SWb(a) { - return this === a; - }; - _.ve = function TWb() { - return new tpb(this); - }; - var UP = mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1644); - bcb(1643, 1, { 369: 1 }, VWb); - _.Ke = function WWb(a) { - UWb(this, BD(a, 140)); - }; - _.a = 0; - _.b = null; - _.c = null; - _.d = null; - _.e = null; - var WP = mdb($me, "RectilinearConvexHull/RectangleEventHandler", 1643); - bcb(1645, 1, Dke, XWb); - _.ue = function YWb(a, b) { - return EWb(BD(a, 140), BD(b, 140)); - }; - _.Fb = function ZWb(a) { - return this === a; - }; - _.ve = function $Wb() { - return new tpb(this); - }; - var XP = mdb($me, "RectilinearConvexHull/lambda$0$Type", 1645); - bcb(1646, 1, Dke, _Wb); - _.ue = function aXb(a, b) { - return FWb(BD(a, 140), BD(b, 140)); - }; - _.Fb = function bXb(a) { - return this === a; - }; - _.ve = function cXb() { - return new tpb(this); - }; - var YP = mdb($me, "RectilinearConvexHull/lambda$1$Type", 1646); - bcb(1647, 1, Dke, dXb); - _.ue = function eXb(a, b) { - return GWb(BD(a, 140), BD(b, 140)); - }; - _.Fb = function fXb(a) { - return this === a; - }; - _.ve = function gXb() { - return new tpb(this); - }; - var ZP = mdb($me, "RectilinearConvexHull/lambda$2$Type", 1647); - bcb(1648, 1, Dke, hXb); - _.ue = function iXb(a, b) { - return HWb(BD(a, 140), BD(b, 140)); - }; - _.Fb = function jXb(a) { - return this === a; - }; - _.ve = function kXb() { - return new tpb(this); - }; - var $P = mdb($me, "RectilinearConvexHull/lambda$3$Type", 1648); - bcb(1649, 1, Dke, lXb); - _.ue = function mXb(a, b) { - return IWb(BD(a, 140), BD(b, 140)); - }; - _.Fb = function nXb(a) { - return this === a; - }; - _.ve = function oXb() { - return new tpb(this); - }; - var _P = mdb($me, "RectilinearConvexHull/lambda$4$Type", 1649); - bcb(1650, 1, {}, qXb); - var cQ = mdb($me, "Scanline", 1650); - bcb(2005, 1, {}); - var dQ = mdb(_me, "AbstractGraphPlacer", 2005); - bcb(325, 1, { 325: 1 }, AXb); - _.mf = function BXb(a) { - if (this.nf(a)) { - Rc(this.b, BD(vNb(a, (wtc(), Esc)), 21), a); - return true; - } else { - return false; - } - }; - _.nf = function CXb(a) { - var b, c, d, e; - b = BD(vNb(a, (wtc(), Esc)), 21); - e = BD(Qc(wXb, b), 21); - for (d = e.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 21); - if (!BD(Qc(this.b, c), 15).dc()) { - return false; - } - } - return true; - }; - var wXb; - var gQ = mdb(_me, "ComponentGroup", 325); - bcb(765, 2005, {}, HXb); - _.of = function IXb(a) { - var b, c; - for (c = new olb(this.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 325); - if (b.mf(a)) { - return; - } - } - Ekb(this.a, new AXb(a)); - }; - _.lf = function JXb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10; - this.a.c = KC(SI, Uhe, 1, 0, 5, 1); - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - if (a.dc()) { - b.f.a = 0; - b.f.b = 0; - return; - } - g10 = BD(a.Xb(0), 37); - tNb(b, g10); - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 37); - this.of(d); - } - o10 = new d7c(); - f = Edb(ED(vNb(g10, (Nyc(), kyc)))); - for (j = new olb(this.a); j.a < j.c.c.length; ) { - h = BD(mlb(j), 325); - k = DXb(h, f); - vXb(Uc(h.b), o10.a, o10.b); - o10.a += k.a; - o10.b += k.b; - } - b.f.a = o10.a - f; - b.f.b = o10.b - f; - if (Ccb(DD(vNb(g10, qwc))) && PD(vNb(g10, Swc)) === PD((Aad(), wad))) { - for (n = a.Kc(); n.Ob(); ) { - l = BD(n.Pb(), 37); - uXb(l, l.c.a, l.c.b); - } - c = new gYb(); - YXb(c, a, f); - for (m = a.Kc(); m.Ob(); ) { - l = BD(m.Pb(), 37); - P6c(X6c(l.c), c.e); - } - P6c(X6c(b.f), c.a); - } - for (i10 = new olb(this.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 325); - tXb(b, Uc(h.b)); - } - }; - var eQ = mdb(_me, "ComponentGroupGraphPlacer", 765); - bcb(1293, 765, {}, LXb); - _.of = function MXb(a) { - KXb(this, a); - }; - _.lf = function NXb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t; - this.a.c = KC(SI, Uhe, 1, 0, 5, 1); - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - if (a.dc()) { - b.f.a = 0; - b.f.b = 0; - return; - } - g10 = BD(a.Xb(0), 37); - tNb(b, g10); - for (e = a.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 37); - KXb(this, d); - } - t = new d7c(); - s = new d7c(); - p = new d7c(); - o10 = new d7c(); - f = Edb(ED(vNb(g10, (Nyc(), kyc)))); - for (j = new olb(this.a); j.a < j.c.c.length; ) { - h = BD(mlb(j), 325); - if (fad(BD(vNb(b, (Y9c(), z8c)), 103))) { - p.a = t.a; - for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { - q = BD(Lv(r.b.Pb()), 21); - if (q.Hc((Ucd(), Acd))) { - p.a = s.a; - break; - } - } - } else if (gad(BD(vNb(b, z8c), 103))) { - p.b = t.b; - for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { - q = BD(Lv(r.b.Pb()), 21); - if (q.Hc((Ucd(), Tcd))) { - p.b = s.b; - break; - } - } - } - k = DXb(BD(h, 570), f); - vXb(Uc(h.b), p.a, p.b); - if (fad(BD(vNb(b, z8c), 103))) { - s.a = p.a + k.a; - o10.a = $wnd.Math.max(o10.a, s.a); - for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { - q = BD(Lv(r.b.Pb()), 21); - if (q.Hc((Ucd(), Rcd))) { - t.a = p.a + k.a; - break; - } - } - s.b = p.b + k.b; - p.b = s.b; - o10.b = $wnd.Math.max(o10.b, p.b); - } else if (gad(BD(vNb(b, z8c), 103))) { - s.b = p.b + k.b; - o10.b = $wnd.Math.max(o10.b, s.b); - for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) { - q = BD(Lv(r.b.Pb()), 21); - if (q.Hc((Ucd(), zcd))) { - t.b = p.b + k.b; - break; - } - } - s.a = p.a + k.a; - p.a = s.a; - o10.a = $wnd.Math.max(o10.a, p.a); - } - } - b.f.a = o10.a - f; - b.f.b = o10.b - f; - if (Ccb(DD(vNb(g10, qwc))) && PD(vNb(g10, Swc)) === PD((Aad(), wad))) { - for (n = a.Kc(); n.Ob(); ) { - l = BD(n.Pb(), 37); - uXb(l, l.c.a, l.c.b); - } - c = new gYb(); - YXb(c, a, f); - for (m = a.Kc(); m.Ob(); ) { - l = BD(m.Pb(), 37); - P6c(X6c(l.c), c.e); - } - P6c(X6c(b.f), c.a); - } - for (i10 = new olb(this.a); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 325); - tXb(b, Uc(h.b)); - } - }; - var fQ = mdb(_me, "ComponentGroupModelOrderGraphPlacer", 1293); - bcb(423, 22, { 3: 1, 35: 1, 22: 1, 423: 1 }, SXb); - var OXb, PXb, QXb; - var hQ = ndb(_me, "ComponentOrderingStrategy", 423, CI, UXb, TXb); - var VXb; - bcb(650, 1, {}, gYb); - var pQ = mdb(_me, "ComponentsCompactor", 650); - bcb(1468, 12, ake, jYb); - _.Fc = function kYb(a) { - return hYb(this, BD(a, 140)); - }; - var iQ = mdb(_me, "ComponentsCompactor/Hullpoints", 1468); - bcb(1465, 1, { 841: 1 }, mYb); - _.a = false; - var jQ = mdb(_me, "ComponentsCompactor/InternalComponent", 1465); - bcb(1464, 1, vie, nYb); - _.Jc = function oYb(a) { - reb(this, a); - }; - _.Kc = function pYb() { - return new olb(this.a); - }; - var kQ = mdb(_me, "ComponentsCompactor/InternalConnectedComponents", 1464); - bcb(1467, 1, { 594: 1 }, qYb); - _.hf = function sYb() { - return null; - }; - _.jf = function tYb() { - return this.a; - }; - _.gf = function rYb() { - return cYb(this.d); - }; - _.kf = function uYb() { - return this.b; - }; - var lQ = mdb(_me, "ComponentsCompactor/InternalExternalExtension", 1467); - bcb(1466, 1, { 594: 1 }, vYb); - _.jf = function yYb() { - return this.a; - }; - _.gf = function wYb() { - return cYb(this.d); - }; - _.hf = function xYb() { - return this.c; - }; - _.kf = function zYb() { - return this.b; - }; - var mQ = mdb(_me, "ComponentsCompactor/InternalUnionExternalExtension", 1466); - bcb(1470, 1, {}, AYb); - var nQ = mdb(_me, "ComponentsCompactor/OuterSegments", 1470); - bcb(1469, 1, {}, BYb); - var oQ = mdb(_me, "ComponentsCompactor/Segments", 1469); - bcb(1264, 1, {}, FYb); - var rQ = mdb(_me, hme, 1264); - bcb(1265, 1, Dke, HYb); - _.ue = function IYb(a, b) { - return GYb(BD(a, 37), BD(b, 37)); - }; - _.Fb = function JYb(a) { - return this === a; - }; - _.ve = function KYb() { - return new tpb(this); - }; - var qQ = mdb(_me, "ComponentsProcessor/lambda$0$Type", 1265); - bcb(570, 325, { 325: 1, 570: 1 }, PYb); - _.mf = function QYb(a) { - return NYb(this, a); - }; - _.nf = function RYb(a) { - return OYb(this, a); - }; - var LYb; - var sQ = mdb(_me, "ModelOrderComponentGroup", 570); - bcb(1291, 2005, {}, SYb); - _.lf = function TYb(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w; - if (a.gc() == 1) { - t = BD(a.Xb(0), 37); - if (t != b) { - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - sXb(b, t, 0, 0); - tNb(b, t); - u_b(b.d, t.d); - b.f.a = t.f.a; - b.f.b = t.f.b; - } - return; - } else if (a.dc()) { - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - b.f.a = 0; - b.f.b = 0; - return; - } - if (PD(vNb(b, (Nyc(), twc))) === PD((RXb(), QXb))) { - for (i10 = a.Kc(); i10.Ob(); ) { - g10 = BD(i10.Pb(), 37); - r = 0; - for (p = new olb(g10.a); p.a < p.c.c.length; ) { - o10 = BD(mlb(p), 10); - r += BD(vNb(o10, byc), 19).a; - } - g10.p = r; - } - mmb(); - a.ad(new VYb()); - } - f = BD(a.Xb(0), 37); - b.a.c = KC(SI, Uhe, 1, 0, 5, 1); - tNb(b, f); - n = 0; - u = 0; - for (j = a.Kc(); j.Ob(); ) { - g10 = BD(j.Pb(), 37); - s = g10.f; - n = $wnd.Math.max(n, s.a); - u += s.a * s.b; - } - n = $wnd.Math.max(n, $wnd.Math.sqrt(u) * Edb(ED(vNb(b, owc)))); - e = Edb(ED(vNb(b, kyc))); - v = 0; - w = 0; - m = 0; - c = e; - for (h = a.Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 37); - s = g10.f; - if (v + s.a > n) { - v = 0; - w += m + e; - m = 0; - } - q = g10.c; - uXb(g10, v + q.a, w + q.b); - X6c(q); - c = $wnd.Math.max(c, v + s.a); - m = $wnd.Math.max(m, s.b); - v += s.a + e; - } - b.f.a = c; - b.f.b = w + m; - if (Ccb(DD(vNb(f, qwc)))) { - d = new gYb(); - YXb(d, a, e); - for (l = a.Kc(); l.Ob(); ) { - k = BD(l.Pb(), 37); - P6c(X6c(k.c), d.e); - } - P6c(X6c(b.f), d.a); - } - tXb(b, a); - }; - var uQ = mdb(_me, "SimpleRowGraphPlacer", 1291); - bcb(1292, 1, Dke, VYb); - _.ue = function WYb(a, b) { - return UYb(BD(a, 37), BD(b, 37)); - }; - _.Fb = function XYb(a) { - return this === a; - }; - _.ve = function YYb() { - return new tpb(this); - }; - var tQ = mdb(_me, "SimpleRowGraphPlacer/1", 1292); - var ZYb; - bcb(1262, 1, Vke, dZb); - _.Lb = function eZb(a) { - var b; - return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0; - }; - _.Fb = function fZb(a) { - return this === a; - }; - _.Mb = function gZb(a) { - var b; - return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0; - }; - var vQ = mdb(dne, "CompoundGraphPostprocessor/1", 1262); - bcb(1261, 1, ene, wZb); - _.pf = function xZb(a, b) { - qZb(this, BD(a, 37), b); - }; - var xQ = mdb(dne, "CompoundGraphPreprocessor", 1261); - bcb(441, 1, { 441: 1 }, yZb); - _.c = false; - var wQ = mdb(dne, "CompoundGraphPreprocessor/ExternalPort", 441); - bcb(243, 1, { 243: 1 }, BZb); - _.Ib = function CZb() { - return Zr(this.c) + ":" + TZb(this.b); - }; - var zQ = mdb(dne, "CrossHierarchyEdge", 243); - bcb(763, 1, Dke, EZb); - _.ue = function FZb(a, b) { - return DZb(this, BD(a, 243), BD(b, 243)); - }; - _.Fb = function GZb(a) { - return this === a; - }; - _.ve = function IZb() { - return new tpb(this); - }; - var yQ = mdb(dne, "CrossHierarchyEdgeComparator", 763); - bcb(299, 134, { 3: 1, 299: 1, 94: 1, 134: 1 }); - _.p = 0; - var JQ = mdb(fne, "LGraphElement", 299); - bcb(17, 299, { 3: 1, 17: 1, 299: 1, 94: 1, 134: 1 }, UZb); - _.Ib = function VZb() { - return TZb(this); - }; - var AQ = mdb(fne, "LEdge", 17); - bcb(37, 299, { 3: 1, 20: 1, 37: 1, 299: 1, 94: 1, 134: 1 }, XZb); - _.Jc = function YZb(a) { - reb(this, a); - }; - _.Kc = function ZZb() { - return new olb(this.b); - }; - _.Ib = function $Zb() { - if (this.b.c.length == 0) { - return "G-unlayered" + Fe(this.a); - } else if (this.a.c.length == 0) { - return "G-layered" + Fe(this.b); - } - return "G[layerless" + Fe(this.a) + ", layers" + Fe(this.b) + "]"; - }; - var KQ = mdb(fne, "LGraph", 37); - var _Zb; - bcb(657, 1, {}); - _.qf = function b$b() { - return this.e.n; - }; - _.We = function c$b(a) { - return vNb(this.e, a); - }; - _.rf = function d$b() { - return this.e.o; - }; - _.sf = function e$b() { - return this.e.p; - }; - _.Xe = function f$b(a) { - return wNb(this.e, a); - }; - _.tf = function g$b(a) { - this.e.n.a = a.a; - this.e.n.b = a.b; - }; - _.uf = function h$b(a) { - this.e.o.a = a.a; - this.e.o.b = a.b; - }; - _.vf = function i$b(a) { - this.e.p = a; - }; - var BQ = mdb(fne, "LGraphAdapters/AbstractLShapeAdapter", 657); - bcb(577, 1, { 839: 1 }, j$b); - _.wf = function k$b() { - var a, b; - if (!this.b) { - this.b = Pu(this.a.b.c.length); - for (b = new olb(this.a.b); b.a < b.c.c.length; ) { - a = BD(mlb(b), 70); - Ekb(this.b, new v$b(a)); - } - } - return this.b; - }; - _.b = null; - var CQ = mdb(fne, "LGraphAdapters/LEdgeAdapter", 577); - bcb(656, 1, {}, l$b); - _.xf = function m$b() { - var a, b, c, d, e, f; - if (!this.b) { - this.b = new Rkb(); - for (d = new olb(this.a.b); d.a < d.c.c.length; ) { - c = BD(mlb(d), 29); - for (f = new olb(c.a); f.a < f.c.c.length; ) { - e = BD(mlb(f), 10); - if (this.c.Mb(e)) { - Ekb(this.b, new x$b(this, e, this.e)); - if (this.d) { - if (wNb(e, (wtc(), vtc))) { - for (b = BD(vNb(e, vtc), 15).Kc(); b.Ob(); ) { - a = BD(b.Pb(), 10); - Ekb(this.b, new x$b(this, a, false)); - } - } - if (wNb(e, tsc)) { - for (b = BD(vNb(e, tsc), 15).Kc(); b.Ob(); ) { - a = BD(b.Pb(), 10); - Ekb(this.b, new x$b(this, a, false)); - } - } - } - } - } - } - } - return this.b; - }; - _.qf = function n$b() { - throw vbb(new cgb(hne)); - }; - _.We = function o$b(a) { - return vNb(this.a, a); - }; - _.rf = function p$b() { - return this.a.f; - }; - _.sf = function q$b() { - return this.a.p; - }; - _.Xe = function r$b(a) { - return wNb(this.a, a); - }; - _.tf = function s$b(a) { - throw vbb(new cgb(hne)); - }; - _.uf = function t$b(a) { - this.a.f.a = a.a; - this.a.f.b = a.b; - }; - _.vf = function u$b(a) { - this.a.p = a; - }; - _.b = null; - _.d = false; - _.e = false; - var DQ = mdb(fne, "LGraphAdapters/LGraphAdapter", 656); - bcb(576, 657, { 181: 1 }, v$b); - var EQ = mdb(fne, "LGraphAdapters/LLabelAdapter", 576); - bcb(575, 657, { 680: 1 }, x$b); - _.yf = function y$b() { - return this.b; - }; - _.zf = function z$b() { - return mmb(), mmb(), jmb; - }; - _.wf = function A$b() { - var a, b; - if (!this.a) { - this.a = Pu(BD(this.e, 10).b.c.length); - for (b = new olb(BD(this.e, 10).b); b.a < b.c.c.length; ) { - a = BD(mlb(b), 70); - Ekb(this.a, new v$b(a)); - } - } - return this.a; - }; - _.Af = function B$b() { - var a; - a = BD(this.e, 10).d; - return new J_b(a.d, a.c, a.a, a.b); - }; - _.Bf = function C$b() { - return mmb(), mmb(), jmb; - }; - _.Cf = function D$b() { - var a, b; - if (!this.c) { - this.c = Pu(BD(this.e, 10).j.c.length); - for (b = new olb(BD(this.e, 10).j); b.a < b.c.c.length; ) { - a = BD(mlb(b), 11); - Ekb(this.c, new I$b(a, this.d)); - } - } - return this.c; - }; - _.Df = function E$b() { - return Ccb(DD(vNb(BD(this.e, 10), (wtc(), wsc)))); - }; - _.Ef = function F$b(a) { - BD(this.e, 10).d.b = a.b; - BD(this.e, 10).d.d = a.d; - BD(this.e, 10).d.c = a.c; - BD(this.e, 10).d.a = a.a; - }; - _.Ff = function G$b(a) { - BD(this.e, 10).f.b = a.b; - BD(this.e, 10).f.d = a.d; - BD(this.e, 10).f.c = a.c; - BD(this.e, 10).f.a = a.a; - }; - _.Gf = function H$b() { - w$b(this, (a$b(), _Zb)); - }; - _.a = null; - _.b = null; - _.c = null; - _.d = false; - var FQ = mdb(fne, "LGraphAdapters/LNodeAdapter", 575); - bcb(1722, 657, { 838: 1 }, I$b); - _.zf = function J$b() { - var a, b, c, d; - if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) { - return mmb(), mmb(), jmb; - } else if (!this.a) { - this.a = new Rkb(); - for (c = new olb(BD(this.e, 11).e); c.a < c.c.c.length; ) { - a = BD(mlb(c), 17); - Ekb(this.a, new j$b(a)); - } - if (this.d) { - d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10); - if (d) { - for (b = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(b); ) { - a = BD(Rr(b), 17); - Ekb(this.a, new j$b(a)); - } - } - } - } - return this.a; - }; - _.wf = function K$b() { - var a, b; - if (!this.b) { - this.b = Pu(BD(this.e, 11).f.c.length); - for (b = new olb(BD(this.e, 11).f); b.a < b.c.c.length; ) { - a = BD(mlb(b), 70); - Ekb(this.b, new v$b(a)); - } - } - return this.b; - }; - _.Bf = function L$b() { - var a, b, c, d; - if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) { - return mmb(), mmb(), jmb; - } else if (!this.c) { - this.c = new Rkb(); - for (c = new olb(BD(this.e, 11).g); c.a < c.c.c.length; ) { - a = BD(mlb(c), 17); - Ekb(this.c, new j$b(a)); - } - if (this.d) { - d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10); - if (d) { - for (b = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(b); ) { - a = BD(Rr(b), 17); - Ekb(this.c, new j$b(a)); - } - } - } - } - return this.c; - }; - _.Hf = function M$b() { - return BD(this.e, 11).j; - }; - _.If = function N$b() { - return Ccb(DD(vNb(BD(this.e, 11), (wtc(), Nsc)))); - }; - _.a = null; - _.b = null; - _.c = null; - _.d = false; - var GQ = mdb(fne, "LGraphAdapters/LPortAdapter", 1722); - bcb(1723, 1, Dke, P$b); - _.ue = function Q$b(a, b) { - return O$b(BD(a, 11), BD(b, 11)); - }; - _.Fb = function R$b(a) { - return this === a; - }; - _.ve = function S$b() { - return new tpb(this); - }; - var HQ = mdb(fne, "LGraphAdapters/PortComparator", 1723); - bcb(804, 1, Oie, T$b); - _.Mb = function U$b(a) { - return BD(a, 10), a$b(), true; - }; - var IQ = mdb(fne, "LGraphAdapters/lambda$0$Type", 804); - bcb(392, 299, { 3: 1, 299: 1, 392: 1, 94: 1, 134: 1 }); - var bR = mdb(fne, "LShape", 392); - bcb(70, 392, { 3: 1, 299: 1, 70: 1, 392: 1, 94: 1, 134: 1 }, p_b, q_b); - _.Ib = function r_b() { - var a; - a = o_b(this); - return a == null ? "label" : "l_" + a; - }; - var LQ = mdb(fne, "LLabel", 70); - bcb(207, 1, { 3: 1, 4: 1, 207: 1, 414: 1 }); - _.Fb = function C_b(a) { - var b; - if (JD(a, 207)) { - b = BD(a, 207); - return this.d == b.d && this.a == b.a && this.b == b.b && this.c == b.c; - } else { - return false; - } - }; - _.Hb = function D_b() { - var a, b; - a = Hdb(this.b) << 16; - a |= Hdb(this.a) & aje; - b = Hdb(this.c) << 16; - b |= Hdb(this.d) & aje; - return a ^ b; - }; - _.Jf = function F_b(b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - g10 = 0; - while (g10 < b.length && E_b((BCb(g10, b.length), b.charCodeAt(g10)), mne)) { - ++g10; - } - c = b.length; - while (c > 0 && E_b((BCb(c - 1, b.length), b.charCodeAt(c - 1)), nne)) { - --c; - } - if (g10 < c) { - l = mfb(b.substr(g10, c - g10), ",|;"); - try { - for (i10 = l, j = 0, k = i10.length; j < k; ++j) { - h = i10[j]; - f = mfb(h, "="); - if (f.length != 2) { - throw vbb(new Wdb("Expecting a list of key-value pairs.")); - } - e = ufb(f[0]); - m = Hcb(ufb(f[1])); - dfb(e, "top") ? this.d = m : dfb(e, "left") ? this.b = m : dfb(e, "bottom") ? this.a = m : dfb(e, "right") && (this.c = m); - } - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - d = a; - throw vbb(new Wdb(one + d)); - } else - throw vbb(a); - } - } - }; - _.Ib = function G_b() { - return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]"; - }; - _.a = 0; - _.b = 0; - _.c = 0; - _.d = 0; - var n1 = mdb(pne, "Spacing", 207); - bcb(142, 207, qne, H_b, I_b, J_b, K_b); - var i1 = mdb(pne, "ElkMargin", 142); - bcb(651, 142, qne, L_b); - var MQ = mdb(fne, "LMargin", 651); - bcb(10, 392, { 3: 1, 299: 1, 10: 1, 392: 1, 94: 1, 134: 1 }, b0b); - _.Ib = function c0b() { - return a0b(this); - }; - _.i = false; - var OQ = mdb(fne, "LNode", 10); - bcb(267, 22, { 3: 1, 35: 1, 22: 1, 267: 1 }, k0b); - var d0b, e0b, f0b, g0b, h0b, i0b; - var NQ = ndb(fne, "LNode/NodeType", 267, CI, m0b, l0b); - var n0b; - bcb(116, 207, rne, p0b, q0b, r0b); - var j1 = mdb(pne, "ElkPadding", 116); - bcb(764, 116, rne, s0b); - var PQ = mdb(fne, "LPadding", 764); - bcb(11, 392, { 3: 1, 299: 1, 11: 1, 392: 1, 94: 1, 134: 1 }, H0b); - _.Ib = function I0b() { - var a, b, c; - a = new Ufb(); - Qfb((a.a += "p_", a), C0b(this)); - !!this.i && Qfb(Pfb((a.a += "[", a), this.i), "]"); - if (this.e.c.length == 1 && this.g.c.length == 0 && BD(Ikb(this.e, 0), 17).c != this) { - b = BD(Ikb(this.e, 0), 17).c; - Qfb((a.a += " << ", a), C0b(b)); - Qfb(Pfb((a.a += "[", a), b.i), "]"); - } - if (this.e.c.length == 0 && this.g.c.length == 1 && BD(Ikb(this.g, 0), 17).d != this) { - c = BD(Ikb(this.g, 0), 17).d; - Qfb((a.a += " >> ", a), C0b(c)); - Qfb(Pfb((a.a += "[", a), c.i), "]"); - } - return a.a; - }; - _.c = true; - _.d = false; - var t0b, u0b, v0b, w0b, x0b, y0b; - var aR = mdb(fne, "LPort", 11); - bcb(397, 1, vie, J0b); - _.Jc = function K0b(a) { - reb(this, a); - }; - _.Kc = function L0b() { - var a; - a = new olb(this.a.e); - return new M0b(a); - }; - var RQ = mdb(fne, "LPort/1", 397); - bcb(1290, 1, aie, M0b); - _.Nb = function N0b(a) { - Rrb(this, a); - }; - _.Pb = function P0b() { - return BD(mlb(this.a), 17).c; - }; - _.Ob = function O0b() { - return llb(this.a); - }; - _.Qb = function Q0b() { - nlb(this.a); - }; - var QQ = mdb(fne, "LPort/1/1", 1290); - bcb(359, 1, vie, R0b); - _.Jc = function S0b(a) { - reb(this, a); - }; - _.Kc = function T0b() { - var a; - return a = new olb(this.a.g), new U0b(a); - }; - var TQ = mdb(fne, "LPort/2", 359); - bcb(762, 1, aie, U0b); - _.Nb = function V0b(a) { - Rrb(this, a); - }; - _.Pb = function X0b() { - return BD(mlb(this.a), 17).d; - }; - _.Ob = function W0b() { - return llb(this.a); - }; - _.Qb = function Y0b() { - nlb(this.a); - }; - var SQ = mdb(fne, "LPort/2/1", 762); - bcb(1283, 1, vie, Z0b); - _.Jc = function $0b(a) { - reb(this, a); - }; - _.Kc = function _0b() { - return new b1b(this); - }; - var VQ = mdb(fne, "LPort/CombineIter", 1283); - bcb(201, 1, aie, b1b); - _.Nb = function c1b(a) { - Rrb(this, a); - }; - _.Qb = function f1b() { - Srb(); - }; - _.Ob = function d1b() { - return a1b(this); - }; - _.Pb = function e1b() { - return llb(this.a) ? mlb(this.a) : mlb(this.b); - }; - var UQ = mdb(fne, "LPort/CombineIter/1", 201); - bcb(1285, 1, Vke, h1b); - _.Lb = function i1b(a) { - return g1b(a); - }; - _.Fb = function j1b(a) { - return this === a; - }; - _.Mb = function k1b(a) { - return z0b(), BD(a, 11).e.c.length != 0; - }; - var WQ = mdb(fne, "LPort/lambda$0$Type", 1285); - bcb(1284, 1, Vke, m1b); - _.Lb = function n1b(a) { - return l1b(a); - }; - _.Fb = function o1b(a) { - return this === a; - }; - _.Mb = function p1b(a) { - return z0b(), BD(a, 11).g.c.length != 0; - }; - var XQ = mdb(fne, "LPort/lambda$1$Type", 1284); - bcb(1286, 1, Vke, q1b); - _.Lb = function r1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), Acd); - }; - _.Fb = function s1b(a) { - return this === a; - }; - _.Mb = function t1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), Acd); - }; - var YQ = mdb(fne, "LPort/lambda$2$Type", 1286); - bcb(1287, 1, Vke, u1b); - _.Lb = function v1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), zcd); - }; - _.Fb = function w1b(a) { - return this === a; - }; - _.Mb = function x1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), zcd); - }; - var ZQ = mdb(fne, "LPort/lambda$3$Type", 1287); - bcb(1288, 1, Vke, y1b); - _.Lb = function z1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), Rcd); - }; - _.Fb = function A1b(a) { - return this === a; - }; - _.Mb = function B1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), Rcd); - }; - var $Q = mdb(fne, "LPort/lambda$4$Type", 1288); - bcb(1289, 1, Vke, C1b); - _.Lb = function D1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), Tcd); - }; - _.Fb = function E1b(a) { - return this === a; - }; - _.Mb = function F1b(a) { - return z0b(), BD(a, 11).j == (Ucd(), Tcd); - }; - var _Q = mdb(fne, "LPort/lambda$5$Type", 1289); - bcb(29, 299, { 3: 1, 20: 1, 299: 1, 29: 1, 94: 1, 134: 1 }, H1b); - _.Jc = function I1b(a) { - reb(this, a); - }; - _.Kc = function J1b() { - return new olb(this.a); - }; - _.Ib = function K1b() { - return "L_" + Jkb(this.b.b, this, 0) + Fe(this.a); - }; - var cR = mdb(fne, "Layer", 29); - bcb(1342, 1, {}, a2b); - var mR = mdb(tne, une, 1342); - bcb(1346, 1, {}, e2b); - _.Kb = function f2b(a) { - return atd(BD(a, 82)); - }; - var dR = mdb(tne, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1346); - bcb(1349, 1, {}, g2b); - _.Kb = function h2b(a) { - return atd(BD(a, 82)); - }; - var eR = mdb(tne, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1349); - bcb(1343, 1, qie, i2b); - _.td = function j2b(a) { - Q1b(this.a, BD(a, 118)); - }; - var fR = mdb(tne, vne, 1343); - bcb(1344, 1, qie, k2b); - _.td = function l2b(a) { - Q1b(this.a, BD(a, 118)); - }; - var gR = mdb(tne, wne, 1344); - bcb(1345, 1, {}, m2b); - _.Kb = function n2b(a) { - return new YAb(null, new Kub(Old(BD(a, 79)), 16)); - }; - var hR = mdb(tne, xne, 1345); - bcb(1347, 1, Oie, o2b); - _.Mb = function p2b(a) { - return b2b(this.a, BD(a, 33)); - }; - var iR = mdb(tne, yne, 1347); - bcb(1348, 1, {}, q2b); - _.Kb = function r2b(a) { - return new YAb(null, new Kub(Nld(BD(a, 79)), 16)); - }; - var jR = mdb(tne, "ElkGraphImporter/lambda$5$Type", 1348); - bcb(1350, 1, Oie, s2b); - _.Mb = function t2b(a) { - return c2b(this.a, BD(a, 33)); - }; - var kR = mdb(tne, "ElkGraphImporter/lambda$7$Type", 1350); - bcb(1351, 1, Oie, u2b); - _.Mb = function v2b(a) { - return d2b(BD(a, 79)); - }; - var lR = mdb(tne, "ElkGraphImporter/lambda$8$Type", 1351); - bcb(1278, 1, {}, D2b); - var w2b; - var rR = mdb(tne, "ElkGraphLayoutTransferrer", 1278); - bcb(1279, 1, Oie, G2b); - _.Mb = function H2b(a) { - return E2b(this.a, BD(a, 17)); - }; - var nR = mdb(tne, "ElkGraphLayoutTransferrer/lambda$0$Type", 1279); - bcb(1280, 1, qie, I2b); - _.td = function J2b(a) { - x2b(); - Ekb(this.a, BD(a, 17)); - }; - var oR = mdb(tne, "ElkGraphLayoutTransferrer/lambda$1$Type", 1280); - bcb(1281, 1, Oie, K2b); - _.Mb = function L2b(a) { - return F2b(this.a, BD(a, 17)); - }; - var pR = mdb(tne, "ElkGraphLayoutTransferrer/lambda$2$Type", 1281); - bcb(1282, 1, qie, M2b); - _.td = function N2b(a) { - x2b(); - Ekb(this.a, BD(a, 17)); - }; - var qR = mdb(tne, "ElkGraphLayoutTransferrer/lambda$3$Type", 1282); - bcb(1485, 1, ene, S2b); - _.pf = function T2b(a, b) { - Q2b(BD(a, 37), b); - }; - var uR = mdb(Ane, "CommentNodeMarginCalculator", 1485); - bcb(1486, 1, {}, U2b); - _.Kb = function V2b(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var sR = mdb(Ane, "CommentNodeMarginCalculator/lambda$0$Type", 1486); - bcb(1487, 1, qie, W2b); - _.td = function X2b(a) { - R2b(BD(a, 10)); - }; - var tR = mdb(Ane, "CommentNodeMarginCalculator/lambda$1$Type", 1487); - bcb(1488, 1, ene, _2b); - _.pf = function a3b(a, b) { - Z2b(BD(a, 37), b); - }; - var vR = mdb(Ane, "CommentPostprocessor", 1488); - bcb(1489, 1, ene, e3b); - _.pf = function f3b(a, b) { - b3b(BD(a, 37), b); - }; - var wR = mdb(Ane, "CommentPreprocessor", 1489); - bcb(1490, 1, ene, h3b); - _.pf = function i3b(a, b) { - g3b(BD(a, 37), b); - }; - var xR = mdb(Ane, "ConstraintsPostprocessor", 1490); - bcb(1491, 1, ene, p3b); - _.pf = function q3b(a, b) { - n3b(BD(a, 37), b); - }; - var yR = mdb(Ane, "EdgeAndLayerConstraintEdgeReverser", 1491); - bcb(1492, 1, ene, t3b); - _.pf = function v3b(a, b) { - r3b(BD(a, 37), b); - }; - var CR = mdb(Ane, "EndLabelPostprocessor", 1492); - bcb(1493, 1, {}, w3b); - _.Kb = function x3b(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var zR = mdb(Ane, "EndLabelPostprocessor/lambda$0$Type", 1493); - bcb(1494, 1, Oie, y3b); - _.Mb = function z3b(a) { - return u3b(BD(a, 10)); - }; - var AR = mdb(Ane, "EndLabelPostprocessor/lambda$1$Type", 1494); - bcb(1495, 1, qie, A3b); - _.td = function B3b(a) { - s3b(BD(a, 10)); - }; - var BR = mdb(Ane, "EndLabelPostprocessor/lambda$2$Type", 1495); - bcb(1496, 1, ene, M3b); - _.pf = function P3b(a, b) { - I3b(BD(a, 37), b); - }; - var JR = mdb(Ane, "EndLabelPreprocessor", 1496); - bcb(1497, 1, {}, Q3b); - _.Kb = function R3b(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var DR = mdb(Ane, "EndLabelPreprocessor/lambda$0$Type", 1497); - bcb(1498, 1, qie, S3b); - _.td = function T3b(a) { - E3b(this.a, this.b, this.c, BD(a, 10)); - }; - _.a = 0; - _.b = 0; - _.c = false; - var ER = mdb(Ane, "EndLabelPreprocessor/lambda$1$Type", 1498); - bcb(1499, 1, Oie, U3b); - _.Mb = function V3b(a) { - return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad)); - }; - var FR = mdb(Ane, "EndLabelPreprocessor/lambda$2$Type", 1499); - bcb(1500, 1, qie, W3b); - _.td = function X3b(a) { - Dsb(this.a, BD(a, 70)); - }; - var GR = mdb(Ane, "EndLabelPreprocessor/lambda$3$Type", 1500); - bcb(1501, 1, Oie, Y3b); - _.Mb = function Z3b(a) { - return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad)); - }; - var HR = mdb(Ane, "EndLabelPreprocessor/lambda$4$Type", 1501); - bcb(1502, 1, qie, $3b); - _.td = function _3b(a) { - Dsb(this.a, BD(a, 70)); - }; - var IR = mdb(Ane, "EndLabelPreprocessor/lambda$5$Type", 1502); - bcb(1551, 1, ene, i4b); - _.pf = function j4b(a, b) { - f4b(BD(a, 37), b); - }; - var a4b; - var RR = mdb(Ane, "EndLabelSorter", 1551); - bcb(1552, 1, Dke, l4b); - _.ue = function m4b(a, b) { - return k4b(BD(a, 456), BD(b, 456)); - }; - _.Fb = function n4b(a) { - return this === a; - }; - _.ve = function o4b() { - return new tpb(this); - }; - var KR = mdb(Ane, "EndLabelSorter/1", 1552); - bcb(456, 1, { 456: 1 }, p4b); - var LR = mdb(Ane, "EndLabelSorter/LabelGroup", 456); - bcb(1553, 1, {}, q4b); - _.Kb = function r4b(a) { - return b4b(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var MR = mdb(Ane, "EndLabelSorter/lambda$0$Type", 1553); - bcb(1554, 1, Oie, s4b); - _.Mb = function t4b(a) { - return b4b(), BD(a, 10).k == (j0b(), h0b); - }; - var NR = mdb(Ane, "EndLabelSorter/lambda$1$Type", 1554); - bcb(1555, 1, qie, u4b); - _.td = function v4b(a) { - g4b(BD(a, 10)); - }; - var OR = mdb(Ane, "EndLabelSorter/lambda$2$Type", 1555); - bcb(1556, 1, Oie, w4b); - _.Mb = function x4b(a) { - return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad)); - }; - var PR = mdb(Ane, "EndLabelSorter/lambda$3$Type", 1556); - bcb(1557, 1, Oie, y4b); - _.Mb = function z4b(a) { - return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad)); - }; - var QR = mdb(Ane, "EndLabelSorter/lambda$4$Type", 1557); - bcb(1503, 1, ene, L4b); - _.pf = function M4b(a, b) { - J4b(this, BD(a, 37)); - }; - _.b = 0; - _.c = 0; - var YR = mdb(Ane, "FinalSplineBendpointsCalculator", 1503); - bcb(1504, 1, {}, N4b); - _.Kb = function O4b(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var SR = mdb(Ane, "FinalSplineBendpointsCalculator/lambda$0$Type", 1504); - bcb(1505, 1, {}, P4b); - _.Kb = function Q4b(a) { - return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var TR = mdb(Ane, "FinalSplineBendpointsCalculator/lambda$1$Type", 1505); - bcb(1506, 1, Oie, R4b); - _.Mb = function S4b(a) { - return !OZb(BD(a, 17)); - }; - var UR = mdb(Ane, "FinalSplineBendpointsCalculator/lambda$2$Type", 1506); - bcb(1507, 1, Oie, T4b); - _.Mb = function U4b(a) { - return wNb(BD(a, 17), (wtc(), rtc)); - }; - var VR = mdb(Ane, "FinalSplineBendpointsCalculator/lambda$3$Type", 1507); - bcb(1508, 1, qie, V4b); - _.td = function W4b(a) { - C4b(this.a, BD(a, 128)); - }; - var WR = mdb(Ane, "FinalSplineBendpointsCalculator/lambda$4$Type", 1508); - bcb(1509, 1, qie, X4b); - _.td = function Y4b(a) { - smb(BD(a, 17).a); - }; - var XR = mdb(Ane, "FinalSplineBendpointsCalculator/lambda$5$Type", 1509); - bcb(792, 1, ene, u5b); - _.pf = function v5b(a, b) { - l5b(this, BD(a, 37), b); - }; - var $R = mdb(Ane, "GraphTransformer", 792); - bcb(511, 22, { 3: 1, 35: 1, 22: 1, 511: 1 }, z5b); - var w5b, x5b; - var ZR = ndb(Ane, "GraphTransformer/Mode", 511, CI, B5b, A5b); - var C5b; - bcb(1510, 1, ene, I5b); - _.pf = function J5b(a, b) { - F5b(BD(a, 37), b); - }; - var _R = mdb(Ane, "HierarchicalNodeResizingProcessor", 1510); - bcb(1511, 1, ene, Q5b); - _.pf = function R5b(a, b) { - M5b(BD(a, 37), b); - }; - var bS = mdb(Ane, "HierarchicalPortConstraintProcessor", 1511); - bcb(1512, 1, Dke, T5b); - _.ue = function U5b(a, b) { - return S5b(BD(a, 10), BD(b, 10)); - }; - _.Fb = function V5b(a) { - return this === a; - }; - _.ve = function W5b() { - return new tpb(this); - }; - var aS = mdb(Ane, "HierarchicalPortConstraintProcessor/NodeComparator", 1512); - bcb(1513, 1, ene, Z5b); - _.pf = function $5b(a, b) { - X5b(BD(a, 37), b); - }; - var cS = mdb(Ane, "HierarchicalPortDummySizeProcessor", 1513); - bcb(1514, 1, ene, l6b); - _.pf = function m6b(a, b) { - e6b(this, BD(a, 37), b); - }; - _.a = 0; - var fS = mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter", 1514); - bcb(1515, 1, Dke, o6b); - _.ue = function p6b(a, b) { - return n6b(BD(a, 10), BD(b, 10)); - }; - _.Fb = function q6b(a) { - return this === a; - }; - _.ve = function r6b() { - return new tpb(this); - }; - var dS = mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/1", 1515); - bcb(1516, 1, Dke, t6b); - _.ue = function u6b(a, b) { - return s6b(BD(a, 10), BD(b, 10)); - }; - _.Fb = function v6b(a) { - return this === a; - }; - _.ve = function w6b() { - return new tpb(this); - }; - var eS = mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/2", 1516); - bcb(1517, 1, ene, z6b); - _.pf = function A6b(a, b) { - y6b(BD(a, 37), b); - }; - var gS = mdb(Ane, "HierarchicalPortPositionProcessor", 1517); - bcb(1518, 1, ene, J6b); - _.pf = function K6b(a, b) { - I6b(this, BD(a, 37)); - }; - _.a = 0; - _.c = 0; - var B6b, C6b; - var kS = mdb(Ane, "HighDegreeNodeLayeringProcessor", 1518); - bcb(571, 1, { 571: 1 }, L6b); - _.b = -1; - _.d = -1; - var hS = mdb(Ane, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 571); - bcb(1519, 1, {}, M6b); - _.Kb = function N6b(a) { - return D6b(), R_b(BD(a, 10)); - }; - _.Fb = function O6b(a) { - return this === a; - }; - var iS = mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1519); - bcb(1520, 1, {}, P6b); - _.Kb = function Q6b(a) { - return D6b(), U_b(BD(a, 10)); - }; - _.Fb = function R6b(a) { - return this === a; - }; - var jS = mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1520); - bcb(1526, 1, ene, X6b); - _.pf = function Y6b(a, b) { - W6b(this, BD(a, 37), b); - }; - var pS = mdb(Ane, "HyperedgeDummyMerger", 1526); - bcb(793, 1, {}, Z6b); - _.a = false; - _.b = false; - _.c = false; - var lS = mdb(Ane, "HyperedgeDummyMerger/MergeState", 793); - bcb(1527, 1, {}, $6b); - _.Kb = function _6b(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var mS = mdb(Ane, "HyperedgeDummyMerger/lambda$0$Type", 1527); - bcb(1528, 1, {}, a7b); - _.Kb = function b7b(a) { - return new YAb(null, new Kub(BD(a, 10).j, 16)); - }; - var nS = mdb(Ane, "HyperedgeDummyMerger/lambda$1$Type", 1528); - bcb(1529, 1, qie, c7b); - _.td = function d7b(a) { - BD(a, 11).p = -1; - }; - var oS = mdb(Ane, "HyperedgeDummyMerger/lambda$2$Type", 1529); - bcb(1530, 1, ene, g7b); - _.pf = function h7b(a, b) { - f7b(BD(a, 37), b); - }; - var qS = mdb(Ane, "HypernodesProcessor", 1530); - bcb(1531, 1, ene, j7b); - _.pf = function k7b(a, b) { - i7b(BD(a, 37), b); - }; - var rS = mdb(Ane, "InLayerConstraintProcessor", 1531); - bcb(1532, 1, ene, m7b); - _.pf = function n7b(a, b) { - l7b(BD(a, 37), b); - }; - var sS = mdb(Ane, "InnermostNodeMarginCalculator", 1532); - bcb(1533, 1, ene, r7b); - _.pf = function w7b(a, b) { - q7b(this, BD(a, 37)); - }; - _.a = Qje; - _.b = Qje; - _.c = Pje; - _.d = Pje; - var zS = mdb(Ane, "InteractiveExternalPortPositioner", 1533); - bcb(1534, 1, {}, x7b); - _.Kb = function y7b(a) { - return BD(a, 17).d.i; - }; - _.Fb = function z7b(a) { - return this === a; - }; - var tS = mdb(Ane, "InteractiveExternalPortPositioner/lambda$0$Type", 1534); - bcb(1535, 1, {}, A7b); - _.Kb = function B7b(a) { - return s7b(this.a, ED(a)); - }; - _.Fb = function C7b(a) { - return this === a; - }; - var uS = mdb(Ane, "InteractiveExternalPortPositioner/lambda$1$Type", 1535); - bcb(1536, 1, {}, D7b); - _.Kb = function E7b(a) { - return BD(a, 17).c.i; - }; - _.Fb = function F7b(a) { - return this === a; - }; - var vS = mdb(Ane, "InteractiveExternalPortPositioner/lambda$2$Type", 1536); - bcb(1537, 1, {}, G7b); - _.Kb = function H7b(a) { - return t7b(this.a, ED(a)); - }; - _.Fb = function I7b(a) { - return this === a; - }; - var wS = mdb(Ane, "InteractiveExternalPortPositioner/lambda$3$Type", 1537); - bcb(1538, 1, {}, J7b); - _.Kb = function K7b(a) { - return u7b(this.a, ED(a)); - }; - _.Fb = function L7b(a) { - return this === a; - }; - var xS = mdb(Ane, "InteractiveExternalPortPositioner/lambda$4$Type", 1538); - bcb(1539, 1, {}, M7b); - _.Kb = function N7b(a) { - return v7b(this.a, ED(a)); - }; - _.Fb = function O7b(a) { - return this === a; - }; - var yS = mdb(Ane, "InteractiveExternalPortPositioner/lambda$5$Type", 1539); - bcb(77, 22, { 3: 1, 35: 1, 22: 1, 77: 1, 234: 1 }, T8b); - _.Kf = function U8b() { - switch (this.g) { - case 15: - return new eoc(); - case 22: - return new Aoc(); - case 47: - return new Joc(); - case 28: - case 35: - return new uac(); - case 32: - return new S2b(); - case 42: - return new _2b(); - case 1: - return new e3b(); - case 41: - return new h3b(); - case 56: - return new u5b((y5b(), x5b)); - case 0: - return new u5b((y5b(), w5b)); - case 2: - return new p3b(); - case 54: - return new t3b(); - case 33: - return new M3b(); - case 51: - return new L4b(); - case 55: - return new I5b(); - case 13: - return new Q5b(); - case 38: - return new Z5b(); - case 44: - return new l6b(); - case 40: - return new z6b(); - case 9: - return new J6b(); - case 49: - return new sgc(); - case 37: - return new X6b(); - case 43: - return new g7b(); - case 27: - return new j7b(); - case 30: - return new m7b(); - case 3: - return new r7b(); - case 18: - return new b9b(); - case 29: - return new h9b(); - case 5: - return new u9b(); - case 50: - return new D9b(); - case 34: - return new $9b(); - case 36: - return new Iac(); - case 52: - return new i4b(); - case 11: - return new Sac(); - case 7: - return new abc(); - case 39: - return new obc(); - case 45: - return new rbc(); - case 16: - return new vbc(); - case 10: - return new Fbc(); - case 48: - return new Xbc(); - case 21: - return new ccc(); - case 23: - return new fGc((rGc(), pGc)); - case 8: - return new lcc(); - case 12: - return new tcc(); - case 4: - return new ycc(); - case 19: - return new Tcc(); - case 17: - return new pdc(); - case 53: - return new sdc(); - case 6: - return new hec(); - case 25: - return new wdc(); - case 46: - return new Ndc(); - case 31: - return new sec(); - case 14: - return new Fec(); - case 26: - return new ppc(); - case 20: - return new Uec(); - case 24: - return new fGc((rGc(), qGc)); - default: - throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g))); - } - }; - var P7b, Q7b, R7b, S7b, T7b, U7b, V7b, W7b, X7b, Y7b, Z7b, $7b, _7b, a8b, b8b, c8b, d8b, e8b, f8b, g8b, h8b, i8b, j8b, k8b, l8b, m8b, n8b, o8b, p8b, q8b, r8b, s8b, t8b, u8b, v8b, w8b, x8b, y8b, z8b, A8b, B8b, C8b, D8b, E8b, F8b, G8b, H8b, I8b, J8b, K8b, L8b, M8b, N8b, O8b, P8b, Q8b, R8b; - var AS = ndb(Ane, Ene, 77, CI, W8b, V8b); - var X8b; - bcb(1540, 1, ene, b9b); - _.pf = function c9b(a, b) { - _8b(BD(a, 37), b); - }; - var BS = mdb(Ane, "InvertedPortProcessor", 1540); - bcb(1541, 1, ene, h9b); - _.pf = function i9b(a, b) { - g9b(BD(a, 37), b); - }; - var FS = mdb(Ane, "LabelAndNodeSizeProcessor", 1541); - bcb(1542, 1, Oie, j9b); - _.Mb = function k9b(a) { - return BD(a, 10).k == (j0b(), h0b); - }; - var CS = mdb(Ane, "LabelAndNodeSizeProcessor/lambda$0$Type", 1542); - bcb(1543, 1, Oie, l9b); - _.Mb = function m9b(a) { - return BD(a, 10).k == (j0b(), e0b); - }; - var DS = mdb(Ane, "LabelAndNodeSizeProcessor/lambda$1$Type", 1543); - bcb(1544, 1, qie, n9b); - _.td = function o9b(a) { - e9b(this.b, this.a, this.c, BD(a, 10)); - }; - _.a = false; - _.c = false; - var ES = mdb(Ane, "LabelAndNodeSizeProcessor/lambda$2$Type", 1544); - bcb(1545, 1, ene, u9b); - _.pf = function v9b(a, b) { - s9b(BD(a, 37), b); - }; - var p9b; - var HS = mdb(Ane, "LabelDummyInserter", 1545); - bcb(1546, 1, Vke, w9b); - _.Lb = function x9b(a) { - return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad)); - }; - _.Fb = function y9b(a) { - return this === a; - }; - _.Mb = function z9b(a) { - return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad)); - }; - var GS = mdb(Ane, "LabelDummyInserter/1", 1546); - bcb(1547, 1, ene, D9b); - _.pf = function E9b(a, b) { - C9b(BD(a, 37), b); - }; - var JS = mdb(Ane, "LabelDummyRemover", 1547); - bcb(1548, 1, Oie, F9b); - _.Mb = function G9b(a) { - return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc)))); - }; - var IS = mdb(Ane, "LabelDummyRemover/lambda$0$Type", 1548); - bcb(1359, 1, ene, $9b); - _.pf = function cac(a, b) { - W9b(this, BD(a, 37), b); - }; - _.a = null; - var H9b; - var QS = mdb(Ane, "LabelDummySwitcher", 1359); - bcb(286, 1, { 286: 1 }, gac); - _.c = 0; - _.d = null; - _.f = 0; - var KS = mdb(Ane, "LabelDummySwitcher/LabelDummyInfo", 286); - bcb(1360, 1, {}, hac); - _.Kb = function iac(a) { - return I9b(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var LS = mdb(Ane, "LabelDummySwitcher/lambda$0$Type", 1360); - bcb(1361, 1, Oie, jac); - _.Mb = function kac(a) { - return I9b(), BD(a, 10).k == (j0b(), f0b); - }; - var MS = mdb(Ane, "LabelDummySwitcher/lambda$1$Type", 1361); - bcb(1362, 1, {}, lac); - _.Kb = function mac(a) { - return _9b(this.a, BD(a, 10)); - }; - var NS = mdb(Ane, "LabelDummySwitcher/lambda$2$Type", 1362); - bcb(1363, 1, qie, nac); - _.td = function oac(a) { - aac(this.a, BD(a, 286)); - }; - var OS = mdb(Ane, "LabelDummySwitcher/lambda$3$Type", 1363); - bcb(1364, 1, Dke, pac); - _.ue = function qac(a, b) { - return bac(BD(a, 286), BD(b, 286)); - }; - _.Fb = function rac(a) { - return this === a; - }; - _.ve = function sac() { - return new tpb(this); - }; - var PS = mdb(Ane, "LabelDummySwitcher/lambda$4$Type", 1364); - bcb(791, 1, ene, uac); - _.pf = function vac(a, b) { - tac(BD(a, 37), b); - }; - var RS = mdb(Ane, "LabelManagementProcessor", 791); - bcb(1549, 1, ene, Iac); - _.pf = function Jac(a, b) { - Cac(BD(a, 37), b); - }; - var TS = mdb(Ane, "LabelSideSelector", 1549); - bcb(1550, 1, Oie, Kac); - _.Mb = function Lac(a) { - return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc)))); - }; - var SS = mdb(Ane, "LabelSideSelector/lambda$0$Type", 1550); - bcb(1558, 1, ene, Sac); - _.pf = function Tac(a, b) { - Oac(BD(a, 37), b); - }; - var US = mdb(Ane, "LayerConstraintPostprocessor", 1558); - bcb(1559, 1, ene, abc); - _.pf = function bbc(a, b) { - $ac(BD(a, 37), b); - }; - var Uac; - var WS = mdb(Ane, "LayerConstraintPreprocessor", 1559); - bcb(360, 22, { 3: 1, 35: 1, 22: 1, 360: 1 }, ibc); - var cbc, dbc, ebc, fbc; - var VS = ndb(Ane, "LayerConstraintPreprocessor/HiddenNodeConnections", 360, CI, kbc, jbc); - var lbc; - bcb(1560, 1, ene, obc); - _.pf = function pbc(a, b) { - nbc(BD(a, 37), b); - }; - var XS = mdb(Ane, "LayerSizeAndGraphHeightCalculator", 1560); - bcb(1561, 1, ene, rbc); - _.pf = function tbc(a, b) { - qbc(BD(a, 37), b); - }; - var YS = mdb(Ane, "LongEdgeJoiner", 1561); - bcb(1562, 1, ene, vbc); - _.pf = function xbc(a, b) { - ubc(BD(a, 37), b); - }; - var ZS = mdb(Ane, "LongEdgeSplitter", 1562); - bcb(1563, 1, ene, Fbc); - _.pf = function Ibc(a, b) { - Bbc(this, BD(a, 37), b); - }; - _.d = 0; - _.e = 0; - _.i = 0; - _.j = 0; - _.k = 0; - _.n = 0; - var bT = mdb(Ane, "NodePromotion", 1563); - bcb(1564, 1, {}, Jbc); - _.Kb = function Kbc(a) { - return BD(a, 46), Bcb(), true; - }; - _.Fb = function Lbc(a) { - return this === a; - }; - var $S = mdb(Ane, "NodePromotion/lambda$0$Type", 1564); - bcb(1565, 1, {}, Mbc); - _.Kb = function Nbc(a) { - return Gbc(this.a, BD(a, 46)); - }; - _.Fb = function Obc(a) { - return this === a; - }; - _.a = 0; - var _S = mdb(Ane, "NodePromotion/lambda$1$Type", 1565); - bcb(1566, 1, {}, Pbc); - _.Kb = function Qbc(a) { - return Hbc(this.a, BD(a, 46)); - }; - _.Fb = function Rbc(a) { - return this === a; - }; - _.a = 0; - var aT = mdb(Ane, "NodePromotion/lambda$2$Type", 1566); - bcb(1567, 1, ene, Xbc); - _.pf = function Ybc(a, b) { - Sbc(BD(a, 37), b); - }; - var cT = mdb(Ane, "NorthSouthPortPostprocessor", 1567); - bcb(1568, 1, ene, ccc); - _.pf = function ecc(a, b) { - acc(BD(a, 37), b); - }; - var eT = mdb(Ane, "NorthSouthPortPreprocessor", 1568); - bcb(1569, 1, Dke, fcc); - _.ue = function gcc(a, b) { - return dcc(BD(a, 11), BD(b, 11)); - }; - _.Fb = function hcc(a) { - return this === a; - }; - _.ve = function icc() { - return new tpb(this); - }; - var dT = mdb(Ane, "NorthSouthPortPreprocessor/lambda$0$Type", 1569); - bcb(1570, 1, ene, lcc); - _.pf = function ncc(a, b) { - kcc(BD(a, 37), b); - }; - var hT = mdb(Ane, "PartitionMidprocessor", 1570); - bcb(1571, 1, Oie, occ); - _.Mb = function pcc(a) { - return wNb(BD(a, 10), (Nyc(), Nxc)); - }; - var fT = mdb(Ane, "PartitionMidprocessor/lambda$0$Type", 1571); - bcb(1572, 1, qie, qcc); - _.td = function rcc(a) { - mcc(this.a, BD(a, 10)); - }; - var gT = mdb(Ane, "PartitionMidprocessor/lambda$1$Type", 1572); - bcb(1573, 1, ene, tcc); - _.pf = function ucc(a, b) { - scc(BD(a, 37), b); - }; - var iT = mdb(Ane, "PartitionPostprocessor", 1573); - bcb(1574, 1, ene, ycc); - _.pf = function zcc(a, b) { - wcc(BD(a, 37), b); - }; - var nT = mdb(Ane, "PartitionPreprocessor", 1574); - bcb(1575, 1, Oie, Acc); - _.Mb = function Bcc(a) { - return wNb(BD(a, 10), (Nyc(), Nxc)); - }; - var jT = mdb(Ane, "PartitionPreprocessor/lambda$0$Type", 1575); - bcb(1576, 1, {}, Ccc); - _.Kb = function Dcc(a) { - return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var kT = mdb(Ane, "PartitionPreprocessor/lambda$1$Type", 1576); - bcb(1577, 1, Oie, Ecc); - _.Mb = function Fcc(a) { - return vcc(BD(a, 17)); - }; - var lT = mdb(Ane, "PartitionPreprocessor/lambda$2$Type", 1577); - bcb(1578, 1, qie, Gcc); - _.td = function Hcc(a) { - xcc(BD(a, 17)); - }; - var mT = mdb(Ane, "PartitionPreprocessor/lambda$3$Type", 1578); - bcb(1579, 1, ene, Tcc); - _.pf = function Xcc(a, b) { - Qcc(BD(a, 37), b); - }; - var Icc, Jcc, Kcc, Lcc, Mcc, Ncc; - var tT = mdb(Ane, "PortListSorter", 1579); - bcb(1580, 1, {}, Zcc); - _.Kb = function $cc(a) { - return Occ(), BD(a, 11).e; - }; - var oT = mdb(Ane, "PortListSorter/lambda$0$Type", 1580); - bcb(1581, 1, {}, _cc); - _.Kb = function adc(a) { - return Occ(), BD(a, 11).g; - }; - var pT = mdb(Ane, "PortListSorter/lambda$1$Type", 1581); - bcb(1582, 1, Dke, bdc); - _.ue = function cdc(a, b) { - return Ucc(BD(a, 11), BD(b, 11)); - }; - _.Fb = function ddc(a) { - return this === a; - }; - _.ve = function edc() { - return new tpb(this); - }; - var qT = mdb(Ane, "PortListSorter/lambda$2$Type", 1582); - bcb(1583, 1, Dke, fdc); - _.ue = function gdc(a, b) { - return Vcc(BD(a, 11), BD(b, 11)); - }; - _.Fb = function hdc(a) { - return this === a; - }; - _.ve = function idc() { - return new tpb(this); - }; - var rT = mdb(Ane, "PortListSorter/lambda$3$Type", 1583); - bcb(1584, 1, Dke, jdc); - _.ue = function kdc(a, b) { - return Wcc(BD(a, 11), BD(b, 11)); - }; - _.Fb = function ldc(a) { - return this === a; - }; - _.ve = function mdc() { - return new tpb(this); - }; - var sT = mdb(Ane, "PortListSorter/lambda$4$Type", 1584); - bcb(1585, 1, ene, pdc); - _.pf = function qdc(a, b) { - ndc(BD(a, 37), b); - }; - var uT = mdb(Ane, "PortSideProcessor", 1585); - bcb(1586, 1, ene, sdc); - _.pf = function tdc(a, b) { - rdc(BD(a, 37), b); - }; - var vT = mdb(Ane, "ReversedEdgeRestorer", 1586); - bcb(1591, 1, ene, wdc); - _.pf = function xdc(a, b) { - udc(this, BD(a, 37), b); - }; - var CT = mdb(Ane, "SelfLoopPortRestorer", 1591); - bcb(1592, 1, {}, ydc); - _.Kb = function zdc(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var wT = mdb(Ane, "SelfLoopPortRestorer/lambda$0$Type", 1592); - bcb(1593, 1, Oie, Adc); - _.Mb = function Bdc(a) { - return BD(a, 10).k == (j0b(), h0b); - }; - var xT = mdb(Ane, "SelfLoopPortRestorer/lambda$1$Type", 1593); - bcb(1594, 1, Oie, Cdc); - _.Mb = function Ddc(a) { - return wNb(BD(a, 10), (wtc(), ntc)); - }; - var yT = mdb(Ane, "SelfLoopPortRestorer/lambda$2$Type", 1594); - bcb(1595, 1, {}, Edc); - _.Kb = function Fdc(a) { - return BD(vNb(BD(a, 10), (wtc(), ntc)), 403); - }; - var zT = mdb(Ane, "SelfLoopPortRestorer/lambda$3$Type", 1595); - bcb(1596, 1, qie, Gdc); - _.td = function Hdc(a) { - vdc(this.a, BD(a, 403)); - }; - var AT = mdb(Ane, "SelfLoopPortRestorer/lambda$4$Type", 1596); - bcb(794, 1, qie, Idc); - _.td = function Jdc(a) { - ljc(BD(a, 101)); - }; - var BT = mdb(Ane, "SelfLoopPortRestorer/lambda$5$Type", 794); - bcb(1597, 1, ene, Ndc); - _.pf = function Pdc(a, b) { - Kdc(BD(a, 37), b); - }; - var LT = mdb(Ane, "SelfLoopPostProcessor", 1597); - bcb(1598, 1, {}, Qdc); - _.Kb = function Rdc(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var DT = mdb(Ane, "SelfLoopPostProcessor/lambda$0$Type", 1598); - bcb(1599, 1, Oie, Sdc); - _.Mb = function Tdc(a) { - return BD(a, 10).k == (j0b(), h0b); - }; - var ET = mdb(Ane, "SelfLoopPostProcessor/lambda$1$Type", 1599); - bcb(1600, 1, Oie, Udc); - _.Mb = function Vdc(a) { - return wNb(BD(a, 10), (wtc(), ntc)); - }; - var FT = mdb(Ane, "SelfLoopPostProcessor/lambda$2$Type", 1600); - bcb(1601, 1, qie, Wdc); - _.td = function Xdc(a) { - Ldc(BD(a, 10)); - }; - var GT = mdb(Ane, "SelfLoopPostProcessor/lambda$3$Type", 1601); - bcb(1602, 1, {}, Ydc); - _.Kb = function Zdc(a) { - return new YAb(null, new Kub(BD(a, 101).f, 1)); - }; - var HT = mdb(Ane, "SelfLoopPostProcessor/lambda$4$Type", 1602); - bcb(1603, 1, qie, $dc); - _.td = function _dc(a) { - Mdc(this.a, BD(a, 409)); - }; - var IT = mdb(Ane, "SelfLoopPostProcessor/lambda$5$Type", 1603); - bcb(1604, 1, Oie, aec); - _.Mb = function bec(a) { - return !!BD(a, 101).i; - }; - var JT = mdb(Ane, "SelfLoopPostProcessor/lambda$6$Type", 1604); - bcb(1605, 1, qie, cec); - _.td = function dec(a) { - Odc(this.a, BD(a, 101)); - }; - var KT = mdb(Ane, "SelfLoopPostProcessor/lambda$7$Type", 1605); - bcb(1587, 1, ene, hec); - _.pf = function iec(a, b) { - gec(BD(a, 37), b); - }; - var PT = mdb(Ane, "SelfLoopPreProcessor", 1587); - bcb(1588, 1, {}, jec); - _.Kb = function kec(a) { - return new YAb(null, new Kub(BD(a, 101).f, 1)); - }; - var MT = mdb(Ane, "SelfLoopPreProcessor/lambda$0$Type", 1588); - bcb(1589, 1, {}, lec); - _.Kb = function mec(a) { - return BD(a, 409).a; - }; - var NT = mdb(Ane, "SelfLoopPreProcessor/lambda$1$Type", 1589); - bcb(1590, 1, qie, nec); - _.td = function oec(a) { - fec(BD(a, 17)); - }; - var OT = mdb(Ane, "SelfLoopPreProcessor/lambda$2$Type", 1590); - bcb(1606, 1, ene, sec); - _.pf = function tec(a, b) { - qec(this, BD(a, 37), b); - }; - var VT = mdb(Ane, "SelfLoopRouter", 1606); - bcb(1607, 1, {}, uec); - _.Kb = function vec(a) { - return new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var QT = mdb(Ane, "SelfLoopRouter/lambda$0$Type", 1607); - bcb(1608, 1, Oie, wec); - _.Mb = function xec(a) { - return BD(a, 10).k == (j0b(), h0b); - }; - var RT = mdb(Ane, "SelfLoopRouter/lambda$1$Type", 1608); - bcb(1609, 1, Oie, yec); - _.Mb = function zec(a) { - return wNb(BD(a, 10), (wtc(), ntc)); - }; - var ST = mdb(Ane, "SelfLoopRouter/lambda$2$Type", 1609); - bcb(1610, 1, {}, Aec); - _.Kb = function Bec(a) { - return BD(vNb(BD(a, 10), (wtc(), ntc)), 403); - }; - var TT = mdb(Ane, "SelfLoopRouter/lambda$3$Type", 1610); - bcb(1611, 1, qie, Cec); - _.td = function Dec(a) { - pec(this.a, this.b, BD(a, 403)); - }; - var UT = mdb(Ane, "SelfLoopRouter/lambda$4$Type", 1611); - bcb(1612, 1, ene, Fec); - _.pf = function Iec(a, b) { - Eec(BD(a, 37), b); - }; - var $T = mdb(Ane, "SemiInteractiveCrossMinProcessor", 1612); - bcb(1613, 1, Oie, Jec); - _.Mb = function Kec(a) { - return BD(a, 10).k == (j0b(), h0b); - }; - var WT = mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1613); - bcb(1614, 1, Oie, Lec); - _.Mb = function Mec(a) { - return uNb(BD(a, 10))._b((Nyc(), ayc)); - }; - var XT = mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1614); - bcb(1615, 1, Dke, Nec); - _.ue = function Oec(a, b) { - return Gec(BD(a, 10), BD(b, 10)); - }; - _.Fb = function Pec(a) { - return this === a; - }; - _.ve = function Qec() { - return new tpb(this); - }; - var YT = mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1615); - bcb(1616, 1, {}, Rec); - _.Ce = function Sec(a, b) { - return Hec(BD(a, 10), BD(b, 10)); - }; - var ZT = mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1616); - bcb(1618, 1, ene, Uec); - _.pf = function Yec(a, b) { - Tec(BD(a, 37), b); - }; - var bU = mdb(Ane, "SortByInputModelProcessor", 1618); - bcb(1619, 1, Oie, Zec); - _.Mb = function $ec(a) { - return BD(a, 11).g.c.length != 0; - }; - var _T = mdb(Ane, "SortByInputModelProcessor/lambda$0$Type", 1619); - bcb(1620, 1, qie, _ec); - _.td = function afc(a) { - Wec(this.a, BD(a, 11)); - }; - var aU = mdb(Ane, "SortByInputModelProcessor/lambda$1$Type", 1620); - bcb(1693, 803, {}, jfc); - _.Me = function kfc(a) { - var b, c, d, e; - this.c = a; - switch (this.a.g) { - case 2: - b = new Rkb(); - MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new lgc()), new ngc(this, b)); - nEb(this, new tfc()); - Hkb(b, new xfc()); - b.c = KC(SI, Uhe, 1, 0, 5, 1); - MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new zfc()), new Bfc(b)); - nEb(this, new Ffc()); - Hkb(b, new Jfc()); - b.c = KC(SI, Uhe, 1, 0, 5, 1); - c = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new Lfc(this))), new Nfc()); - MAb(new YAb(null, new Kub(this.c.a.a, 16)), new Rfc(c, b)); - nEb(this, new Vfc()); - Hkb(b, new Zfc()); - b.c = KC(SI, Uhe, 1, 0, 5, 1); - break; - case 3: - d = new Rkb(); - nEb(this, new lfc()); - e = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new pfc(this))), new Pfc()); - MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new _fc()), new bgc(e, d)); - nEb(this, new fgc()); - Hkb(d, new jgc()); - d.c = KC(SI, Uhe, 1, 0, 5, 1); - break; - default: - throw vbb(new x2c()); - } - }; - _.b = 0; - var AU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation", 1693); - bcb(1694, 1, Vke, lfc); - _.Lb = function mfc(a) { - return JD(BD(a, 57).g, 145); - }; - _.Fb = function nfc(a) { - return this === a; - }; - _.Mb = function ofc(a) { - return JD(BD(a, 57).g, 145); - }; - var cU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1694); - bcb(1695, 1, {}, pfc); - _.Fe = function qfc(a) { - return dfc(this.a, BD(a, 57)); - }; - var dU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1695); - bcb(1703, 1, Pie, rfc); - _.Vd = function sfc() { - cfc(this.a, this.b, -1); - }; - _.b = 0; - var eU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1703); - bcb(1705, 1, Vke, tfc); - _.Lb = function ufc(a) { - return JD(BD(a, 57).g, 145); - }; - _.Fb = function vfc(a) { - return this === a; - }; - _.Mb = function wfc(a) { - return JD(BD(a, 57).g, 145); - }; - var fU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1705); - bcb(1706, 1, qie, xfc); - _.td = function yfc(a) { - BD(a, 365).Vd(); - }; - var gU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1706); - bcb(1707, 1, Oie, zfc); - _.Mb = function Afc(a) { - return JD(BD(a, 57).g, 10); - }; - var hU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1707); - bcb(1709, 1, qie, Bfc); - _.td = function Cfc(a) { - efc(this.a, BD(a, 57)); - }; - var iU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1709); - bcb(1708, 1, Pie, Dfc); - _.Vd = function Efc() { - cfc(this.b, this.a, -1); - }; - _.a = 0; - var jU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1708); - bcb(1710, 1, Vke, Ffc); - _.Lb = function Gfc(a) { - return JD(BD(a, 57).g, 10); - }; - _.Fb = function Hfc(a) { - return this === a; - }; - _.Mb = function Ifc(a) { - return JD(BD(a, 57).g, 10); - }; - var kU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1710); - bcb(1711, 1, qie, Jfc); - _.td = function Kfc(a) { - BD(a, 365).Vd(); - }; - var lU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1711); - bcb(1712, 1, {}, Lfc); - _.Fe = function Mfc(a) { - return ffc(this.a, BD(a, 57)); - }; - var mU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1712); - bcb(1713, 1, {}, Nfc); - _.De = function Ofc() { - return 0; - }; - var nU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1713); - bcb(1696, 1, {}, Pfc); - _.De = function Qfc() { - return 0; - }; - var oU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1696); - bcb(1715, 1, qie, Rfc); - _.td = function Sfc(a) { - gfc(this.a, this.b, BD(a, 307)); - }; - _.a = 0; - var pU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1715); - bcb(1714, 1, Pie, Tfc); - _.Vd = function Ufc() { - bfc(this.a, this.b, -1); - }; - _.b = 0; - var qU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1714); - bcb(1716, 1, Vke, Vfc); - _.Lb = function Wfc(a) { - return BD(a, 57), true; - }; - _.Fb = function Xfc(a) { - return this === a; - }; - _.Mb = function Yfc(a) { - return BD(a, 57), true; - }; - var rU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1716); - bcb(1717, 1, qie, Zfc); - _.td = function $fc(a) { - BD(a, 365).Vd(); - }; - var sU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1717); - bcb(1697, 1, Oie, _fc); - _.Mb = function agc(a) { - return JD(BD(a, 57).g, 10); - }; - var tU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1697); - bcb(1699, 1, qie, bgc); - _.td = function cgc(a) { - hfc(this.a, this.b, BD(a, 57)); - }; - _.a = 0; - var uU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1699); - bcb(1698, 1, Pie, dgc); - _.Vd = function egc() { - cfc(this.b, this.a, -1); - }; - _.a = 0; - var vU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1698); - bcb(1700, 1, Vke, fgc); - _.Lb = function ggc(a) { - return BD(a, 57), true; - }; - _.Fb = function hgc(a) { - return this === a; - }; - _.Mb = function igc(a) { - return BD(a, 57), true; - }; - var wU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1700); - bcb(1701, 1, qie, jgc); - _.td = function kgc(a) { - BD(a, 365).Vd(); - }; - var xU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1701); - bcb(1702, 1, Oie, lgc); - _.Mb = function mgc(a) { - return JD(BD(a, 57).g, 145); - }; - var yU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1702); - bcb(1704, 1, qie, ngc); - _.td = function ogc(a) { - ifc(this.a, this.b, BD(a, 57)); - }; - var zU = mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1704); - bcb(1521, 1, ene, sgc); - _.pf = function xgc(a, b) { - rgc(this, BD(a, 37), b); - }; - var pgc; - var EU = mdb(Jne, "HorizontalGraphCompactor", 1521); - bcb(1522, 1, {}, ygc); - _.Oe = function zgc(a, b) { - var c, d, e; - if (vgc(a, b)) { - return 0; - } - c = tgc(a); - d = tgc(b); - if (!!c && c.k == (j0b(), e0b) || !!d && d.k == (j0b(), e0b)) { - return 0; - } - e = BD(vNb(this.a.a, (wtc(), otc)), 304); - return fBc(e, c ? c.k : (j0b(), g0b), d ? d.k : (j0b(), g0b)); - }; - _.Pe = function Agc(a, b) { - var c, d, e; - if (vgc(a, b)) { - return 1; - } - c = tgc(a); - d = tgc(b); - e = BD(vNb(this.a.a, (wtc(), otc)), 304); - return iBc(e, c ? c.k : (j0b(), g0b), d ? d.k : (j0b(), g0b)); - }; - var BU = mdb(Jne, "HorizontalGraphCompactor/1", 1522); - bcb(1523, 1, {}, Bgc); - _.Ne = function Cgc(a, b) { - return qgc(), a.a.i == 0; - }; - var CU = mdb(Jne, "HorizontalGraphCompactor/lambda$0$Type", 1523); - bcb(1524, 1, {}, Dgc); - _.Ne = function Egc(a, b) { - return wgc(this.a, a, b); - }; - var DU = mdb(Jne, "HorizontalGraphCompactor/lambda$1$Type", 1524); - bcb(1664, 1, {}, Ygc); - var Fgc, Ggc; - var cV = mdb(Jne, "LGraphToCGraphTransformer", 1664); - bcb(1672, 1, Oie, ehc); - _.Mb = function fhc(a) { - return a != null; - }; - var FU = mdb(Jne, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1672); - bcb(1665, 1, {}, ghc); - _.Kb = function hhc(a) { - return Hgc(), fcb(vNb(BD(BD(a, 57).g, 10), (wtc(), $sc))); - }; - var GU = mdb(Jne, "LGraphToCGraphTransformer/lambda$0$Type", 1665); - bcb(1666, 1, {}, ihc); - _.Kb = function jhc(a) { - return Hgc(), gic(BD(BD(a, 57).g, 145)); - }; - var HU = mdb(Jne, "LGraphToCGraphTransformer/lambda$1$Type", 1666); - bcb(1675, 1, Oie, khc); - _.Mb = function lhc(a) { - return Hgc(), JD(BD(a, 57).g, 10); - }; - var IU = mdb(Jne, "LGraphToCGraphTransformer/lambda$10$Type", 1675); - bcb(1676, 1, qie, mhc); - _.td = function nhc(a) { - Zgc(BD(a, 57)); - }; - var JU = mdb(Jne, "LGraphToCGraphTransformer/lambda$11$Type", 1676); - bcb(1677, 1, Oie, ohc); - _.Mb = function phc(a) { - return Hgc(), JD(BD(a, 57).g, 145); - }; - var KU = mdb(Jne, "LGraphToCGraphTransformer/lambda$12$Type", 1677); - bcb(1681, 1, qie, qhc); - _.td = function rhc(a) { - $gc(BD(a, 57)); - }; - var LU = mdb(Jne, "LGraphToCGraphTransformer/lambda$13$Type", 1681); - bcb(1678, 1, qie, shc); - _.td = function thc(a) { - _gc(this.a, BD(a, 8)); - }; - _.a = 0; - var MU = mdb(Jne, "LGraphToCGraphTransformer/lambda$14$Type", 1678); - bcb(1679, 1, qie, uhc); - _.td = function vhc(a) { - ahc(this.a, BD(a, 110)); - }; - _.a = 0; - var NU = mdb(Jne, "LGraphToCGraphTransformer/lambda$15$Type", 1679); - bcb(1680, 1, qie, whc); - _.td = function xhc(a) { - bhc(this.a, BD(a, 8)); - }; - _.a = 0; - var OU = mdb(Jne, "LGraphToCGraphTransformer/lambda$16$Type", 1680); - bcb(1682, 1, {}, yhc); - _.Kb = function zhc(a) { - return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var PU = mdb(Jne, "LGraphToCGraphTransformer/lambda$17$Type", 1682); - bcb(1683, 1, Oie, Ahc); - _.Mb = function Bhc(a) { - return Hgc(), OZb(BD(a, 17)); - }; - var QU = mdb(Jne, "LGraphToCGraphTransformer/lambda$18$Type", 1683); - bcb(1684, 1, qie, Chc); - _.td = function Dhc(a) { - Qgc(this.a, BD(a, 17)); - }; - var RU = mdb(Jne, "LGraphToCGraphTransformer/lambda$19$Type", 1684); - bcb(1668, 1, qie, Ehc); - _.td = function Fhc(a) { - Rgc(this.a, BD(a, 145)); - }; - var SU = mdb(Jne, "LGraphToCGraphTransformer/lambda$2$Type", 1668); - bcb(1685, 1, {}, Ghc); - _.Kb = function Hhc(a) { - return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var TU = mdb(Jne, "LGraphToCGraphTransformer/lambda$20$Type", 1685); - bcb(1686, 1, {}, Ihc); - _.Kb = function Jhc(a) { - return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var UU = mdb(Jne, "LGraphToCGraphTransformer/lambda$21$Type", 1686); - bcb(1687, 1, {}, Khc); - _.Kb = function Lhc(a) { - return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15); - }; - var VU = mdb(Jne, "LGraphToCGraphTransformer/lambda$22$Type", 1687); - bcb(1688, 1, Oie, Mhc); - _.Mb = function Nhc(a) { - return chc(BD(a, 15)); - }; - var WU = mdb(Jne, "LGraphToCGraphTransformer/lambda$23$Type", 1688); - bcb(1689, 1, qie, Ohc); - _.td = function Phc(a) { - Jgc(this.a, BD(a, 15)); - }; - var XU = mdb(Jne, "LGraphToCGraphTransformer/lambda$24$Type", 1689); - bcb(1667, 1, qie, Qhc); - _.td = function Rhc(a) { - Sgc(this.a, this.b, BD(a, 145)); - }; - var YU = mdb(Jne, "LGraphToCGraphTransformer/lambda$3$Type", 1667); - bcb(1669, 1, {}, Shc); - _.Kb = function Thc(a) { - return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var ZU = mdb(Jne, "LGraphToCGraphTransformer/lambda$4$Type", 1669); - bcb(1670, 1, {}, Uhc); - _.Kb = function Vhc(a) { - return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var $U = mdb(Jne, "LGraphToCGraphTransformer/lambda$5$Type", 1670); - bcb(1671, 1, {}, Whc); - _.Kb = function Xhc(a) { - return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15); - }; - var _U = mdb(Jne, "LGraphToCGraphTransformer/lambda$6$Type", 1671); - bcb(1673, 1, qie, Yhc); - _.td = function Zhc(a) { - dhc(this.a, BD(a, 15)); - }; - var aV = mdb(Jne, "LGraphToCGraphTransformer/lambda$8$Type", 1673); - bcb(1674, 1, qie, $hc); - _.td = function _hc(a) { - Tgc(this.a, this.b, BD(a, 145)); - }; - var bV = mdb(Jne, "LGraphToCGraphTransformer/lambda$9$Type", 1674); - bcb(1663, 1, {}, dic); - _.Le = function eic(a) { - var b, c, d, e, f; - this.a = a; - this.d = new KFb(); - this.c = KC(jN, Uhe, 121, this.a.a.a.c.length, 0, 1); - this.b = 0; - for (c = new olb(this.a.a.a); c.a < c.c.c.length; ) { - b = BD(mlb(c), 307); - b.d = this.b; - f = nGb(oGb(new pGb(), b), this.d); - this.c[this.b] = f; - ++this.b; - } - cic(this); - bic(this); - aic(this); - uGb(LGb(this.d), new Zdd()); - for (e = new olb(this.a.a.b); e.a < e.c.c.length; ) { - d = BD(mlb(e), 57); - d.d.c = this.c[d.a.d].e + d.b.a; - } - }; - _.b = 0; - var dV = mdb(Jne, "NetworkSimplexCompaction", 1663); - bcb(145, 1, { 35: 1, 145: 1 }, hic); - _.wd = function iic(a) { - return fic(this, BD(a, 145)); - }; - _.Ib = function jic() { - return gic(this); - }; - var eV = mdb(Jne, "VerticalSegment", 145); - bcb(827, 1, {}, sic); - _.c = 0; - _.e = 0; - _.i = 0; - var hV = mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter", 827); - bcb(663, 1, { 663: 1 }, zic); - _.Ib = function Aic() { - return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]"; - }; - _.b = 0; - _.c = 0; - _.f = 0; - var gV = mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 663); - bcb(287, 1, { 35: 1, 287: 1 }, Dic); - _.wd = function Eic(a) { - return Bic(this, BD(a, 287)); - }; - _.Ib = function Fic() { - return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]"; - }; - _.a = 0; - _.b = 0; - _.c = 0; - var fV = mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 287); - bcb(1929, 1, {}, Iic); - _.b = 0; - _.e = false; - var iV = mdb(Kne, "CrossingMatrixFiller", 1929); - var qY = odb(Lne, "IInitializable"); - bcb(1804, 1, Mne, Oic); - _.Nf = function Ric(a, b, c, d, e, f) { - }; - _.Pf = function Tic(a, b, c) { - }; - _.Lf = function Pic() { - return this.c != (rGc(), pGc); - }; - _.Mf = function Qic() { - this.e = KC(WD, oje, 25, this.d, 15, 1); - }; - _.Of = function Sic(a, b) { - b[a][0].c.p = a; - }; - _.Qf = function Uic(a, b, c, d) { - ++this.d; - }; - _.Rf = function Vic() { - return true; - }; - _.Sf = function Wic(a, b, c, d) { - Kic(this, a, b, c); - return Jic(this, b); - }; - _.Tf = function Xic(a, b) { - var c; - c = Lic(b, a.length); - Kic(this, a, c, b); - return Mic(this, c); - }; - _.d = 0; - var jV = mdb(Kne, "GreedySwitchHeuristic", 1804); - bcb(1930, 1, {}, ejc); - _.b = 0; - _.d = 0; - var kV = mdb(Kne, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 1930); - bcb(1917, 1, {}, jjc); - _.a = false; - var lV = mdb(Kne, "SwitchDecider", 1917); - bcb(101, 1, { 101: 1 }, pjc); - _.a = null; - _.c = null; - _.i = null; - var oV = mdb(Nne, "SelfHyperLoop", 101); - bcb(1916, 1, {}, vjc); - _.c = 0; - _.e = 0; - var nV = mdb(Nne, "SelfHyperLoopLabels", 1916); - bcb(411, 22, { 3: 1, 35: 1, 22: 1, 411: 1 }, Bjc); - var wjc, xjc, yjc, zjc; - var mV = ndb(Nne, "SelfHyperLoopLabels/Alignment", 411, CI, Djc, Cjc); - var Ejc; - bcb(409, 1, { 409: 1 }, Gjc); - var pV = mdb(Nne, "SelfLoopEdge", 409); - bcb(403, 1, { 403: 1 }, Kjc); - _.a = false; - var rV = mdb(Nne, "SelfLoopHolder", 403); - bcb(1724, 1, Oie, Mjc); - _.Mb = function Njc(a) { - return OZb(BD(a, 17)); - }; - var qV = mdb(Nne, "SelfLoopHolder/lambda$0$Type", 1724); - bcb(113, 1, { 113: 1 }, Pjc); - _.a = false; - _.c = false; - var tV = mdb(Nne, "SelfLoopPort", 113); - bcb(1792, 1, Oie, Qjc); - _.Mb = function Rjc(a) { - return OZb(BD(a, 17)); - }; - var sV = mdb(Nne, "SelfLoopPort/lambda$0$Type", 1792); - bcb(363, 22, { 3: 1, 35: 1, 22: 1, 363: 1 }, Yjc); - var Sjc, Tjc, Ujc, Vjc, Wjc; - var uV = ndb(Nne, "SelfLoopType", 363, CI, _jc, $jc); - var akc; - bcb(1732, 1, {}, xkc); - var ckc, dkc, ekc, fkc; - var JV = mdb(One, "PortRestorer", 1732); - bcb(361, 22, { 3: 1, 35: 1, 22: 1, 361: 1 }, Gkc); - var Ckc, Dkc, Ekc; - var vV = ndb(One, "PortRestorer/PortSideArea", 361, CI, Ikc, Hkc); - var Jkc; - bcb(1733, 1, {}, Lkc); - _.Kb = function Mkc(a) { - return gkc(), BD(a, 15).Oc(); - }; - var wV = mdb(One, "PortRestorer/lambda$0$Type", 1733); - bcb(1734, 1, qie, Nkc); - _.td = function Okc(a) { - gkc(); - BD(a, 113).c = false; - }; - var xV = mdb(One, "PortRestorer/lambda$1$Type", 1734); - bcb(1743, 1, Oie, Pkc); - _.Mb = function Qkc(a) { - return gkc(), BD(a, 11).j == (Ucd(), Tcd); - }; - var yV = mdb(One, "PortRestorer/lambda$10$Type", 1743); - bcb(1744, 1, {}, Rkc); - _.Kb = function Skc(a) { - return gkc(), BD(a, 113).d; - }; - var zV = mdb(One, "PortRestorer/lambda$11$Type", 1744); - bcb(1745, 1, qie, Tkc); - _.td = function Ukc(a) { - ykc(this.a, BD(a, 11)); - }; - var AV = mdb(One, "PortRestorer/lambda$12$Type", 1745); - bcb(1735, 1, qie, Vkc); - _.td = function Wkc(a) { - zkc(this.a, BD(a, 101)); - }; - var BV = mdb(One, "PortRestorer/lambda$2$Type", 1735); - bcb(1736, 1, Dke, Xkc); - _.ue = function Ykc(a, b) { - return Akc(BD(a, 113), BD(b, 113)); - }; - _.Fb = function Zkc(a) { - return this === a; - }; - _.ve = function $kc() { - return new tpb(this); - }; - var CV = mdb(One, "PortRestorer/lambda$3$Type", 1736); - bcb(1737, 1, Oie, _kc); - _.Mb = function alc(a) { - return gkc(), BD(a, 113).c; - }; - var DV = mdb(One, "PortRestorer/lambda$4$Type", 1737); - bcb(1738, 1, Oie, blc); - _.Mb = function clc(a) { - return nkc(BD(a, 11)); - }; - var EV = mdb(One, "PortRestorer/lambda$5$Type", 1738); - bcb(1739, 1, Oie, dlc); - _.Mb = function elc(a) { - return gkc(), BD(a, 11).j == (Ucd(), Acd); - }; - var FV = mdb(One, "PortRestorer/lambda$6$Type", 1739); - bcb(1740, 1, Oie, flc); - _.Mb = function glc(a) { - return gkc(), BD(a, 11).j == (Ucd(), zcd); - }; - var GV = mdb(One, "PortRestorer/lambda$7$Type", 1740); - bcb(1741, 1, Oie, hlc); - _.Mb = function ilc(a) { - return okc(BD(a, 11)); - }; - var HV = mdb(One, "PortRestorer/lambda$8$Type", 1741); - bcb(1742, 1, Oie, jlc); - _.Mb = function klc(a) { - return gkc(), BD(a, 11).j == (Ucd(), Rcd); - }; - var IV = mdb(One, "PortRestorer/lambda$9$Type", 1742); - bcb(270, 22, { 3: 1, 35: 1, 22: 1, 270: 1 }, Blc); - var slc, tlc, ulc, vlc, wlc, xlc, ylc, zlc; - var KV = ndb(One, "PortSideAssigner/Target", 270, CI, Dlc, Clc); - var Elc; - bcb(1725, 1, {}, Glc); - _.Kb = function Hlc(a) { - return JAb(new YAb(null, new Kub(BD(a, 101).j, 16)), new Ylc()); - }; - var LV = mdb(One, "PortSideAssigner/lambda$1$Type", 1725); - bcb(1726, 1, {}, Ilc); - _.Kb = function Jlc(a) { - return BD(a, 113).d; - }; - var MV = mdb(One, "PortSideAssigner/lambda$2$Type", 1726); - bcb(1727, 1, qie, Klc); - _.td = function Llc(a) { - G0b(BD(a, 11), (Ucd(), Acd)); - }; - var NV = mdb(One, "PortSideAssigner/lambda$3$Type", 1727); - bcb(1728, 1, {}, Mlc); - _.Kb = function Nlc(a) { - return BD(a, 113).d; - }; - var OV = mdb(One, "PortSideAssigner/lambda$4$Type", 1728); - bcb(1729, 1, qie, Olc); - _.td = function Plc(a) { - plc(this.a, BD(a, 11)); - }; - var PV = mdb(One, "PortSideAssigner/lambda$5$Type", 1729); - bcb(1730, 1, Dke, Qlc); - _.ue = function Rlc(a, b) { - return qlc(BD(a, 101), BD(b, 101)); - }; - _.Fb = function Slc(a) { - return this === a; - }; - _.ve = function Tlc() { - return new tpb(this); - }; - var QV = mdb(One, "PortSideAssigner/lambda$6$Type", 1730); - bcb(1731, 1, Dke, Ulc); - _.ue = function Vlc(a, b) { - return rlc(BD(a, 113), BD(b, 113)); - }; - _.Fb = function Wlc(a) { - return this === a; - }; - _.ve = function Xlc() { - return new tpb(this); - }; - var RV = mdb(One, "PortSideAssigner/lambda$7$Type", 1731); - bcb(805, 1, Oie, Ylc); - _.Mb = function Zlc(a) { - return BD(a, 113).c; - }; - var SV = mdb(One, "PortSideAssigner/lambda$8$Type", 805); - bcb(2009, 1, {}); - var TV = mdb(Pne, "AbstractSelfLoopRouter", 2009); - bcb(1750, 1, Dke, gmc); - _.ue = function hmc(a, b) { - return emc(BD(a, 101), BD(b, 101)); - }; - _.Fb = function imc(a) { - return this === a; - }; - _.ve = function jmc() { - return new tpb(this); - }; - var UV = mdb(Pne, rle, 1750); - bcb(1751, 1, Dke, kmc); - _.ue = function lmc(a, b) { - return fmc(BD(a, 101), BD(b, 101)); - }; - _.Fb = function mmc(a) { - return this === a; - }; - _.ve = function nmc() { - return new tpb(this); - }; - var VV = mdb(Pne, sle, 1751); - bcb(1793, 2009, {}, zmc); - _.Uf = function Amc(a, b, c) { - return c; - }; - var XV = mdb(Pne, "OrthogonalSelfLoopRouter", 1793); - bcb(1795, 1, qie, Bmc); - _.td = function Cmc(a) { - ymc(this.b, this.a, BD(a, 8)); - }; - var WV = mdb(Pne, "OrthogonalSelfLoopRouter/lambda$0$Type", 1795); - bcb(1794, 1793, {}, Fmc); - _.Uf = function Gmc(a, b, c) { - var d, e; - d = a.c.d; - St(c, 0, P6c(R6c(d.n), d.a)); - e = a.d.d; - Dsb(c, P6c(R6c(e.n), e.a)); - return Dmc(c); - }; - var YV = mdb(Pne, "PolylineSelfLoopRouter", 1794); - bcb(1746, 1, {}, Umc); - _.a = null; - var Hmc; - var aW = mdb(Pne, "RoutingDirector", 1746); - bcb(1747, 1, Dke, Wmc); - _.ue = function Xmc(a, b) { - return Vmc(BD(a, 113), BD(b, 113)); - }; - _.Fb = function Ymc(a) { - return this === a; - }; - _.ve = function Zmc() { - return new tpb(this); - }; - var ZV = mdb(Pne, "RoutingDirector/lambda$0$Type", 1747); - bcb(1748, 1, {}, $mc); - _.Kb = function _mc(a) { - return Imc(), BD(a, 101).j; - }; - var $V = mdb(Pne, "RoutingDirector/lambda$1$Type", 1748); - bcb(1749, 1, qie, anc); - _.td = function bnc(a) { - Imc(); - BD(a, 15).ad(Hmc); - }; - var _V = mdb(Pne, "RoutingDirector/lambda$2$Type", 1749); - bcb(1752, 1, {}, mnc); - var dW = mdb(Pne, "RoutingSlotAssigner", 1752); - bcb(1753, 1, Oie, pnc); - _.Mb = function qnc(a) { - return nnc(this.a, BD(a, 101)); - }; - var bW = mdb(Pne, "RoutingSlotAssigner/lambda$0$Type", 1753); - bcb(1754, 1, Dke, rnc); - _.ue = function snc(a, b) { - return onc(this.a, BD(a, 101), BD(b, 101)); - }; - _.Fb = function tnc(a) { - return this === a; - }; - _.ve = function unc() { - return new tpb(this); - }; - var cW = mdb(Pne, "RoutingSlotAssigner/lambda$1$Type", 1754); - bcb(1796, 1793, {}, wnc); - _.Uf = function xnc(a, b, c) { - var d, e, f, g10; - d = Edb(ED(c_b(a.b.g.b, (Nyc(), nyc)))); - g10 = new u7c(OC(GC(m1, 1), nie, 8, 0, [(f = a.c.d, P6c(new g7c(f.n), f.a))])); - vnc(a, b, c, g10, d); - Dsb(g10, (e = a.d.d, P6c(new g7c(e.n), e.a))); - return UPc(new YPc(g10)); - }; - var eW = mdb(Pne, "SplineSelfLoopRouter", 1796); - bcb(578, 1, Dke, Bnc, Dnc); - _.ue = function Enc(a, b) { - return ync(this, BD(a, 10), BD(b, 10)); - }; - _.Fb = function Fnc(a) { - return this === a; - }; - _.ve = function Gnc() { - return new tpb(this); - }; - var kW = mdb(Qne, "ModelOrderNodeComparator", 578); - bcb(1755, 1, Oie, Hnc); - _.Mb = function Inc(a) { - return BD(a, 11).e.c.length != 0; - }; - var fW = mdb(Qne, "ModelOrderNodeComparator/lambda$0$Type", 1755); - bcb(1756, 1, {}, Jnc); - _.Kb = function Knc(a) { - return BD(Ikb(BD(a, 11).e, 0), 17).c; - }; - var gW = mdb(Qne, "ModelOrderNodeComparator/lambda$1$Type", 1756); - bcb(1757, 1, Oie, Lnc); - _.Mb = function Mnc(a) { - return BD(a, 11).e.c.length != 0; - }; - var hW = mdb(Qne, "ModelOrderNodeComparator/lambda$2$Type", 1757); - bcb(1758, 1, {}, Nnc); - _.Kb = function Onc(a) { - return BD(Ikb(BD(a, 11).e, 0), 17).c; - }; - var iW = mdb(Qne, "ModelOrderNodeComparator/lambda$3$Type", 1758); - bcb(1759, 1, Oie, Pnc); - _.Mb = function Qnc(a) { - return BD(a, 11).e.c.length != 0; - }; - var jW = mdb(Qne, "ModelOrderNodeComparator/lambda$4$Type", 1759); - bcb(806, 1, Dke, Tnc, Unc); - _.ue = function Vnc(a, b) { - return Rnc(this, a, b); - }; - _.Fb = function Wnc(a) { - return this === a; - }; - _.ve = function Xnc() { - return new tpb(this); - }; - var lW = mdb(Qne, "ModelOrderPortComparator", 806); - bcb(801, 1, {}, Ync); - _.Vf = function $nc(a, b) { - var c, d, e, f; - e = Znc(b); - c = new Rkb(); - f = b.f / e; - for (d = 1; d < e; ++d) { - Ekb(c, meb(Tbb(Cbb($wnd.Math.round(d * f))))); - } - return c; - }; - _.Wf = function _nc() { - return false; - }; - var mW = mdb(Rne, "ARDCutIndexHeuristic", 801); - bcb(1479, 1, ene, eoc); - _.pf = function foc(a, b) { - doc(BD(a, 37), b); - }; - var pW = mdb(Rne, "BreakingPointInserter", 1479); - bcb(305, 1, { 305: 1 }, goc); - _.Ib = function joc() { - var a; - a = new Ufb(); - a.a += "BPInfo["; - a.a += "\n start="; - Pfb(a, this.i); - a.a += "\n end="; - Pfb(a, this.a); - a.a += "\n nodeStartEdge="; - Pfb(a, this.e); - a.a += "\n startEndEdge="; - Pfb(a, this.j); - a.a += "\n originalEdge="; - Pfb(a, this.f); - a.a += "\n startInLayerDummy="; - Pfb(a, this.k); - a.a += "\n startInLayerEdge="; - Pfb(a, this.n); - a.a += "\n endInLayerDummy="; - Pfb(a, this.b); - a.a += "\n endInLayerEdge="; - Pfb(a, this.c); - return a.a; - }; - var nW = mdb(Rne, "BreakingPointInserter/BPInfo", 305); - bcb(652, 1, { 652: 1 }, qoc); - _.a = false; - _.b = 0; - _.c = 0; - var oW = mdb(Rne, "BreakingPointInserter/Cut", 652); - bcb(1480, 1, ene, Aoc); - _.pf = function Boc(a, b) { - yoc(BD(a, 37), b); - }; - var sW = mdb(Rne, "BreakingPointProcessor", 1480); - bcb(1481, 1, Oie, Coc); - _.Mb = function Doc(a) { - return hoc(BD(a, 10)); - }; - var qW = mdb(Rne, "BreakingPointProcessor/0methodref$isEnd$Type", 1481); - bcb(1482, 1, Oie, Eoc); - _.Mb = function Foc(a) { - return ioc(BD(a, 10)); - }; - var rW = mdb(Rne, "BreakingPointProcessor/1methodref$isStart$Type", 1482); - bcb(1483, 1, ene, Joc); - _.pf = function Koc(a, b) { - Hoc(this, BD(a, 37), b); - }; - var uW = mdb(Rne, "BreakingPointRemover", 1483); - bcb(1484, 1, qie, Loc); - _.td = function Moc(a) { - BD(a, 128).k = true; - }; - var tW = mdb(Rne, "BreakingPointRemover/lambda$0$Type", 1484); - bcb(797, 1, {}, Xoc); - _.b = 0; - _.e = 0; - _.f = 0; - _.j = 0; - var AW = mdb(Rne, "GraphStats", 797); - bcb(798, 1, {}, Zoc); - _.Ce = function $oc(a, b) { - return $wnd.Math.max(Edb(ED(a)), Edb(ED(b))); - }; - var vW = mdb(Rne, "GraphStats/0methodref$max$Type", 798); - bcb(799, 1, {}, _oc); - _.Ce = function apc(a, b) { - return $wnd.Math.max(Edb(ED(a)), Edb(ED(b))); - }; - var wW = mdb(Rne, "GraphStats/2methodref$max$Type", 799); - bcb(1660, 1, {}, bpc); - _.Ce = function cpc(a, b) { - return Yoc(ED(a), ED(b)); - }; - var xW = mdb(Rne, "GraphStats/lambda$1$Type", 1660); - bcb(1661, 1, {}, dpc); - _.Kb = function epc(a) { - return Roc(this.a, BD(a, 29)); - }; - var yW = mdb(Rne, "GraphStats/lambda$2$Type", 1661); - bcb(1662, 1, {}, fpc); - _.Kb = function gpc(a) { - return Qoc(this.a, BD(a, 29)); - }; - var zW = mdb(Rne, "GraphStats/lambda$6$Type", 1662); - bcb(800, 1, {}, hpc); - _.Vf = function ipc(a, b) { - var c; - c = BD(vNb(a, (Nyc(), Eyc)), 15); - return c ? c : (mmb(), mmb(), jmb); - }; - _.Wf = function jpc() { - return false; - }; - var BW = mdb(Rne, "ICutIndexCalculator/ManualCutIndexCalculator", 800); - bcb(802, 1, {}, kpc); - _.Vf = function lpc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u; - u = (b.n == null && Uoc(b), b.n); - i10 = (b.d == null && Uoc(b), b.d); - t = KC(UD, Vje, 25, u.length, 15, 1); - t[0] = u[0]; - r = u[0]; - for (j = 1; j < u.length; j++) { - t[j] = t[j - 1] + u[j]; - r += u[j]; - } - e = Znc(b) - 1; - g10 = BD(vNb(a, (Nyc(), Fyc)), 19).a; - d = Qje; - c = new Rkb(); - for (m = $wnd.Math.max(0, e - g10); m <= $wnd.Math.min(b.f - 1, e + g10); m++) { - p = r / (m + 1); - q = 0; - k = 1; - f = new Rkb(); - s = Qje; - l = 0; - h = 0; - o10 = i10[0]; - if (m == 0) { - s = r; - h = (b.g == null && (b.g = Poc(b, new _oc())), Edb(b.g)); - } else { - while (k < b.f) { - if (t[k - 1] - q >= p) { - Ekb(f, meb(k)); - s = $wnd.Math.max(s, t[k - 1] - l); - h += o10; - q += t[k - 1] - q; - l = t[k - 1]; - o10 = i10[k]; - } - o10 = $wnd.Math.max(o10, i10[k]); - ++k; - } - h += o10; - } - n = $wnd.Math.min(1 / s, 1 / b.b / h); - if (n > d) { - d = n; - c = f; - } - } - return c; - }; - _.Wf = function mpc() { - return false; - }; - var CW = mdb(Rne, "MSDCutIndexHeuristic", 802); - bcb(1617, 1, ene, ppc); - _.pf = function qpc(a, b) { - opc(BD(a, 37), b); - }; - var DW = mdb(Rne, "SingleEdgeGraphWrapper", 1617); - bcb(227, 22, { 3: 1, 35: 1, 22: 1, 227: 1 }, Bpc); - var upc, vpc, wpc, xpc, ypc, zpc; - var EW = ndb(Sne, "CenterEdgeLabelPlacementStrategy", 227, CI, Dpc, Cpc); - var Epc; - bcb(422, 22, { 3: 1, 35: 1, 22: 1, 422: 1 }, Jpc); - var Gpc, Hpc; - var FW = ndb(Sne, "ConstraintCalculationStrategy", 422, CI, Lpc, Kpc); - var Mpc; - bcb(314, 22, { 3: 1, 35: 1, 22: 1, 314: 1, 246: 1, 234: 1 }, Tpc); - _.Kf = function Vpc() { - return Spc(this); - }; - _.Xf = function Upc() { - return Spc(this); - }; - var Opc, Ppc, Qpc; - var GW = ndb(Sne, "CrossingMinimizationStrategy", 314, CI, Xpc, Wpc); - var Ypc; - bcb(337, 22, { 3: 1, 35: 1, 22: 1, 337: 1 }, cqc); - var $pc, _pc, aqc; - var HW = ndb(Sne, "CuttingStrategy", 337, CI, eqc, dqc); - var fqc; - bcb(335, 22, { 3: 1, 35: 1, 22: 1, 335: 1, 246: 1, 234: 1 }, oqc); - _.Kf = function qqc() { - return nqc(this); - }; - _.Xf = function pqc() { - return nqc(this); - }; - var hqc, iqc, jqc, kqc, lqc; - var IW = ndb(Sne, "CycleBreakingStrategy", 335, CI, sqc, rqc); - var tqc; - bcb(419, 22, { 3: 1, 35: 1, 22: 1, 419: 1 }, yqc); - var vqc, wqc; - var JW = ndb(Sne, "DirectionCongruency", 419, CI, Aqc, zqc); - var Bqc; - bcb(450, 22, { 3: 1, 35: 1, 22: 1, 450: 1 }, Hqc); - var Dqc, Eqc, Fqc; - var KW = ndb(Sne, "EdgeConstraint", 450, CI, Jqc, Iqc); - var Kqc; - bcb(276, 22, { 3: 1, 35: 1, 22: 1, 276: 1 }, Uqc); - var Mqc, Nqc, Oqc, Pqc, Qqc, Rqc; - var LW = ndb(Sne, "EdgeLabelSideSelection", 276, CI, Wqc, Vqc); - var Xqc; - bcb(479, 22, { 3: 1, 35: 1, 22: 1, 479: 1 }, arc); - var Zqc, $qc; - var MW = ndb(Sne, "EdgeStraighteningStrategy", 479, CI, crc, brc); - var drc; - bcb(274, 22, { 3: 1, 35: 1, 22: 1, 274: 1 }, mrc); - var frc, grc, hrc, irc, jrc, krc; - var NW = ndb(Sne, "FixedAlignment", 274, CI, orc, nrc); - var prc; - bcb(275, 22, { 3: 1, 35: 1, 22: 1, 275: 1 }, zrc); - var rrc, trc, urc, vrc, wrc, xrc; - var OW = ndb(Sne, "GraphCompactionStrategy", 275, CI, Brc, Arc); - var Crc; - bcb(256, 22, { 3: 1, 35: 1, 22: 1, 256: 1 }, Prc); - var Erc, Frc, Grc, Hrc, Irc, Jrc, Krc, Lrc, Mrc, Nrc; - var PW = ndb(Sne, "GraphProperties", 256, CI, Rrc, Qrc); - var Src; - bcb(292, 22, { 3: 1, 35: 1, 22: 1, 292: 1 }, Yrc); - var Urc, Vrc, Wrc; - var QW = ndb(Sne, "GreedySwitchType", 292, CI, $rc, Zrc); - var _rc; - bcb(303, 22, { 3: 1, 35: 1, 22: 1, 303: 1 }, fsc); - var bsc, csc, dsc; - var RW = ndb(Sne, "InLayerConstraint", 303, CI, hsc, gsc); - var isc; - bcb(420, 22, { 3: 1, 35: 1, 22: 1, 420: 1 }, nsc); - var ksc, lsc; - var SW = ndb(Sne, "InteractiveReferencePoint", 420, CI, psc, osc); - var qsc; - var ssc, tsc, usc, vsc, wsc, xsc, ysc, zsc, Asc, Bsc, Csc, Dsc, Esc, Fsc, Gsc, Hsc, Isc, Jsc, Ksc, Lsc, Msc, Nsc, Osc, Psc, Qsc, Rsc, Ssc, Tsc, Usc, Vsc, Wsc, Xsc, Ysc, Zsc, $sc, _sc, atc, btc, ctc, dtc, etc, ftc, gtc, htc, itc, jtc, ktc, ltc, mtc, ntc, otc, ptc, qtc, rtc, stc, ttc, utc, vtc; - bcb(163, 22, { 3: 1, 35: 1, 22: 1, 163: 1 }, Dtc); - var xtc, ytc, ztc, Atc, Btc; - var TW = ndb(Sne, "LayerConstraint", 163, CI, Ftc, Etc); - var Gtc; - bcb(848, 1, ale, kwc); - _.Qe = function lwc(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yne), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), puc), (_5c(), V5c)), JW), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zne), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (Bcb(), false)), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ne), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), Muc), V5c), SW), pqb(L5c)))); - o4c(a, $ne, goe, Ouc); - o4c(a, $ne, qoe, Nuc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ne), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aoe), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), true), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), boe), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), T5c), wI), pqb(M5c)), OC(GC(ZI, 1), nie, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"])))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), coe), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), xvc), V5c), cX), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), doe), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), meb(7)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eoe), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), foe), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), goe), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), nuc), V5c), IW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hoe), ppe), "Node Layering Strategy"), "Strategy for node layering."), bvc), V5c), YW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ioe), ppe), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), Tuc), V5c), TW), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), joe), ppe), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), koe), ppe), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), loe), qpe), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), meb(4)), X5c), JI), pqb(L5c)))); - o4c(a, loe, hoe, Wuc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), moe), qpe), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), meb(2)), X5c), JI), pqb(L5c)))); - o4c(a, moe, hoe, Yuc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), noe), rpe), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), _uc), V5c), aX), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ooe), rpe), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), meb(0)), X5c), JI), pqb(L5c)))); - o4c(a, ooe, noe, null); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), poe), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), meb(Ohe)), X5c), JI), pqb(L5c)))); - o4c(a, poe, hoe, Quc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qoe), spe), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), luc), V5c), GW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), roe), spe), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), soe), spe), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), U5c), BI), pqb(L5c)))); - o4c(a, soe, tpe, fuc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), toe), spe), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), T5c), wI), pqb(L5c)))); - o4c(a, toe, qoe, juc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), uoe), spe), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), voe), spe), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), woe), upe), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), meb(40)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xoe), upe), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), cuc), V5c), QW), pqb(L5c)))); - o4c(a, xoe, qoe, duc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yoe), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), $tc), V5c), QW), pqb(L5c)))); - o4c(a, yoe, qoe, _tc); - o4c(a, yoe, tpe, auc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zoe), vpe), "Node Placement Strategy"), "Strategy for node placement."), vvc), V5c), _W), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Aoe), vpe), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), T5c), wI), pqb(L5c)))); - o4c(a, Aoe, zoe, lvc); - o4c(a, Aoe, zoe, mvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Boe), wpe), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), fvc), V5c), MW), pqb(L5c)))); - o4c(a, Boe, zoe, gvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Coe), wpe), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), ivc), V5c), NW), pqb(L5c)))); - o4c(a, Coe, zoe, jvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Doe), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), U5c), BI), pqb(L5c)))); - o4c(a, Doe, zoe, ovc); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Eoe), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), V5c), $W), pqb(K5c)))); - o4c(a, Eoe, zoe, tvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Foe), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), rvc), V5c), $W), pqb(L5c)))); - o4c(a, Foe, zoe, svc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Goe), xpe), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), xuc), V5c), eX), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hoe), xpe), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), zuc), V5c), fX), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ioe), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), Buc), V5c), hX), pqb(L5c)))); - o4c(a, Ioe, ype, Cuc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Joe), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), U5c), BI), pqb(L5c)))); - o4c(a, Joe, ype, Euc); - o4c(a, Joe, Ioe, Fuc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Koe), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), U5c), BI), pqb(L5c)))); - o4c(a, Koe, ype, vuc); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Loe), zpe), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Moe), zpe), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Noe), zpe), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ooe), zpe), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Poe), Ape), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), meb(0)), X5c), JI), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qoe), Ape), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), meb(0)), X5c), JI), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Roe), Ape), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), meb(0)), X5c), JI), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Soe), Bpe), Ole), "Tries to further compact components (disconnected sub-graphs)."), false), T5c), wI), pqb(L5c)))); - o4c(a, Soe, zme, true); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Toe), Cpe), "Post Compaction Strategy"), Dpe), Ntc), V5c), OW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Uoe), Cpe), "Post Compaction Constraint Calculation"), Dpe), Ltc), V5c), FW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Voe), Epe), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Woe), Epe), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), meb(16)), X5c), JI), pqb(L5c)))); - o4c(a, Woe, Voe, true); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xoe), Epe), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), meb(5)), X5c), JI), pqb(L5c)))); - o4c(a, Xoe, Voe, true); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yoe), Fpe), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), bwc), V5c), jX), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zoe), Fpe), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), U5c), BI), pqb(L5c)))); - o4c(a, Zoe, Yoe, Ivc); - o4c(a, Zoe, Yoe, Jvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $oe), Fpe), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), U5c), BI), pqb(L5c)))); - o4c(a, $oe, Yoe, Lvc); - o4c(a, $oe, Yoe, Mvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _oe), Gpe), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), Tvc), V5c), HW), pqb(L5c)))); - o4c(a, _oe, Yoe, Uvc); - o4c(a, _oe, Yoe, Vvc); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), ape), Gpe), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), Y5c), yK), pqb(L5c)))); - o4c(a, ape, _oe, Ovc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bpe), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), Qvc), X5c), JI), pqb(L5c)))); - o4c(a, bpe, _oe, Rvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cpe), Hpe), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), gwc), V5c), iX), pqb(L5c)))); - o4c(a, cpe, Yoe, hwc); - o4c(a, cpe, Yoe, iwc); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), dpe), Hpe), "Valid Indices for Wrapping"), null), Y5c), yK), pqb(L5c)))); - o4c(a, dpe, Yoe, dwc); - o4c(a, dpe, Yoe, ewc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), epe), Ipe), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), true), T5c), wI), pqb(L5c)))); - o4c(a, epe, Yoe, Zvc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fpe), Ipe), "Distance Penalty When Improving Cuts"), null), 2), U5c), BI), pqb(L5c)))); - o4c(a, fpe, Yoe, Xvc); - o4c(a, fpe, epe, true); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gpe), Ipe), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), true), T5c), wI), pqb(L5c)))); - o4c(a, gpe, Yoe, _vc); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hpe), Jpe), "Edge Label Side Selection"), "Method to decide on edge label sides."), tuc), V5c), LW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ipe), Jpe), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), ruc), V5c), EW), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), jpe), Kpe), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), Wtc), V5c), bX), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), kpe), Kpe), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), false), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lpe), Kpe), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), Ptc), V5c), hQ), pqb(L5c)))); - o4c(a, lpe, zme, null); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mpe), Kpe), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), Ttc), V5c), ZW), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), npe), Kpe), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c)))); - o4c(a, npe, jpe, null); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ope), Kpe), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c)))); - o4c(a, ope, jpe, null); - Oyc((new Pyc(), a)); - }; - var Itc, Jtc, Ktc, Ltc, Mtc, Ntc, Otc, Ptc, Qtc, Rtc, Stc, Ttc, Utc, Vtc, Wtc, Xtc, Ytc, Ztc, $tc, _tc, auc, buc, cuc, duc, euc, fuc, guc, huc, iuc, juc, kuc, luc, muc, nuc, ouc, puc, quc, ruc, suc, tuc, uuc, vuc, wuc, xuc, yuc, zuc, Auc, Buc, Cuc, Duc, Euc, Fuc, Guc, Huc, Iuc, Juc, Kuc, Luc, Muc, Nuc, Ouc, Puc, Quc, Ruc, Suc, Tuc, Uuc, Vuc, Wuc, Xuc, Yuc, Zuc, $uc, _uc, avc, bvc, cvc, dvc, evc, fvc, gvc, hvc, ivc, jvc, kvc, lvc, mvc, nvc, ovc, pvc, qvc, rvc, svc, tvc, uvc, vvc, wvc, xvc, yvc, zvc, Avc, Bvc, Cvc, Dvc, Evc, Fvc, Gvc, Hvc, Ivc, Jvc, Kvc, Lvc, Mvc, Nvc, Ovc, Pvc, Qvc, Rvc, Svc, Tvc, Uvc, Vvc, Wvc, Xvc, Yvc, Zvc, $vc, _vc, awc, bwc, cwc, dwc, ewc, fwc, gwc, hwc, iwc; - var UW = mdb(Sne, "LayeredMetaDataProvider", 848); - bcb(986, 1, ale, Pyc); - _.Qe = function Qyc(a) { - Oyc(a); - }; - var mwc, nwc, owc, pwc, qwc, rwc, swc, twc, uwc, vwc, wwc, xwc, ywc, zwc, Awc, Bwc, Cwc, Dwc, Ewc, Fwc, Gwc, Hwc, Iwc, Jwc, Kwc, Lwc, Mwc, Nwc, Owc, Pwc, Qwc, Rwc, Swc, Twc, Uwc, Vwc, Wwc, Xwc, Ywc, Zwc, $wc, _wc, axc, bxc, cxc, dxc, exc, fxc, gxc, hxc, ixc, jxc, kxc, lxc, mxc, nxc, oxc, pxc, qxc, rxc, sxc, txc, uxc, vxc, wxc, xxc, yxc, zxc, Axc, Bxc, Cxc, Dxc, Exc, Fxc, Gxc, Hxc, Ixc, Jxc, Kxc, Lxc, Mxc, Nxc, Oxc, Pxc, Qxc, Rxc, Sxc, Txc, Uxc, Vxc, Wxc, Xxc, Yxc, Zxc, $xc, _xc, ayc, byc, cyc, dyc, eyc, fyc, gyc, hyc, iyc, jyc, kyc, lyc, myc, nyc, oyc, pyc, qyc, ryc, syc, tyc, uyc, vyc, wyc, xyc, yyc, zyc, Ayc, Byc, Cyc, Dyc, Eyc, Fyc, Gyc, Hyc, Iyc, Jyc, Kyc, Lyc, Myc; - var WW = mdb(Sne, "LayeredOptions", 986); - bcb(987, 1, {}, Ryc); - _.$e = function Syc() { - var a; - return a = new jUb(), a; - }; - _._e = function Tyc(a) { - }; - var VW = mdb(Sne, "LayeredOptions/LayeredFactory", 987); - bcb(1372, 1, {}); - _.a = 0; - var Uyc; - var $1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder", 1372); - bcb(779, 1372, {}, ezc); - var bzc, czc; - var XW = mdb(Sne, "LayeredSpacings/LayeredSpacingsBuilder", 779); - bcb(313, 22, { 3: 1, 35: 1, 22: 1, 313: 1, 246: 1, 234: 1 }, nzc); - _.Kf = function pzc() { - return mzc(this); - }; - _.Xf = function ozc() { - return mzc(this); - }; - var fzc, gzc, hzc, izc, jzc, kzc; - var YW = ndb(Sne, "LayeringStrategy", 313, CI, rzc, qzc); - var szc; - bcb(378, 22, { 3: 1, 35: 1, 22: 1, 378: 1 }, zzc); - var uzc, vzc, wzc; - var ZW = ndb(Sne, "LongEdgeOrderingStrategy", 378, CI, Bzc, Azc); - var Czc; - bcb(197, 22, { 3: 1, 35: 1, 22: 1, 197: 1 }, Kzc); - var Ezc, Fzc, Gzc, Hzc; - var $W = ndb(Sne, "NodeFlexibility", 197, CI, Nzc, Mzc); - var Ozc; - bcb(315, 22, { 3: 1, 35: 1, 22: 1, 315: 1, 246: 1, 234: 1 }, Xzc); - _.Kf = function Zzc() { - return Wzc(this); - }; - _.Xf = function Yzc() { - return Wzc(this); - }; - var Qzc, Rzc, Szc, Tzc, Uzc; - var _W = ndb(Sne, "NodePlacementStrategy", 315, CI, _zc, $zc); - var aAc; - bcb(260, 22, { 3: 1, 35: 1, 22: 1, 260: 1 }, lAc); - var cAc, dAc, eAc, fAc, gAc, hAc, iAc, jAc; - var aX = ndb(Sne, "NodePromotionStrategy", 260, CI, nAc, mAc); - var oAc; - bcb(339, 22, { 3: 1, 35: 1, 22: 1, 339: 1 }, uAc); - var qAc, rAc, sAc; - var bX = ndb(Sne, "OrderingStrategy", 339, CI, wAc, vAc); - var xAc; - bcb(421, 22, { 3: 1, 35: 1, 22: 1, 421: 1 }, CAc); - var zAc, AAc; - var cX = ndb(Sne, "PortSortingStrategy", 421, CI, EAc, DAc); - var FAc; - bcb(452, 22, { 3: 1, 35: 1, 22: 1, 452: 1 }, LAc); - var HAc, IAc, JAc; - var dX = ndb(Sne, "PortType", 452, CI, NAc, MAc); - var OAc; - bcb(375, 22, { 3: 1, 35: 1, 22: 1, 375: 1 }, UAc); - var QAc, RAc, SAc; - var eX = ndb(Sne, "SelfLoopDistributionStrategy", 375, CI, WAc, VAc); - var XAc; - bcb(376, 22, { 3: 1, 35: 1, 22: 1, 376: 1 }, aBc); - var ZAc, $Ac; - var fX = ndb(Sne, "SelfLoopOrderingStrategy", 376, CI, cBc, bBc); - var dBc; - bcb(304, 1, { 304: 1 }, oBc); - var gX = mdb(Sne, "Spacings", 304); - bcb(336, 22, { 3: 1, 35: 1, 22: 1, 336: 1 }, uBc); - var qBc, rBc, sBc; - var hX = ndb(Sne, "SplineRoutingMode", 336, CI, wBc, vBc); - var xBc; - bcb(338, 22, { 3: 1, 35: 1, 22: 1, 338: 1 }, DBc); - var zBc, ABc, BBc; - var iX = ndb(Sne, "ValidifyStrategy", 338, CI, FBc, EBc); - var GBc; - bcb(377, 22, { 3: 1, 35: 1, 22: 1, 377: 1 }, MBc); - var IBc, JBc, KBc; - var jX = ndb(Sne, "WrappingStrategy", 377, CI, OBc, NBc); - var PBc; - bcb(1383, 1, Bqe, VBc); - _.Yf = function WBc(a) { - return BD(a, 37), RBc; - }; - _.pf = function XBc(a, b) { - UBc(this, BD(a, 37), b); - }; - var RBc; - var kX = mdb(Cqe, "DepthFirstCycleBreaker", 1383); - bcb(782, 1, Bqe, aCc); - _.Yf = function cCc(a) { - return BD(a, 37), YBc; - }; - _.pf = function dCc(a, b) { - $Bc(this, BD(a, 37), b); - }; - _.Zf = function bCc(a) { - return BD(Ikb(a, Bub(this.d, a.c.length)), 10); - }; - var YBc; - var lX = mdb(Cqe, "GreedyCycleBreaker", 782); - bcb(1386, 782, Bqe, eCc); - _.Zf = function fCc(a) { - var b, c, d, e; - e = null; - b = Ohe; - for (d = new olb(a); d.a < d.c.c.length; ) { - c = BD(mlb(d), 10); - if (wNb(c, (wtc(), Zsc)) && BD(vNb(c, Zsc), 19).a < b) { - b = BD(vNb(c, Zsc), 19).a; - e = c; - } - } - if (!e) { - return BD(Ikb(a, Bub(this.d, a.c.length)), 10); - } - return e; - }; - var mX = mdb(Cqe, "GreedyModelOrderCycleBreaker", 1386); - bcb(1384, 1, Bqe, kCc); - _.Yf = function lCc(a) { - return BD(a, 37), gCc; - }; - _.pf = function mCc(a, b) { - jCc(this, BD(a, 37), b); - }; - var gCc; - var nX = mdb(Cqe, "InteractiveCycleBreaker", 1384); - bcb(1385, 1, Bqe, rCc); - _.Yf = function sCc(a) { - return BD(a, 37), nCc; - }; - _.pf = function tCc(a, b) { - qCc(this, BD(a, 37), b); - }; - _.a = 0; - _.b = 0; - var nCc; - var oX = mdb(Cqe, "ModelOrderCycleBreaker", 1385); - bcb(1389, 1, Bqe, DCc); - _.Yf = function ECc(a) { - return BD(a, 37), uCc; - }; - _.pf = function FCc(a, b) { - BCc(this, BD(a, 37), b); - }; - var uCc; - var rX = mdb(Dqe, "CoffmanGrahamLayerer", 1389); - bcb(1390, 1, Dke, GCc); - _.ue = function HCc(a, b) { - return xCc(this.a, BD(a, 10), BD(b, 10)); - }; - _.Fb = function ICc(a) { - return this === a; - }; - _.ve = function JCc() { - return new tpb(this); - }; - var pX = mdb(Dqe, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1390); - bcb(1391, 1, Dke, KCc); - _.ue = function LCc(a, b) { - return ACc(this.a, BD(a, 10), BD(b, 10)); - }; - _.Fb = function MCc(a) { - return this === a; - }; - _.ve = function NCc() { - return new tpb(this); - }; - var qX = mdb(Dqe, "CoffmanGrahamLayerer/lambda$1$Type", 1391); - bcb(1392, 1, Bqe, QCc); - _.Yf = function RCc(a) { - return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), mUb, w8b), nUb, v8b); - }; - _.pf = function SCc(a, b) { - PCc(this, BD(a, 37), b); - }; - var tX = mdb(Dqe, "InteractiveLayerer", 1392); - bcb(569, 1, { 569: 1 }, TCc); - _.a = 0; - _.c = 0; - var sX = mdb(Dqe, "InteractiveLayerer/LayerSpan", 569); - bcb(1388, 1, Bqe, ZCc); - _.Yf = function $Cc(a) { - return BD(a, 37), UCc; - }; - _.pf = function _Cc(a, b) { - WCc(this, BD(a, 37), b); - }; - var UCc; - var uX = mdb(Dqe, "LongestPathLayerer", 1388); - bcb(1395, 1, Bqe, iDc); - _.Yf = function jDc(a) { - return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b); - }; - _.pf = function kDc(a, b) { - gDc(this, BD(a, 37), b); - }; - _.a = 0; - _.b = 0; - _.d = 0; - var aDc, bDc; - var wX = mdb(Dqe, "MinWidthLayerer", 1395); - bcb(1396, 1, Dke, mDc); - _.ue = function nDc(a, b) { - return lDc(this, BD(a, 10), BD(b, 10)); - }; - _.Fb = function oDc(a) { - return this === a; - }; - _.ve = function pDc() { - return new tpb(this); - }; - var vX = mdb(Dqe, "MinWidthLayerer/MinOutgoingEdgesComparator", 1396); - bcb(1387, 1, Bqe, xDc); - _.Yf = function yDc(a) { - return BD(a, 37), qDc; - }; - _.pf = function zDc(a, b) { - wDc(this, BD(a, 37), b); - }; - var qDc; - var xX = mdb(Dqe, "NetworkSimplexLayerer", 1387); - bcb(1393, 1, Bqe, LDc); - _.Yf = function MDc(a) { - return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b); - }; - _.pf = function NDc(a, b) { - IDc(this, BD(a, 37), b); - }; - _.d = 0; - _.f = 0; - _.g = 0; - _.i = 0; - _.s = 0; - _.t = 0; - _.u = 0; - var zX = mdb(Dqe, "StretchWidthLayerer", 1393); - bcb(1394, 1, Dke, PDc); - _.ue = function QDc(a, b) { - return ODc(BD(a, 10), BD(b, 10)); - }; - _.Fb = function RDc(a) { - return this === a; - }; - _.ve = function SDc() { - return new tpb(this); - }; - var yX = mdb(Dqe, "StretchWidthLayerer/1", 1394); - bcb(402, 1, Eqe); - _.Nf = function fEc(a, b, c, d, e, f) { - }; - _._f = function dEc(a, b, c) { - return YDc(this, a, b, c); - }; - _.Mf = function eEc() { - this.g = KC(VD, Fqe, 25, this.d, 15, 1); - this.f = KC(VD, Fqe, 25, this.d, 15, 1); - }; - _.Of = function gEc(a, b) { - this.e[a] = KC(WD, oje, 25, b[a].length, 15, 1); - }; - _.Pf = function hEc(a, b, c) { - var d; - d = c[a][b]; - d.p = b; - this.e[a][b] = b; - }; - _.Qf = function iEc(a, b, c, d) { - BD(Ikb(d[a][b].j, c), 11).p = this.d++; - }; - _.b = 0; - _.c = 0; - _.d = 0; - var BX = mdb(Gqe, "AbstractBarycenterPortDistributor", 402); - bcb(1633, 1, Dke, jEc); - _.ue = function kEc(a, b) { - return _Dc(this.a, BD(a, 11), BD(b, 11)); - }; - _.Fb = function lEc(a) { - return this === a; - }; - _.ve = function mEc() { - return new tpb(this); - }; - var AX = mdb(Gqe, "AbstractBarycenterPortDistributor/lambda$0$Type", 1633); - bcb(817, 1, Mne, uEc); - _.Nf = function xEc(a, b, c, d, e, f) { - }; - _.Pf = function zEc(a, b, c) { - }; - _.Qf = function AEc(a, b, c, d) { - }; - _.Lf = function vEc() { - return false; - }; - _.Mf = function wEc() { - this.c = this.e.a; - this.g = this.f.g; - }; - _.Of = function yEc(a, b) { - b[a][0].c.p = a; - }; - _.Rf = function BEc() { - return false; - }; - _.ag = function CEc(a, b, c, d) { - if (c) { - rEc(this, a); - } else { - oEc(this, a, d); - pEc(this, a, b); - } - if (a.c.length > 1) { - Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, BD(this, 660)) : (mmb(), Okb(a, this.d)); - PEc(this.e, a); - } - }; - _.Sf = function DEc(a, b, c, d) { - var e, f, g10, h, i10, j, k; - if (b != sEc(c, a.length)) { - f = a[b - (c ? 1 : -1)]; - UDc(this.f, f, c ? (KAc(), IAc) : (KAc(), HAc)); - } - e = a[b][0]; - k = !d || e.k == (j0b(), e0b); - j = Ou(a[b]); - this.ag(j, k, false, c); - g10 = 0; - for (i10 = new olb(j); i10.a < i10.c.c.length; ) { - h = BD(mlb(i10), 10); - a[b][g10++] = h; - } - return false; - }; - _.Tf = function EEc(a, b) { - var c, d, e, f, g10; - g10 = sEc(b, a.length); - f = Ou(a[g10]); - this.ag(f, false, true, b); - c = 0; - for (e = new olb(f); e.a < e.c.c.length; ) { - d = BD(mlb(e), 10); - a[g10][c++] = d; - } - return false; - }; - var EX = mdb(Gqe, "BarycenterHeuristic", 817); - bcb(658, 1, { 658: 1 }, FEc); - _.Ib = function GEc() { - return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]"; - }; - _.b = 0; - _.d = 0; - _.e = false; - var CX = mdb(Gqe, "BarycenterHeuristic/BarycenterState", 658); - bcb(1802, 1, Dke, HEc); - _.ue = function IEc(a, b) { - return qEc(this.a, BD(a, 10), BD(b, 10)); - }; - _.Fb = function JEc(a) { - return this === a; - }; - _.ve = function KEc() { - return new tpb(this); - }; - var DX = mdb(Gqe, "BarycenterHeuristic/lambda$0$Type", 1802); - bcb(816, 1, Mne, SEc); - _.Mf = function TEc() { - }; - _.Nf = function UEc(a, b, c, d, e, f) { - }; - _.Qf = function XEc(a, b, c, d) { - }; - _.Of = function VEc(a, b) { - this.a[a] = KC(CX, { 3: 1, 4: 1, 5: 1, 2018: 1 }, 658, b[a].length, 0, 1); - this.b[a] = KC(FX, { 3: 1, 4: 1, 5: 1, 2019: 1 }, 233, b[a].length, 0, 1); - }; - _.Pf = function WEc(a, b, c) { - OEc(this, c[a][b], true); - }; - _.c = false; - var HX = mdb(Gqe, "ForsterConstraintResolver", 816); - bcb(233, 1, { 233: 1 }, $Ec, _Ec); - _.Ib = function aFc() { - var a, b; - b = new Ufb(); - b.a += "["; - for (a = 0; a < this.d.length; a++) { - Qfb(b, a0b(this.d[a])); - REc(this.g, this.d[0]).a != null && Qfb(Qfb((b.a += "<", b), Jdb(REc(this.g, this.d[0]).a)), ">"); - a < this.d.length - 1 && (b.a += She, b); - } - return (b.a += "]", b).a; - }; - _.a = 0; - _.c = 0; - _.f = 0; - var FX = mdb(Gqe, "ForsterConstraintResolver/ConstraintGroup", 233); - bcb(1797, 1, qie, bFc); - _.td = function cFc(a) { - OEc(this.a, BD(a, 10), false); - }; - var GX = mdb(Gqe, "ForsterConstraintResolver/lambda$0$Type", 1797); - bcb(214, 1, { 214: 1, 225: 1 }, fFc); - _.Nf = function hFc(a, b, c, d, e, f) { - }; - _.Of = function iFc(a, b) { - }; - _.Mf = function gFc() { - this.r = KC(WD, oje, 25, this.n, 15, 1); - }; - _.Pf = function jFc(a, b, c) { - var d, e; - e = c[a][b]; - d = e.e; - !!d && Ekb(this.b, d); - }; - _.Qf = function kFc(a, b, c, d) { - ++this.n; - }; - _.Ib = function lFc() { - return wlb(this.e, new Tqb()); - }; - _.g = false; - _.i = false; - _.n = 0; - _.s = false; - var IX = mdb(Gqe, "GraphInfoHolder", 214); - bcb(1832, 1, Mne, pFc); - _.Nf = function sFc(a, b, c, d, e, f) { - }; - _.Of = function tFc(a, b) { - }; - _.Qf = function vFc(a, b, c, d) { - }; - _._f = function qFc(a, b, c) { - c && b > 0 ? (RHc(this.a, a[b - 1], a[b]), void 0) : !c && b < a.length - 1 ? (RHc(this.a, a[b], a[b + 1]), void 0) : THc(this.a, a[b], c ? (Ucd(), Tcd) : (Ucd(), zcd)); - return mFc(this, a, b, c); - }; - _.Mf = function rFc() { - this.d = KC(WD, oje, 25, this.c, 15, 1); - this.a = new dIc(this.d); - }; - _.Pf = function uFc(a, b, c) { - var d; - d = c[a][b]; - this.c += d.j.c.length; - }; - _.c = 0; - var JX = mdb(Gqe, "GreedyPortDistributor", 1832); - bcb(1401, 1, Bqe, CFc); - _.Yf = function DFc(a) { - return zFc(BD(a, 37)); - }; - _.pf = function EFc(a, b) { - BFc(BD(a, 37), b); - }; - var xFc; - var LX = mdb(Gqe, "InteractiveCrossingMinimizer", 1401); - bcb(1402, 1, Dke, GFc); - _.ue = function HFc(a, b) { - return FFc(this, BD(a, 10), BD(b, 10)); - }; - _.Fb = function IFc(a) { - return this === a; - }; - _.ve = function JFc() { - return new tpb(this); - }; - var KX = mdb(Gqe, "InteractiveCrossingMinimizer/1", 1402); - bcb(507, 1, { 507: 1, 123: 1, 51: 1 }, fGc); - _.Yf = function gGc(a) { - var b; - return BD(a, 37), b = k3c(KFc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b; - }; - _.pf = function hGc(a, b) { - YFc(this, BD(a, 37), b); - }; - _.e = 0; - var KFc; - var RX = mdb(Gqe, "LayerSweepCrossingMinimizer", 507); - bcb(1398, 1, qie, iGc); - _.td = function jGc(a) { - MFc(this.a, BD(a, 214)); - }; - var MX = mdb(Gqe, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1398); - bcb(1399, 1, qie, kGc); - _.td = function lGc(a) { - VFc(this.a, BD(a, 214)); - }; - var NX = mdb(Gqe, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1399); - bcb(1400, 1, qie, mGc); - _.td = function nGc(a) { - XFc(this.a, BD(a, 214)); - }; - var OX = mdb(Gqe, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1400); - bcb(454, 22, { 3: 1, 35: 1, 22: 1, 454: 1 }, sGc); - var oGc, pGc, qGc; - var PX = ndb(Gqe, "LayerSweepCrossingMinimizer/CrossMinType", 454, CI, uGc, tGc); - var vGc; - bcb(1397, 1, Oie, xGc); - _.Mb = function yGc(a) { - return LFc(), BD(a, 29).a.c.length == 0; - }; - var QX = mdb(Gqe, "LayerSweepCrossingMinimizer/lambda$0$Type", 1397); - bcb(1799, 1, Mne, BGc); - _.Mf = function CGc() { - }; - _.Nf = function DGc(a, b, c, d, e, f) { - }; - _.Qf = function GGc(a, b, c, d) { - }; - _.Of = function EGc(a, b) { - b[a][0].c.p = a; - this.b[a] = KC(SX, { 3: 1, 4: 1, 5: 1, 1944: 1 }, 659, b[a].length, 0, 1); - }; - _.Pf = function FGc(a, b, c) { - var d; - d = c[a][b]; - d.p = b; - NC(this.b[a], b, new HGc()); - }; - var VX = mdb(Gqe, "LayerSweepTypeDecider", 1799); - bcb(659, 1, { 659: 1 }, HGc); - _.Ib = function IGc() { - return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]"; - }; - _.a = 0; - _.b = 0; - _.c = 0; - var SX = mdb(Gqe, "LayerSweepTypeDecider/NodeInfo", 659); - bcb(1800, 1, Vke, JGc); - _.Lb = function KGc(a) { - return a1b(new b1b(BD(a, 11).b)); - }; - _.Fb = function LGc(a) { - return this === a; - }; - _.Mb = function MGc(a) { - return a1b(new b1b(BD(a, 11).b)); - }; - var TX = mdb(Gqe, "LayerSweepTypeDecider/lambda$0$Type", 1800); - bcb(1801, 1, Vke, NGc); - _.Lb = function OGc(a) { - return a1b(new b1b(BD(a, 11).b)); - }; - _.Fb = function PGc(a) { - return this === a; - }; - _.Mb = function QGc(a) { - return a1b(new b1b(BD(a, 11).b)); - }; - var UX = mdb(Gqe, "LayerSweepTypeDecider/lambda$1$Type", 1801); - bcb(1833, 402, Eqe, RGc); - _.$f = function SGc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l; - j = this.g; - switch (c.g) { - case 1: { - d = 0; - e = 0; - for (i10 = new olb(a.j); i10.a < i10.c.c.length; ) { - g10 = BD(mlb(i10), 11); - if (g10.e.c.length != 0) { - ++d; - g10.j == (Ucd(), Acd) && ++e; - } - } - f = b + e; - l = b + d; - for (h = W_b(a, (KAc(), HAc)).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 11); - if (g10.j == (Ucd(), Acd)) { - j[g10.p] = f; - --f; - } else { - j[g10.p] = l; - --l; - } - } - return d; - } - case 2: { - k = 0; - for (h = W_b(a, (KAc(), IAc)).Kc(); h.Ob(); ) { - g10 = BD(h.Pb(), 11); - ++k; - j[g10.p] = b + k; - } - return k; - } - default: - throw vbb(new Vdb()); - } - }; - var WX = mdb(Gqe, "LayerTotalPortDistributor", 1833); - bcb(660, 817, { 660: 1, 225: 1 }, XGc); - _.ag = function ZGc(a, b, c, d) { - if (c) { - rEc(this, a); - } else { - oEc(this, a, d); - pEc(this, a, b); - } - if (a.c.length > 1) { - Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, this) : (mmb(), Okb(a, this.d)); - Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), Awc))) || PEc(this.e, a); - } - }; - var YX = mdb(Gqe, "ModelOrderBarycenterHeuristic", 660); - bcb(1803, 1, Dke, $Gc); - _.ue = function _Gc(a, b) { - return VGc(this.a, BD(a, 10), BD(b, 10)); - }; - _.Fb = function aHc(a) { - return this === a; - }; - _.ve = function bHc() { - return new tpb(this); - }; - var XX = mdb(Gqe, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1803); - bcb(1403, 1, Bqe, fHc); - _.Yf = function gHc(a) { - var b; - return BD(a, 37), b = k3c(cHc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b; - }; - _.pf = function hHc(a, b) { - eHc((BD(a, 37), b)); - }; - var cHc; - var ZX = mdb(Gqe, "NoCrossingMinimizer", 1403); - bcb(796, 402, Eqe, iHc); - _.$f = function jHc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n; - l = this.g; - switch (c.g) { - case 1: { - e = 0; - f = 0; - for (k = new olb(a.j); k.a < k.c.c.length; ) { - i10 = BD(mlb(k), 11); - if (i10.e.c.length != 0) { - ++e; - i10.j == (Ucd(), Acd) && ++f; - } - } - d = 1 / (e + 1); - g10 = b + f * d; - n = b + 1 - d; - for (j = W_b(a, (KAc(), HAc)).Kc(); j.Ob(); ) { - i10 = BD(j.Pb(), 11); - if (i10.j == (Ucd(), Acd)) { - l[i10.p] = g10; - g10 -= d; - } else { - l[i10.p] = n; - n -= d; - } - } - break; - } - case 2: { - h = 0; - for (k = new olb(a.j); k.a < k.c.c.length; ) { - i10 = BD(mlb(k), 11); - i10.g.c.length == 0 || ++h; - } - d = 1 / (h + 1); - m = b + d; - for (j = W_b(a, (KAc(), IAc)).Kc(); j.Ob(); ) { - i10 = BD(j.Pb(), 11); - l[i10.p] = m; - m += d; - } - break; - } - default: - throw vbb(new Wdb("Port type is undefined")); - } - return 1; - }; - var $X = mdb(Gqe, "NodeRelativePortDistributor", 796); - bcb(807, 1, {}, nHc, oHc); - var _X = mdb(Gqe, "SweepCopy", 807); - bcb(1798, 1, Mne, rHc); - _.Of = function uHc(a, b) { - }; - _.Mf = function sHc() { - var a; - a = KC(WD, oje, 25, this.f, 15, 1); - this.d = new LIc(a); - this.a = new dIc(a); - }; - _.Nf = function tHc(a, b, c, d, e, f) { - var g10; - g10 = BD(Ikb(f[a][b].j, c), 11); - e.c == g10 && e.c.i.c == e.d.i.c && ++this.e[a]; - }; - _.Pf = function vHc(a, b, c) { - var d; - d = c[a][b]; - this.c[a] = this.c[a] | d.k == (j0b(), i0b); - }; - _.Qf = function wHc(a, b, c, d) { - var e; - e = BD(Ikb(d[a][b].j, c), 11); - e.p = this.f++; - e.g.c.length + e.e.c.length > 1 && (e.j == (Ucd(), zcd) ? this.b[a] = true : e.j == Tcd && a > 0 && (this.b[a - 1] = true)); - }; - _.f = 0; - var aY = mdb(Lne, "AllCrossingsCounter", 1798); - bcb(587, 1, {}, BHc); - _.b = 0; - _.d = 0; - var bY = mdb(Lne, "BinaryIndexedTree", 587); - bcb(524, 1, {}, dIc); - var DHc, EHc; - var lY = mdb(Lne, "CrossingsCounter", 524); - bcb(1906, 1, Dke, hIc); - _.ue = function iIc(a, b) { - return YHc(this.a, BD(a, 11), BD(b, 11)); - }; - _.Fb = function jIc(a) { - return this === a; - }; - _.ve = function kIc() { - return new tpb(this); - }; - var cY = mdb(Lne, "CrossingsCounter/lambda$0$Type", 1906); - bcb(1907, 1, Dke, lIc); - _.ue = function mIc(a, b) { - return ZHc(this.a, BD(a, 11), BD(b, 11)); - }; - _.Fb = function nIc(a) { - return this === a; - }; - _.ve = function oIc() { - return new tpb(this); - }; - var dY = mdb(Lne, "CrossingsCounter/lambda$1$Type", 1907); - bcb(1908, 1, Dke, pIc); - _.ue = function qIc(a, b) { - return $Hc(this.a, BD(a, 11), BD(b, 11)); - }; - _.Fb = function rIc(a) { - return this === a; - }; - _.ve = function sIc() { - return new tpb(this); - }; - var eY = mdb(Lne, "CrossingsCounter/lambda$2$Type", 1908); - bcb(1909, 1, Dke, tIc); - _.ue = function uIc(a, b) { - return _Hc(this.a, BD(a, 11), BD(b, 11)); - }; - _.Fb = function vIc(a) { - return this === a; - }; - _.ve = function wIc() { - return new tpb(this); - }; - var fY = mdb(Lne, "CrossingsCounter/lambda$3$Type", 1909); - bcb(1910, 1, qie, xIc); - _.td = function yIc(a) { - eIc(this.a, BD(a, 11)); - }; - var gY = mdb(Lne, "CrossingsCounter/lambda$4$Type", 1910); - bcb(1911, 1, Oie, zIc); - _.Mb = function AIc(a) { - return fIc(this.a, BD(a, 11)); - }; - var hY = mdb(Lne, "CrossingsCounter/lambda$5$Type", 1911); - bcb(1912, 1, qie, CIc); - _.td = function DIc(a) { - BIc(this, a); - }; - var iY = mdb(Lne, "CrossingsCounter/lambda$6$Type", 1912); - bcb(1913, 1, qie, EIc); - _.td = function FIc(a) { - var b; - FHc(); - Wjb(this.b, (b = this.a, BD(a, 11), b)); - }; - var jY = mdb(Lne, "CrossingsCounter/lambda$7$Type", 1913); - bcb(826, 1, Vke, GIc); - _.Lb = function HIc(a) { - return FHc(), wNb(BD(a, 11), (wtc(), gtc)); - }; - _.Fb = function IIc(a) { - return this === a; - }; - _.Mb = function JIc(a) { - return FHc(), wNb(BD(a, 11), (wtc(), gtc)); - }; - var kY = mdb(Lne, "CrossingsCounter/lambda$8$Type", 826); - bcb(1905, 1, {}, LIc); - var pY = mdb(Lne, "HyperedgeCrossingsCounter", 1905); - bcb(467, 1, { 35: 1, 467: 1 }, NIc); - _.wd = function OIc(a) { - return MIc(this, BD(a, 467)); - }; - _.b = 0; - _.c = 0; - _.e = 0; - _.f = 0; - var oY = mdb(Lne, "HyperedgeCrossingsCounter/Hyperedge", 467); - bcb(362, 1, { 35: 1, 362: 1 }, QIc); - _.wd = function RIc(a) { - return PIc(this, BD(a, 362)); - }; - _.b = 0; - _.c = 0; - var nY = mdb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner", 362); - bcb(523, 22, { 3: 1, 35: 1, 22: 1, 523: 1 }, VIc); - var SIc, TIc; - var mY = ndb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 523, CI, XIc, WIc); - var YIc; - bcb(1405, 1, Bqe, dJc); - _.Yf = function eJc(a) { - return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? _Ic : null; - }; - _.pf = function fJc(a, b) { - cJc(this, BD(a, 37), b); - }; - var _Ic; - var rY = mdb(Hqe, "InteractiveNodePlacer", 1405); - bcb(1406, 1, Bqe, tJc); - _.Yf = function uJc(a) { - return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? gJc : null; - }; - _.pf = function vJc(a, b) { - rJc(this, BD(a, 37), b); - }; - var gJc, hJc, iJc; - var tY = mdb(Hqe, "LinearSegmentsNodePlacer", 1406); - bcb(257, 1, { 35: 1, 257: 1 }, zJc); - _.wd = function AJc(a) { - return wJc(this, BD(a, 257)); - }; - _.Fb = function BJc(a) { - var b; - if (JD(a, 257)) { - b = BD(a, 257); - return this.b == b.b; - } - return false; - }; - _.Hb = function CJc() { - return this.b; - }; - _.Ib = function DJc() { - return "ls" + Fe(this.e); - }; - _.a = 0; - _.b = 0; - _.c = -1; - _.d = -1; - _.g = 0; - var sY = mdb(Hqe, "LinearSegmentsNodePlacer/LinearSegment", 257); - bcb(1408, 1, Bqe, $Jc); - _.Yf = function _Jc(a) { - return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? EJc : null; - }; - _.pf = function hKc(a, b) { - WJc(this, BD(a, 37), b); - }; - _.b = 0; - _.g = 0; - var EJc; - var dZ = mdb(Hqe, "NetworkSimplexPlacer", 1408); - bcb(1427, 1, Dke, iKc); - _.ue = function jKc(a, b) { - return beb(BD(a, 19).a, BD(b, 19).a); - }; - _.Fb = function kKc(a) { - return this === a; - }; - _.ve = function lKc() { - return new tpb(this); - }; - var uY = mdb(Hqe, "NetworkSimplexPlacer/0methodref$compare$Type", 1427); - bcb(1429, 1, Dke, mKc); - _.ue = function nKc(a, b) { - return beb(BD(a, 19).a, BD(b, 19).a); - }; - _.Fb = function oKc(a) { - return this === a; - }; - _.ve = function pKc() { - return new tpb(this); - }; - var vY = mdb(Hqe, "NetworkSimplexPlacer/1methodref$compare$Type", 1429); - bcb(649, 1, { 649: 1 }, qKc); - var wY = mdb(Hqe, "NetworkSimplexPlacer/EdgeRep", 649); - bcb(401, 1, { 401: 1 }, rKc); - _.b = false; - var xY = mdb(Hqe, "NetworkSimplexPlacer/NodeRep", 401); - bcb(508, 12, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 12: 1, 14: 1, 15: 1, 54: 1, 508: 1 }, vKc); - var CY = mdb(Hqe, "NetworkSimplexPlacer/Path", 508); - bcb(1409, 1, {}, wKc); - _.Kb = function xKc(a) { - return BD(a, 17).d.i.k; - }; - var yY = mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$0$Type", 1409); - bcb(1410, 1, Oie, yKc); - _.Mb = function zKc(a) { - return BD(a, 267) == (j0b(), g0b); - }; - var zY = mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$1$Type", 1410); - bcb(1411, 1, {}, AKc); - _.Kb = function BKc(a) { - return BD(a, 17).d.i; - }; - var AY = mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$2$Type", 1411); - bcb(1412, 1, Oie, CKc); - _.Mb = function DKc(a) { - return eLc(Lzc(BD(a, 10))); - }; - var BY = mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$3$Type", 1412); - bcb(1413, 1, Oie, EKc); - _.Mb = function FKc(a) { - return dKc(BD(a, 11)); - }; - var DY = mdb(Hqe, "NetworkSimplexPlacer/lambda$0$Type", 1413); - bcb(1414, 1, qie, GKc); - _.td = function HKc(a) { - LJc(this.a, this.b, BD(a, 11)); - }; - var EY = mdb(Hqe, "NetworkSimplexPlacer/lambda$1$Type", 1414); - bcb(1423, 1, qie, IKc); - _.td = function JKc(a) { - MJc(this.a, BD(a, 17)); - }; - var FY = mdb(Hqe, "NetworkSimplexPlacer/lambda$10$Type", 1423); - bcb(1424, 1, {}, KKc); - _.Kb = function LKc(a) { - return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var GY = mdb(Hqe, "NetworkSimplexPlacer/lambda$11$Type", 1424); - bcb(1425, 1, qie, MKc); - _.td = function NKc(a) { - NJc(this.a, BD(a, 10)); - }; - var HY = mdb(Hqe, "NetworkSimplexPlacer/lambda$12$Type", 1425); - bcb(1426, 1, {}, OKc); - _.Kb = function PKc(a) { - return FJc(), meb(BD(a, 121).e); - }; - var IY = mdb(Hqe, "NetworkSimplexPlacer/lambda$13$Type", 1426); - bcb(1428, 1, {}, QKc); - _.Kb = function RKc(a) { - return FJc(), meb(BD(a, 121).e); - }; - var JY = mdb(Hqe, "NetworkSimplexPlacer/lambda$15$Type", 1428); - bcb(1430, 1, Oie, SKc); - _.Mb = function TKc(a) { - return FJc(), BD(a, 401).c.k == (j0b(), h0b); - }; - var KY = mdb(Hqe, "NetworkSimplexPlacer/lambda$17$Type", 1430); - bcb(1431, 1, Oie, UKc); - _.Mb = function VKc(a) { - return FJc(), BD(a, 401).c.j.c.length > 1; - }; - var LY = mdb(Hqe, "NetworkSimplexPlacer/lambda$18$Type", 1431); - bcb(1432, 1, qie, WKc); - _.td = function XKc(a) { - eKc(this.c, this.b, this.d, this.a, BD(a, 401)); - }; - _.c = 0; - _.d = 0; - var MY = mdb(Hqe, "NetworkSimplexPlacer/lambda$19$Type", 1432); - bcb(1415, 1, {}, YKc); - _.Kb = function ZKc(a) { - return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var NY = mdb(Hqe, "NetworkSimplexPlacer/lambda$2$Type", 1415); - bcb(1433, 1, qie, $Kc); - _.td = function _Kc(a) { - fKc(this.a, BD(a, 11)); - }; - _.a = 0; - var OY = mdb(Hqe, "NetworkSimplexPlacer/lambda$20$Type", 1433); - bcb(1434, 1, {}, aLc); - _.Kb = function bLc(a) { - return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var PY = mdb(Hqe, "NetworkSimplexPlacer/lambda$21$Type", 1434); - bcb(1435, 1, qie, cLc); - _.td = function dLc(a) { - OJc(this.a, BD(a, 10)); - }; - var QY = mdb(Hqe, "NetworkSimplexPlacer/lambda$22$Type", 1435); - bcb(1436, 1, Oie, fLc); - _.Mb = function gLc(a) { - return eLc(a); - }; - var RY = mdb(Hqe, "NetworkSimplexPlacer/lambda$23$Type", 1436); - bcb(1437, 1, {}, hLc); - _.Kb = function iLc(a) { - return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var SY = mdb(Hqe, "NetworkSimplexPlacer/lambda$24$Type", 1437); - bcb(1438, 1, Oie, jLc); - _.Mb = function kLc(a) { - return PJc(this.a, BD(a, 10)); - }; - var TY = mdb(Hqe, "NetworkSimplexPlacer/lambda$25$Type", 1438); - bcb(1439, 1, qie, lLc); - _.td = function mLc(a) { - QJc(this.a, this.b, BD(a, 10)); - }; - var UY = mdb(Hqe, "NetworkSimplexPlacer/lambda$26$Type", 1439); - bcb(1440, 1, Oie, nLc); - _.Mb = function oLc(a) { - return FJc(), !OZb(BD(a, 17)); - }; - var VY = mdb(Hqe, "NetworkSimplexPlacer/lambda$27$Type", 1440); - bcb(1441, 1, Oie, pLc); - _.Mb = function qLc(a) { - return FJc(), !OZb(BD(a, 17)); - }; - var WY = mdb(Hqe, "NetworkSimplexPlacer/lambda$28$Type", 1441); - bcb(1442, 1, {}, rLc); - _.Ce = function sLc(a, b) { - return RJc(this.a, BD(a, 29), BD(b, 29)); - }; - var XY = mdb(Hqe, "NetworkSimplexPlacer/lambda$29$Type", 1442); - bcb(1416, 1, {}, tLc); - _.Kb = function uLc(a) { - return FJc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var YY = mdb(Hqe, "NetworkSimplexPlacer/lambda$3$Type", 1416); - bcb(1417, 1, Oie, vLc); - _.Mb = function wLc(a) { - return FJc(), cKc(BD(a, 17)); - }; - var ZY = mdb(Hqe, "NetworkSimplexPlacer/lambda$4$Type", 1417); - bcb(1418, 1, qie, xLc); - _.td = function yLc(a) { - XJc(this.a, BD(a, 17)); - }; - var $Y = mdb(Hqe, "NetworkSimplexPlacer/lambda$5$Type", 1418); - bcb(1419, 1, {}, zLc); - _.Kb = function ALc(a) { - return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16)); - }; - var _Y = mdb(Hqe, "NetworkSimplexPlacer/lambda$6$Type", 1419); - bcb(1420, 1, Oie, BLc); - _.Mb = function CLc(a) { - return FJc(), BD(a, 10).k == (j0b(), h0b); - }; - var aZ = mdb(Hqe, "NetworkSimplexPlacer/lambda$7$Type", 1420); - bcb(1421, 1, {}, DLc); - _.Kb = function ELc(a) { - return FJc(), new YAb(null, new Lub(new Sr(ur(O_b(BD(a, 10)).a.Kc(), new Sq())))); - }; - var bZ = mdb(Hqe, "NetworkSimplexPlacer/lambda$8$Type", 1421); - bcb(1422, 1, Oie, FLc); - _.Mb = function GLc(a) { - return FJc(), NZb(BD(a, 17)); - }; - var cZ = mdb(Hqe, "NetworkSimplexPlacer/lambda$9$Type", 1422); - bcb(1404, 1, Bqe, KLc); - _.Yf = function LLc(a) { - return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? HLc : null; - }; - _.pf = function MLc(a, b) { - JLc(BD(a, 37), b); - }; - var HLc; - var eZ = mdb(Hqe, "SimpleNodePlacer", 1404); - bcb(180, 1, { 180: 1 }, ULc); - _.Ib = function VLc() { - var a; - a = ""; - this.c == (YLc(), XLc) ? a += kle : this.c == WLc && (a += jle); - this.o == (eMc(), cMc) ? a += vle : this.o == dMc ? a += "UP" : a += "BALANCED"; - return a; - }; - var hZ = mdb(Kqe, "BKAlignedLayout", 180); - bcb(516, 22, { 3: 1, 35: 1, 22: 1, 516: 1 }, ZLc); - var WLc, XLc; - var fZ = ndb(Kqe, "BKAlignedLayout/HDirection", 516, CI, _Lc, $Lc); - var aMc; - bcb(515, 22, { 3: 1, 35: 1, 22: 1, 515: 1 }, fMc); - var cMc, dMc; - var gZ = ndb(Kqe, "BKAlignedLayout/VDirection", 515, CI, hMc, gMc); - var iMc; - bcb(1634, 1, {}, mMc); - var iZ = mdb(Kqe, "BKAligner", 1634); - bcb(1637, 1, {}, rMc); - var lZ = mdb(Kqe, "BKCompactor", 1637); - bcb(654, 1, { 654: 1 }, sMc); - _.a = 0; - var jZ = mdb(Kqe, "BKCompactor/ClassEdge", 654); - bcb(458, 1, { 458: 1 }, uMc); - _.a = null; - _.b = 0; - var kZ = mdb(Kqe, "BKCompactor/ClassNode", 458); - bcb(1407, 1, Bqe, CMc); - _.Yf = function GMc(a) { - return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? vMc : null; - }; - _.pf = function HMc(a, b) { - BMc(this, BD(a, 37), b); - }; - _.d = false; - var vMc; - var mZ = mdb(Kqe, "BKNodePlacer", 1407); - bcb(1635, 1, {}, JMc); - _.d = 0; - var oZ = mdb(Kqe, "NeighborhoodInformation", 1635); - bcb(1636, 1, Dke, OMc); - _.ue = function PMc(a, b) { - return NMc(this, BD(a, 46), BD(b, 46)); - }; - _.Fb = function QMc(a) { - return this === a; - }; - _.ve = function RMc() { - return new tpb(this); - }; - var nZ = mdb(Kqe, "NeighborhoodInformation/NeighborComparator", 1636); - bcb(808, 1, {}); - var sZ = mdb(Kqe, "ThresholdStrategy", 808); - bcb(1763, 808, {}, WMc); - _.bg = function XMc(a, b, c) { - return this.a.o == (eMc(), dMc) ? Pje : Qje; - }; - _.cg = function YMc() { - }; - var pZ = mdb(Kqe, "ThresholdStrategy/NullThresholdStrategy", 1763); - bcb(579, 1, { 579: 1 }, ZMc); - _.c = false; - _.d = false; - var qZ = mdb(Kqe, "ThresholdStrategy/Postprocessable", 579); - bcb(1764, 808, {}, bNc); - _.bg = function cNc(a, b, c) { - var d, e, f; - e = b == c; - d = this.a.a[c.p] == b; - if (!(e || d)) { - return a; - } - f = a; - if (this.a.c == (YLc(), XLc)) { - e && (f = $Mc(this, b, true)); - !isNaN(f) && !isFinite(f) && d && (f = $Mc(this, c, false)); - } else { - e && (f = $Mc(this, b, true)); - !isNaN(f) && !isFinite(f) && d && (f = $Mc(this, c, false)); - } - return f; - }; - _.cg = function dNc() { - var a, b, c, d, e; - while (this.d.b != 0) { - e = BD(Ksb(this.d), 579); - d = _Mc(this, e); - if (!d.a) { - continue; - } - a = d.a; - c = Ccb(this.a.f[this.a.g[e.b.p].p]); - if (!c && !OZb(a) && a.c.i.c == a.d.i.c) { - continue; - } - b = aNc(this, e); - b || swb(this.e, e); - } - while (this.e.a.c.length != 0) { - aNc(this, BD(rwb(this.e), 579)); - } - }; - var rZ = mdb(Kqe, "ThresholdStrategy/SimpleThresholdStrategy", 1764); - bcb(635, 1, { 635: 1, 246: 1, 234: 1 }, hNc); - _.Kf = function jNc() { - return gNc(this); - }; - _.Xf = function iNc() { - return gNc(this); - }; - var eNc; - var tZ = mdb(Lqe, "EdgeRouterFactory", 635); - bcb(1458, 1, Bqe, wNc); - _.Yf = function xNc(a) { - return uNc(BD(a, 37)); - }; - _.pf = function yNc(a, b) { - vNc(BD(a, 37), b); - }; - var lNc, mNc, nNc, oNc, pNc, qNc, rNc, sNc; - var uZ = mdb(Lqe, "OrthogonalEdgeRouter", 1458); - bcb(1451, 1, Bqe, NNc); - _.Yf = function ONc(a) { - return INc(BD(a, 37)); - }; - _.pf = function PNc(a, b) { - KNc(this, BD(a, 37), b); - }; - var zNc, ANc, BNc, CNc, DNc, ENc; - var wZ = mdb(Lqe, "PolylineEdgeRouter", 1451); - bcb(1452, 1, Vke, RNc); - _.Lb = function SNc(a) { - return QNc(BD(a, 10)); - }; - _.Fb = function TNc(a) { - return this === a; - }; - _.Mb = function UNc(a) { - return QNc(BD(a, 10)); - }; - var vZ = mdb(Lqe, "PolylineEdgeRouter/1", 1452); - bcb(1809, 1, Oie, ZNc); - _.Mb = function $Nc(a) { - return BD(a, 129).c == (HOc(), FOc); - }; - var xZ = mdb(Mqe, "HyperEdgeCycleDetector/lambda$0$Type", 1809); - bcb(1810, 1, {}, _Nc); - _.Ge = function aOc(a) { - return BD(a, 129).d; - }; - var yZ = mdb(Mqe, "HyperEdgeCycleDetector/lambda$1$Type", 1810); - bcb(1811, 1, Oie, bOc); - _.Mb = function cOc(a) { - return BD(a, 129).c == (HOc(), FOc); - }; - var zZ = mdb(Mqe, "HyperEdgeCycleDetector/lambda$2$Type", 1811); - bcb(1812, 1, {}, dOc); - _.Ge = function eOc(a) { - return BD(a, 129).d; - }; - var AZ = mdb(Mqe, "HyperEdgeCycleDetector/lambda$3$Type", 1812); - bcb(1813, 1, {}, fOc); - _.Ge = function gOc(a) { - return BD(a, 129).d; - }; - var BZ = mdb(Mqe, "HyperEdgeCycleDetector/lambda$4$Type", 1813); - bcb(1814, 1, {}, hOc); - _.Ge = function iOc(a) { - return BD(a, 129).d; - }; - var CZ = mdb(Mqe, "HyperEdgeCycleDetector/lambda$5$Type", 1814); - bcb(112, 1, { 35: 1, 112: 1 }, uOc); - _.wd = function vOc(a) { - return kOc(this, BD(a, 112)); - }; - _.Fb = function wOc(a) { - var b; - if (JD(a, 112)) { - b = BD(a, 112); - return this.g == b.g; - } - return false; - }; - _.Hb = function xOc() { - return this.g; - }; - _.Ib = function zOc() { - var a, b, c, d; - a = new Wfb("{"); - d = new olb(this.n); - while (d.a < d.c.c.length) { - c = BD(mlb(d), 11); - b = P_b(c.i); - b == null && (b = "n" + S_b(c.i)); - a.a += "" + b; - d.a < d.c.c.length && (a.a += ",", a); - } - a.a += "}"; - return a.a; - }; - _.a = 0; - _.b = 0; - _.c = NaN; - _.d = 0; - _.g = 0; - _.i = 0; - _.o = 0; - _.s = NaN; - var NZ = mdb(Mqe, "HyperEdgeSegment", 112); - bcb(129, 1, { 129: 1 }, DOc); - _.Ib = function EOc() { - return this.a + "->" + this.b + " (" + Yr(this.c) + ")"; - }; - _.d = 0; - var EZ = mdb(Mqe, "HyperEdgeSegmentDependency", 129); - bcb(520, 22, { 3: 1, 35: 1, 22: 1, 520: 1 }, IOc); - var FOc, GOc; - var DZ = ndb(Mqe, "HyperEdgeSegmentDependency/DependencyType", 520, CI, KOc, JOc); - var LOc; - bcb(1815, 1, {}, ZOc); - var MZ = mdb(Mqe, "HyperEdgeSegmentSplitter", 1815); - bcb(1816, 1, {}, aPc); - _.a = 0; - _.b = 0; - var FZ = mdb(Mqe, "HyperEdgeSegmentSplitter/AreaRating", 1816); - bcb(329, 1, { 329: 1 }, bPc); - _.a = 0; - _.b = 0; - _.c = 0; - var GZ = mdb(Mqe, "HyperEdgeSegmentSplitter/FreeArea", 329); - bcb(1817, 1, Dke, cPc); - _.ue = function dPc(a, b) { - return _Oc(BD(a, 112), BD(b, 112)); - }; - _.Fb = function ePc(a) { - return this === a; - }; - _.ve = function fPc() { - return new tpb(this); - }; - var HZ = mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$0$Type", 1817); - bcb(1818, 1, qie, gPc); - _.td = function hPc(a) { - TOc(this.a, this.d, this.c, this.b, BD(a, 112)); - }; - _.b = 0; - var IZ = mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$1$Type", 1818); - bcb(1819, 1, {}, iPc); - _.Kb = function jPc(a) { - return new YAb(null, new Kub(BD(a, 112).e, 16)); - }; - var JZ = mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$2$Type", 1819); - bcb(1820, 1, {}, kPc); - _.Kb = function lPc(a) { - return new YAb(null, new Kub(BD(a, 112).j, 16)); - }; - var KZ = mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$3$Type", 1820); - bcb(1821, 1, {}, mPc); - _.Fe = function nPc(a) { - return Edb(ED(a)); - }; - var LZ = mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$4$Type", 1821); - bcb(655, 1, {}, tPc); - _.a = 0; - _.b = 0; - _.c = 0; - var QZ = mdb(Mqe, "OrthogonalRoutingGenerator", 655); - bcb(1638, 1, {}, xPc); - _.Kb = function yPc(a) { - return new YAb(null, new Kub(BD(a, 112).e, 16)); - }; - var OZ = mdb(Mqe, "OrthogonalRoutingGenerator/lambda$0$Type", 1638); - bcb(1639, 1, {}, zPc); - _.Kb = function APc(a) { - return new YAb(null, new Kub(BD(a, 112).j, 16)); - }; - var PZ = mdb(Mqe, "OrthogonalRoutingGenerator/lambda$1$Type", 1639); - bcb(661, 1, {}); - var RZ = mdb(Nqe, "BaseRoutingDirectionStrategy", 661); - bcb(1807, 661, {}, EPc); - _.dg = function FPc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - if (!!a.r && !a.q) { - return; - } - k = b + a.o * c; - for (j = new olb(a.n); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 11); - l = l7c(OC(GC(m1, 1), nie, 8, 0, [i10.i.n, i10.n, i10.a])).a; - for (h = new olb(i10.g); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - if (!OZb(g10)) { - o10 = g10.d; - p = l7c(OC(GC(m1, 1), nie, 8, 0, [o10.i.n, o10.n, o10.a])).a; - if ($wnd.Math.abs(l - p) > qme) { - f = k; - e = a; - d = new f7c(l, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - m = a.r; - if (m) { - n = Edb(ED(Ut(m.e, 0))); - d = new f7c(n, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - f = b + m.o * c; - e = m; - d = new f7c(n, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - } - d = new f7c(p, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - } - } - } - } - }; - _.eg = function GPc(a) { - return a.i.n.a + a.n.a + a.a.a; - }; - _.fg = function HPc() { - return Ucd(), Rcd; - }; - _.gg = function IPc() { - return Ucd(), Acd; - }; - var SZ = mdb(Nqe, "NorthToSouthRoutingStrategy", 1807); - bcb(1808, 661, {}, JPc); - _.dg = function KPc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - if (!!a.r && !a.q) { - return; - } - k = b - a.o * c; - for (j = new olb(a.n); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 11); - l = l7c(OC(GC(m1, 1), nie, 8, 0, [i10.i.n, i10.n, i10.a])).a; - for (h = new olb(i10.g); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - if (!OZb(g10)) { - o10 = g10.d; - p = l7c(OC(GC(m1, 1), nie, 8, 0, [o10.i.n, o10.n, o10.a])).a; - if ($wnd.Math.abs(l - p) > qme) { - f = k; - e = a; - d = new f7c(l, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - m = a.r; - if (m) { - n = Edb(ED(Ut(m.e, 0))); - d = new f7c(n, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - f = b - m.o * c; - e = m; - d = new f7c(n, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - } - d = new f7c(p, f); - Dsb(g10.a, d); - BPc(this, g10, e, d, false); - } - } - } - } - }; - _.eg = function LPc(a) { - return a.i.n.a + a.n.a + a.a.a; - }; - _.fg = function MPc() { - return Ucd(), Acd; - }; - _.gg = function NPc() { - return Ucd(), Rcd; - }; - var TZ = mdb(Nqe, "SouthToNorthRoutingStrategy", 1808); - bcb(1806, 661, {}, OPc); - _.dg = function PPc(a, b, c) { - var d, e, f, g10, h, i10, j, k, l, m, n, o10, p; - if (!!a.r && !a.q) { - return; - } - k = b + a.o * c; - for (j = new olb(a.n); j.a < j.c.c.length; ) { - i10 = BD(mlb(j), 11); - l = l7c(OC(GC(m1, 1), nie, 8, 0, [i10.i.n, i10.n, i10.a])).b; - for (h = new olb(i10.g); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 17); - if (!OZb(g10)) { - o10 = g10.d; - p = l7c(OC(GC(m1, 1), nie, 8, 0, [o10.i.n, o10.n, o10.a])).b; - if ($wnd.Math.abs(l - p) > qme) { - f = k; - e = a; - d = new f7c(f, l); - Dsb(g10.a, d); - BPc(this, g10, e, d, true); - m = a.r; - if (m) { - n = Edb(ED(Ut(m.e, 0))); - d = new f7c(f, n); - Dsb(g10.a, d); - BPc(this, g10, e, d, true); - f = b + m.o * c; - e = m; - d = new f7c(f, n); - Dsb(g10.a, d); - BPc(this, g10, e, d, true); - } - d = new f7c(f, p); - Dsb(g10.a, d); - BPc(this, g10, e, d, true); - } - } - } - } - }; - _.eg = function QPc(a) { - return a.i.n.b + a.n.b + a.a.b; - }; - _.fg = function RPc() { - return Ucd(), zcd; - }; - _.gg = function SPc() { - return Ucd(), Tcd; - }; - var UZ = mdb(Nqe, "WestToEastRoutingStrategy", 1806); - bcb(813, 1, {}, YPc); - _.Ib = function ZPc() { - return Fe(this.a); - }; - _.b = 0; - _.c = false; - _.d = false; - _.f = 0; - var WZ = mdb(Pqe, "NubSpline", 813); - bcb(407, 1, { 407: 1 }, aQc, bQc); - var VZ = mdb(Pqe, "NubSpline/PolarCP", 407); - bcb(1453, 1, Bqe, vQc); - _.Yf = function xQc(a) { - return qQc(BD(a, 37)); - }; - _.pf = function yQc(a, b) { - uQc(this, BD(a, 37), b); - }; - var cQc, dQc, eQc, fQc, gQc; - var b$ = mdb(Pqe, "SplineEdgeRouter", 1453); - bcb(268, 1, { 268: 1 }, BQc); - _.Ib = function CQc() { - return this.a + " ->(" + this.c + ") " + this.b; - }; - _.c = 0; - var XZ = mdb(Pqe, "SplineEdgeRouter/Dependency", 268); - bcb(455, 22, { 3: 1, 35: 1, 22: 1, 455: 1 }, GQc); - var DQc, EQc; - var YZ = ndb(Pqe, "SplineEdgeRouter/SideToProcess", 455, CI, IQc, HQc); - var JQc; - bcb(1454, 1, Oie, LQc); - _.Mb = function MQc(a) { - return hQc(), !BD(a, 128).o; - }; - var ZZ = mdb(Pqe, "SplineEdgeRouter/lambda$0$Type", 1454); - bcb(1455, 1, {}, NQc); - _.Ge = function OQc(a) { - return hQc(), BD(a, 128).v + 1; - }; - var $Z = mdb(Pqe, "SplineEdgeRouter/lambda$1$Type", 1455); - bcb(1456, 1, qie, PQc); - _.td = function QQc(a) { - sQc(this.a, this.b, BD(a, 46)); - }; - var _Z = mdb(Pqe, "SplineEdgeRouter/lambda$2$Type", 1456); - bcb(1457, 1, qie, RQc); - _.td = function SQc(a) { - tQc(this.a, this.b, BD(a, 46)); - }; - var a$ = mdb(Pqe, "SplineEdgeRouter/lambda$3$Type", 1457); - bcb(128, 1, { 35: 1, 128: 1 }, YQc, ZQc); - _.wd = function $Qc(a) { - return WQc(this, BD(a, 128)); - }; - _.b = 0; - _.e = false; - _.f = 0; - _.g = 0; - _.j = false; - _.k = false; - _.n = 0; - _.o = false; - _.p = false; - _.q = false; - _.s = 0; - _.u = 0; - _.v = 0; - _.F = 0; - var d$ = mdb(Pqe, "SplineSegment", 128); - bcb(459, 1, { 459: 1 }, _Qc); - _.a = 0; - _.b = false; - _.c = false; - _.d = false; - _.e = false; - _.f = 0; - var c$ = mdb(Pqe, "SplineSegment/EdgeInformation", 459); - bcb(1234, 1, {}, hRc); - var f$ = mdb(Uqe, hme, 1234); - bcb(1235, 1, Dke, jRc); - _.ue = function kRc(a, b) { - return iRc(BD(a, 135), BD(b, 135)); - }; - _.Fb = function lRc(a) { - return this === a; - }; - _.ve = function mRc() { - return new tpb(this); - }; - var e$ = mdb(Uqe, ime, 1235); - bcb(1233, 1, {}, tRc); - var g$ = mdb(Uqe, "MrTree", 1233); - bcb(393, 22, { 3: 1, 35: 1, 22: 1, 393: 1, 246: 1, 234: 1 }, ARc); - _.Kf = function CRc() { - return zRc(this); - }; - _.Xf = function BRc() { - return zRc(this); - }; - var uRc, vRc, wRc, xRc; - var h$ = ndb(Uqe, "TreeLayoutPhases", 393, CI, ERc, DRc); - var FRc; - bcb(1130, 209, Mle, HRc); - _.Ze = function IRc(a, b) { - var c, d, e, f, g10, h, i10; - Ccb(DD(hkd(a, (JTc(), ATc)))) || $Cb((c = new _Cb((Pgd(), new bhd(a))), c)); - g10 = (h = new SRc(), tNb(h, a), yNb(h, (mTc(), dTc), a), i10 = new Lqb(), pRc(a, h, i10), oRc(a, h, i10), h); - f = gRc(this.a, g10); - for (e = new olb(f); e.a < e.c.c.length; ) { - d = BD(mlb(e), 135); - rRc(this.b, d, Udd(b, 1 / f.c.length)); - } - g10 = fRc(f); - nRc(g10); - }; - var i$ = mdb(Uqe, "TreeLayoutProvider", 1130); - bcb(1847, 1, vie, KRc); - _.Jc = function LRc(a) { - reb(this, a); - }; - _.Kc = function MRc() { - return mmb(), Emb(), Dmb; - }; - var j$ = mdb(Uqe, "TreeUtil/1", 1847); - bcb(1848, 1, vie, NRc); - _.Jc = function ORc(a) { - reb(this, a); - }; - _.Kc = function PRc() { - return mmb(), Emb(), Dmb; - }; - var k$ = mdb(Uqe, "TreeUtil/2", 1848); - bcb(502, 134, { 3: 1, 502: 1, 94: 1, 134: 1 }); - _.g = 0; - var m$ = mdb(Vqe, "TGraphElement", 502); - bcb(188, 502, { 3: 1, 188: 1, 502: 1, 94: 1, 134: 1 }, QRc); - _.Ib = function RRc() { - return !!this.b && !!this.c ? WRc(this.b) + "->" + WRc(this.c) : "e_" + tb(this); - }; - var l$ = mdb(Vqe, "TEdge", 188); - bcb(135, 134, { 3: 1, 135: 1, 94: 1, 134: 1 }, SRc); - _.Ib = function TRc() { - var a, b, c, d, e; - e = null; - for (d = Jsb(this.b, 0); d.b != d.d.c; ) { - c = BD(Xsb(d), 86); - e += (c.c == null || c.c.length == 0 ? "n_" + c.g : "n_" + c.c) + "\n"; - } - for (b = Jsb(this.a, 0); b.b != b.d.c; ) { - a = BD(Xsb(b), 188); - e += (!!a.b && !!a.c ? WRc(a.b) + "->" + WRc(a.c) : "e_" + tb(a)) + "\n"; - } - return e; - }; - var n$ = mdb(Vqe, "TGraph", 135); - bcb(633, 502, { 3: 1, 502: 1, 633: 1, 94: 1, 134: 1 }); - var r$ = mdb(Vqe, "TShape", 633); - bcb(86, 633, { 3: 1, 502: 1, 86: 1, 633: 1, 94: 1, 134: 1 }, XRc); - _.Ib = function YRc() { - return WRc(this); - }; - var q$ = mdb(Vqe, "TNode", 86); - bcb(255, 1, vie, ZRc); - _.Jc = function $Rc(a) { - reb(this, a); - }; - _.Kc = function _Rc() { - var a; - return a = Jsb(this.a.d, 0), new aSc(a); - }; - var p$ = mdb(Vqe, "TNode/2", 255); - bcb(358, 1, aie, aSc); - _.Nb = function bSc(a) { - Rrb(this, a); - }; - _.Pb = function dSc() { - return BD(Xsb(this.a), 188).c; - }; - _.Ob = function cSc() { - return Wsb(this.a); - }; - _.Qb = function eSc() { - Zsb(this.a); - }; - var o$ = mdb(Vqe, "TNode/2/1", 358); - bcb(1840, 1, ene, hSc); - _.pf = function jSc(a, b) { - gSc(this, BD(a, 135), b); - }; - var s$ = mdb(Wqe, "FanProcessor", 1840); - bcb(327, 22, { 3: 1, 35: 1, 22: 1, 327: 1, 234: 1 }, rSc); - _.Kf = function sSc() { - switch (this.g) { - case 0: - return new QSc(); - case 1: - return new hSc(); - case 2: - return new GSc(); - case 3: - return new zSc(); - case 4: - return new NSc(); - case 5: - return new TSc(); - default: - throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g))); - } - }; - var kSc, lSc, mSc, nSc, oSc, pSc; - var t$ = ndb(Wqe, Ene, 327, CI, uSc, tSc); - var vSc; - bcb(1843, 1, ene, zSc); - _.pf = function ASc(a, b) { - xSc(this, BD(a, 135), b); - }; - _.a = 0; - var v$ = mdb(Wqe, "LevelHeightProcessor", 1843); - bcb(1844, 1, vie, BSc); - _.Jc = function CSc(a) { - reb(this, a); - }; - _.Kc = function DSc() { - return mmb(), Emb(), Dmb; - }; - var u$ = mdb(Wqe, "LevelHeightProcessor/1", 1844); - bcb(1841, 1, ene, GSc); - _.pf = function HSc(a, b) { - ESc(this, BD(a, 135), b); - }; - _.a = 0; - var x$ = mdb(Wqe, "NeighborsProcessor", 1841); - bcb(1842, 1, vie, ISc); - _.Jc = function JSc(a) { - reb(this, a); - }; - _.Kc = function KSc() { - return mmb(), Emb(), Dmb; - }; - var w$ = mdb(Wqe, "NeighborsProcessor/1", 1842); - bcb(1845, 1, ene, NSc); - _.pf = function OSc(a, b) { - LSc(this, BD(a, 135), b); - }; - _.a = 0; - var y$ = mdb(Wqe, "NodePositionProcessor", 1845); - bcb(1839, 1, ene, QSc); - _.pf = function RSc(a, b) { - PSc(this, BD(a, 135)); - }; - var z$ = mdb(Wqe, "RootProcessor", 1839); - bcb(1846, 1, ene, TSc); - _.pf = function USc(a, b) { - SSc(BD(a, 135)); - }; - var A$ = mdb(Wqe, "Untreeifyer", 1846); - var VSc, WSc, XSc, YSc, ZSc, $Sc, _Sc, aTc, bTc, cTc, dTc, eTc, fTc, gTc, hTc, iTc, jTc, kTc, lTc; - bcb(851, 1, ale, sTc); - _.Qe = function tTc(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zqe), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), qTc), (_5c(), V5c)), E$), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $qe), ""), "Search Order"), "Which search order to use when computing a spanning tree."), oTc), V5c), F$), pqb(L5c)))); - KTc((new LTc(), a)); - }; - var nTc, oTc, pTc, qTc; - var B$ = mdb(_qe, "MrTreeMetaDataProvider", 851); - bcb(994, 1, ale, LTc); - _.Qe = function MTc(a) { - KTc(a); - }; - var uTc, vTc, wTc, xTc, yTc, zTc, ATc, BTc, CTc, DTc, ETc, FTc, GTc, HTc, ITc; - var D$ = mdb(_qe, "MrTreeOptions", 994); - bcb(995, 1, {}, NTc); - _.$e = function OTc() { - var a; - return a = new HRc(), a; - }; - _._e = function PTc(a) { - }; - var C$ = mdb(_qe, "MrTreeOptions/MrtreeFactory", 995); - bcb(480, 22, { 3: 1, 35: 1, 22: 1, 480: 1 }, TTc); - var QTc, RTc; - var E$ = ndb(_qe, "OrderWeighting", 480, CI, VTc, UTc); - var WTc; - bcb(425, 22, { 3: 1, 35: 1, 22: 1, 425: 1 }, _Tc); - var YTc, ZTc; - var F$ = ndb(_qe, "TreeifyingOrder", 425, CI, bUc, aUc); - var cUc; - bcb(1459, 1, Bqe, lUc); - _.Yf = function mUc(a) { - return BD(a, 135), eUc; - }; - _.pf = function nUc(a, b) { - kUc(this, BD(a, 135), b); - }; - var eUc; - var G$ = mdb("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1459); - bcb(1460, 1, Bqe, sUc); - _.Yf = function tUc(a) { - return BD(a, 135), oUc; - }; - _.pf = function uUc(a, b) { - rUc(this, BD(a, 135), b); - }; - var oUc; - var H$ = mdb("org.eclipse.elk.alg.mrtree.p2order", "NodeOrderer", 1460); - bcb(1461, 1, Bqe, CUc); - _.Yf = function DUc(a) { - return BD(a, 135), vUc; - }; - _.pf = function EUc(a, b) { - AUc(this, BD(a, 135), b); - }; - _.a = 0; - var vUc; - var I$ = mdb("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1461); - bcb(1462, 1, Bqe, IUc); - _.Yf = function JUc(a) { - return BD(a, 135), FUc; - }; - _.pf = function KUc(a, b) { - HUc(BD(a, 135), b); - }; - var FUc; - var J$ = mdb("org.eclipse.elk.alg.mrtree.p4route", "EdgeRouter", 1462); - var LUc; - bcb(495, 22, { 3: 1, 35: 1, 22: 1, 495: 1, 246: 1, 234: 1 }, RUc); - _.Kf = function TUc() { - return QUc(this); - }; - _.Xf = function SUc() { - return QUc(this); - }; - var NUc, OUc; - var K$ = ndb(cre, "RadialLayoutPhases", 495, CI, VUc, UUc); - var WUc; - bcb(1131, 209, Mle, ZUc); - _.Ze = function $Uc(a, b) { - var c, d, e, f, g10, h; - c = YUc(this, a); - Odd(b, "Radial layout", c.c.length); - Ccb(DD(hkd(a, (ZWc(), QWc)))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d)); - h = aVc(a); - jkd(a, (MUc(), LUc), h); - if (!h) { - throw vbb(new Wdb("The given graph is not a tree!")); - } - e = Edb(ED(hkd(a, VWc))); - e == 0 && (e = _Uc(a)); - jkd(a, VWc, e); - for (g10 = new olb(YUc(this, a)); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 51); - f.pf(a, Udd(b, 1)); - } - Qdd(b); - }; - var L$ = mdb(cre, "RadialLayoutProvider", 1131); - bcb(549, 1, Dke, jVc); - _.ue = function kVc(a, b) { - return iVc(this.a, this.b, BD(a, 33), BD(b, 33)); - }; - _.Fb = function lVc(a) { - return this === a; - }; - _.ve = function mVc() { - return new tpb(this); - }; - _.a = 0; - _.b = 0; - var M$ = mdb(cre, "RadialUtil/lambda$0$Type", 549); - bcb(1375, 1, ene, oVc); - _.pf = function pVc(a, b) { - nVc(BD(a, 33), b); - }; - var N$ = mdb(fre, "CalculateGraphSize", 1375); - bcb(442, 22, { 3: 1, 35: 1, 22: 1, 442: 1, 234: 1 }, uVc); - _.Kf = function vVc() { - switch (this.g) { - case 0: - return new bWc(); - case 1: - return new NVc(); - case 2: - return new oVc(); - default: - throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g))); - } - }; - var qVc, rVc, sVc; - var O$ = ndb(fre, Ene, 442, CI, xVc, wVc); - var yVc; - bcb(645, 1, {}); - _.e = 1; - _.g = 0; - var P$ = mdb(gre, "AbstractRadiusExtensionCompaction", 645); - bcb(1772, 645, {}, KVc); - _.hg = function LVc(a) { - var b, c, d, e, f, g10, h, i10, j; - this.c = BD(hkd(a, (MUc(), LUc)), 33); - EVc(this, this.c); - this.d = tXc(BD(hkd(a, (ZWc(), WWc)), 293)); - i10 = BD(hkd(a, KWc), 19); - !!i10 && DVc(this, i10.a); - h = ED(hkd(a, (Y9c(), T9c))); - FVc(this, (uCb(h), h)); - j = gVc(this.c); - !!this.d && this.d.lg(j); - GVc(this, j); - g10 = new amb(OC(GC(E2, 1), hre, 33, 0, [this.c])); - for (c = 0; c < 2; c++) { - for (b = 0; b < j.c.length; b++) { - e = new amb(OC(GC(E2, 1), hre, 33, 0, [(tCb(b, j.c.length), BD(j.c[b], 33))])); - f = b < j.c.length - 1 ? (tCb(b + 1, j.c.length), BD(j.c[b + 1], 33)) : (tCb(0, j.c.length), BD(j.c[0], 33)); - d = b == 0 ? BD(Ikb(j, j.c.length - 1), 33) : (tCb(b - 1, j.c.length), BD(j.c[b - 1], 33)); - IVc(this, (tCb(b, j.c.length), BD(j.c[b], 33), g10), d, f, e); - } - } - }; - var Q$ = mdb(gre, "AnnulusWedgeCompaction", 1772); - bcb(1374, 1, ene, NVc); - _.pf = function OVc(a, b) { - MVc(BD(a, 33), b); - }; - var R$ = mdb(gre, "GeneralCompactor", 1374); - bcb(1771, 645, {}, SVc); - _.hg = function TVc(a) { - var b, c, d, e; - c = BD(hkd(a, (MUc(), LUc)), 33); - this.f = c; - this.b = tXc(BD(hkd(a, (ZWc(), WWc)), 293)); - e = BD(hkd(a, KWc), 19); - !!e && DVc(this, e.a); - d = ED(hkd(a, (Y9c(), T9c))); - FVc(this, (uCb(d), d)); - b = gVc(c); - !!this.b && this.b.lg(b); - QVc(this, b); - }; - _.a = 0; - var S$ = mdb(gre, "RadialCompaction", 1771); - bcb(1779, 1, {}, VVc); - _.ig = function WVc(a) { - var b, c, d, e, f, g10; - this.a = a; - b = 0; - g10 = gVc(a); - d = 0; - for (f = new olb(g10); f.a < f.c.c.length; ) { - e = BD(mlb(f), 33); - ++d; - for (c = d; c < g10.c.length; c++) { - UVc(this, e, (tCb(c, g10.c.length), BD(g10.c[c], 33))) && (b += 1); - } - } - return b; - }; - var T$ = mdb(ire, "CrossingMinimizationPosition", 1779); - bcb(1777, 1, {}, XVc); - _.ig = function YVc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n; - d = 0; - for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 79); - h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82)); - j = h.i + h.g / 2; - k = h.j + h.f / 2; - e = a.i + a.g / 2; - f = a.j + a.f / 2; - l = new d7c(); - l.a = j - e; - l.b = k - f; - g10 = new f7c(l.a, l.b); - l6c(g10, a.g, a.f); - l.a -= g10.a; - l.b -= g10.b; - e = j - l.a; - f = k - l.b; - i10 = new f7c(l.a, l.b); - l6c(i10, h.g, h.f); - l.a -= i10.a; - l.b -= i10.b; - j = e + l.a; - k = f + l.b; - m = j - e; - n = k - f; - d += $wnd.Math.sqrt(m * m + n * n); - } - return d; - }; - var U$ = mdb(ire, "EdgeLengthOptimization", 1777); - bcb(1778, 1, {}, ZVc); - _.ig = function $Vc(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - d = 0; - for (c = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c); ) { - b = BD(Rr(c), 79); - h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82)); - i10 = h.i + h.g / 2; - j = h.j + h.f / 2; - e = BD(hkd(h, (Y9c(), C9c)), 8); - f = a.i + e.a + a.g / 2; - g10 = a.j + e.b + a.f; - k = i10 - f; - l = j - g10; - d += $wnd.Math.sqrt(k * k + l * l); - } - return d; - }; - var V$ = mdb(ire, "EdgeLengthPositionOptimization", 1778); - bcb(1373, 645, ene, bWc); - _.pf = function cWc(a, b) { - aWc(this, BD(a, 33), b); - }; - var W$ = mdb("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1373); - bcb(426, 22, { 3: 1, 35: 1, 22: 1, 426: 1 }, hWc); - var dWc, eWc; - var X$ = ndb(kre, "AnnulusWedgeCriteria", 426, CI, jWc, iWc); - var kWc; - bcb(380, 22, { 3: 1, 35: 1, 22: 1, 380: 1 }, rWc); - var mWc, nWc, oWc; - var Y$ = ndb(kre, Sle, 380, CI, tWc, sWc); - var uWc; - bcb(852, 1, ale, IWc); - _.Qe = function JWc(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lre), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), meb(0)), (_5c(), X5c)), JI), pqb((N5c(), K5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mre), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nre), ""), "Compaction"), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), yWc), V5c), Y$), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ore), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), meb(1)), X5c), JI), pqb(L5c)))); - o4c(a, ore, nre, null); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pre), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), EWc), V5c), b_), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qre), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), GWc), V5c), X$), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rre), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), AWc), V5c), a_), pqb(L5c)))); - $Wc((new _Wc(), a)); - }; - var wWc, xWc, yWc, zWc, AWc, BWc, CWc, DWc, EWc, FWc, GWc; - var Z$ = mdb(kre, "RadialMetaDataProvider", 852); - bcb(996, 1, ale, _Wc); - _.Qe = function aXc(a) { - $Wc(a); - }; - var KWc, LWc, MWc, NWc, OWc, PWc, QWc, RWc, SWc, TWc, UWc, VWc, WWc, XWc, YWc; - var _$ = mdb(kre, "RadialOptions", 996); - bcb(997, 1, {}, bXc); - _.$e = function cXc() { - var a; - return a = new ZUc(), a; - }; - _._e = function dXc(a) { - }; - var $$ = mdb(kre, "RadialOptions/RadialFactory", 997); - bcb(340, 22, { 3: 1, 35: 1, 22: 1, 340: 1 }, kXc); - var eXc, fXc, gXc, hXc; - var a_ = ndb(kre, "RadialTranslationStrategy", 340, CI, mXc, lXc); - var nXc; - bcb(293, 22, { 3: 1, 35: 1, 22: 1, 293: 1 }, uXc); - var pXc, qXc, rXc; - var b_ = ndb(kre, "SortingStrategy", 293, CI, wXc, vXc); - var xXc; - bcb(1449, 1, Bqe, CXc); - _.Yf = function DXc(a) { - return BD(a, 33), null; - }; - _.pf = function EXc(a, b) { - AXc(this, BD(a, 33), b); - }; - _.c = 0; - var c_ = mdb("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1449); - bcb(1775, 1, {}, FXc); - _.jg = function GXc(a) { - return eVc(a); - }; - var d_ = mdb(tre, "AnnulusWedgeByLeafs", 1775); - bcb(1776, 1, {}, IXc); - _.jg = function JXc(a) { - return HXc(this, a); - }; - var e_ = mdb(tre, "AnnulusWedgeByNodeSpace", 1776); - bcb(1450, 1, Bqe, MXc); - _.Yf = function NXc(a) { - return BD(a, 33), null; - }; - _.pf = function OXc(a, b) { - KXc(this, BD(a, 33), b); - }; - var f_ = mdb("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1450); - bcb(811, 1, {}, QXc); - _.kg = function RXc(a) { - }; - _.lg = function TXc(a) { - PXc(this, a); - }; - var h_ = mdb(ure, "IDSorter", 811); - bcb(1774, 1, Dke, UXc); - _.ue = function VXc(a, b) { - return SXc(BD(a, 33), BD(b, 33)); - }; - _.Fb = function WXc(a) { - return this === a; - }; - _.ve = function XXc() { - return new tpb(this); - }; - var g_ = mdb(ure, "IDSorter/lambda$0$Type", 1774); - bcb(1773, 1, {}, $Xc); - _.kg = function _Xc(a) { - YXc(this, a); - }; - _.lg = function aYc(a) { - var b; - if (!a.dc()) { - if (!this.e) { - b = bVc(BD(a.Xb(0), 33)); - YXc(this, b); - } - PXc(this.e, a); - } - }; - var i_ = mdb(ure, "PolarCoordinateSorter", 1773); - bcb(1136, 209, Mle, bYc); - _.Ze = function eYc(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B, C, D, F; - Odd(b, "Rectangle Packing", 1); - b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - c = Edb(ED(hkd(a, (lZc(), RYc)))); - p = BD(hkd(a, eZc), 381); - s = Ccb(DD(hkd(a, ZYc))); - w = Ccb(DD(hkd(a, dZc))); - l = Ccb(DD(hkd(a, VYc))); - A = BD(hkd(a, fZc), 116); - v = Edb(ED(hkd(a, jZc))); - e = Ccb(DD(hkd(a, iZc))); - m = Ccb(DD(hkd(a, WYc))); - r = Ccb(DD(hkd(a, XYc))); - F = Edb(ED(hkd(a, kZc))); - C = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a); - r$c(C); - if (r) { - o10 = new Rkb(); - for (i10 = new Fyd(C); i10.e != i10.i.gc(); ) { - g10 = BD(Dyd(i10), 33); - ikd(g10, UYc) && (o10.c[o10.c.length] = g10, true); - } - for (j = new olb(o10); j.a < j.c.c.length; ) { - g10 = BD(mlb(j), 33); - Ftd(C, g10); - } - mmb(); - Okb(o10, new fYc()); - for (k = new olb(o10); k.a < k.c.c.length; ) { - g10 = BD(mlb(k), 33); - B = BD(hkd(g10, UYc), 19).a; - B = $wnd.Math.min(B, C.i); - vtd(C, B, g10); - } - q = 0; - for (h = new Fyd(C); h.e != h.i.gc(); ) { - g10 = BD(Dyd(h), 33); - jkd(g10, TYc, meb(q)); - ++q; - } - } - u = rfd(a); - u.a -= A.b + A.c; - u.b -= A.d + A.a; - t = u.a; - if (F < 0 || F < u.a) { - n = new nYc(c, p, s); - f = jYc(n, C, v, A); - b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - } else { - f = new d$c(c, F, 0, (k$c(), j$c)); - } - u.a += A.b + A.c; - u.b += A.d + A.a; - if (!w) { - r$c(C); - D = new DZc(c, l, m, e, v); - t = $wnd.Math.max(u.a, f.c); - f = CZc(D, C, t, u, b, a, A); - } - cYc(C, A); - Afd(a, f.c + (A.b + A.c), f.b + (A.d + A.a), false, true); - Ccb(DD(hkd(a, cZc))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d)); - b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd)); - Qdd(b); - }; - var k_ = mdb(yre, "RectPackingLayoutProvider", 1136); - bcb(1137, 1, Dke, fYc); - _.ue = function gYc(a, b) { - return dYc(BD(a, 33), BD(b, 33)); - }; - _.Fb = function hYc(a) { - return this === a; - }; - _.ve = function iYc() { - return new tpb(this); - }; - var j_ = mdb(yre, "RectPackingLayoutProvider/lambda$0$Type", 1137); - bcb(1256, 1, {}, nYc); - _.a = 0; - _.c = false; - var l_ = mdb(zre, "AreaApproximation", 1256); - var o_ = odb(zre, "BestCandidateFilter"); - bcb(638, 1, { 526: 1 }, oYc); - _.mg = function pYc(a, b, c) { - var d, e, f, g10, h, i10; - i10 = new Rkb(); - f = Pje; - for (h = new olb(a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 220); - f = $wnd.Math.min(f, (g10.c + (c.b + c.c)) * (g10.b + (c.d + c.a))); - } - for (e = new olb(a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 220); - (d.c + (c.b + c.c)) * (d.b + (c.d + c.a)) == f && (i10.c[i10.c.length] = d, true); - } - return i10; - }; - var m_ = mdb(zre, "AreaFilter", 638); - bcb(639, 1, { 526: 1 }, qYc); - _.mg = function rYc(a, b, c) { - var d, e, f, g10, h, i10; - h = new Rkb(); - i10 = Pje; - for (g10 = new olb(a); g10.a < g10.c.c.length; ) { - f = BD(mlb(g10), 220); - i10 = $wnd.Math.min(i10, $wnd.Math.abs((f.c + (c.b + c.c)) / (f.b + (c.d + c.a)) - b)); - } - for (e = new olb(a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 220); - $wnd.Math.abs((d.c + (c.b + c.c)) / (d.b + (c.d + c.a)) - b) == i10 && (h.c[h.c.length] = d, true); - } - return h; - }; - var n_ = mdb(zre, "AspectRatioFilter", 639); - bcb(637, 1, { 526: 1 }, uYc); - _.mg = function vYc(a, b, c) { - var d, e, f, g10, h, i10; - i10 = new Rkb(); - f = Qje; - for (h = new olb(a); h.a < h.c.c.length; ) { - g10 = BD(mlb(h), 220); - f = $wnd.Math.max(f, q$c(g10.c + (c.b + c.c), g10.b + (c.d + c.a), g10.a)); - } - for (e = new olb(a); e.a < e.c.c.length; ) { - d = BD(mlb(e), 220); - q$c(d.c + (c.b + c.c), d.b + (c.d + c.a), d.a) == f && (i10.c[i10.c.length] = d, true); - } - return i10; - }; - var p_ = mdb(zre, "ScaleMeasureFilter", 637); - bcb(381, 22, { 3: 1, 35: 1, 22: 1, 381: 1 }, AYc); - var wYc, xYc, yYc; - var q_ = ndb(Are, "OptimizationGoal", 381, CI, CYc, BYc); - var DYc; - bcb(856, 1, ale, PYc); - _.Qe = function QYc(a) { - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bre), ""), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), LYc), (_5c(), V5c)), q_), pqb((N5c(), K5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cre), ""), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), (Bcb(), true)), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dre), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), meb(-1)), X5c), JI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ere), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), meb(-1)), X5c), JI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fre), ""), "Only Area Approximation"), "If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."), false), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gre), ""), "Compact Rows"), "Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."), true), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hre), ""), "Fit Aspect Ratio"), "Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."), false), T5c), wI), pqb(K5c)))); - o4c(a, Hre, Jre, null); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ire), ""), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), U5c), BI), pqb(K5c)))); - mZc((new nZc(), a)); - }; - var FYc, GYc, HYc, IYc, JYc, KYc, LYc, MYc, NYc; - var r_ = mdb(Are, "RectPackingMetaDataProvider", 856); - bcb(1004, 1, ale, nZc); - _.Qe = function oZc(a) { - mZc(a); - }; - var RYc, SYc, TYc, UYc, VYc, WYc, XYc, YYc, ZYc, $Yc, _Yc, aZc, bZc, cZc, dZc, eZc, fZc, gZc, hZc, iZc, jZc, kZc; - var t_ = mdb(Are, "RectPackingOptions", 1004); - bcb(1005, 1, {}, pZc); - _.$e = function qZc() { - var a; - return a = new bYc(), a; - }; - _._e = function rZc(a) { - }; - var s_ = mdb(Are, "RectPackingOptions/RectpackingFactory", 1005); - bcb(1257, 1, {}, DZc); - _.a = 0; - _.b = false; - _.c = 0; - _.d = 0; - _.e = false; - _.f = false; - _.g = 0; - var u_ = mdb("org.eclipse.elk.alg.rectpacking.seconditeration", "RowFillingAndCompaction", 1257); - bcb(187, 1, { 187: 1 }, PZc); - _.a = 0; - _.c = false; - _.d = 0; - _.e = 0; - _.f = 0; - _.g = 0; - _.i = 0; - _.k = false; - _.o = Pje; - _.p = Pje; - _.r = 0; - _.s = 0; - _.t = 0; - var x_ = mdb(Lre, "Block", 187); - bcb(211, 1, { 211: 1 }, VZc); - _.a = 0; - _.b = 0; - _.d = 0; - _.e = 0; - _.f = 0; - var v_ = mdb(Lre, "BlockRow", 211); - bcb(443, 1, { 443: 1 }, b$c); - _.b = 0; - _.c = 0; - _.d = 0; - _.e = 0; - _.f = 0; - var w_ = mdb(Lre, "BlockStack", 443); - bcb(220, 1, { 220: 1 }, d$c, e$c); - _.a = 0; - _.b = 0; - _.c = 0; - _.d = 0; - _.e = 0; - var z_ = mdb(Lre, "DrawingData", 220); - bcb(355, 22, { 3: 1, 35: 1, 22: 1, 355: 1 }, l$c); - var f$c, g$c, h$c, i$c, j$c; - var y_ = ndb(Lre, "DrawingDataDescriptor", 355, CI, n$c, m$c); - var o$c; - bcb(200, 1, { 200: 1 }, x$c); - _.b = 0; - _.c = 0; - _.e = 0; - _.f = 0; - var A_ = mdb(Lre, "RectRow", 200); - bcb(756, 1, {}, F$c); - _.j = 0; - var G_ = mdb(Nre, une, 756); - bcb(1245, 1, {}, G$c); - _.Je = function H$c(a) { - return S6c(a.a, a.b); - }; - var B_ = mdb(Nre, vne, 1245); - bcb(1246, 1, {}, I$c); - _.Je = function J$c(a) { - return A$c(this.a, a); - }; - var C_ = mdb(Nre, wne, 1246); - bcb(1247, 1, {}, K$c); - _.Je = function L$c(a) { - return B$c(this.a, a); - }; - var D_ = mdb(Nre, xne, 1247); - bcb(1248, 1, {}, M$c); - _.Je = function N$c(a) { - return C$c(this.a, a); - }; - var E_ = mdb(Nre, "ElkGraphImporter/lambda$3$Type", 1248); - bcb(1249, 1, {}, O$c); - _.Je = function P$c(a) { - return D$c(this.a, a); - }; - var F_ = mdb(Nre, yne, 1249); - bcb(1133, 209, Mle, Q$c); - _.Ze = function S$c(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n; - if (ikd(a, (d0c(), c0c))) { - n = GD(hkd(a, (J0c(), I0c))); - f = h4c(n4c(), n); - if (f) { - g10 = BD(hgd(f.f), 209); - g10.Ze(a, Udd(b, 1)); - } - } - jkd(a, Z_c, (C_c(), A_c)); - jkd(a, $_c, (N_c(), K_c)); - jkd(a, __c, (a1c(), _0c)); - h = BD(hkd(a, (J0c(), E0c)), 19).a; - Odd(b, "Overlap removal", 1); - Ccb(DD(hkd(a, D0c))) && "null45scanlineOverlaps"; - i10 = new Tqb(); - j = new U$c(i10); - d = new F$c(); - c = z$c(d, a); - k = true; - e = 0; - while (e < h && k) { - if (Ccb(DD(hkd(a, F0c)))) { - i10.a.$b(); - cOb(new dOb(j), c.i); - if (i10.a.gc() == 0) { - break; - } - c.e = i10; - } - H2c(this.b); - K2c(this.b, (Y$c(), V$c), (R0c(), Q0c)); - K2c(this.b, W$c, c.g); - K2c(this.b, X$c, (s_c(), r_c)); - this.a = F2c(this.b, c); - for (m = new olb(this.a); m.a < m.c.c.length; ) { - l = BD(mlb(m), 51); - l.pf(c, Udd(b, 1)); - } - E$c(d, c); - k = Ccb(DD(vNb(c, (XNb(), WNb)))); - ++e; - } - y$c(d, c); - Qdd(b); - }; - var I_ = mdb(Nre, "OverlapRemovalLayoutProvider", 1133); - bcb(1134, 1, {}, U$c); - var H_ = mdb(Nre, "OverlapRemovalLayoutProvider/lambda$0$Type", 1134); - bcb(437, 22, { 3: 1, 35: 1, 22: 1, 437: 1 }, Z$c); - var V$c, W$c, X$c; - var J_ = ndb(Nre, "SPOrEPhases", 437, CI, _$c, $$c); - var a_c; - bcb(1255, 1, {}, d_c); - var L_ = mdb(Nre, "ShrinkTree", 1255); - bcb(1135, 209, Mle, e_c); - _.Ze = function f_c(a, b) { - var c, d, e, f, g10; - if (ikd(a, (d0c(), c0c))) { - g10 = GD(hkd(a, c0c)); - e = h4c(n4c(), g10); - if (e) { - f = BD(hgd(e.f), 209); - f.Ze(a, Udd(b, 1)); - } - } - d = new F$c(); - c = z$c(d, a); - c_c(this.a, c, Udd(b, 1)); - y$c(d, c); - }; - var K_ = mdb(Nre, "ShrinkTreeLayoutProvider", 1135); - bcb(300, 134, { 3: 1, 300: 1, 94: 1, 134: 1 }, g_c); - _.c = false; - var M_ = mdb("org.eclipse.elk.alg.spore.graph", "Graph", 300); - bcb(482, 22, { 3: 1, 35: 1, 22: 1, 482: 1, 246: 1, 234: 1 }, k_c); - _.Kf = function m_c() { - return j_c(this); - }; - _.Xf = function l_c() { - return j_c(this); - }; - var h_c; - var N_ = ndb(Ore, Sle, 482, CI, o_c, n_c); - var p_c; - bcb(551, 22, { 3: 1, 35: 1, 22: 1, 551: 1, 246: 1, 234: 1 }, t_c); - _.Kf = function v_c() { - return new I1c(); - }; - _.Xf = function u_c() { - return new I1c(); - }; - var r_c; - var O_ = ndb(Ore, "OverlapRemovalStrategy", 551, CI, x_c, w_c); - var y_c; - bcb(430, 22, { 3: 1, 35: 1, 22: 1, 430: 1 }, D_c); - var A_c, B_c; - var P_ = ndb(Ore, "RootSelection", 430, CI, F_c, E_c); - var G_c; - bcb(316, 22, { 3: 1, 35: 1, 22: 1, 316: 1 }, O_c); - var I_c, J_c, K_c, L_c, M_c; - var Q_ = ndb(Ore, "SpanningTreeCostFunction", 316, CI, Q_c, P_c); - var R_c; - bcb(1002, 1, ale, f0c); - _.Qe = function g0c(a) { - e0c(a); - }; - var T_c, U_c, V_c, W_c, X_c, Y_c, Z_c, $_c, __c, a0c, b0c, c0c; - var S_ = mdb(Ore, "SporeCompactionOptions", 1002); - bcb(1003, 1, {}, h0c); - _.$e = function i0c() { - var a; - return a = new e_c(), a; - }; - _._e = function j0c(a) { - }; - var R_ = mdb(Ore, "SporeCompactionOptions/SporeCompactionFactory", 1003); - bcb(855, 1, ale, B0c); - _.Qe = function C0c(a) { - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Qre), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Vre), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), y0c), V5c), W_), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rre), $re), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), w0c), V5c), X_), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Sre), $re), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), u0c), V5c), Q_), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tre), $re), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), Z5c), ZI), pqb(L5c)))); - o4c(a, Tre, Ure, q0c); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ure), $re), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), s0c), V5c), P_), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Wre), Bpe), "Compaction Strategy"), "This option defines how the compaction is applied."), l0c), V5c), N_), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xre), Bpe), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (Bcb(), false)), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yre), _re), "Upper limit for iterations of overlap removal"), null), meb(64)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zre), _re), "Whether to run a supplementary scanline overlap check."), null), true), T5c), wI), pqb(L5c)))); - K0c((new L0c(), a)); - e0c((new f0c(), a)); - }; - var k0c, l0c, m0c, n0c, o0c, p0c, q0c, r0c, s0c, t0c, u0c, v0c, w0c, x0c, y0c, z0c; - var T_ = mdb(Ore, "SporeMetaDataProvider", 855); - bcb(_ie, 1, ale, L0c); - _.Qe = function M0c(a) { - K0c(a); - }; - var D0c, E0c, F0c, G0c, H0c, I0c; - var V_ = mdb(Ore, "SporeOverlapRemovalOptions", _ie); - bcb(1001, 1, {}, N0c); - _.$e = function O0c() { - var a; - return a = new Q$c(), a; - }; - _._e = function P0c(a) { - }; - var U_ = mdb(Ore, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1001); - bcb(530, 22, { 3: 1, 35: 1, 22: 1, 530: 1, 246: 1, 234: 1 }, T0c); - _.Kf = function V0c() { - return S0c(this); - }; - _.Xf = function U0c() { - return S0c(this); - }; - var Q0c; - var W_ = ndb(Ore, "StructureExtractionStrategy", 530, CI, X0c, W0c); - var Y0c; - bcb(429, 22, { 3: 1, 35: 1, 22: 1, 429: 1, 246: 1, 234: 1 }, c1c); - _.Kf = function e1c() { - return b1c(this); - }; - _.Xf = function d1c() { - return b1c(this); - }; - var $0c, _0c; - var X_ = ndb(Ore, "TreeConstructionStrategy", 429, CI, g1c, f1c); - var h1c; - bcb(1443, 1, Bqe, k1c); - _.Yf = function l1c(a) { - return BD(a, 300), new j3c(); - }; - _.pf = function m1c(a, b) { - j1c(BD(a, 300), b); - }; - var Z_ = mdb(bse, "DelaunayTriangulationPhase", 1443); - bcb(1444, 1, qie, n1c); - _.td = function o1c(a) { - Ekb(this.a, BD(a, 65).a); - }; - var Y_ = mdb(bse, "DelaunayTriangulationPhase/lambda$0$Type", 1444); - bcb(783, 1, Bqe, s1c); - _.Yf = function t1c(a) { - return BD(a, 300), new j3c(); - }; - _.pf = function u1c(a, b) { - this.ng(BD(a, 300), b); - }; - _.ng = function v1c(a, b) { - var c, d, e; - Odd(b, "Minimum spanning tree construction", 1); - a.d ? d = a.d.a : d = BD(Ikb(a.i, 0), 65).a; - Ccb(DD(vNb(a, (XNb(), VNb)))) ? e = UCb(a.e, d, (c = a.b, c)) : e = UCb(a.e, d, a.b); - q1c(this, e, a); - Qdd(b); - }; - var b0 = mdb(cse, "MinSTPhase", 783); - bcb(1446, 783, Bqe, w1c); - _.ng = function y1c(a, b) { - var c, d, e, f; - Odd(b, "Maximum spanning tree construction", 1); - c = new z1c(a); - a.d ? e = a.d.c : e = BD(Ikb(a.i, 0), 65).c; - Ccb(DD(vNb(a, (XNb(), VNb)))) ? f = UCb(a.e, e, (d = c, d)) : f = UCb(a.e, e, c); - q1c(this, f, a); - Qdd(b); - }; - var __ = mdb(cse, "MaxSTPhase", 1446); - bcb(1447, 1, {}, z1c); - _.Je = function A1c(a) { - return x1c(this.a, a); - }; - var $_ = mdb(cse, "MaxSTPhase/lambda$0$Type", 1447); - bcb(1445, 1, qie, B1c); - _.td = function C1c(a) { - r1c(this.a, BD(a, 65)); - }; - var a0 = mdb(cse, "MinSTPhase/lambda$0$Type", 1445); - bcb(785, 1, Bqe, I1c); - _.Yf = function J1c(a) { - return BD(a, 300), new j3c(); - }; - _.pf = function K1c(a, b) { - H1c(this, BD(a, 300), b); - }; - _.a = false; - var d0 = mdb(dse, "GrowTreePhase", 785); - bcb(786, 1, qie, L1c); - _.td = function M1c(a) { - G1c(this.a, this.b, this.c, BD(a, 221)); - }; - var c0 = mdb(dse, "GrowTreePhase/lambda$0$Type", 786); - bcb(1448, 1, Bqe, Q1c); - _.Yf = function R1c(a) { - return BD(a, 300), new j3c(); - }; - _.pf = function S1c(a, b) { - P1c(this, BD(a, 300), b); - }; - var f0 = mdb(dse, "ShrinkTreeCompactionPhase", 1448); - bcb(784, 1, qie, T1c); - _.td = function U1c(a) { - O1c(this.a, this.b, this.c, BD(a, 221)); - }; - var e0 = mdb(dse, "ShrinkTreeCompactionPhase/lambda$0$Type", 784); - var g2 = odb(yqe, "IGraphElementVisitor"); - bcb(860, 1, { 527: 1 }, b2c); - _.og = function e2c(a) { - var b; - b = a2c(this, a); - tNb(b, BD(Ohb(this.b, a), 94)); - $1c(this, a, b); - }; - var V1c, W1c, X1c; - var m0 = mdb(Nle, "LayoutConfigurator", 860); - var h0 = odb(Nle, "LayoutConfigurator/IPropertyHolderOptionFilter"); - bcb(932, 1, { 1933: 1 }, f2c); - _.pg = function g2c(a, b) { - return Y1c(), !a.Xe(b); - }; - var i0 = mdb(Nle, "LayoutConfigurator/lambda$0$Type", 932); - bcb(933, 1, { 1933: 1 }, i2c); - _.pg = function j2c(a, b) { - return h2c(a, b); - }; - var j0 = mdb(Nle, "LayoutConfigurator/lambda$1$Type", 933); - bcb(931, 1, { 831: 1 }, k2c); - _.qg = function l2c(a, b) { - return Y1c(), !a.Xe(b); - }; - var k0 = mdb(Nle, "LayoutConfigurator/lambda$2$Type", 931); - bcb(934, 1, Oie, m2c); - _.Mb = function n2c(a) { - return d2c(this.a, this.b, BD(a, 1933)); - }; - var l0 = mdb(Nle, "LayoutConfigurator/lambda$3$Type", 934); - bcb(858, 1, {}, w2c); - var n0 = mdb(Nle, "RecursiveGraphLayoutEngine", 858); - bcb(296, 60, Tie, x2c, y2c); - var o0 = mdb(Nle, "UnsupportedConfigurationException", 296); - bcb(453, 60, Tie, z2c); - var p0 = mdb(Nle, "UnsupportedGraphException", 453); - bcb(754, 1, {}); - var K1 = mdb(yqe, "AbstractRandomListAccessor", 754); - bcb(500, 754, {}, L2c); - _.rg = function N2c() { - return null; - }; - _.d = true; - _.e = true; - _.f = 0; - var v0 = mdb(fse, "AlgorithmAssembler", 500); - bcb(1236, 1, Oie, O2c); - _.Mb = function P2c(a) { - return !!BD(a, 123); - }; - var q0 = mdb(fse, "AlgorithmAssembler/lambda$0$Type", 1236); - bcb(1237, 1, {}, Q2c); - _.Kb = function R2c(a) { - return M2c(this.a, BD(a, 123)); - }; - var r0 = mdb(fse, "AlgorithmAssembler/lambda$1$Type", 1237); - bcb(1238, 1, Oie, S2c); - _.Mb = function T2c(a) { - return !!BD(a, 80); - }; - var s0 = mdb(fse, "AlgorithmAssembler/lambda$2$Type", 1238); - bcb(1239, 1, qie, U2c); - _.td = function V2c(a) { - d3c(this.a, BD(a, 80)); - }; - var t0 = mdb(fse, "AlgorithmAssembler/lambda$3$Type", 1239); - bcb(1240, 1, qie, W2c); - _.td = function X2c(a) { - G2c(this.a, this.b, BD(a, 234)); - }; - var u0 = mdb(fse, "AlgorithmAssembler/lambda$4$Type", 1240); - bcb(1355, 1, Dke, Z2c); - _.ue = function $2c(a, b) { - return Y2c(BD(a, 234), BD(b, 234)); - }; - _.Fb = function _2c(a) { - return this === a; - }; - _.ve = function a3c() { - return new tpb(this); - }; - var w0 = mdb(fse, "EnumBasedFactoryComparator", 1355); - bcb(80, 754, { 80: 1 }, j3c); - _.rg = function l3c() { - return new Tqb(); - }; - _.a = 0; - var x0 = mdb(fse, "LayoutProcessorConfiguration", 80); - bcb(1013, 1, { 527: 1 }, q3c); - _.og = function u3c(a) { - stb(n3c, new z3c(a)); - }; - var m3c, n3c, o3c; - var B0 = mdb(Xke, "DeprecatedLayoutOptionReplacer", 1013); - bcb(1014, 1, qie, v3c); - _.td = function w3c(a) { - r3c(BD(a, 160)); - }; - var y0 = mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1014); - bcb(1015, 1, qie, x3c); - _.td = function y3c(a) { - s3c(BD(a, 160)); - }; - var z0 = mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1015); - bcb(1016, 1, {}, z3c); - _.Od = function A3c(a, b) { - t3c(this.a, BD(a, 146), BD(b, 38)); - }; - var A0 = mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1016); - bcb(149, 1, { 686: 1, 149: 1 }, E3c); - _.Fb = function F3c(a) { - return C3c(this, a); - }; - _.sg = function G3c() { - return this.b; - }; - _.tg = function H3c() { - return this.c; - }; - _.ne = function I3c() { - return this.e; - }; - _.Hb = function J3c() { - return LCb(this.c); - }; - _.Ib = function K3c() { - return "Layout Algorithm: " + this.c; - }; - var E0 = mdb(Xke, "LayoutAlgorithmData", 149); - bcb(263, 1, {}, R3c); - var D0 = mdb(Xke, "LayoutAlgorithmData/Builder", 263); - bcb(1017, 1, { 527: 1 }, U3c); - _.og = function V3c(a) { - JD(a, 239) && !Ccb(DD(a.We((Y9c(), d9c)))) && S3c(BD(a, 33)); - }; - var F0 = mdb(Xke, "LayoutAlgorithmResolver", 1017); - bcb(229, 1, { 686: 1, 229: 1 }, W3c); - _.Fb = function X3c(a) { - if (JD(a, 229)) { - return dfb(this.b, BD(a, 229).b); - } - return false; - }; - _.sg = function Y3c() { - return this.a; - }; - _.tg = function Z3c() { - return this.b; - }; - _.ne = function $3c() { - return this.d; - }; - _.Hb = function _3c() { - return LCb(this.b); - }; - _.Ib = function a4c() { - return "Layout Type: " + this.b; - }; - var H0 = mdb(Xke, "LayoutCategoryData", 229); - bcb(344, 1, {}, e4c); - var G0 = mdb(Xke, "LayoutCategoryData/Builder", 344); - bcb(867, 1, {}, m4c); - var f4c; - var c1 = mdb(Xke, "LayoutMetaDataService", 867); - bcb(868, 1, {}, v4c); - var J0 = mdb(Xke, "LayoutMetaDataService/Registry", 868); - bcb(478, 1, { 478: 1 }, w4c); - var I0 = mdb(Xke, "LayoutMetaDataService/Registry/Triple", 478); - bcb(869, 1, gse, x4c); - _.ug = function y4c() { - return new d7c(); - }; - var K0 = mdb(Xke, "LayoutMetaDataService/lambda$0$Type", 869); - bcb(870, 1, hse, z4c); - _.vg = function A4c(a) { - return R6c(BD(a, 8)); - }; - var L0 = mdb(Xke, "LayoutMetaDataService/lambda$1$Type", 870); - bcb(879, 1, gse, B4c); - _.ug = function C4c() { - return new Rkb(); - }; - var M0 = mdb(Xke, "LayoutMetaDataService/lambda$10$Type", 879); - bcb(880, 1, hse, D4c); - _.vg = function E4c(a) { - return new Tkb(BD(a, 12)); - }; - var N0 = mdb(Xke, "LayoutMetaDataService/lambda$11$Type", 880); - bcb(881, 1, gse, F4c); - _.ug = function G4c() { - return new Psb(); - }; - var O0 = mdb(Xke, "LayoutMetaDataService/lambda$12$Type", 881); - bcb(882, 1, hse, H4c); - _.vg = function I4c(a) { - return Ru(BD(a, 68)); - }; - var P0 = mdb(Xke, "LayoutMetaDataService/lambda$13$Type", 882); - bcb(883, 1, gse, J4c); - _.ug = function K4c() { - return new Tqb(); - }; - var Q0 = mdb(Xke, "LayoutMetaDataService/lambda$14$Type", 883); - bcb(884, 1, hse, L4c); - _.vg = function M4c(a) { - return Dx(BD(a, 53)); - }; - var R0 = mdb(Xke, "LayoutMetaDataService/lambda$15$Type", 884); - bcb(885, 1, gse, N4c); - _.ug = function O4c() { - return new zsb(); - }; - var S0 = mdb(Xke, "LayoutMetaDataService/lambda$16$Type", 885); - bcb(886, 1, hse, P4c); - _.vg = function Q4c(a) { - return Gx(BD(a, 53)); - }; - var T0 = mdb(Xke, "LayoutMetaDataService/lambda$17$Type", 886); - bcb(887, 1, gse, R4c); - _.ug = function S4c() { - return new Gxb(); - }; - var U0 = mdb(Xke, "LayoutMetaDataService/lambda$18$Type", 887); - bcb(888, 1, hse, T4c); - _.vg = function U4c(a) { - return Hx(BD(a, 208)); - }; - var V0 = mdb(Xke, "LayoutMetaDataService/lambda$19$Type", 888); - bcb(871, 1, gse, V4c); - _.ug = function W4c() { - return new s7c(); - }; - var W0 = mdb(Xke, "LayoutMetaDataService/lambda$2$Type", 871); - bcb(872, 1, hse, X4c); - _.vg = function Y4c(a) { - return new t7c(BD(a, 74)); - }; - var X0 = mdb(Xke, "LayoutMetaDataService/lambda$3$Type", 872); - bcb(873, 1, gse, Z4c); - _.ug = function $4c() { - return new H_b(); - }; - var Y0 = mdb(Xke, "LayoutMetaDataService/lambda$4$Type", 873); - bcb(874, 1, hse, _4c); - _.vg = function a5c(a) { - return new K_b(BD(a, 142)); - }; - var Z0 = mdb(Xke, "LayoutMetaDataService/lambda$5$Type", 874); - bcb(875, 1, gse, b5c); - _.ug = function c5c() { - return new p0b(); - }; - var $0 = mdb(Xke, "LayoutMetaDataService/lambda$6$Type", 875); - bcb(876, 1, hse, d5c); - _.vg = function e5c(a) { - return new r0b(BD(a, 116)); - }; - var _0 = mdb(Xke, "LayoutMetaDataService/lambda$7$Type", 876); - bcb(877, 1, gse, f5c); - _.ug = function g5c() { - return new _fd(); - }; - var a1 = mdb(Xke, "LayoutMetaDataService/lambda$8$Type", 877); - bcb(878, 1, hse, h5c); - _.vg = function i5c(a) { - return new agd(BD(a, 373)); - }; - var b1 = mdb(Xke, "LayoutMetaDataService/lambda$9$Type", 878); - var Q3 = odb(Hle, "IProperty"); - bcb(23, 1, { 35: 1, 686: 1, 23: 1, 146: 1 }, p5c); - _.wd = function q5c(a) { - return k5c(this, BD(a, 146)); - }; - _.Fb = function r5c(a) { - return JD(a, 23) ? dfb(this.f, BD(a, 23).f) : JD(a, 146) && dfb(this.f, BD(a, 146).tg()); - }; - _.wg = function s5c() { - var a; - if (JD(this.b, 4)) { - a = fvd(this.b); - if (a == null) { - throw vbb(new Zdb(mse + this.f + "'. Make sure it's type is registered with the " + (fdb(Y3), Y3.k) + jse)); - } - return a; - } else { - return this.b; - } - }; - _.sg = function t5c() { - return this.d; - }; - _.tg = function u5c() { - return this.f; - }; - _.ne = function v5c() { - return this.i; - }; - _.Hb = function w5c() { - return LCb(this.f); - }; - _.Ib = function x5c() { - return "Layout Option: " + this.f; - }; - var g1 = mdb(Xke, "LayoutOptionData", 23); - bcb(24, 1, {}, H5c); - var d1 = mdb(Xke, "LayoutOptionData/Builder", 24); - bcb(175, 22, { 3: 1, 35: 1, 22: 1, 175: 1 }, O5c); - var I5c, J5c, K5c, L5c, M5c; - var e1 = ndb(Xke, "LayoutOptionData/Target", 175, CI, Q5c, P5c); - var R5c; - bcb(277, 22, { 3: 1, 35: 1, 22: 1, 277: 1 }, a6c); - var T5c, U5c, V5c, W5c, X5c, Y5c, Z5c, $5c; - var f1 = ndb(Xke, "LayoutOptionData/Type", 277, CI, c6c, b6c); - var d6c; - var f6c; - var h6c; - bcb(110, 1, { 110: 1 }, I6c, J6c, K6c); - _.Fb = function L6c(a) { - var b; - if (a == null || !JD(a, 110)) { - return false; - } - b = BD(a, 110); - return wtb(this.c, b.c) && wtb(this.d, b.d) && wtb(this.b, b.b) && wtb(this.a, b.a); - }; - _.Hb = function M6c() { - return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d, this.b, this.a])); - }; - _.Ib = function N6c() { - return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]"; - }; - _.a = 0; - _.b = 0; - _.c = 0; - _.d = 0; - var k1 = mdb(pne, "ElkRectangle", 110); - bcb(8, 1, { 3: 1, 4: 1, 8: 1, 414: 1 }, d7c, e7c, f7c, g7c); - _.Fb = function h7c(a) { - return T6c(this, a); - }; - _.Hb = function i7c() { - return Hdb(this.a) + jeb(Hdb(this.b)); - }; - _.Jf = function k7c(b) { - var c, d, e, f; - e = 0; - while (e < b.length && j7c((BCb(e, b.length), b.charCodeAt(e)), mne)) { - ++e; - } - c = b.length; - while (c > 0 && j7c((BCb(c - 1, b.length), b.charCodeAt(c - 1)), nne)) { - --c; - } - if (e >= c) { - throw vbb(new Wdb("The given string does not contain any numbers.")); - } - f = mfb(b.substr(e, c - e), ",|;|\r|\n"); - if (f.length != 2) { - throw vbb(new Wdb("Exactly two numbers are expected, " + f.length + " were found.")); - } - try { - this.a = Hcb(ufb(f[0])); - this.b = Hcb(ufb(f[1])); - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - d = a; - throw vbb(new Wdb(one + d)); - } else - throw vbb(a); - } - }; - _.Ib = function m7c() { - return "(" + this.a + "," + this.b + ")"; - }; - _.a = 0; - _.b = 0; - var m1 = mdb(pne, "KVector", 8); - bcb(74, 68, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1, 74: 1, 414: 1 }, s7c, t7c, u7c); - _.Pc = function x7c() { - return r7c(this); - }; - _.Jf = function v7c(b) { - var c, d, e, f, g10, h; - e = mfb(b, ",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n"); - Osb(this); - try { - d = 0; - g10 = 0; - f = 0; - h = 0; - while (d < e.length) { - if (e[d] != null && ufb(e[d]).length > 0) { - g10 % 2 == 0 ? f = Hcb(e[d]) : h = Hcb(e[d]); - g10 > 0 && g10 % 2 != 0 && Dsb(this, new f7c(f, h)); - ++g10; - } - ++d; - } - } catch (a) { - a = ubb(a); - if (JD(a, 127)) { - c = a; - throw vbb(new Wdb("The given string does not match the expected format for vectors." + c)); - } else - throw vbb(a); - } - }; - _.Ib = function y7c() { - var a, b, c; - a = new Wfb("("); - b = Jsb(this, 0); - while (b.b != b.d.c) { - c = BD(Xsb(b), 8); - Qfb(a, c.a + "," + c.b); - b.b != b.d.c && (a.a += "; ", a); - } - return (a.a += ")", a).a; - }; - var l1 = mdb(pne, "KVectorChain", 74); - bcb(248, 22, { 3: 1, 35: 1, 22: 1, 248: 1 }, G7c); - var z7c, A7c, B7c, C7c, D7c, E7c; - var o1 = ndb(ose, "Alignment", 248, CI, I7c, H7c); - var J7c; - bcb(979, 1, ale, Z7c); - _.Qe = function $7c(a) { - Y7c(a); - }; - var L7c, M7c, N7c, O7c, P7c, Q7c, R7c, S7c, T7c, U7c, V7c, W7c; - var q1 = mdb(ose, "BoxLayouterOptions", 979); - bcb(980, 1, {}, _7c); - _.$e = function a8c() { - var a; - return a = new ged(), a; - }; - _._e = function b8c(a) { - }; - var p1 = mdb(ose, "BoxLayouterOptions/BoxFactory", 980); - bcb(291, 22, { 3: 1, 35: 1, 22: 1, 291: 1 }, j8c); - var c8c, d8c, e8c, f8c, g8c, h8c; - var r1 = ndb(ose, "ContentAlignment", 291, CI, l8c, k8c); - var m8c; - bcb(684, 1, ale, Z9c); - _.Qe = function $9c(a) { - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), sse), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c))))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tse), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), Y5c), E0), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $pe), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), q8c), V5c), o1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), _le), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), use), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), Y5c), l1), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lqe), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), x8c), W5c), r1), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zpe), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (Bcb(), false)), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cqe), ""), Cle), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), A8c), V5c), t1), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ype), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), F8c), V5c), v1), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Jre), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), tpe), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), K8c), V5c), z1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ame), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), g9c), Y5c), j1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ame), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xqe), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dme), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bme), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), u9c), V5c), D1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), uqe), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), Y5c), m1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [M5c, J5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vme), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), X5c), JI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), yme), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), zme), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mqe), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), R8c), Y5c), l1), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pqe), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), false), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qqe), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), false), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vse), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), Y5c), h1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), vqe), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), T8c), Y5c), i1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xpe), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), T5c), wI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wse), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), U5c), BI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xse), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), true), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yse), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), meb(100)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zse), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ase), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), meb(4e3)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bse), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), meb(400)), X5c), JI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cse), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dse), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ese), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), true), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fse), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rse), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), u8c), V5c), O1), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Lpe), zpe), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mpe), zpe), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zle), zpe), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Npe), zpe), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xme), zpe), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ope), zpe), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ppe), zpe), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Spe), zpe), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qpe), zpe), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rpe), zpe), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wme), zpe), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tpe), zpe), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), U5c), BI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Upe), zpe), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vpe), zpe), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), Y5c), i2), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wqe), zpe), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), W9c), Y5c), i1), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tqe), Jse), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), X5c), JI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c]))))); - o4c(a, tqe, sqe, k9c); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), sqe), Jse), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), i9c), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), dqe), Kse), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), V8c), Y5c), j1), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gme), Kse), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), X8c), W5c), B1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [J5c]))))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gqe), Lse), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), m9c), V5c), C1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), hqe), Lse), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), iqe), Lse), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), jqe), Lse), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), kqe), Lse), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fme), Mse), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), Z8c), W5c), I1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Eme), Mse), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), c9c), W5c), J1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tme), Mse), "Node Size Minimum"), "The minimal size to which a node can be reduced."), a9c), Y5c), m1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bqe), Mse), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), T5c), wI), pqb(L5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nqe), Jpe), "Edge Label Placement"), "Gives a hint on where to put edge labels."), D8c), V5c), u1), pqb(J5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cme), Jpe), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), T5c), wI), pqb(J5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Gse), "font"), "Font Name"), "Font name used for a label."), Z5c), ZI), pqb(J5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Hse), "font"), "Font Size"), "Font size used for a label."), X5c), JI), pqb(J5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), rqe), Nse), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), Y5c), m1), pqb(M5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), oqe), Nse), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), X5c), JI), pqb(M5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ype), Nse), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), B9c), V5c), F1), pqb(M5c)))); - t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wpe), Nse), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), U5c), BI), pqb(M5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hme), Ose), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), y9c), W5c), E1), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eqe), Ose), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fqe), Ose), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), true), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _pe), Pse), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), T5c), wI), pqb(K5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aqe), Pse), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), false), T5c), wI), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $le), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), U5c), BI), pqb(I5c)))); - t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ise), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), H8c), V5c), w1), pqb(I5c)))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sne), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), ume), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), bre), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))); - s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sre), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles."))); - $ad((new _ad(), a)); - Y7c((new Z7c(), a)); - jdd((new kdd(), a)); - }; - var o8c, p8c, q8c, r8c, s8c, t8c, u8c, v8c, w8c, x8c, y8c, z8c, A8c, B8c, C8c, D8c, E8c, F8c, G8c, H8c, I8c, J8c, K8c, L8c, M8c, N8c, O8c, P8c, Q8c, R8c, S8c, T8c, U8c, V8c, W8c, X8c, Y8c, Z8c, $8c, _8c, a9c, b9c, c9c, d9c, e9c, f9c, g9c, h9c, i9c, j9c, k9c, l9c, m9c, n9c, o9c, p9c, q9c, r9c, s9c, t9c, u9c, v9c, w9c, x9c, y9c, z9c, A9c, B9c, C9c, D9c, E9c, F9c, G9c, H9c, I9c, J9c, K9c, L9c, M9c, N9c, O9c, P9c, Q9c, R9c, S9c, T9c, U9c, V9c, W9c, X9c; - var s1 = mdb(ose, "CoreOptions", 684); - bcb(103, 22, { 3: 1, 35: 1, 22: 1, 103: 1 }, iad); - var _9c, aad, bad, cad, dad; - var t1 = ndb(ose, Cle, 103, CI, kad, jad); - var lad; - bcb(272, 22, { 3: 1, 35: 1, 22: 1, 272: 1 }, rad); - var nad, oad, pad; - var u1 = ndb(ose, "EdgeLabelPlacement", 272, CI, tad, sad); - var uad; - bcb(218, 22, { 3: 1, 35: 1, 22: 1, 218: 1 }, Bad); - var wad, xad, yad, zad; - var v1 = ndb(ose, "EdgeRouting", 218, CI, Dad, Cad); - var Ead; - bcb(312, 22, { 3: 1, 35: 1, 22: 1, 312: 1 }, Nad); - var Gad, Had, Iad, Jad, Kad, Lad; - var w1 = ndb(ose, "EdgeType", 312, CI, Pad, Oad); - var Qad; - bcb(977, 1, ale, _ad); - _.Qe = function abd(a) { - $ad(a); - }; - var Sad, Tad, Uad, Vad, Wad, Xad, Yad; - var y1 = mdb(ose, "FixedLayouterOptions", 977); - bcb(978, 1, {}, bbd); - _.$e = function cbd() { - var a; - return a = new Zfd(), a; - }; - _._e = function dbd(a) { - }; - var x1 = mdb(ose, "FixedLayouterOptions/FixedFactory", 978); - bcb(334, 22, { 3: 1, 35: 1, 22: 1, 334: 1 }, ibd); - var ebd, fbd, gbd; - var z1 = ndb(ose, "HierarchyHandling", 334, CI, kbd, jbd); - var lbd; - bcb(285, 22, { 3: 1, 35: 1, 22: 1, 285: 1 }, tbd); - var nbd, obd, pbd, qbd; - var A1 = ndb(ose, "LabelSide", 285, CI, vbd, ubd); - var wbd; - bcb(93, 22, { 3: 1, 35: 1, 22: 1, 93: 1 }, Ibd); - var ybd, zbd, Abd, Bbd, Cbd, Dbd, Ebd, Fbd, Gbd; - var B1 = ndb(ose, "NodeLabelPlacement", 93, CI, Lbd, Kbd); - var Mbd; - bcb(249, 22, { 3: 1, 35: 1, 22: 1, 249: 1 }, Ubd); - var Obd, Pbd, Qbd, Rbd, Sbd; - var C1 = ndb(ose, "PortAlignment", 249, CI, Wbd, Vbd); - var Xbd; - bcb(98, 22, { 3: 1, 35: 1, 22: 1, 98: 1 }, gcd); - var Zbd, $bd, _bd, acd, bcd, ccd; - var D1 = ndb(ose, "PortConstraints", 98, CI, icd, hcd); - var jcd; - bcb(273, 22, { 3: 1, 35: 1, 22: 1, 273: 1 }, scd); - var lcd, mcd, ncd, ocd, pcd, qcd; - var E1 = ndb(ose, "PortLabelPlacement", 273, CI, wcd, vcd); - var xcd; - bcb(61, 22, { 3: 1, 35: 1, 22: 1, 61: 1 }, Ycd); - var zcd, Acd, Bcd, Ccd, Dcd, Ecd, Fcd, Gcd, Hcd, Icd, Jcd, Kcd, Lcd, Mcd, Ncd, Ocd, Pcd, Qcd, Rcd, Scd, Tcd; - var F1 = ndb(ose, "PortSide", 61, CI, _cd, $cd); - var bdd; - bcb(981, 1, ale, kdd); - _.Qe = function ldd(a) { - jdd(a); - }; - var ddd, edd, fdd, gdd, hdd; - var H1 = mdb(ose, "RandomLayouterOptions", 981); - bcb(982, 1, {}, mdd); - _.$e = function ndd() { - var a; - return a = new Mgd(), a; - }; - _._e = function odd(a) { - }; - var G1 = mdb(ose, "RandomLayouterOptions/RandomFactory", 982); - bcb(374, 22, { 3: 1, 35: 1, 22: 1, 374: 1 }, udd); - var pdd, qdd, rdd, sdd; - var I1 = ndb(ose, "SizeConstraint", 374, CI, wdd, vdd); - var xdd; - bcb(259, 22, { 3: 1, 35: 1, 22: 1, 259: 1 }, Jdd); - var zdd, Add, Bdd, Cdd, Ddd, Edd, Fdd, Gdd, Hdd; - var J1 = ndb(ose, "SizeOptions", 259, CI, Ldd, Kdd); - var Mdd; - bcb(370, 1, { 1949: 1 }, Zdd); - _.b = false; - _.c = 0; - _.d = -1; - _.e = null; - _.f = null; - _.g = -1; - _.j = false; - _.k = false; - _.n = false; - _.o = 0; - _.q = 0; - _.r = 0; - var L1 = mdb(yqe, "BasicProgressMonitor", 370); - bcb(972, 209, Mle, ged); - _.Ze = function ked(a, b) { - var c, d, e, f, g10, h, i10, j, k; - Odd(b, "Box layout", 2); - e = Gdb(ED(hkd(a, (X7c(), W7c)))); - f = BD(hkd(a, T7c), 116); - c = Ccb(DD(hkd(a, O7c))); - d = Ccb(DD(hkd(a, P7c))); - switch (BD(hkd(a, M7c), 311).g) { - case 0: - g10 = (h = new Tkb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)), mmb(), Okb(h, new med(d)), h); - i10 = rfd(a); - j = ED(hkd(a, L7c)); - (j == null || (uCb(j), j) <= 0) && (j = 1.3); - k = ded(g10, e, f, i10.a, i10.b, c, (uCb(j), j)); - Afd(a, k.a, k.b, false, true); - break; - default: - eed(a, e, f, c); - } - Qdd(b); - }; - var S1 = mdb(yqe, "BoxLayoutProvider", 972); - bcb(973, 1, Dke, med); - _.ue = function ned(a, b) { - return led(this, BD(a, 33), BD(b, 33)); - }; - _.Fb = function oed(a) { - return this === a; - }; - _.ve = function ped() { - return new tpb(this); - }; - _.a = false; - var M1 = mdb(yqe, "BoxLayoutProvider/1", 973); - bcb(157, 1, { 157: 1 }, wed, xed); - _.Ib = function yed() { - return this.c ? _od(this.c) : Fe(this.b); - }; - var N1 = mdb(yqe, "BoxLayoutProvider/Group", 157); - bcb(311, 22, { 3: 1, 35: 1, 22: 1, 311: 1 }, Eed); - var zed, Aed, Bed, Ced; - var O1 = ndb(yqe, "BoxLayoutProvider/PackingMode", 311, CI, Ged, Fed); - var Hed; - bcb(974, 1, Dke, Jed); - _.ue = function Ked(a, b) { - return hed(BD(a, 157), BD(b, 157)); - }; - _.Fb = function Led(a) { - return this === a; - }; - _.ve = function Med() { - return new tpb(this); - }; - var P1 = mdb(yqe, "BoxLayoutProvider/lambda$0$Type", 974); - bcb(975, 1, Dke, Ned); - _.ue = function Oed(a, b) { - return ied(BD(a, 157), BD(b, 157)); - }; - _.Fb = function Ped(a) { - return this === a; - }; - _.ve = function Qed() { - return new tpb(this); - }; - var Q1 = mdb(yqe, "BoxLayoutProvider/lambda$1$Type", 975); - bcb(976, 1, Dke, Red); - _.ue = function Sed(a, b) { - return jed(BD(a, 157), BD(b, 157)); - }; - _.Fb = function Ted(a) { - return this === a; - }; - _.ve = function Ued() { - return new tpb(this); - }; - var R1 = mdb(yqe, "BoxLayoutProvider/lambda$2$Type", 976); - bcb(1365, 1, { 831: 1 }, Ved); - _.qg = function Wed(a, b) { - return Vyc(), !JD(b, 160) || h2c((Y1c(), X1c, BD(a, 160)), b); - }; - var T1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1365); - bcb(1366, 1, qie, Xed); - _.td = function Yed(a) { - Yyc(this.a, BD(a, 146)); - }; - var U1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1366); - bcb(1367, 1, qie, Zed); - _.td = function $ed(a) { - BD(a, 94); - Vyc(); - }; - var V1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1367); - bcb(1371, 1, qie, _ed); - _.td = function afd(a) { - Zyc(this.a, BD(a, 94)); - }; - var W1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1371); - bcb(1369, 1, Oie, bfd); - _.Mb = function cfd(a) { - return $yc(this.a, this.b, BD(a, 146)); - }; - var X1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1369); - bcb(1368, 1, Oie, dfd); - _.Mb = function efd(a) { - return azc(this.a, this.b, BD(a, 831)); - }; - var Y1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1368); - bcb(1370, 1, qie, ffd); - _.td = function gfd(a) { - _yc(this.a, this.b, BD(a, 146)); - }; - var Z1 = mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1370); - bcb(935, 1, {}, Hfd); - _.Kb = function Ifd(a) { - return Gfd(a); - }; - _.Fb = function Jfd(a) { - return this === a; - }; - var _1 = mdb(yqe, "ElkUtil/lambda$0$Type", 935); - bcb(936, 1, qie, Kfd); - _.td = function Lfd(a) { - ufd(this.a, this.b, BD(a, 79)); - }; - _.a = 0; - _.b = 0; - var a2 = mdb(yqe, "ElkUtil/lambda$1$Type", 936); - bcb(937, 1, qie, Mfd); - _.td = function Nfd(a) { - vfd(this.a, this.b, BD(a, 202)); - }; - _.a = 0; - _.b = 0; - var b2 = mdb(yqe, "ElkUtil/lambda$2$Type", 937); - bcb(938, 1, qie, Ofd); - _.td = function Pfd(a) { - wfd(this.a, this.b, BD(a, 137)); - }; - _.a = 0; - _.b = 0; - var c2 = mdb(yqe, "ElkUtil/lambda$3$Type", 938); - bcb(939, 1, qie, Qfd); - _.td = function Rfd(a) { - xfd(this.a, BD(a, 469)); - }; - var d2 = mdb(yqe, "ElkUtil/lambda$4$Type", 939); - bcb(342, 1, { 35: 1, 342: 1 }, Tfd); - _.wd = function Ufd(a) { - return Sfd(this, BD(a, 236)); - }; - _.Fb = function Vfd(a) { - var b; - if (JD(a, 342)) { - b = BD(a, 342); - return this.a == b.a; - } - return false; - }; - _.Hb = function Wfd() { - return QD(this.a); - }; - _.Ib = function Xfd() { - return this.a + " (exclusive)"; - }; - _.a = 0; - var e2 = mdb(yqe, "ExclusiveBounds/ExclusiveLowerBound", 342); - bcb(1138, 209, Mle, Zfd); - _.Ze = function $fd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r, s, t, u, v, w, A, B; - Odd(b, "Fixed Layout", 1); - f = BD(hkd(a, (Y9c(), E8c)), 218); - l = 0; - m = 0; - for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) { - q = BD(Dyd(s), 33); - B = BD(hkd(q, (Zad(), Yad)), 8); - if (B) { - bld(q, B.a, B.b); - if (BD(hkd(q, Tad), 174).Hc((tdd(), pdd))) { - n = BD(hkd(q, Vad), 8); - n.a > 0 && n.b > 0 && Afd(q, n.a, n.b, true, true); - } - } - l = $wnd.Math.max(l, q.i + q.g); - m = $wnd.Math.max(m, q.j + q.f); - for (j = new Fyd((!q.n && (q.n = new cUd(D2, q, 1, 7)), q.n)); j.e != j.i.gc(); ) { - h = BD(Dyd(j), 137); - B = BD(hkd(h, Yad), 8); - !!B && bld(h, B.a, B.b); - l = $wnd.Math.max(l, q.i + h.i + h.g); - m = $wnd.Math.max(m, q.j + h.j + h.f); - } - for (v = new Fyd((!q.c && (q.c = new cUd(F2, q, 9, 9)), q.c)); v.e != v.i.gc(); ) { - u = BD(Dyd(v), 118); - B = BD(hkd(u, Yad), 8); - !!B && bld(u, B.a, B.b); - w = q.i + u.i; - A = q.j + u.j; - l = $wnd.Math.max(l, w + u.g); - m = $wnd.Math.max(m, A + u.f); - for (i10 = new Fyd((!u.n && (u.n = new cUd(D2, u, 1, 7)), u.n)); i10.e != i10.i.gc(); ) { - h = BD(Dyd(i10), 137); - B = BD(hkd(h, Yad), 8); - !!B && bld(h, B.a, B.b); - l = $wnd.Math.max(l, w + h.i + h.g); - m = $wnd.Math.max(m, A + h.j + h.f); - } - } - for (e = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(e); ) { - c = BD(Rr(e), 79); - k = Yfd(c); - l = $wnd.Math.max(l, k.a); - m = $wnd.Math.max(m, k.b); - } - for (d = new Sr(ur($sd(q).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 79); - if (Xod(jtd(c)) != a) { - k = Yfd(c); - l = $wnd.Math.max(l, k.a); - m = $wnd.Math.max(m, k.b); - } - } - } - if (f == (Aad(), wad)) { - for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) { - q = BD(Dyd(r), 33); - for (d = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(d); ) { - c = BD(Rr(d), 79); - g10 = pfd(c); - g10.b == 0 ? jkd(c, Q8c, null) : jkd(c, Q8c, g10); - } - } - } - if (!Ccb(DD(hkd(a, (Zad(), Uad))))) { - t = BD(hkd(a, Wad), 116); - p = l + t.b + t.c; - o10 = m + t.d + t.a; - Afd(a, p, o10, true, true); - } - Qdd(b); - }; - var f2 = mdb(yqe, "FixedLayoutProvider", 1138); - bcb(373, 134, { 3: 1, 414: 1, 373: 1, 94: 1, 134: 1 }, _fd, agd); - _.Jf = function dgd(b) { - var c, d, e, f, g10, h, i10, j, k; - if (!b) { - return; - } - try { - j = mfb(b, ";,;"); - for (g10 = j, h = 0, i10 = g10.length; h < i10; ++h) { - f = g10[h]; - d = mfb(f, "\\:"); - e = k4c(n4c(), d[0]); - if (!e) { - throw vbb(new Wdb("Invalid option id: " + d[0])); - } - k = o5c(e, d[1]); - if (k == null) { - throw vbb(new Wdb("Invalid option value: " + d[1])); - } - k == null ? (!this.q && (this.q = new Lqb()), Thb(this.q, e)) : (!this.q && (this.q = new Lqb()), Rhb(this.q, e, k)); - } - } catch (a) { - a = ubb(a); - if (JD(a, 102)) { - c = a; - throw vbb(new Xdb(c)); - } else - throw vbb(a); - } - }; - _.Ib = function egd() { - var a; - a = GD(GAb(NAb((!this.q ? (mmb(), mmb(), kmb) : this.q).vc().Oc(), new fgd()), Ayb(new pzb(), new nzb(), new Zyb(), new _yb(), OC(GC(xL, 1), Kie, 132, 0, [])))); - return a; - }; - var i2 = mdb(yqe, "IndividualSpacings", 373); - bcb(971, 1, {}, fgd); - _.Kb = function ggd(a) { - return cgd(BD(a, 42)); - }; - var h2 = mdb(yqe, "IndividualSpacings/lambda$0$Type", 971); - bcb(709, 1, {}, jgd); - _.c = 0; - var j2 = mdb(yqe, "InstancePool", 709); - bcb(1275, 1, {}, kgd); - var l2 = mdb(yqe, "LoggedGraph", 1275); - bcb(396, 22, { 3: 1, 35: 1, 22: 1, 396: 1 }, qgd); - var lgd, mgd, ngd, ogd; - var k2 = ndb(yqe, "LoggedGraph/Type", 396, CI, sgd, rgd); - var tgd; - bcb(46, 1, { 20: 1, 46: 1 }, vgd); - _.Jc = function xgd(a) { - reb(this, a); - }; - _.Fb = function wgd(a) { - var b, c, d; - if (JD(a, 46)) { - c = BD(a, 46); - b = this.a == null ? c.a == null : pb(this.a, c.a); - d = this.b == null ? c.b == null : pb(this.b, c.b); - return b && d; - } else { - return false; - } - }; - _.Hb = function ygd() { - var a, b, c, d, e, f; - c = this.a == null ? 0 : tb(this.a); - a = c & aje; - b = c & -65536; - f = this.b == null ? 0 : tb(this.b); - d = f & aje; - e = f & -65536; - return a ^ e >> 16 & aje | b ^ d << 16; - }; - _.Kc = function zgd() { - return new Bgd(this); - }; - _.Ib = function Agd() { - return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + fcb(this.b) + ")" : this.b == null ? "pair(" + fcb(this.a) + ",null)" : "pair(" + fcb(this.a) + "," + fcb(this.b) + ")"; - }; - var n2 = mdb(yqe, "Pair", 46); - bcb(983, 1, aie, Bgd); - _.Nb = function Cgd(a) { - Rrb(this, a); - }; - _.Ob = function Dgd() { - return !this.c && (!this.b && this.a.a != null || this.a.b != null); - }; - _.Pb = function Egd() { - if (!this.c && !this.b && this.a.a != null) { - this.b = true; - return this.a.a; - } else if (!this.c && this.a.b != null) { - this.c = true; - return this.a.b; - } - throw vbb(new utb()); - }; - _.Qb = function Fgd() { - this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null); - throw vbb(new Ydb()); - }; - _.b = false; - _.c = false; - var m2 = mdb(yqe, "Pair/1", 983); - bcb(448, 1, { 448: 1 }, Ggd); - _.Fb = function Hgd(a) { - return wtb(this.a, BD(a, 448).a) && wtb(this.c, BD(a, 448).c) && wtb(this.d, BD(a, 448).d) && wtb(this.b, BD(a, 448).b); - }; - _.Hb = function Igd() { - return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.a, this.c, this.d, this.b])); - }; - _.Ib = function Jgd() { - return "(" + this.a + She + this.c + She + this.d + She + this.b + ")"; - }; - var o2 = mdb(yqe, "Quadruple", 448); - bcb(1126, 209, Mle, Mgd); - _.Ze = function Ngd(a, b) { - var c, d, e, f, g10; - Odd(b, "Random Layout", 1); - if ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i == 0) { - Qdd(b); - return; - } - f = BD(hkd(a, (idd(), gdd)), 19); - !!f && f.a != 0 ? e = new Hub(f.a) : e = new Gub(); - c = Gdb(ED(hkd(a, ddd))); - g10 = Gdb(ED(hkd(a, hdd))); - d = BD(hkd(a, edd), 116); - Lgd(a, e, c, g10, d); - Qdd(b); - }; - var p2 = mdb(yqe, "RandomLayoutProvider", 1126); - var Ogd; - bcb(553, 1, {}); - _.qf = function Sgd() { - return new f7c(this.f.i, this.f.j); - }; - _.We = function Tgd(a) { - if (Jsd(a, (Y9c(), s9c))) { - return hkd(this.f, Qgd); - } - return hkd(this.f, a); - }; - _.rf = function Ugd() { - return new f7c(this.f.g, this.f.f); - }; - _.sf = function Vgd() { - return this.g; - }; - _.Xe = function Wgd(a) { - return ikd(this.f, a); - }; - _.tf = function Xgd(a) { - dld(this.f, a.a); - eld(this.f, a.b); - }; - _.uf = function Ygd(a) { - cld(this.f, a.a); - ald(this.f, a.b); - }; - _.vf = function Zgd(a) { - this.g = a; - }; - _.g = 0; - var Qgd; - var q2 = mdb(Use, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 553); - bcb(554, 1, { 839: 1 }, $gd); - _.wf = function _gd() { - var a, b; - if (!this.b) { - this.b = Qu(Kkd(this.a).i); - for (b = new Fyd(Kkd(this.a)); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 137); - Ekb(this.b, new dhd(a)); - } - } - return this.b; - }; - _.b = null; - var r2 = mdb(Use, "ElkGraphAdapters/ElkEdgeAdapter", 554); - bcb(301, 553, {}, bhd); - _.xf = function chd() { - return ahd(this); - }; - _.a = null; - var s2 = mdb(Use, "ElkGraphAdapters/ElkGraphAdapter", 301); - bcb(630, 553, { 181: 1 }, dhd); - var t2 = mdb(Use, "ElkGraphAdapters/ElkLabelAdapter", 630); - bcb(629, 553, { 680: 1 }, hhd); - _.wf = function khd() { - return ehd(this); - }; - _.Af = function lhd() { - var a; - return a = BD(hkd(this.f, (Y9c(), S8c)), 142), !a && (a = new H_b()), a; - }; - _.Cf = function nhd() { - return fhd(this); - }; - _.Ef = function phd(a) { - var b; - b = new K_b(a); - jkd(this.f, (Y9c(), S8c), b); - }; - _.Ff = function qhd(a) { - jkd(this.f, (Y9c(), f9c), new r0b(a)); - }; - _.yf = function ihd() { - return this.d; - }; - _.zf = function jhd() { - var a, b; - if (!this.a) { - this.a = new Rkb(); - for (b = new Sr(ur($sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) { - a = BD(Rr(b), 79); - Ekb(this.a, new $gd(a)); - } - } - return this.a; - }; - _.Bf = function mhd() { - var a, b; - if (!this.c) { - this.c = new Rkb(); - for (b = new Sr(ur(_sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) { - a = BD(Rr(b), 79); - Ekb(this.c, new $gd(a)); - } - } - return this.c; - }; - _.Df = function ohd() { - return Vod(BD(this.f, 33)).i != 0 || Ccb(DD(BD(this.f, 33).We((Y9c(), M8c)))); - }; - _.Gf = function rhd() { - ghd(this, (Pgd(), Ogd)); - }; - _.a = null; - _.b = null; - _.c = null; - _.d = null; - _.e = null; - var u2 = mdb(Use, "ElkGraphAdapters/ElkNodeAdapter", 629); - bcb(1266, 553, { 838: 1 }, thd); - _.wf = function vhd() { - return shd(this); - }; - _.zf = function uhd() { - var a, b; - if (!this.a) { - this.a = Pu(BD(this.f, 118).xg().i); - for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 79); - Ekb(this.a, new $gd(a)); - } - } - return this.a; - }; - _.Bf = function whd() { - var a, b; - if (!this.c) { - this.c = Pu(BD(this.f, 118).yg().i); - for (b = new Fyd(BD(this.f, 118).yg()); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 79); - Ekb(this.c, new $gd(a)); - } - } - return this.c; - }; - _.Hf = function xhd() { - return BD(BD(this.f, 118).We((Y9c(), A9c)), 61); - }; - _.If = function yhd() { - var a, b, c, d, e, f, g10, h; - d = mpd(BD(this.f, 118)); - for (c = new Fyd(BD(this.f, 118).yg()); c.e != c.i.gc(); ) { - a = BD(Dyd(c), 79); - for (h = new Fyd((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)); h.e != h.i.gc(); ) { - g10 = BD(Dyd(h), 82); - if (ntd(atd(g10), d)) { - return true; - } else if (atd(g10) == d && Ccb(DD(hkd(a, (Y9c(), N8c))))) { - return true; - } - } - } - for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 79); - for (f = new Fyd((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b)); f.e != f.i.gc(); ) { - e = BD(Dyd(f), 82); - if (ntd(atd(e), d)) { - return true; - } - } - } - return false; - }; - _.a = null; - _.b = null; - _.c = null; - var v2 = mdb(Use, "ElkGraphAdapters/ElkPortAdapter", 1266); - bcb(1267, 1, Dke, Ahd); - _.ue = function Bhd(a, b) { - return zhd(BD(a, 118), BD(b, 118)); - }; - _.Fb = function Chd(a) { - return this === a; - }; - _.ve = function Dhd() { - return new tpb(this); - }; - var w2 = mdb(Use, "ElkGraphAdapters/PortComparator", 1267); - var m5 = odb(Vse, "EObject"); - var x2 = odb(Wse, Xse); - var y2 = odb(Wse, Yse); - var C2 = odb(Wse, Zse); - var G2 = odb(Wse, "ElkShape"); - var z2 = odb(Wse, $se); - var B2 = odb(Wse, _se); - var A2 = odb(Wse, ate); - var k5 = odb(Vse, bte); - var i5 = odb(Vse, "EFactory"); - var Ehd; - var l5 = odb(Vse, cte); - var o5 = odb(Vse, "EPackage"); - var Ghd; - var Ihd, Jhd, Khd, Lhd, Mhd, Nhd, Ohd, Phd, Qhd, Rhd, Shd; - var D2 = odb(Wse, dte); - var E2 = odb(Wse, ete); - var F2 = odb(Wse, fte); - bcb(90, 1, gte); - _.Jg = function Vhd() { - this.Kg(); - return null; - }; - _.Kg = function Whd() { - return null; - }; - _.Lg = function Xhd() { - return this.Kg(), false; - }; - _.Mg = function Yhd() { - return false; - }; - _.Ng = function Zhd(a) { - Uhd(this, a); - }; - var b4 = mdb(hte, "BasicNotifierImpl", 90); - bcb(97, 90, pte); - _.nh = function fjd() { - return oid(this); - }; - _.Og = function Fid(a, b) { - return a; - }; - _.Pg = function Gid() { - throw vbb(new bgb()); - }; - _.Qg = function Hid(a) { - var b; - return b = zUd(BD(XKd(this.Tg(), this.Vg()), 18)), this.eh().ih(this, b.n, b.f, a); - }; - _.Rg = function Iid(a, b) { - throw vbb(new bgb()); - }; - _.Sg = function Jid(a, b, c) { - return _hd(this, a, b, c); - }; - _.Tg = function Kid() { - var a; - if (this.Pg()) { - a = this.Pg().ck(); - if (a) { - return a; - } - } - return this.zh(); - }; - _.Ug = function Lid() { - return aid(this); - }; - _.Vg = function Mid() { - throw vbb(new bgb()); - }; - _.Wg = function Oid() { - var a, b; - b = this.ph().dk(); - !b && this.Pg().ik(b = (nRd(), a = pNd(TKd(this.Tg())), a == null ? mRd : new qRd(this, a))); - return b; - }; - _.Xg = function Qid(a, b) { - return a; - }; - _.Yg = function Rid(a) { - var b; - b = a.Gj(); - return !b ? bLd(this.Tg(), a) : a.aj(); - }; - _.Zg = function Sid() { - var a; - a = this.Pg(); - return !a ? null : a.fk(); - }; - _.$g = function Tid() { - return !this.Pg() ? null : this.Pg().ck(); - }; - _._g = function Uid(a, b, c) { - return fid(this, a, b, c); - }; - _.ah = function Vid(a) { - return gid(this, a); - }; - _.bh = function Wid(a, b) { - return hid(this, a, b); - }; - _.dh = function Xid() { - var a; - a = this.Pg(); - return !!a && a.gk(); - }; - _.eh = function Yid() { - throw vbb(new bgb()); - }; - _.fh = function Zid() { - return jid(this); - }; - _.gh = function $id(a, b, c, d) { - return kid(this, a, b, d); - }; - _.hh = function _id(a, b, c) { - var d; - return d = BD(XKd(this.Tg(), b), 66), d.Nj().Qj(this, this.yh(), b - this.Ah(), a, c); - }; - _.ih = function ajd(a, b, c, d) { - return lid(this, a, b, d); - }; - _.jh = function bjd(a, b, c) { - var d; - return d = BD(XKd(this.Tg(), b), 66), d.Nj().Rj(this, this.yh(), b - this.Ah(), a, c); - }; - _.kh = function cjd() { - return !!this.Pg() && !!this.Pg().ek(); - }; - _.lh = function djd(a) { - return mid(this, a); - }; - _.mh = function ejd(a) { - return nid(this, a); - }; - _.oh = function gjd(a) { - return rid(this, a); - }; - _.ph = function hjd() { - throw vbb(new bgb()); - }; - _.qh = function ijd() { - return !this.Pg() ? null : this.Pg().ek(); - }; - _.rh = function jjd() { - return jid(this); - }; - _.sh = function kjd(a, b) { - yid(this, a, b); - }; - _.th = function ljd(a) { - this.ph().hk(a); - }; - _.uh = function mjd(a) { - this.ph().kk(a); - }; - _.vh = function njd(a) { - this.ph().jk(a); - }; - _.wh = function ojd(a, b) { - var c, d, e, f; - f = this.Zg(); - if (!!f && !!a) { - b = Txd(f.Vk(), this, b); - f.Zk(this); - } - d = this.eh(); - if (d) { - if ((Nid(this, this.eh(), this.Vg()).Bb & Tje) != 0) { - e = d.fh(); - !!e && (!a ? e.Yk(this) : !f && e.Zk(this)); - } else { - b = (c = this.Vg(), c >= 0 ? this.Qg(b) : this.eh().ih(this, -1 - c, null, b)); - b = this.Sg(null, -1, b); - } - } - this.uh(a); - return b; - }; - _.xh = function pjd(a) { - var b, c, d, e, f, g10, h, i10; - c = this.Tg(); - f = bLd(c, a); - b = this.Ah(); - if (f >= b) { - return BD(a, 66).Nj().Uj(this, this.yh(), f - b); - } else if (f <= -1) { - g10 = e1d((O6d(), M6d), c, a); - if (g10) { - Q6d(); - BD(g10, 66).Oj() || (g10 = _1d(q1d(M6d, g10))); - e = (d = this.Yg(g10), BD(d >= 0 ? this._g(d, true, true) : sid(this, g10, true), 153)); - i10 = g10.Zj(); - if (i10 > 1 || i10 == -1) { - return BD(BD(e, 215).hl(a, false), 76); - } - } else { - throw vbb(new Wdb(ite + a.ne() + lte)); - } - } else if (a.$j()) { - return d = this.Yg(a), BD(d >= 0 ? this._g(d, false, true) : sid(this, a, false), 76); - } - h = new nGd(this, a); - return h; - }; - _.yh = function qjd() { - return Aid(this); - }; - _.zh = function rjd() { - return (NFd(), MFd).S; - }; - _.Ah = function sjd() { - return aLd(this.zh()); - }; - _.Bh = function tjd(a) { - Cid(this, a); - }; - _.Ib = function ujd() { - return Eid(this); - }; - var B5 = mdb(qte, "BasicEObjectImpl", 97); - var zFd; - bcb(114, 97, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1 }); - _.Ch = function Djd(a) { - var b; - b = xjd(this); - return b[a]; - }; - _.Dh = function Ejd(a, b) { - var c; - c = xjd(this); - NC(c, a, b); - }; - _.Eh = function Fjd(a) { - var b; - b = xjd(this); - NC(b, a, null); - }; - _.Jg = function Gjd() { - return BD(Ajd(this, 4), 126); - }; - _.Kg = function Hjd() { - throw vbb(new bgb()); - }; - _.Lg = function Ijd() { - return (this.Db & 4) != 0; - }; - _.Pg = function Jjd() { - throw vbb(new bgb()); - }; - _.Fh = function Kjd(a) { - Cjd(this, 2, a); - }; - _.Rg = function Ljd(a, b) { - this.Db = b << 16 | this.Db & 255; - this.Fh(a); - }; - _.Tg = function Mjd() { - return wjd(this); - }; - _.Vg = function Njd() { - return this.Db >> 16; - }; - _.Wg = function Ojd() { - var a, b; - return nRd(), b = pNd(TKd((a = BD(Ajd(this, 16), 26), !a ? this.zh() : a))), b == null ? (null, mRd) : new qRd(this, b); - }; - _.Mg = function Pjd() { - return (this.Db & 1) == 0; - }; - _.Zg = function Qjd() { - return BD(Ajd(this, 128), 1935); - }; - _.$g = function Rjd() { - return BD(Ajd(this, 16), 26); - }; - _.dh = function Sjd() { - return (this.Db & 32) != 0; - }; - _.eh = function Tjd() { - return BD(Ajd(this, 2), 49); - }; - _.kh = function Ujd() { - return (this.Db & 64) != 0; - }; - _.ph = function Vjd() { - throw vbb(new bgb()); - }; - _.qh = function Wjd() { - return BD(Ajd(this, 64), 281); - }; - _.th = function Xjd(a) { - Cjd(this, 16, a); - }; - _.uh = function Yjd(a) { - Cjd(this, 128, a); - }; - _.vh = function Zjd(a) { - Cjd(this, 64, a); - }; - _.yh = function $jd() { - return yjd(this); - }; - _.Db = 0; - var s8 = mdb(qte, "MinimalEObjectImpl", 114); - bcb(115, 114, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }); - _.Fh = function _jd(a) { - this.Cb = a; - }; - _.eh = function akd() { - return this.Cb; - }; - var r8 = mdb(qte, "MinimalEObjectImpl/Container", 115); - bcb(1985, 115, { 105: 1, 413: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }); - _._g = function kkd(a, b, c) { - return bkd(this, a, b, c); - }; - _.jh = function lkd(a, b, c) { - return ckd(this, a, b, c); - }; - _.lh = function mkd(a) { - return dkd(this, a); - }; - _.sh = function nkd(a, b) { - ekd(this, a, b); - }; - _.zh = function okd() { - return Thd(), Shd; - }; - _.Bh = function pkd(a) { - fkd(this, a); - }; - _.Ve = function qkd() { - return gkd(this); - }; - _.We = function rkd(a) { - return hkd(this, a); - }; - _.Xe = function skd(a) { - return ikd(this, a); - }; - _.Ye = function tkd(a, b) { - return jkd(this, a, b); - }; - var H2 = mdb(rte, "EMapPropertyHolderImpl", 1985); - bcb(567, 115, { 105: 1, 469: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, xkd); - _._g = function ykd(a, b, c) { - switch (a) { - case 0: - return this.a; - case 1: - return this.b; - } - return fid(this, a, b, c); - }; - _.lh = function zkd(a) { - switch (a) { - case 0: - return this.a != 0; - case 1: - return this.b != 0; - } - return mid(this, a); - }; - _.sh = function Akd(a, b) { - switch (a) { - case 0: - vkd(this, Edb(ED(b))); - return; - case 1: - wkd(this, Edb(ED(b))); - return; - } - yid(this, a, b); - }; - _.zh = function Bkd() { - return Thd(), Ihd; - }; - _.Bh = function Ckd(a) { - switch (a) { - case 0: - vkd(this, 0); - return; - case 1: - wkd(this, 0); - return; - } - Cid(this, a); - }; - _.Ib = function Dkd() { - var a; - if ((this.Db & 64) != 0) - return Eid(this); - a = new Jfb(Eid(this)); - a.a += " (x: "; - Bfb(a, this.a); - a.a += ", y: "; - Bfb(a, this.b); - a.a += ")"; - return a.a; - }; - _.a = 0; - _.b = 0; - var I2 = mdb(rte, "ElkBendPointImpl", 567); - bcb(723, 1985, { 105: 1, 413: 1, 160: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }); - _._g = function Nkd(a, b, c) { - return Ekd(this, a, b, c); - }; - _.hh = function Okd(a, b, c) { - return Fkd(this, a, b, c); - }; - _.jh = function Pkd(a, b, c) { - return Gkd(this, a, b, c); - }; - _.lh = function Qkd(a) { - return Hkd(this, a); - }; - _.sh = function Rkd(a, b) { - Ikd(this, a, b); - }; - _.zh = function Skd() { - return Thd(), Mhd; - }; - _.Bh = function Tkd(a) { - Jkd(this, a); - }; - _.zg = function Ukd() { - return this.k; - }; - _.Ag = function Vkd() { - return Kkd(this); - }; - _.Ib = function Wkd() { - return Mkd(this); - }; - _.k = null; - var M2 = mdb(rte, "ElkGraphElementImpl", 723); - bcb(724, 723, { 105: 1, 413: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }); - _._g = function gld(a, b, c) { - return Xkd(this, a, b, c); - }; - _.lh = function hld(a) { - return Ykd(this, a); - }; - _.sh = function ild(a, b) { - Zkd(this, a, b); - }; - _.zh = function jld() { - return Thd(), Rhd; - }; - _.Bh = function kld(a) { - $kd(this, a); - }; - _.Bg = function lld() { - return this.f; - }; - _.Cg = function mld() { - return this.g; - }; - _.Dg = function nld() { - return this.i; - }; - _.Eg = function old() { - return this.j; - }; - _.Fg = function pld(a, b) { - _kd(this, a, b); - }; - _.Gg = function qld(a, b) { - bld(this, a, b); - }; - _.Hg = function rld(a) { - dld(this, a); - }; - _.Ig = function sld(a) { - eld(this, a); - }; - _.Ib = function tld() { - return fld(this); - }; - _.f = 0; - _.g = 0; - _.i = 0; - _.j = 0; - var T2 = mdb(rte, "ElkShapeImpl", 724); - bcb(725, 724, { 105: 1, 413: 1, 82: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }); - _._g = function Bld(a, b, c) { - return uld(this, a, b, c); - }; - _.hh = function Cld(a, b, c) { - return vld(this, a, b, c); - }; - _.jh = function Dld(a, b, c) { - return wld(this, a, b, c); - }; - _.lh = function Eld(a) { - return xld(this, a); - }; - _.sh = function Fld(a, b) { - yld(this, a, b); - }; - _.zh = function Gld() { - return Thd(), Jhd; - }; - _.Bh = function Hld(a) { - zld(this, a); - }; - _.xg = function Ild() { - return !this.d && (this.d = new y5d(B2, this, 8, 5)), this.d; - }; - _.yg = function Jld() { - return !this.e && (this.e = new y5d(B2, this, 7, 4)), this.e; - }; - var J2 = mdb(rte, "ElkConnectableShapeImpl", 725); - bcb(352, 723, { 105: 1, 413: 1, 79: 1, 160: 1, 352: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Tld); - _.Qg = function Uld(a) { - return Lld(this, a); - }; - _._g = function Vld(a, b, c) { - switch (a) { - case 3: - return Mld(this); - case 4: - return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b; - case 5: - return !this.c && (this.c = new y5d(z2, this, 5, 8)), this.c; - case 6: - return !this.a && (this.a = new cUd(A2, this, 6, 6)), this.a; - case 7: - return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1) ? false : true; - case 8: - return Bcb(), Pld(this) ? true : false; - case 9: - return Bcb(), Qld(this) ? true : false; - case 10: - return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0) ? true : false; - } - return Ekd(this, a, b, c); - }; - _.hh = function Wld(a, b, c) { - var d; - switch (b) { - case 3: - !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? Lld(this, c) : this.Cb.ih(this, -1 - d, null, c))); - return Kld(this, BD(a, 33), c); - case 4: - return !this.b && (this.b = new y5d(z2, this, 4, 7)), Sxd(this.b, a, c); - case 5: - return !this.c && (this.c = new y5d(z2, this, 5, 8)), Sxd(this.c, a, c); - case 6: - return !this.a && (this.a = new cUd(A2, this, 6, 6)), Sxd(this.a, a, c); - } - return Fkd(this, a, b, c); - }; - _.jh = function Xld(a, b, c) { - switch (b) { - case 3: - return Kld(this, null, c); - case 4: - return !this.b && (this.b = new y5d(z2, this, 4, 7)), Txd(this.b, a, c); - case 5: - return !this.c && (this.c = new y5d(z2, this, 5, 8)), Txd(this.c, a, c); - case 6: - return !this.a && (this.a = new cUd(A2, this, 6, 6)), Txd(this.a, a, c); - } - return Gkd(this, a, b, c); - }; - _.lh = function Yld(a) { - switch (a) { - case 3: - return !!Mld(this); - case 4: - return !!this.b && this.b.i != 0; - case 5: - return !!this.c && this.c.i != 0; - case 6: - return !!this.a && this.a.i != 0; - case 7: - return !this.b && (this.b = new y5d(z2, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1)); - case 8: - return Pld(this); - case 9: - return Qld(this); - case 10: - return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0); - } - return Hkd(this, a); - }; - _.sh = function Zld(a, b) { - switch (a) { - case 3: - Rld(this, BD(b, 33)); - return; - case 4: - !this.b && (this.b = new y5d(z2, this, 4, 7)); - Uxd(this.b); - !this.b && (this.b = new y5d(z2, this, 4, 7)); - ytd(this.b, BD(b, 14)); - return; - case 5: - !this.c && (this.c = new y5d(z2, this, 5, 8)); - Uxd(this.c); - !this.c && (this.c = new y5d(z2, this, 5, 8)); - ytd(this.c, BD(b, 14)); - return; - case 6: - !this.a && (this.a = new cUd(A2, this, 6, 6)); - Uxd(this.a); - !this.a && (this.a = new cUd(A2, this, 6, 6)); - ytd(this.a, BD(b, 14)); - return; - } - Ikd(this, a, b); - }; - _.zh = function $ld() { - return Thd(), Khd; - }; - _.Bh = function _ld(a) { - switch (a) { - case 3: - Rld(this, null); - return; - case 4: - !this.b && (this.b = new y5d(z2, this, 4, 7)); - Uxd(this.b); - return; - case 5: - !this.c && (this.c = new y5d(z2, this, 5, 8)); - Uxd(this.c); - return; - case 6: - !this.a && (this.a = new cUd(A2, this, 6, 6)); - Uxd(this.a); - return; - } - Jkd(this, a); - }; - _.Ib = function amd() { - return Sld(this); - }; - var K2 = mdb(rte, "ElkEdgeImpl", 352); - bcb(439, 1985, { 105: 1, 413: 1, 202: 1, 439: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, rmd); - _.Qg = function smd(a) { - return cmd(this, a); - }; - _._g = function tmd(a, b, c) { - switch (a) { - case 1: - return this.j; - case 2: - return this.k; - case 3: - return this.b; - case 4: - return this.c; - case 5: - return !this.a && (this.a = new xMd(y2, this, 5)), this.a; - case 6: - return fmd(this); - case 7: - if (b) - return emd(this); - return this.i; - case 8: - if (b) - return dmd(this); - return this.f; - case 9: - return !this.g && (this.g = new y5d(A2, this, 9, 10)), this.g; - case 10: - return !this.e && (this.e = new y5d(A2, this, 10, 9)), this.e; - case 11: - return this.d; - } - return bkd(this, a, b, c); - }; - _.hh = function umd(a, b, c) { - var d, e, f; - switch (b) { - case 6: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? cmd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return bmd(this, BD(a, 79), c); - case 9: - return !this.g && (this.g = new y5d(A2, this, 9, 10)), Sxd(this.g, a, c); - case 10: - return !this.e && (this.e = new y5d(A2, this, 10, 9)), Sxd(this.e, a, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (Thd(), Lhd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((Thd(), Lhd)), a, c); - }; - _.jh = function vmd(a, b, c) { - switch (b) { - case 5: - return !this.a && (this.a = new xMd(y2, this, 5)), Txd(this.a, a, c); - case 6: - return bmd(this, null, c); - case 9: - return !this.g && (this.g = new y5d(A2, this, 9, 10)), Txd(this.g, a, c); - case 10: - return !this.e && (this.e = new y5d(A2, this, 10, 9)), Txd(this.e, a, c); - } - return ckd(this, a, b, c); - }; - _.lh = function wmd(a) { - switch (a) { - case 1: - return this.j != 0; - case 2: - return this.k != 0; - case 3: - return this.b != 0; - case 4: - return this.c != 0; - case 5: - return !!this.a && this.a.i != 0; - case 6: - return !!fmd(this); - case 7: - return !!this.i; - case 8: - return !!this.f; - case 9: - return !!this.g && this.g.i != 0; - case 10: - return !!this.e && this.e.i != 0; - case 11: - return this.d != null; - } - return dkd(this, a); - }; - _.sh = function xmd(a, b) { - switch (a) { - case 1: - omd(this, Edb(ED(b))); - return; - case 2: - pmd(this, Edb(ED(b))); - return; - case 3: - hmd(this, Edb(ED(b))); - return; - case 4: - imd(this, Edb(ED(b))); - return; - case 5: - !this.a && (this.a = new xMd(y2, this, 5)); - Uxd(this.a); - !this.a && (this.a = new xMd(y2, this, 5)); - ytd(this.a, BD(b, 14)); - return; - case 6: - mmd(this, BD(b, 79)); - return; - case 7: - lmd(this, BD(b, 82)); - return; - case 8: - kmd(this, BD(b, 82)); - return; - case 9: - !this.g && (this.g = new y5d(A2, this, 9, 10)); - Uxd(this.g); - !this.g && (this.g = new y5d(A2, this, 9, 10)); - ytd(this.g, BD(b, 14)); - return; - case 10: - !this.e && (this.e = new y5d(A2, this, 10, 9)); - Uxd(this.e); - !this.e && (this.e = new y5d(A2, this, 10, 9)); - ytd(this.e, BD(b, 14)); - return; - case 11: - jmd(this, GD(b)); - return; - } - ekd(this, a, b); - }; - _.zh = function ymd() { - return Thd(), Lhd; - }; - _.Bh = function zmd(a) { - switch (a) { - case 1: - omd(this, 0); - return; - case 2: - pmd(this, 0); - return; - case 3: - hmd(this, 0); - return; - case 4: - imd(this, 0); - return; - case 5: - !this.a && (this.a = new xMd(y2, this, 5)); - Uxd(this.a); - return; - case 6: - mmd(this, null); - return; - case 7: - lmd(this, null); - return; - case 8: - kmd(this, null); - return; - case 9: - !this.g && (this.g = new y5d(A2, this, 9, 10)); - Uxd(this.g); - return; - case 10: - !this.e && (this.e = new y5d(A2, this, 10, 9)); - Uxd(this.e); - return; - case 11: - jmd(this, null); - return; - } - fkd(this, a); - }; - _.Ib = function Amd() { - return qmd(this); - }; - _.b = 0; - _.c = 0; - _.d = null; - _.j = 0; - _.k = 0; - var L2 = mdb(rte, "ElkEdgeSectionImpl", 439); - bcb(150, 115, { 105: 1, 92: 1, 90: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }); - _._g = function Emd(a, b, c) { - var d; - if (a == 0) { - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - } - return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c); - }; - _.hh = function Fmd(a, b, c) { - var d, e; - if (b == 0) { - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.jh = function Gmd(a, b, c) { - var d, e; - if (b == 0) { - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.lh = function Hmd(a) { - var b; - if (a == 0) { - return !!this.Ab && this.Ab.i != 0; - } - return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.oh = function Imd(a) { - return Bmd(this, a); - }; - _.sh = function Jmd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - } - did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b); - }; - _.uh = function Kmd(a) { - Cjd(this, 128, a); - }; - _.zh = function Lmd() { - return jGd(), ZFd; - }; - _.Bh = function Mmd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - } - eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.Gh = function Nmd() { - this.Bb |= 1; - }; - _.Hh = function Omd(a) { - return Dmd(this, a); - }; - _.Bb = 0; - var f6 = mdb(qte, "EModelElementImpl", 150); - bcb(704, 150, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, $md); - _.Ih = function _md(a, b) { - return Vmd(this, a, b); - }; - _.Jh = function and(a) { - var b, c, d, e, f; - if (this.a != bKd(a) || (a.Bb & 256) != 0) { - throw vbb(new Wdb(xte + a.zb + ute)); - } - for (d = _Kd(a); VKd(d.a).i != 0; ) { - c = BD(nOd(d, 0, (b = BD(qud(VKd(d.a), 0), 87), f = b.c, JD(f, 88) ? BD(f, 26) : (jGd(), _Fd))), 26); - if (dKd(c)) { - e = bKd(c).Nh().Jh(c); - BD(e, 49).th(a); - return e; - } - d = _Kd(c); - } - return (a.D != null ? a.D : a.B) == "java.util.Map$Entry" ? new lHd(a) : new _Gd(a); - }; - _.Kh = function bnd(a, b) { - return Wmd(this, a, b); - }; - _._g = function cnd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.a; - } - return bid(this, a - aLd((jGd(), WFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? WFd : d), a), b, c); - }; - _.hh = function dnd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 1: - !!this.a && (c = BD(this.a, 49).ih(this, 4, o5, c)); - return Tmd(this, BD(a, 235), c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd((jGd(), WFd)), a, c); - }; - _.jh = function end(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 1: - return Tmd(this, null, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), WFd)), a, c); - }; - _.lh = function fnd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return !!this.a; - } - return cid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a)); - }; - _.sh = function gnd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - Ymd(this, BD(b, 235)); - return; - } - did(this, a - aLd((jGd(), WFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? WFd : c), a), b); - }; - _.zh = function hnd() { - return jGd(), WFd; - }; - _.Bh = function ind(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - Ymd(this, null); - return; - } - eid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a)); - }; - var Pmd, Qmd, Rmd; - var d6 = mdb(qte, "EFactoryImpl", 704); - bcb(zte, 704, { 105: 1, 2014: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, knd); - _.Ih = function lnd(a, b) { - switch (a.yj()) { - case 12: - return BD(b, 146).tg(); - case 13: - return fcb(b); - default: - throw vbb(new Wdb(tte + a.ne() + ute)); - } - }; - _.Jh = function mnd(a) { - var b, c, d, e, f, g10, h, i10; - switch (a.G == -1 && (a.G = (b = bKd(a), b ? HLd(b.Mh(), a) : -1)), a.G) { - case 4: - return f = new Jod(), f; - case 6: - return g10 = new apd(), g10; - case 7: - return h = new ppd(), h; - case 8: - return d = new Tld(), d; - case 9: - return c = new xkd(), c; - case 10: - return e = new rmd(), e; - case 11: - return i10 = new Bpd(), i10; - default: - throw vbb(new Wdb(xte + a.zb + ute)); - } - }; - _.Kh = function nnd(a, b) { - switch (a.yj()) { - case 13: - case 12: - return null; - default: - throw vbb(new Wdb(tte + a.ne() + ute)); - } - }; - var N2 = mdb(rte, "ElkGraphFactoryImpl", zte); - bcb(438, 150, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }); - _.Wg = function rnd() { - var a, b; - b = (a = BD(Ajd(this, 16), 26), pNd(TKd(!a ? this.zh() : a))); - return b == null ? (nRd(), nRd(), mRd) : new GRd(this, b); - }; - _._g = function snd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.ne(); - } - return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c); - }; - _.lh = function tnd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - } - return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.sh = function und(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - this.Lh(GD(b)); - return; - } - did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b); - }; - _.zh = function vnd() { - return jGd(), $Fd; - }; - _.Bh = function wnd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - this.Lh(null); - return; - } - eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.ne = function xnd() { - return this.zb; - }; - _.Lh = function ynd(a) { - pnd(this, a); - }; - _.Ib = function znd() { - return qnd(this); - }; - _.zb = null; - var j6 = mdb(qte, "ENamedElementImpl", 438); - bcb(179, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, eod); - _.Qg = function god(a) { - return Snd(this, a); - }; - _._g = function hod(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return this.yb; - case 3: - return this.xb; - case 4: - return this.sb; - case 5: - return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb; - case 6: - return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), this.vb; - case 7: - if (b) - return this.Db >> 16 == 7 ? BD(this.Cb, 235) : null; - return Ind(this); - } - return bid(this, a - aLd((jGd(), cGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? cGd : d), a), b, c); - }; - _.hh = function iod(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 4: - !!this.sb && (c = BD(this.sb, 49).ih(this, 1, i5, c)); - return Jnd(this, BD(a, 471), c); - case 5: - return !this.rb && (this.rb = new jUd(this, d5, this)), Sxd(this.rb, a, c); - case 6: - return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Sxd(this.vb, a, c); - case 7: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? Snd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 7, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), cGd)), a, c); - }; - _.jh = function jod(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 4: - return Jnd(this, null, c); - case 5: - return !this.rb && (this.rb = new jUd(this, d5, this)), Txd(this.rb, a, c); - case 6: - return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Txd(this.vb, a, c); - case 7: - return _hd(this, null, 7, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), cGd)), a, c); - }; - _.lh = function kod(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return this.yb != null; - case 3: - return this.xb != null; - case 4: - return !!this.sb; - case 5: - return !!this.rb && this.rb.i != 0; - case 6: - return !!this.vb && this.vb.i != 0; - case 7: - return !!Ind(this); - } - return cid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a)); - }; - _.oh = function lod(a) { - var b; - b = Und(this, a); - return b ? b : Bmd(this, a); - }; - _.sh = function mod(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - pnd(this, GD(b)); - return; - case 2: - dod(this, GD(b)); - return; - case 3: - cod(this, GD(b)); - return; - case 4: - bod(this, BD(b, 471)); - return; - case 5: - !this.rb && (this.rb = new jUd(this, d5, this)); - Uxd(this.rb); - !this.rb && (this.rb = new jUd(this, d5, this)); - ytd(this.rb, BD(b, 14)); - return; - case 6: - !this.vb && (this.vb = new gUd(o5, this, 6, 7)); - Uxd(this.vb); - !this.vb && (this.vb = new gUd(o5, this, 6, 7)); - ytd(this.vb, BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), cGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? cGd : c), a), b); - }; - _.vh = function nod(a) { - var b, c; - if (!!a && !!this.rb) { - for (c = new Fyd(this.rb); c.e != c.i.gc(); ) { - b = Dyd(c); - JD(b, 351) && (BD(b, 351).w = null); - } - } - Cjd(this, 64, a); - }; - _.zh = function ood() { - return jGd(), cGd; - }; - _.Bh = function pod(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - pnd(this, null); - return; - case 2: - dod(this, null); - return; - case 3: - cod(this, null); - return; - case 4: - bod(this, null); - return; - case 5: - !this.rb && (this.rb = new jUd(this, d5, this)); - Uxd(this.rb); - return; - case 6: - !this.vb && (this.vb = new gUd(o5, this, 6, 7)); - Uxd(this.vb); - return; - } - eid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a)); - }; - _.Gh = function qod() { - Tnd(this); - }; - _.Mh = function rod() { - return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb; - }; - _.Nh = function sod() { - return this.sb; - }; - _.Oh = function tod() { - return this.ub; - }; - _.Ph = function uod() { - return this.xb; - }; - _.Qh = function vod() { - return this.yb; - }; - _.Rh = function wod(a) { - this.ub = a; - }; - _.Ib = function xod() { - var a; - if ((this.Db & 64) != 0) - return qnd(this); - a = new Jfb(qnd(this)); - a.a += " (nsURI: "; - Efb(a, this.yb); - a.a += ", nsPrefix: "; - Efb(a, this.xb); - a.a += ")"; - return a.a; - }; - _.xb = null; - _.yb = null; - var And; - var t6 = mdb(qte, "EPackageImpl", 179); - bcb(555, 179, { 105: 1, 2016: 1, 555: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, Bod); - _.q = false; - _.r = false; - var yod = false; - var O2 = mdb(rte, "ElkGraphPackageImpl", 555); - bcb(354, 724, { 105: 1, 413: 1, 160: 1, 137: 1, 470: 1, 354: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Jod); - _.Qg = function Kod(a) { - return Eod(this, a); - }; - _._g = function Lod(a, b, c) { - switch (a) { - case 7: - return Fod(this); - case 8: - return this.a; - } - return Xkd(this, a, b, c); - }; - _.hh = function Mod(a, b, c) { - var d; - switch (b) { - case 7: - !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? Eod(this, c) : this.Cb.ih(this, -1 - d, null, c))); - return Dod(this, BD(a, 160), c); - } - return Fkd(this, a, b, c); - }; - _.jh = function Nod(a, b, c) { - if (b == 7) { - return Dod(this, null, c); - } - return Gkd(this, a, b, c); - }; - _.lh = function Ood(a) { - switch (a) { - case 7: - return !!Fod(this); - case 8: - return !dfb("", this.a); - } - return Ykd(this, a); - }; - _.sh = function Pod(a, b) { - switch (a) { - case 7: - God(this, BD(b, 160)); - return; - case 8: - Hod(this, GD(b)); - return; - } - Zkd(this, a, b); - }; - _.zh = function Qod() { - return Thd(), Nhd; - }; - _.Bh = function Rod(a) { - switch (a) { - case 7: - God(this, null); - return; - case 8: - Hod(this, ""); - return; - } - $kd(this, a); - }; - _.Ib = function Sod() { - return Iod(this); - }; - _.a = ""; - var P2 = mdb(rte, "ElkLabelImpl", 354); - bcb(239, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 33: 1, 470: 1, 239: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, apd); - _.Qg = function bpd(a) { - return Uod(this, a); - }; - _._g = function cpd(a, b, c) { - switch (a) { - case 9: - return !this.c && (this.c = new cUd(F2, this, 9, 9)), this.c; - case 10: - return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a; - case 11: - return Xod(this); - case 12: - return !this.b && (this.b = new cUd(B2, this, 12, 3)), this.b; - case 13: - return Bcb(), !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0 ? true : false; - } - return uld(this, a, b, c); - }; - _.hh = function dpd(a, b, c) { - var d; - switch (b) { - case 9: - return !this.c && (this.c = new cUd(F2, this, 9, 9)), Sxd(this.c, a, c); - case 10: - return !this.a && (this.a = new cUd(E2, this, 10, 11)), Sxd(this.a, a, c); - case 11: - !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? Uod(this, c) : this.Cb.ih(this, -1 - d, null, c))); - return Tod(this, BD(a, 33), c); - case 12: - return !this.b && (this.b = new cUd(B2, this, 12, 3)), Sxd(this.b, a, c); - } - return vld(this, a, b, c); - }; - _.jh = function epd(a, b, c) { - switch (b) { - case 9: - return !this.c && (this.c = new cUd(F2, this, 9, 9)), Txd(this.c, a, c); - case 10: - return !this.a && (this.a = new cUd(E2, this, 10, 11)), Txd(this.a, a, c); - case 11: - return Tod(this, null, c); - case 12: - return !this.b && (this.b = new cUd(B2, this, 12, 3)), Txd(this.b, a, c); - } - return wld(this, a, b, c); - }; - _.lh = function fpd(a) { - switch (a) { - case 9: - return !!this.c && this.c.i != 0; - case 10: - return !!this.a && this.a.i != 0; - case 11: - return !!Xod(this); - case 12: - return !!this.b && this.b.i != 0; - case 13: - return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0; - } - return xld(this, a); - }; - _.sh = function gpd(a, b) { - switch (a) { - case 9: - !this.c && (this.c = new cUd(F2, this, 9, 9)); - Uxd(this.c); - !this.c && (this.c = new cUd(F2, this, 9, 9)); - ytd(this.c, BD(b, 14)); - return; - case 10: - !this.a && (this.a = new cUd(E2, this, 10, 11)); - Uxd(this.a); - !this.a && (this.a = new cUd(E2, this, 10, 11)); - ytd(this.a, BD(b, 14)); - return; - case 11: - $od(this, BD(b, 33)); - return; - case 12: - !this.b && (this.b = new cUd(B2, this, 12, 3)); - Uxd(this.b); - !this.b && (this.b = new cUd(B2, this, 12, 3)); - ytd(this.b, BD(b, 14)); - return; - } - yld(this, a, b); - }; - _.zh = function hpd() { - return Thd(), Ohd; - }; - _.Bh = function ipd(a) { - switch (a) { - case 9: - !this.c && (this.c = new cUd(F2, this, 9, 9)); - Uxd(this.c); - return; - case 10: - !this.a && (this.a = new cUd(E2, this, 10, 11)); - Uxd(this.a); - return; - case 11: - $od(this, null); - return; - case 12: - !this.b && (this.b = new cUd(B2, this, 12, 3)); - Uxd(this.b); - return; - } - zld(this, a); - }; - _.Ib = function jpd() { - return _od(this); - }; - var Q2 = mdb(rte, "ElkNodeImpl", 239); - bcb(186, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 118: 1, 470: 1, 186: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, ppd); - _.Qg = function qpd(a) { - return lpd(this, a); - }; - _._g = function rpd(a, b, c) { - if (a == 9) { - return mpd(this); - } - return uld(this, a, b, c); - }; - _.hh = function spd(a, b, c) { - var d; - switch (b) { - case 9: - !!this.Cb && (c = (d = this.Db >> 16, d >= 0 ? lpd(this, c) : this.Cb.ih(this, -1 - d, null, c))); - return kpd(this, BD(a, 33), c); - } - return vld(this, a, b, c); - }; - _.jh = function tpd(a, b, c) { - if (b == 9) { - return kpd(this, null, c); - } - return wld(this, a, b, c); - }; - _.lh = function upd(a) { - if (a == 9) { - return !!mpd(this); - } - return xld(this, a); - }; - _.sh = function vpd(a, b) { - switch (a) { - case 9: - npd(this, BD(b, 33)); - return; - } - yld(this, a, b); - }; - _.zh = function wpd() { - return Thd(), Phd; - }; - _.Bh = function xpd(a) { - switch (a) { - case 9: - npd(this, null); - return; - } - zld(this, a); - }; - _.Ib = function ypd() { - return opd(this); - }; - var R2 = mdb(rte, "ElkPortImpl", 186); - var J4 = odb(Tte, "BasicEMap/Entry"); - bcb(1092, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Bpd); - _.Fb = function Hpd(a) { - return this === a; - }; - _.cd = function Jpd() { - return this.b; - }; - _.Hb = function Lpd() { - return FCb(this); - }; - _.Uh = function Npd(a) { - zpd(this, BD(a, 146)); - }; - _._g = function Cpd(a, b, c) { - switch (a) { - case 0: - return this.b; - case 1: - return this.c; - } - return fid(this, a, b, c); - }; - _.lh = function Dpd(a) { - switch (a) { - case 0: - return !!this.b; - case 1: - return this.c != null; - } - return mid(this, a); - }; - _.sh = function Epd(a, b) { - switch (a) { - case 0: - zpd(this, BD(b, 146)); - return; - case 1: - Apd(this, b); - return; - } - yid(this, a, b); - }; - _.zh = function Fpd() { - return Thd(), Qhd; - }; - _.Bh = function Gpd(a) { - switch (a) { - case 0: - zpd(this, null); - return; - case 1: - Apd(this, null); - return; - } - Cid(this, a); - }; - _.Sh = function Ipd() { - var a; - if (this.a == -1) { - a = this.b; - this.a = !a ? 0 : tb(a); - } - return this.a; - }; - _.dd = function Kpd() { - return this.c; - }; - _.Th = function Mpd(a) { - this.a = a; - }; - _.ed = function Opd(a) { - var b; - b = this.c; - Apd(this, a); - return b; - }; - _.Ib = function Ppd() { - var a; - if ((this.Db & 64) != 0) - return Eid(this); - a = new Ufb(); - Qfb(Qfb(Qfb(a, this.b ? this.b.tg() : Xhe), gne), xfb(this.c)); - return a.a; - }; - _.a = -1; - _.c = null; - var S2 = mdb(rte, "ElkPropertyToValueMapEntryImpl", 1092); - bcb(984, 1, {}, bqd); - var U2 = mdb(Wte, "JsonAdapter", 984); - bcb(210, 60, Tie, cqd); - var V2 = mdb(Wte, "JsonImportException", 210); - bcb(857, 1, {}, ird); - var J3 = mdb(Wte, "JsonImporter", 857); - bcb(891, 1, {}, jrd); - var W2 = mdb(Wte, "JsonImporter/lambda$0$Type", 891); - bcb(892, 1, {}, krd); - var X2 = mdb(Wte, "JsonImporter/lambda$1$Type", 892); - bcb(900, 1, {}, lrd); - var Y2 = mdb(Wte, "JsonImporter/lambda$10$Type", 900); - bcb(902, 1, {}, mrd); - var Z2 = mdb(Wte, "JsonImporter/lambda$11$Type", 902); - bcb(903, 1, {}, nrd); - var $2 = mdb(Wte, "JsonImporter/lambda$12$Type", 903); - bcb(909, 1, {}, ord); - var _2 = mdb(Wte, "JsonImporter/lambda$13$Type", 909); - bcb(908, 1, {}, prd); - var a3 = mdb(Wte, "JsonImporter/lambda$14$Type", 908); - bcb(904, 1, {}, qrd); - var b3 = mdb(Wte, "JsonImporter/lambda$15$Type", 904); - bcb(905, 1, {}, rrd); - var c3 = mdb(Wte, "JsonImporter/lambda$16$Type", 905); - bcb(906, 1, {}, srd); - var d3 = mdb(Wte, "JsonImporter/lambda$17$Type", 906); - bcb(907, 1, {}, trd); - var e3 = mdb(Wte, "JsonImporter/lambda$18$Type", 907); - bcb(912, 1, {}, urd); - var f3 = mdb(Wte, "JsonImporter/lambda$19$Type", 912); - bcb(893, 1, {}, vrd); - var g3 = mdb(Wte, "JsonImporter/lambda$2$Type", 893); - bcb(910, 1, {}, wrd); - var h3 = mdb(Wte, "JsonImporter/lambda$20$Type", 910); - bcb(911, 1, {}, xrd); - var i3 = mdb(Wte, "JsonImporter/lambda$21$Type", 911); - bcb(915, 1, {}, yrd); - var j3 = mdb(Wte, "JsonImporter/lambda$22$Type", 915); - bcb(913, 1, {}, zrd); - var k3 = mdb(Wte, "JsonImporter/lambda$23$Type", 913); - bcb(914, 1, {}, Ard); - var l3 = mdb(Wte, "JsonImporter/lambda$24$Type", 914); - bcb(917, 1, {}, Brd); - var m3 = mdb(Wte, "JsonImporter/lambda$25$Type", 917); - bcb(916, 1, {}, Crd); - var n3 = mdb(Wte, "JsonImporter/lambda$26$Type", 916); - bcb(918, 1, qie, Drd); - _.td = function Erd(a) { - Bqd(this.b, this.a, GD(a)); - }; - var o3 = mdb(Wte, "JsonImporter/lambda$27$Type", 918); - bcb(919, 1, qie, Frd); - _.td = function Grd(a) { - Cqd(this.b, this.a, GD(a)); - }; - var p3 = mdb(Wte, "JsonImporter/lambda$28$Type", 919); - bcb(920, 1, {}, Hrd); - var q3 = mdb(Wte, "JsonImporter/lambda$29$Type", 920); - bcb(896, 1, {}, Ird); - var r3 = mdb(Wte, "JsonImporter/lambda$3$Type", 896); - bcb(921, 1, {}, Jrd); - var s3 = mdb(Wte, "JsonImporter/lambda$30$Type", 921); - bcb(922, 1, {}, Krd); - var t3 = mdb(Wte, "JsonImporter/lambda$31$Type", 922); - bcb(923, 1, {}, Lrd); - var u3 = mdb(Wte, "JsonImporter/lambda$32$Type", 923); - bcb(924, 1, {}, Mrd); - var v3 = mdb(Wte, "JsonImporter/lambda$33$Type", 924); - bcb(925, 1, {}, Nrd); - var w3 = mdb(Wte, "JsonImporter/lambda$34$Type", 925); - bcb(859, 1, {}, Prd); - var x3 = mdb(Wte, "JsonImporter/lambda$35$Type", 859); - bcb(929, 1, {}, Rrd); - var y3 = mdb(Wte, "JsonImporter/lambda$36$Type", 929); - bcb(926, 1, qie, Srd); - _.td = function Trd(a) { - Lqd(this.a, BD(a, 469)); - }; - var z3 = mdb(Wte, "JsonImporter/lambda$37$Type", 926); - bcb(927, 1, qie, Urd); - _.td = function Vrd(a) { - Mqd(this.a, this.b, BD(a, 202)); - }; - var A3 = mdb(Wte, "JsonImporter/lambda$38$Type", 927); - bcb(928, 1, qie, Wrd); - _.td = function Xrd(a) { - Nqd(this.a, this.b, BD(a, 202)); - }; - var B3 = mdb(Wte, "JsonImporter/lambda$39$Type", 928); - bcb(894, 1, {}, Yrd); - var C3 = mdb(Wte, "JsonImporter/lambda$4$Type", 894); - bcb(930, 1, qie, Zrd); - _.td = function $rd(a) { - Oqd(this.a, BD(a, 8)); - }; - var D3 = mdb(Wte, "JsonImporter/lambda$40$Type", 930); - bcb(895, 1, {}, _rd); - var E3 = mdb(Wte, "JsonImporter/lambda$5$Type", 895); - bcb(899, 1, {}, asd); - var F3 = mdb(Wte, "JsonImporter/lambda$6$Type", 899); - bcb(897, 1, {}, bsd); - var G3 = mdb(Wte, "JsonImporter/lambda$7$Type", 897); - bcb(898, 1, {}, csd); - var H3 = mdb(Wte, "JsonImporter/lambda$8$Type", 898); - bcb(901, 1, {}, dsd); - var I3 = mdb(Wte, "JsonImporter/lambda$9$Type", 901); - bcb(948, 1, qie, msd); - _.td = function nsd(a) { - Qpd(this.a, new yC(GD(a))); - }; - var K3 = mdb(Wte, "JsonMetaDataConverter/lambda$0$Type", 948); - bcb(949, 1, qie, osd); - _.td = function psd(a) { - isd(this.a, BD(a, 237)); - }; - var L3 = mdb(Wte, "JsonMetaDataConverter/lambda$1$Type", 949); - bcb(950, 1, qie, qsd); - _.td = function rsd(a) { - jsd(this.a, BD(a, 149)); - }; - var M3 = mdb(Wte, "JsonMetaDataConverter/lambda$2$Type", 950); - bcb(951, 1, qie, ssd); - _.td = function tsd(a) { - ksd(this.a, BD(a, 175)); - }; - var N3 = mdb(Wte, "JsonMetaDataConverter/lambda$3$Type", 951); - bcb(237, 22, { 3: 1, 35: 1, 22: 1, 237: 1 }, Dsd); - var usd, vsd, wsd, xsd, ysd, zsd, Asd, Bsd; - var O3 = ndb(Hle, "GraphFeature", 237, CI, Fsd, Esd); - var Gsd; - bcb(13, 1, { 35: 1, 146: 1 }, Lsd, Msd, Nsd, Osd); - _.wd = function Psd(a) { - return Isd(this, BD(a, 146)); - }; - _.Fb = function Qsd(a) { - return Jsd(this, a); - }; - _.wg = function Rsd() { - return Ksd(this); - }; - _.tg = function Ssd() { - return this.b; - }; - _.Hb = function Tsd() { - return LCb(this.b); - }; - _.Ib = function Usd() { - return this.b; - }; - var T3 = mdb(Hle, "Property", 13); - bcb(818, 1, Dke, Wsd); - _.ue = function Xsd(a, b) { - return Vsd(this, BD(a, 94), BD(b, 94)); - }; - _.Fb = function Ysd(a) { - return this === a; - }; - _.ve = function Zsd() { - return new tpb(this); - }; - var S3 = mdb(Hle, "PropertyHolderComparator", 818); - bcb(695, 1, aie, qtd); - _.Nb = function rtd(a) { - Rrb(this, a); - }; - _.Pb = function ttd() { - return ptd(this); - }; - _.Qb = function utd() { - Srb(); - }; - _.Ob = function std() { - return !!this.a; - }; - var U3 = mdb(jue, "ElkGraphUtil/AncestorIterator", 695); - var T4 = odb(Tte, "EList"); - bcb(67, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }); - _.Vc = function Jtd(a, b) { - vtd(this, a, b); - }; - _.Fc = function Ktd(a) { - return wtd(this, a); - }; - _.Wc = function Ltd(a, b) { - return xtd(this, a, b); - }; - _.Gc = function Mtd(a) { - return ytd(this, a); - }; - _.Zh = function Ntd() { - return new $yd(this); - }; - _.$h = function Otd() { - return new bzd(this); - }; - _._h = function Ptd(a) { - return ztd(this, a); - }; - _.ai = function Qtd() { - return true; - }; - _.bi = function Rtd(a, b) { - }; - _.ci = function Std() { - }; - _.di = function Ttd(a, b) { - Atd(this, a, b); - }; - _.ei = function Utd(a, b, c) { - }; - _.fi = function Vtd(a, b) { - }; - _.gi = function Wtd(a, b, c) { - }; - _.Fb = function Xtd(a) { - return Btd(this, a); - }; - _.Hb = function Ytd() { - return Etd(this); - }; - _.hi = function Ztd() { - return false; - }; - _.Kc = function $td() { - return new Fyd(this); - }; - _.Yc = function _td() { - return new Oyd(this); - }; - _.Zc = function aud(a) { - var b; - b = this.gc(); - if (a < 0 || a > b) - throw vbb(new Cyd(a, b)); - return new Pyd(this, a); - }; - _.ji = function bud(a, b) { - this.ii(a, this.Xc(b)); - }; - _.Mc = function cud(a) { - return Ftd(this, a); - }; - _.li = function dud(a, b) { - return b; - }; - _._c = function eud(a, b) { - return Gtd(this, a, b); - }; - _.Ib = function fud() { - return Htd(this); - }; - _.ni = function gud() { - return true; - }; - _.oi = function hud(a, b) { - return Itd(this, b); - }; - var p4 = mdb(Tte, "AbstractEList", 67); - bcb(63, 67, oue, yud, zud, Aud); - _.Vh = function Bud(a, b) { - return iud(this, a, b); - }; - _.Wh = function Cud(a) { - return jud(this, a); - }; - _.Xh = function Dud(a, b) { - kud(this, a, b); - }; - _.Yh = function Eud(a) { - lud(this, a); - }; - _.pi = function Fud(a) { - return nud(this, a); - }; - _.$b = function Gud() { - oud(this); - }; - _.Hc = function Hud(a) { - return pud(this, a); - }; - _.Xb = function Iud(a) { - return qud(this, a); - }; - _.qi = function Jud(a) { - var b, c, d; - ++this.j; - c = this.g == null ? 0 : this.g.length; - if (a > c) { - d = this.g; - b = c + (c / 2 | 0) + 4; - b < a && (b = a); - this.g = this.ri(b); - d != null && $fb(d, 0, this.g, 0, this.i); - } - }; - _.Xc = function Kud(a) { - return rud(this, a); - }; - _.dc = function Lud() { - return this.i == 0; - }; - _.ii = function Mud(a, b) { - return sud(this, a, b); - }; - _.ri = function Nud(a) { - return KC(SI, Uhe, 1, a, 5, 1); - }; - _.ki = function Oud(a) { - return this.g[a]; - }; - _.$c = function Pud(a) { - return tud(this, a); - }; - _.mi = function Qud(a, b) { - return uud(this, a, b); - }; - _.gc = function Rud() { - return this.i; - }; - _.Pc = function Sud() { - return wud(this); - }; - _.Qc = function Tud(a) { - return xud(this, a); - }; - _.i = 0; - var y4 = mdb(Tte, "BasicEList", 63); - var X4 = odb(Tte, "TreeIterator"); - bcb(694, 63, pue); - _.Nb = function Xud(a) { - Rrb(this, a); - }; - _.Ob = function Yud() { - return this.g == null && !this.c ? Uud(this) : this.g == null || this.i != 0 && BD(this.g[this.i - 1], 47).Ob(); - }; - _.Pb = function Zud() { - return Vud(this); - }; - _.Qb = function $ud() { - if (!this.e) { - throw vbb(new Zdb("There is no valid object to remove.")); - } - this.e.Qb(); - }; - _.c = false; - var q4 = mdb(Tte, "AbstractTreeIterator", 694); - bcb(685, 694, pue, _ud); - _.si = function avd(a) { - var b; - b = BD(a, 56).Wg().Kc(); - JD(b, 279) && BD(b, 279).Nk(new bvd()); - return b; - }; - var W3 = mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator", 685); - bcb(952, 1, {}, bvd); - var V3 = mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 952); - var cvd, dvd; - var Y3 = mdb(jue, "ElkReflect", null); - bcb(889, 1, hse, jvd); - _.vg = function kvd(a) { - return evd(), sqb(BD(a, 174)); - }; - var X3 = mdb(jue, "ElkReflect/lambda$0$Type", 889); - var lvd; - var W4 = odb(Tte, "ResourceLocator"); - bcb(1051, 1, {}); - var N4 = mdb(Tte, "DelegatingResourceLocator", 1051); - bcb(1052, 1051, {}); - var Z3 = mdb("org.eclipse.emf.common", "EMFPlugin", 1052); - var $3 = odb(cve, "Adapter"); - var _3 = odb(cve, "Notification"); - bcb(1153, 1, dve); - _.ti = function vvd() { - return this.d; - }; - _.ui = function wvd(a) { - }; - _.vi = function xvd(a) { - this.d = a; - }; - _.wi = function yvd(a) { - this.d == a && (this.d = null); - }; - _.d = null; - var a4 = mdb(hte, "AdapterImpl", 1153); - bcb(1995, 67, eve); - _.Vh = function Fvd(a, b) { - return zvd(this, a, b); - }; - _.Wh = function Gvd(a) { - var b, c, d; - ++this.j; - if (a.dc()) { - return false; - } else { - b = this.Vi(); - for (d = a.Kc(); d.Ob(); ) { - c = d.Pb(); - this.Ii(this.oi(b, c)); - ++b; - } - return true; - } - }; - _.Xh = function Hvd(a, b) { - Avd(this, a, b); - }; - _.Yh = function Ivd(a) { - Bvd(this, a); - }; - _.Gi = function Jvd() { - return this.Ji(); - }; - _.$b = function Kvd() { - Cvd(this, this.Vi(), this.Wi()); - }; - _.Hc = function Lvd(a) { - return this.Li(a); - }; - _.Ic = function Mvd(a) { - return this.Mi(a); - }; - _.Hi = function Nvd(a, b) { - this.Si().jm(); - }; - _.Ii = function Ovd(a) { - this.Si().jm(); - }; - _.Ji = function Pvd() { - return this.Si(); - }; - _.Ki = function Qvd() { - this.Si().jm(); - }; - _.Li = function Rvd(a) { - return this.Si().jm(); - }; - _.Mi = function Svd(a) { - return this.Si().jm(); - }; - _.Ni = function Tvd(a) { - return this.Si().jm(); - }; - _.Oi = function Uvd(a) { - return this.Si().jm(); - }; - _.Pi = function Vvd() { - return this.Si().jm(); - }; - _.Qi = function Wvd(a) { - return this.Si().jm(); - }; - _.Ri = function Xvd() { - return this.Si().jm(); - }; - _.Ti = function Yvd(a) { - return this.Si().jm(); - }; - _.Ui = function Zvd(a, b) { - return this.Si().jm(); - }; - _.Vi = function $vd() { - return this.Si().jm(); - }; - _.Wi = function _vd() { - return this.Si().jm(); - }; - _.Xi = function awd(a) { - return this.Si().jm(); - }; - _.Yi = function bwd() { - return this.Si().jm(); - }; - _.Fb = function cwd(a) { - return this.Ni(a); - }; - _.Xb = function dwd(a) { - return this.li(a, this.Oi(a)); - }; - _.Hb = function ewd() { - return this.Pi(); - }; - _.Xc = function fwd(a) { - return this.Qi(a); - }; - _.dc = function gwd() { - return this.Ri(); - }; - _.ii = function hwd(a, b) { - return Dvd(this, a, b); - }; - _.ki = function iwd(a) { - return this.Oi(a); - }; - _.$c = function jwd(a) { - return Evd(this, a); - }; - _.Mc = function kwd(a) { - var b; - b = this.Xc(a); - if (b >= 0) { - this.$c(b); - return true; - } else { - return false; - } - }; - _.mi = function lwd(a, b) { - return this.Ui(a, this.oi(a, b)); - }; - _.gc = function mwd() { - return this.Vi(); - }; - _.Pc = function nwd() { - return this.Wi(); - }; - _.Qc = function owd(a) { - return this.Xi(a); - }; - _.Ib = function pwd() { - return this.Yi(); - }; - var M4 = mdb(Tte, "DelegatingEList", 1995); - bcb(1996, 1995, eve); - _.Vh = function xwd(a, b) { - return qwd(this, a, b); - }; - _.Wh = function ywd(a) { - return this.Vh(this.Vi(), a); - }; - _.Xh = function zwd(a, b) { - rwd(this, a, b); - }; - _.Yh = function Awd(a) { - swd(this, a); - }; - _.ai = function Bwd() { - return !this.bj(); - }; - _.$b = function Cwd() { - vwd(this); - }; - _.Zi = function Dwd(a, b, c, d, e) { - return new Cxd(this, a, b, c, d, e); - }; - _.$i = function Ewd(a) { - Uhd(this.Ai(), a); - }; - _._i = function Fwd() { - return null; - }; - _.aj = function Gwd() { - return -1; - }; - _.Ai = function Hwd() { - return null; - }; - _.bj = function Iwd() { - return false; - }; - _.cj = function Jwd(a, b) { - return b; - }; - _.dj = function Kwd(a, b) { - return b; - }; - _.ej = function Lwd() { - return false; - }; - _.fj = function Mwd() { - return !this.Ri(); - }; - _.ii = function Nwd(a, b) { - var c, d; - if (this.ej()) { - d = this.fj(); - c = Dvd(this, a, b); - this.$i(this.Zi(7, meb(b), c, a, d)); - return c; - } else { - return Dvd(this, a, b); - } - }; - _.$c = function Owd(a) { - var b, c, d, e; - if (this.ej()) { - c = null; - d = this.fj(); - b = this.Zi(4, e = Evd(this, a), null, a, d); - if (this.bj() && !!e) { - c = this.dj(e, c); - if (!c) { - this.$i(b); - } else { - c.Ei(b); - c.Fi(); - } - } else { - if (!c) { - this.$i(b); - } else { - c.Ei(b); - c.Fi(); - } - } - return e; - } else { - e = Evd(this, a); - if (this.bj() && !!e) { - c = this.dj(e, null); - !!c && c.Fi(); - } - return e; - } - }; - _.mi = function Pwd(a, b) { - return wwd(this, a, b); - }; - var d4 = mdb(hte, "DelegatingNotifyingListImpl", 1996); - bcb(143, 1, fve); - _.Ei = function pxd(a) { - return Qwd(this, a); - }; - _.Fi = function qxd() { - Rwd(this); - }; - _.xi = function rxd() { - return this.d; - }; - _._i = function sxd() { - return null; - }; - _.gj = function txd() { - return null; - }; - _.yi = function uxd(a) { - return -1; - }; - _.zi = function vxd() { - return $wd(this); - }; - _.Ai = function wxd() { - return null; - }; - _.Bi = function xxd() { - return hxd(this); - }; - _.Ci = function yxd() { - return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o; - }; - _.hj = function zxd() { - return false; - }; - _.Di = function Axd(a) { - var b, c, d, e, f, g10, h, i10, j, k, l; - switch (this.d) { - case 1: - case 2: { - e = a.xi(); - switch (e) { - case 1: - case 2: { - f = a.Ai(); - if (PD(f) === PD(this.Ai()) && this.yi(null) == a.yi(null)) { - this.g = a.zi(); - a.xi() == 1 && (this.d = 1); - return true; - } - } - } - } - case 4: { - e = a.xi(); - switch (e) { - case 4: { - f = a.Ai(); - if (PD(f) === PD(this.Ai()) && this.yi(null) == a.yi(null)) { - j = jxd(this); - i10 = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o; - g10 = a.Ci(); - this.d = 6; - l = new zud(2); - if (i10 <= g10) { - wtd(l, this.n); - wtd(l, a.Bi()); - this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = i10, g10 + 1]); - } else { - wtd(l, a.Bi()); - wtd(l, this.n); - this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = g10, i10]); - } - this.n = l; - j || (this.o = -2 - this.o - 1); - return true; - } - break; - } - } - break; - } - case 6: { - e = a.xi(); - switch (e) { - case 4: { - f = a.Ai(); - if (PD(f) === PD(this.Ai()) && this.yi(null) == a.yi(null)) { - j = jxd(this); - g10 = a.Ci(); - k = BD(this.g, 48); - d = KC(WD, oje, 25, k.length + 1, 15, 1); - b = 0; - while (b < k.length) { - h = k[b]; - if (h <= g10) { - d[b++] = h; - ++g10; - } else { - break; - } - } - c = BD(this.n, 15); - c.Vc(b, a.Bi()); - d[b] = g10; - while (++b < d.length) { - d[b] = k[b - 1]; - } - this.g = d; - j || (this.o = -2 - d[0]); - return true; - } - break; - } - } - break; - } - } - return false; - }; - _.Ib = function Bxd() { - var a, b, c, d; - d = new Jfb(hdb(this.gm) + "@" + (b = tb(this) >>> 0, b.toString(16))); - d.a += " (eventType: "; - switch (this.d) { - case 1: { - d.a += "SET"; - break; - } - case 2: { - d.a += "UNSET"; - break; - } - case 3: { - d.a += "ADD"; - break; - } - case 5: { - d.a += "ADD_MANY"; - break; - } - case 4: { - d.a += "REMOVE"; - break; - } - case 6: { - d.a += "REMOVE_MANY"; - break; - } - case 7: { - d.a += "MOVE"; - break; - } - case 8: { - d.a += "REMOVING_ADAPTER"; - break; - } - case 9: { - d.a += "RESOLVE"; - break; - } - default: { - Cfb(d, this.d); - break; - } - } - ixd(this) && (d.a += ", touch: true", d); - d.a += ", position: "; - Cfb(d, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o); - d.a += ", notifier: "; - Dfb(d, this.Ai()); - d.a += ", feature: "; - Dfb(d, this._i()); - d.a += ", oldValue: "; - Dfb(d, hxd(this)); - d.a += ", newValue: "; - if (this.d == 6 && JD(this.g, 48)) { - c = BD(this.g, 48); - d.a += "["; - for (a = 0; a < c.length; ) { - d.a += c[a]; - ++a < c.length && (d.a += She, d); - } - d.a += "]"; - } else { - Dfb(d, $wd(this)); - } - d.a += ", isTouch: "; - Ffb(d, ixd(this)); - d.a += ", wasSet: "; - Ffb(d, jxd(this)); - d.a += ")"; - return d.a; - }; - _.d = 0; - _.e = 0; - _.f = 0; - _.j = 0; - _.k = 0; - _.o = 0; - _.p = 0; - var f4 = mdb(hte, "NotificationImpl", 143); - bcb(1167, 143, fve, Cxd); - _._i = function Dxd() { - return this.a._i(); - }; - _.yi = function Exd(a) { - return this.a.aj(); - }; - _.Ai = function Fxd() { - return this.a.Ai(); - }; - var c4 = mdb(hte, "DelegatingNotifyingListImpl/1", 1167); - bcb(242, 63, oue, Hxd, Ixd); - _.Fc = function Jxd(a) { - return Gxd(this, BD(a, 366)); - }; - _.Ei = function Kxd(a) { - return Gxd(this, a); - }; - _.Fi = function Lxd() { - var a, b, c; - for (a = 0; a < this.i; ++a) { - b = BD(this.g[a], 366); - c = b.Ai(); - c != null && b.xi() != -1 && BD(c, 92).Ng(b); - } - }; - _.ri = function Mxd(a) { - return KC(_3, Uhe, 366, a, 0, 1); - }; - var e4 = mdb(hte, "NotificationChainImpl", 242); - bcb(1378, 90, gte); - _.Kg = function Nxd() { - return this.e; - }; - _.Mg = function Oxd() { - return (this.f & 1) != 0; - }; - _.f = 1; - var g4 = mdb(hte, "NotifierImpl", 1378); - bcb(1993, 63, oue); - _.Vh = function $xd(a, b) { - return Pxd(this, a, b); - }; - _.Wh = function _xd(a) { - return this.Vh(this.i, a); - }; - _.Xh = function ayd(a, b) { - Qxd(this, a, b); - }; - _.Yh = function byd(a) { - Rxd(this, a); - }; - _.ai = function cyd() { - return !this.bj(); - }; - _.$b = function dyd() { - Uxd(this); - }; - _.Zi = function eyd(a, b, c, d, e) { - return new vyd(this, a, b, c, d, e); - }; - _.$i = function fyd(a) { - Uhd(this.Ai(), a); - }; - _._i = function gyd() { - return null; - }; - _.aj = function hyd() { - return -1; - }; - _.Ai = function iyd() { - return null; - }; - _.bj = function jyd() { - return false; - }; - _.ij = function kyd() { - return false; - }; - _.cj = function lyd(a, b) { - return b; - }; - _.dj = function myd(a, b) { - return b; - }; - _.ej = function nyd() { - return false; - }; - _.fj = function oyd() { - return this.i != 0; - }; - _.ii = function pyd(a, b) { - return Wxd(this, a, b); - }; - _.$c = function qyd(a) { - return Xxd(this, a); - }; - _.mi = function ryd(a, b) { - return Zxd(this, a, b); - }; - _.jj = function syd(a, b) { - return b; - }; - _.kj = function tyd(a, b) { - return b; - }; - _.lj = function uyd(a, b, c) { - return c; - }; - var i4 = mdb(hte, "NotifyingListImpl", 1993); - bcb(1166, 143, fve, vyd); - _._i = function wyd() { - return this.a._i(); - }; - _.yi = function xyd(a) { - return this.a.aj(); - }; - _.Ai = function yyd() { - return this.a.Ai(); - }; - var h4 = mdb(hte, "NotifyingListImpl/1", 1166); - bcb(953, 63, oue, zyd); - _.Hc = function Ayd(a) { - if (this.i > 10) { - if (!this.b || this.c.j != this.a) { - this.b = new Vqb(this); - this.a = this.j; - } - return Rqb(this.b, a); - } else { - return pud(this, a); - } - }; - _.ni = function Byd() { - return true; - }; - _.a = 0; - var j4 = mdb(Tte, "AbstractEList/1", 953); - bcb(295, 73, Mje, Cyd); - var k4 = mdb(Tte, "AbstractEList/BasicIndexOutOfBoundsException", 295); - bcb(40, 1, aie, Fyd); - _.Nb = function Iyd(a) { - Rrb(this, a); - }; - _.mj = function Gyd() { - if (this.i.j != this.f) { - throw vbb(new Apb()); - } - }; - _.nj = function Hyd() { - return Dyd(this); - }; - _.Ob = function Jyd() { - return this.e != this.i.gc(); - }; - _.Pb = function Kyd() { - return this.nj(); - }; - _.Qb = function Lyd() { - Eyd(this); - }; - _.e = 0; - _.f = 0; - _.g = -1; - var l4 = mdb(Tte, "AbstractEList/EIterator", 40); - bcb(278, 40, jie, Oyd, Pyd); - _.Qb = function Xyd() { - Eyd(this); - }; - _.Rb = function Qyd(a) { - Myd(this, a); - }; - _.oj = function Ryd() { - var b; - try { - b = this.d.Xb(--this.e); - this.mj(); - this.g = this.e; - return b; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - this.mj(); - throw vbb(new utb()); - } else - throw vbb(a); - } - }; - _.pj = function Syd(a) { - Nyd(this, a); - }; - _.Sb = function Tyd() { - return this.e != 0; - }; - _.Tb = function Uyd() { - return this.e; - }; - _.Ub = function Vyd() { - return this.oj(); - }; - _.Vb = function Wyd() { - return this.e - 1; - }; - _.Wb = function Yyd(a) { - this.pj(a); - }; - var m4 = mdb(Tte, "AbstractEList/EListIterator", 278); - bcb(341, 40, aie, $yd); - _.nj = function _yd() { - return Zyd(this); - }; - _.Qb = function azd() { - throw vbb(new bgb()); - }; - var n4 = mdb(Tte, "AbstractEList/NonResolvingEIterator", 341); - bcb(385, 278, jie, bzd, czd); - _.Rb = function dzd(a) { - throw vbb(new bgb()); - }; - _.nj = function ezd() { - var b; - try { - b = this.c.ki(this.e); - this.mj(); - this.g = this.e++; - return b; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - this.mj(); - throw vbb(new utb()); - } else - throw vbb(a); - } - }; - _.oj = function fzd() { - var b; - try { - b = this.c.ki(--this.e); - this.mj(); - this.g = this.e; - return b; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - this.mj(); - throw vbb(new utb()); - } else - throw vbb(a); - } - }; - _.Qb = function gzd() { - throw vbb(new bgb()); - }; - _.Wb = function hzd(a) { - throw vbb(new bgb()); - }; - var o4 = mdb(Tte, "AbstractEList/NonResolvingEListIterator", 385); - bcb(1982, 67, ive); - _.Vh = function pzd(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m; - e = b.gc(); - if (e != 0) { - j = BD(Ajd(this.a, 4), 126); - k = j == null ? 0 : j.length; - m = k + e; - d = nzd(this, m); - l = k - a; - l > 0 && $fb(j, a, d, a + e, l); - i10 = b.Kc(); - for (g10 = 0; g10 < e; ++g10) { - h = i10.Pb(); - c = a + g10; - lzd(d, c, Itd(this, h)); - } - b0d(this, d); - for (f = 0; f < e; ++f) { - h = d[a]; - this.bi(a, h); - ++a; - } - return true; - } else { - ++this.j; - return false; - } - }; - _.Wh = function qzd(a) { - var b, c, d, e, f, g10, h, i10, j; - d = a.gc(); - if (d != 0) { - i10 = (c = BD(Ajd(this.a, 4), 126), c == null ? 0 : c.length); - j = i10 + d; - b = nzd(this, j); - h = a.Kc(); - for (f = i10; f < j; ++f) { - g10 = h.Pb(); - lzd(b, f, Itd(this, g10)); - } - b0d(this, b); - for (e = i10; e < j; ++e) { - g10 = b[e]; - this.bi(e, g10); - } - return true; - } else { - ++this.j; - return false; - } - }; - _.Xh = function rzd(a, b) { - var c, d, e, f; - d = BD(Ajd(this.a, 4), 126); - e = d == null ? 0 : d.length; - c = nzd(this, e + 1); - f = Itd(this, b); - a != e && $fb(d, a, c, a + 1, e - a); - NC(c, a, f); - b0d(this, c); - this.bi(a, b); - }; - _.Yh = function szd(a) { - var b, c, d; - d = (c = BD(Ajd(this.a, 4), 126), c == null ? 0 : c.length); - b = nzd(this, d + 1); - lzd(b, d, Itd(this, a)); - b0d(this, b); - this.bi(d, a); - }; - _.Zh = function tzd() { - return new Uzd(this); - }; - _.$h = function uzd() { - return new Xzd(this); - }; - _._h = function vzd(a) { - var b, c; - c = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length); - if (a < 0 || a > c) - throw vbb(new Cyd(a, c)); - return new Yzd(this, a); - }; - _.$b = function wzd() { - var a, b; - ++this.j; - a = BD(Ajd(this.a, 4), 126); - b = a == null ? 0 : a.length; - b0d(this, null); - Atd(this, b, a); - }; - _.Hc = function xzd(a) { - var b, c, d, e, f; - b = BD(Ajd(this.a, 4), 126); - if (b != null) { - if (a != null) { - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - if (pb(a, c)) { - return true; - } - } - } else { - for (d = b, e = 0, f = d.length; e < f; ++e) { - c = d[e]; - if (PD(c) === PD(a)) { - return true; - } - } - } - } - return false; - }; - _.Xb = function yzd(a) { - var b, c; - b = BD(Ajd(this.a, 4), 126); - c = b == null ? 0 : b.length; - if (a >= c) - throw vbb(new Cyd(a, c)); - return b[a]; - }; - _.Xc = function zzd(a) { - var b, c, d; - b = BD(Ajd(this.a, 4), 126); - if (b != null) { - if (a != null) { - for (c = 0, d = b.length; c < d; ++c) { - if (pb(a, b[c])) { - return c; - } - } - } else { - for (c = 0, d = b.length; c < d; ++c) { - if (PD(b[c]) === PD(a)) { - return c; - } - } - } - } - return -1; - }; - _.dc = function Azd() { - return BD(Ajd(this.a, 4), 126) == null; - }; - _.Kc = function Bzd() { - return new Lzd(this); - }; - _.Yc = function Czd() { - return new Pzd(this); - }; - _.Zc = function Dzd(a) { - var b, c; - c = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length); - if (a < 0 || a > c) - throw vbb(new Cyd(a, c)); - return new Qzd(this, a); - }; - _.ii = function Ezd(a, b) { - var c, d, e; - c = mzd(this); - e = c == null ? 0 : c.length; - if (a >= e) - throw vbb(new qcb(lue + a + mue + e)); - if (b >= e) - throw vbb(new qcb(nue + b + mue + e)); - d = c[b]; - if (a != b) { - a < b ? $fb(c, a, c, a + 1, b - a) : $fb(c, b + 1, c, b, a - b); - NC(c, a, d); - b0d(this, c); - } - return d; - }; - _.ki = function Fzd(a) { - return BD(Ajd(this.a, 4), 126)[a]; - }; - _.$c = function Gzd(a) { - return ozd(this, a); - }; - _.mi = function Hzd(a, b) { - var c, d; - c = mzd(this); - d = c[a]; - lzd(c, a, Itd(this, b)); - b0d(this, c); - return d; - }; - _.gc = function Izd() { - var a; - return a = BD(Ajd(this.a, 4), 126), a == null ? 0 : a.length; - }; - _.Pc = function Jzd() { - var a, b, c; - a = BD(Ajd(this.a, 4), 126); - c = a == null ? 0 : a.length; - b = KC($3, hve, 415, c, 0, 1); - c > 0 && $fb(a, 0, b, 0, c); - return b; - }; - _.Qc = function Kzd(a) { - var b, c, d; - b = BD(Ajd(this.a, 4), 126); - d = b == null ? 0 : b.length; - if (d > 0) { - if (a.length < d) { - c = izd(rb(a).c, d); - a = c; - } - $fb(b, 0, a, 0, d); - } - a.length > d && NC(a, d, null); - return a; - }; - var jzd; - var v4 = mdb(Tte, "ArrayDelegatingEList", 1982); - bcb(1038, 40, aie, Lzd); - _.mj = function Mzd() { - if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) { - throw vbb(new Apb()); - } - }; - _.Qb = function Nzd() { - Eyd(this); - this.a = BD(Ajd(this.b.a, 4), 126); - }; - var r4 = mdb(Tte, "ArrayDelegatingEList/EIterator", 1038); - bcb(706, 278, jie, Pzd, Qzd); - _.mj = function Rzd() { - if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) { - throw vbb(new Apb()); - } - }; - _.pj = function Szd(a) { - Nyd(this, a); - this.a = BD(Ajd(this.b.a, 4), 126); - }; - _.Qb = function Tzd() { - Eyd(this); - this.a = BD(Ajd(this.b.a, 4), 126); - }; - var s4 = mdb(Tte, "ArrayDelegatingEList/EListIterator", 706); - bcb(1039, 341, aie, Uzd); - _.mj = function Vzd() { - if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) { - throw vbb(new Apb()); - } - }; - var t4 = mdb(Tte, "ArrayDelegatingEList/NonResolvingEIterator", 1039); - bcb(707, 385, jie, Xzd, Yzd); - _.mj = function Zzd() { - if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) { - throw vbb(new Apb()); - } - }; - var u4 = mdb(Tte, "ArrayDelegatingEList/NonResolvingEListIterator", 707); - bcb(606, 295, Mje, $zd); - var w4 = mdb(Tte, "BasicEList/BasicIndexOutOfBoundsException", 606); - bcb(696, 63, oue, _zd); - _.Vc = function aAd(a, b) { - throw vbb(new bgb()); - }; - _.Fc = function bAd(a) { - throw vbb(new bgb()); - }; - _.Wc = function cAd(a, b) { - throw vbb(new bgb()); - }; - _.Gc = function dAd(a) { - throw vbb(new bgb()); - }; - _.$b = function eAd() { - throw vbb(new bgb()); - }; - _.qi = function fAd(a) { - throw vbb(new bgb()); - }; - _.Kc = function gAd() { - return this.Zh(); - }; - _.Yc = function hAd() { - return this.$h(); - }; - _.Zc = function iAd(a) { - return this._h(a); - }; - _.ii = function jAd(a, b) { - throw vbb(new bgb()); - }; - _.ji = function kAd(a, b) { - throw vbb(new bgb()); - }; - _.$c = function lAd(a) { - throw vbb(new bgb()); - }; - _.Mc = function mAd(a) { - throw vbb(new bgb()); - }; - _._c = function nAd(a, b) { - throw vbb(new bgb()); - }; - var x4 = mdb(Tte, "BasicEList/UnmodifiableEList", 696); - bcb(705, 1, { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }); - _.Vc = function OAd(a, b) { - oAd(this, a, BD(b, 42)); - }; - _.Fc = function PAd(a) { - return pAd(this, BD(a, 42)); - }; - _.Jc = function XAd(a) { - reb(this, a); - }; - _.Xb = function YAd(a) { - return BD(qud(this.c, a), 133); - }; - _.ii = function fBd(a, b) { - return BD(this.c.ii(a, b), 42); - }; - _.ji = function gBd(a, b) { - GAd(this, a, BD(b, 42)); - }; - _.Lc = function jBd() { - return new YAb(null, new Kub(this, 16)); - }; - _.$c = function kBd(a) { - return BD(this.c.$c(a), 42); - }; - _._c = function mBd(a, b) { - return MAd(this, a, BD(b, 42)); - }; - _.ad = function oBd(a) { - ktb(this, a); - }; - _.Nc = function pBd() { - return new Kub(this, 16); - }; - _.Oc = function qBd() { - return new YAb(null, new Kub(this, 16)); - }; - _.Wc = function QAd(a, b) { - return this.c.Wc(a, b); - }; - _.Gc = function RAd(a) { - return this.c.Gc(a); - }; - _.$b = function SAd() { - this.c.$b(); - }; - _.Hc = function TAd(a) { - return this.c.Hc(a); - }; - _.Ic = function UAd(a) { - return Be(this.c, a); - }; - _.qj = function VAd() { - var a, b, c; - if (this.d == null) { - this.d = KC(y4, jve, 63, 2 * this.f + 1, 0, 1); - c = this.e; - this.f = 0; - for (b = this.c.Kc(); b.e != b.i.gc(); ) { - a = BD(b.nj(), 133); - uAd(this, a); - } - this.e = c; - } - }; - _.Fb = function WAd(a) { - return zAd(this, a); - }; - _.Hb = function ZAd() { - return Etd(this.c); - }; - _.Xc = function $Ad(a) { - return this.c.Xc(a); - }; - _.rj = function _Ad() { - this.c = new yBd(this); - }; - _.dc = function aBd() { - return this.f == 0; - }; - _.Kc = function bBd() { - return this.c.Kc(); - }; - _.Yc = function cBd() { - return this.c.Yc(); - }; - _.Zc = function dBd(a) { - return this.c.Zc(a); - }; - _.sj = function eBd() { - return FAd(this); - }; - _.tj = function hBd(a, b, c) { - return new zCd(a, b, c); - }; - _.uj = function iBd() { - return new EBd(); - }; - _.Mc = function lBd(a) { - return JAd(this, a); - }; - _.gc = function nBd() { - return this.f; - }; - _.bd = function rBd(a, b) { - return new Jib(this.c, a, b); - }; - _.Pc = function sBd() { - return this.c.Pc(); - }; - _.Qc = function tBd(a) { - return this.c.Qc(a); - }; - _.Ib = function uBd() { - return Htd(this.c); - }; - _.e = 0; - _.f = 0; - var L4 = mdb(Tte, "BasicEMap", 705); - bcb(1033, 63, oue, yBd); - _.bi = function zBd(a, b) { - vBd(this, BD(b, 133)); - }; - _.ei = function BBd(a, b, c) { - var d; - ++(d = this, BD(b, 133), d).a.e; - }; - _.fi = function CBd(a, b) { - wBd(this, BD(b, 133)); - }; - _.gi = function DBd(a, b, c) { - xBd(this, BD(b, 133), BD(c, 133)); - }; - _.di = function ABd(a, b) { - tAd(this.a); - }; - var z4 = mdb(Tte, "BasicEMap/1", 1033); - bcb(1034, 63, oue, EBd); - _.ri = function FBd(a) { - return KC(I4, kve, 612, a, 0, 1); - }; - var A4 = mdb(Tte, "BasicEMap/2", 1034); - bcb(1035, eie, fie, GBd); - _.$b = function HBd() { - this.a.c.$b(); - }; - _.Hc = function IBd(a) { - return qAd(this.a, a); - }; - _.Kc = function JBd() { - return this.a.f == 0 ? (LCd(), KCd.a) : new dCd(this.a); - }; - _.Mc = function KBd(a) { - var b; - b = this.a.f; - LAd(this.a, a); - return this.a.f != b; - }; - _.gc = function LBd() { - return this.a.f; - }; - var B4 = mdb(Tte, "BasicEMap/3", 1035); - bcb(1036, 28, die, MBd); - _.$b = function NBd() { - this.a.c.$b(); - }; - _.Hc = function OBd(a) { - return rAd(this.a, a); - }; - _.Kc = function PBd() { - return this.a.f == 0 ? (LCd(), KCd.a) : new fCd(this.a); - }; - _.gc = function QBd() { - return this.a.f; - }; - var C4 = mdb(Tte, "BasicEMap/4", 1036); - bcb(1037, eie, fie, SBd); - _.$b = function TBd() { - this.a.c.$b(); - }; - _.Hc = function UBd(a) { - var b, c, d, e, f, g10, h, i10, j; - if (this.a.f > 0 && JD(a, 42)) { - this.a.qj(); - i10 = BD(a, 42); - h = i10.cd(); - e = h == null ? 0 : tb(h); - f = DAd(this.a, e); - b = this.a.d[f]; - if (b) { - c = BD(b.g, 367); - j = b.i; - for (g10 = 0; g10 < j; ++g10) { - d = c[g10]; - if (d.Sh() == e && d.Fb(i10)) { - return true; - } - } - } - } - return false; - }; - _.Kc = function VBd() { - return this.a.f == 0 ? (LCd(), KCd.a) : new ZBd(this.a); - }; - _.Mc = function WBd(a) { - return RBd(this, a); - }; - _.gc = function XBd() { - return this.a.f; - }; - var D4 = mdb(Tte, "BasicEMap/5", 1037); - bcb(613, 1, aie, ZBd); - _.Nb = function $Bd(a) { - Rrb(this, a); - }; - _.Ob = function _Bd() { - return this.b != -1; - }; - _.Pb = function aCd() { - var a; - if (this.f.e != this.c) { - throw vbb(new Apb()); - } - if (this.b == -1) { - throw vbb(new utb()); - } - this.d = this.a; - this.e = this.b; - YBd(this); - a = BD(this.f.d[this.d].g[this.e], 133); - return this.vj(a); - }; - _.Qb = function bCd() { - if (this.f.e != this.c) { - throw vbb(new Apb()); - } - if (this.e == -1) { - throw vbb(new Ydb()); - } - this.f.c.Mc(qud(this.f.d[this.d], this.e)); - this.c = this.f.e; - this.e = -1; - this.a == this.d && this.b != -1 && --this.b; - }; - _.vj = function cCd(a) { - return a; - }; - _.a = 0; - _.b = -1; - _.c = 0; - _.d = 0; - _.e = 0; - var E4 = mdb(Tte, "BasicEMap/BasicEMapIterator", 613); - bcb(1031, 613, aie, dCd); - _.vj = function eCd(a) { - return a.cd(); - }; - var F4 = mdb(Tte, "BasicEMap/BasicEMapKeyIterator", 1031); - bcb(1032, 613, aie, fCd); - _.vj = function gCd(a) { - return a.dd(); - }; - var G4 = mdb(Tte, "BasicEMap/BasicEMapValueIterator", 1032); - bcb(1030, 1, cie, iCd); - _.wc = function oCd(a) { - stb(this, a); - }; - _.yc = function tCd(a, b, c) { - return ttb(this, a, b, c); - }; - _.$b = function jCd() { - this.a.c.$b(); - }; - _._b = function kCd(a) { - return hCd(this, a); - }; - _.uc = function lCd(a) { - return rAd(this.a, a); - }; - _.vc = function mCd() { - return yAd(this.a); - }; - _.Fb = function nCd(a) { - return zAd(this.a, a); - }; - _.xc = function pCd(a) { - return AAd(this.a, a); - }; - _.Hb = function qCd() { - return Etd(this.a.c); - }; - _.dc = function rCd() { - return this.a.f == 0; - }; - _.ec = function sCd() { - return EAd(this.a); - }; - _.zc = function uCd(a, b) { - return HAd(this.a, a, b); - }; - _.Bc = function vCd(a) { - return LAd(this.a, a); - }; - _.gc = function wCd() { - return this.a.f; - }; - _.Ib = function xCd() { - return Htd(this.a.c); - }; - _.Cc = function yCd() { - return NAd(this.a); - }; - var H4 = mdb(Tte, "BasicEMap/DelegatingMap", 1030); - bcb(612, 1, { 42: 1, 133: 1, 612: 1 }, zCd); - _.Fb = function ACd(a) { - var b; - if (JD(a, 42)) { - b = BD(a, 42); - return (this.b != null ? pb(this.b, b.cd()) : PD(this.b) === PD(b.cd())) && (this.c != null ? pb(this.c, b.dd()) : PD(this.c) === PD(b.dd())); - } else { - return false; - } - }; - _.Sh = function BCd() { - return this.a; - }; - _.cd = function CCd() { - return this.b; - }; - _.dd = function DCd() { - return this.c; - }; - _.Hb = function ECd() { - return this.a ^ (this.c == null ? 0 : tb(this.c)); - }; - _.Th = function FCd(a) { - this.a = a; - }; - _.Uh = function GCd(a) { - throw vbb(new gz()); - }; - _.ed = function HCd(a) { - var b; - b = this.c; - this.c = a; - return b; - }; - _.Ib = function ICd() { - return this.b + "->" + this.c; - }; - _.a = 0; - var I4 = mdb(Tte, "BasicEMap/EntryImpl", 612); - bcb(536, 1, {}, JCd); - var K4 = mdb(Tte, "BasicEMap/View", 536); - var KCd; - bcb(768, 1, {}); - _.Fb = function ZCd(a) { - return At((mmb(), jmb), a); - }; - _.Hb = function $Cd() { - return qmb((mmb(), jmb)); - }; - _.Ib = function _Cd() { - return Fe((mmb(), jmb)); - }; - var Q4 = mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList", 768); - bcb(1312, 1, jie, aDd); - _.Nb = function cDd(a) { - Rrb(this, a); - }; - _.Rb = function bDd(a) { - throw vbb(new bgb()); - }; - _.Ob = function dDd() { - return false; - }; - _.Sb = function eDd() { - return false; - }; - _.Pb = function fDd() { - throw vbb(new utb()); - }; - _.Tb = function gDd() { - return 0; - }; - _.Ub = function hDd() { - throw vbb(new utb()); - }; - _.Vb = function iDd() { - return -1; - }; - _.Qb = function jDd() { - throw vbb(new bgb()); - }; - _.Wb = function kDd(a) { - throw vbb(new bgb()); - }; - var P4 = mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList/1", 1312); - bcb(1310, 768, { 20: 1, 14: 1, 15: 1, 58: 1 }, lDd); - _.Vc = function mDd(a, b) { - OCd(); - }; - _.Fc = function nDd(a) { - return PCd(); - }; - _.Wc = function oDd(a, b) { - return QCd(); - }; - _.Gc = function pDd(a) { - return RCd(); - }; - _.$b = function qDd() { - SCd(); - }; - _.Hc = function rDd(a) { - return false; - }; - _.Ic = function sDd(a) { - return false; - }; - _.Jc = function tDd(a) { - reb(this, a); - }; - _.Xb = function uDd(a) { - return wmb((mmb(), jmb, a)), null; - }; - _.Xc = function vDd(a) { - return -1; - }; - _.dc = function wDd() { - return true; - }; - _.Kc = function xDd() { - return this.a; - }; - _.Yc = function yDd() { - return this.a; - }; - _.Zc = function zDd(a) { - return this.a; - }; - _.ii = function ADd(a, b) { - return TCd(); - }; - _.ji = function BDd(a, b) { - UCd(); - }; - _.Lc = function CDd() { - return new YAb(null, new Kub(this, 16)); - }; - _.$c = function DDd(a) { - return VCd(); - }; - _.Mc = function EDd(a) { - return WCd(); - }; - _._c = function FDd(a, b) { - return XCd(); - }; - _.gc = function GDd() { - return 0; - }; - _.ad = function HDd(a) { - ktb(this, a); - }; - _.Nc = function IDd() { - return new Kub(this, 16); - }; - _.Oc = function JDd() { - return new YAb(null, new Kub(this, 16)); - }; - _.bd = function KDd(a, b) { - return mmb(), new Jib(jmb, a, b); - }; - _.Pc = function LDd() { - return De((mmb(), jmb)); - }; - _.Qc = function MDd(a) { - return mmb(), Ee(jmb, a); - }; - var R4 = mdb(Tte, "ECollections/EmptyUnmodifiableEList", 1310); - bcb(1311, 768, { 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }, NDd); - _.Vc = function ODd(a, b) { - OCd(); - }; - _.Fc = function PDd(a) { - return PCd(); - }; - _.Wc = function QDd(a, b) { - return QCd(); - }; - _.Gc = function RDd(a) { - return RCd(); - }; - _.$b = function SDd() { - SCd(); - }; - _.Hc = function TDd(a) { - return false; - }; - _.Ic = function UDd(a) { - return false; - }; - _.Jc = function VDd(a) { - reb(this, a); - }; - _.Xb = function WDd(a) { - return wmb((mmb(), jmb, a)), null; - }; - _.Xc = function XDd(a) { - return -1; - }; - _.dc = function YDd() { - return true; - }; - _.Kc = function ZDd() { - return this.a; - }; - _.Yc = function $Dd() { - return this.a; - }; - _.Zc = function _Dd(a) { - return this.a; - }; - _.ii = function bEd(a, b) { - return TCd(); - }; - _.ji = function cEd(a, b) { - UCd(); - }; - _.Lc = function dEd() { - return new YAb(null, new Kub(this, 16)); - }; - _.$c = function eEd(a) { - return VCd(); - }; - _.Mc = function fEd(a) { - return WCd(); - }; - _._c = function gEd(a, b) { - return XCd(); - }; - _.gc = function hEd() { - return 0; - }; - _.ad = function iEd(a) { - ktb(this, a); - }; - _.Nc = function jEd() { - return new Kub(this, 16); - }; - _.Oc = function kEd() { - return new YAb(null, new Kub(this, 16)); - }; - _.bd = function lEd(a, b) { - return mmb(), new Jib(jmb, a, b); - }; - _.Pc = function mEd() { - return De((mmb(), jmb)); - }; - _.Qc = function nEd(a) { - return mmb(), Ee(jmb, a); - }; - _.sj = function aEd() { - return mmb(), mmb(), kmb; - }; - var S4 = mdb(Tte, "ECollections/EmptyUnmodifiableEMap", 1311); - var U4 = odb(Tte, "Enumerator"); - var oEd; - bcb(281, 1, { 281: 1 }, NEd); - _.Fb = function REd(a) { - var b; - if (this === a) - return true; - if (!JD(a, 281)) - return false; - b = BD(a, 281); - return this.f == b.f && TEd(this.i, b.i) && SEd(this.a, (this.f & 256) != 0 ? (b.f & 256) != 0 ? b.a : null : (b.f & 256) != 0 ? null : b.a) && SEd(this.d, b.d) && SEd(this.g, b.g) && SEd(this.e, b.e) && KEd(this, b); - }; - _.Hb = function WEd() { - return this.f; - }; - _.Ib = function cFd() { - return LEd(this); - }; - _.f = 0; - var sEd = 0, tEd = 0, uEd = 0, vEd = 0, wEd = 0, xEd = 0, yEd = 0, zEd = 0, AEd = 0, BEd, CEd = 0, DEd = 0, EEd = 0, FEd = 0, GEd, HEd; - var Z4 = mdb(Tte, "URI", 281); - bcb(1091, 43, fke, mFd); - _.zc = function nFd(a, b) { - return BD(Shb(this, GD(a), BD(b, 281)), 281); - }; - var Y4 = mdb(Tte, "URI/URICache", 1091); - bcb(497, 63, oue, oFd, pFd); - _.hi = function qFd() { - return true; - }; - var $4 = mdb(Tte, "UniqueEList", 497); - bcb(581, 60, Tie, rFd); - var _4 = mdb(Tte, "WrappedException", 581); - var a5 = odb(Vse, nve); - var v5 = odb(Vse, ove); - var t5 = odb(Vse, pve); - var b5 = odb(Vse, qve); - var d5 = odb(Vse, rve); - var c5 = odb(Vse, "EClass"); - var f5 = odb(Vse, "EDataType"); - var sFd; - bcb(1183, 43, fke, vFd); - _.xc = function wFd(a) { - return ND(a) ? Phb(this, a) : Wd(irb(this.f, a)); - }; - var e5 = mdb(Vse, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1183); - var h5 = odb(Vse, "EEnum"); - var g5 = odb(Vse, sve); - var j5 = odb(Vse, tve); - var n5 = odb(Vse, uve); - var xFd; - var p5 = odb(Vse, vve); - var q5 = odb(Vse, wve); - bcb(1029, 1, {}, BFd); - _.Ib = function CFd() { - return "NIL"; - }; - var r5 = mdb(Vse, "EStructuralFeature/Internal/DynamicValueHolder/1", 1029); - var DFd; - bcb(1028, 43, fke, GFd); - _.xc = function HFd(a) { - return ND(a) ? Phb(this, a) : Wd(irb(this.f, a)); - }; - var s5 = mdb(Vse, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1028); - var u5 = odb(Vse, xve); - var w5 = odb(Vse, "EValidator/PatternMatcher"); - var IFd; - var KFd; - var MFd; - var OFd, PFd, QFd, RFd, SFd, TFd, UFd, VFd, WFd, XFd, YFd, ZFd, $Fd, _Fd, aGd, bGd, cGd, dGd, eGd, fGd, gGd, hGd, iGd; - var E9 = odb(yve, "FeatureMap/Entry"); - bcb(535, 1, { 72: 1 }, kGd); - _.ak = function lGd() { - return this.a; - }; - _.dd = function mGd() { - return this.b; - }; - var x5 = mdb(qte, "BasicEObjectImpl/1", 535); - bcb(1027, 1, zve, nGd); - _.Wj = function oGd(a) { - return hid(this.a, this.b, a); - }; - _.fj = function pGd() { - return nid(this.a, this.b); - }; - _.Wb = function qGd(a) { - zid(this.a, this.b, a); - }; - _.Xj = function rGd() { - Did(this.a, this.b); - }; - var y5 = mdb(qte, "BasicEObjectImpl/4", 1027); - bcb(1983, 1, { 108: 1 }); - _.bk = function uGd(a) { - this.e = a == 0 ? sGd : KC(SI, Uhe, 1, a, 5, 1); - }; - _.Ch = function vGd(a) { - return this.e[a]; - }; - _.Dh = function wGd(a, b) { - this.e[a] = b; - }; - _.Eh = function xGd(a) { - this.e[a] = null; - }; - _.ck = function yGd() { - return this.c; - }; - _.dk = function zGd() { - throw vbb(new bgb()); - }; - _.ek = function AGd() { - throw vbb(new bgb()); - }; - _.fk = function BGd() { - return this.d; - }; - _.gk = function CGd() { - return this.e != null; - }; - _.hk = function DGd(a) { - this.c = a; - }; - _.ik = function EGd(a) { - throw vbb(new bgb()); - }; - _.jk = function FGd(a) { - throw vbb(new bgb()); - }; - _.kk = function GGd(a) { - this.d = a; - }; - var sGd; - var z5 = mdb(qte, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 1983); - bcb(185, 1983, { 108: 1 }, HGd); - _.dk = function IGd() { - return this.a; - }; - _.ek = function JGd() { - return this.b; - }; - _.ik = function KGd(a) { - this.a = a; - }; - _.jk = function LGd(a) { - this.b = a; - }; - var A5 = mdb(qte, "BasicEObjectImpl/EPropertiesHolderImpl", 185); - bcb(506, 97, pte, MGd); - _.Kg = function NGd() { - return this.f; - }; - _.Pg = function OGd() { - return this.k; - }; - _.Rg = function PGd(a, b) { - this.g = a; - this.i = b; - }; - _.Tg = function QGd() { - return (this.j & 2) == 0 ? this.zh() : this.ph().ck(); - }; - _.Vg = function RGd() { - return this.i; - }; - _.Mg = function SGd() { - return (this.j & 1) != 0; - }; - _.eh = function TGd() { - return this.g; - }; - _.kh = function UGd() { - return (this.j & 4) != 0; - }; - _.ph = function VGd() { - return !this.k && (this.k = new HGd()), this.k; - }; - _.th = function WGd(a) { - this.ph().hk(a); - a ? this.j |= 2 : this.j &= -3; - }; - _.vh = function XGd(a) { - this.ph().jk(a); - a ? this.j |= 4 : this.j &= -5; - }; - _.zh = function YGd() { - return (NFd(), MFd).S; - }; - _.i = 0; - _.j = 1; - var l6 = mdb(qte, "EObjectImpl", 506); - bcb(780, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, _Gd); - _.Ch = function aHd(a) { - return this.e[a]; - }; - _.Dh = function bHd(a, b) { - this.e[a] = b; - }; - _.Eh = function cHd(a) { - this.e[a] = null; - }; - _.Tg = function dHd() { - return this.d; - }; - _.Yg = function eHd(a) { - return bLd(this.d, a); - }; - _.$g = function fHd() { - return this.d; - }; - _.dh = function gHd() { - return this.e != null; - }; - _.ph = function hHd() { - !this.k && (this.k = new vHd()); - return this.k; - }; - _.th = function iHd(a) { - this.d = a; - }; - _.yh = function jHd() { - var a; - if (this.e == null) { - a = aLd(this.d); - this.e = a == 0 ? ZGd : KC(SI, Uhe, 1, a, 5, 1); - } - return this; - }; - _.Ah = function kHd() { - return 0; - }; - var ZGd; - var E5 = mdb(qte, "DynamicEObjectImpl", 780); - bcb(1376, 780, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, lHd); - _.Fb = function nHd(a) { - return this === a; - }; - _.Hb = function rHd() { - return FCb(this); - }; - _.th = function mHd(a) { - this.d = a; - this.b = YKd(a, "key"); - this.c = YKd(a, Bte); - }; - _.Sh = function oHd() { - var a; - if (this.a == -1) { - a = iid(this, this.b); - this.a = a == null ? 0 : tb(a); - } - return this.a; - }; - _.cd = function pHd() { - return iid(this, this.b); - }; - _.dd = function qHd() { - return iid(this, this.c); - }; - _.Th = function sHd(a) { - this.a = a; - }; - _.Uh = function tHd(a) { - zid(this, this.b, a); - }; - _.ed = function uHd(a) { - var b; - b = iid(this, this.c); - zid(this, this.c, a); - return b; - }; - _.a = 0; - var C5 = mdb(qte, "DynamicEObjectImpl/BasicEMapEntry", 1376); - bcb(1377, 1, { 108: 1 }, vHd); - _.bk = function wHd(a) { - throw vbb(new bgb()); - }; - _.Ch = function xHd(a) { - throw vbb(new bgb()); - }; - _.Dh = function yHd(a, b) { - throw vbb(new bgb()); - }; - _.Eh = function zHd(a) { - throw vbb(new bgb()); - }; - _.ck = function AHd() { - throw vbb(new bgb()); - }; - _.dk = function BHd() { - return this.a; - }; - _.ek = function CHd() { - return this.b; - }; - _.fk = function DHd() { - return this.c; - }; - _.gk = function EHd() { - throw vbb(new bgb()); - }; - _.hk = function FHd(a) { - throw vbb(new bgb()); - }; - _.ik = function GHd(a) { - this.a = a; - }; - _.jk = function HHd(a) { - this.b = a; - }; - _.kk = function IHd(a) { - this.c = a; - }; - var D5 = mdb(qte, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1377); - bcb(510, 150, { 105: 1, 92: 1, 90: 1, 590: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 510: 1, 150: 1, 114: 1, 115: 1 }, RHd); - _.Qg = function SHd(a) { - return KHd(this, a); - }; - _._g = function THd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.d; - case 2: - return c ? (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), this.b) : (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), FAd(this.b)); - case 3: - return MHd(this); - case 4: - return !this.a && (this.a = new xMd(m5, this, 4)), this.a; - case 5: - return !this.c && (this.c = new _4d(m5, this, 5)), this.c; - } - return bid(this, a - aLd((jGd(), OFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? OFd : d), a), b, c); - }; - _.hh = function UHd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 3: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? KHd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return JHd(this, BD(a, 147), c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), OFd)), a, c); - }; - _.jh = function VHd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 2: - return !this.b && (this.b = new sId((jGd(), fGd), x6, this)), bId(this.b, a, c); - case 3: - return JHd(this, null, c); - case 4: - return !this.a && (this.a = new xMd(m5, this, 4)), Txd(this.a, a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), OFd)), a, c); - }; - _.lh = function WHd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.d != null; - case 2: - return !!this.b && this.b.f != 0; - case 3: - return !!MHd(this); - case 4: - return !!this.a && this.a.i != 0; - case 5: - return !!this.c && this.c.i != 0; - } - return cid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a)); - }; - _.sh = function XHd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - OHd(this, GD(b)); - return; - case 2: - !this.b && (this.b = new sId((jGd(), fGd), x6, this)); - cId(this.b, b); - return; - case 3: - NHd(this, BD(b, 147)); - return; - case 4: - !this.a && (this.a = new xMd(m5, this, 4)); - Uxd(this.a); - !this.a && (this.a = new xMd(m5, this, 4)); - ytd(this.a, BD(b, 14)); - return; - case 5: - !this.c && (this.c = new _4d(m5, this, 5)); - Uxd(this.c); - !this.c && (this.c = new _4d(m5, this, 5)); - ytd(this.c, BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), OFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? OFd : c), a), b); - }; - _.zh = function YHd() { - return jGd(), OFd; - }; - _.Bh = function ZHd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - PHd(this, null); - return; - case 2: - !this.b && (this.b = new sId((jGd(), fGd), x6, this)); - this.b.c.$b(); - return; - case 3: - NHd(this, null); - return; - case 4: - !this.a && (this.a = new xMd(m5, this, 4)); - Uxd(this.a); - return; - case 5: - !this.c && (this.c = new _4d(m5, this, 5)); - Uxd(this.c); - return; - } - eid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a)); - }; - _.Ib = function $Hd() { - return QHd(this); - }; - _.d = null; - var G5 = mdb(qte, "EAnnotationImpl", 510); - bcb(151, 705, Ave, dId); - _.Xh = function eId(a, b) { - _Hd(this, a, BD(b, 42)); - }; - _.lk = function fId(a, b) { - return aId(this, BD(a, 42), b); - }; - _.pi = function gId(a) { - return BD(BD(this.c, 69).pi(a), 133); - }; - _.Zh = function hId() { - return BD(this.c, 69).Zh(); - }; - _.$h = function iId() { - return BD(this.c, 69).$h(); - }; - _._h = function jId(a) { - return BD(this.c, 69)._h(a); - }; - _.mk = function kId(a, b) { - return bId(this, a, b); - }; - _.Wj = function lId(a) { - return BD(this.c, 76).Wj(a); - }; - _.rj = function mId() { - }; - _.fj = function nId() { - return BD(this.c, 76).fj(); - }; - _.tj = function oId(a, b, c) { - var d; - d = BD(bKd(this.b).Nh().Jh(this.b), 133); - d.Th(a); - d.Uh(b); - d.ed(c); - return d; - }; - _.uj = function pId() { - return new W5d(this); - }; - _.Wb = function qId(a) { - cId(this, a); - }; - _.Xj = function rId() { - BD(this.c, 76).Xj(); - }; - var y9 = mdb(yve, "EcoreEMap", 151); - bcb(158, 151, Ave, sId); - _.qj = function tId() { - var a, b, c, d, e, f; - if (this.d == null) { - f = KC(y4, jve, 63, 2 * this.f + 1, 0, 1); - for (c = this.c.Kc(); c.e != c.i.gc(); ) { - b = BD(c.nj(), 133); - d = b.Sh(); - e = (d & Ohe) % f.length; - a = f[e]; - !a && (a = f[e] = new W5d(this)); - a.Fc(b); - } - this.d = f; - } - }; - var F5 = mdb(qte, "EAnnotationImpl/1", 158); - bcb(284, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 284: 1, 114: 1, 115: 1 }); - _._g = function GId(a, b, c) { - var d, e; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 3: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 4: - return meb(this.s); - case 5: - return meb(this.t); - case 6: - return Bcb(), this.$j() ? true : false; - case 7: - return Bcb(), e = this.s, e >= 1 ? true : false; - case 8: - if (b) - return wId(this); - return this.r; - case 9: - return this.q; - } - return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c); - }; - _.jh = function HId(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 9: - return vId(this, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.lh = function IId(a) { - var b, c; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return (this.Bb & 256) == 0; - case 3: - return (this.Bb & 512) == 0; - case 4: - return this.s != 0; - case 5: - return this.t != 1; - case 6: - return this.$j(); - case 7: - return c = this.s, c >= 1; - case 8: - return !!this.r && !this.q.e && LQd(this.q).i == 0; - case 9: - return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0); - } - return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.sh = function JId(a, b) { - var c, d; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - this.Lh(GD(b)); - return; - case 2: - BId(this, Ccb(DD(b))); - return; - case 3: - CId(this, Ccb(DD(b))); - return; - case 4: - AId(this, BD(b, 19).a); - return; - case 5: - this.ok(BD(b, 19).a); - return; - case 8: - yId(this, BD(b, 138)); - return; - case 9: - d = xId(this, BD(b, 87), null); - !!d && d.Fi(); - return; - } - did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b); - }; - _.zh = function KId() { - return jGd(), hGd; - }; - _.Bh = function LId(a) { - var b, c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - this.Lh(null); - return; - case 2: - BId(this, true); - return; - case 3: - CId(this, true); - return; - case 4: - AId(this, 0); - return; - case 5: - this.ok(1); - return; - case 8: - yId(this, null); - return; - case 9: - c = xId(this, null, null); - !!c && c.Fi(); - return; - } - eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.Gh = function MId() { - wId(this); - this.Bb |= 1; - }; - _.Yj = function NId() { - return wId(this); - }; - _.Zj = function OId() { - return this.t; - }; - _.$j = function PId() { - var a; - return a = this.t, a > 1 || a == -1; - }; - _.hi = function QId() { - return (this.Bb & 512) != 0; - }; - _.nk = function RId(a, b) { - return zId(this, a, b); - }; - _.ok = function SId(a) { - DId(this, a); - }; - _.Ib = function TId() { - return EId(this); - }; - _.s = 0; - _.t = 1; - var v7 = mdb(qte, "ETypedElementImpl", 284); - bcb(449, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }); - _.Qg = function iJd(a) { - return UId(this, a); - }; - _._g = function jJd(a, b, c) { - var d, e; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 3: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 4: - return meb(this.s); - case 5: - return meb(this.t); - case 6: - return Bcb(), this.$j() ? true : false; - case 7: - return Bcb(), e = this.s, e >= 1 ? true : false; - case 8: - if (b) - return wId(this); - return this.r; - case 9: - return this.q; - case 10: - return Bcb(), (this.Bb & zte) != 0 ? true : false; - case 11: - return Bcb(), (this.Bb & Dve) != 0 ? true : false; - case 12: - return Bcb(), (this.Bb & Rje) != 0 ? true : false; - case 13: - return this.j; - case 14: - return VId(this); - case 15: - return Bcb(), (this.Bb & Cve) != 0 ? true : false; - case 16: - return Bcb(), (this.Bb & oie) != 0 ? true : false; - case 17: - return WId(this); - } - return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c); - }; - _.hh = function kJd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 17: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? UId(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 17, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.jh = function lJd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 9: - return vId(this, c); - case 17: - return _hd(this, null, 17, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.lh = function mJd(a) { - var b, c; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return (this.Bb & 256) == 0; - case 3: - return (this.Bb & 512) == 0; - case 4: - return this.s != 0; - case 5: - return this.t != 1; - case 6: - return this.$j(); - case 7: - return c = this.s, c >= 1; - case 8: - return !!this.r && !this.q.e && LQd(this.q).i == 0; - case 9: - return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0); - case 10: - return (this.Bb & zte) == 0; - case 11: - return (this.Bb & Dve) != 0; - case 12: - return (this.Bb & Rje) != 0; - case 13: - return this.j != null; - case 14: - return VId(this) != null; - case 15: - return (this.Bb & Cve) != 0; - case 16: - return (this.Bb & oie) != 0; - case 17: - return !!WId(this); - } - return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.sh = function nJd(a, b) { - var c, d; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - cJd(this, GD(b)); - return; - case 2: - BId(this, Ccb(DD(b))); - return; - case 3: - CId(this, Ccb(DD(b))); - return; - case 4: - AId(this, BD(b, 19).a); - return; - case 5: - this.ok(BD(b, 19).a); - return; - case 8: - yId(this, BD(b, 138)); - return; - case 9: - d = xId(this, BD(b, 87), null); - !!d && d.Fi(); - return; - case 10: - ZId(this, Ccb(DD(b))); - return; - case 11: - fJd(this, Ccb(DD(b))); - return; - case 12: - dJd(this, Ccb(DD(b))); - return; - case 13: - $Id(this, GD(b)); - return; - case 15: - eJd(this, Ccb(DD(b))); - return; - case 16: - aJd(this, Ccb(DD(b))); - return; - } - did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b); - }; - _.zh = function oJd() { - return jGd(), gGd; - }; - _.Bh = function pJd(a) { - var b, c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4); - pnd(this, null); - return; - case 2: - BId(this, true); - return; - case 3: - CId(this, true); - return; - case 4: - AId(this, 0); - return; - case 5: - this.ok(1); - return; - case 8: - yId(this, null); - return; - case 9: - c = xId(this, null, null); - !!c && c.Fi(); - return; - case 10: - ZId(this, true); - return; - case 11: - fJd(this, false); - return; - case 12: - dJd(this, false); - return; - case 13: - this.i = null; - _Id(this, null); - return; - case 15: - eJd(this, false); - return; - case 16: - aJd(this, false); - return; - } - eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.Gh = function qJd() { - a2d(q1d((O6d(), M6d), this)); - wId(this); - this.Bb |= 1; - }; - _.Gj = function rJd() { - return this.f; - }; - _.zj = function sJd() { - return VId(this); - }; - _.Hj = function tJd() { - return WId(this); - }; - _.Lj = function uJd() { - return null; - }; - _.pk = function vJd() { - return this.k; - }; - _.aj = function wJd() { - return this.n; - }; - _.Mj = function xJd() { - return XId(this); - }; - _.Nj = function yJd() { - var a, b, c, d, e, f, g10, h, i10; - if (!this.p) { - c = WId(this); - (c.i == null && TKd(c), c.i).length; - d = this.Lj(); - !!d && aLd(WId(d)); - e = wId(this); - g10 = e.Bj(); - a = !g10 ? null : (g10.i & 1) != 0 ? g10 == sbb ? wI : g10 == WD ? JI : g10 == VD ? FI : g10 == UD ? BI : g10 == XD ? MI : g10 == rbb ? UI : g10 == SD ? xI : yI : g10; - b = VId(this); - h = e.zj(); - n6d(this); - (this.Bb & oie) != 0 && (!!(f = t1d((O6d(), M6d), c)) && f != this || !!(f = _1d(q1d(M6d, this)))) ? this.p = new zVd(this, f) : this.$j() ? this.rk() ? !d ? (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new KVd(42, this) : this.p = new KVd(0, this) : a == CK ? this.p = new IVd(50, J4, this) : this.sk() ? this.p = new IVd(43, a, this) : this.p = new IVd(1, a, this) : !a ? this.sk() ? this.p = new KVd(44, this) : this.p = new KVd(2, this) : a == CK ? this.p = new IVd(41, J4, this) : this.sk() ? this.p = new IVd(45, a, this) : this.p = new IVd(3, a, this) : (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new LVd(46, this, d) : this.p = new LVd(4, this, d) : this.sk() ? this.p = new JVd(47, a, this, d) : this.p = new JVd(5, a, this, d) : !a ? this.sk() ? this.p = new LVd(48, this, d) : this.p = new LVd(6, this, d) : this.sk() ? this.p = new JVd(49, a, this, d) : this.p = new JVd(7, a, this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & 512) != 0 ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(8, this) : this.p = new IVd(9, a, this) : !a ? this.p = new KVd(10, this) : this.p = new IVd(11, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(12, this) : this.p = new IVd(13, a, this) : !a ? this.p = new KVd(14, this) : this.p = new IVd(15, a, this) : !d ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(16, this) : this.p = new IVd(17, a, this) : !a ? this.p = new KVd(18, this) : this.p = new IVd(19, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(20, this) : this.p = new IVd(21, a, this) : !a ? this.p = new KVd(22, this) : this.p = new IVd(23, a, this) : (i10 = d.t, i10 > 1 || i10 == -1 ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(24, this, d) : this.p = new JVd(25, a, this, d) : !a ? this.p = new LVd(26, this, d) : this.p = new JVd(27, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(28, this, d) : this.p = new JVd(29, a, this, d) : !a ? this.p = new LVd(30, this, d) : this.p = new JVd(31, a, this, d) : this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(32, this, d) : this.p = new JVd(33, a, this, d) : !a ? this.p = new LVd(34, this, d) : this.p = new JVd(35, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(36, this, d) : this.p = new JVd(37, a, this, d) : !a ? this.p = new LVd(38, this, d) : this.p = new JVd(39, a, this, d)) : this.qk() ? this.sk() ? this.p = new kWd(BD(e, 26), this, d) : this.p = new cWd(BD(e, 26), this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new jXd(BD(e, 148), b, h, this) : this.p = new lXd(b, h, this, (CWd(), g10 == WD ? yWd : g10 == sbb ? tWd : g10 == XD ? zWd : g10 == VD ? xWd : g10 == UD ? wWd : g10 == rbb ? BWd : g10 == SD ? uWd : g10 == TD ? vWd : AWd)) : !a ? this.p = new cXd(BD(e, 148), b, h, this) : this.p = new eXd(b, h, this, (CWd(), g10 == WD ? yWd : g10 == sbb ? tWd : g10 == XD ? zWd : g10 == VD ? xWd : g10 == UD ? wWd : g10 == rbb ? BWd : g10 == SD ? uWd : g10 == TD ? vWd : AWd)) : this.rk() ? !d ? (this.Bb & Cve) != 0 ? this.sk() ? this.p = new FXd(BD(e, 26), this) : this.p = new DXd(BD(e, 26), this) : this.sk() ? this.p = new BXd(BD(e, 26), this) : this.p = new zXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.sk() ? this.p = new NXd(BD(e, 26), this, d) : this.p = new LXd(BD(e, 26), this, d) : this.sk() ? this.p = new JXd(BD(e, 26), this, d) : this.p = new HXd(BD(e, 26), this, d) : this.sk() ? !d ? (this.Bb & Cve) != 0 ? this.p = new RXd(BD(e, 26), this) : this.p = new PXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new VXd(BD(e, 26), this, d) : this.p = new TXd(BD(e, 26), this, d) : !d ? (this.Bb & Cve) != 0 ? this.p = new XXd(BD(e, 26), this) : this.p = new nXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new _Xd(BD(e, 26), this, d) : this.p = new ZXd(BD(e, 26), this, d); - } - return this.p; - }; - _.Ij = function zJd() { - return (this.Bb & zte) != 0; - }; - _.qk = function AJd() { - return false; - }; - _.rk = function BJd() { - return false; - }; - _.Jj = function CJd() { - return (this.Bb & oie) != 0; - }; - _.Oj = function DJd() { - return YId(this); - }; - _.sk = function EJd() { - return false; - }; - _.Kj = function FJd() { - return (this.Bb & Cve) != 0; - }; - _.tk = function GJd(a) { - this.k = a; - }; - _.Lh = function HJd(a) { - cJd(this, a); - }; - _.Ib = function IJd() { - return gJd(this); - }; - _.e = false; - _.n = 0; - var n7 = mdb(qte, "EStructuralFeatureImpl", 449); - bcb(322, 449, { 105: 1, 92: 1, 90: 1, 34: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 322: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, OJd); - _._g = function PJd(a, b, c) { - var d, e; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 3: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 4: - return meb(this.s); - case 5: - return meb(this.t); - case 6: - return Bcb(), LJd(this) ? true : false; - case 7: - return Bcb(), e = this.s, e >= 1 ? true : false; - case 8: - if (b) - return wId(this); - return this.r; - case 9: - return this.q; - case 10: - return Bcb(), (this.Bb & zte) != 0 ? true : false; - case 11: - return Bcb(), (this.Bb & Dve) != 0 ? true : false; - case 12: - return Bcb(), (this.Bb & Rje) != 0 ? true : false; - case 13: - return this.j; - case 14: - return VId(this); - case 15: - return Bcb(), (this.Bb & Cve) != 0 ? true : false; - case 16: - return Bcb(), (this.Bb & oie) != 0 ? true : false; - case 17: - return WId(this); - case 18: - return Bcb(), (this.Bb & ote) != 0 ? true : false; - case 19: - if (b) - return KJd(this); - return JJd(this); - } - return bid(this, a - aLd((jGd(), PFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? PFd : d), a), b, c); - }; - _.lh = function QJd(a) { - var b, c; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return (this.Bb & 256) == 0; - case 3: - return (this.Bb & 512) == 0; - case 4: - return this.s != 0; - case 5: - return this.t != 1; - case 6: - return LJd(this); - case 7: - return c = this.s, c >= 1; - case 8: - return !!this.r && !this.q.e && LQd(this.q).i == 0; - case 9: - return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0); - case 10: - return (this.Bb & zte) == 0; - case 11: - return (this.Bb & Dve) != 0; - case 12: - return (this.Bb & Rje) != 0; - case 13: - return this.j != null; - case 14: - return VId(this) != null; - case 15: - return (this.Bb & Cve) != 0; - case 16: - return (this.Bb & oie) != 0; - case 17: - return !!WId(this); - case 18: - return (this.Bb & ote) != 0; - case 19: - return !!JJd(this); - } - return cid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a)); - }; - _.sh = function RJd(a, b) { - var c, d; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - cJd(this, GD(b)); - return; - case 2: - BId(this, Ccb(DD(b))); - return; - case 3: - CId(this, Ccb(DD(b))); - return; - case 4: - AId(this, BD(b, 19).a); - return; - case 5: - NJd(this, BD(b, 19).a); - return; - case 8: - yId(this, BD(b, 138)); - return; - case 9: - d = xId(this, BD(b, 87), null); - !!d && d.Fi(); - return; - case 10: - ZId(this, Ccb(DD(b))); - return; - case 11: - fJd(this, Ccb(DD(b))); - return; - case 12: - dJd(this, Ccb(DD(b))); - return; - case 13: - $Id(this, GD(b)); - return; - case 15: - eJd(this, Ccb(DD(b))); - return; - case 16: - aJd(this, Ccb(DD(b))); - return; - case 18: - MJd(this, Ccb(DD(b))); - return; - } - did(this, a - aLd((jGd(), PFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? PFd : c), a), b); - }; - _.zh = function SJd() { - return jGd(), PFd; - }; - _.Bh = function TJd(a) { - var b, c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4); - pnd(this, null); - return; - case 2: - BId(this, true); - return; - case 3: - CId(this, true); - return; - case 4: - AId(this, 0); - return; - case 5: - this.b = 0; - DId(this, 1); - return; - case 8: - yId(this, null); - return; - case 9: - c = xId(this, null, null); - !!c && c.Fi(); - return; - case 10: - ZId(this, true); - return; - case 11: - fJd(this, false); - return; - case 12: - dJd(this, false); - return; - case 13: - this.i = null; - _Id(this, null); - return; - case 15: - eJd(this, false); - return; - case 16: - aJd(this, false); - return; - case 18: - MJd(this, false); - return; - } - eid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a)); - }; - _.Gh = function UJd() { - KJd(this); - a2d(q1d((O6d(), M6d), this)); - wId(this); - this.Bb |= 1; - }; - _.$j = function VJd() { - return LJd(this); - }; - _.nk = function WJd(a, b) { - this.b = 0; - this.a = null; - return zId(this, a, b); - }; - _.ok = function XJd(a) { - NJd(this, a); - }; - _.Ib = function YJd() { - var a; - if ((this.Db & 64) != 0) - return gJd(this); - a = new Jfb(gJd(this)); - a.a += " (iD: "; - Ffb(a, (this.Bb & ote) != 0); - a.a += ")"; - return a.a; - }; - _.b = 0; - var H5 = mdb(qte, "EAttributeImpl", 322); - bcb(351, 438, { 105: 1, 92: 1, 90: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }); - _.uk = function nKd(a) { - return a.Tg() == this; - }; - _.Qg = function oKd(a) { - return aKd(this, a); - }; - _.Rg = function pKd(a, b) { - this.w = null; - this.Db = b << 16 | this.Db & 255; - this.Cb = a; - }; - _._g = function qKd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return this.D != null ? this.D : this.B; - case 3: - return dKd(this); - case 4: - return this.zj(); - case 5: - return this.F; - case 6: - if (b) - return bKd(this); - return ZJd(this); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), this.A; - } - return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c); - }; - _.hh = function rKd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 6: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? aKd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 6, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.jh = function sKd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 6: - return _hd(this, null, 6, c); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c); - }; - _.lh = function tKd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return this.D != null && this.D == this.F; - case 3: - return !!dKd(this); - case 4: - return this.zj() != null; - case 5: - return this.F != null && this.F != this.D && this.F != this.B; - case 6: - return !!ZJd(this); - case 7: - return !!this.A && this.A.i != 0; - } - return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.sh = function uKd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - lKd(this, GD(b)); - return; - case 2: - iKd(this, GD(b)); - return; - case 5: - kKd(this, GD(b)); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - !this.A && (this.A = new K4d(u5, this, 7)); - ytd(this.A, BD(b, 14)); - return; - } - did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b); - }; - _.zh = function vKd() { - return jGd(), RFd; - }; - _.Bh = function wKd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null); - pnd(this, null); - return; - case 2: - $Jd(this, null); - _Jd(this, this.D); - return; - case 5: - kKd(this, null); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - return; - } - eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.yj = function xKd() { - var a; - return this.G == -1 && (this.G = (a = bKd(this), a ? HLd(a.Mh(), this) : -1)), this.G; - }; - _.zj = function yKd() { - return null; - }; - _.Aj = function zKd() { - return bKd(this); - }; - _.vk = function AKd() { - return this.v; - }; - _.Bj = function BKd() { - return dKd(this); - }; - _.Cj = function CKd() { - return this.D != null ? this.D : this.B; - }; - _.Dj = function DKd() { - return this.F; - }; - _.wj = function EKd(a) { - return fKd(this, a); - }; - _.wk = function FKd(a) { - this.v = a; - }; - _.xk = function GKd(a) { - gKd(this, a); - }; - _.yk = function HKd(a) { - this.C = a; - }; - _.Lh = function IKd(a) { - lKd(this, a); - }; - _.Ib = function JKd() { - return mKd(this); - }; - _.C = null; - _.D = null; - _.G = -1; - var Z5 = mdb(qte, "EClassifierImpl", 351); - bcb(88, 351, { 105: 1, 92: 1, 90: 1, 26: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 88: 1, 351: 1, 150: 1, 473: 1, 114: 1, 115: 1, 676: 1 }, hLd); - _.uk = function iLd(a) { - return dLd(this, a.Tg()); - }; - _._g = function jLd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return this.D != null ? this.D : this.B; - case 3: - return dKd(this); - case 4: - return null; - case 5: - return this.F; - case 6: - if (b) - return bKd(this); - return ZJd(this); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), this.A; - case 8: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 9: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 10: - return _Kd(this); - case 11: - return !this.q && (this.q = new cUd(n5, this, 11, 10)), this.q; - case 12: - return OKd(this); - case 13: - return SKd(this); - case 14: - return SKd(this), this.r; - case 15: - return OKd(this), this.k; - case 16: - return PKd(this); - case 17: - return RKd(this); - case 18: - return TKd(this); - case 19: - return UKd(this); - case 20: - return OKd(this), this.o; - case 21: - return !this.s && (this.s = new cUd(t5, this, 21, 17)), this.s; - case 22: - return VKd(this); - case 23: - return QKd(this); - } - return bid(this, a - aLd((jGd(), QFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? QFd : d), a), b, c); - }; - _.hh = function kLd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 6: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? aKd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 6, c); - case 11: - return !this.q && (this.q = new cUd(n5, this, 11, 10)), Sxd(this.q, a, c); - case 21: - return !this.s && (this.s = new cUd(t5, this, 21, 17)), Sxd(this.s, a, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), QFd)), a, c); - }; - _.jh = function lLd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 6: - return _hd(this, null, 6, c); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c); - case 11: - return !this.q && (this.q = new cUd(n5, this, 11, 10)), Txd(this.q, a, c); - case 21: - return !this.s && (this.s = new cUd(t5, this, 21, 17)), Txd(this.s, a, c); - case 22: - return Txd(VKd(this), a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), QFd)), a, c); - }; - _.lh = function mLd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return this.D != null && this.D == this.F; - case 3: - return !!dKd(this); - case 4: - return false; - case 5: - return this.F != null && this.F != this.D && this.F != this.B; - case 6: - return !!ZJd(this); - case 7: - return !!this.A && this.A.i != 0; - case 8: - return (this.Bb & 256) != 0; - case 9: - return (this.Bb & 512) != 0; - case 10: - return !!this.u && VKd(this.u.a).i != 0 && !(!!this.n && FMd(this.n)); - case 11: - return !!this.q && this.q.i != 0; - case 12: - return OKd(this).i != 0; - case 13: - return SKd(this).i != 0; - case 14: - return SKd(this), this.r.i != 0; - case 15: - return OKd(this), this.k.i != 0; - case 16: - return PKd(this).i != 0; - case 17: - return RKd(this).i != 0; - case 18: - return TKd(this).i != 0; - case 19: - return UKd(this).i != 0; - case 20: - return OKd(this), !!this.o; - case 21: - return !!this.s && this.s.i != 0; - case 22: - return !!this.n && FMd(this.n); - case 23: - return QKd(this).i != 0; - } - return cid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a)); - }; - _.oh = function nLd(a) { - var b; - b = this.i == null || !!this.q && this.q.i != 0 ? null : YKd(this, a); - return b ? b : Bmd(this, a); - }; - _.sh = function oLd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - lKd(this, GD(b)); - return; - case 2: - iKd(this, GD(b)); - return; - case 5: - kKd(this, GD(b)); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - !this.A && (this.A = new K4d(u5, this, 7)); - ytd(this.A, BD(b, 14)); - return; - case 8: - eLd(this, Ccb(DD(b))); - return; - case 9: - fLd(this, Ccb(DD(b))); - return; - case 10: - vwd(_Kd(this)); - ytd(_Kd(this), BD(b, 14)); - return; - case 11: - !this.q && (this.q = new cUd(n5, this, 11, 10)); - Uxd(this.q); - !this.q && (this.q = new cUd(n5, this, 11, 10)); - ytd(this.q, BD(b, 14)); - return; - case 21: - !this.s && (this.s = new cUd(t5, this, 21, 17)); - Uxd(this.s); - !this.s && (this.s = new cUd(t5, this, 21, 17)); - ytd(this.s, BD(b, 14)); - return; - case 22: - Uxd(VKd(this)); - ytd(VKd(this), BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), QFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? QFd : c), a), b); - }; - _.zh = function pLd() { - return jGd(), QFd; - }; - _.Bh = function qLd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null); - pnd(this, null); - return; - case 2: - $Jd(this, null); - _Jd(this, this.D); - return; - case 5: - kKd(this, null); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - return; - case 8: - eLd(this, false); - return; - case 9: - fLd(this, false); - return; - case 10: - !!this.u && vwd(this.u); - return; - case 11: - !this.q && (this.q = new cUd(n5, this, 11, 10)); - Uxd(this.q); - return; - case 21: - !this.s && (this.s = new cUd(t5, this, 21, 17)); - Uxd(this.s); - return; - case 22: - !!this.n && Uxd(this.n); - return; - } - eid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a)); - }; - _.Gh = function rLd() { - var a, b; - OKd(this); - SKd(this); - PKd(this); - RKd(this); - TKd(this); - UKd(this); - QKd(this); - oud(SMd($Kd(this))); - if (this.s) { - for (a = 0, b = this.s.i; a < b; ++a) { - Cmd(qud(this.s, a)); - } - } - if (this.q) { - for (a = 0, b = this.q.i; a < b; ++a) { - Cmd(qud(this.q, a)); - } - } - o1d((O6d(), M6d), this).ne(); - this.Bb |= 1; - }; - _.Ib = function sLd() { - return gLd(this); - }; - _.k = null; - _.r = null; - var KKd, LKd, MKd; - var Y5 = mdb(qte, "EClassImpl", 88); - bcb(1994, 1993, Ove); - _.Vh = function tLd(a, b) { - return Pxd(this, a, b); - }; - _.Wh = function uLd(a) { - return Pxd(this, this.i, a); - }; - _.Xh = function vLd(a, b) { - Qxd(this, a, b); - }; - _.Yh = function wLd(a) { - Rxd(this, a); - }; - _.lk = function xLd(a, b) { - return Sxd(this, a, b); - }; - _.pi = function yLd(a) { - return nud(this, a); - }; - _.mk = function CLd(a, b) { - return Txd(this, a, b); - }; - _.mi = function DLd(a, b) { - return Zxd(this, a, b); - }; - _.Zh = function zLd() { - return new $yd(this); - }; - _.$h = function ALd() { - return new bzd(this); - }; - _._h = function BLd(a) { - return ztd(this, a); - }; - var P9 = mdb(yve, "NotifyingInternalEListImpl", 1994); - bcb(622, 1994, Pve); - _.Hc = function NLd(a) { - return ELd(this, a); - }; - _.Zi = function OLd(a, b, c, d, e) { - return FLd(this, a, b, c, d, e); - }; - _.$i = function PLd(a) { - GLd(this, a); - }; - _.Wj = function QLd(a) { - return this; - }; - _.ak = function RLd() { - return XKd(this.e.Tg(), this.aj()); - }; - _._i = function SLd() { - return this.ak(); - }; - _.aj = function TLd() { - return bLd(this.e.Tg(), this.ak()); - }; - _.zk = function ULd() { - return BD(this.ak().Yj(), 26).Bj(); - }; - _.Ak = function VLd() { - return zUd(BD(this.ak(), 18)).n; - }; - _.Ai = function WLd() { - return this.e; - }; - _.Bk = function XLd() { - return true; - }; - _.Ck = function YLd() { - return false; - }; - _.Dk = function ZLd() { - return false; - }; - _.Ek = function $Ld() { - return false; - }; - _.Xc = function _Ld(a) { - return HLd(this, a); - }; - _.cj = function aMd(a, b) { - var c; - return c = BD(a, 49), this.Dk() ? this.Bk() ? c.gh(this.e, this.Ak(), this.zk(), b) : c.gh(this.e, bLd(c.Tg(), zUd(BD(this.ak(), 18))), null, b) : c.gh(this.e, -1 - this.aj(), null, b); - }; - _.dj = function bMd(a, b) { - var c; - return c = BD(a, 49), this.Dk() ? this.Bk() ? c.ih(this.e, this.Ak(), this.zk(), b) : c.ih(this.e, bLd(c.Tg(), zUd(BD(this.ak(), 18))), null, b) : c.ih(this.e, -1 - this.aj(), null, b); - }; - _.rk = function cMd() { - return false; - }; - _.Fk = function dMd() { - return true; - }; - _.wj = function eMd(a) { - return qEd(this.d, a); - }; - _.ej = function fMd() { - return oid(this.e); - }; - _.fj = function gMd() { - return this.i != 0; - }; - _.ri = function hMd(a) { - return izd(this.d, a); - }; - _.li = function iMd(a, b) { - return this.Fk() && this.Ek() ? ILd(this, a, BD(b, 56)) : b; - }; - _.Gk = function jMd(a) { - return a.kh() ? xid(this.e, BD(a, 49)) : a; - }; - _.Wb = function kMd(a) { - JLd(this, a); - }; - _.Pc = function lMd() { - return KLd(this); - }; - _.Qc = function mMd(a) { - var b; - if (this.Ek()) { - for (b = this.i - 1; b >= 0; --b) { - qud(this, b); - } - } - return xud(this, a); - }; - _.Xj = function nMd() { - Uxd(this); - }; - _.oi = function oMd(a, b) { - return LLd(this, a, b); - }; - var t9 = mdb(yve, "EcoreEList", 622); - bcb(496, 622, Pve, pMd); - _.ai = function qMd() { - return false; - }; - _.aj = function rMd() { - return this.c; - }; - _.bj = function sMd() { - return false; - }; - _.Fk = function tMd() { - return true; - }; - _.hi = function uMd() { - return true; - }; - _.li = function vMd(a, b) { - return b; - }; - _.ni = function wMd() { - return false; - }; - _.c = 0; - var d9 = mdb(yve, "EObjectEList", 496); - bcb(85, 496, Pve, xMd); - _.bj = function yMd() { - return true; - }; - _.Dk = function zMd() { - return false; - }; - _.rk = function AMd() { - return true; - }; - var Z8 = mdb(yve, "EObjectContainmentEList", 85); - bcb(545, 85, Pve, BMd); - _.ci = function CMd() { - this.b = true; - }; - _.fj = function DMd() { - return this.b; - }; - _.Xj = function EMd() { - var a; - Uxd(this); - if (oid(this.e)) { - a = this.b; - this.b = false; - Uhd(this.e, new qSd(this.e, 2, this.c, a, false)); - } else { - this.b = false; - } - }; - _.b = false; - var Y8 = mdb(yve, "EObjectContainmentEList/Unsettable", 545); - bcb(1140, 545, Pve, JMd); - _.ii = function NMd(a, b) { - var c, d; - return c = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), SFd), meb(b), (d = c.c, JD(d, 88) ? BD(d, 26) : _Fd), a)), c; - }; - _.jj = function OMd(a, b) { - return GMd(this, BD(a, 87), b); - }; - _.kj = function PMd(a, b) { - return HMd(this, BD(a, 87), b); - }; - _.lj = function QMd(a, b, c) { - return IMd(this, BD(a, 87), BD(b, 87), c); - }; - _.Zi = function KMd(a, b, c, d, e) { - switch (a) { - case 3: { - return FLd(this, a, b, c, d, this.i > 1); - } - case 5: { - return FLd(this, a, b, c, d, this.i - BD(c, 15).gc() > 0); - } - default: { - return new pSd(this.e, a, this.c, b, c, d, true); - } - } - }; - _.ij = function LMd() { - return true; - }; - _.fj = function MMd() { - return FMd(this); - }; - _.Xj = function RMd() { - Uxd(this); - }; - var N5 = mdb(qte, "EClassImpl/1", 1140); - bcb(1154, 1153, dve); - _.ui = function VMd(a) { - var b, c, d, e, f, g10, h; - c = a.xi(); - if (c != 8) { - d = UMd(a); - if (d == 0) { - switch (c) { - case 1: - case 9: { - h = a.Bi(); - if (h != null) { - b = $Kd(BD(h, 473)); - !b.c && (b.c = new xYd()); - Ftd(b.c, a.Ai()); - } - g10 = a.zi(); - if (g10 != null) { - e = BD(g10, 473); - if ((e.Bb & 1) == 0) { - b = $Kd(e); - !b.c && (b.c = new xYd()); - wtd(b.c, BD(a.Ai(), 26)); - } - } - break; - } - case 3: { - g10 = a.zi(); - if (g10 != null) { - e = BD(g10, 473); - if ((e.Bb & 1) == 0) { - b = $Kd(e); - !b.c && (b.c = new xYd()); - wtd(b.c, BD(a.Ai(), 26)); - } - } - break; - } - case 5: { - g10 = a.zi(); - if (g10 != null) { - for (f = BD(g10, 14).Kc(); f.Ob(); ) { - e = BD(f.Pb(), 473); - if ((e.Bb & 1) == 0) { - b = $Kd(e); - !b.c && (b.c = new xYd()); - wtd(b.c, BD(a.Ai(), 26)); - } - } - } - break; - } - case 4: { - h = a.Bi(); - if (h != null) { - e = BD(h, 473); - if ((e.Bb & 1) == 0) { - b = $Kd(e); - !b.c && (b.c = new xYd()); - Ftd(b.c, a.Ai()); - } - } - break; - } - case 6: { - h = a.Bi(); - if (h != null) { - for (f = BD(h, 14).Kc(); f.Ob(); ) { - e = BD(f.Pb(), 473); - if ((e.Bb & 1) == 0) { - b = $Kd(e); - !b.c && (b.c = new xYd()); - Ftd(b.c, a.Ai()); - } - } - } - break; - } - } - } - this.Hk(d); - } - }; - _.Hk = function WMd(a) { - TMd(this, a); - }; - _.b = 63; - var p7 = mdb(qte, "ESuperAdapter", 1154); - bcb(1155, 1154, dve, YMd); - _.Hk = function ZMd(a) { - XMd(this, a); - }; - var I5 = mdb(qte, "EClassImpl/10", 1155); - bcb(1144, 696, Pve); - _.Vh = function $Md(a, b) { - return iud(this, a, b); - }; - _.Wh = function _Md(a) { - return jud(this, a); - }; - _.Xh = function aNd(a, b) { - kud(this, a, b); - }; - _.Yh = function bNd(a) { - lud(this, a); - }; - _.pi = function dNd(a) { - return nud(this, a); - }; - _.mi = function lNd(a, b) { - return uud(this, a, b); - }; - _.lk = function cNd(a, b) { - throw vbb(new bgb()); - }; - _.Zh = function eNd() { - return new $yd(this); - }; - _.$h = function fNd() { - return new bzd(this); - }; - _._h = function gNd(a) { - return ztd(this, a); - }; - _.mk = function hNd(a, b) { - throw vbb(new bgb()); - }; - _.Wj = function iNd(a) { - return this; - }; - _.fj = function jNd() { - return this.i != 0; - }; - _.Wb = function kNd(a) { - throw vbb(new bgb()); - }; - _.Xj = function mNd() { - throw vbb(new bgb()); - }; - var s9 = mdb(yve, "EcoreEList/UnmodifiableEList", 1144); - bcb(319, 1144, Pve, nNd); - _.ni = function oNd() { - return false; - }; - var r9 = mdb(yve, "EcoreEList/UnmodifiableEList/FastCompare", 319); - bcb(1147, 319, Pve, rNd); - _.Xc = function sNd(a) { - var b, c, d; - if (JD(a, 170)) { - b = BD(a, 170); - c = b.aj(); - if (c != -1) { - for (d = this.i; c < d; ++c) { - if (PD(this.g[c]) === PD(a)) { - return c; - } - } - } - } - return -1; - }; - var J5 = mdb(qte, "EClassImpl/1EAllStructuralFeaturesList", 1147); - bcb(1141, 497, oue, wNd); - _.ri = function xNd(a) { - return KC(j5, Tve, 87, a, 0, 1); - }; - _.ni = function yNd() { - return false; - }; - var K5 = mdb(qte, "EClassImpl/1EGenericSuperTypeEList", 1141); - bcb(623, 497, oue, zNd); - _.ri = function ANd(a) { - return KC(t5, Mve, 170, a, 0, 1); - }; - _.ni = function BNd() { - return false; - }; - var L5 = mdb(qte, "EClassImpl/1EStructuralFeatureUniqueEList", 623); - bcb(741, 497, oue, CNd); - _.ri = function DNd(a) { - return KC(q5, Mve, 18, a, 0, 1); - }; - _.ni = function ENd() { - return false; - }; - var M5 = mdb(qte, "EClassImpl/1ReferenceList", 741); - bcb(1142, 497, oue, GNd); - _.bi = function HNd(a, b) { - FNd(this, BD(b, 34)); - }; - _.ri = function INd(a) { - return KC(b5, Mve, 34, a, 0, 1); - }; - _.ni = function JNd() { - return false; - }; - var O5 = mdb(qte, "EClassImpl/2", 1142); - bcb(1143, 497, oue, KNd); - _.ri = function LNd(a) { - return KC(b5, Mve, 34, a, 0, 1); - }; - _.ni = function MNd() { - return false; - }; - var P5 = mdb(qte, "EClassImpl/3", 1143); - bcb(1145, 319, Pve, PNd); - _.Fc = function QNd(a) { - return NNd(this, BD(a, 34)); - }; - _.Yh = function RNd(a) { - ONd(this, BD(a, 34)); - }; - var Q5 = mdb(qte, "EClassImpl/4", 1145); - bcb(1146, 319, Pve, UNd); - _.Fc = function VNd(a) { - return SNd(this, BD(a, 18)); - }; - _.Yh = function WNd(a) { - TNd(this, BD(a, 18)); - }; - var R5 = mdb(qte, "EClassImpl/5", 1146); - bcb(1148, 497, oue, XNd); - _.ri = function YNd(a) { - return KC(n5, Nve, 59, a, 0, 1); - }; - _.ni = function ZNd() { - return false; - }; - var S5 = mdb(qte, "EClassImpl/6", 1148); - bcb(1149, 497, oue, $Nd); - _.ri = function _Nd(a) { - return KC(q5, Mve, 18, a, 0, 1); - }; - _.ni = function aOd() { - return false; - }; - var T5 = mdb(qte, "EClassImpl/7", 1149); - bcb(1997, 1996, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 69: 1 }); - _.Vh = function bOd(a, b) { - return qwd(this, a, b); - }; - _.Wh = function cOd(a) { - return qwd(this, this.Vi(), a); - }; - _.Xh = function dOd(a, b) { - rwd(this, a, b); - }; - _.Yh = function eOd(a) { - swd(this, a); - }; - _.lk = function fOd(a, b) { - return twd(this, a, b); - }; - _.mk = function lOd(a, b) { - return uwd(this, a, b); - }; - _.mi = function mOd(a, b) { - return wwd(this, a, b); - }; - _.pi = function gOd(a) { - return this.Oi(a); - }; - _.Zh = function hOd() { - return new $yd(this); - }; - _.Gi = function iOd() { - return this.Ji(); - }; - _.$h = function jOd() { - return new bzd(this); - }; - _._h = function kOd(a) { - return ztd(this, a); - }; - var L8 = mdb(yve, "DelegatingNotifyingInternalEListImpl", 1997); - bcb(742, 1997, Uve); - _.ai = function rOd() { - var a; - a = XKd(wjd(this.b), this.aj()).Yj(); - return JD(a, 148) && !JD(a, 457) && (a.Bj().i & 1) == 0; - }; - _.Hc = function sOd(a) { - var b, c, d, e, f, g10, h, i10; - if (this.Fk()) { - i10 = this.Vi(); - if (i10 > 4) { - if (this.wj(a)) { - if (this.rk()) { - d = BD(a, 49); - c = d.Ug(); - h = c == this.b && (this.Dk() ? d.Og(d.Vg(), BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj()) == zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n : -1 - d.Vg() == this.aj()); - if (this.Ek() && !h && !c && !!d.Zg()) { - for (e = 0; e < i10; ++e) { - b = oOd(this, this.Oi(e)); - if (PD(b) === PD(a)) { - return true; - } - } - } - return h; - } else if (this.Dk() && !this.Ck()) { - f = BD(a, 56).ah(zUd(BD(XKd(wjd(this.b), this.aj()), 18))); - if (PD(f) === PD(this.b)) { - return true; - } else if (f == null || !BD(f, 56).kh()) { - return false; - } - } - } else { - return false; - } - } - g10 = this.Li(a); - if (this.Ek() && !g10) { - for (e = 0; e < i10; ++e) { - d = oOd(this, this.Oi(e)); - if (PD(d) === PD(a)) { - return true; - } - } - } - return g10; - } else { - return this.Li(a); - } - }; - _.Zi = function tOd(a, b, c, d, e) { - return new pSd(this.b, a, this.aj(), b, c, d, e); - }; - _.$i = function uOd(a) { - Uhd(this.b, a); - }; - _.Wj = function vOd(a) { - return this; - }; - _._i = function wOd() { - return XKd(wjd(this.b), this.aj()); - }; - _.aj = function xOd() { - return bLd(wjd(this.b), XKd(wjd(this.b), this.aj())); - }; - _.Ai = function yOd() { - return this.b; - }; - _.Bk = function zOd() { - return !!XKd(wjd(this.b), this.aj()).Yj().Bj(); - }; - _.bj = function AOd() { - var a, b; - b = XKd(wjd(this.b), this.aj()); - if (JD(b, 99)) { - a = BD(b, 18); - return (a.Bb & ote) != 0 || !!zUd(BD(b, 18)); - } else { - return false; - } - }; - _.Ck = function BOd() { - var a, b, c, d; - b = XKd(wjd(this.b), this.aj()); - if (JD(b, 99)) { - a = BD(b, 18); - c = zUd(a); - return !!c && (d = c.t, d > 1 || d == -1); - } else { - return false; - } - }; - _.Dk = function COd() { - var a, b, c; - b = XKd(wjd(this.b), this.aj()); - if (JD(b, 99)) { - a = BD(b, 18); - c = zUd(a); - return !!c; - } else { - return false; - } - }; - _.Ek = function DOd() { - var a, b; - b = XKd(wjd(this.b), this.aj()); - if (JD(b, 99)) { - a = BD(b, 18); - return (a.Bb & Tje) != 0; - } else { - return false; - } - }; - _.Xc = function EOd(a) { - var b, c, d, e; - d = this.Qi(a); - if (d >= 0) - return d; - if (this.Fk()) { - for (c = 0, e = this.Vi(); c < e; ++c) { - b = oOd(this, this.Oi(c)); - if (PD(b) === PD(a)) { - return c; - } - } - } - return -1; - }; - _.cj = function FOd(a, b) { - var c; - return c = BD(a, 49), this.Dk() ? this.Bk() ? c.gh(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c.gh(this.b, bLd(c.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c.gh(this.b, -1 - this.aj(), null, b); - }; - _.dj = function GOd(a, b) { - var c; - return c = BD(a, 49), this.Dk() ? this.Bk() ? c.ih(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c.ih(this.b, bLd(c.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c.ih(this.b, -1 - this.aj(), null, b); - }; - _.rk = function HOd() { - var a, b; - b = XKd(wjd(this.b), this.aj()); - if (JD(b, 99)) { - a = BD(b, 18); - return (a.Bb & ote) != 0; - } else { - return false; - } - }; - _.Fk = function IOd() { - return JD(XKd(wjd(this.b), this.aj()).Yj(), 88); - }; - _.wj = function JOd(a) { - return XKd(wjd(this.b), this.aj()).Yj().wj(a); - }; - _.ej = function KOd() { - return oid(this.b); - }; - _.fj = function LOd() { - return !this.Ri(); - }; - _.hi = function MOd() { - return XKd(wjd(this.b), this.aj()).hi(); - }; - _.li = function NOd(a, b) { - return nOd(this, a, b); - }; - _.Wb = function OOd(a) { - vwd(this); - ytd(this, BD(a, 15)); - }; - _.Pc = function POd() { - var a; - if (this.Ek()) { - for (a = this.Vi() - 1; a >= 0; --a) { - nOd(this, a, this.Oi(a)); - } - } - return this.Wi(); - }; - _.Qc = function QOd(a) { - var b; - if (this.Ek()) { - for (b = this.Vi() - 1; b >= 0; --b) { - nOd(this, b, this.Oi(b)); - } - } - return this.Xi(a); - }; - _.Xj = function ROd() { - vwd(this); - }; - _.oi = function SOd(a, b) { - return pOd(this, a, b); - }; - var K8 = mdb(yve, "DelegatingEcoreEList", 742); - bcb(1150, 742, Uve, YOd); - _.Hi = function _Od(a, b) { - TOd(this, a, BD(b, 26)); - }; - _.Ii = function aPd(a) { - UOd(this, BD(a, 26)); - }; - _.Oi = function gPd(a) { - var b, c; - return b = BD(qud(VKd(this.a), a), 87), c = b.c, JD(c, 88) ? BD(c, 26) : (jGd(), _Fd); - }; - _.Ti = function lPd(a) { - var b, c; - return b = BD(Xxd(VKd(this.a), a), 87), c = b.c, JD(c, 88) ? BD(c, 26) : (jGd(), _Fd); - }; - _.Ui = function mPd(a, b) { - return WOd(this, a, BD(b, 26)); - }; - _.ai = function ZOd() { - return false; - }; - _.Zi = function $Od(a, b, c, d, e) { - return null; - }; - _.Ji = function bPd() { - return new EPd(this); - }; - _.Ki = function cPd() { - Uxd(VKd(this.a)); - }; - _.Li = function dPd(a) { - return VOd(this, a); - }; - _.Mi = function ePd(a) { - var b, c; - for (c = a.Kc(); c.Ob(); ) { - b = c.Pb(); - if (!VOd(this, b)) { - return false; - } - } - return true; - }; - _.Ni = function fPd(a) { - var b, c, d; - if (JD(a, 15)) { - d = BD(a, 15); - if (d.gc() == VKd(this.a).i) { - for (b = d.Kc(), c = new Fyd(this); b.Ob(); ) { - if (PD(b.Pb()) !== PD(Dyd(c))) { - return false; - } - } - return true; - } - } - return false; - }; - _.Pi = function hPd() { - var a, b, c, d, e; - c = 1; - for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 87); - d = (e = a.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)); - c = 31 * c + (!d ? 0 : FCb(d)); - } - return c; - }; - _.Qi = function iPd(a) { - var b, c, d, e; - d = 0; - for (c = new Fyd(VKd(this.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 87); - if (PD(a) === PD((e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)))) { - return d; - } - ++d; - } - return -1; - }; - _.Ri = function jPd() { - return VKd(this.a).i == 0; - }; - _.Si = function kPd() { - return null; - }; - _.Vi = function nPd() { - return VKd(this.a).i; - }; - _.Wi = function oPd() { - var a, b, c, d, e, f; - f = VKd(this.a).i; - e = KC(SI, Uhe, 1, f, 5, 1); - c = 0; - for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 87); - e[c++] = (d = a.c, JD(d, 88) ? BD(d, 26) : (jGd(), _Fd)); - } - return e; - }; - _.Xi = function pPd(a) { - var b, c, d, e, f, g10, h; - h = VKd(this.a).i; - if (a.length < h) { - e = izd(rb(a).c, h); - a = e; - } - a.length > h && NC(a, h, null); - d = 0; - for (c = new Fyd(VKd(this.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 87); - f = (g10 = b.c, JD(g10, 88) ? BD(g10, 26) : (jGd(), _Fd)); - NC(a, d++, f); - } - return a; - }; - _.Yi = function qPd() { - var a, b, c, d, e; - e = new Hfb(); - e.a += "["; - a = VKd(this.a); - for (b = 0, d = VKd(this.a).i; b < d; ) { - Efb(e, xfb((c = BD(qud(a, b), 87).c, JD(c, 88) ? BD(c, 26) : (jGd(), _Fd)))); - ++b < d && (e.a += She, e); - } - e.a += "]"; - return e.a; - }; - _.$i = function rPd(a) { - }; - _.aj = function sPd() { - return 10; - }; - _.Bk = function tPd() { - return true; - }; - _.bj = function uPd() { - return false; - }; - _.Ck = function vPd() { - return false; - }; - _.Dk = function wPd() { - return false; - }; - _.Ek = function xPd() { - return true; - }; - _.rk = function yPd() { - return false; - }; - _.Fk = function zPd() { - return true; - }; - _.wj = function APd(a) { - return JD(a, 88); - }; - _.fj = function BPd() { - return cLd(this.a); - }; - _.hi = function CPd() { - return true; - }; - _.ni = function DPd() { - return true; - }; - var V5 = mdb(qte, "EClassImpl/8", 1150); - bcb(1151, 1964, Lie, EPd); - _.Zc = function FPd(a) { - return ztd(this.a, a); - }; - _.gc = function GPd() { - return VKd(this.a.a).i; - }; - var U5 = mdb(qte, "EClassImpl/8/1", 1151); - bcb(1152, 497, oue, HPd); - _.ri = function IPd(a) { - return KC(d5, Uhe, 138, a, 0, 1); - }; - _.ni = function JPd() { - return false; - }; - var W5 = mdb(qte, "EClassImpl/9", 1152); - bcb(1139, 53, gke, KPd); - var X5 = mdb(qte, "EClassImpl/MyHashSet", 1139); - bcb(566, 351, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, MPd); - _._g = function NPd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return this.D != null ? this.D : this.B; - case 3: - return dKd(this); - case 4: - return this.zj(); - case 5: - return this.F; - case 6: - if (b) - return bKd(this); - return ZJd(this); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), this.A; - case 8: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - } - return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c); - }; - _.lh = function OPd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return this.D != null && this.D == this.F; - case 3: - return !!dKd(this); - case 4: - return this.zj() != null; - case 5: - return this.F != null && this.F != this.D && this.F != this.B; - case 6: - return !!ZJd(this); - case 7: - return !!this.A && this.A.i != 0; - case 8: - return (this.Bb & 256) == 0; - } - return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.sh = function PPd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - lKd(this, GD(b)); - return; - case 2: - iKd(this, GD(b)); - return; - case 5: - kKd(this, GD(b)); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - !this.A && (this.A = new K4d(u5, this, 7)); - ytd(this.A, BD(b, 14)); - return; - case 8: - LPd(this, Ccb(DD(b))); - return; - } - did(this, a - aLd(this.zh()), XKd((c = BD(Ajd(this, 16), 26), !c ? this.zh() : c), a), b); - }; - _.zh = function QPd() { - return jGd(), TFd; - }; - _.Bh = function RPd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null); - pnd(this, null); - return; - case 2: - $Jd(this, null); - _Jd(this, this.D); - return; - case 5: - kKd(this, null); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - return; - case 8: - LPd(this, true); - return; - } - eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a)); - }; - _.Gh = function SPd() { - o1d((O6d(), M6d), this).ne(); - this.Bb |= 1; - }; - _.Fj = function TPd() { - var a, b, c; - if (!this.c) { - a = l6d(bKd(this)); - if (!a.dc()) { - for (c = a.Kc(); c.Ob(); ) { - b = GD(c.Pb()); - !!Dmd(this, b) && k6d(this); - } - } - } - return this.b; - }; - _.zj = function UPd() { - var b; - if (!this.e) { - b = null; - try { - b = dKd(this); - } catch (a) { - a = ubb(a); - if (!JD(a, 102)) - throw vbb(a); - } - this.d = null; - !!b && (b.i & 1) != 0 && (b == sbb ? this.d = (Bcb(), zcb) : b == WD ? this.d = meb(0) : b == VD ? this.d = new Ndb(0) : b == UD ? this.d = 0 : b == XD ? this.d = Aeb(0) : b == rbb ? this.d = Web(0) : b == SD ? this.d = Scb(0) : this.d = bdb(0)); - this.e = true; - } - return this.d; - }; - _.Ej = function VPd() { - return (this.Bb & 256) != 0; - }; - _.Ik = function WPd(a) { - a && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator"); - }; - _.xk = function XPd(a) { - gKd(this, a); - this.Ik(a); - }; - _.yk = function YPd(a) { - this.C = a; - this.e = false; - }; - _.Ib = function ZPd() { - var a; - if ((this.Db & 64) != 0) - return mKd(this); - a = new Jfb(mKd(this)); - a.a += " (serializable: "; - Ffb(a, (this.Bb & 256) != 0); - a.a += ")"; - return a.a; - }; - _.c = false; - _.d = null; - _.e = false; - var $5 = mdb(qte, "EDataTypeImpl", 566); - bcb(457, 566, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 671: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 457: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, aQd); - _._g = function bQd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return this.D != null ? this.D : this.B; - case 3: - return dKd(this); - case 4: - return $Pd(this); - case 5: - return this.F; - case 6: - if (b) - return bKd(this); - return ZJd(this); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), this.A; - case 8: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 9: - return !this.a && (this.a = new cUd(g5, this, 9, 5)), this.a; - } - return bid(this, a - aLd((jGd(), UFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? UFd : d), a), b, c); - }; - _.hh = function cQd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 6: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? aKd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 6, c); - case 9: - return !this.a && (this.a = new cUd(g5, this, 9, 5)), Sxd(this.a, a, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), UFd)), a, c); - }; - _.jh = function dQd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 6: - return _hd(this, null, 6, c); - case 7: - return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c); - case 9: - return !this.a && (this.a = new cUd(g5, this, 9, 5)), Txd(this.a, a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), UFd)), a, c); - }; - _.lh = function eQd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return this.D != null && this.D == this.F; - case 3: - return !!dKd(this); - case 4: - return !!$Pd(this); - case 5: - return this.F != null && this.F != this.D && this.F != this.B; - case 6: - return !!ZJd(this); - case 7: - return !!this.A && this.A.i != 0; - case 8: - return (this.Bb & 256) == 0; - case 9: - return !!this.a && this.a.i != 0; - } - return cid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a)); - }; - _.sh = function fQd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - lKd(this, GD(b)); - return; - case 2: - iKd(this, GD(b)); - return; - case 5: - kKd(this, GD(b)); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - !this.A && (this.A = new K4d(u5, this, 7)); - ytd(this.A, BD(b, 14)); - return; - case 8: - LPd(this, Ccb(DD(b))); - return; - case 9: - !this.a && (this.a = new cUd(g5, this, 9, 5)); - Uxd(this.a); - !this.a && (this.a = new cUd(g5, this, 9, 5)); - ytd(this.a, BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), UFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? UFd : c), a), b); - }; - _.zh = function gQd() { - return jGd(), UFd; - }; - _.Bh = function hQd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null); - pnd(this, null); - return; - case 2: - $Jd(this, null); - _Jd(this, this.D); - return; - case 5: - kKd(this, null); - return; - case 7: - !this.A && (this.A = new K4d(u5, this, 7)); - Uxd(this.A); - return; - case 8: - LPd(this, true); - return; - case 9: - !this.a && (this.a = new cUd(g5, this, 9, 5)); - Uxd(this.a); - return; - } - eid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a)); - }; - _.Gh = function iQd() { - var a, b; - if (this.a) { - for (a = 0, b = this.a.i; a < b; ++a) { - Cmd(qud(this.a, a)); - } - } - o1d((O6d(), M6d), this).ne(); - this.Bb |= 1; - }; - _.zj = function jQd() { - return $Pd(this); - }; - _.wj = function kQd(a) { - if (a != null) { - return true; - } - return false; - }; - _.Ik = function lQd(a) { - }; - var _5 = mdb(qte, "EEnumImpl", 457); - bcb(573, 438, { 105: 1, 92: 1, 90: 1, 1940: 1, 678: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 573: 1, 150: 1, 114: 1, 115: 1 }, rQd); - _.ne = function AQd() { - return this.zb; - }; - _.Qg = function sQd(a) { - return mQd(this, a); - }; - _._g = function tQd(a, b, c) { - var d, e; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return meb(this.d); - case 3: - return this.b ? this.b : this.a; - case 4: - return e = this.c, e == null ? this.zb : e; - case 5: - return this.Db >> 16 == 5 ? BD(this.Cb, 671) : null; - } - return bid(this, a - aLd((jGd(), VFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? VFd : d), a), b, c); - }; - _.hh = function uQd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 5: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? mQd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 5, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), VFd)), a, c); - }; - _.jh = function vQd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 5: - return _hd(this, null, 5, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), VFd)), a, c); - }; - _.lh = function wQd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return this.d != 0; - case 3: - return !!this.b; - case 4: - return this.c != null; - case 5: - return !!(this.Db >> 16 == 5 ? BD(this.Cb, 671) : null); - } - return cid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a)); - }; - _.sh = function xQd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - pnd(this, GD(b)); - return; - case 2: - qQd(this, BD(b, 19).a); - return; - case 3: - oQd(this, BD(b, 1940)); - return; - case 4: - pQd(this, GD(b)); - return; - } - did(this, a - aLd((jGd(), VFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? VFd : c), a), b); - }; - _.zh = function yQd() { - return jGd(), VFd; - }; - _.Bh = function zQd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - pnd(this, null); - return; - case 2: - qQd(this, 0); - return; - case 3: - oQd(this, null); - return; - case 4: - pQd(this, null); - return; - } - eid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a)); - }; - _.Ib = function BQd() { - var a; - return a = this.c, a == null ? this.zb : a; - }; - _.b = null; - _.c = null; - _.d = 0; - var a6 = mdb(qte, "EEnumLiteralImpl", 573); - var c6 = odb(qte, "EFactoryImpl/InternalEDateTimeFormat"); - bcb(489, 1, { 2015: 1 }, EQd); - var b6 = mdb(qte, "EFactoryImpl/1ClientInternalEDateTimeFormat", 489); - bcb(241, 115, { 105: 1, 92: 1, 90: 1, 87: 1, 56: 1, 108: 1, 49: 1, 97: 1, 241: 1, 114: 1, 115: 1 }, UQd); - _.Sg = function VQd(a, b, c) { - var d; - c = _hd(this, a, b, c); - if (!!this.e && JD(a, 170)) { - d = MQd(this, this.e); - d != this.c && (c = QQd(this, d, c)); - } - return c; - }; - _._g = function WQd(a, b, c) { - var d; - switch (a) { - case 0: - return this.f; - case 1: - return !this.d && (this.d = new xMd(j5, this, 1)), this.d; - case 2: - if (b) - return KQd(this); - return this.c; - case 3: - return this.b; - case 4: - return this.e; - case 5: - if (b) - return JQd(this); - return this.a; - } - return bid(this, a - aLd((jGd(), XFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? XFd : d), a), b, c); - }; - _.jh = function XQd(a, b, c) { - var d, e; - switch (b) { - case 0: - return IQd(this, null, c); - case 1: - return !this.d && (this.d = new xMd(j5, this, 1)), Txd(this.d, a, c); - case 3: - return GQd(this, null, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), XFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), XFd)), a, c); - }; - _.lh = function YQd(a) { - var b; - switch (a) { - case 0: - return !!this.f; - case 1: - return !!this.d && this.d.i != 0; - case 2: - return !!this.c; - case 3: - return !!this.b; - case 4: - return !!this.e; - case 5: - return !!this.a; - } - return cid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a)); - }; - _.sh = function ZQd(a, b) { - var c; - switch (a) { - case 0: - SQd(this, BD(b, 87)); - return; - case 1: - !this.d && (this.d = new xMd(j5, this, 1)); - Uxd(this.d); - !this.d && (this.d = new xMd(j5, this, 1)); - ytd(this.d, BD(b, 14)); - return; - case 3: - PQd(this, BD(b, 87)); - return; - case 4: - RQd(this, BD(b, 836)); - return; - case 5: - NQd(this, BD(b, 138)); - return; - } - did(this, a - aLd((jGd(), XFd)), XKd((c = BD(Ajd(this, 16), 26), !c ? XFd : c), a), b); - }; - _.zh = function $Qd() { - return jGd(), XFd; - }; - _.Bh = function _Qd(a) { - var b; - switch (a) { - case 0: - SQd(this, null); - return; - case 1: - !this.d && (this.d = new xMd(j5, this, 1)); - Uxd(this.d); - return; - case 3: - PQd(this, null); - return; - case 4: - RQd(this, null); - return; - case 5: - NQd(this, null); - return; - } - eid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a)); - }; - _.Ib = function aRd() { - var a; - a = new Wfb(Eid(this)); - a.a += " (expression: "; - TQd(this, a); - a.a += ")"; - return a.a; - }; - var FQd; - var e6 = mdb(qte, "EGenericTypeImpl", 241); - bcb(1969, 1964, Vve); - _.Xh = function cRd(a, b) { - bRd(this, a, b); - }; - _.lk = function dRd(a, b) { - bRd(this, this.gc(), a); - return b; - }; - _.pi = function eRd(a) { - return Ut(this.Gi(), a); - }; - _.Zh = function fRd() { - return this.$h(); - }; - _.Gi = function gRd() { - return new O0d(this); - }; - _.$h = function hRd() { - return this._h(0); - }; - _._h = function iRd(a) { - return this.Gi().Zc(a); - }; - _.mk = function jRd(a, b) { - ze(this, a, true); - return b; - }; - _.ii = function kRd(a, b) { - var c, d; - d = Vt(this, b); - c = this.Zc(a); - c.Rb(d); - return d; - }; - _.ji = function lRd(a, b) { - var c; - ze(this, b, true); - c = this.Zc(a); - c.Rb(b); - }; - var B8 = mdb(yve, "AbstractSequentialInternalEList", 1969); - bcb(486, 1969, Vve, qRd); - _.pi = function rRd(a) { - return Ut(this.Gi(), a); - }; - _.Zh = function sRd() { - if (this.b == null) { - return LRd(), LRd(), KRd; - } - return this.Jk(); - }; - _.Gi = function tRd() { - return new w4d(this.a, this.b); - }; - _.$h = function uRd() { - if (this.b == null) { - return LRd(), LRd(), KRd; - } - return this.Jk(); - }; - _._h = function vRd(a) { - var b, c; - if (this.b == null) { - if (a < 0 || a > 1) { - throw vbb(new qcb(gve + a + ", size=0")); - } - return LRd(), LRd(), KRd; - } - c = this.Jk(); - for (b = 0; b < a; ++b) { - MRd(c); - } - return c; - }; - _.dc = function wRd() { - var a, b, c, d, e, f; - if (this.b != null) { - for (c = 0; c < this.b.length; ++c) { - a = this.b[c]; - if (!this.Mk() || this.a.mh(a)) { - f = this.a.bh(a, false); - Q6d(); - if (BD(a, 66).Oj()) { - b = BD(f, 153); - for (d = 0, e = b.gc(); d < e; ++d) { - if (oRd(b.il(d)) && b.jl(d) != null) { - return false; - } - } - } else if (a.$j()) { - if (!BD(f, 14).dc()) { - return false; - } - } else if (f != null) { - return false; - } - } - } - } - return true; - }; - _.Kc = function xRd() { - return pRd(this); - }; - _.Zc = function yRd(a) { - var b, c; - if (this.b == null) { - if (a != 0) { - throw vbb(new qcb(gve + a + ", size=0")); - } - return LRd(), LRd(), KRd; - } - c = this.Lk() ? this.Kk() : this.Jk(); - for (b = 0; b < a; ++b) { - MRd(c); - } - return c; - }; - _.ii = function zRd(a, b) { - throw vbb(new bgb()); - }; - _.ji = function ARd(a, b) { - throw vbb(new bgb()); - }; - _.Jk = function BRd() { - return new RRd(this.a, this.b); - }; - _.Kk = function CRd() { - return new dSd(this.a, this.b); - }; - _.Lk = function DRd() { - return true; - }; - _.gc = function ERd() { - var a, b, c, d, e, f, g10; - e = 0; - if (this.b != null) { - for (c = 0; c < this.b.length; ++c) { - a = this.b[c]; - if (!this.Mk() || this.a.mh(a)) { - g10 = this.a.bh(a, false); - Q6d(); - if (BD(a, 66).Oj()) { - b = BD(g10, 153); - for (d = 0, f = b.gc(); d < f; ++d) { - oRd(b.il(d)) && b.jl(d) != null && ++e; - } - } else - a.$j() ? e += BD(g10, 14).gc() : g10 != null && ++e; - } - } - } - return e; - }; - _.Mk = function FRd() { - return true; - }; - var mRd; - var R8 = mdb(yve, "EContentsEList", 486); - bcb(1156, 486, Vve, GRd); - _.Jk = function HRd() { - return new hSd(this.a, this.b); - }; - _.Kk = function IRd() { - return new fSd(this.a, this.b); - }; - _.Mk = function JRd() { - return false; - }; - var i6 = mdb(qte, "ENamedElementImpl/1", 1156); - bcb(279, 1, Wve, RRd); - _.Nb = function URd(a) { - Rrb(this, a); - }; - _.Rb = function SRd(a) { - throw vbb(new bgb()); - }; - _.Nk = function TRd(a) { - if (this.g != 0 || !!this.e) { - throw vbb(new Zdb("Iterator already in use or already filtered")); - } - this.e = a; - }; - _.Ob = function VRd() { - var a, b, c, d, e, f; - switch (this.g) { - case 3: - case 2: { - return true; - } - case 1: { - return false; - } - case -3: { - !this.p ? ++this.n : this.p.Pb(); - } - default: { - if (!this.k || (!this.p ? !NRd(this) : !ORd(this, this.p))) { - while (this.d < this.c.length) { - b = this.c[this.d++]; - if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) { - f = this.b.bh(b, this.Lk()); - this.f = (Q6d(), BD(b, 66).Oj()); - if (this.f || b.$j()) { - if (this.Lk()) { - d = BD(f, 15); - this.k = d; - } else { - d = BD(f, 69); - this.k = this.j = d; - } - if (JD(this.k, 54)) { - this.p = null; - this.o = this.k.gc(); - this.n = 0; - } else { - this.p = !this.j ? this.k.Yc() : this.j.$h(); - } - if (!this.p ? NRd(this) : ORd(this, this.p)) { - e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb(); - if (this.f) { - a = BD(e, 72); - a.ak(); - c = a.dd(); - this.i = c; - } else { - c = e; - this.i = c; - } - this.g = 3; - return true; - } - } else if (f != null) { - this.k = null; - this.p = null; - c = f; - this.i = c; - this.g = 2; - return true; - } - } - } - this.k = null; - this.p = null; - this.f = false; - this.g = 1; - return false; - } else { - e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb(); - if (this.f) { - a = BD(e, 72); - a.ak(); - c = a.dd(); - this.i = c; - } else { - c = e; - this.i = c; - } - this.g = 3; - return true; - } - } - } - }; - _.Sb = function WRd() { - var a, b, c, d, e, f; - switch (this.g) { - case -3: - case -2: { - return true; - } - case -1: { - return false; - } - case 3: { - !this.p ? --this.n : this.p.Ub(); - } - default: { - if (!this.k || (!this.p ? !PRd(this) : !QRd(this, this.p))) { - while (this.d > 0) { - b = this.c[--this.d]; - if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) { - f = this.b.bh(b, this.Lk()); - this.f = (Q6d(), BD(b, 66).Oj()); - if (this.f || b.$j()) { - if (this.Lk()) { - d = BD(f, 15); - this.k = d; - } else { - d = BD(f, 69); - this.k = this.j = d; - } - if (JD(this.k, 54)) { - this.o = this.k.gc(); - this.n = this.o; - } else { - this.p = !this.j ? this.k.Zc(this.k.gc()) : this.j._h(this.k.gc()); - } - if (!this.p ? PRd(this) : QRd(this, this.p)) { - e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub(); - if (this.f) { - a = BD(e, 72); - a.ak(); - c = a.dd(); - this.i = c; - } else { - c = e; - this.i = c; - } - this.g = -3; - return true; - } - } else if (f != null) { - this.k = null; - this.p = null; - c = f; - this.i = c; - this.g = -2; - return true; - } - } - } - this.k = null; - this.p = null; - this.g = -1; - return false; - } else { - e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub(); - if (this.f) { - a = BD(e, 72); - a.ak(); - c = a.dd(); - this.i = c; - } else { - c = e; - this.i = c; - } - this.g = -3; - return true; - } - } - } - }; - _.Pb = function XRd() { - return MRd(this); - }; - _.Tb = function YRd() { - return this.a; - }; - _.Ub = function ZRd() { - var a; - if (this.g < -1 || this.Sb()) { - --this.a; - this.g = 0; - a = this.i; - this.Sb(); - return a; - } else { - throw vbb(new utb()); - } - }; - _.Vb = function $Rd() { - return this.a - 1; - }; - _.Qb = function _Rd() { - throw vbb(new bgb()); - }; - _.Lk = function aSd() { - return false; - }; - _.Wb = function bSd(a) { - throw vbb(new bgb()); - }; - _.Mk = function cSd() { - return true; - }; - _.a = 0; - _.d = 0; - _.f = false; - _.g = 0; - _.n = 0; - _.o = 0; - var KRd; - var P8 = mdb(yve, "EContentsEList/FeatureIteratorImpl", 279); - bcb(697, 279, Wve, dSd); - _.Lk = function eSd() { - return true; - }; - var Q8 = mdb(yve, "EContentsEList/ResolvingFeatureIteratorImpl", 697); - bcb(1157, 697, Wve, fSd); - _.Mk = function gSd() { - return false; - }; - var g6 = mdb(qte, "ENamedElementImpl/1/1", 1157); - bcb(1158, 279, Wve, hSd); - _.Mk = function iSd() { - return false; - }; - var h6 = mdb(qte, "ENamedElementImpl/1/2", 1158); - bcb(36, 143, fve, lSd, mSd, nSd, oSd, pSd, qSd, rSd, sSd, tSd, uSd, vSd, wSd, xSd, ySd, zSd, ASd, BSd, CSd, DSd, ESd, FSd, GSd, HSd, ISd, JSd); - _._i = function KSd() { - return kSd(this); - }; - _.gj = function LSd() { - var a; - a = kSd(this); - if (a) { - return a.zj(); - } - return null; - }; - _.yi = function MSd(a) { - this.b == -1 && !!this.a && (this.b = this.c.Xg(this.a.aj(), this.a.Gj())); - return this.c.Og(this.b, a); - }; - _.Ai = function NSd() { - return this.c; - }; - _.hj = function OSd() { - var a; - a = kSd(this); - if (a) { - return a.Kj(); - } - return false; - }; - _.b = -1; - var k6 = mdb(qte, "ENotificationImpl", 36); - bcb(399, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 59: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 399: 1, 284: 1, 114: 1, 115: 1 }, SSd); - _.Qg = function TSd(a) { - return PSd(this, a); - }; - _._g = function USd(a, b, c) { - var d, e, f; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 3: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 4: - return meb(this.s); - case 5: - return meb(this.t); - case 6: - return Bcb(), f = this.t, f > 1 || f == -1 ? true : false; - case 7: - return Bcb(), e = this.s, e >= 1 ? true : false; - case 8: - if (b) - return wId(this); - return this.r; - case 9: - return this.q; - case 10: - return this.Db >> 16 == 10 ? BD(this.Cb, 26) : null; - case 11: - return !this.d && (this.d = new K4d(u5, this, 11)), this.d; - case 12: - return !this.c && (this.c = new cUd(p5, this, 12, 10)), this.c; - case 13: - return !this.a && (this.a = new fTd(this, this)), this.a; - case 14: - return QSd(this); - } - return bid(this, a - aLd((jGd(), aGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? aGd : d), a), b, c); - }; - _.hh = function VSd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 10: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? PSd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 10, c); - case 12: - return !this.c && (this.c = new cUd(p5, this, 12, 10)), Sxd(this.c, a, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), aGd)), a, c); - }; - _.jh = function WSd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 9: - return vId(this, c); - case 10: - return _hd(this, null, 10, c); - case 11: - return !this.d && (this.d = new K4d(u5, this, 11)), Txd(this.d, a, c); - case 12: - return !this.c && (this.c = new cUd(p5, this, 12, 10)), Txd(this.c, a, c); - case 14: - return Txd(QSd(this), a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), aGd)), a, c); - }; - _.lh = function XSd(a) { - var b, c, d; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return (this.Bb & 256) == 0; - case 3: - return (this.Bb & 512) == 0; - case 4: - return this.s != 0; - case 5: - return this.t != 1; - case 6: - return d = this.t, d > 1 || d == -1; - case 7: - return c = this.s, c >= 1; - case 8: - return !!this.r && !this.q.e && LQd(this.q).i == 0; - case 9: - return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0); - case 10: - return !!(this.Db >> 16 == 10 ? BD(this.Cb, 26) : null); - case 11: - return !!this.d && this.d.i != 0; - case 12: - return !!this.c && this.c.i != 0; - case 13: - return !!this.a && QSd(this.a.a).i != 0 && !(!!this.b && QTd(this.b)); - case 14: - return !!this.b && QTd(this.b); - } - return cid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a)); - }; - _.sh = function YSd(a, b) { - var c, d; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - pnd(this, GD(b)); - return; - case 2: - BId(this, Ccb(DD(b))); - return; - case 3: - CId(this, Ccb(DD(b))); - return; - case 4: - AId(this, BD(b, 19).a); - return; - case 5: - DId(this, BD(b, 19).a); - return; - case 8: - yId(this, BD(b, 138)); - return; - case 9: - d = xId(this, BD(b, 87), null); - !!d && d.Fi(); - return; - case 11: - !this.d && (this.d = new K4d(u5, this, 11)); - Uxd(this.d); - !this.d && (this.d = new K4d(u5, this, 11)); - ytd(this.d, BD(b, 14)); - return; - case 12: - !this.c && (this.c = new cUd(p5, this, 12, 10)); - Uxd(this.c); - !this.c && (this.c = new cUd(p5, this, 12, 10)); - ytd(this.c, BD(b, 14)); - return; - case 13: - !this.a && (this.a = new fTd(this, this)); - vwd(this.a); - !this.a && (this.a = new fTd(this, this)); - ytd(this.a, BD(b, 14)); - return; - case 14: - Uxd(QSd(this)); - ytd(QSd(this), BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), aGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? aGd : c), a), b); - }; - _.zh = function ZSd() { - return jGd(), aGd; - }; - _.Bh = function $Sd(a) { - var b, c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - pnd(this, null); - return; - case 2: - BId(this, true); - return; - case 3: - CId(this, true); - return; - case 4: - AId(this, 0); - return; - case 5: - DId(this, 1); - return; - case 8: - yId(this, null); - return; - case 9: - c = xId(this, null, null); - !!c && c.Fi(); - return; - case 11: - !this.d && (this.d = new K4d(u5, this, 11)); - Uxd(this.d); - return; - case 12: - !this.c && (this.c = new cUd(p5, this, 12, 10)); - Uxd(this.c); - return; - case 13: - !!this.a && vwd(this.a); - return; - case 14: - !!this.b && Uxd(this.b); - return; - } - eid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a)); - }; - _.Gh = function _Sd() { - var a, b; - if (this.c) { - for (a = 0, b = this.c.i; a < b; ++a) { - Cmd(qud(this.c, a)); - } - } - wId(this); - this.Bb |= 1; - }; - var p6 = mdb(qte, "EOperationImpl", 399); - bcb(505, 742, Uve, fTd); - _.Hi = function iTd(a, b) { - aTd(this, a, BD(b, 138)); - }; - _.Ii = function jTd(a) { - bTd(this, BD(a, 138)); - }; - _.Oi = function pTd(a) { - var b, c; - return b = BD(qud(QSd(this.a), a), 87), c = b.c, c ? c : (jGd(), YFd); - }; - _.Ti = function uTd(a) { - var b, c; - return b = BD(Xxd(QSd(this.a), a), 87), c = b.c, c ? c : (jGd(), YFd); - }; - _.Ui = function vTd(a, b) { - return dTd(this, a, BD(b, 138)); - }; - _.ai = function gTd() { - return false; - }; - _.Zi = function hTd(a, b, c, d, e) { - return null; - }; - _.Ji = function kTd() { - return new NTd(this); - }; - _.Ki = function lTd() { - Uxd(QSd(this.a)); - }; - _.Li = function mTd(a) { - return cTd(this, a); - }; - _.Mi = function nTd(a) { - var b, c; - for (c = a.Kc(); c.Ob(); ) { - b = c.Pb(); - if (!cTd(this, b)) { - return false; - } - } - return true; - }; - _.Ni = function oTd(a) { - var b, c, d; - if (JD(a, 15)) { - d = BD(a, 15); - if (d.gc() == QSd(this.a).i) { - for (b = d.Kc(), c = new Fyd(this); b.Ob(); ) { - if (PD(b.Pb()) !== PD(Dyd(c))) { - return false; - } - } - return true; - } - } - return false; - }; - _.Pi = function qTd() { - var a, b, c, d, e; - c = 1; - for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 87); - d = (e = a.c, e ? e : (jGd(), YFd)); - c = 31 * c + (!d ? 0 : tb(d)); - } - return c; - }; - _.Qi = function rTd(a) { - var b, c, d, e; - d = 0; - for (c = new Fyd(QSd(this.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 87); - if (PD(a) === PD((e = b.c, e ? e : (jGd(), YFd)))) { - return d; - } - ++d; - } - return -1; - }; - _.Ri = function sTd() { - return QSd(this.a).i == 0; - }; - _.Si = function tTd() { - return null; - }; - _.Vi = function wTd() { - return QSd(this.a).i; - }; - _.Wi = function xTd() { - var a, b, c, d, e, f; - f = QSd(this.a).i; - e = KC(SI, Uhe, 1, f, 5, 1); - c = 0; - for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) { - a = BD(Dyd(b), 87); - e[c++] = (d = a.c, d ? d : (jGd(), YFd)); - } - return e; - }; - _.Xi = function yTd(a) { - var b, c, d, e, f, g10, h; - h = QSd(this.a).i; - if (a.length < h) { - e = izd(rb(a).c, h); - a = e; - } - a.length > h && NC(a, h, null); - d = 0; - for (c = new Fyd(QSd(this.a)); c.e != c.i.gc(); ) { - b = BD(Dyd(c), 87); - f = (g10 = b.c, g10 ? g10 : (jGd(), YFd)); - NC(a, d++, f); - } - return a; - }; - _.Yi = function zTd() { - var a, b, c, d, e; - e = new Hfb(); - e.a += "["; - a = QSd(this.a); - for (b = 0, d = QSd(this.a).i; b < d; ) { - Efb(e, xfb((c = BD(qud(a, b), 87).c, c ? c : (jGd(), YFd)))); - ++b < d && (e.a += She, e); - } - e.a += "]"; - return e.a; - }; - _.$i = function ATd(a) { - }; - _.aj = function BTd() { - return 13; - }; - _.Bk = function CTd() { - return true; - }; - _.bj = function DTd() { - return false; - }; - _.Ck = function ETd() { - return false; - }; - _.Dk = function FTd() { - return false; - }; - _.Ek = function GTd() { - return true; - }; - _.rk = function HTd() { - return false; - }; - _.Fk = function ITd() { - return true; - }; - _.wj = function JTd(a) { - return JD(a, 138); - }; - _.fj = function KTd() { - return RSd(this.a); - }; - _.hi = function LTd() { - return true; - }; - _.ni = function MTd() { - return true; - }; - var n6 = mdb(qte, "EOperationImpl/1", 505); - bcb(1340, 1964, Lie, NTd); - _.Zc = function OTd(a) { - return ztd(this.a, a); - }; - _.gc = function PTd() { - return QSd(this.a.a).i; - }; - var m6 = mdb(qte, "EOperationImpl/1/1", 1340); - bcb(1341, 545, Pve, UTd); - _.ii = function YTd(a, b) { - var c, d; - return c = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), bGd), meb(b), (d = c.c, d ? d : YFd), a)), c; - }; - _.jj = function ZTd(a, b) { - return RTd(this, BD(a, 87), b); - }; - _.kj = function $Td(a, b) { - return STd(this, BD(a, 87), b); - }; - _.lj = function _Td(a, b, c) { - return TTd(this, BD(a, 87), BD(b, 87), c); - }; - _.Zi = function VTd(a, b, c, d, e) { - switch (a) { - case 3: { - return FLd(this, a, b, c, d, this.i > 1); - } - case 5: { - return FLd(this, a, b, c, d, this.i - BD(c, 15).gc() > 0); - } - default: { - return new pSd(this.e, a, this.c, b, c, d, true); - } - } - }; - _.ij = function WTd() { - return true; - }; - _.fj = function XTd() { - return QTd(this); - }; - _.Xj = function aUd() { - Uxd(this); - }; - var o6 = mdb(qte, "EOperationImpl/2", 1341); - bcb(498, 1, { 1938: 1, 498: 1 }, bUd); - var q6 = mdb(qte, "EPackageImpl/1", 498); - bcb(16, 85, Pve, cUd); - _.zk = function dUd() { - return this.d; - }; - _.Ak = function eUd() { - return this.b; - }; - _.Dk = function fUd() { - return true; - }; - _.b = 0; - var b9 = mdb(yve, "EObjectContainmentWithInverseEList", 16); - bcb(353, 16, Pve, gUd); - _.Ek = function hUd() { - return true; - }; - _.li = function iUd(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var $8 = mdb(yve, "EObjectContainmentWithInverseEList/Resolving", 353); - bcb(298, 353, Pve, jUd); - _.ci = function kUd() { - this.a.tb = null; - }; - var r6 = mdb(qte, "EPackageImpl/2", 298); - bcb(1228, 1, {}, lUd); - var s6 = mdb(qte, "EPackageImpl/3", 1228); - bcb(718, 43, fke, oUd); - _._b = function pUd(a) { - return ND(a) ? Qhb(this, a) : !!irb(this.f, a); - }; - var u6 = mdb(qte, "EPackageRegistryImpl", 718); - bcb(509, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 2017: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 509: 1, 284: 1, 114: 1, 115: 1 }, rUd); - _.Qg = function sUd(a) { - return qUd(this, a); - }; - _._g = function tUd(a, b, c) { - var d, e, f; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 3: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 4: - return meb(this.s); - case 5: - return meb(this.t); - case 6: - return Bcb(), f = this.t, f > 1 || f == -1 ? true : false; - case 7: - return Bcb(), e = this.s, e >= 1 ? true : false; - case 8: - if (b) - return wId(this); - return this.r; - case 9: - return this.q; - case 10: - return this.Db >> 16 == 10 ? BD(this.Cb, 59) : null; - } - return bid(this, a - aLd((jGd(), dGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? dGd : d), a), b, c); - }; - _.hh = function uUd(a, b, c) { - var d, e, f; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c); - case 10: - !!this.Cb && (c = (e = this.Db >> 16, e >= 0 ? qUd(this, c) : this.Cb.ih(this, -1 - e, null, c))); - return _hd(this, a, 10, c); - } - return f = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), f.Nj().Qj(this, yjd(this), b - aLd((jGd(), dGd)), a, c); - }; - _.jh = function vUd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 9: - return vId(this, c); - case 10: - return _hd(this, null, 10, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), dGd)), a, c); - }; - _.lh = function wUd(a) { - var b, c, d; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return (this.Bb & 256) == 0; - case 3: - return (this.Bb & 512) == 0; - case 4: - return this.s != 0; - case 5: - return this.t != 1; - case 6: - return d = this.t, d > 1 || d == -1; - case 7: - return c = this.s, c >= 1; - case 8: - return !!this.r && !this.q.e && LQd(this.q).i == 0; - case 9: - return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0); - case 10: - return !!(this.Db >> 16 == 10 ? BD(this.Cb, 59) : null); - } - return cid(this, a - aLd((jGd(), dGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? dGd : b), a)); - }; - _.zh = function xUd() { - return jGd(), dGd; - }; - var v6 = mdb(qte, "EParameterImpl", 509); - bcb(99, 449, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 18: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 99: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, FUd); - _._g = function GUd(a, b, c) { - var d, e, f, g10; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return Bcb(), (this.Bb & 256) != 0 ? true : false; - case 3: - return Bcb(), (this.Bb & 512) != 0 ? true : false; - case 4: - return meb(this.s); - case 5: - return meb(this.t); - case 6: - return Bcb(), g10 = this.t, g10 > 1 || g10 == -1 ? true : false; - case 7: - return Bcb(), e = this.s, e >= 1 ? true : false; - case 8: - if (b) - return wId(this); - return this.r; - case 9: - return this.q; - case 10: - return Bcb(), (this.Bb & zte) != 0 ? true : false; - case 11: - return Bcb(), (this.Bb & Dve) != 0 ? true : false; - case 12: - return Bcb(), (this.Bb & Rje) != 0 ? true : false; - case 13: - return this.j; - case 14: - return VId(this); - case 15: - return Bcb(), (this.Bb & Cve) != 0 ? true : false; - case 16: - return Bcb(), (this.Bb & oie) != 0 ? true : false; - case 17: - return WId(this); - case 18: - return Bcb(), (this.Bb & ote) != 0 ? true : false; - case 19: - return Bcb(), f = zUd(this), !!f && (f.Bb & ote) != 0 ? true : false; - case 20: - return Bcb(), (this.Bb & Tje) != 0 ? true : false; - case 21: - if (b) - return zUd(this); - return this.b; - case 22: - if (b) - return AUd(this); - return yUd(this); - case 23: - return !this.a && (this.a = new _4d(b5, this, 23)), this.a; - } - return bid(this, a - aLd((jGd(), eGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? eGd : d), a), b, c); - }; - _.lh = function HUd(a) { - var b, c, d, e; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return (this.Bb & 256) == 0; - case 3: - return (this.Bb & 512) == 0; - case 4: - return this.s != 0; - case 5: - return this.t != 1; - case 6: - return e = this.t, e > 1 || e == -1; - case 7: - return c = this.s, c >= 1; - case 8: - return !!this.r && !this.q.e && LQd(this.q).i == 0; - case 9: - return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0); - case 10: - return (this.Bb & zte) == 0; - case 11: - return (this.Bb & Dve) != 0; - case 12: - return (this.Bb & Rje) != 0; - case 13: - return this.j != null; - case 14: - return VId(this) != null; - case 15: - return (this.Bb & Cve) != 0; - case 16: - return (this.Bb & oie) != 0; - case 17: - return !!WId(this); - case 18: - return (this.Bb & ote) != 0; - case 19: - return d = zUd(this), !!d && (d.Bb & ote) != 0; - case 20: - return (this.Bb & Tje) == 0; - case 21: - return !!this.b; - case 22: - return !!yUd(this); - case 23: - return !!this.a && this.a.i != 0; - } - return cid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a)); - }; - _.sh = function IUd(a, b) { - var c, d; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - cJd(this, GD(b)); - return; - case 2: - BId(this, Ccb(DD(b))); - return; - case 3: - CId(this, Ccb(DD(b))); - return; - case 4: - AId(this, BD(b, 19).a); - return; - case 5: - DId(this, BD(b, 19).a); - return; - case 8: - yId(this, BD(b, 138)); - return; - case 9: - d = xId(this, BD(b, 87), null); - !!d && d.Fi(); - return; - case 10: - ZId(this, Ccb(DD(b))); - return; - case 11: - fJd(this, Ccb(DD(b))); - return; - case 12: - dJd(this, Ccb(DD(b))); - return; - case 13: - $Id(this, GD(b)); - return; - case 15: - eJd(this, Ccb(DD(b))); - return; - case 16: - aJd(this, Ccb(DD(b))); - return; - case 18: - BUd(this, Ccb(DD(b))); - return; - case 20: - EUd(this, Ccb(DD(b))); - return; - case 21: - DUd(this, BD(b, 18)); - return; - case 23: - !this.a && (this.a = new _4d(b5, this, 23)); - Uxd(this.a); - !this.a && (this.a = new _4d(b5, this, 23)); - ytd(this.a, BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), eGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? eGd : c), a), b); - }; - _.zh = function JUd() { - return jGd(), eGd; - }; - _.Bh = function KUd(a) { - var b, c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4); - pnd(this, null); - return; - case 2: - BId(this, true); - return; - case 3: - CId(this, true); - return; - case 4: - AId(this, 0); - return; - case 5: - DId(this, 1); - return; - case 8: - yId(this, null); - return; - case 9: - c = xId(this, null, null); - !!c && c.Fi(); - return; - case 10: - ZId(this, true); - return; - case 11: - fJd(this, false); - return; - case 12: - dJd(this, false); - return; - case 13: - this.i = null; - _Id(this, null); - return; - case 15: - eJd(this, false); - return; - case 16: - aJd(this, false); - return; - case 18: - CUd(this, false); - JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 2); - return; - case 20: - EUd(this, true); - return; - case 21: - DUd(this, null); - return; - case 23: - !this.a && (this.a = new _4d(b5, this, 23)); - Uxd(this.a); - return; - } - eid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a)); - }; - _.Gh = function LUd() { - AUd(this); - a2d(q1d((O6d(), M6d), this)); - wId(this); - this.Bb |= 1; - }; - _.Lj = function MUd() { - return zUd(this); - }; - _.qk = function NUd() { - var a; - return a = zUd(this), !!a && (a.Bb & ote) != 0; - }; - _.rk = function OUd() { - return (this.Bb & ote) != 0; - }; - _.sk = function PUd() { - return (this.Bb & Tje) != 0; - }; - _.nk = function QUd(a, b) { - this.c = null; - return zId(this, a, b); - }; - _.Ib = function RUd() { - var a; - if ((this.Db & 64) != 0) - return gJd(this); - a = new Jfb(gJd(this)); - a.a += " (containment: "; - Ffb(a, (this.Bb & ote) != 0); - a.a += ", resolveProxies: "; - Ffb(a, (this.Bb & Tje) != 0); - a.a += ")"; - return a.a; - }; - var w6 = mdb(qte, "EReferenceImpl", 99); - bcb(548, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 548: 1, 114: 1, 115: 1 }, XUd); - _.Fb = function bVd(a) { - return this === a; - }; - _.cd = function dVd() { - return this.b; - }; - _.dd = function eVd() { - return this.c; - }; - _.Hb = function fVd() { - return FCb(this); - }; - _.Uh = function hVd(a) { - SUd(this, GD(a)); - }; - _.ed = function iVd(a) { - return WUd(this, GD(a)); - }; - _._g = function YUd(a, b, c) { - var d; - switch (a) { - case 0: - return this.b; - case 1: - return this.c; - } - return bid(this, a - aLd((jGd(), fGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? fGd : d), a), b, c); - }; - _.lh = function ZUd(a) { - var b; - switch (a) { - case 0: - return this.b != null; - case 1: - return this.c != null; - } - return cid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a)); - }; - _.sh = function $Ud(a, b) { - var c; - switch (a) { - case 0: - TUd(this, GD(b)); - return; - case 1: - VUd(this, GD(b)); - return; - } - did(this, a - aLd((jGd(), fGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? fGd : c), a), b); - }; - _.zh = function _Ud() { - return jGd(), fGd; - }; - _.Bh = function aVd(a) { - var b; - switch (a) { - case 0: - UUd(this, null); - return; - case 1: - VUd(this, null); - return; - } - eid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a)); - }; - _.Sh = function cVd() { - var a; - if (this.a == -1) { - a = this.b; - this.a = a == null ? 0 : LCb(a); - } - return this.a; - }; - _.Th = function gVd(a) { - this.a = a; - }; - _.Ib = function jVd() { - var a; - if ((this.Db & 64) != 0) - return Eid(this); - a = new Jfb(Eid(this)); - a.a += " (key: "; - Efb(a, this.b); - a.a += ", value: "; - Efb(a, this.c); - a.a += ")"; - return a.a; - }; - _.a = -1; - _.b = null; - _.c = null; - var x6 = mdb(qte, "EStringToStringMapEntryImpl", 548); - var D9 = odb(yve, "FeatureMap/Entry/Internal"); - bcb(565, 1, Xve); - _.Ok = function mVd(a) { - return this.Pk(BD(a, 49)); - }; - _.Pk = function nVd(a) { - return this.Ok(a); - }; - _.Fb = function oVd(a) { - var b, c; - if (this === a) { - return true; - } else if (JD(a, 72)) { - b = BD(a, 72); - if (b.ak() == this.c) { - c = this.dd(); - return c == null ? b.dd() == null : pb(c, b.dd()); - } else { - return false; - } - } else { - return false; - } - }; - _.ak = function pVd() { - return this.c; - }; - _.Hb = function qVd() { - var a; - a = this.dd(); - return tb(this.c) ^ (a == null ? 0 : tb(a)); - }; - _.Ib = function rVd() { - var a, b; - a = this.c; - b = bKd(a.Hj()).Ph(); - a.ne(); - return (b != null && b.length != 0 ? b + ":" + a.ne() : a.ne()) + "=" + this.dd(); - }; - var y6 = mdb(qte, "EStructuralFeatureImpl/BasicFeatureMapEntry", 565); - bcb(776, 565, Xve, uVd); - _.Pk = function vVd(a) { - return new uVd(this.c, a); - }; - _.dd = function wVd() { - return this.a; - }; - _.Qk = function xVd(a, b, c) { - return sVd(this, a, this.a, b, c); - }; - _.Rk = function yVd(a, b, c) { - return tVd(this, a, this.a, b, c); - }; - var z6 = mdb(qte, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 776); - bcb(1314, 1, {}, zVd); - _.Pj = function AVd(a, b, c, d, e) { - var f; - f = BD(gid(a, this.b), 215); - return f.nl(this.a).Wj(d); - }; - _.Qj = function BVd(a, b, c, d, e) { - var f; - f = BD(gid(a, this.b), 215); - return f.el(this.a, d, e); - }; - _.Rj = function CVd(a, b, c, d, e) { - var f; - f = BD(gid(a, this.b), 215); - return f.fl(this.a, d, e); - }; - _.Sj = function DVd(a, b, c) { - var d; - d = BD(gid(a, this.b), 215); - return d.nl(this.a).fj(); - }; - _.Tj = function EVd(a, b, c, d) { - var e; - e = BD(gid(a, this.b), 215); - e.nl(this.a).Wb(d); - }; - _.Uj = function FVd(a, b, c) { - return BD(gid(a, this.b), 215).nl(this.a); - }; - _.Vj = function GVd(a, b, c) { - var d; - d = BD(gid(a, this.b), 215); - d.nl(this.a).Xj(); - }; - var A6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1314); - bcb(89, 1, {}, IVd, JVd, KVd, LVd); - _.Pj = function MVd(a, b, c, d, e) { - var f; - f = b.Ch(c); - f == null && b.Dh(c, f = HVd(this, a)); - if (!e) { - switch (this.e) { - case 50: - case 41: - return BD(f, 589).sj(); - case 40: - return BD(f, 215).kl(); - } - } - return f; - }; - _.Qj = function NVd(a, b, c, d, e) { - var f, g10; - g10 = b.Ch(c); - g10 == null && b.Dh(c, g10 = HVd(this, a)); - f = BD(g10, 69).lk(d, e); - return f; - }; - _.Rj = function OVd(a, b, c, d, e) { - var f; - f = b.Ch(c); - f != null && (e = BD(f, 69).mk(d, e)); - return e; - }; - _.Sj = function PVd(a, b, c) { - var d; - d = b.Ch(c); - return d != null && BD(d, 76).fj(); - }; - _.Tj = function QVd(a, b, c, d) { - var e; - e = BD(b.Ch(c), 76); - !e && b.Dh(c, e = HVd(this, a)); - e.Wb(d); - }; - _.Uj = function RVd(a, b, c) { - var d, e; - e = b.Ch(c); - e == null && b.Dh(c, e = HVd(this, a)); - if (JD(e, 76)) { - return BD(e, 76); - } else { - d = BD(b.Ch(c), 15); - return new iYd(d); - } - }; - _.Vj = function SVd(a, b, c) { - var d; - d = BD(b.Ch(c), 76); - !d && b.Dh(c, d = HVd(this, a)); - d.Xj(); - }; - _.b = 0; - _.e = 0; - var B6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateMany", 89); - bcb(504, 1, {}); - _.Qj = function WVd(a, b, c, d, e) { - throw vbb(new bgb()); - }; - _.Rj = function XVd(a, b, c, d, e) { - throw vbb(new bgb()); - }; - _.Uj = function YVd(a, b, c) { - return new ZVd(this, a, b, c); - }; - var TVd; - var i7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 504); - bcb(1331, 1, zve, ZVd); - _.Wj = function $Vd(a) { - return this.a.Pj(this.c, this.d, this.b, a, true); - }; - _.fj = function _Vd() { - return this.a.Sj(this.c, this.d, this.b); - }; - _.Wb = function aWd(a) { - this.a.Tj(this.c, this.d, this.b, a); - }; - _.Xj = function bWd() { - this.a.Vj(this.c, this.d, this.b); - }; - _.b = 0; - var C6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1331); - bcb(769, 504, {}, cWd); - _.Pj = function dWd(a, b, c, d, e) { - return Nid(a, a.eh(), a.Vg()) == this.b ? this.sk() && d ? aid(a) : a.eh() : null; - }; - _.Qj = function eWd(a, b, c, d, e) { - var f, g10; - !!a.eh() && (e = (f = a.Vg(), f >= 0 ? a.Qg(e) : a.eh().ih(a, -1 - f, null, e))); - g10 = bLd(a.Tg(), this.e); - return a.Sg(d, g10, e); - }; - _.Rj = function fWd(a, b, c, d, e) { - var f; - f = bLd(a.Tg(), this.e); - return a.Sg(null, f, e); - }; - _.Sj = function gWd(a, b, c) { - var d; - d = bLd(a.Tg(), this.e); - return !!a.eh() && a.Vg() == d; - }; - _.Tj = function hWd(a, b, c, d) { - var e, f, g10, h, i10; - if (d != null && !fKd(this.a, d)) { - throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'")); - } - e = a.eh(); - g10 = bLd(a.Tg(), this.e); - if (PD(d) !== PD(e) || a.Vg() != g10 && d != null) { - if (p6d(a, BD(d, 56))) - throw vbb(new Wdb(ste + a.Ib())); - i10 = null; - !!e && (i10 = (f = a.Vg(), f >= 0 ? a.Qg(i10) : a.eh().ih(a, -1 - f, null, i10))); - h = BD(d, 49); - !!h && (i10 = h.gh(a, bLd(h.Tg(), this.b), null, i10)); - i10 = a.Sg(h, g10, i10); - !!i10 && i10.Fi(); - } else { - a.Lg() && a.Mg() && Uhd(a, new nSd(a, 1, g10, d, d)); - } - }; - _.Vj = function iWd(a, b, c) { - var d, e, f, g10; - d = a.eh(); - if (d) { - g10 = (e = a.Vg(), e >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - e, null, null)); - f = bLd(a.Tg(), this.e); - g10 = a.Sg(null, f, g10); - !!g10 && g10.Fi(); - } else { - a.Lg() && a.Mg() && Uhd(a, new DSd(a, 1, this.e, null, null)); - } - }; - _.sk = function jWd() { - return false; - }; - var E6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 769); - bcb(1315, 769, {}, kWd); - _.sk = function lWd() { - return true; - }; - var D6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1315); - bcb(563, 504, {}); - _.Pj = function oWd(a, b, c, d, e) { - var f; - return f = b.Ch(c), f == null ? this.b : PD(f) === PD(TVd) ? null : f; - }; - _.Sj = function pWd(a, b, c) { - var d; - d = b.Ch(c); - return d != null && (PD(d) === PD(TVd) || !pb(d, this.b)); - }; - _.Tj = function qWd(a, b, c, d) { - var e, f; - if (a.Lg() && a.Mg()) { - e = (f = b.Ch(c), f == null ? this.b : PD(f) === PD(TVd) ? null : f); - if (d == null) { - if (this.c != null) { - b.Dh(c, null); - d = this.b; - } else - this.b != null ? b.Dh(c, TVd) : b.Dh(c, null); - } else { - this.Sk(d); - b.Dh(c, d); - } - Uhd(a, this.d.Tk(a, 1, this.e, e, d)); - } else { - if (d == null) { - this.c != null ? b.Dh(c, null) : this.b != null ? b.Dh(c, TVd) : b.Dh(c, null); - } else { - this.Sk(d); - b.Dh(c, d); - } - } - }; - _.Vj = function rWd(a, b, c) { - var d, e; - if (a.Lg() && a.Mg()) { - d = (e = b.Ch(c), e == null ? this.b : PD(e) === PD(TVd) ? null : e); - b.Eh(c); - Uhd(a, this.d.Tk(a, 1, this.e, d, this.b)); - } else { - b.Eh(c); - } - }; - _.Sk = function sWd(a) { - throw vbb(new Bdb()); - }; - var T6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 563); - bcb($ve, 1, {}, DWd); - _.Tk = function EWd(a, b, c, d, e) { - return new DSd(a, b, c, d, e); - }; - _.Uk = function FWd(a, b, c, d, e, f) { - return new FSd(a, b, c, d, e, f); - }; - var tWd, uWd, vWd, wWd, xWd, yWd, zWd, AWd, BWd; - var N6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", $ve); - bcb(1332, $ve, {}, GWd); - _.Tk = function HWd(a, b, c, d, e) { - return new ISd(a, b, c, Ccb(DD(d)), Ccb(DD(e))); - }; - _.Uk = function IWd(a, b, c, d, e, f) { - return new JSd(a, b, c, Ccb(DD(d)), Ccb(DD(e)), f); - }; - var F6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1332); - bcb(1333, $ve, {}, JWd); - _.Tk = function KWd(a, b, c, d, e) { - return new rSd(a, b, c, BD(d, 217).a, BD(e, 217).a); - }; - _.Uk = function LWd(a, b, c, d, e, f) { - return new sSd(a, b, c, BD(d, 217).a, BD(e, 217).a, f); - }; - var G6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1333); - bcb(1334, $ve, {}, MWd); - _.Tk = function NWd(a, b, c, d, e) { - return new tSd(a, b, c, BD(d, 172).a, BD(e, 172).a); - }; - _.Uk = function OWd(a, b, c, d, e, f) { - return new uSd(a, b, c, BD(d, 172).a, BD(e, 172).a, f); - }; - var H6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1334); - bcb(1335, $ve, {}, PWd); - _.Tk = function QWd(a, b, c, d, e) { - return new vSd(a, b, c, Edb(ED(d)), Edb(ED(e))); - }; - _.Uk = function RWd(a, b, c, d, e, f) { - return new wSd(a, b, c, Edb(ED(d)), Edb(ED(e)), f); - }; - var I6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1335); - bcb(1336, $ve, {}, SWd); - _.Tk = function TWd(a, b, c, d, e) { - return new xSd(a, b, c, BD(d, 155).a, BD(e, 155).a); - }; - _.Uk = function UWd(a, b, c, d, e, f) { - return new ySd(a, b, c, BD(d, 155).a, BD(e, 155).a, f); - }; - var J6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1336); - bcb(1337, $ve, {}, VWd); - _.Tk = function WWd(a, b, c, d, e) { - return new zSd(a, b, c, BD(d, 19).a, BD(e, 19).a); - }; - _.Uk = function XWd(a, b, c, d, e, f) { - return new ASd(a, b, c, BD(d, 19).a, BD(e, 19).a, f); - }; - var K6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1337); - bcb(1338, $ve, {}, YWd); - _.Tk = function ZWd(a, b, c, d, e) { - return new BSd(a, b, c, BD(d, 162).a, BD(e, 162).a); - }; - _.Uk = function $Wd(a, b, c, d, e, f) { - return new CSd(a, b, c, BD(d, 162).a, BD(e, 162).a, f); - }; - var L6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1338); - bcb(1339, $ve, {}, _Wd); - _.Tk = function aXd(a, b, c, d, e) { - return new GSd(a, b, c, BD(d, 184).a, BD(e, 184).a); - }; - _.Uk = function bXd(a, b, c, d, e, f) { - return new HSd(a, b, c, BD(d, 184).a, BD(e, 184).a, f); - }; - var M6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1339); - bcb(1317, 563, {}, cXd); - _.Sk = function dXd(a) { - if (!this.a.wj(a)) { - throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'")); - } - }; - var O6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1317); - bcb(1318, 563, {}, eXd); - _.Sk = function fXd(a) { - }; - var P6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1318); - bcb(770, 563, {}); - _.Sj = function gXd(a, b, c) { - var d; - d = b.Ch(c); - return d != null; - }; - _.Tj = function hXd(a, b, c, d) { - var e, f; - if (a.Lg() && a.Mg()) { - e = true; - f = b.Ch(c); - if (f == null) { - e = false; - f = this.b; - } else - PD(f) === PD(TVd) && (f = null); - if (d == null) { - if (this.c != null) { - b.Dh(c, null); - d = this.b; - } else { - b.Dh(c, TVd); - } - } else { - this.Sk(d); - b.Dh(c, d); - } - Uhd(a, this.d.Uk(a, 1, this.e, f, d, !e)); - } else { - if (d == null) { - this.c != null ? b.Dh(c, null) : b.Dh(c, TVd); - } else { - this.Sk(d); - b.Dh(c, d); - } - } - }; - _.Vj = function iXd(a, b, c) { - var d, e; - if (a.Lg() && a.Mg()) { - d = true; - e = b.Ch(c); - if (e == null) { - d = false; - e = this.b; - } else - PD(e) === PD(TVd) && (e = null); - b.Eh(c); - Uhd(a, this.d.Uk(a, 2, this.e, e, this.b, d)); - } else { - b.Eh(c); - } - }; - var S6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 770); - bcb(1319, 770, {}, jXd); - _.Sk = function kXd(a) { - if (!this.a.wj(a)) { - throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'")); - } - }; - var Q6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1319); - bcb(1320, 770, {}, lXd); - _.Sk = function mXd(a) { - }; - var R6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1320); - bcb(398, 504, {}, nXd); - _.Pj = function pXd(a, b, c, d, e) { - var f, g10, h, i10, j; - j = b.Ch(c); - if (this.Kj() && PD(j) === PD(TVd)) { - return null; - } else if (this.sk() && d && j != null) { - h = BD(j, 49); - if (h.kh()) { - i10 = xid(a, h); - if (h != i10) { - if (!fKd(this.a, i10)) { - throw vbb(new Cdb(Yve + rb(i10) + Zve + this.a + "'")); - } - b.Dh(c, j = i10); - if (this.rk()) { - f = BD(i10, 49); - g10 = h.ih(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(h.Tg(), this.b), null, null); - !f.eh() && (g10 = f.gh(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(f.Tg(), this.b), null, g10)); - !!g10 && g10.Fi(); - } - a.Lg() && a.Mg() && Uhd(a, new DSd(a, 9, this.e, h, i10)); - } - } - return j; - } else { - return j; - } - }; - _.Qj = function qXd(a, b, c, d, e) { - var f, g10; - g10 = b.Ch(c); - PD(g10) === PD(TVd) && (g10 = null); - b.Dh(c, d); - if (this.bj()) { - if (PD(g10) !== PD(d) && g10 != null) { - f = BD(g10, 49); - e = f.ih(a, bLd(f.Tg(), this.b), null, e); - } - } else - this.rk() && g10 != null && (e = BD(g10, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, e)); - if (a.Lg() && a.Mg()) { - !e && (e = new Ixd(4)); - e.Ei(new DSd(a, 1, this.e, g10, d)); - } - return e; - }; - _.Rj = function rXd(a, b, c, d, e) { - var f; - f = b.Ch(c); - PD(f) === PD(TVd) && (f = null); - b.Eh(c); - if (a.Lg() && a.Mg()) { - !e && (e = new Ixd(4)); - this.Kj() ? e.Ei(new DSd(a, 2, this.e, f, null)) : e.Ei(new DSd(a, 1, this.e, f, null)); - } - return e; - }; - _.Sj = function sXd(a, b, c) { - var d; - d = b.Ch(c); - return d != null; - }; - _.Tj = function tXd(a, b, c, d) { - var e, f, g10, h, i10; - if (d != null && !fKd(this.a, d)) { - throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'")); - } - i10 = b.Ch(c); - h = i10 != null; - this.Kj() && PD(i10) === PD(TVd) && (i10 = null); - g10 = null; - if (this.bj()) { - if (PD(i10) !== PD(d)) { - if (i10 != null) { - e = BD(i10, 49); - g10 = e.ih(a, bLd(e.Tg(), this.b), null, g10); - } - if (d != null) { - e = BD(d, 49); - g10 = e.gh(a, bLd(e.Tg(), this.b), null, g10); - } - } - } else if (this.rk()) { - if (PD(i10) !== PD(d)) { - i10 != null && (g10 = BD(i10, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, g10)); - d != null && (g10 = BD(d, 49).gh(a, -1 - bLd(a.Tg(), this.e), null, g10)); - } - } - d == null && this.Kj() ? b.Dh(c, TVd) : b.Dh(c, d); - if (a.Lg() && a.Mg()) { - f = new FSd(a, 1, this.e, i10, d, this.Kj() && !h); - if (!g10) { - Uhd(a, f); - } else { - g10.Ei(f); - g10.Fi(); - } - } else - !!g10 && g10.Fi(); - }; - _.Vj = function uXd(a, b, c) { - var d, e, f, g10, h; - h = b.Ch(c); - g10 = h != null; - this.Kj() && PD(h) === PD(TVd) && (h = null); - f = null; - if (h != null) { - if (this.bj()) { - d = BD(h, 49); - f = d.ih(a, bLd(d.Tg(), this.b), null, f); - } else - this.rk() && (f = BD(h, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, f)); - } - b.Eh(c); - if (a.Lg() && a.Mg()) { - e = new FSd(a, this.Kj() ? 2 : 1, this.e, h, null, g10); - if (!f) { - Uhd(a, e); - } else { - f.Ei(e); - f.Fi(); - } - } else - !!f && f.Fi(); - }; - _.bj = function vXd() { - return false; - }; - _.rk = function wXd() { - return false; - }; - _.sk = function xXd() { - return false; - }; - _.Kj = function yXd() { - return false; - }; - var h7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 398); - bcb(564, 398, {}, zXd); - _.rk = function AXd() { - return true; - }; - var _6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 564); - bcb(1323, 564, {}, BXd); - _.sk = function CXd() { - return true; - }; - var U6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1323); - bcb(772, 564, {}, DXd); - _.Kj = function EXd() { - return true; - }; - var W6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 772); - bcb(1325, 772, {}, FXd); - _.sk = function GXd() { - return true; - }; - var V6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1325); - bcb(640, 564, {}, HXd); - _.bj = function IXd() { - return true; - }; - var $6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 640); - bcb(1324, 640, {}, JXd); - _.sk = function KXd() { - return true; - }; - var X6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1324); - bcb(773, 640, {}, LXd); - _.Kj = function MXd() { - return true; - }; - var Z6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 773); - bcb(1326, 773, {}, NXd); - _.sk = function OXd() { - return true; - }; - var Y6 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1326); - bcb(641, 398, {}, PXd); - _.sk = function QXd() { - return true; - }; - var d7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 641); - bcb(1327, 641, {}, RXd); - _.Kj = function SXd() { - return true; - }; - var a7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1327); - bcb(774, 641, {}, TXd); - _.bj = function UXd() { - return true; - }; - var c7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 774); - bcb(1328, 774, {}, VXd); - _.Kj = function WXd() { - return true; - }; - var b7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1328); - bcb(1321, 398, {}, XXd); - _.Kj = function YXd() { - return true; - }; - var e7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1321); - bcb(771, 398, {}, ZXd); - _.bj = function $Xd() { - return true; - }; - var g7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 771); - bcb(1322, 771, {}, _Xd); - _.Kj = function aYd() { - return true; - }; - var f7 = mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1322); - bcb(775, 565, Xve, dYd); - _.Pk = function eYd(a) { - return new dYd(this.a, this.c, a); - }; - _.dd = function fYd() { - return this.b; - }; - _.Qk = function gYd(a, b, c) { - return bYd(this, a, this.b, c); - }; - _.Rk = function hYd(a, b, c) { - return cYd(this, a, this.b, c); - }; - var j7 = mdb(qte, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 775); - bcb(1329, 1, zve, iYd); - _.Wj = function jYd(a) { - return this.a; - }; - _.fj = function kYd() { - return JD(this.a, 95) ? BD(this.a, 95).fj() : !this.a.dc(); - }; - _.Wb = function lYd(a) { - this.a.$b(); - this.a.Gc(BD(a, 15)); - }; - _.Xj = function mYd() { - JD(this.a, 95) ? BD(this.a, 95).Xj() : this.a.$b(); - }; - var k7 = mdb(qte, "EStructuralFeatureImpl/SettingMany", 1329); - bcb(1330, 565, Xve, nYd); - _.Ok = function oYd(a) { - return new sYd((Q8d(), P8d), this.b.Ih(this.a, a)); - }; - _.dd = function pYd() { - return null; - }; - _.Qk = function qYd(a, b, c) { - return c; - }; - _.Rk = function rYd(a, b, c) { - return c; - }; - var l7 = mdb(qte, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1330); - bcb(642, 565, Xve, sYd); - _.Ok = function tYd(a) { - return new sYd(this.c, a); - }; - _.dd = function uYd() { - return this.a; - }; - _.Qk = function vYd(a, b, c) { - return c; - }; - _.Rk = function wYd(a, b, c) { - return c; - }; - var m7 = mdb(qte, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 642); - bcb(391, 497, oue, xYd); - _.ri = function yYd(a) { - return KC(c5, Uhe, 26, a, 0, 1); - }; - _.ni = function zYd() { - return false; - }; - var o7 = mdb(qte, "ESuperAdapter/1", 391); - bcb(444, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 836: 1, 49: 1, 97: 1, 150: 1, 444: 1, 114: 1, 115: 1 }, BYd); - _._g = function CYd(a, b, c) { - var d; - switch (a) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab; - case 1: - return this.zb; - case 2: - return !this.a && (this.a = new KYd(this, j5, this)), this.a; - } - return bid(this, a - aLd((jGd(), iGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? iGd : d), a), b, c); - }; - _.jh = function DYd(a, b, c) { - var d, e; - switch (b) { - case 0: - return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c); - case 2: - return !this.a && (this.a = new KYd(this, j5, this)), Txd(this.a, a, c); - } - return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), iGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), iGd)), a, c); - }; - _.lh = function EYd(a) { - var b; - switch (a) { - case 0: - return !!this.Ab && this.Ab.i != 0; - case 1: - return this.zb != null; - case 2: - return !!this.a && this.a.i != 0; - } - return cid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a)); - }; - _.sh = function FYd(a, b) { - var c; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - ytd(this.Ab, BD(b, 14)); - return; - case 1: - pnd(this, GD(b)); - return; - case 2: - !this.a && (this.a = new KYd(this, j5, this)); - Uxd(this.a); - !this.a && (this.a = new KYd(this, j5, this)); - ytd(this.a, BD(b, 14)); - return; - } - did(this, a - aLd((jGd(), iGd)), XKd((c = BD(Ajd(this, 16), 26), !c ? iGd : c), a), b); - }; - _.zh = function GYd() { - return jGd(), iGd; - }; - _.Bh = function HYd(a) { - var b; - switch (a) { - case 0: - !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)); - Uxd(this.Ab); - return; - case 1: - pnd(this, null); - return; - case 2: - !this.a && (this.a = new KYd(this, j5, this)); - Uxd(this.a); - return; - } - eid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a)); - }; - var u7 = mdb(qte, "ETypeParameterImpl", 444); - bcb(445, 85, Pve, KYd); - _.cj = function LYd(a, b) { - return IYd(this, BD(a, 87), b); - }; - _.dj = function MYd(a, b) { - return JYd(this, BD(a, 87), b); - }; - var q7 = mdb(qte, "ETypeParameterImpl/1", 445); - bcb(634, 43, fke, NYd); - _.ec = function OYd() { - return new RYd(this); - }; - var t7 = mdb(qte, "ETypeParameterImpl/2", 634); - bcb(556, eie, fie, RYd); - _.Fc = function SYd(a) { - return PYd(this, BD(a, 87)); - }; - _.Gc = function TYd(a) { - var b, c, d; - d = false; - for (c = a.Kc(); c.Ob(); ) { - b = BD(c.Pb(), 87); - Rhb(this.a, b, "") == null && (d = true); - } - return d; - }; - _.$b = function UYd() { - Uhb(this.a); - }; - _.Hc = function VYd(a) { - return Mhb(this.a, a); - }; - _.Kc = function WYd() { - var a; - return a = new nib(new eib(this.a).a), new ZYd(a); - }; - _.Mc = function XYd(a) { - return QYd(this, a); - }; - _.gc = function YYd() { - return Vhb(this.a); - }; - var s7 = mdb(qte, "ETypeParameterImpl/2/1", 556); - bcb(557, 1, aie, ZYd); - _.Nb = function $Yd(a) { - Rrb(this, a); - }; - _.Pb = function aZd() { - return BD(lib(this.a).cd(), 87); - }; - _.Ob = function _Yd() { - return this.a.b; - }; - _.Qb = function bZd() { - mib(this.a); - }; - var r7 = mdb(qte, "ETypeParameterImpl/2/1/1", 557); - bcb(1276, 43, fke, cZd); - _._b = function dZd(a) { - return ND(a) ? Qhb(this, a) : !!irb(this.f, a); - }; - _.xc = function eZd(a) { - var b, c; - b = ND(a) ? Phb(this, a) : Wd(irb(this.f, a)); - if (JD(b, 837)) { - c = BD(b, 837); - b = c._j(); - Rhb(this, BD(a, 235), b); - return b; - } else - return b != null ? b : a == null ? (g5d(), f5d) : null; - }; - var w7 = mdb(qte, "EValidatorRegistryImpl", 1276); - bcb(1313, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 1941: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, mZd); - _.Ih = function nZd(a, b) { - switch (a.yj()) { - case 21: - case 22: - case 23: - case 24: - case 26: - case 31: - case 32: - case 37: - case 38: - case 39: - case 40: - case 43: - case 44: - case 48: - case 49: - case 20: - return b == null ? null : fcb(b); - case 25: - return gZd(b); - case 27: - return hZd(b); - case 28: - return iZd(b); - case 29: - return b == null ? null : CQd(Pmd[0], BD(b, 199)); - case 41: - return b == null ? "" : hdb(BD(b, 290)); - case 42: - return fcb(b); - case 50: - return GD(b); - default: - throw vbb(new Wdb(tte + a.ne() + ute)); - } - }; - _.Jh = function oZd(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q; - switch (a.G == -1 && (a.G = (m = bKd(a), m ? HLd(m.Mh(), a) : -1)), a.G) { - case 0: - return c = new OJd(), c; - case 1: - return b = new RHd(), b; - case 2: - return d = new hLd(), d; - case 4: - return e = new MPd(), e; - case 5: - return f = new aQd(), f; - case 6: - return g10 = new rQd(), g10; - case 7: - return h = new $md(), h; - case 10: - return j = new MGd(), j; - case 11: - return k = new SSd(), k; - case 12: - return l = new eod(), l; - case 13: - return n = new rUd(), n; - case 14: - return o10 = new FUd(), o10; - case 17: - return p = new XUd(), p; - case 18: - return i10 = new UQd(), i10; - case 19: - return q = new BYd(), q; - default: - throw vbb(new Wdb(xte + a.zb + ute)); - } - }; - _.Kh = function pZd(a, b) { - switch (a.yj()) { - case 20: - return b == null ? null : new tgb(b); - case 21: - return b == null ? null : new Ygb(b); - case 23: - case 22: - return b == null ? null : fZd(b); - case 26: - case 24: - return b == null ? null : Scb(Icb(b, -128, 127) << 24 >> 24); - case 25: - return Xmd(b); - case 27: - return jZd(b); - case 28: - return kZd(b); - case 29: - return lZd(b); - case 32: - case 31: - return b == null ? null : Hcb(b); - case 38: - case 37: - return b == null ? null : new Odb(b); - case 40: - case 39: - return b == null ? null : meb(Icb(b, Rie, Ohe)); - case 41: - return null; - case 42: - return b == null ? null : null; - case 44: - case 43: - return b == null ? null : Aeb(Jcb(b)); - case 49: - case 48: - return b == null ? null : Web(Icb(b, awe, 32767) << 16 >> 16); - case 50: - return b; - default: - throw vbb(new Wdb(tte + a.ne() + ute)); - } - }; - var x7 = mdb(qte, "EcoreFactoryImpl", 1313); - bcb(547, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 1939: 1, 49: 1, 97: 1, 150: 1, 179: 1, 547: 1, 114: 1, 115: 1, 675: 1 }, AZd); - _.gb = false; - _.hb = false; - var rZd, sZd = false; - var o8 = mdb(qte, "EcorePackageImpl", 547); - bcb(1184, 1, { 837: 1 }, EZd); - _._j = function FZd() { - return I6d(), H6d; - }; - var I7 = mdb(qte, "EcorePackageImpl/1", 1184); - bcb(1193, 1, nwe, GZd); - _.wj = function HZd(a) { - return JD(a, 147); - }; - _.xj = function IZd(a) { - return KC(k5, Uhe, 147, a, 0, 1); - }; - var y7 = mdb(qte, "EcorePackageImpl/10", 1193); - bcb(1194, 1, nwe, JZd); - _.wj = function KZd(a) { - return JD(a, 191); - }; - _.xj = function LZd(a) { - return KC(l5, Uhe, 191, a, 0, 1); - }; - var z7 = mdb(qte, "EcorePackageImpl/11", 1194); - bcb(1195, 1, nwe, MZd); - _.wj = function NZd(a) { - return JD(a, 56); - }; - _.xj = function OZd(a) { - return KC(m5, Uhe, 56, a, 0, 1); - }; - var A7 = mdb(qte, "EcorePackageImpl/12", 1195); - bcb(1196, 1, nwe, PZd); - _.wj = function QZd(a) { - return JD(a, 399); - }; - _.xj = function RZd(a) { - return KC(n5, Nve, 59, a, 0, 1); - }; - var B7 = mdb(qte, "EcorePackageImpl/13", 1196); - bcb(1197, 1, nwe, SZd); - _.wj = function TZd(a) { - return JD(a, 235); - }; - _.xj = function UZd(a) { - return KC(o5, Uhe, 235, a, 0, 1); - }; - var C7 = mdb(qte, "EcorePackageImpl/14", 1197); - bcb(1198, 1, nwe, VZd); - _.wj = function WZd(a) { - return JD(a, 509); - }; - _.xj = function XZd(a) { - return KC(p5, Uhe, 2017, a, 0, 1); - }; - var D7 = mdb(qte, "EcorePackageImpl/15", 1198); - bcb(1199, 1, nwe, YZd); - _.wj = function ZZd(a) { - return JD(a, 99); - }; - _.xj = function $Zd(a) { - return KC(q5, Mve, 18, a, 0, 1); - }; - var E7 = mdb(qte, "EcorePackageImpl/16", 1199); - bcb(1200, 1, nwe, _Zd); - _.wj = function a$d(a) { - return JD(a, 170); - }; - _.xj = function b$d(a) { - return KC(t5, Mve, 170, a, 0, 1); - }; - var F7 = mdb(qte, "EcorePackageImpl/17", 1200); - bcb(1201, 1, nwe, c$d); - _.wj = function d$d(a) { - return JD(a, 472); - }; - _.xj = function e$d(a) { - return KC(v5, Uhe, 472, a, 0, 1); - }; - var G7 = mdb(qte, "EcorePackageImpl/18", 1201); - bcb(1202, 1, nwe, f$d); - _.wj = function g$d(a) { - return JD(a, 548); - }; - _.xj = function h$d(a) { - return KC(x6, kve, 548, a, 0, 1); - }; - var H7 = mdb(qte, "EcorePackageImpl/19", 1202); - bcb(1185, 1, nwe, i$d); - _.wj = function j$d(a) { - return JD(a, 322); - }; - _.xj = function k$d(a) { - return KC(b5, Mve, 34, a, 0, 1); - }; - var T7 = mdb(qte, "EcorePackageImpl/2", 1185); - bcb(1203, 1, nwe, l$d); - _.wj = function m$d(a) { - return JD(a, 241); - }; - _.xj = function n$d(a) { - return KC(j5, Tve, 87, a, 0, 1); - }; - var J7 = mdb(qte, "EcorePackageImpl/20", 1203); - bcb(1204, 1, nwe, o$d); - _.wj = function p$d(a) { - return JD(a, 444); - }; - _.xj = function q$d(a) { - return KC(u5, Uhe, 836, a, 0, 1); - }; - var K7 = mdb(qte, "EcorePackageImpl/21", 1204); - bcb(1205, 1, nwe, r$d); - _.wj = function s$d(a) { - return KD(a); - }; - _.xj = function t$d(a) { - return KC(wI, nie, 476, a, 8, 1); - }; - var L7 = mdb(qte, "EcorePackageImpl/22", 1205); - bcb(1206, 1, nwe, u$d); - _.wj = function v$d(a) { - return JD(a, 190); - }; - _.xj = function w$d(a) { - return KC(SD, nie, 190, a, 0, 2); - }; - var M7 = mdb(qte, "EcorePackageImpl/23", 1206); - bcb(1207, 1, nwe, x$d); - _.wj = function y$d(a) { - return JD(a, 217); - }; - _.xj = function z$d(a) { - return KC(xI, nie, 217, a, 0, 1); - }; - var N7 = mdb(qte, "EcorePackageImpl/24", 1207); - bcb(1208, 1, nwe, A$d); - _.wj = function B$d(a) { - return JD(a, 172); - }; - _.xj = function C$d(a) { - return KC(yI, nie, 172, a, 0, 1); - }; - var O7 = mdb(qte, "EcorePackageImpl/25", 1208); - bcb(1209, 1, nwe, D$d); - _.wj = function E$d(a) { - return JD(a, 199); - }; - _.xj = function F$d(a) { - return KC($J, nie, 199, a, 0, 1); - }; - var P7 = mdb(qte, "EcorePackageImpl/26", 1209); - bcb(1210, 1, nwe, G$d); - _.wj = function H$d(a) { - return false; - }; - _.xj = function I$d(a) { - return KC(O4, Uhe, 2110, a, 0, 1); - }; - var Q7 = mdb(qte, "EcorePackageImpl/27", 1210); - bcb(1211, 1, nwe, J$d); - _.wj = function K$d(a) { - return LD(a); - }; - _.xj = function L$d(a) { - return KC(BI, nie, 333, a, 7, 1); - }; - var R7 = mdb(qte, "EcorePackageImpl/28", 1211); - bcb(1212, 1, nwe, M$d); - _.wj = function N$d(a) { - return JD(a, 58); - }; - _.xj = function O$d(a) { - return KC(T4, eme, 58, a, 0, 1); - }; - var S7 = mdb(qte, "EcorePackageImpl/29", 1212); - bcb(1186, 1, nwe, P$d); - _.wj = function Q$d(a) { - return JD(a, 510); - }; - _.xj = function R$d(a) { - return KC(a5, { 3: 1, 4: 1, 5: 1, 1934: 1 }, 590, a, 0, 1); - }; - var c8 = mdb(qte, "EcorePackageImpl/3", 1186); - bcb(1213, 1, nwe, S$d); - _.wj = function T$d(a) { - return JD(a, 573); - }; - _.xj = function U$d(a) { - return KC(U4, Uhe, 1940, a, 0, 1); - }; - var U7 = mdb(qte, "EcorePackageImpl/30", 1213); - bcb(1214, 1, nwe, V$d); - _.wj = function W$d(a) { - return JD(a, 153); - }; - _.xj = function X$d(a) { - return KC(O9, eme, 153, a, 0, 1); - }; - var V7 = mdb(qte, "EcorePackageImpl/31", 1214); - bcb(1215, 1, nwe, Y$d); - _.wj = function Z$d(a) { - return JD(a, 72); - }; - _.xj = function $$d(a) { - return KC(E9, owe, 72, a, 0, 1); - }; - var W7 = mdb(qte, "EcorePackageImpl/32", 1215); - bcb(1216, 1, nwe, _$d); - _.wj = function a_d(a) { - return JD(a, 155); - }; - _.xj = function b_d(a) { - return KC(FI, nie, 155, a, 0, 1); - }; - var X7 = mdb(qte, "EcorePackageImpl/33", 1216); - bcb(1217, 1, nwe, c_d); - _.wj = function d_d(a) { - return JD(a, 19); - }; - _.xj = function e_d(a) { - return KC(JI, nie, 19, a, 0, 1); - }; - var Y7 = mdb(qte, "EcorePackageImpl/34", 1217); - bcb(1218, 1, nwe, f_d); - _.wj = function g_d(a) { - return JD(a, 290); - }; - _.xj = function h_d(a) { - return KC(AI, Uhe, 290, a, 0, 1); - }; - var Z7 = mdb(qte, "EcorePackageImpl/35", 1218); - bcb(1219, 1, nwe, i_d); - _.wj = function j_d(a) { - return JD(a, 162); - }; - _.xj = function k_d(a) { - return KC(MI, nie, 162, a, 0, 1); - }; - var $7 = mdb(qte, "EcorePackageImpl/36", 1219); - bcb(1220, 1, nwe, l_d); - _.wj = function m_d(a) { - return JD(a, 83); - }; - _.xj = function n_d(a) { - return KC(DK, Uhe, 83, a, 0, 1); - }; - var _7 = mdb(qte, "EcorePackageImpl/37", 1220); - bcb(1221, 1, nwe, o_d); - _.wj = function p_d(a) { - return JD(a, 591); - }; - _.xj = function q_d(a) { - return KC(v8, Uhe, 591, a, 0, 1); - }; - var a8 = mdb(qte, "EcorePackageImpl/38", 1221); - bcb(1222, 1, nwe, r_d); - _.wj = function s_d(a) { - return false; - }; - _.xj = function t_d(a) { - return KC(u8, Uhe, 2111, a, 0, 1); - }; - var b8 = mdb(qte, "EcorePackageImpl/39", 1222); - bcb(1187, 1, nwe, u_d); - _.wj = function v_d(a) { - return JD(a, 88); - }; - _.xj = function w_d(a) { - return KC(c5, Uhe, 26, a, 0, 1); - }; - var i8 = mdb(qte, "EcorePackageImpl/4", 1187); - bcb(1223, 1, nwe, x_d); - _.wj = function y_d(a) { - return JD(a, 184); - }; - _.xj = function z_d(a) { - return KC(UI, nie, 184, a, 0, 1); - }; - var d8 = mdb(qte, "EcorePackageImpl/40", 1223); - bcb(1224, 1, nwe, A_d); - _.wj = function B_d(a) { - return ND(a); - }; - _.xj = function C_d(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var e8 = mdb(qte, "EcorePackageImpl/41", 1224); - bcb(1225, 1, nwe, D_d); - _.wj = function E_d(a) { - return JD(a, 588); - }; - _.xj = function F_d(a) { - return KC(X4, Uhe, 588, a, 0, 1); - }; - var f8 = mdb(qte, "EcorePackageImpl/42", 1225); - bcb(1226, 1, nwe, G_d); - _.wj = function H_d(a) { - return false; - }; - _.xj = function I_d(a) { - return KC(V4, nie, 2112, a, 0, 1); - }; - var g8 = mdb(qte, "EcorePackageImpl/43", 1226); - bcb(1227, 1, nwe, J_d); - _.wj = function K_d(a) { - return JD(a, 42); - }; - _.xj = function L_d(a) { - return KC(CK, zie, 42, a, 0, 1); - }; - var h8 = mdb(qte, "EcorePackageImpl/44", 1227); - bcb(1188, 1, nwe, M_d); - _.wj = function N_d(a) { - return JD(a, 138); - }; - _.xj = function O_d(a) { - return KC(d5, Uhe, 138, a, 0, 1); - }; - var j8 = mdb(qte, "EcorePackageImpl/5", 1188); - bcb(1189, 1, nwe, P_d); - _.wj = function Q_d(a) { - return JD(a, 148); - }; - _.xj = function R_d(a) { - return KC(f5, Uhe, 148, a, 0, 1); - }; - var k8 = mdb(qte, "EcorePackageImpl/6", 1189); - bcb(1190, 1, nwe, S_d); - _.wj = function T_d(a) { - return JD(a, 457); - }; - _.xj = function U_d(a) { - return KC(h5, Uhe, 671, a, 0, 1); - }; - var l8 = mdb(qte, "EcorePackageImpl/7", 1190); - bcb(1191, 1, nwe, V_d); - _.wj = function W_d(a) { - return JD(a, 573); - }; - _.xj = function X_d(a) { - return KC(g5, Uhe, 678, a, 0, 1); - }; - var m8 = mdb(qte, "EcorePackageImpl/8", 1191); - bcb(1192, 1, nwe, Y_d); - _.wj = function Z_d(a) { - return JD(a, 471); - }; - _.xj = function $_d(a) { - return KC(i5, Uhe, 471, a, 0, 1); - }; - var n8 = mdb(qte, "EcorePackageImpl/9", 1192); - bcb(1025, 1982, ive, c0d); - _.bi = function d0d(a, b) { - __d(this, BD(b, 415)); - }; - _.fi = function e0d(a, b) { - a0d(this, a, BD(b, 415)); - }; - var q8 = mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1025); - bcb(1026, 143, fve, f0d); - _.Ai = function g0d() { - return this.a.a; - }; - var p8 = mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1026); - bcb(1053, 1052, {}, i0d); - var t8 = mdb("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1053); - var v8 = odb(pwe, "Resource"); - bcb(781, 1378, qwe); - _.Yk = function m0d(a) { - }; - _.Zk = function n0d(a) { - }; - _.Vk = function o0d() { - return !this.a && (this.a = new z0d(this)), this.a; - }; - _.Wk = function p0d(a) { - var b, c, d, e, f; - d = a.length; - if (d > 0) { - BCb(0, a.length); - if (a.charCodeAt(0) == 47) { - f = new Skb(4); - e = 1; - for (b = 1; b < d; ++b) { - BCb(b, a.length); - if (a.charCodeAt(b) == 47) { - Ekb(f, e == b ? "" : a.substr(e, b - e)); - e = b + 1; - } - } - Ekb(f, a.substr(e)); - return j0d(this, f); - } else { - BCb(d - 1, a.length); - if (a.charCodeAt(d - 1) == 63) { - c = lfb(a, wfb(63), d - 2); - c > 0 && (a = a.substr(0, c)); - } - } - } - return k0d(this, a); - }; - _.Xk = function q0d() { - return this.c; - }; - _.Ib = function r0d() { - var a; - return hdb(this.gm) + "@" + (a = tb(this) >>> 0, a.toString(16)) + " uri='" + this.d + "'"; - }; - _.b = false; - var z8 = mdb(rwe, "ResourceImpl", 781); - bcb(1379, 781, qwe, s0d); - var w8 = mdb(rwe, "BinaryResourceImpl", 1379); - bcb(1169, 694, pue); - _.si = function v0d(a) { - return JD(a, 56) ? t0d(this, BD(a, 56)) : JD(a, 591) ? new Fyd(BD(a, 591).Vk()) : PD(a) === PD(this.f) ? BD(a, 14).Kc() : (LCd(), KCd.a); - }; - _.Ob = function w0d() { - return u0d(this); - }; - _.a = false; - var z9 = mdb(yve, "EcoreUtil/ContentTreeIterator", 1169); - bcb(1380, 1169, pue, x0d); - _.si = function y0d(a) { - return PD(a) === PD(this.f) ? BD(a, 15).Kc() : new C6d(BD(a, 56)); - }; - var x8 = mdb(rwe, "ResourceImpl/5", 1380); - bcb(648, 1994, Ove, z0d); - _.Hc = function A0d(a) { - return this.i <= 4 ? pud(this, a) : JD(a, 49) && BD(a, 49).Zg() == this.a; - }; - _.bi = function B0d(a, b) { - a == this.i - 1 && (this.a.b || (this.a.b = true, null)); - }; - _.di = function C0d(a, b) { - a == 0 ? this.a.b || (this.a.b = true, null) : Atd(this, a, b); - }; - _.fi = function D0d(a, b) { - }; - _.gi = function E0d(a, b, c) { - }; - _.aj = function F0d() { - return 2; - }; - _.Ai = function G0d() { - return this.a; - }; - _.bj = function H0d() { - return true; - }; - _.cj = function I0d(a, b) { - var c; - c = BD(a, 49); - b = c.wh(this.a, b); - return b; - }; - _.dj = function J0d(a, b) { - var c; - c = BD(a, 49); - return c.wh(null, b); - }; - _.ej = function K0d() { - return false; - }; - _.hi = function L0d() { - return true; - }; - _.ri = function M0d(a) { - return KC(m5, Uhe, 56, a, 0, 1); - }; - _.ni = function N0d() { - return false; - }; - var y8 = mdb(rwe, "ResourceImpl/ContentsEList", 648); - bcb(957, 1964, Lie, O0d); - _.Zc = function P0d(a) { - return this.a._h(a); - }; - _.gc = function Q0d() { - return this.a.gc(); - }; - var A8 = mdb(yve, "AbstractSequentialInternalEList/1", 957); - var K6d, L6d, M6d, N6d; - bcb(624, 1, {}, y1d); - var R0d, S0d; - var G8 = mdb(yve, "BasicExtendedMetaData", 624); - bcb(1160, 1, {}, C1d); - _.$k = function D1d() { - return null; - }; - _._k = function E1d() { - this.a == -2 && A1d(this, W0d(this.d, this.b)); - return this.a; - }; - _.al = function F1d() { - return null; - }; - _.bl = function G1d() { - return mmb(), mmb(), jmb; - }; - _.ne = function H1d() { - this.c == Gwe && B1d(this, _0d(this.d, this.b)); - return this.c; - }; - _.cl = function I1d() { - return 0; - }; - _.a = -2; - _.c = Gwe; - var C8 = mdb(yve, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1160); - bcb(1161, 1, {}, O1d); - _.$k = function P1d() { - this.a == (T0d(), R0d) && J1d(this, V0d(this.f, this.b)); - return this.a; - }; - _._k = function Q1d() { - return 0; - }; - _.al = function R1d() { - this.c == (T0d(), R0d) && K1d(this, Z0d(this.f, this.b)); - return this.c; - }; - _.bl = function S1d() { - !this.d && L1d(this, $0d(this.f, this.b)); - return this.d; - }; - _.ne = function T1d() { - this.e == Gwe && M1d(this, _0d(this.f, this.b)); - return this.e; - }; - _.cl = function U1d() { - this.g == -2 && N1d(this, c1d(this.f, this.b)); - return this.g; - }; - _.e = Gwe; - _.g = -2; - var D8 = mdb(yve, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1161); - bcb(1159, 1, {}, Y1d); - _.b = false; - _.c = false; - var E8 = mdb(yve, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1159); - bcb(1162, 1, {}, j2d); - _.c = -2; - _.e = Gwe; - _.f = Gwe; - var F8 = mdb(yve, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1162); - bcb(585, 622, Pve, k2d); - _.aj = function l2d() { - return this.c; - }; - _.Fk = function m2d() { - return false; - }; - _.li = function n2d(a, b) { - return b; - }; - _.c = 0; - var T8 = mdb(yve, "EDataTypeEList", 585); - var O9 = odb(yve, "FeatureMap"); - bcb(75, 585, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, u3d); - _.Vc = function v3d(a, b) { - o2d(this, a, BD(b, 72)); - }; - _.Fc = function w3d(a) { - return r2d(this, BD(a, 72)); - }; - _.Yh = function B3d(a) { - w2d(this, BD(a, 72)); - }; - _.cj = function M3d(a, b) { - return O2d(this, BD(a, 72), b); - }; - _.dj = function N3d(a, b) { - return Q2d(this, BD(a, 72), b); - }; - _.ii = function P3d(a, b) { - return W2d(this, a, b); - }; - _.li = function R3d(a, b) { - return _2d(this, a, BD(b, 72)); - }; - _._c = function T3d(a, b) { - return c3d(this, a, BD(b, 72)); - }; - _.jj = function X3d(a, b) { - return i3d(this, BD(a, 72), b); - }; - _.kj = function Y3d(a, b) { - return k3d(this, BD(a, 72), b); - }; - _.lj = function Z3d(a, b, c) { - return l3d(this, BD(a, 72), BD(b, 72), c); - }; - _.oi = function _3d(a, b) { - return t3d(this, a, BD(b, 72)); - }; - _.dl = function x3d(a, b) { - return q2d(this, a, b); - }; - _.Wc = function y3d(a, b) { - var c, d, e, f, g10, h, i10, j, k; - j = new zud(b.gc()); - for (e = b.Kc(); e.Ob(); ) { - d = BD(e.Pb(), 72); - f = d.ak(); - if (T6d(this.e, f)) { - (!f.hi() || !E2d(this, f, d.dd()) && !pud(j, d)) && wtd(j, d); - } else { - k = S6d(this.e.Tg(), f); - c = BD(this.g, 119); - g10 = true; - for (h = 0; h < this.i; ++h) { - i10 = c[h]; - if (k.rl(i10.ak())) { - BD(Gtd(this, h, d), 72); - g10 = false; - break; - } - } - g10 && wtd(j, d); - } - } - return xtd(this, a, j); - }; - _.Gc = function z3d(a) { - var b, c, d, e, f, g10, h, i10, j; - i10 = new zud(a.gc()); - for (d = a.Kc(); d.Ob(); ) { - c = BD(d.Pb(), 72); - e = c.ak(); - if (T6d(this.e, e)) { - (!e.hi() || !E2d(this, e, c.dd()) && !pud(i10, c)) && wtd(i10, c); - } else { - j = S6d(this.e.Tg(), e); - b = BD(this.g, 119); - f = true; - for (g10 = 0; g10 < this.i; ++g10) { - h = b[g10]; - if (j.rl(h.ak())) { - BD(Gtd(this, g10, c), 72); - f = false; - break; - } - } - f && wtd(i10, c); - } - } - return ytd(this, i10); - }; - _.Wh = function A3d(a) { - this.j = -1; - return Pxd(this, this.i, a); - }; - _.el = function C3d(a, b, c) { - return x2d(this, a, b, c); - }; - _.mk = function D3d(a, b) { - return B2d(this, a, b); - }; - _.fl = function E3d(a, b, c) { - return C2d(this, a, b, c); - }; - _.gl = function F3d() { - return this; - }; - _.hl = function G3d(a, b) { - return K2d(this, a, b); - }; - _.il = function H3d(a) { - return BD(qud(this, a), 72).ak(); - }; - _.jl = function I3d(a) { - return BD(qud(this, a), 72).dd(); - }; - _.kl = function J3d() { - return this.b; - }; - _.bj = function K3d() { - return true; - }; - _.ij = function L3d() { - return true; - }; - _.ll = function O3d(a) { - return !R2d(this, a); - }; - _.ri = function Q3d(a) { - return KC(D9, owe, 332, a, 0, 1); - }; - _.Gk = function S3d(a) { - return a3d(this, a); - }; - _.Wb = function U3d(a) { - d3d(this, a); - }; - _.ml = function V3d(a, b) { - f3d(this, a, b); - }; - _.nl = function W3d(a) { - return g3d(this, a); - }; - _.ol = function $3d(a) { - s3d(this, a); - }; - var J8 = mdb(yve, "BasicFeatureMap", 75); - bcb(1851, 1, jie); - _.Nb = function f4d(a) { - Rrb(this, a); - }; - _.Rb = function e4d(b) { - if (this.g == -1) { - throw vbb(new Ydb()); - } - a4d(this); - try { - p2d(this.e, this.b, this.a, b); - this.d = this.e.j; - d4d(this); - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - throw vbb(new Apb()); - } else - throw vbb(a); - } - }; - _.Ob = function g4d() { - return b4d(this); - }; - _.Sb = function h4d() { - return c4d(this); - }; - _.Pb = function i4d() { - return d4d(this); - }; - _.Tb = function j4d() { - return this.a; - }; - _.Ub = function k4d() { - var a; - if (c4d(this)) { - a4d(this); - this.g = --this.a; - if (this.Lk()) { - a = b3d(this.e, this.b, this.c, this.a, this.j); - this.j = a; - } - this.i = 0; - return this.j; - } else { - throw vbb(new utb()); - } - }; - _.Vb = function l4d() { - return this.a - 1; - }; - _.Qb = function m4d() { - if (this.g == -1) { - throw vbb(new Ydb()); - } - a4d(this); - try { - Z2d(this.e, this.b, this.g); - this.d = this.e.j; - if (this.g < this.a) { - --this.a; - --this.c; - } - --this.g; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - throw vbb(new Apb()); - } else - throw vbb(a); - } - }; - _.Lk = function n4d() { - return false; - }; - _.Wb = function o4d(b) { - if (this.g == -1) { - throw vbb(new Ydb()); - } - a4d(this); - try { - e3d(this.e, this.b, this.g, b); - this.d = this.e.j; - } catch (a) { - a = ubb(a); - if (JD(a, 73)) { - throw vbb(new Apb()); - } else - throw vbb(a); - } - }; - _.a = 0; - _.c = 0; - _.d = 0; - _.f = false; - _.g = 0; - _.i = 0; - var G9 = mdb(yve, "FeatureMapUtil/BasicFeatureEIterator", 1851); - bcb(410, 1851, jie, p4d); - _.pl = function q4d() { - var a, b, c; - c = this.e.i; - a = BD(this.e.g, 119); - while (this.c < c) { - b = a[this.c]; - if (this.k.rl(b.ak())) { - this.j = this.f ? b : b.dd(); - this.i = 2; - return true; - } - ++this.c; - } - this.i = 1; - this.g = -1; - return false; - }; - _.ql = function r4d() { - var a, b; - a = BD(this.e.g, 119); - while (--this.c >= 0) { - b = a[this.c]; - if (this.k.rl(b.ak())) { - this.j = this.f ? b : b.dd(); - this.i = -2; - return true; - } - } - this.i = -1; - this.g = -1; - return false; - }; - var H8 = mdb(yve, "BasicFeatureMap/FeatureEIterator", 410); - bcb(662, 410, jie, s4d); - _.Lk = function t4d() { - return true; - }; - var I8 = mdb(yve, "BasicFeatureMap/ResolvingFeatureEIterator", 662); - bcb(955, 486, Vve, u4d); - _.Gi = function v4d() { - return this; - }; - var M8 = mdb(yve, "EContentsEList/1", 955); - bcb(956, 486, Vve, w4d); - _.Lk = function x4d() { - return false; - }; - var N8 = mdb(yve, "EContentsEList/2", 956); - bcb(954, 279, Wve, y4d); - _.Nk = function z4d(a) { - }; - _.Ob = function A4d() { - return false; - }; - _.Sb = function B4d() { - return false; - }; - var O8 = mdb(yve, "EContentsEList/FeatureIteratorImpl/1", 954); - bcb(825, 585, Pve, C4d); - _.ci = function D4d() { - this.a = true; - }; - _.fj = function E4d() { - return this.a; - }; - _.Xj = function F4d() { - var a; - Uxd(this); - if (oid(this.e)) { - a = this.a; - this.a = false; - Uhd(this.e, new qSd(this.e, 2, this.c, a, false)); - } else { - this.a = false; - } - }; - _.a = false; - var S8 = mdb(yve, "EDataTypeEList/Unsettable", 825); - bcb(1849, 585, Pve, G4d); - _.hi = function H4d() { - return true; - }; - var V8 = mdb(yve, "EDataTypeUniqueEList", 1849); - bcb(1850, 825, Pve, I4d); - _.hi = function J4d() { - return true; - }; - var U8 = mdb(yve, "EDataTypeUniqueEList/Unsettable", 1850); - bcb(139, 85, Pve, K4d); - _.Ek = function L4d() { - return true; - }; - _.li = function M4d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var W8 = mdb(yve, "EObjectContainmentEList/Resolving", 139); - bcb(1163, 545, Pve, N4d); - _.Ek = function O4d() { - return true; - }; - _.li = function P4d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var X8 = mdb(yve, "EObjectContainmentEList/Unsettable/Resolving", 1163); - bcb(748, 16, Pve, Q4d); - _.ci = function R4d() { - this.a = true; - }; - _.fj = function S4d() { - return this.a; - }; - _.Xj = function T4d() { - var a; - Uxd(this); - if (oid(this.e)) { - a = this.a; - this.a = false; - Uhd(this.e, new qSd(this.e, 2, this.c, a, false)); - } else { - this.a = false; - } - }; - _.a = false; - var a9 = mdb(yve, "EObjectContainmentWithInverseEList/Unsettable", 748); - bcb(1173, 748, Pve, U4d); - _.Ek = function V4d() { - return true; - }; - _.li = function W4d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var _8 = mdb(yve, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1173); - bcb(743, 496, Pve, X4d); - _.ci = function Y4d() { - this.a = true; - }; - _.fj = function Z4d() { - return this.a; - }; - _.Xj = function $4d() { - var a; - Uxd(this); - if (oid(this.e)) { - a = this.a; - this.a = false; - Uhd(this.e, new qSd(this.e, 2, this.c, a, false)); - } else { - this.a = false; - } - }; - _.a = false; - var c9 = mdb(yve, "EObjectEList/Unsettable", 743); - bcb(328, 496, Pve, _4d); - _.Ek = function a5d() { - return true; - }; - _.li = function b5d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var f9 = mdb(yve, "EObjectResolvingEList", 328); - bcb(1641, 743, Pve, c5d); - _.Ek = function d5d() { - return true; - }; - _.li = function e5d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var e9 = mdb(yve, "EObjectResolvingEList/Unsettable", 1641); - bcb(1381, 1, {}, h5d); - var f5d; - var g9 = mdb(yve, "EObjectValidator", 1381); - bcb(546, 496, Pve, i5d); - _.zk = function j5d() { - return this.d; - }; - _.Ak = function k5d() { - return this.b; - }; - _.bj = function l5d() { - return true; - }; - _.Dk = function m5d() { - return true; - }; - _.b = 0; - var k9 = mdb(yve, "EObjectWithInverseEList", 546); - bcb(1176, 546, Pve, n5d); - _.Ck = function o5d() { - return true; - }; - var h9 = mdb(yve, "EObjectWithInverseEList/ManyInverse", 1176); - bcb(625, 546, Pve, p5d); - _.ci = function q5d() { - this.a = true; - }; - _.fj = function r5d() { - return this.a; - }; - _.Xj = function s5d() { - var a; - Uxd(this); - if (oid(this.e)) { - a = this.a; - this.a = false; - Uhd(this.e, new qSd(this.e, 2, this.c, a, false)); - } else { - this.a = false; - } - }; - _.a = false; - var j9 = mdb(yve, "EObjectWithInverseEList/Unsettable", 625); - bcb(1175, 625, Pve, t5d); - _.Ck = function u5d() { - return true; - }; - var i9 = mdb(yve, "EObjectWithInverseEList/Unsettable/ManyInverse", 1175); - bcb(749, 546, Pve, v5d); - _.Ek = function w5d() { - return true; - }; - _.li = function x5d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var o9 = mdb(yve, "EObjectWithInverseResolvingEList", 749); - bcb(31, 749, Pve, y5d); - _.Ck = function z5d() { - return true; - }; - var l9 = mdb(yve, "EObjectWithInverseResolvingEList/ManyInverse", 31); - bcb(750, 625, Pve, A5d); - _.Ek = function B5d() { - return true; - }; - _.li = function C5d(a, b) { - return ILd(this, a, BD(b, 56)); - }; - var n9 = mdb(yve, "EObjectWithInverseResolvingEList/Unsettable", 750); - bcb(1174, 750, Pve, D5d); - _.Ck = function E5d() { - return true; - }; - var m9 = mdb(yve, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1174); - bcb(1164, 622, Pve); - _.ai = function F5d() { - return (this.b & 1792) == 0; - }; - _.ci = function G5d() { - this.b |= 1; - }; - _.Bk = function H5d() { - return (this.b & 4) != 0; - }; - _.bj = function I5d() { - return (this.b & 40) != 0; - }; - _.Ck = function J5d() { - return (this.b & 16) != 0; - }; - _.Dk = function K5d() { - return (this.b & 8) != 0; - }; - _.Ek = function L5d() { - return (this.b & Dve) != 0; - }; - _.rk = function M5d() { - return (this.b & 32) != 0; - }; - _.Fk = function N5d() { - return (this.b & zte) != 0; - }; - _.wj = function O5d(a) { - return !this.d ? this.ak().Yj().wj(a) : qEd(this.d, a); - }; - _.fj = function P5d() { - return (this.b & 2) != 0 ? (this.b & 1) != 0 : this.i != 0; - }; - _.hi = function Q5d() { - return (this.b & 128) != 0; - }; - _.Xj = function S5d() { - var a; - Uxd(this); - if ((this.b & 2) != 0) { - if (oid(this.e)) { - a = (this.b & 1) != 0; - this.b &= -2; - GLd(this, new qSd(this.e, 2, bLd(this.e.Tg(), this.ak()), a, false)); - } else { - this.b &= -2; - } - } - }; - _.ni = function T5d() { - return (this.b & 1536) == 0; - }; - _.b = 0; - var q9 = mdb(yve, "EcoreEList/Generic", 1164); - bcb(1165, 1164, Pve, U5d); - _.ak = function V5d() { - return this.a; - }; - var p9 = mdb(yve, "EcoreEList/Dynamic", 1165); - bcb(747, 63, oue, W5d); - _.ri = function X5d(a) { - return izd(this.a.a, a); - }; - var u9 = mdb(yve, "EcoreEMap/1", 747); - bcb(746, 85, Pve, Y5d); - _.bi = function Z5d(a, b) { - uAd(this.b, BD(b, 133)); - }; - _.di = function $5d(a, b) { - tAd(this.b); - }; - _.ei = function _5d(a, b, c) { - var d; - ++(d = this.b, BD(b, 133), d).e; - }; - _.fi = function a6d(a, b) { - vAd(this.b, BD(b, 133)); - }; - _.gi = function b6d(a, b, c) { - vAd(this.b, BD(c, 133)); - PD(c) === PD(b) && BD(c, 133).Th(CAd(BD(b, 133).cd())); - uAd(this.b, BD(b, 133)); - }; - var v9 = mdb(yve, "EcoreEMap/DelegateEObjectContainmentEList", 746); - bcb(1171, 151, Ave, c6d); - var x9 = mdb(yve, "EcoreEMap/Unsettable", 1171); - bcb(1172, 746, Pve, d6d); - _.ci = function e6d() { - this.a = true; - }; - _.fj = function f6d() { - return this.a; - }; - _.Xj = function g6d() { - var a; - Uxd(this); - if (oid(this.e)) { - a = this.a; - this.a = false; - Uhd(this.e, new qSd(this.e, 2, this.c, a, false)); - } else { - this.a = false; - } - }; - _.a = false; - var w9 = mdb(yve, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1172); - bcb(1168, 228, fke, A6d); - _.a = false; - _.b = false; - var A9 = mdb(yve, "EcoreUtil/Copier", 1168); - bcb(745, 1, aie, C6d); - _.Nb = function D6d(a) { - Rrb(this, a); - }; - _.Ob = function E6d() { - return B6d(this); - }; - _.Pb = function F6d() { - var a; - B6d(this); - a = this.b; - this.b = null; - return a; - }; - _.Qb = function G6d() { - this.a.Qb(); - }; - var B9 = mdb(yve, "EcoreUtil/ProperContentIterator", 745); - bcb(1382, 1381, {}, J6d); - var H6d; - var C9 = mdb(yve, "EcoreValidator", 1382); - var P6d; - var N9 = odb(yve, "FeatureMapUtil/Validator"); - bcb(1260, 1, { 1942: 1 }, U6d); - _.rl = function V6d(a) { - return true; - }; - var F9 = mdb(yve, "FeatureMapUtil/1", 1260); - bcb(757, 1, { 1942: 1 }, Z6d); - _.rl = function $6d(a) { - var b; - if (this.c == a) - return true; - b = DD(Ohb(this.a, a)); - if (b == null) { - if (Y6d(this, a)) { - _6d(this.a, a, (Bcb(), Acb)); - return true; - } else { - _6d(this.a, a, (Bcb(), zcb)); - return false; - } - } else { - return b == (Bcb(), Acb); - } - }; - _.e = false; - var W6d; - var I9 = mdb(yve, "FeatureMapUtil/BasicValidator", 757); - bcb(758, 43, fke, a7d); - var H9 = mdb(yve, "FeatureMapUtil/BasicValidator/Cache", 758); - bcb(501, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, f7d); - _.Vc = function g7d(a, b) { - p2d(this.c, this.b, a, b); - }; - _.Fc = function h7d(a) { - return q2d(this.c, this.b, a); - }; - _.Wc = function i7d(a, b) { - return s2d(this.c, this.b, a, b); - }; - _.Gc = function j7d(a) { - return b7d(this, a); - }; - _.Xh = function k7d(a, b) { - u2d(this.c, this.b, a, b); - }; - _.lk = function l7d(a, b) { - return x2d(this.c, this.b, a, b); - }; - _.pi = function m7d(a) { - return J2d(this.c, this.b, a, false); - }; - _.Zh = function n7d() { - return y2d(this.c, this.b); - }; - _.$h = function o7d() { - return z2d(this.c, this.b); - }; - _._h = function p7d(a) { - return A2d(this.c, this.b, a); - }; - _.mk = function q7d(a, b) { - return c7d(this, a, b); - }; - _.$b = function r7d() { - d7d(this); - }; - _.Hc = function s7d(a) { - return E2d(this.c, this.b, a); - }; - _.Ic = function t7d(a) { - return G2d(this.c, this.b, a); - }; - _.Xb = function u7d(a) { - return J2d(this.c, this.b, a, true); - }; - _.Wj = function v7d(a) { - return this; - }; - _.Xc = function w7d(a) { - return L2d(this.c, this.b, a); - }; - _.dc = function x7d() { - return e7d(this); - }; - _.fj = function y7d() { - return !R2d(this.c, this.b); - }; - _.Kc = function z7d() { - return S2d(this.c, this.b); - }; - _.Yc = function A7d() { - return U2d(this.c, this.b); - }; - _.Zc = function B7d(a) { - return V2d(this.c, this.b, a); - }; - _.ii = function C7d(a, b) { - return X2d(this.c, this.b, a, b); - }; - _.ji = function D7d(a, b) { - Y2d(this.c, this.b, a, b); - }; - _.$c = function E7d(a) { - return Z2d(this.c, this.b, a); - }; - _.Mc = function F7d(a) { - return $2d(this.c, this.b, a); - }; - _._c = function G7d(a, b) { - return e3d(this.c, this.b, a, b); - }; - _.Wb = function H7d(a) { - D2d(this.c, this.b); - b7d(this, BD(a, 15)); - }; - _.gc = function I7d() { - return n3d(this.c, this.b); - }; - _.Pc = function J7d() { - return o3d(this.c, this.b); - }; - _.Qc = function K7d(a) { - return q3d(this.c, this.b, a); - }; - _.Ib = function L7d() { - var a, b; - b = new Hfb(); - b.a += "["; - for (a = y2d(this.c, this.b); b4d(a); ) { - Efb(b, xfb(d4d(a))); - b4d(a) && (b.a += She, b); - } - b.a += "]"; - return b.a; - }; - _.Xj = function M7d() { - D2d(this.c, this.b); - }; - var J9 = mdb(yve, "FeatureMapUtil/FeatureEList", 501); - bcb(627, 36, fve, O7d); - _.yi = function P7d(a) { - return N7d(this, a); - }; - _.Di = function Q7d(a) { - var b, c, d, e, f, g10, h; - switch (this.d) { - case 1: - case 2: { - f = a.Ai(); - if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) { - this.g = a.zi(); - a.xi() == 1 && (this.d = 1); - return true; - } - break; - } - case 3: { - e = a.xi(); - switch (e) { - case 3: { - f = a.Ai(); - if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) { - this.d = 5; - b = new zud(2); - wtd(b, this.g); - wtd(b, a.zi()); - this.g = b; - return true; - } - break; - } - } - break; - } - case 5: { - e = a.xi(); - switch (e) { - case 3: { - f = a.Ai(); - if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) { - c = BD(this.g, 14); - c.Fc(a.zi()); - return true; - } - break; - } - } - break; - } - case 4: { - e = a.xi(); - switch (e) { - case 3: { - f = a.Ai(); - if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) { - this.d = 1; - this.g = a.zi(); - return true; - } - break; - } - case 4: { - f = a.Ai(); - if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) { - this.d = 6; - h = new zud(2); - wtd(h, this.n); - wtd(h, a.Bi()); - this.n = h; - g10 = OC(GC(WD, 1), oje, 25, 15, [this.o, a.Ci()]); - this.g = g10; - return true; - } - break; - } - } - break; - } - case 6: { - e = a.xi(); - switch (e) { - case 4: { - f = a.Ai(); - if (PD(f) === PD(this.c) && N7d(this, null) == a.yi(null)) { - c = BD(this.n, 14); - c.Fc(a.Bi()); - g10 = BD(this.g, 48); - d = KC(WD, oje, 25, g10.length + 1, 15, 1); - $fb(g10, 0, d, 0, g10.length); - d[g10.length] = a.Ci(); - this.g = d; - return true; - } - break; - } - } - break; - } - } - return false; - }; - var K9 = mdb(yve, "FeatureMapUtil/FeatureENotificationImpl", 627); - bcb(552, 501, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, R7d); - _.dl = function S7d(a, b) { - return q2d(this.c, a, b); - }; - _.el = function T7d(a, b, c) { - return x2d(this.c, a, b, c); - }; - _.fl = function U7d(a, b, c) { - return C2d(this.c, a, b, c); - }; - _.gl = function V7d() { - return this; - }; - _.hl = function W7d(a, b) { - return K2d(this.c, a, b); - }; - _.il = function X7d(a) { - return BD(J2d(this.c, this.b, a, false), 72).ak(); - }; - _.jl = function Y7d(a) { - return BD(J2d(this.c, this.b, a, false), 72).dd(); - }; - _.kl = function Z7d() { - return this.a; - }; - _.ll = function $7d(a) { - return !R2d(this.c, a); - }; - _.ml = function _7d(a, b) { - f3d(this.c, a, b); - }; - _.nl = function a8d(a) { - return g3d(this.c, a); - }; - _.ol = function b8d(a) { - s3d(this.c, a); - }; - var L9 = mdb(yve, "FeatureMapUtil/FeatureFeatureMap", 552); - bcb(1259, 1, zve, c8d); - _.Wj = function d8d(a) { - return J2d(this.b, this.a, -1, a); - }; - _.fj = function e8d() { - return !R2d(this.b, this.a); - }; - _.Wb = function f8d(a) { - f3d(this.b, this.a, a); - }; - _.Xj = function g8d() { - D2d(this.b, this.a); - }; - var M9 = mdb(yve, "FeatureMapUtil/FeatureValue", 1259); - var h8d, i8d, j8d, k8d, l8d; - var Q9 = odb(Iwe, "AnyType"); - bcb(666, 60, Tie, n8d); - var R9 = mdb(Iwe, "InvalidDatatypeValueException", 666); - var S9 = odb(Iwe, Jwe); - var T9 = odb(Iwe, Kwe); - var U9 = odb(Iwe, Lwe); - var o8d; - var q8d; - var s8d, t8d, u8d, v8d, w8d, x8d, y8d, z8d, A8d, B8d, C8d, D8d, E8d, F8d, G8d, H8d, I8d, J8d, K8d, L8d, M8d, N8d, O8d, P8d; - bcb(830, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1 }, R8d); - _._g = function S8d(a, b, c) { - switch (a) { - case 0: - if (c) - return !this.c && (this.c = new u3d(this, 0)), this.c; - return !this.c && (this.c = new u3d(this, 0)), this.c.b; - case 1: - if (c) - return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153); - return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl(); - case 2: - if (c) - return !this.b && (this.b = new u3d(this, 2)), this.b; - return !this.b && (this.b = new u3d(this, 2)), this.b.b; - } - return bid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c); - }; - _.jh = function T8d(a, b, c) { - var d; - switch (b) { - case 0: - return !this.c && (this.c = new u3d(this, 0)), B2d(this.c, a, c); - case 1: - return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 69)).mk(a, c); - case 2: - return !this.b && (this.b = new u3d(this, 2)), B2d(this.b, a, c); - } - return d = BD(XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd(this.zh()), a, c); - }; - _.lh = function U8d(a) { - switch (a) { - case 0: - return !!this.c && this.c.i != 0; - case 1: - return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc(); - case 2: - return !!this.b && this.b.i != 0; - } - return cid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.sh = function V8d(a, b) { - switch (a) { - case 0: - !this.c && (this.c = new u3d(this, 0)); - d3d(this.c, b); - return; - case 1: - (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b); - return; - case 2: - !this.b && (this.b = new u3d(this, 2)); - d3d(this.b, b); - return; - } - did(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b); - }; - _.zh = function W8d() { - return Q8d(), s8d; - }; - _.Bh = function X8d(a) { - switch (a) { - case 0: - !this.c && (this.c = new u3d(this, 0)); - Uxd(this.c); - return; - case 1: - (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b(); - return; - case 2: - !this.b && (this.b = new u3d(this, 2)); - Uxd(this.b); - return; - } - eid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.Ib = function Y8d() { - var a; - if ((this.j & 4) != 0) - return Eid(this); - a = new Jfb(Eid(this)); - a.a += " (mixed: "; - Dfb(a, this.c); - a.a += ", anyAttribute: "; - Dfb(a, this.b); - a.a += ")"; - return a.a; - }; - var V9 = mdb(Mwe, "AnyTypeImpl", 830); - bcb(667, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2021: 1, 667: 1 }, _8d); - _._g = function a9d(a, b, c) { - switch (a) { - case 0: - return this.a; - case 1: - return this.b; - } - return bid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c); - }; - _.lh = function b9d(a) { - switch (a) { - case 0: - return this.a != null; - case 1: - return this.b != null; - } - return cid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.sh = function c9d(a, b) { - switch (a) { - case 0: - Z8d(this, GD(b)); - return; - case 1: - $8d(this, GD(b)); - return; - } - did(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b); - }; - _.zh = function d9d() { - return Q8d(), F8d; - }; - _.Bh = function e9d(a) { - switch (a) { - case 0: - this.a = null; - return; - case 1: - this.b = null; - return; - } - eid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.Ib = function f9d() { - var a; - if ((this.j & 4) != 0) - return Eid(this); - a = new Jfb(Eid(this)); - a.a += " (data: "; - Efb(a, this.a); - a.a += ", target: "; - Efb(a, this.b); - a.a += ")"; - return a.a; - }; - _.a = null; - _.b = null; - var W9 = mdb(Mwe, "ProcessingInstructionImpl", 667); - bcb(668, 830, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1, 2022: 1, 668: 1 }, i9d); - _._g = function j9d(a, b, c) { - switch (a) { - case 0: - if (c) - return !this.c && (this.c = new u3d(this, 0)), this.c; - return !this.c && (this.c = new u3d(this, 0)), this.c.b; - case 1: - if (c) - return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153); - return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl(); - case 2: - if (c) - return !this.b && (this.b = new u3d(this, 2)), this.b; - return !this.b && (this.b = new u3d(this, 2)), this.b.b; - case 3: - return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)); - case 4: - return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)))); - case 5: - return this.a; - } - return bid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c); - }; - _.lh = function k9d(a) { - switch (a) { - case 0: - return !!this.c && this.c.i != 0; - case 1: - return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc(); - case 2: - return !!this.b && this.b.i != 0; - case 3: - return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)) != null; - case 4: - return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)))) != null; - case 5: - return !!this.a; - } - return cid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.sh = function l9d(a, b) { - switch (a) { - case 0: - !this.c && (this.c = new u3d(this, 0)); - d3d(this.c, b); - return; - case 1: - (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b); - return; - case 2: - !this.b && (this.b = new u3d(this, 2)); - d3d(this.b, b); - return; - case 3: - h9d(this, GD(b)); - return; - case 4: - h9d(this, h6d(this.a, b)); - return; - case 5: - g9d(this, BD(b, 148)); - return; - } - did(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b); - }; - _.zh = function m9d() { - return Q8d(), H8d; - }; - _.Bh = function n9d(a) { - switch (a) { - case 0: - !this.c && (this.c = new u3d(this, 0)); - Uxd(this.c); - return; - case 1: - (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b(); - return; - case 2: - !this.b && (this.b = new u3d(this, 2)); - Uxd(this.b); - return; - case 3: - !this.c && (this.c = new u3d(this, 0)); - f3d(this.c, (Q8d(), I8d), null); - return; - case 4: - h9d(this, h6d(this.a, null)); - return; - case 5: - this.a = null; - return; - } - eid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - var X9 = mdb(Mwe, "SimpleAnyTypeImpl", 668); - bcb(669, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2023: 1, 669: 1 }, o9d); - _._g = function p9d(a, b, c) { - switch (a) { - case 0: - if (c) - return !this.a && (this.a = new u3d(this, 0)), this.a; - return !this.a && (this.a = new u3d(this, 0)), this.a.b; - case 1: - return c ? (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), this.b) : (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), FAd(this.b)); - case 2: - return c ? (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), this.c) : (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), FAd(this.c)); - case 3: - return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), L8d)); - case 4: - return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), M8d)); - case 5: - return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), O8d)); - case 6: - return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), P8d)); - } - return bid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c); - }; - _.jh = function q9d(a, b, c) { - var d; - switch (b) { - case 0: - return !this.a && (this.a = new u3d(this, 0)), B2d(this.a, a, c); - case 1: - return !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), bId(this.b, a, c); - case 2: - return !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), bId(this.c, a, c); - case 5: - return !this.a && (this.a = new u3d(this, 0)), c7d(T2d(this.a, (Q8d(), O8d)), a, c); - } - return d = BD(XKd((this.j & 2) == 0 ? (Q8d(), K8d) : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd((Q8d(), K8d)), a, c); - }; - _.lh = function r9d(a) { - switch (a) { - case 0: - return !!this.a && this.a.i != 0; - case 1: - return !!this.b && this.b.f != 0; - case 2: - return !!this.c && this.c.f != 0; - case 3: - return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), L8d))); - case 4: - return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), M8d))); - case 5: - return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), O8d))); - case 6: - return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), P8d))); - } - return cid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.sh = function s9d(a, b) { - switch (a) { - case 0: - !this.a && (this.a = new u3d(this, 0)); - d3d(this.a, b); - return; - case 1: - !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)); - cId(this.b, b); - return; - case 2: - !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)); - cId(this.c, b); - return; - case 3: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), L8d))); - !this.a && (this.a = new u3d(this, 0)); - b7d(T2d(this.a, L8d), BD(b, 14)); - return; - case 4: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), M8d))); - !this.a && (this.a = new u3d(this, 0)); - b7d(T2d(this.a, M8d), BD(b, 14)); - return; - case 5: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), O8d))); - !this.a && (this.a = new u3d(this, 0)); - b7d(T2d(this.a, O8d), BD(b, 14)); - return; - case 6: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), P8d))); - !this.a && (this.a = new u3d(this, 0)); - b7d(T2d(this.a, P8d), BD(b, 14)); - return; - } - did(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b); - }; - _.zh = function t9d() { - return Q8d(), K8d; - }; - _.Bh = function u9d(a) { - switch (a) { - case 0: - !this.a && (this.a = new u3d(this, 0)); - Uxd(this.a); - return; - case 1: - !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)); - this.b.c.$b(); - return; - case 2: - !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)); - this.c.c.$b(); - return; - case 3: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), L8d))); - return; - case 4: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), M8d))); - return; - case 5: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), O8d))); - return; - case 6: - !this.a && (this.a = new u3d(this, 0)); - d7d(T2d(this.a, (Q8d(), P8d))); - return; - } - eid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a)); - }; - _.Ib = function v9d() { - var a; - if ((this.j & 4) != 0) - return Eid(this); - a = new Jfb(Eid(this)); - a.a += " (mixed: "; - Dfb(a, this.a); - a.a += ")"; - return a.a; - }; - var Y9 = mdb(Mwe, "XMLTypeDocumentRootImpl", 669); - bcb(1919, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1, 2024: 1 }, U9d); - _.Ih = function V9d(a, b) { - switch (a.yj()) { - case 7: - case 8: - case 9: - case 10: - case 16: - case 22: - case 23: - case 24: - case 25: - case 26: - case 32: - case 33: - case 34: - case 36: - case 37: - case 44: - case 45: - case 50: - case 51: - case 53: - case 55: - case 56: - case 57: - case 58: - case 60: - case 61: - case 4: - return b == null ? null : fcb(b); - case 19: - case 28: - case 29: - case 35: - case 38: - case 39: - case 41: - case 46: - case 52: - case 54: - case 5: - return GD(b); - case 6: - return C9d(BD(b, 190)); - case 12: - case 47: - case 49: - case 11: - return Vmd(this, a, b); - case 13: - return b == null ? null : qgb(BD(b, 240)); - case 15: - case 14: - return b == null ? null : D9d(Edb(ED(b))); - case 17: - return E9d((Q8d(), b)); - case 18: - return E9d(b); - case 21: - case 20: - return b == null ? null : F9d(BD(b, 155).a); - case 27: - return G9d(BD(b, 190)); - case 30: - return H9d((Q8d(), BD(b, 15))); - case 31: - return H9d(BD(b, 15)); - case 40: - return K9d((Q8d(), b)); - case 42: - return I9d((Q8d(), b)); - case 43: - return I9d(b); - case 59: - case 48: - return J9d((Q8d(), b)); - default: - throw vbb(new Wdb(tte + a.ne() + ute)); - } - }; - _.Jh = function W9d(a) { - var b, c, d, e, f; - switch (a.G == -1 && (a.G = (c = bKd(a), c ? HLd(c.Mh(), a) : -1)), a.G) { - case 0: - return b = new R8d(), b; - case 1: - return d = new _8d(), d; - case 2: - return e = new i9d(), e; - case 3: - return f = new o9d(), f; - default: - throw vbb(new Wdb(xte + a.zb + ute)); - } - }; - _.Kh = function X9d(a, b) { - var c, d, e, f, g10, h, i10, j, k, l, m, n, o10, p, q, r; - switch (a.yj()) { - case 5: - case 52: - case 4: - return b; - case 6: - return L9d(b); - case 8: - case 7: - return b == null ? null : B9d(b); - case 9: - return b == null ? null : Scb(Icb((d = Qge(b, true), d.length > 0 && (BCb(0, d.length), d.charCodeAt(0) == 43) ? d.substr(1) : d), -128, 127) << 24 >> 24); - case 10: - return b == null ? null : Scb(Icb((e = Qge(b, true), e.length > 0 && (BCb(0, e.length), e.charCodeAt(0) == 43) ? e.substr(1) : e), -128, 127) << 24 >> 24); - case 11: - return GD(Wmd(this, (Q8d(), w8d), b)); - case 12: - return GD(Wmd(this, (Q8d(), x8d), b)); - case 13: - return b == null ? null : new tgb(Qge(b, true)); - case 15: - case 14: - return M9d(b); - case 16: - return GD(Wmd(this, (Q8d(), y8d), b)); - case 17: - return N9d((Q8d(), b)); - case 18: - return N9d(b); - case 28: - case 29: - case 35: - case 38: - case 39: - case 41: - case 54: - case 19: - return Qge(b, true); - case 21: - case 20: - return O9d(b); - case 22: - return GD(Wmd(this, (Q8d(), z8d), b)); - case 23: - return GD(Wmd(this, (Q8d(), A8d), b)); - case 24: - return GD(Wmd(this, (Q8d(), B8d), b)); - case 25: - return GD(Wmd(this, (Q8d(), C8d), b)); - case 26: - return GD(Wmd(this, (Q8d(), D8d), b)); - case 27: - return P9d(b); - case 30: - return Q9d((Q8d(), b)); - case 31: - return Q9d(b); - case 32: - return b == null ? null : meb(Icb((k = Qge(b, true), k.length > 0 && (BCb(0, k.length), k.charCodeAt(0) == 43) ? k.substr(1) : k), Rie, Ohe)); - case 33: - return b == null ? null : new Ygb((l = Qge(b, true), l.length > 0 && (BCb(0, l.length), l.charCodeAt(0) == 43) ? l.substr(1) : l)); - case 34: - return b == null ? null : meb(Icb((m = Qge(b, true), m.length > 0 && (BCb(0, m.length), m.charCodeAt(0) == 43) ? m.substr(1) : m), Rie, Ohe)); - case 36: - return b == null ? null : Aeb(Jcb((n = Qge(b, true), n.length > 0 && (BCb(0, n.length), n.charCodeAt(0) == 43) ? n.substr(1) : n))); - case 37: - return b == null ? null : Aeb(Jcb((o10 = Qge(b, true), o10.length > 0 && (BCb(0, o10.length), o10.charCodeAt(0) == 43) ? o10.substr(1) : o10))); - case 40: - return T9d((Q8d(), b)); - case 42: - return R9d((Q8d(), b)); - case 43: - return R9d(b); - case 44: - return b == null ? null : new Ygb((p = Qge(b, true), p.length > 0 && (BCb(0, p.length), p.charCodeAt(0) == 43) ? p.substr(1) : p)); - case 45: - return b == null ? null : new Ygb((q = Qge(b, true), q.length > 0 && (BCb(0, q.length), q.charCodeAt(0) == 43) ? q.substr(1) : q)); - case 46: - return Qge(b, false); - case 47: - return GD(Wmd(this, (Q8d(), E8d), b)); - case 59: - case 48: - return S9d((Q8d(), b)); - case 49: - return GD(Wmd(this, (Q8d(), G8d), b)); - case 50: - return b == null ? null : Web(Icb((r = Qge(b, true), r.length > 0 && (BCb(0, r.length), r.charCodeAt(0) == 43) ? r.substr(1) : r), awe, 32767) << 16 >> 16); - case 51: - return b == null ? null : Web(Icb((f = Qge(b, true), f.length > 0 && (BCb(0, f.length), f.charCodeAt(0) == 43) ? f.substr(1) : f), awe, 32767) << 16 >> 16); - case 53: - return GD(Wmd(this, (Q8d(), J8d), b)); - case 55: - return b == null ? null : Web(Icb((g10 = Qge(b, true), g10.length > 0 && (BCb(0, g10.length), g10.charCodeAt(0) == 43) ? g10.substr(1) : g10), awe, 32767) << 16 >> 16); - case 56: - return b == null ? null : Web(Icb((h = Qge(b, true), h.length > 0 && (BCb(0, h.length), h.charCodeAt(0) == 43) ? h.substr(1) : h), awe, 32767) << 16 >> 16); - case 57: - return b == null ? null : Aeb(Jcb((i10 = Qge(b, true), i10.length > 0 && (BCb(0, i10.length), i10.charCodeAt(0) == 43) ? i10.substr(1) : i10))); - case 58: - return b == null ? null : Aeb(Jcb((j = Qge(b, true), j.length > 0 && (BCb(0, j.length), j.charCodeAt(0) == 43) ? j.substr(1) : j))); - case 60: - return b == null ? null : meb(Icb((c = Qge(b, true), c.length > 0 && (BCb(0, c.length), c.charCodeAt(0) == 43) ? c.substr(1) : c), Rie, Ohe)); - case 61: - return b == null ? null : meb(Icb(Qge(b, true), Rie, Ohe)); - default: - throw vbb(new Wdb(tte + a.ne() + ute)); - } - }; - var w9d, x9d, y9d, z9d; - var Z9 = mdb(Mwe, "XMLTypeFactoryImpl", 1919); - bcb(586, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1, 1945: 1, 586: 1 }, cae); - _.N = false; - _.O = false; - var Z9d = false; - var Yab = mdb(Mwe, "XMLTypePackageImpl", 586); - bcb(1852, 1, { 837: 1 }, fae); - _._j = function gae() { - return Uge(), Tge; - }; - var iab = mdb(Mwe, "XMLTypePackageImpl/1", 1852); - bcb(1861, 1, nwe, hae); - _.wj = function iae(a) { - return ND(a); - }; - _.xj = function jae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var $9 = mdb(Mwe, "XMLTypePackageImpl/10", 1861); - bcb(1862, 1, nwe, kae); - _.wj = function lae(a) { - return ND(a); - }; - _.xj = function mae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var _9 = mdb(Mwe, "XMLTypePackageImpl/11", 1862); - bcb(1863, 1, nwe, nae); - _.wj = function oae(a) { - return ND(a); - }; - _.xj = function pae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var aab = mdb(Mwe, "XMLTypePackageImpl/12", 1863); - bcb(1864, 1, nwe, qae); - _.wj = function rae(a) { - return LD(a); - }; - _.xj = function sae(a) { - return KC(BI, nie, 333, a, 7, 1); - }; - var bab = mdb(Mwe, "XMLTypePackageImpl/13", 1864); - bcb(1865, 1, nwe, tae); - _.wj = function uae(a) { - return ND(a); - }; - _.xj = function vae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var cab = mdb(Mwe, "XMLTypePackageImpl/14", 1865); - bcb(1866, 1, nwe, wae); - _.wj = function xae(a) { - return JD(a, 15); - }; - _.xj = function yae(a) { - return KC(yK, eme, 15, a, 0, 1); - }; - var dab = mdb(Mwe, "XMLTypePackageImpl/15", 1866); - bcb(1867, 1, nwe, zae); - _.wj = function Aae(a) { - return JD(a, 15); - }; - _.xj = function Bae(a) { - return KC(yK, eme, 15, a, 0, 1); - }; - var eab = mdb(Mwe, "XMLTypePackageImpl/16", 1867); - bcb(1868, 1, nwe, Cae); - _.wj = function Dae(a) { - return ND(a); - }; - _.xj = function Eae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var fab = mdb(Mwe, "XMLTypePackageImpl/17", 1868); - bcb(1869, 1, nwe, Fae); - _.wj = function Gae(a) { - return JD(a, 155); - }; - _.xj = function Hae(a) { - return KC(FI, nie, 155, a, 0, 1); - }; - var gab = mdb(Mwe, "XMLTypePackageImpl/18", 1869); - bcb(1870, 1, nwe, Iae); - _.wj = function Jae(a) { - return ND(a); - }; - _.xj = function Kae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var hab = mdb(Mwe, "XMLTypePackageImpl/19", 1870); - bcb(1853, 1, nwe, Lae); - _.wj = function Mae(a) { - return JD(a, 843); - }; - _.xj = function Nae(a) { - return KC(Q9, Uhe, 843, a, 0, 1); - }; - var tab = mdb(Mwe, "XMLTypePackageImpl/2", 1853); - bcb(1871, 1, nwe, Oae); - _.wj = function Pae(a) { - return ND(a); - }; - _.xj = function Qae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var jab = mdb(Mwe, "XMLTypePackageImpl/20", 1871); - bcb(1872, 1, nwe, Rae); - _.wj = function Sae(a) { - return ND(a); - }; - _.xj = function Tae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var kab = mdb(Mwe, "XMLTypePackageImpl/21", 1872); - bcb(1873, 1, nwe, Uae); - _.wj = function Vae(a) { - return ND(a); - }; - _.xj = function Wae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var lab = mdb(Mwe, "XMLTypePackageImpl/22", 1873); - bcb(1874, 1, nwe, Xae); - _.wj = function Yae(a) { - return ND(a); - }; - _.xj = function Zae(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var mab = mdb(Mwe, "XMLTypePackageImpl/23", 1874); - bcb(1875, 1, nwe, $ae); - _.wj = function _ae(a) { - return JD(a, 190); - }; - _.xj = function abe(a) { - return KC(SD, nie, 190, a, 0, 2); - }; - var nab = mdb(Mwe, "XMLTypePackageImpl/24", 1875); - bcb(1876, 1, nwe, bbe); - _.wj = function cbe(a) { - return ND(a); - }; - _.xj = function dbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var oab = mdb(Mwe, "XMLTypePackageImpl/25", 1876); - bcb(1877, 1, nwe, ebe); - _.wj = function fbe(a) { - return ND(a); - }; - _.xj = function gbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var pab = mdb(Mwe, "XMLTypePackageImpl/26", 1877); - bcb(1878, 1, nwe, hbe); - _.wj = function ibe(a) { - return JD(a, 15); - }; - _.xj = function jbe(a) { - return KC(yK, eme, 15, a, 0, 1); - }; - var qab = mdb(Mwe, "XMLTypePackageImpl/27", 1878); - bcb(1879, 1, nwe, kbe); - _.wj = function lbe(a) { - return JD(a, 15); - }; - _.xj = function mbe(a) { - return KC(yK, eme, 15, a, 0, 1); - }; - var rab = mdb(Mwe, "XMLTypePackageImpl/28", 1879); - bcb(1880, 1, nwe, nbe); - _.wj = function obe(a) { - return ND(a); - }; - _.xj = function pbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var sab = mdb(Mwe, "XMLTypePackageImpl/29", 1880); - bcb(1854, 1, nwe, qbe); - _.wj = function rbe(a) { - return JD(a, 667); - }; - _.xj = function sbe(a) { - return KC(S9, Uhe, 2021, a, 0, 1); - }; - var Eab = mdb(Mwe, "XMLTypePackageImpl/3", 1854); - bcb(1881, 1, nwe, tbe); - _.wj = function ube(a) { - return JD(a, 19); - }; - _.xj = function vbe(a) { - return KC(JI, nie, 19, a, 0, 1); - }; - var uab = mdb(Mwe, "XMLTypePackageImpl/30", 1881); - bcb(1882, 1, nwe, wbe); - _.wj = function xbe(a) { - return ND(a); - }; - _.xj = function ybe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var vab = mdb(Mwe, "XMLTypePackageImpl/31", 1882); - bcb(1883, 1, nwe, zbe); - _.wj = function Abe(a) { - return JD(a, 162); - }; - _.xj = function Bbe(a) { - return KC(MI, nie, 162, a, 0, 1); - }; - var wab = mdb(Mwe, "XMLTypePackageImpl/32", 1883); - bcb(1884, 1, nwe, Cbe); - _.wj = function Dbe(a) { - return ND(a); - }; - _.xj = function Ebe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var xab = mdb(Mwe, "XMLTypePackageImpl/33", 1884); - bcb(1885, 1, nwe, Fbe); - _.wj = function Gbe(a) { - return ND(a); - }; - _.xj = function Hbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var yab = mdb(Mwe, "XMLTypePackageImpl/34", 1885); - bcb(1886, 1, nwe, Ibe); - _.wj = function Jbe(a) { - return ND(a); - }; - _.xj = function Kbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var zab = mdb(Mwe, "XMLTypePackageImpl/35", 1886); - bcb(1887, 1, nwe, Lbe); - _.wj = function Mbe(a) { - return ND(a); - }; - _.xj = function Nbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Aab = mdb(Mwe, "XMLTypePackageImpl/36", 1887); - bcb(1888, 1, nwe, Obe); - _.wj = function Pbe(a) { - return JD(a, 15); - }; - _.xj = function Qbe(a) { - return KC(yK, eme, 15, a, 0, 1); - }; - var Bab = mdb(Mwe, "XMLTypePackageImpl/37", 1888); - bcb(1889, 1, nwe, Rbe); - _.wj = function Sbe(a) { - return JD(a, 15); - }; - _.xj = function Tbe(a) { - return KC(yK, eme, 15, a, 0, 1); - }; - var Cab = mdb(Mwe, "XMLTypePackageImpl/38", 1889); - bcb(1890, 1, nwe, Ube); - _.wj = function Vbe(a) { - return ND(a); - }; - _.xj = function Wbe(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Dab = mdb(Mwe, "XMLTypePackageImpl/39", 1890); - bcb(1855, 1, nwe, Xbe); - _.wj = function Ybe(a) { - return JD(a, 668); - }; - _.xj = function Zbe(a) { - return KC(T9, Uhe, 2022, a, 0, 1); - }; - var Pab = mdb(Mwe, "XMLTypePackageImpl/4", 1855); - bcb(1891, 1, nwe, $be); - _.wj = function _be(a) { - return ND(a); - }; - _.xj = function ace(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Fab = mdb(Mwe, "XMLTypePackageImpl/40", 1891); - bcb(1892, 1, nwe, bce); - _.wj = function cce(a) { - return ND(a); - }; - _.xj = function dce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Gab = mdb(Mwe, "XMLTypePackageImpl/41", 1892); - bcb(1893, 1, nwe, ece); - _.wj = function fce(a) { - return ND(a); - }; - _.xj = function gce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Hab = mdb(Mwe, "XMLTypePackageImpl/42", 1893); - bcb(1894, 1, nwe, hce); - _.wj = function ice(a) { - return ND(a); - }; - _.xj = function jce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Iab = mdb(Mwe, "XMLTypePackageImpl/43", 1894); - bcb(1895, 1, nwe, kce); - _.wj = function lce(a) { - return ND(a); - }; - _.xj = function mce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Jab = mdb(Mwe, "XMLTypePackageImpl/44", 1895); - bcb(1896, 1, nwe, nce); - _.wj = function oce(a) { - return JD(a, 184); - }; - _.xj = function pce(a) { - return KC(UI, nie, 184, a, 0, 1); - }; - var Kab = mdb(Mwe, "XMLTypePackageImpl/45", 1896); - bcb(1897, 1, nwe, qce); - _.wj = function rce(a) { - return ND(a); - }; - _.xj = function sce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Lab = mdb(Mwe, "XMLTypePackageImpl/46", 1897); - bcb(1898, 1, nwe, tce); - _.wj = function uce(a) { - return ND(a); - }; - _.xj = function vce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Mab = mdb(Mwe, "XMLTypePackageImpl/47", 1898); - bcb(1899, 1, nwe, wce); - _.wj = function xce(a) { - return ND(a); - }; - _.xj = function yce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Nab = mdb(Mwe, "XMLTypePackageImpl/48", 1899); - bcb(nje, 1, nwe, zce); - _.wj = function Ace(a) { - return JD(a, 184); - }; - _.xj = function Bce(a) { - return KC(UI, nie, 184, a, 0, 1); - }; - var Oab = mdb(Mwe, "XMLTypePackageImpl/49", nje); - bcb(1856, 1, nwe, Cce); - _.wj = function Dce(a) { - return JD(a, 669); - }; - _.xj = function Ece(a) { - return KC(U9, Uhe, 2023, a, 0, 1); - }; - var Tab = mdb(Mwe, "XMLTypePackageImpl/5", 1856); - bcb(1901, 1, nwe, Fce); - _.wj = function Gce(a) { - return JD(a, 162); - }; - _.xj = function Hce(a) { - return KC(MI, nie, 162, a, 0, 1); - }; - var Qab = mdb(Mwe, "XMLTypePackageImpl/50", 1901); - bcb(1902, 1, nwe, Ice); - _.wj = function Jce(a) { - return ND(a); - }; - _.xj = function Kce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Rab = mdb(Mwe, "XMLTypePackageImpl/51", 1902); - bcb(1903, 1, nwe, Lce); - _.wj = function Mce(a) { - return JD(a, 19); - }; - _.xj = function Nce(a) { - return KC(JI, nie, 19, a, 0, 1); - }; - var Sab = mdb(Mwe, "XMLTypePackageImpl/52", 1903); - bcb(1857, 1, nwe, Oce); - _.wj = function Pce(a) { - return ND(a); - }; - _.xj = function Qce(a) { - return KC(ZI, nie, 2, a, 6, 1); - }; - var Uab = mdb(Mwe, "XMLTypePackageImpl/6", 1857); - bcb(1858, 1, nwe, Rce); - _.wj = function Sce(a) { - return JD(a, 190); - }; - _.xj = function Tce(a) { - return KC(SD, nie, 190, a, 0, 2); - }; - var Vab = mdb(Mwe, "XMLTypePackageImpl/7", 1858); - bcb(1859, 1, nwe, Uce); - _.wj = function Vce(a) { - return KD(a); - }; - _.xj = function Wce(a) { - return KC(wI, nie, 476, a, 8, 1); - }; - var Wab = mdb(Mwe, "XMLTypePackageImpl/8", 1859); - bcb(1860, 1, nwe, Xce); - _.wj = function Yce(a) { - return JD(a, 217); - }; - _.xj = function Zce(a) { - return KC(xI, nie, 217, a, 0, 1); - }; - var Xab = mdb(Mwe, "XMLTypePackageImpl/9", 1860); - var $ce, _ce; - var fde, gde; - var kde; - bcb(50, 60, Tie, mde); - var Zab = mdb(kxe, "RegEx/ParseException", 50); - bcb(820, 1, {}, ude); - _.sl = function vde(a) { - return a < this.j && bfb(this.i, a) == 63; - }; - _.tl = function wde() { - var a, b, c, d, e; - if (this.c != 10) - throw vbb(new mde(tvd((h0d(), uue)))); - a = this.a; - switch (a) { - case 101: - a = 27; - break; - case 102: - a = 12; - break; - case 110: - a = 10; - break; - case 114: - a = 13; - break; - case 116: - a = 9; - break; - case 120: - nde(this); - if (this.c != 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - if (this.a == 123) { - e = 0; - c = 0; - do { - nde(this); - if (this.c != 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - if ((e = yde(this.a)) < 0) - break; - if (c > c * 16) - throw vbb(new mde(tvd((h0d(), Uue)))); - c = c * 16 + e; - } while (true); - if (this.a != 125) - throw vbb(new mde(tvd((h0d(), Vue)))); - if (c > lxe) - throw vbb(new mde(tvd((h0d(), Wue)))); - a = c; - } else { - e = 0; - if (this.c != 0 || (e = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - c = e; - nde(this); - if (this.c != 0 || (e = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - c = c * 16 + e; - a = c; - } - break; - case 117: - d = 0; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - a = b; - break; - case 118: - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - nde(this); - if (this.c != 0 || (d = yde(this.a)) < 0) - throw vbb(new mde(tvd((h0d(), Tue)))); - b = b * 16 + d; - if (b > lxe) - throw vbb(new mde(tvd((h0d(), "parser.descappe.4")))); - a = b; - break; - case 65: - case 90: - case 122: - throw vbb(new mde(tvd((h0d(), Xue)))); - } - return a; - }; - _.ul = function xde(a) { - var b, c; - switch (a) { - case 100: - c = (this.e & 32) == 32 ? Kfe("Nd", true) : (wfe(), cfe); - break; - case 68: - c = (this.e & 32) == 32 ? Kfe("Nd", false) : (wfe(), jfe); - break; - case 119: - c = (this.e & 32) == 32 ? Kfe("IsWord", true) : (wfe(), sfe); - break; - case 87: - c = (this.e & 32) == 32 ? Kfe("IsWord", false) : (wfe(), lfe); - break; - case 115: - c = (this.e & 32) == 32 ? Kfe("IsSpace", true) : (wfe(), nfe); - break; - case 83: - c = (this.e & 32) == 32 ? Kfe("IsSpace", false) : (wfe(), kfe); - break; - default: - throw vbb(new hz((b = a, mxe + b.toString(16)))); - } - return c; - }; - _.vl = function zde(a) { - var b, c, d, e, f, g10, h, i10, j, k, l, m; - this.b = 1; - nde(this); - b = null; - if (this.c == 0 && this.a == 94) { - nde(this); - if (a) { - k = (wfe(), wfe(), ++vfe, new $fe(5)); - } else { - b = (wfe(), wfe(), ++vfe, new $fe(4)); - Ufe(b, 0, lxe); - k = (null, ++vfe, new $fe(4)); - } - } else { - k = (wfe(), wfe(), ++vfe, new $fe(4)); - } - e = true; - while ((m = this.c) != 1) { - if (m == 0 && this.a == 93 && !e) - break; - e = false; - c = this.a; - d = false; - if (m == 10) { - switch (c) { - case 100: - case 68: - case 119: - case 87: - case 115: - case 83: - Xfe(k, this.ul(c)); - d = true; - break; - case 105: - case 73: - case 99: - case 67: - c = this.Ll(k, c); - c < 0 && (d = true); - break; - case 112: - case 80: - l = tde(this, c); - if (!l) - throw vbb(new mde(tvd((h0d(), Iue)))); - Xfe(k, l); - d = true; - break; - default: - c = this.tl(); - } - } else if (m == 20) { - g10 = gfb(this.i, 58, this.d); - if (g10 < 0) - throw vbb(new mde(tvd((h0d(), Jue)))); - h = true; - if (bfb(this.i, this.d) == 94) { - ++this.d; - h = false; - } - f = qfb(this.i, this.d, g10); - i10 = Lfe(f, h, (this.e & 512) == 512); - if (!i10) - throw vbb(new mde(tvd((h0d(), Lue)))); - Xfe(k, i10); - d = true; - if (g10 + 1 >= this.j || bfb(this.i, g10 + 1) != 93) - throw vbb(new mde(tvd((h0d(), Jue)))); - this.d = g10 + 2; - } - nde(this); - if (!d) { - if (this.c != 0 || this.a != 45) { - Ufe(k, c, c); - } else { - nde(this); - if ((m = this.c) == 1) - throw vbb(new mde(tvd((h0d(), Kue)))); - if (m == 0 && this.a == 93) { - Ufe(k, c, c); - Ufe(k, 45, 45); - } else { - j = this.a; - m == 10 && (j = this.tl()); - nde(this); - Ufe(k, c, j); - } - } - } - (this.e & zte) == zte && this.c == 0 && this.a == 44 && nde(this); - } - if (this.c == 1) - throw vbb(new mde(tvd((h0d(), Kue)))); - if (b) { - Zfe(b, k); - k = b; - } - Yfe(k); - Vfe(k); - this.b = 0; - nde(this); - return k; - }; - _.wl = function Ade() { - var a, b, c, d; - c = this.vl(false); - while ((d = this.c) != 7) { - a = this.a; - if (d == 0 && (a == 45 || a == 38) || d == 4) { - nde(this); - if (this.c != 9) - throw vbb(new mde(tvd((h0d(), Que)))); - b = this.vl(false); - if (d == 4) - Xfe(c, b); - else if (a == 45) - Zfe(c, b); - else if (a == 38) - Wfe(c, b); - else - throw vbb(new hz("ASSERT")); - } else { - throw vbb(new mde(tvd((h0d(), Rue)))); - } - } - nde(this); - return c; - }; - _.xl = function Bde() { - var a, b; - a = this.a - 48; - b = (wfe(), wfe(), ++vfe, new Hge(12, null, a)); - !this.g && (this.g = new Wvb()); - Tvb(this.g, new cge(a)); - nde(this); - return b; - }; - _.yl = function Cde() { - nde(this); - return wfe(), ofe; - }; - _.zl = function Dde() { - nde(this); - return wfe(), mfe; - }; - _.Al = function Ede() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Bl = function Fde() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Cl = function Gde() { - nde(this); - return Ife(); - }; - _.Dl = function Hde() { - nde(this); - return wfe(), qfe; - }; - _.El = function Ide() { - nde(this); - return wfe(), tfe; - }; - _.Fl = function Jde() { - var a; - if (this.d >= this.j || ((a = bfb(this.i, this.d++)) & 65504) != 64) - throw vbb(new mde(tvd((h0d(), Eue)))); - nde(this); - return wfe(), wfe(), ++vfe, new ige(0, a - 64); - }; - _.Gl = function Kde() { - nde(this); - return Jfe(); - }; - _.Hl = function Lde() { - nde(this); - return wfe(), ufe; - }; - _.Il = function Mde() { - var a; - a = (wfe(), wfe(), ++vfe, new ige(0, 105)); - nde(this); - return a; - }; - _.Jl = function Nde() { - nde(this); - return wfe(), rfe; - }; - _.Kl = function Ode() { - nde(this); - return wfe(), pfe; - }; - _.Ll = function Pde(a, b) { - return this.tl(); - }; - _.Ml = function Qde() { - nde(this); - return wfe(), hfe; - }; - _.Nl = function Rde() { - var a, b, c, d, e; - if (this.d + 1 >= this.j) - throw vbb(new mde(tvd((h0d(), Bue)))); - d = -1; - b = null; - a = bfb(this.i, this.d); - if (49 <= a && a <= 57) { - d = a - 48; - !this.g && (this.g = new Wvb()); - Tvb(this.g, new cge(d)); - ++this.d; - if (bfb(this.i, this.d) != 41) - throw vbb(new mde(tvd((h0d(), yue)))); - ++this.d; - } else { - a == 63 && --this.d; - nde(this); - b = qde(this); - switch (b.e) { - case 20: - case 21: - case 22: - case 23: - break; - case 8: - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - break; - default: - throw vbb(new mde(tvd((h0d(), Cue)))); - } - } - nde(this); - e = rde(this); - c = null; - if (e.e == 2) { - if (e.em() != 2) - throw vbb(new mde(tvd((h0d(), Due)))); - c = e.am(1); - e = e.am(0); - } - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return wfe(), wfe(), ++vfe, new vge(d, b, e, c); - }; - _.Ol = function Sde() { - nde(this); - return wfe(), ife; - }; - _.Pl = function Tde() { - var a; - nde(this); - a = Cfe(24, rde(this)); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Ql = function Ude() { - var a; - nde(this); - a = Cfe(20, rde(this)); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Rl = function Vde() { - var a; - nde(this); - a = Cfe(22, rde(this)); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Sl = function Wde() { - var a, b, c, d, e; - a = 0; - c = 0; - b = -1; - while (this.d < this.j) { - b = bfb(this.i, this.d); - e = Uee(b); - if (e == 0) - break; - a |= e; - ++this.d; - } - if (this.d >= this.j) - throw vbb(new mde(tvd((h0d(), zue)))); - if (b == 45) { - ++this.d; - while (this.d < this.j) { - b = bfb(this.i, this.d); - e = Uee(b); - if (e == 0) - break; - c |= e; - ++this.d; - } - if (this.d >= this.j) - throw vbb(new mde(tvd((h0d(), zue)))); - } - if (b == 58) { - ++this.d; - nde(this); - d = Dfe(rde(this), a, c); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - } else if (b == 41) { - ++this.d; - nde(this); - d = Dfe(rde(this), a, c); - } else - throw vbb(new mde(tvd((h0d(), Aue)))); - return d; - }; - _.Tl = function Xde() { - var a; - nde(this); - a = Cfe(21, rde(this)); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Ul = function Yde() { - var a; - nde(this); - a = Cfe(23, rde(this)); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Vl = function Zde() { - var a, b; - nde(this); - a = this.f++; - b = Efe(rde(this), a); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return b; - }; - _.Wl = function $de() { - var a; - nde(this); - a = Efe(rde(this), 0); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Xl = function _de(a) { - nde(this); - if (this.c == 5) { - nde(this); - return Bfe(a, (wfe(), wfe(), ++vfe, new lge(9, a))); - } else - return Bfe(a, (wfe(), wfe(), ++vfe, new lge(3, a))); - }; - _.Yl = function aee(a) { - var b; - nde(this); - b = (wfe(), wfe(), ++vfe, new Lge(2)); - if (this.c == 5) { - nde(this); - Kge(b, (null, ffe)); - Kge(b, a); - } else { - Kge(b, a); - Kge(b, (null, ffe)); - } - return b; - }; - _.Zl = function bee(a) { - nde(this); - if (this.c == 5) { - nde(this); - return wfe(), wfe(), ++vfe, new lge(9, a); - } else - return wfe(), wfe(), ++vfe, new lge(3, a); - }; - _.a = 0; - _.b = 0; - _.c = 0; - _.d = 0; - _.e = 0; - _.f = 1; - _.g = null; - _.j = 0; - var bbb = mdb(kxe, "RegEx/RegexParser", 820); - bcb(1824, 820, {}, hee); - _.sl = function iee(a) { - return false; - }; - _.tl = function jee() { - return eee(this); - }; - _.ul = function lee(a) { - return fee(a); - }; - _.vl = function mee(a) { - return gee(this); - }; - _.wl = function nee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.xl = function oee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.yl = function pee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.zl = function qee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Al = function ree() { - nde(this); - return fee(67); - }; - _.Bl = function see() { - nde(this); - return fee(73); - }; - _.Cl = function tee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Dl = function uee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.El = function vee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Fl = function wee() { - nde(this); - return fee(99); - }; - _.Gl = function xee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Hl = function yee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Il = function zee() { - nde(this); - return fee(105); - }; - _.Jl = function Aee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Kl = function Bee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Ll = function Cee(a, b) { - return Xfe(a, fee(b)), -1; - }; - _.Ml = function Dee() { - nde(this); - return wfe(), wfe(), ++vfe, new ige(0, 94); - }; - _.Nl = function Eee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Ol = function Fee() { - nde(this); - return wfe(), wfe(), ++vfe, new ige(0, 36); - }; - _.Pl = function Gee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Ql = function Hee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Rl = function Iee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Sl = function Jee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Tl = function Kee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Ul = function Lee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Vl = function Mee() { - var a; - nde(this); - a = Efe(rde(this), 0); - if (this.c != 7) - throw vbb(new mde(tvd((h0d(), yue)))); - nde(this); - return a; - }; - _.Wl = function Nee() { - throw vbb(new mde(tvd((h0d(), Yue)))); - }; - _.Xl = function Oee(a) { - nde(this); - return Bfe(a, (wfe(), wfe(), ++vfe, new lge(3, a))); - }; - _.Yl = function Pee(a) { - var b; - nde(this); - b = (wfe(), wfe(), ++vfe, new Lge(2)); - Kge(b, a); - Kge(b, (null, ffe)); - return b; - }; - _.Zl = function Qee(a) { - nde(this); - return wfe(), wfe(), ++vfe, new lge(3, a); - }; - var cee = null, dee = null; - var $ab = mdb(kxe, "RegEx/ParserForXMLSchema", 1824); - bcb(117, 1, yxe, xfe); - _.$l = function yfe(a) { - throw vbb(new hz("Not supported.")); - }; - _._l = function Gfe() { - return -1; - }; - _.am = function Hfe(a) { - return null; - }; - _.bm = function Mfe() { - return null; - }; - _.cm = function Pfe(a) { - }; - _.dm = function Qfe(a) { - }; - _.em = function Rfe() { - return 0; - }; - _.Ib = function Sfe() { - return this.fm(0); - }; - _.fm = function Tfe(a) { - return this.e == 11 ? "." : ""; - }; - _.e = 0; - var Yee, Zee, $ee, _ee, afe, bfe = null, cfe, dfe = null, efe, ffe, gfe = null, hfe, ife, jfe, kfe, lfe, mfe, nfe, ofe, pfe, qfe, rfe, sfe, tfe, ufe, vfe = 0; - var lbb = mdb(kxe, "RegEx/Token", 117); - bcb(136, 117, { 3: 1, 136: 1, 117: 1 }, $fe); - _.fm = function bge(a) { - var b, c, d; - if (this.e == 4) { - if (this == efe) - c = "."; - else if (this == cfe) - c = "\\d"; - else if (this == sfe) - c = "\\w"; - else if (this == nfe) - c = "\\s"; - else { - d = new Hfb(); - d.a += "["; - for (b = 0; b < this.b.length; b += 2) { - (a & zte) != 0 && b > 0 && (d.a += ",", d); - if (this.b[b] === this.b[b + 1]) { - Efb(d, age(this.b[b])); - } else { - Efb(d, age(this.b[b])); - d.a += "-"; - Efb(d, age(this.b[b + 1])); - } - } - d.a += "]"; - c = d.a; - } - } else { - if (this == jfe) - c = "\\D"; - else if (this == lfe) - c = "\\W"; - else if (this == kfe) - c = "\\S"; - else { - d = new Hfb(); - d.a += "[^"; - for (b = 0; b < this.b.length; b += 2) { - (a & zte) != 0 && b > 0 && (d.a += ",", d); - if (this.b[b] === this.b[b + 1]) { - Efb(d, age(this.b[b])); - } else { - Efb(d, age(this.b[b])); - d.a += "-"; - Efb(d, age(this.b[b + 1])); - } - } - d.a += "]"; - c = d.a; - } - } - return c; - }; - _.a = false; - _.c = false; - var _ab = mdb(kxe, "RegEx/RangeToken", 136); - bcb(584, 1, { 584: 1 }, cge); - _.a = 0; - var abb = mdb(kxe, "RegEx/RegexParser/ReferencePosition", 584); - bcb(583, 1, { 3: 1, 583: 1 }, ege); - _.Fb = function fge(a) { - var b; - if (a == null) - return false; - if (!JD(a, 583)) - return false; - b = BD(a, 583); - return dfb(this.b, b.b) && this.a == b.a; - }; - _.Hb = function gge() { - return LCb(this.b + "/" + See(this.a)); - }; - _.Ib = function hge() { - return this.c.fm(this.a); - }; - _.a = 0; - var cbb = mdb(kxe, "RegEx/RegularExpression", 583); - bcb(223, 117, yxe, ige); - _._l = function jge() { - return this.a; - }; - _.fm = function kge(a) { - var b, c, d; - switch (this.e) { - case 0: - switch (this.a) { - case 124: - case 42: - case 43: - case 63: - case 40: - case 41: - case 46: - case 91: - case 123: - case 92: - d = "\\" + HD(this.a & aje); - break; - case 12: - d = "\\f"; - break; - case 10: - d = "\\n"; - break; - case 13: - d = "\\r"; - break; - case 9: - d = "\\t"; - break; - case 27: - d = "\\e"; - break; - default: - if (this.a >= Tje) { - c = (b = this.a >>> 0, "0" + b.toString(16)); - d = "\\v" + qfb(c, c.length - 6, c.length); - } else - d = "" + HD(this.a & aje); - } - break; - case 8: - this == hfe || this == ife ? d = "" + HD(this.a & aje) : d = "\\" + HD(this.a & aje); - break; - default: - d = null; - } - return d; - }; - _.a = 0; - var dbb = mdb(kxe, "RegEx/Token/CharToken", 223); - bcb(309, 117, yxe, lge); - _.am = function mge(a) { - return this.a; - }; - _.cm = function nge(a) { - this.b = a; - }; - _.dm = function oge(a) { - this.c = a; - }; - _.em = function pge() { - return 1; - }; - _.fm = function qge(a) { - var b; - if (this.e == 3) { - if (this.c < 0 && this.b < 0) { - b = this.a.fm(a) + "*"; - } else if (this.c == this.b) { - b = this.a.fm(a) + "{" + this.c + "}"; - } else if (this.c >= 0 && this.b >= 0) { - b = this.a.fm(a) + "{" + this.c + "," + this.b + "}"; - } else if (this.c >= 0 && this.b < 0) { - b = this.a.fm(a) + "{" + this.c + ",}"; - } else - throw vbb(new hz("Token#toString(): CLOSURE " + this.c + She + this.b)); - } else { - if (this.c < 0 && this.b < 0) { - b = this.a.fm(a) + "*?"; - } else if (this.c == this.b) { - b = this.a.fm(a) + "{" + this.c + "}?"; - } else if (this.c >= 0 && this.b >= 0) { - b = this.a.fm(a) + "{" + this.c + "," + this.b + "}?"; - } else if (this.c >= 0 && this.b < 0) { - b = this.a.fm(a) + "{" + this.c + ",}?"; - } else - throw vbb(new hz("Token#toString(): NONGREEDYCLOSURE " + this.c + She + this.b)); - } - return b; - }; - _.b = 0; - _.c = 0; - var ebb = mdb(kxe, "RegEx/Token/ClosureToken", 309); - bcb(821, 117, yxe, rge); - _.am = function sge(a) { - return a == 0 ? this.a : this.b; - }; - _.em = function tge() { - return 2; - }; - _.fm = function uge(a) { - var b; - this.b.e == 3 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+" : this.b.e == 9 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+?" : b = this.a.fm(a) + ("" + this.b.fm(a)); - return b; - }; - var fbb = mdb(kxe, "RegEx/Token/ConcatToken", 821); - bcb(1822, 117, yxe, vge); - _.am = function wge(a) { - if (a == 0) - return this.d; - if (a == 1) - return this.b; - throw vbb(new hz("Internal Error: " + a)); - }; - _.em = function xge() { - return !this.b ? 1 : 2; - }; - _.fm = function yge(a) { - var b; - this.c > 0 ? b = "(?(" + this.c + ")" : this.a.e == 8 ? b = "(?(" + this.a + ")" : b = "(?" + this.a; - !this.b ? b += this.d + ")" : b += this.d + "|" + this.b + ")"; - return b; - }; - _.c = 0; - var gbb = mdb(kxe, "RegEx/Token/ConditionToken", 1822); - bcb(1823, 117, yxe, zge); - _.am = function Age(a) { - return this.b; - }; - _.em = function Bge() { - return 1; - }; - _.fm = function Cge(a) { - return "(?" + (this.a == 0 ? "" : See(this.a)) + (this.c == 0 ? "" : See(this.c)) + ":" + this.b.fm(a) + ")"; - }; - _.a = 0; - _.c = 0; - var hbb = mdb(kxe, "RegEx/Token/ModifierToken", 1823); - bcb(822, 117, yxe, Dge); - _.am = function Ege(a) { - return this.a; - }; - _.em = function Fge() { - return 1; - }; - _.fm = function Gge(a) { - var b; - b = null; - switch (this.e) { - case 6: - this.b == 0 ? b = "(?:" + this.a.fm(a) + ")" : b = "(" + this.a.fm(a) + ")"; - break; - case 20: - b = "(?=" + this.a.fm(a) + ")"; - break; - case 21: - b = "(?!" + this.a.fm(a) + ")"; - break; - case 22: - b = "(?<=" + this.a.fm(a) + ")"; - break; - case 23: - b = "(?" + this.a.fm(a) + ")"; - } - return b; - }; - _.b = 0; - var ibb = mdb(kxe, "RegEx/Token/ParenToken", 822); - bcb(521, 117, { 3: 1, 117: 1, 521: 1 }, Hge); - _.bm = function Ige() { - return this.b; - }; - _.fm = function Jge(a) { - return this.e == 12 ? "\\" + this.a : Wee(this.b); - }; - _.a = 0; - var jbb = mdb(kxe, "RegEx/Token/StringToken", 521); - bcb(465, 117, yxe, Lge); - _.$l = function Mge(a) { - Kge(this, a); - }; - _.am = function Nge(a) { - return BD(Uvb(this.a, a), 117); - }; - _.em = function Oge() { - return !this.a ? 0 : this.a.a.c.length; - }; - _.fm = function Pge(a) { - var b, c, d, e, f; - if (this.e == 1) { - if (this.a.a.c.length == 2) { - b = BD(Uvb(this.a, 0), 117); - c = BD(Uvb(this.a, 1), 117); - c.e == 3 && c.am(0) == b ? e = b.fm(a) + "+" : c.e == 9 && c.am(0) == b ? e = b.fm(a) + "+?" : e = b.fm(a) + ("" + c.fm(a)); - } else { - f = new Hfb(); - for (d = 0; d < this.a.a.c.length; d++) { - Efb(f, BD(Uvb(this.a, d), 117).fm(a)); - } - e = f.a; - } - return e; - } - if (this.a.a.c.length == 2 && BD(Uvb(this.a, 1), 117).e == 7) { - e = BD(Uvb(this.a, 0), 117).fm(a) + "?"; - } else if (this.a.a.c.length == 2 && BD(Uvb(this.a, 0), 117).e == 7) { - e = BD(Uvb(this.a, 1), 117).fm(a) + "??"; - } else { - f = new Hfb(); - Efb(f, BD(Uvb(this.a, 0), 117).fm(a)); - for (d = 1; d < this.a.a.c.length; d++) { - f.a += "|"; - Efb(f, BD(Uvb(this.a, d), 117).fm(a)); - } - e = f.a; - } - return e; - }; - var kbb = mdb(kxe, "RegEx/Token/UnionToken", 465); - bcb(518, 1, { 592: 1 }, Rge); - _.Ib = function Sge() { - return this.a.b; - }; - var mbb = mdb(zxe, "XMLTypeUtil/PatternMatcherImpl", 518); - bcb(1622, 1381, {}, Vge); - var Tge; - var nbb = mdb(zxe, "XMLTypeValidator", 1622); - bcb(264, 1, vie, Yge); - _.Jc = function Zge(a) { - reb(this, a); - }; - _.Kc = function $ge() { - return (this.b - this.a) * this.c < 0 ? Wge : new she(this); - }; - _.a = 0; - _.b = 0; - _.c = 0; - var Wge; - var qbb = mdb(Bxe, "ExclusiveRange", 264); - bcb(1068, 1, jie, dhe); - _.Rb = function ehe(a) { - BD(a, 19); - _ge(); - }; - _.Nb = function fhe(a) { - Rrb(this, a); - }; - _.Pb = function ihe() { - return ahe(); - }; - _.Ub = function khe() { - return bhe(); - }; - _.Wb = function nhe(a) { - BD(a, 19); - che(); - }; - _.Ob = function ghe() { - return false; - }; - _.Sb = function hhe() { - return false; - }; - _.Tb = function jhe() { - return -1; - }; - _.Vb = function lhe() { - return -1; - }; - _.Qb = function mhe() { - throw vbb(new cgb(Exe)); - }; - var obb = mdb(Bxe, "ExclusiveRange/1", 1068); - bcb(254, 1, jie, she); - _.Rb = function the(a) { - BD(a, 19); - ohe(); - }; - _.Nb = function uhe(a) { - Rrb(this, a); - }; - _.Pb = function xhe() { - return phe(this); - }; - _.Ub = function zhe() { - return qhe(this); - }; - _.Wb = function Che(a) { - BD(a, 19); - rhe(); - }; - _.Ob = function vhe() { - return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b; - }; - _.Sb = function whe() { - return this.b > 0; - }; - _.Tb = function yhe() { - return this.b; - }; - _.Vb = function Ahe() { - return this.b - 1; - }; - _.Qb = function Bhe() { - throw vbb(new cgb(Exe)); - }; - _.a = 0; - _.b = 0; - var pbb = mdb(Bxe, "ExclusiveRange/RangeIterator", 254); - var TD = pdb(Fve, "C"); - var WD = pdb(Ive, "I"); - var sbb = pdb(Khe, "Z"); - var XD = pdb(Jve, "J"); - var SD = pdb(Eve, "B"); - var UD = pdb(Gve, "D"); - var VD = pdb(Hve, "F"); - var rbb = pdb(Kve, "S"); - var h1 = odb("org.eclipse.elk.core.labels", "ILabelManager"); - var O4 = odb(Tte, "DiagnosticChain"); - var u8 = odb(pwe, "ResourceSet"); - var V4 = mdb(Tte, "InvocationTargetException", null); - var Ihe = (Az(), Dz); - var gwtOnLoad = gwtOnLoad = Zbb; - Xbb(hcb); - $bb("permProps", [[[Fxe, Gxe], [Hxe, "gecko1_8"]], [[Fxe, Gxe], [Hxe, "ie10"]], [[Fxe, Gxe], [Hxe, "ie8"]], [[Fxe, Gxe], [Hxe, "ie9"]], [[Fxe, Gxe], [Hxe, "safari"]]]); - gwtOnLoad(null, "elk", null); - }).call(this); - }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); - }, {}], 3: [function(require2, module3, exports3) { - "use strict"; - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - function _possibleConstructorReturn(self2, call) { - if (!self2) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return call && (typeof call === "object" || typeof call === "function") ? call : self2; - } - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); - if (superClass) - Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - var ELK2 = require2("./elk-api.js").default; - var ELKNode = function(_ELK) { - _inherits(ELKNode2, _ELK); - function ELKNode2() { - var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - _classCallCheck(this, ELKNode2); - var optionsClone = Object.assign({}, options); - var workerThreadsExist = false; - try { - require2.resolve("web-worker"); - workerThreadsExist = true; - } catch (e) { - } - if (options.workerUrl) { - if (workerThreadsExist) { - var Worker2 = require2("web-worker"); - optionsClone.workerFactory = function(url) { - return new Worker2(url); - }; - } else { - console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version."); - } - } - if (!optionsClone.workerFactory) { - var _require = require2("./elk-worker.min.js"), _Worker = _require.Worker; - optionsClone.workerFactory = function(url) { - return new _Worker(url); - }; - } - return _possibleConstructorReturn(this, (ELKNode2.__proto__ || Object.getPrototypeOf(ELKNode2)).call(this, optionsClone)); - } - return ELKNode2; - }(ELK2); - Object.defineProperty(module3.exports, "__esModule", { - value: true - }); - module3.exports = ELKNode; - ELKNode.default = ELKNode; - }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(require2, module3, exports3) { - module3.exports = Worker; - }, {}] }, {}, [3])(3); - }); - } -}); - -// node_modules/mermaid/dist/flowchart-elk-definition-e097735e.js -var import_elk_bundled = __toESM(require_elk_bundled(), 1); -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var findCommonAncestor = (id1, id2, treeData) => { - const { parentById } = treeData; - const visited = /* @__PURE__ */ new Set(); - let currentId = id1; - while (currentId) { - visited.add(currentId); - if (currentId === id2) { - return currentId; - } - currentId = parentById[currentId]; - } - currentId = id2; - while (currentId) { - if (visited.has(currentId)) { - return currentId; - } - currentId = parentById[currentId]; - } - return "root"; -}; -var elk = new import_elk_bundled.default(); -var portPos = {}; -var conf = {}; -var nodeDb = {}; -var addVertices = async function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) { - const svg = root.select(`[id="${svgId}"]`); - const nodes = svg.insert("g").attr("class", "nodes"); - const keys = Object.keys(vert); - await Promise.all( - keys.map(async function(id) { - const vertex = vert[id]; - let classStr = "default"; - if (vertex.classes.length > 0) { - classStr = vertex.classes.join(" "); - } - classStr = classStr + " flowchart-label"; - const styles2 = getStylesFromArray(vertex.styles); - let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; - const labelData = { width: 0, height: 0 }; - const ports = [ - { - id: vertex.id + "-west", - layoutOptions: { - "port.side": "WEST" - } - }, - { - id: vertex.id + "-east", - layoutOptions: { - "port.side": "EAST" - } - }, - { - id: vertex.id + "-south", - layoutOptions: { - "port.side": "SOUTH" - } - }, - { - id: vertex.id + "-north", - layoutOptions: { - "port.side": "NORTH" - } - } - ]; - let radious = 0; - let _shape = ""; - let layoutOptions = {}; - switch (vertex.type) { - case "round": - radious = 5; - _shape = "rect"; - break; - case "square": - _shape = "rect"; - break; - case "diamond": - _shape = "question"; - layoutOptions = { - portConstraints: "FIXED_SIDE" - }; - break; - case "hexagon": - _shape = "hexagon"; - break; - case "odd": - _shape = "rect_left_inv_arrow"; - break; - case "lean_right": - _shape = "lean_right"; - break; - case "lean_left": - _shape = "lean_left"; - break; - case "trapezoid": - _shape = "trapezoid"; - break; - case "inv_trapezoid": - _shape = "inv_trapezoid"; - break; - case "odd_right": - _shape = "rect_left_inv_arrow"; - break; - case "circle": - _shape = "circle"; - break; - case "ellipse": - _shape = "ellipse"; - break; - case "stadium": - _shape = "stadium"; - break; - case "subroutine": - _shape = "subroutine"; - break; - case "cylinder": - _shape = "cylinder"; - break; - case "group": - _shape = "rect"; - break; - case "doublecircle": - _shape = "doublecircle"; - break; - default: - _shape = "rect"; - } - const node = { - labelStyle: styles2.labelStyle, - shape: _shape, - labelText: vertexText, - labelType: vertex.labelType, - rx: radious, - ry: radious, - class: classStr, - style: styles2.style, - id: vertex.id, - link: vertex.link, - linkTarget: vertex.linkTarget, - tooltip: diagObj.db.getTooltip(vertex.id) || "", - domId: diagObj.db.lookUpDomId(vertex.id), - haveCallback: vertex.haveCallback, - width: vertex.type === "group" ? 500 : void 0, - dir: vertex.dir, - type: vertex.type, - props: vertex.props, - padding: getConfig$1().flowchart.padding - }; - let boundingBox; - let nodeEl; - if (node.type !== "group") { - nodeEl = await insertNode(nodes, node, vertex.dir); - boundingBox = nodeEl.node().getBBox(); - } else { - doc.createElementNS("http://www.w3.org/2000/svg", "text"); - const { shapeSvg, bbox } = await labelHelper(nodes, node, void 0, true); - labelData.width = bbox.width; - labelData.wrappingWidth = getConfig$1().flowchart.wrappingWidth; - labelData.height = bbox.height; - labelData.labelNode = shapeSvg.node(); - node.labelData = labelData; - } - const data = { - id: vertex.id, - ports: vertex.type === "diamond" ? ports : [], - // labelStyle: styles.labelStyle, - // shape: _shape, - layoutOptions, - labelText: vertexText, - labelData, - // labels: [{ text: vertexText }], - // rx: radius, - // ry: radius, - // class: classStr, - // style: styles.style, - // link: vertex.link, - // linkTarget: vertex.linkTarget, - // tooltip: diagObj.db.getTooltip(vertex.id) || '', - domId: diagObj.db.lookUpDomId(vertex.id), - // haveCallback: vertex.haveCallback, - width: boundingBox == null ? void 0 : boundingBox.width, - height: boundingBox == null ? void 0 : boundingBox.height, - // dir: vertex.dir, - type: vertex.type, - // props: vertex.props, - // padding: getConfig().flowchart.padding, - // boundingBox, - el: nodeEl, - parent: parentLookupDb.parentById[vertex.id] - }; - nodeDb[node.id] = data; - }) - ); - return graph; -}; -var getNextPosition = (position, edgeDirection, graphDirection) => { - const portPos2 = { - TB: { - in: { - north: "north" - }, - out: { - south: "west", - west: "east", - east: "south" - } - }, - LR: { - in: { - west: "west" - }, - out: { - east: "south", - south: "north", - north: "east" - } - }, - RL: { - in: { - east: "east" - }, - out: { - west: "north", - north: "south", - south: "west" - } - }, - BT: { - in: { - south: "south" - }, - out: { - north: "east", - east: "west", - west: "north" - } - } - }; - portPos2.TD = portPos2.TB; - log$1.info("abc88", graphDirection, edgeDirection, position); - return portPos2[graphDirection][edgeDirection][position]; -}; -var getNextPort = (node, edgeDirection, graphDirection) => { - log$1.info("getNextPort abc88", { node, edgeDirection, graphDirection }); - if (!portPos[node]) { - switch (graphDirection) { - case "TB": - case "TD": - portPos[node] = { - inPosition: "north", - outPosition: "south" - }; - break; - case "BT": - portPos[node] = { - inPosition: "south", - outPosition: "north" - }; - break; - case "RL": - portPos[node] = { - inPosition: "east", - outPosition: "west" - }; - break; - case "LR": - portPos[node] = { - inPosition: "west", - outPosition: "east" - }; - break; - } - } - const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition; - if (edgeDirection === "in") { - portPos[node].inPosition = getNextPosition( - portPos[node].inPosition, - edgeDirection, - graphDirection - ); - } else { - portPos[node].outPosition = getNextPosition( - portPos[node].outPosition, - edgeDirection, - graphDirection - ); - } - return result; -}; -var getEdgeStartEndPoint = (edge, dir) => { - let source = edge.start; - let target = edge.end; - const sourceId = source; - const targetId = target; - const startNode = nodeDb[source]; - const endNode = nodeDb[target]; - if (!startNode || !endNode) { - return { source, target }; - } - if (startNode.type === "diamond") { - source = `${source}-${getNextPort(source, "out", dir)}`; - } - if (endNode.type === "diamond") { - target = `${target}-${getNextPort(target, "in", dir)}`; - } - return { source, target, sourceId, targetId }; -}; -var addEdges = function(edges, diagObj, graph, svg) { - log$1.info("abc78 edges = ", edges); - const labelsEl = svg.insert("g").attr("class", "edgeLabels"); - let linkIdCnt = {}; - let dir = diagObj.db.getDirection(); - let defaultStyle; - let defaultLabelStyle; - if (edges.defaultStyle !== void 0) { - const defaultStyles = getStylesFromArray(edges.defaultStyle); - defaultStyle = defaultStyles.style; - defaultLabelStyle = defaultStyles.labelStyle; - } - edges.forEach(function(edge) { - const linkIdBase = "L-" + edge.start + "-" + edge.end; - if (linkIdCnt[linkIdBase] === void 0) { - linkIdCnt[linkIdBase] = 0; - log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); - } else { - linkIdCnt[linkIdBase]++; - log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); - } - let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; - log$1.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); - const linkNameStart = "LS-" + edge.start; - const linkNameEnd = "LE-" + edge.end; - const edgeData = { style: "", labelStyle: "" }; - edgeData.minlen = edge.length || 1; - if (edge.type === "arrow_open") { - edgeData.arrowhead = "none"; - } else { - edgeData.arrowhead = "normal"; - } - edgeData.arrowTypeStart = "arrow_open"; - edgeData.arrowTypeEnd = "arrow_open"; - switch (edge.type) { - case "double_arrow_cross": - edgeData.arrowTypeStart = "arrow_cross"; - case "arrow_cross": - edgeData.arrowTypeEnd = "arrow_cross"; - break; - case "double_arrow_point": - edgeData.arrowTypeStart = "arrow_point"; - case "arrow_point": - edgeData.arrowTypeEnd = "arrow_point"; - break; - case "double_arrow_circle": - edgeData.arrowTypeStart = "arrow_circle"; - case "arrow_circle": - edgeData.arrowTypeEnd = "arrow_circle"; - break; - } - let style = ""; - let labelStyle = ""; - switch (edge.stroke) { - case "normal": - style = "fill:none;"; - if (defaultStyle !== void 0) { - style = defaultStyle; - } - if (defaultLabelStyle !== void 0) { - labelStyle = defaultLabelStyle; - } - edgeData.thickness = "normal"; - edgeData.pattern = "solid"; - break; - case "dotted": - edgeData.thickness = "normal"; - edgeData.pattern = "dotted"; - edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; - break; - case "thick": - edgeData.thickness = "thick"; - edgeData.pattern = "solid"; - edgeData.style = "stroke-width: 3.5px;fill:none;"; - break; - } - if (edge.style !== void 0) { - const styles2 = getStylesFromArray(edge.style); - style = styles2.style; - labelStyle = styles2.labelStyle; - } - edgeData.style = edgeData.style += style; - edgeData.labelStyle = edgeData.labelStyle += labelStyle; - if (edge.interpolate !== void 0) { - edgeData.curve = interpolateToCurve(edge.interpolate, linear_default); - } else if (edges.defaultInterpolate !== void 0) { - edgeData.curve = interpolateToCurve(edges.defaultInterpolate, linear_default); - } else { - edgeData.curve = interpolateToCurve(conf.curve, linear_default); - } - if (edge.text === void 0) { - if (edge.style !== void 0) { - edgeData.arrowheadStyle = "fill: #333"; - } - } else { - edgeData.arrowheadStyle = "fill: #333"; - edgeData.labelpos = "c"; - } - edgeData.labelType = edge.labelType; - edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n"); - if (edge.style === void 0) { - edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; - } - edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); - edgeData.id = linkId; - edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; - const labelEl = insertEdgeLabel(labelsEl, edgeData); - const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir); - log$1.debug("abc78 source and target", source, target); - graph.edges.push({ - id: "e" + edge.start + edge.end, - sources: [source], - targets: [target], - sourceId, - targetId, - labelEl, - labels: [ - { - width: edgeData.width, - height: edgeData.height, - orgWidth: edgeData.width, - orgHeight: edgeData.height, - text: edgeData.label, - layoutOptions: { - "edgeLabels.inline": "true", - "edgeLabels.placement": "CENTER" - } - } - ], - edgeData - }); - }); - return graph; -}; -var addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute, id) { - let url = ""; - if (arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - switch (edgeData.arrowTypeStart) { - case "arrow_cross": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-crossStart)" - ); - break; - case "arrow_point": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-pointStart)" - ); - break; - case "arrow_barb": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-barbStart)" - ); - break; - case "arrow_circle": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-circleStart)" - ); - break; - case "aggregation": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-aggregationStart)" - ); - break; - case "extension": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-extensionStart)" - ); - break; - case "composition": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-compositionStart)" - ); - break; - case "dependency": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-dependencyStart)" - ); - break; - case "lollipop": - svgPath.attr( - "marker-start", - "url(" + url + "#" + id + "_" + diagramType + "-lollipopStart)" - ); - break; - } - switch (edgeData.arrowTypeEnd) { - case "arrow_cross": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-crossEnd)"); - break; - case "arrow_point": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-pointEnd)"); - break; - case "arrow_barb": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-barbEnd)"); - break; - case "arrow_circle": - svgPath.attr("marker-end", "url(" + url + "#" + id + "_" + diagramType + "-circleEnd)"); - break; - case "aggregation": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-aggregationEnd)" - ); - break; - case "extension": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-extensionEnd)" - ); - break; - case "composition": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-compositionEnd)" - ); - break; - case "dependency": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-dependencyEnd)" - ); - break; - case "lollipop": - svgPath.attr( - "marker-end", - "url(" + url + "#" + id + "_" + diagramType + "-lollipopEnd)" - ); - break; - } -}; -var getClasses = function(text, diagObj) { - log$1.info("Extracting classes"); - return diagObj.db.getClasses(); -}; -var addSubGraphs = function(db2) { - const parentLookupDb = { parentById: {}, childrenById: {} }; - const subgraphs = db2.getSubGraphs(); - log$1.info("Subgraphs - ", subgraphs); - subgraphs.forEach(function(subgraph) { - subgraph.nodes.forEach(function(node) { - parentLookupDb.parentById[node] = subgraph.id; - if (parentLookupDb.childrenById[subgraph.id] === void 0) { - parentLookupDb.childrenById[subgraph.id] = []; - } - parentLookupDb.childrenById[subgraph.id].push(node); - }); - }); - subgraphs.forEach(function(subgraph) { - ({ id: subgraph.id }); - if (parentLookupDb.parentById[subgraph.id] !== void 0) { - parentLookupDb.parentById[subgraph.id]; - } - }); - return parentLookupDb; -}; -var calcOffset = function(src, dest, parentLookupDb) { - const ancestor = findCommonAncestor(src, dest, parentLookupDb); - if (ancestor === void 0 || ancestor === "root") { - return { x: 0, y: 0 }; - } - const ancestorOffset = nodeDb[ancestor].offset; - return { x: ancestorOffset.posX, y: ancestorOffset.posY }; -}; -var insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb, id) { - const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb); - const src = edge.sections[0].startPoint; - const dest = edge.sections[0].endPoint; - const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : []; - const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]); - const points = [ - [src.x + offset.x, src.y + offset.y], - ...segPoints, - [dest.x + offset.x, dest.y + offset.y] - ]; - const { x, y } = getLineFunctionsWithOffset(edge.edgeData); - const curve = line_default().x(x).y(y).curve(linear_default); - const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path " + edgeData.classes).attr("fill", "none"); - const edgeG = edgesEl.insert("g").attr("class", "edgeLabel"); - const edgeWithLabel = select_default(edgeG.node().appendChild(edge.labelEl)); - const box = edgeWithLabel.node().firstChild.getBoundingClientRect(); - edgeWithLabel.attr("width", box.width); - edgeWithLabel.attr("height", box.height); - edgeG.attr( - "transform", - `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})` - ); - addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute, id); -}; -var insertChildren = (nodeArray, parentLookupDb) => { - nodeArray.forEach((node) => { - if (!node.children) { - node.children = []; - } - const childIds = parentLookupDb.childrenById[node.id]; - if (childIds) { - childIds.forEach((childId) => { - node.children.push(nodeDb[childId]); - }); - } - insertChildren(node.children, parentLookupDb); - }); -}; -var draw = async function(text, id, _version, diagObj) { - var _a; - diagObj.db.clear(); - nodeDb = {}; - portPos = {}; - diagObj.db.setGen("gen-2"); - diagObj.parser.parse(text); - const renderEl = select_default("body").append("div").attr("style", "height:400px").attr("id", "cy"); - let graph = { - id: "root", - layoutOptions: { - "elk.hierarchyHandling": "INCLUDE_CHILDREN", - "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]", - "elk.layered.spacing.edgeNodeBetweenLayers": "30", - // 'elk.layered.mergeEdges': 'true', - "elk.direction": "DOWN" - // 'elk.ports.sameLayerEdges': true, - // 'nodePlacement.strategy': 'SIMPLE', - }, - children: [], - edges: [] - }; - log$1.info("Drawing flowchart using v3 renderer", elk); - let dir = diagObj.db.getDirection(); - switch (dir) { - case "BT": - graph.layoutOptions["elk.direction"] = "UP"; - break; - case "TB": - graph.layoutOptions["elk.direction"] = "DOWN"; - break; - case "LR": - graph.layoutOptions["elk.direction"] = "RIGHT"; - break; - case "RL": - graph.layoutOptions["elk.direction"] = "LEFT"; - break; - } - const { securityLevel, flowchart: conf2 } = getConfig$1(); - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; - const svg = root.select(`[id="${id}"]`); - const markers = ["point", "circle", "cross"]; - insertMarkers$1(svg, markers, diagObj.type, id); - const vert = diagObj.db.getVertices(); - let subG; - const subGraphs = diagObj.db.getSubGraphs(); - log$1.info("Subgraphs - ", subGraphs); - for (let i = subGraphs.length - 1; i >= 0; i--) { - subG = subGraphs[i]; - diagObj.db.addVertex( - subG.id, - { text: subG.title, type: subG.labelType }, - "group", - void 0, - subG.classes, - subG.dir - ); - } - const subGraphsEl = svg.insert("g").attr("class", "subgraphs"); - const parentLookupDb = addSubGraphs(diagObj.db); - graph = await addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); - const edgesEl = svg.insert("g").attr("class", "edges edgePath"); - const edges = diagObj.db.getEdges(); - graph = addEdges(edges, diagObj, graph, svg); - const nodes = Object.keys(nodeDb); - nodes.forEach((nodeId) => { - const node = nodeDb[nodeId]; - if (!node.parent) { - graph.children.push(node); - } - if (parentLookupDb.childrenById[nodeId] !== void 0) { - node.labels = [ - { - text: node.labelText, - layoutOptions: { - "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]" - }, - width: node.labelData.width, - height: node.labelData.height - // width: 100, - // height: 100, - } - ]; - delete node.x; - delete node.y; - delete node.width; - delete node.height; - } - }); - insertChildren(graph.children, parentLookupDb); - log$1.info("after layout", JSON.stringify(graph, null, 2)); - const g = await elk.layout(graph); - drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); - log$1.info("after layout", g); - (_a = g.edges) == null ? void 0 : _a.map((edge) => { - insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb, id); - }); - setupGraphViewbox$1({}, svg, conf2.diagramPadding, conf2.useMaxWidth); - renderEl.remove(); -}; -var drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { - nodeArray.forEach(function(node) { - if (node) { - nodeDb[node.id].offset = { - posX: node.x + relX, - posY: node.y + relY, - x: relX, - y: relY, - depth, - width: node.width, - height: node.height - }; - if (node.type === "group") { - const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph"); - subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height); - const label = subgraphEl.insert("g").attr("class", "label"); - const labelCentering = getConfig$1().flowchart.htmlLabels ? node.labelData.width / 2 : 0; - label.attr( - "transform", - `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})` - ); - label.node().appendChild(node.labelData.labelNode); - log$1.info("Id (UGH)= ", node.type, node.labels); - } else { - log$1.info("Id (UGH)= ", node.id); - node.el.attr( - "transform", - `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})` - ); - } - } - }); - nodeArray.forEach(function(node) { - if (node && node.type === "group") { - drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1); - } - }); -}; -var renderer = { - getClasses, - draw -}; -var genSections = (options) => { - let sections = ""; - for (let i = 0; i < 5; i++) { - sections += ` - .subgraph-lvl-${i} { - fill: ${options[`surface${i}`]}; - stroke: ${options[`surfacePeer${i}`]}; - } - `; - } - return sections; -}; -var getStyles = (options) => `.label { - font-family: ${options.fontFamily}; - color: ${options.nodeTextColor || options.textColor}; - } - .cluster-label text { - fill: ${options.titleColor}; - } - .cluster-label span { - color: ${options.titleColor}; - } - - .label text,span { - fill: ${options.nodeTextColor || options.textColor}; - color: ${options.nodeTextColor || options.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${options.mainBkg}; - stroke: ${options.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${options.arrowheadColor}; - } - - .edgePath .path { - stroke: ${options.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${options.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${options.edgeLabelBackground}; - rect { - opacity: 0.85; - background-color: ${options.edgeLabelBackground}; - fill: ${options.edgeLabelBackground}; - } - text-align: center; - } - - .cluster rect { - fill: ${options.clusterBkg}; - stroke: ${options.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${options.titleColor}; - } - - .cluster span { - color: ${options.titleColor}; - } - /* .cluster div { - color: ${options.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${options.fontFamily}; - font-size: 12px; - background: ${options.tertiaryColor}; - border: 1px solid ${options.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${options.textColor}; - } - .subgraph { - stroke-width:2; - rx:3; - } - // .subgraph-lvl-1 { - // fill:#ccc; - // // stroke:black; - // } - - .flowchart-label text { - text-anchor: middle; - } - - ${genSections(options)} -`; -var styles = getStyles; -var diagram = { - db, - renderer, - parser: parser$1, - styles -}; -export { - diagram -}; -//# sourceMappingURL=flowchart-elk-definition-e097735e-DFDQS2GD.js.map diff --git a/.vuepress/.cache/deps/flowchart-elk-definition-e097735e-DFDQS2GD.js.map b/.vuepress/.cache/deps/flowchart-elk-definition-e097735e-DFDQS2GD.js.map deleted file mode 100644 index 24357ccdf..000000000 --- a/.vuepress/.cache/deps/flowchart-elk-definition-e097735e-DFDQS2GD.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/elkjs/lib/elk.bundled.js", "../../../../node_modules/mermaid/dist/flowchart-elk-definition-e097735e.js"], - "sourcesContent": ["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.ELK = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$defaultLayoutOpt = _ref.defaultLayoutOptions,\n defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt,\n _ref$algorithms = _ref.algorithms,\n algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms,\n workerFactory = _ref.workerFactory,\n workerUrl = _ref.workerUrl;\n\n _classCallCheck(this, ELK);\n\n this.defaultLayoutOptions = defaultLayoutOptions;\n this.initialized = false;\n\n // check valid worker construction possible\n if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') {\n throw new Error(\"Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.\");\n }\n var factory = workerFactory;\n if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') {\n // use default Web Worker\n factory = function factory(url) {\n return new Worker(url);\n };\n }\n\n // create the worker\n var worker = factory(workerUrl);\n if (typeof worker.postMessage !== 'function') {\n throw new TypeError(\"Created worker does not provide\" + \" the required 'postMessage' function.\");\n }\n\n // wrap the worker to return promises\n this.worker = new PromisedWorker(worker);\n\n // initially register algorithms\n this.worker.postMessage({\n cmd: 'register',\n algorithms: algorithms\n }).then(function (r) {\n return _this.initialized = true;\n }).catch(console.err);\n }\n\n _createClass(ELK, [{\n key: 'layout',\n value: function layout(graph) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$layoutOptions = _ref2.layoutOptions,\n layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions,\n _ref2$logging = _ref2.logging,\n logging = _ref2$logging === undefined ? false : _ref2$logging,\n _ref2$measureExecutio = _ref2.measureExecutionTime,\n measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio;\n\n if (!graph) {\n return Promise.reject(new Error(\"Missing mandatory parameter 'graph'.\"));\n }\n return this.worker.postMessage({\n cmd: 'layout',\n graph: graph,\n layoutOptions: layoutOptions,\n options: {\n logging: logging,\n measureExecutionTime: measureExecutionTime\n }\n });\n }\n }, {\n key: 'knownLayoutAlgorithms',\n value: function knownLayoutAlgorithms() {\n return this.worker.postMessage({ cmd: 'algorithms' });\n }\n }, {\n key: 'knownLayoutOptions',\n value: function knownLayoutOptions() {\n return this.worker.postMessage({ cmd: 'options' });\n }\n }, {\n key: 'knownLayoutCategories',\n value: function knownLayoutCategories() {\n return this.worker.postMessage({ cmd: 'categories' });\n }\n }, {\n key: 'terminateWorker',\n value: function terminateWorker() {\n this.worker.terminate();\n }\n }]);\n\n return ELK;\n}();\n\nexports.default = ELK;\n\nvar PromisedWorker = function () {\n function PromisedWorker(worker) {\n var _this2 = this;\n\n _classCallCheck(this, PromisedWorker);\n\n if (worker === undefined) {\n throw new Error(\"Missing mandatory parameter 'worker'.\");\n }\n this.resolvers = {};\n this.worker = worker;\n this.worker.onmessage = function (answer) {\n // why is this necessary?\n setTimeout(function () {\n _this2.receive(_this2, answer);\n }, 0);\n };\n }\n\n _createClass(PromisedWorker, [{\n key: 'postMessage',\n value: function postMessage(msg) {\n var id = this.id || 0;\n this.id = id + 1;\n msg.id = id;\n var self = this;\n return new Promise(function (resolve, reject) {\n // prepare the resolver\n self.resolvers[id] = function (err, res) {\n if (err) {\n self.convertGwtStyleError(err);\n reject(err);\n } else {\n resolve(res);\n }\n };\n // post the message\n self.worker.postMessage(msg);\n });\n }\n }, {\n key: 'receive',\n value: function receive(self, answer) {\n var json = answer.data;\n var resolver = self.resolvers[json.id];\n if (resolver) {\n delete self.resolvers[json.id];\n if (json.error) {\n resolver(json.error);\n } else {\n resolver(null, json.data);\n }\n }\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n if (this.worker.terminate) {\n this.worker.terminate();\n }\n }\n }, {\n key: 'convertGwtStyleError',\n value: function convertGwtStyleError(err) {\n if (!err) {\n return;\n }\n // Somewhat flatten the way GWT stores nested exception(s)\n var javaException = err['__java$exception'];\n if (javaException) {\n // Note that the property name of the nested exception is different\n // in the non-minified ('cause') and the minified (not deterministic) version.\n // Hence, the version below only works for the non-minified version.\n // However, as the minified stack trace is not of much use anyway, one\n // should switch the used version for debugging in such a case.\n if (javaException.cause && javaException.cause.backingJsObject) {\n err.cause = javaException.cause.backingJsObject;\n this.convertGwtStyleError(err.cause);\n }\n delete err['__java$exception'];\n }\n }\n }]);\n\n return PromisedWorker;\n}();\n},{}],2:[function(require,module,exports){\n(function (global){(function (){\n'use strict';\n\n// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- \nvar $wnd;\nif (typeof window !== 'undefined')\n $wnd = window\nelse if (typeof global !== 'undefined')\n $wnd = global // nodejs\nelse if (typeof self !== 'undefined')\n $wnd = self // web worker\n\nvar $moduleName,\n $moduleBase;\n\n// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- \nvar g, i, o;\n\n// -------------- GENERATED CODE -------------- \nfunction nb(){}\nfunction xb(){}\nfunction Fd(){}\nfunction $g(){}\nfunction _p(){}\nfunction yq(){}\nfunction Sq(){}\nfunction Es(){}\nfunction Jw(){}\nfunction Vw(){}\nfunction VA(){}\nfunction dA(){}\nfunction MA(){}\nfunction PA(){}\nfunction PB(){}\nfunction bx(){}\nfunction cx(){}\nfunction vy(){}\nfunction Nz(){}\nfunction Yz(){}\nfunction Ylb(){}\nfunction Ymb(){}\nfunction xmb(){}\nfunction Fmb(){}\nfunction Qmb(){}\nfunction gcb(){}\nfunction ccb(){}\nfunction jcb(){}\nfunction jtb(){}\nfunction otb(){}\nfunction qtb(){}\nfunction _fb(){}\nfunction bpb(){}\nfunction kpb(){}\nfunction ppb(){}\nfunction Gpb(){}\nfunction drb(){}\nfunction dzb(){}\nfunction fzb(){}\nfunction fxb(){}\nfunction Vxb(){}\nfunction Ovb(){}\nfunction byb(){}\nfunction zyb(){}\nfunction Zyb(){}\nfunction _yb(){}\nfunction hzb(){}\nfunction jzb(){}\nfunction lzb(){}\nfunction nzb(){}\nfunction rzb(){}\nfunction zzb(){}\nfunction Czb(){}\nfunction Ezb(){}\nfunction Gzb(){}\nfunction Izb(){}\nfunction Mzb(){}\nfunction bBb(){}\nfunction NBb(){}\nfunction PBb(){}\nfunction RBb(){}\nfunction iCb(){}\nfunction OCb(){}\nfunction SCb(){}\nfunction GDb(){}\nfunction JDb(){}\nfunction fEb(){}\nfunction xEb(){}\nfunction CEb(){}\nfunction GEb(){}\nfunction yFb(){}\nfunction KGb(){}\nfunction tIb(){}\nfunction vIb(){}\nfunction xIb(){}\nfunction zIb(){}\nfunction OIb(){}\nfunction SIb(){}\nfunction TJb(){}\nfunction VJb(){}\nfunction XJb(){}\nfunction XKb(){}\nfunction fKb(){}\nfunction VKb(){}\nfunction VLb(){}\nfunction jLb(){}\nfunction nLb(){}\nfunction GLb(){}\nfunction KLb(){}\nfunction MLb(){}\nfunction OLb(){}\nfunction RLb(){}\nfunction YLb(){}\nfunction bMb(){}\nfunction gMb(){}\nfunction lMb(){}\nfunction pMb(){}\nfunction wMb(){}\nfunction zMb(){}\nfunction CMb(){}\nfunction FMb(){}\nfunction LMb(){}\nfunction zNb(){}\nfunction PNb(){}\nfunction kOb(){}\nfunction pOb(){}\nfunction tOb(){}\nfunction yOb(){}\nfunction FOb(){}\nfunction GPb(){}\nfunction aQb(){}\nfunction cQb(){}\nfunction eQb(){}\nfunction gQb(){}\nfunction iQb(){}\nfunction CQb(){}\nfunction MQb(){}\nfunction OQb(){}\nfunction ASb(){}\nfunction fTb(){}\nfunction kTb(){}\nfunction STb(){}\nfunction fUb(){}\nfunction DUb(){}\nfunction VUb(){}\nfunction YUb(){}\nfunction _Ub(){}\nfunction _Wb(){}\nfunction QWb(){}\nfunction XWb(){}\nfunction jVb(){}\nfunction DVb(){}\nfunction VVb(){}\nfunction $Vb(){}\nfunction dXb(){}\nfunction hXb(){}\nfunction lXb(){}\nfunction gYb(){}\nfunction HYb(){}\nfunction SYb(){}\nfunction VYb(){}\nfunction dZb(){}\nfunction P$b(){}\nfunction T$b(){}\nfunction h1b(){}\nfunction m1b(){}\nfunction q1b(){}\nfunction u1b(){}\nfunction y1b(){}\nfunction C1b(){}\nfunction e2b(){}\nfunction g2b(){}\nfunction m2b(){}\nfunction q2b(){}\nfunction u2b(){}\nfunction S2b(){}\nfunction U2b(){}\nfunction W2b(){}\nfunction _2b(){}\nfunction e3b(){}\nfunction h3b(){}\nfunction p3b(){}\nfunction t3b(){}\nfunction w3b(){}\nfunction y3b(){}\nfunction A3b(){}\nfunction M3b(){}\nfunction Q3b(){}\nfunction U3b(){}\nfunction Y3b(){}\nfunction l4b(){}\nfunction q4b(){}\nfunction s4b(){}\nfunction u4b(){}\nfunction w4b(){}\nfunction y4b(){}\nfunction L4b(){}\nfunction N4b(){}\nfunction P4b(){}\nfunction R4b(){}\nfunction T4b(){}\nfunction X4b(){}\nfunction I5b(){}\nfunction Q5b(){}\nfunction T5b(){}\nfunction Z5b(){}\nfunction l6b(){}\nfunction o6b(){}\nfunction t6b(){}\nfunction z6b(){}\nfunction L6b(){}\nfunction M6b(){}\nfunction P6b(){}\nfunction X6b(){}\nfunction $6b(){}\nfunction a7b(){}\nfunction c7b(){}\nfunction g7b(){}\nfunction j7b(){}\nfunction m7b(){}\nfunction r7b(){}\nfunction x7b(){}\nfunction D7b(){}\nfunction D9b(){}\nfunction b9b(){}\nfunction h9b(){}\nfunction j9b(){}\nfunction l9b(){}\nfunction w9b(){}\nfunction F9b(){}\nfunction hac(){}\nfunction jac(){}\nfunction pac(){}\nfunction uac(){}\nfunction Iac(){}\nfunction Kac(){}\nfunction Sac(){}\nfunction obc(){}\nfunction rbc(){}\nfunction vbc(){}\nfunction Fbc(){}\nfunction Jbc(){}\nfunction Xbc(){}\nfunction ccc(){}\nfunction fcc(){}\nfunction lcc(){}\nfunction occ(){}\nfunction tcc(){}\nfunction ycc(){}\nfunction Acc(){}\nfunction Ccc(){}\nfunction Ecc(){}\nfunction Gcc(){}\nfunction Zcc(){}\nfunction _cc(){}\nfunction bdc(){}\nfunction fdc(){}\nfunction jdc(){}\nfunction pdc(){}\nfunction sdc(){}\nfunction ydc(){}\nfunction Adc(){}\nfunction Cdc(){}\nfunction Edc(){}\nfunction Idc(){}\nfunction Ndc(){}\nfunction Qdc(){}\nfunction Sdc(){}\nfunction Udc(){}\nfunction Wdc(){}\nfunction Ydc(){}\nfunction aec(){}\nfunction hec(){}\nfunction jec(){}\nfunction lec(){}\nfunction nec(){}\nfunction uec(){}\nfunction wec(){}\nfunction yec(){}\nfunction Aec(){}\nfunction Fec(){}\nfunction Jec(){}\nfunction Lec(){}\nfunction Nec(){}\nfunction Rec(){}\nfunction Uec(){}\nfunction Zec(){}\nfunction Zfc(){}\nfunction lfc(){}\nfunction tfc(){}\nfunction xfc(){}\nfunction zfc(){}\nfunction Ffc(){}\nfunction Jfc(){}\nfunction Nfc(){}\nfunction Pfc(){}\nfunction Vfc(){}\nfunction _fc(){}\nfunction fgc(){}\nfunction jgc(){}\nfunction lgc(){}\nfunction Bgc(){}\nfunction ehc(){}\nfunction ghc(){}\nfunction ihc(){}\nfunction khc(){}\nfunction mhc(){}\nfunction ohc(){}\nfunction qhc(){}\nfunction yhc(){}\nfunction Ahc(){}\nfunction Ghc(){}\nfunction Ihc(){}\nfunction Khc(){}\nfunction Mhc(){}\nfunction Shc(){}\nfunction Uhc(){}\nfunction Whc(){}\nfunction dic(){}\nfunction dlc(){}\nfunction blc(){}\nfunction flc(){}\nfunction hlc(){}\nfunction jlc(){}\nfunction Glc(){}\nfunction Ilc(){}\nfunction Klc(){}\nfunction Mlc(){}\nfunction Mjc(){}\nfunction Qjc(){}\nfunction Qlc(){}\nfunction Ulc(){}\nfunction Ylc(){}\nfunction Lkc(){}\nfunction Nkc(){}\nfunction Pkc(){}\nfunction Rkc(){}\nfunction Xkc(){}\nfunction _kc(){}\nfunction gmc(){}\nfunction kmc(){}\nfunction zmc(){}\nfunction Fmc(){}\nfunction Wmc(){}\nfunction $mc(){}\nfunction anc(){}\nfunction mnc(){}\nfunction wnc(){}\nfunction Hnc(){}\nfunction Jnc(){}\nfunction Lnc(){}\nfunction Nnc(){}\nfunction Pnc(){}\nfunction Ync(){}\nfunction eoc(){}\nfunction Aoc(){}\nfunction Coc(){}\nfunction Eoc(){}\nfunction Joc(){}\nfunction Loc(){}\nfunction Zoc(){}\nfunction _oc(){}\nfunction bpc(){}\nfunction hpc(){}\nfunction kpc(){}\nfunction ppc(){}\nfunction pFc(){}\nfunction Ryc(){}\nfunction QCc(){}\nfunction PDc(){}\nfunction xGc(){}\nfunction HGc(){}\nfunction JGc(){}\nfunction NGc(){}\nfunction GIc(){}\nfunction iKc(){}\nfunction mKc(){}\nfunction wKc(){}\nfunction yKc(){}\nfunction AKc(){}\nfunction EKc(){}\nfunction KKc(){}\nfunction OKc(){}\nfunction QKc(){}\nfunction SKc(){}\nfunction UKc(){}\nfunction YKc(){}\nfunction aLc(){}\nfunction fLc(){}\nfunction hLc(){}\nfunction nLc(){}\nfunction pLc(){}\nfunction tLc(){}\nfunction vLc(){}\nfunction zLc(){}\nfunction BLc(){}\nfunction DLc(){}\nfunction FLc(){}\nfunction sMc(){}\nfunction JMc(){}\nfunction hNc(){}\nfunction RNc(){}\nfunction ZNc(){}\nfunction _Nc(){}\nfunction bOc(){}\nfunction dOc(){}\nfunction fOc(){}\nfunction hOc(){}\nfunction hRc(){}\nfunction jRc(){}\nfunction KRc(){}\nfunction NRc(){}\nfunction NQc(){}\nfunction LQc(){}\nfunction _Qc(){}\nfunction cPc(){}\nfunction iPc(){}\nfunction kPc(){}\nfunction mPc(){}\nfunction xPc(){}\nfunction zPc(){}\nfunction zSc(){}\nfunction BSc(){}\nfunction GSc(){}\nfunction ISc(){}\nfunction NSc(){}\nfunction TSc(){}\nfunction NTc(){}\nfunction NVc(){}\nfunction oVc(){}\nfunction SVc(){}\nfunction VVc(){}\nfunction XVc(){}\nfunction ZVc(){}\nfunction bWc(){}\nfunction bXc(){}\nfunction CXc(){}\nfunction FXc(){}\nfunction IXc(){}\nfunction MXc(){}\nfunction UXc(){}\nfunction bYc(){}\nfunction fYc(){}\nfunction oYc(){}\nfunction qYc(){}\nfunction uYc(){}\nfunction pZc(){}\nfunction G$c(){}\nfunction h0c(){}\nfunction N0c(){}\nfunction k1c(){}\nfunction I1c(){}\nfunction Q1c(){}\nfunction f2c(){}\nfunction i2c(){}\nfunction k2c(){}\nfunction w2c(){}\nfunction O2c(){}\nfunction S2c(){}\nfunction Z2c(){}\nfunction v3c(){}\nfunction x3c(){}\nfunction R3c(){}\nfunction U3c(){}\nfunction e4c(){}\nfunction w4c(){}\nfunction x4c(){}\nfunction z4c(){}\nfunction B4c(){}\nfunction D4c(){}\nfunction F4c(){}\nfunction H4c(){}\nfunction J4c(){}\nfunction L4c(){}\nfunction N4c(){}\nfunction P4c(){}\nfunction R4c(){}\nfunction T4c(){}\nfunction V4c(){}\nfunction X4c(){}\nfunction Z4c(){}\nfunction _4c(){}\nfunction _7c(){}\nfunction b5c(){}\nfunction d5c(){}\nfunction f5c(){}\nfunction h5c(){}\nfunction H5c(){}\nfunction Hfd(){}\nfunction Zfd(){}\nfunction Zed(){}\nfunction ged(){}\nfunction Jed(){}\nfunction Ned(){}\nfunction Red(){}\nfunction Ved(){}\nfunction bbd(){}\nfunction mdd(){}\nfunction _fd(){}\nfunction fgd(){}\nfunction kgd(){}\nfunction Mgd(){}\nfunction Ahd(){}\nfunction Ald(){}\nfunction Tld(){}\nfunction xkd(){}\nfunction rmd(){}\nfunction knd(){}\nfunction Jod(){}\nfunction JCd(){}\nfunction Bpd(){}\nfunction BFd(){}\nfunction oFd(){}\nfunction bqd(){}\nfunction bvd(){}\nfunction jvd(){}\nfunction yud(){}\nfunction Hxd(){}\nfunction EBd(){}\nfunction aDd(){}\nfunction MGd(){}\nfunction vHd(){}\nfunction RHd(){}\nfunction wNd(){}\nfunction zNd(){}\nfunction CNd(){}\nfunction KNd(){}\nfunction XNd(){}\nfunction $Nd(){}\nfunction HPd(){}\nfunction lUd(){}\nfunction XUd(){}\nfunction DWd(){}\nfunction GWd(){}\nfunction JWd(){}\nfunction MWd(){}\nfunction PWd(){}\nfunction SWd(){}\nfunction VWd(){}\nfunction YWd(){}\nfunction _Wd(){}\nfunction xYd(){}\nfunction BYd(){}\nfunction mZd(){}\nfunction EZd(){}\nfunction GZd(){}\nfunction JZd(){}\nfunction MZd(){}\nfunction PZd(){}\nfunction SZd(){}\nfunction VZd(){}\nfunction YZd(){}\nfunction _Zd(){}\nfunction c$d(){}\nfunction f$d(){}\nfunction i$d(){}\nfunction l$d(){}\nfunction o$d(){}\nfunction r$d(){}\nfunction u$d(){}\nfunction x$d(){}\nfunction A$d(){}\nfunction D$d(){}\nfunction G$d(){}\nfunction J$d(){}\nfunction M$d(){}\nfunction P$d(){}\nfunction S$d(){}\nfunction V$d(){}\nfunction Y$d(){}\nfunction _$d(){}\nfunction c_d(){}\nfunction f_d(){}\nfunction i_d(){}\nfunction l_d(){}\nfunction o_d(){}\nfunction r_d(){}\nfunction u_d(){}\nfunction x_d(){}\nfunction A_d(){}\nfunction D_d(){}\nfunction G_d(){}\nfunction J_d(){}\nfunction M_d(){}\nfunction P_d(){}\nfunction S_d(){}\nfunction V_d(){}\nfunction Y_d(){}\nfunction h5d(){}\nfunction U6d(){}\nfunction U9d(){}\nfunction _8d(){}\nfunction fae(){}\nfunction hae(){}\nfunction kae(){}\nfunction nae(){}\nfunction qae(){}\nfunction tae(){}\nfunction wae(){}\nfunction zae(){}\nfunction Cae(){}\nfunction Fae(){}\nfunction Iae(){}\nfunction Lae(){}\nfunction Oae(){}\nfunction Rae(){}\nfunction Uae(){}\nfunction Xae(){}\nfunction $ae(){}\nfunction bbe(){}\nfunction ebe(){}\nfunction hbe(){}\nfunction kbe(){}\nfunction nbe(){}\nfunction qbe(){}\nfunction tbe(){}\nfunction wbe(){}\nfunction zbe(){}\nfunction Cbe(){}\nfunction Fbe(){}\nfunction Ibe(){}\nfunction Lbe(){}\nfunction Obe(){}\nfunction Rbe(){}\nfunction Ube(){}\nfunction Xbe(){}\nfunction $be(){}\nfunction bce(){}\nfunction ece(){}\nfunction hce(){}\nfunction kce(){}\nfunction nce(){}\nfunction qce(){}\nfunction tce(){}\nfunction wce(){}\nfunction zce(){}\nfunction Cce(){}\nfunction Fce(){}\nfunction Ice(){}\nfunction Lce(){}\nfunction Oce(){}\nfunction Rce(){}\nfunction Uce(){}\nfunction Xce(){}\nfunction ude(){}\nfunction Vge(){}\nfunction dhe(){}\nfunction s_b(a){}\nfunction jSd(a){}\nfunction ol(){wb()}\nfunction oPb(){nPb()}\nfunction EPb(){CPb()}\nfunction gFb(){fFb()}\nfunction TRb(){SRb()}\nfunction ySb(){wSb()}\nfunction PSb(){OSb()}\nfunction dTb(){bTb()}\nfunction i4b(){b4b()}\nfunction D2b(){x2b()}\nfunction J6b(){D6b()}\nfunction u9b(){q9b()}\nfunction $9b(){I9b()}\nfunction Umc(){Imc()}\nfunction abc(){Vac()}\nfunction ZCc(){VCc()}\nfunction kCc(){hCc()}\nfunction rCc(){oCc()}\nfunction Tcc(){Occ()}\nfunction xkc(){gkc()}\nfunction xDc(){rDc()}\nfunction iDc(){cDc()}\nfunction kwc(){jwc()}\nfunction tJc(){jJc()}\nfunction dJc(){aJc()}\nfunction Pyc(){Nyc()}\nfunction VBc(){SBc()}\nfunction CFc(){yFc()}\nfunction CUc(){wUc()}\nfunction lUc(){fUc()}\nfunction sUc(){pUc()}\nfunction IUc(){GUc()}\nfunction IWc(){HWc()}\nfunction _Wc(){ZWc()}\nfunction fHc(){dHc()}\nfunction f0c(){d0c()}\nfunction B0c(){A0c()}\nfunction L0c(){J0c()}\nfunction LTc(){JTc()}\nfunction sTc(){rTc()}\nfunction KLc(){ILc()}\nfunction wNc(){tNc()}\nfunction PYc(){OYc()}\nfunction nZc(){lZc()}\nfunction q3c(){p3c()}\nfunction Z7c(){X7c()}\nfunction Z9c(){Y9c()}\nfunction _ad(){Zad()}\nfunction kdd(){idd()}\nfunction $md(){Smd()}\nfunction HGd(){tGd()}\nfunction hLd(){NKd()}\nfunction J6d(){Uge()}\nfunction Mvb(a){uCb(a)}\nfunction Yb(a){this.a=a}\nfunction cc(a){this.a=a}\nfunction cj(a){this.a=a}\nfunction ij(a){this.a=a}\nfunction Dj(a){this.a=a}\nfunction df(a){this.a=a}\nfunction kf(a){this.a=a}\nfunction ah(a){this.a=a}\nfunction lh(a){this.a=a}\nfunction th(a){this.a=a}\nfunction Ph(a){this.a=a}\nfunction vi(a){this.a=a}\nfunction Ci(a){this.a=a}\nfunction Fk(a){this.a=a}\nfunction Ln(a){this.a=a}\nfunction ap(a){this.a=a}\nfunction zp(a){this.a=a}\nfunction Yp(a){this.a=a}\nfunction qq(a){this.a=a}\nfunction Dq(a){this.a=a}\nfunction wr(a){this.a=a}\nfunction Ir(a){this.b=a}\nfunction sj(a){this.c=a}\nfunction sw(a){this.a=a}\nfunction fw(a){this.a=a}\nfunction xw(a){this.a=a}\nfunction Cw(a){this.a=a}\nfunction Qw(a){this.a=a}\nfunction Rw(a){this.a=a}\nfunction Xw(a){this.a=a}\nfunction Xv(a){this.a=a}\nfunction Sv(a){this.a=a}\nfunction eu(a){this.a=a}\nfunction Zx(a){this.a=a}\nfunction _x(a){this.a=a}\nfunction xy(a){this.a=a}\nfunction xB(a){this.a=a}\nfunction HB(a){this.a=a}\nfunction TB(a){this.a=a}\nfunction fC(a){this.a=a}\nfunction wB(){this.a=[]}\nfunction MBb(a,b){a.a=b}\nfunction w_b(a,b){a.a=b}\nfunction x_b(a,b){a.b=b}\nfunction YOb(a,b){a.b=b}\nfunction $Ob(a,b){a.b=b}\nfunction ZGb(a,b){a.j=b}\nfunction qNb(a,b){a.g=b}\nfunction rNb(a,b){a.i=b}\nfunction dRb(a,b){a.c=b}\nfunction eRb(a,b){a.d=b}\nfunction z_b(a,b){a.d=b}\nfunction y_b(a,b){a.c=b}\nfunction __b(a,b){a.k=b}\nfunction E0b(a,b){a.c=b}\nfunction njc(a,b){a.c=b}\nfunction mjc(a,b){a.a=b}\nfunction dFc(a,b){a.a=b}\nfunction eFc(a,b){a.f=b}\nfunction nOc(a,b){a.a=b}\nfunction oOc(a,b){a.b=b}\nfunction pOc(a,b){a.d=b}\nfunction qOc(a,b){a.i=b}\nfunction rOc(a,b){a.o=b}\nfunction sOc(a,b){a.r=b}\nfunction $Pc(a,b){a.a=b}\nfunction _Pc(a,b){a.b=b}\nfunction DVc(a,b){a.e=b}\nfunction EVc(a,b){a.f=b}\nfunction FVc(a,b){a.g=b}\nfunction SZc(a,b){a.e=b}\nfunction TZc(a,b){a.f=b}\nfunction c$c(a,b){a.f=b}\nfunction bJd(a,b){a.n=b}\nfunction A1d(a,b){a.a=b}\nfunction J1d(a,b){a.a=b}\nfunction B1d(a,b){a.c=b}\nfunction K1d(a,b){a.c=b}\nfunction L1d(a,b){a.d=b}\nfunction M1d(a,b){a.e=b}\nfunction N1d(a,b){a.g=b}\nfunction d2d(a,b){a.a=b}\nfunction e2d(a,b){a.c=b}\nfunction f2d(a,b){a.d=b}\nfunction g2d(a,b){a.e=b}\nfunction h2d(a,b){a.f=b}\nfunction i2d(a,b){a.j=b}\nfunction Z8d(a,b){a.a=b}\nfunction $8d(a,b){a.b=b}\nfunction g9d(a,b){a.a=b}\nfunction Cic(a){a.b=a.a}\nfunction Dg(a){a.c=a.d.d}\nfunction vib(a){this.d=a}\nfunction eib(a){this.a=a}\nfunction Pib(a){this.a=a}\nfunction Vib(a){this.a=a}\nfunction $ib(a){this.a=a}\nfunction mcb(a){this.a=a}\nfunction Mcb(a){this.a=a}\nfunction Xcb(a){this.a=a}\nfunction Ndb(a){this.a=a}\nfunction _db(a){this.a=a}\nfunction teb(a){this.a=a}\nfunction Qeb(a){this.a=a}\nfunction djb(a){this.a=a}\nfunction Gjb(a){this.a=a}\nfunction Njb(a){this.a=a}\nfunction Bjb(a){this.b=a}\nfunction lnb(a){this.b=a}\nfunction Dnb(a){this.b=a}\nfunction anb(a){this.a=a}\nfunction Mob(a){this.a=a}\nfunction Rob(a){this.a=a}\nfunction iob(a){this.c=a}\nfunction olb(a){this.c=a}\nfunction qub(a){this.c=a}\nfunction Tub(a){this.a=a}\nfunction Vub(a){this.a=a}\nfunction Xub(a){this.a=a}\nfunction Zub(a){this.a=a}\nfunction tpb(a){this.a=a}\nfunction _pb(a){this.a=a}\nfunction Wqb(a){this.a=a}\nfunction nsb(a){this.a=a}\nfunction Rxb(a){this.a=a}\nfunction Txb(a){this.a=a}\nfunction Xxb(a){this.a=a}\nfunction bzb(a){this.a=a}\nfunction tzb(a){this.a=a}\nfunction vzb(a){this.a=a}\nfunction xzb(a){this.a=a}\nfunction Kzb(a){this.a=a}\nfunction Ozb(a){this.a=a}\nfunction iAb(a){this.a=a}\nfunction kAb(a){this.a=a}\nfunction mAb(a){this.a=a}\nfunction BAb(a){this.a=a}\nfunction hBb(a){this.a=a}\nfunction jBb(a){this.a=a}\nfunction nBb(a){this.a=a}\nfunction TBb(a){this.a=a}\nfunction XBb(a){this.a=a}\nfunction QCb(a){this.a=a}\nfunction WCb(a){this.a=a}\nfunction _Cb(a){this.a=a}\nfunction dEb(a){this.a=a}\nfunction QGb(a){this.a=a}\nfunction YGb(a){this.a=a}\nfunction tKb(a){this.a=a}\nfunction CLb(a){this.a=a}\nfunction JMb(a){this.a=a}\nfunction RNb(a){this.a=a}\nfunction kQb(a){this.a=a}\nfunction mQb(a){this.a=a}\nfunction FQb(a){this.a=a}\nfunction ETb(a){this.a=a}\nfunction UTb(a){this.a=a}\nfunction dUb(a){this.a=a}\nfunction hUb(a){this.a=a}\nfunction EZb(a){this.a=a}\nfunction j$b(a){this.a=a}\nfunction v$b(a){this.e=a}\nfunction J0b(a){this.a=a}\nfunction M0b(a){this.a=a}\nfunction R0b(a){this.a=a}\nfunction U0b(a){this.a=a}\nfunction i2b(a){this.a=a}\nfunction k2b(a){this.a=a}\nfunction o2b(a){this.a=a}\nfunction s2b(a){this.a=a}\nfunction G2b(a){this.a=a}\nfunction I2b(a){this.a=a}\nfunction K2b(a){this.a=a}\nfunction M2b(a){this.a=a}\nfunction W3b(a){this.a=a}\nfunction $3b(a){this.a=a}\nfunction V4b(a){this.a=a}\nfunction u5b(a){this.a=a}\nfunction A7b(a){this.a=a}\nfunction G7b(a){this.a=a}\nfunction J7b(a){this.a=a}\nfunction M7b(a){this.a=a}\nfunction Mbc(a){this.a=a}\nfunction Pbc(a){this.a=a}\nfunction lac(a){this.a=a}\nfunction nac(a){this.a=a}\nfunction qcc(a){this.a=a}\nfunction Gdc(a){this.a=a}\nfunction $dc(a){this.a=a}\nfunction cec(a){this.a=a}\nfunction _ec(a){this.a=a}\nfunction pfc(a){this.a=a}\nfunction Bfc(a){this.a=a}\nfunction Lfc(a){this.a=a}\nfunction ygc(a){this.a=a}\nfunction Dgc(a){this.a=a}\nfunction shc(a){this.a=a}\nfunction uhc(a){this.a=a}\nfunction whc(a){this.a=a}\nfunction Chc(a){this.a=a}\nfunction Ehc(a){this.a=a}\nfunction Ohc(a){this.a=a}\nfunction Yhc(a){this.a=a}\nfunction Tkc(a){this.a=a}\nfunction Vkc(a){this.a=a}\nfunction Olc(a){this.a=a}\nfunction pnc(a){this.a=a}\nfunction rnc(a){this.a=a}\nfunction dpc(a){this.a=a}\nfunction fpc(a){this.a=a}\nfunction GCc(a){this.a=a}\nfunction KCc(a){this.a=a}\nfunction mDc(a){this.a=a}\nfunction jEc(a){this.a=a}\nfunction HEc(a){this.a=a}\nfunction FEc(a){this.c=a}\nfunction qoc(a){this.b=a}\nfunction bFc(a){this.a=a}\nfunction GFc(a){this.a=a}\nfunction iGc(a){this.a=a}\nfunction kGc(a){this.a=a}\nfunction mGc(a){this.a=a}\nfunction $Gc(a){this.a=a}\nfunction hIc(a){this.a=a}\nfunction lIc(a){this.a=a}\nfunction pIc(a){this.a=a}\nfunction tIc(a){this.a=a}\nfunction xIc(a){this.a=a}\nfunction zIc(a){this.a=a}\nfunction CIc(a){this.a=a}\nfunction LIc(a){this.a=a}\nfunction CKc(a){this.a=a}\nfunction IKc(a){this.a=a}\nfunction MKc(a){this.a=a}\nfunction $Kc(a){this.a=a}\nfunction cLc(a){this.a=a}\nfunction jLc(a){this.a=a}\nfunction rLc(a){this.a=a}\nfunction xLc(a){this.a=a}\nfunction OMc(a){this.a=a}\nfunction ZOc(a){this.a=a}\nfunction ZRc(a){this.a=a}\nfunction aSc(a){this.a=a}\nfunction I$c(a){this.a=a}\nfunction K$c(a){this.a=a}\nfunction M$c(a){this.a=a}\nfunction O$c(a){this.a=a}\nfunction U$c(a){this.a=a}\nfunction n1c(a){this.a=a}\nfunction z1c(a){this.a=a}\nfunction B1c(a){this.a=a}\nfunction Q2c(a){this.a=a}\nfunction U2c(a){this.a=a}\nfunction z3c(a){this.a=a}\nfunction med(a){this.a=a}\nfunction Xed(a){this.a=a}\nfunction _ed(a){this.a=a}\nfunction Qfd(a){this.a=a}\nfunction Bgd(a){this.a=a}\nfunction $gd(a){this.a=a}\nfunction lrd(a){this.a=a}\nfunction urd(a){this.a=a}\nfunction vrd(a){this.a=a}\nfunction wrd(a){this.a=a}\nfunction xrd(a){this.a=a}\nfunction yrd(a){this.a=a}\nfunction zrd(a){this.a=a}\nfunction Ard(a){this.a=a}\nfunction Brd(a){this.a=a}\nfunction Crd(a){this.a=a}\nfunction Ird(a){this.a=a}\nfunction Krd(a){this.a=a}\nfunction Lrd(a){this.a=a}\nfunction Mrd(a){this.a=a}\nfunction Nrd(a){this.a=a}\nfunction Prd(a){this.a=a}\nfunction Srd(a){this.a=a}\nfunction Yrd(a){this.a=a}\nfunction Zrd(a){this.a=a}\nfunction _rd(a){this.a=a}\nfunction asd(a){this.a=a}\nfunction bsd(a){this.a=a}\nfunction csd(a){this.a=a}\nfunction dsd(a){this.a=a}\nfunction msd(a){this.a=a}\nfunction osd(a){this.a=a}\nfunction qsd(a){this.a=a}\nfunction ssd(a){this.a=a}\nfunction Wsd(a){this.a=a}\nfunction Lsd(a){this.b=a}\nfunction thd(a){this.f=a}\nfunction qtd(a){this.a=a}\nfunction yBd(a){this.a=a}\nfunction GBd(a){this.a=a}\nfunction MBd(a){this.a=a}\nfunction SBd(a){this.a=a}\nfunction iCd(a){this.a=a}\nfunction YMd(a){this.a=a}\nfunction GNd(a){this.a=a}\nfunction EPd(a){this.a=a}\nfunction EQd(a){this.a=a}\nfunction NTd(a){this.a=a}\nfunction qOd(a){this.b=a}\nfunction lVd(a){this.c=a}\nfunction VVd(a){this.e=a}\nfunction iYd(a){this.a=a}\nfunction RYd(a){this.a=a}\nfunction ZYd(a){this.a=a}\nfunction z0d(a){this.a=a}\nfunction O0d(a){this.a=a}\nfunction s0d(a){this.d=a}\nfunction W5d(a){this.a=a}\nfunction cge(a){this.a=a}\nfunction xfe(a){this.e=a}\nfunction Tfd(){this.a=0}\nfunction jkb(){Vjb(this)}\nfunction Rkb(){Ckb(this)}\nfunction Lqb(){Uhb(this)}\nfunction lEb(){kEb(this)}\nfunction A_b(){s_b(this)}\nfunction UQd(){this.c=FQd}\nfunction v6d(a,b){b.Wb(a)}\nfunction moc(a,b){a.b+=b}\nfunction yXb(a){a.b=new Ji}\nfunction vbb(a){return a.e}\nfunction DB(a){return a.a}\nfunction LB(a){return a.a}\nfunction ZB(a){return a.a}\nfunction lC(a){return a.a}\nfunction EC(a){return a.a}\nfunction wC(){return null}\nfunction SB(){return null}\nfunction hcb(){mvd();ovd()}\nfunction zJb(a){a.b.tf(a.e)}\nfunction j5b(a,b){a.b=b-a.b}\nfunction g5b(a,b){a.a=b-a.a}\nfunction PXc(a,b){b.ad(a.a)}\nfunction plc(a,b){G0b(b,a)}\nfunction hp(a,b,c){a.Od(c,b)}\nfunction As(a,b){a.e=b;b.b=a}\nfunction Zl(a){Ql();this.a=a}\nfunction jq(a){Ql();this.a=a}\nfunction sq(a){Ql();this.a=a}\nfunction Fq(a){im();this.a=a}\nfunction Sz(a){Rz();Qz.be(a)}\nfunction gz(){Xy.call(this)}\nfunction xcb(){Xy.call(this)}\nfunction pcb(){gz.call(this)}\nfunction tcb(){gz.call(this)}\nfunction Bdb(){gz.call(this)}\nfunction Vdb(){gz.call(this)}\nfunction Ydb(){gz.call(this)}\nfunction Geb(){gz.call(this)}\nfunction bgb(){gz.call(this)}\nfunction Apb(){gz.call(this)}\nfunction Jpb(){gz.call(this)}\nfunction utb(){gz.call(this)}\nfunction x2c(){gz.call(this)}\nfunction rQd(){this.a=this}\nfunction MPd(){this.Bb|=256}\nfunction tTb(){this.b=new mt}\nfunction fA(){fA=ccb;new Lqb}\nfunction rcb(){pcb.call(this)}\nfunction dCb(a,b){a.length=b}\nfunction Tvb(a,b){Ekb(a.a,b)}\nfunction sKb(a,b){UHb(a.c,b)}\nfunction SMc(a,b){Qqb(a.b,b)}\nfunction vBd(a,b){uAd(a.a,b)}\nfunction wBd(a,b){vAd(a.a,b)}\nfunction GLd(a,b){Uhd(a.e,b)}\nfunction d7d(a){D2d(a.c,a.b)}\nfunction mj(a,b){a.kc().Nb(b)}\nfunction Odb(a){this.a=Tdb(a)}\nfunction Tqb(){this.a=new Lqb}\nfunction gyb(){this.a=new Lqb}\nfunction Wvb(){this.a=new Rkb}\nfunction KFb(){this.a=new Rkb}\nfunction PFb(){this.a=new Rkb}\nfunction FFb(){this.a=new yFb}\nfunction pGb(){this.a=new MFb}\nfunction ZQb(){this.a=new MQb}\nfunction Gxb(){this.a=new Pwb}\nfunction jUb(){this.a=new PTb}\nfunction sDb(){this.a=new oDb}\nfunction zDb(){this.a=new tDb}\nfunction CWb(){this.a=new Rkb}\nfunction HXb(){this.a=new Rkb}\nfunction nYb(){this.a=new Rkb}\nfunction BYb(){this.a=new Rkb}\nfunction fLb(){this.d=new Rkb}\nfunction vYb(){this.a=new Tqb}\nfunction a2b(){this.a=new Lqb}\nfunction wZb(){this.b=new Lqb}\nfunction TCc(){this.b=new Rkb}\nfunction zJc(){this.e=new Rkb}\nfunction uMc(){this.d=new Rkb}\nfunction wdc(){this.a=new xkc}\nfunction vKc(){Rkb.call(this)}\nfunction twb(){Wvb.call(this)}\nfunction oHb(){$Gb.call(this)}\nfunction LXb(){HXb.call(this)}\nfunction L_b(){H_b.call(this)}\nfunction H_b(){A_b.call(this)}\nfunction p0b(){A_b.call(this)}\nfunction s0b(){p0b.call(this)}\nfunction WMc(){VMc.call(this)}\nfunction bNc(){VMc.call(this)}\nfunction EPc(){CPc.call(this)}\nfunction JPc(){CPc.call(this)}\nfunction OPc(){CPc.call(this)}\nfunction w1c(){s1c.call(this)}\nfunction s7c(){Psb.call(this)}\nfunction apd(){Ald.call(this)}\nfunction ppd(){Ald.call(this)}\nfunction lDd(){YCd.call(this)}\nfunction NDd(){YCd.call(this)}\nfunction mFd(){Lqb.call(this)}\nfunction vFd(){Lqb.call(this)}\nfunction GFd(){Lqb.call(this)}\nfunction KPd(){Tqb.call(this)}\nfunction OJd(){hJd.call(this)}\nfunction aQd(){MPd.call(this)}\nfunction SSd(){FId.call(this)}\nfunction rUd(){FId.call(this)}\nfunction oUd(){Lqb.call(this)}\nfunction NYd(){Lqb.call(this)}\nfunction cZd(){Lqb.call(this)}\nfunction R8d(){MGd.call(this)}\nfunction o9d(){MGd.call(this)}\nfunction i9d(){R8d.call(this)}\nfunction hee(){ude.call(this)}\nfunction Dd(a){yd.call(this,a)}\nfunction Hd(a){yd.call(this,a)}\nfunction ph(a){lh.call(this,a)}\nfunction Sh(a){Wc.call(this,a)}\nfunction oi(a){Sh.call(this,a)}\nfunction Ii(a){Wc.call(this,a)}\nfunction Zdd(){this.a=new Psb}\nfunction CPc(){this.a=new Tqb}\nfunction s1c(){this.a=new Lqb}\nfunction QSc(){this.a=new Rkb}\nfunction D2c(){this.j=new Rkb}\nfunction QXc(){this.a=new UXc}\nfunction e_c(){this.a=new d_c}\nfunction YCd(){this.a=new aDd}\nfunction _k(){_k=ccb;$k=new al}\nfunction Lk(){Lk=ccb;Kk=new Mk}\nfunction wb(){wb=ccb;vb=new xb}\nfunction hs(){hs=ccb;gs=new is}\nfunction rs(a){Sh.call(this,a)}\nfunction Gp(a){Sh.call(this,a)}\nfunction xp(a){Lo.call(this,a)}\nfunction Ep(a){Lo.call(this,a)}\nfunction Tp(a){Wn.call(this,a)}\nfunction wx(a){un.call(this,a)}\nfunction ov(a){dv.call(this,a)}\nfunction Mv(a){Br.call(this,a)}\nfunction Ov(a){Br.call(this,a)}\nfunction Lw(a){Br.call(this,a)}\nfunction hz(a){Yy.call(this,a)}\nfunction MB(a){hz.call(this,a)}\nfunction eC(){fC.call(this,{})}\nfunction Ftb(a){Atb();this.a=a}\nfunction zwb(a){a.b=null;a.c=0}\nfunction Vy(a,b){a.e=b;Sy(a,b)}\nfunction LVb(a,b){a.a=b;NVb(a)}\nfunction lIb(a,b,c){a.a[b.g]=c}\nfunction vfd(a,b,c){Dfd(c,a,b)}\nfunction Odc(a,b){rjc(b.i,a.n)}\nfunction Wyc(a,b){Xyc(a).td(b)}\nfunction ERb(a,b){return a*a/b}\nfunction Xr(a,b){return a.g-b.g}\nfunction tC(a){return new TB(a)}\nfunction vC(a){return new yC(a)}\nfunction ocb(a){hz.call(this,a)}\nfunction qcb(a){hz.call(this,a)}\nfunction ucb(a){hz.call(this,a)}\nfunction vcb(a){Yy.call(this,a)}\nfunction fGc(a){LFc();this.a=a}\nfunction c0d(a){kzd();this.a=a}\nfunction bhd(a){Rgd();this.f=a}\nfunction dhd(a){Rgd();this.f=a}\nfunction Cdb(a){hz.call(this,a)}\nfunction Wdb(a){hz.call(this,a)}\nfunction Zdb(a){hz.call(this,a)}\nfunction Feb(a){hz.call(this,a)}\nfunction Heb(a){hz.call(this,a)}\nfunction Ccb(a){return uCb(a),a}\nfunction Edb(a){return uCb(a),a}\nfunction Gdb(a){return uCb(a),a}\nfunction jfb(a){return uCb(a),a}\nfunction tfb(a){return uCb(a),a}\nfunction akb(a){return a.b==a.c}\nfunction Hwb(a){return !!a&&a.b}\nfunction pIb(a){return !!a&&a.k}\nfunction qIb(a){return !!a&&a.j}\nfunction amb(a){uCb(a);this.a=a}\nfunction wVb(a){qVb(a);return a}\nfunction Blb(a){Glb(a,a.length)}\nfunction cgb(a){hz.call(this,a)}\nfunction cqd(a){hz.call(this,a)}\nfunction n8d(a){hz.call(this,a)}\nfunction y2c(a){hz.call(this,a)}\nfunction z2c(a){hz.call(this,a)}\nfunction mde(a){hz.call(this,a)}\nfunction pc(a){qc.call(this,a,0)}\nfunction Ji(){Ki.call(this,12,3)}\nfunction Kz(){Kz=ccb;Jz=new Nz}\nfunction jz(){jz=ccb;iz=new nb}\nfunction KA(){KA=ccb;JA=new MA}\nfunction OB(){OB=ccb;NB=new PB}\nfunction jc(){throw vbb(new bgb)}\nfunction zh(){throw vbb(new bgb)}\nfunction Pi(){throw vbb(new bgb)}\nfunction Pj(){throw vbb(new bgb)}\nfunction Qj(){throw vbb(new bgb)}\nfunction Ym(){throw vbb(new bgb)}\nfunction Gb(){this.a=GD(Qb(She))}\nfunction oy(a){Ql();this.a=Qb(a)}\nfunction Bs(a,b){a.Td(b);b.Sd(a)}\nfunction iw(a,b){a.a.ec().Mc(b)}\nfunction CYb(a,b,c){a.c.lf(b,c)}\nfunction scb(a){qcb.call(this,a)}\nfunction Oeb(a){Wdb.call(this,a)}\nfunction Hfb(){mcb.call(this,'')}\nfunction Ifb(){mcb.call(this,'')}\nfunction Ufb(){mcb.call(this,'')}\nfunction Vfb(){mcb.call(this,'')}\nfunction Xfb(a){qcb.call(this,a)}\nfunction zob(a){lnb.call(this,a)}\nfunction Yob(a){Inb.call(this,a)}\nfunction Gob(a){zob.call(this,a)}\nfunction Mk(){Fk.call(this,null)}\nfunction al(){Fk.call(this,null)}\nfunction Az(){Az=ccb;!!(Rz(),Qz)}\nfunction wrb(){wrb=ccb;vrb=yrb()}\nfunction Mtb(a){return a.a?a.b:0}\nfunction Vtb(a){return a.a?a.b:0}\nfunction Lcb(a,b){return a.a-b.a}\nfunction Wcb(a,b){return a.a-b.a}\nfunction Peb(a,b){return a.a-b.a}\nfunction eCb(a,b){return PC(a,b)}\nfunction GC(a,b){return rdb(a,b)}\nfunction _B(b,a){return a in b.a}\nfunction _Db(a,b){a.f=b;return a}\nfunction ZDb(a,b){a.b=b;return a}\nfunction $Db(a,b){a.c=b;return a}\nfunction aEb(a,b){a.g=b;return a}\nfunction HGb(a,b){a.a=b;return a}\nfunction IGb(a,b){a.f=b;return a}\nfunction JGb(a,b){a.k=b;return a}\nfunction dLb(a,b){a.a=b;return a}\nfunction eLb(a,b){a.e=b;return a}\nfunction zVb(a,b){a.e=b;return a}\nfunction AVb(a,b){a.f=b;return a}\nfunction KOb(a,b){a.b=true;a.d=b}\nfunction DHb(a,b){a.b=new g7c(b)}\nfunction uvb(a,b,c){b.td(a.a[c])}\nfunction zvb(a,b,c){b.we(a.a[c])}\nfunction wJc(a,b){return a.b-b.b}\nfunction kOc(a,b){return a.g-b.g}\nfunction WQc(a,b){return a.s-b.s}\nfunction Lic(a,b){return a?0:b-1}\nfunction SFc(a,b){return a?0:b-1}\nfunction RFc(a,b){return a?b-1:0}\nfunction M2c(a,b){return b.Yf(a)}\nfunction M3c(a,b){a.b=b;return a}\nfunction L3c(a,b){a.a=b;return a}\nfunction N3c(a,b){a.c=b;return a}\nfunction O3c(a,b){a.d=b;return a}\nfunction P3c(a,b){a.e=b;return a}\nfunction Q3c(a,b){a.f=b;return a}\nfunction b4c(a,b){a.a=b;return a}\nfunction c4c(a,b){a.b=b;return a}\nfunction d4c(a,b){a.c=b;return a}\nfunction z5c(a,b){a.c=b;return a}\nfunction y5c(a,b){a.b=b;return a}\nfunction A5c(a,b){a.d=b;return a}\nfunction B5c(a,b){a.e=b;return a}\nfunction C5c(a,b){a.f=b;return a}\nfunction D5c(a,b){a.g=b;return a}\nfunction E5c(a,b){a.a=b;return a}\nfunction F5c(a,b){a.i=b;return a}\nfunction G5c(a,b){a.j=b;return a}\nfunction Vdd(a,b){a.k=b;return a}\nfunction Wdd(a,b){a.j=b;return a}\nfunction ykc(a,b){gkc();F0b(b,a)}\nfunction T$c(a,b,c){R$c(a.a,b,c)}\nfunction RGc(a){cEc.call(this,a)}\nfunction iHc(a){cEc.call(this,a)}\nfunction t7c(a){Qsb.call(this,a)}\nfunction aPb(a){_Ob.call(this,a)}\nfunction Ixd(a){zud.call(this,a)}\nfunction dCd(a){ZBd.call(this,a)}\nfunction fCd(a){ZBd.call(this,a)}\nfunction p_b(){q_b.call(this,'')}\nfunction d7c(){this.a=0;this.b=0}\nfunction aPc(){this.b=0;this.a=0}\nfunction NJd(a,b){a.b=0;DId(a,b)}\nfunction X1d(a,b){a.c=b;a.b=true}\nfunction Oc(a,b){return a.c._b(b)}\nfunction gdb(a){return a.e&&a.e()}\nfunction Vd(a){return !a?null:a.d}\nfunction sn(a,b){return Gv(a.b,b)}\nfunction Fv(a){return !a?null:a.g}\nfunction Kv(a){return !a?null:a.i}\nfunction hdb(a){fdb(a);return a.o}\nfunction Fhd(){Fhd=ccb;Ehd=ond()}\nfunction Hhd(){Hhd=ccb;Ghd=Cod()}\nfunction LFd(){LFd=ccb;KFd=qZd()}\nfunction p8d(){p8d=ccb;o8d=Y9d()}\nfunction r8d(){r8d=ccb;q8d=dae()}\nfunction mvd(){mvd=ccb;lvd=n4c()}\nfunction Srb(){throw vbb(new bgb)}\nfunction enb(){throw vbb(new bgb)}\nfunction fnb(){throw vbb(new bgb)}\nfunction gnb(){throw vbb(new bgb)}\nfunction jnb(){throw vbb(new bgb)}\nfunction Cnb(){throw vbb(new bgb)}\nfunction Uqb(a){this.a=new Mqb(a)}\nfunction tgb(a){lgb();ngb(this,a)}\nfunction Hxb(a){this.a=new Qwb(a)}\nfunction _ub(a,b){while(a.ye(b));}\nfunction Sub(a,b){while(a.sd(b));}\nfunction Bfb(a,b){a.a+=b;return a}\nfunction Cfb(a,b){a.a+=b;return a}\nfunction Ffb(a,b){a.a+=b;return a}\nfunction Lfb(a,b){a.a+=b;return a}\nfunction WAb(a){Tzb(a);return a.a}\nfunction Wsb(a){return a.b!=a.d.c}\nfunction pD(a){return a.l|a.m<<22}\nfunction aIc(a,b){return a.d[b.p]}\nfunction h2c(a,b){return c2c(a,b)}\nfunction cCb(a,b,c){a.splice(b,c)}\nfunction WHb(a){a.c?VHb(a):XHb(a)}\nfunction jVc(a){this.a=0;this.b=a}\nfunction ZUc(){this.a=new L2c(K$)}\nfunction tRc(){this.b=new L2c(h$)}\nfunction Q$c(){this.b=new L2c(J_)}\nfunction d_c(){this.b=new L2c(J_)}\nfunction OCd(){throw vbb(new bgb)}\nfunction PCd(){throw vbb(new bgb)}\nfunction QCd(){throw vbb(new bgb)}\nfunction RCd(){throw vbb(new bgb)}\nfunction SCd(){throw vbb(new bgb)}\nfunction TCd(){throw vbb(new bgb)}\nfunction UCd(){throw vbb(new bgb)}\nfunction VCd(){throw vbb(new bgb)}\nfunction WCd(){throw vbb(new bgb)}\nfunction XCd(){throw vbb(new bgb)}\nfunction ahe(){throw vbb(new utb)}\nfunction bhe(){throw vbb(new utb)}\nfunction Rge(a){this.a=new ege(a)}\nfunction ege(a){dge(this,a,Vee())}\nfunction Fhe(a){return !a||Ehe(a)}\nfunction dde(a){return $ce[a]!=-1}\nfunction Iz(){xz!=0&&(xz=0);zz=-1}\nfunction Ybb(){Wbb==null&&(Wbb=[])}\nfunction ONd(a,b){Rxd(ZKd(a.a),b)}\nfunction TNd(a,b){Rxd(ZKd(a.a),b)}\nfunction Yf(a,b){zf.call(this,a,b)}\nfunction $f(a,b){Yf.call(this,a,b)}\nfunction Hf(a,b){this.b=a;this.c=b}\nfunction rk(a,b){this.b=a;this.a=b}\nfunction ek(a,b){this.a=a;this.b=b}\nfunction gk(a,b){this.a=a;this.b=b}\nfunction pk(a,b){this.a=a;this.b=b}\nfunction yk(a,b){this.a=a;this.b=b}\nfunction Ak(a,b){this.a=a;this.b=b}\nfunction Fj(a,b){this.a=a;this.b=b}\nfunction _j(a,b){this.a=a;this.b=b}\nfunction dr(a,b){this.a=a;this.b=b}\nfunction zr(a,b){this.b=a;this.a=b}\nfunction So(a,b){this.b=a;this.a=b}\nfunction qp(a,b){this.b=a;this.a=b}\nfunction $q(a,b){this.b=a;this.a=b}\nfunction $r(a,b){this.f=a;this.g=b}\nfunction ne(a,b){this.e=a;this.d=b}\nfunction Wo(a,b){this.g=a;this.i=b}\nfunction bu(a,b){this.a=a;this.b=b}\nfunction qu(a,b){this.a=a;this.f=b}\nfunction qv(a,b){this.b=a;this.c=b}\nfunction ox(a,b){this.a=a;this.b=b}\nfunction Px(a,b){this.a=a;this.b=b}\nfunction mC(a,b){this.a=a;this.b=b}\nfunction Wc(a){Lb(a.dc());this.c=a}\nfunction rf(a){this.b=BD(Qb(a),83)}\nfunction Zv(a){this.a=BD(Qb(a),83)}\nfunction dv(a){this.a=BD(Qb(a),15)}\nfunction $u(a){this.a=BD(Qb(a),15)}\nfunction Br(a){this.b=BD(Qb(a),47)}\nfunction eB(){this.q=new $wnd.Date}\nfunction Zfb(){Zfb=ccb;Yfb=new jcb}\nfunction Emb(){Emb=ccb;Dmb=new Fmb}\nfunction Vhb(a){return a.f.c+a.g.c}\nfunction hnb(a,b){return a.b.Hc(b)}\nfunction inb(a,b){return a.b.Ic(b)}\nfunction knb(a,b){return a.b.Qc(b)}\nfunction Dob(a,b){return a.b.Hc(b)}\nfunction dob(a,b){return a.c.uc(b)}\nfunction Rqb(a,b){return a.a._b(b)}\nfunction fob(a,b){return pb(a.c,b)}\nfunction jt(a,b){return Mhb(a.b,b)}\nfunction Lp(a,b){return a>b&&b0}\nfunction Gbb(a,b){return ybb(a,b)<0}\nfunction Crb(a,b){return a.a.get(b)}\nfunction icb(b,a){return a.split(b)}\nfunction Vrb(a,b){return Mhb(a.e,b)}\nfunction Nvb(a){return uCb(a),false}\nfunction Rub(a){Kub.call(this,a,21)}\nfunction wcb(a,b){Zy.call(this,a,b)}\nfunction mxb(a,b){$r.call(this,a,b)}\nfunction Gyb(a,b){$r.call(this,a,b)}\nfunction zx(a){yx();Wn.call(this,a)}\nfunction zlb(a,b){Dlb(a,a.length,b)}\nfunction Alb(a,b){Flb(a,a.length,b)}\nfunction ABb(a,b,c){b.ud(a.a.Ge(c))}\nfunction uBb(a,b,c){b.we(a.a.Fe(c))}\nfunction GBb(a,b,c){b.td(a.a.Kb(c))}\nfunction Zq(a,b,c){a.Mb(c)&&b.td(c)}\nfunction aCb(a,b,c){a.splice(b,0,c)}\nfunction lDb(a,b){return uqb(a.e,b)}\nfunction pjb(a,b){this.d=a;this.e=b}\nfunction kqb(a,b){this.b=a;this.a=b}\nfunction VBb(a,b){this.b=a;this.a=b}\nfunction BEb(a,b){this.b=a;this.a=b}\nfunction sBb(a,b){this.a=a;this.b=b}\nfunction yBb(a,b){this.a=a;this.b=b}\nfunction EBb(a,b){this.a=a;this.b=b}\nfunction KBb(a,b){this.a=a;this.b=b}\nfunction aDb(a,b){this.a=a;this.b=b}\nfunction tMb(a,b){this.b=a;this.a=b}\nfunction oOb(a,b){this.b=a;this.a=b}\nfunction SOb(a,b){$r.call(this,a,b)}\nfunction SMb(a,b){$r.call(this,a,b)}\nfunction NEb(a,b){$r.call(this,a,b)}\nfunction VEb(a,b){$r.call(this,a,b)}\nfunction sFb(a,b){$r.call(this,a,b)}\nfunction hHb(a,b){$r.call(this,a,b)}\nfunction OHb(a,b){$r.call(this,a,b)}\nfunction FIb(a,b){$r.call(this,a,b)}\nfunction wLb(a,b){$r.call(this,a,b)}\nfunction YRb(a,b){$r.call(this,a,b)}\nfunction zTb(a,b){$r.call(this,a,b)}\nfunction rUb(a,b){$r.call(this,a,b)}\nfunction oWb(a,b){$r.call(this,a,b)}\nfunction SXb(a,b){$r.call(this,a,b)}\nfunction k0b(a,b){$r.call(this,a,b)}\nfunction z5b(a,b){$r.call(this,a,b)}\nfunction T8b(a,b){$r.call(this,a,b)}\nfunction ibc(a,b){$r.call(this,a,b)}\nfunction Cec(a,b){this.a=a;this.b=b}\nfunction rfc(a,b){this.a=a;this.b=b}\nfunction Rfc(a,b){this.a=a;this.b=b}\nfunction Tfc(a,b){this.a=a;this.b=b}\nfunction bgc(a,b){this.a=a;this.b=b}\nfunction ngc(a,b){this.a=a;this.b=b}\nfunction Qhc(a,b){this.a=a;this.b=b}\nfunction $hc(a,b){this.a=a;this.b=b}\nfunction Z0b(a,b){this.a=a;this.b=b}\nfunction ZVb(a,b){this.b=a;this.a=b}\nfunction Dfc(a,b){this.b=a;this.a=b}\nfunction dgc(a,b){this.b=a;this.a=b}\nfunction Bmc(a,b){this.b=a;this.a=b}\nfunction cWb(a,b){this.c=a;this.d=b}\nfunction I$b(a,b){this.e=a;this.d=b}\nfunction Unc(a,b){this.a=a;this.b=b}\nfunction Oic(a,b){this.b=b;this.c=a}\nfunction Bjc(a,b){$r.call(this,a,b)}\nfunction Yjc(a,b){$r.call(this,a,b)}\nfunction Gkc(a,b){$r.call(this,a,b)}\nfunction Bpc(a,b){$r.call(this,a,b)}\nfunction Jpc(a,b){$r.call(this,a,b)}\nfunction Tpc(a,b){$r.call(this,a,b)}\nfunction cqc(a,b){$r.call(this,a,b)}\nfunction oqc(a,b){$r.call(this,a,b)}\nfunction yqc(a,b){$r.call(this,a,b)}\nfunction Hqc(a,b){$r.call(this,a,b)}\nfunction Uqc(a,b){$r.call(this,a,b)}\nfunction arc(a,b){$r.call(this,a,b)}\nfunction mrc(a,b){$r.call(this,a,b)}\nfunction zrc(a,b){$r.call(this,a,b)}\nfunction Prc(a,b){$r.call(this,a,b)}\nfunction Yrc(a,b){$r.call(this,a,b)}\nfunction fsc(a,b){$r.call(this,a,b)}\nfunction nsc(a,b){$r.call(this,a,b)}\nfunction nzc(a,b){$r.call(this,a,b)}\nfunction zzc(a,b){$r.call(this,a,b)}\nfunction Kzc(a,b){$r.call(this,a,b)}\nfunction Xzc(a,b){$r.call(this,a,b)}\nfunction Dtc(a,b){$r.call(this,a,b)}\nfunction lAc(a,b){$r.call(this,a,b)}\nfunction uAc(a,b){$r.call(this,a,b)}\nfunction CAc(a,b){$r.call(this,a,b)}\nfunction LAc(a,b){$r.call(this,a,b)}\nfunction UAc(a,b){$r.call(this,a,b)}\nfunction aBc(a,b){$r.call(this,a,b)}\nfunction uBc(a,b){$r.call(this,a,b)}\nfunction DBc(a,b){$r.call(this,a,b)}\nfunction MBc(a,b){$r.call(this,a,b)}\nfunction sGc(a,b){$r.call(this,a,b)}\nfunction VIc(a,b){$r.call(this,a,b)}\nfunction EIc(a,b){this.b=a;this.a=b}\nfunction qKc(a,b){this.a=a;this.b=b}\nfunction GKc(a,b){this.a=a;this.b=b}\nfunction lLc(a,b){this.a=a;this.b=b}\nfunction mMc(a,b){this.a=a;this.b=b}\nfunction fMc(a,b){$r.call(this,a,b)}\nfunction ZLc(a,b){$r.call(this,a,b)}\nfunction ZMc(a,b){this.b=a;this.d=b}\nfunction IOc(a,b){$r.call(this,a,b)}\nfunction GQc(a,b){$r.call(this,a,b)}\nfunction PQc(a,b){this.a=a;this.b=b}\nfunction RQc(a,b){this.a=a;this.b=b}\nfunction ARc(a,b){$r.call(this,a,b)}\nfunction rSc(a,b){$r.call(this,a,b)}\nfunction TTc(a,b){$r.call(this,a,b)}\nfunction _Tc(a,b){$r.call(this,a,b)}\nfunction RUc(a,b){$r.call(this,a,b)}\nfunction uVc(a,b){$r.call(this,a,b)}\nfunction hWc(a,b){$r.call(this,a,b)}\nfunction rWc(a,b){$r.call(this,a,b)}\nfunction kXc(a,b){$r.call(this,a,b)}\nfunction uXc(a,b){$r.call(this,a,b)}\nfunction AYc(a,b){$r.call(this,a,b)}\nfunction l$c(a,b){$r.call(this,a,b)}\nfunction Z$c(a,b){$r.call(this,a,b)}\nfunction D_c(a,b){$r.call(this,a,b)}\nfunction O_c(a,b){$r.call(this,a,b)}\nfunction c1c(a,b){$r.call(this,a,b)}\nfunction cVb(a,b){return uqb(a.c,b)}\nfunction nnc(a,b){return uqb(b.b,a)}\nfunction x1c(a,b){return -a.b.Je(b)}\nfunction D3c(a,b){return uqb(a.g,b)}\nfunction O5c(a,b){$r.call(this,a,b)}\nfunction a6c(a,b){$r.call(this,a,b)}\nfunction m2c(a,b){this.a=a;this.b=b}\nfunction W2c(a,b){this.a=a;this.b=b}\nfunction f7c(a,b){this.a=a;this.b=b}\nfunction G7c(a,b){$r.call(this,a,b)}\nfunction j8c(a,b){$r.call(this,a,b)}\nfunction iad(a,b){$r.call(this,a,b)}\nfunction rad(a,b){$r.call(this,a,b)}\nfunction Bad(a,b){$r.call(this,a,b)}\nfunction Nad(a,b){$r.call(this,a,b)}\nfunction ibd(a,b){$r.call(this,a,b)}\nfunction tbd(a,b){$r.call(this,a,b)}\nfunction Ibd(a,b){$r.call(this,a,b)}\nfunction Ubd(a,b){$r.call(this,a,b)}\nfunction gcd(a,b){$r.call(this,a,b)}\nfunction scd(a,b){$r.call(this,a,b)}\nfunction Ycd(a,b){$r.call(this,a,b)}\nfunction udd(a,b){$r.call(this,a,b)}\nfunction Jdd(a,b){$r.call(this,a,b)}\nfunction Eed(a,b){$r.call(this,a,b)}\nfunction bfd(a,b){this.a=a;this.b=b}\nfunction dfd(a,b){this.a=a;this.b=b}\nfunction ffd(a,b){this.a=a;this.b=b}\nfunction Kfd(a,b){this.a=a;this.b=b}\nfunction Mfd(a,b){this.a=a;this.b=b}\nfunction Ofd(a,b){this.a=a;this.b=b}\nfunction vgd(a,b){this.a=a;this.b=b}\nfunction qgd(a,b){$r.call(this,a,b)}\nfunction jrd(a,b){this.a=a;this.b=b}\nfunction krd(a,b){this.a=a;this.b=b}\nfunction mrd(a,b){this.a=a;this.b=b}\nfunction nrd(a,b){this.a=a;this.b=b}\nfunction qrd(a,b){this.a=a;this.b=b}\nfunction rrd(a,b){this.a=a;this.b=b}\nfunction srd(a,b){this.b=a;this.a=b}\nfunction trd(a,b){this.b=a;this.a=b}\nfunction Drd(a,b){this.b=a;this.a=b}\nfunction Frd(a,b){this.b=a;this.a=b}\nfunction Hrd(a,b){this.a=a;this.b=b}\nfunction Jrd(a,b){this.a=a;this.b=b}\nfunction Ord(a,b){Xqd(a.a,BD(b,56))}\nfunction BIc(a,b){gIc(a.a,BD(b,11))}\nfunction fIc(a,b){FHc();return b!=a}\nfunction Arb(){wrb();return new vrb}\nfunction CMc(){wMc();this.b=new Tqb}\nfunction NNc(){FNc();this.a=new Tqb}\nfunction eCc(){ZBc();aCc.call(this)}\nfunction Dsd(a,b){$r.call(this,a,b)}\nfunction Urd(a,b){this.a=a;this.b=b}\nfunction Wrd(a,b){this.a=a;this.b=b}\nfunction kGd(a,b){this.a=a;this.b=b}\nfunction nGd(a,b){this.a=a;this.b=b}\nfunction bUd(a,b){this.a=a;this.b=b}\nfunction zVd(a,b){this.a=a;this.b=b}\nfunction C1d(a,b){this.d=a;this.b=b}\nfunction MLd(a,b){this.d=a;this.e=b}\nfunction Wud(a,b){this.f=a;this.c=b}\nfunction f7d(a,b){this.b=a;this.c=b}\nfunction _zd(a,b){this.i=a;this.g=b}\nfunction Y1d(a,b){this.e=a;this.a=b}\nfunction c8d(a,b){this.a=a;this.b=b}\nfunction $Id(a,b){a.i=null;_Id(a,b)}\nfunction ivd(a,b){!!a&&Rhb(cvd,a,b)}\nfunction hCd(a,b){return qAd(a.a,b)}\nfunction e7d(a){return R2d(a.c,a.b)}\nfunction Wd(a){return !a?null:a.dd()}\nfunction PD(a){return a==null?null:a}\nfunction KD(a){return typeof a===Khe}\nfunction LD(a){return typeof a===Lhe}\nfunction ND(a){return typeof a===Mhe}\nfunction Em(a,b){return a.Hd().Xb(b)}\nfunction Kq(a,b){return hr(a.Kc(),b)}\nfunction Bbb(a,b){return ybb(a,b)==0}\nfunction Ebb(a,b){return ybb(a,b)>=0}\nfunction Kbb(a,b){return ybb(a,b)!=0}\nfunction Jdb(a){return ''+(uCb(a),a)}\nfunction pfb(a,b){return a.substr(b)}\nfunction cg(a){ag(a);return a.d.gc()}\nfunction oVb(a){pVb(a,a.c);return a}\nfunction RD(a){CCb(a==null);return a}\nfunction Dfb(a,b){a.a+=''+b;return a}\nfunction Efb(a,b){a.a+=''+b;return a}\nfunction Nfb(a,b){a.a+=''+b;return a}\nfunction Pfb(a,b){a.a+=''+b;return a}\nfunction Qfb(a,b){a.a+=''+b;return a}\nfunction Mfb(a,b){return a.a+=''+b,a}\nfunction Esb(a,b){Gsb(a,b,a.a,a.a.a)}\nfunction Fsb(a,b){Gsb(a,b,a.c.b,a.c)}\nfunction Mqd(a,b,c){Rpd(b,kqd(a,c))}\nfunction Nqd(a,b,c){Rpd(b,kqd(a,c))}\nfunction Dhe(a,b){Hhe(new Fyd(a),b)}\nfunction cB(a,b){a.q.setTime(Sbb(b))}\nfunction fvb(a,b){bvb.call(this,a,b)}\nfunction jvb(a,b){bvb.call(this,a,b)}\nfunction nvb(a,b){bvb.call(this,a,b)}\nfunction Nqb(a){Uhb(this);Ld(this,a)}\nfunction wmb(a){tCb(a,0);return null}\nfunction X6c(a){a.a=0;a.b=0;return a}\nfunction f3c(a,b){a.a=b.g+1;return a}\nfunction PJc(a,b){return a.j[b.p]==2}\nfunction _Pb(a){return VPb(BD(a,79))}\nfunction yJb(){yJb=ccb;xJb=as(wJb())}\nfunction Y8b(){Y8b=ccb;X8b=as(W8b())}\nfunction mt(){this.b=new Mqb(Cv(12))}\nfunction Otb(){this.b=0;this.a=false}\nfunction Wtb(){this.b=0;this.a=false}\nfunction sl(a){this.a=a;ol.call(this)}\nfunction vl(a){this.a=a;ol.call(this)}\nfunction Nsd(a,b){Msd.call(this,a,b)}\nfunction $zd(a,b){Cyd.call(this,a,b)}\nfunction nNd(a,b){_zd.call(this,a,b)}\nfunction s4d(a,b){p4d.call(this,a,b)}\nfunction w4d(a,b){qRd.call(this,a,b)}\nfunction rEd(a,b){pEd();Rhb(oEd,a,b)}\nfunction lcb(a,b){return qfb(a.a,0,b)}\nfunction ww(a,b){return a.a.a.a.cc(b)}\nfunction mb(a,b){return PD(a)===PD(b)}\nfunction Mdb(a,b){return Kdb(a.a,b.a)}\nfunction $db(a,b){return beb(a.a,b.a)}\nfunction seb(a,b){return ueb(a.a,b.a)}\nfunction hfb(a,b){return a.indexOf(b)}\nfunction Ny(a,b){return a==b?0:a?1:-1}\nfunction kB(a){return a<10?'0'+a:''+a}\nfunction Mq(a){return Qb(a),new sl(a)}\nfunction SC(a){return TC(a.l,a.m,a.h)}\nfunction Hdb(a){return QD((uCb(a),a))}\nfunction Idb(a){return QD((uCb(a),a))}\nfunction NIb(a,b){return beb(a.g,b.g)}\nfunction Fbb(a){return typeof a===Lhe}\nfunction mWb(a){return a==hWb||a==kWb}\nfunction nWb(a){return a==hWb||a==iWb}\nfunction G1b(a){return Jkb(a.b.b,a,0)}\nfunction lrb(a){this.a=Arb();this.b=a}\nfunction Frb(a){this.a=Arb();this.b=a}\nfunction swb(a,b){Ekb(a.a,b);return b}\nfunction Z1c(a,b){Ekb(a.c,b);return a}\nfunction E2c(a,b){d3c(a.a,b);return a}\nfunction _gc(a,b){Hgc();return b.a+=a}\nfunction bhc(a,b){Hgc();return b.a+=a}\nfunction ahc(a,b){Hgc();return b.c+=a}\nfunction Nlb(a,b){Klb(a,0,a.length,b)}\nfunction zsb(){Wqb.call(this,new $rb)}\nfunction I_b(){B_b.call(this,0,0,0,0)}\nfunction I6c(){J6c.call(this,0,0,0,0)}\nfunction g7c(a){this.a=a.a;this.b=a.b}\nfunction fad(a){return a==aad||a==bad}\nfunction gad(a){return a==dad||a==_9c}\nfunction Jzc(a){return a==Fzc||a==Ezc}\nfunction fcd(a){return a!=bcd&&a!=ccd}\nfunction oid(a){return a.Lg()&&a.Mg()}\nfunction Gfd(a){return Kkd(BD(a,118))}\nfunction k3c(a){return d3c(new j3c,a)}\nfunction y2d(a,b){return new p4d(b,a)}\nfunction z2d(a,b){return new p4d(b,a)}\nfunction ukd(a,b,c){vkd(a,b);wkd(a,c)}\nfunction _kd(a,b,c){cld(a,b);ald(a,c)}\nfunction bld(a,b,c){dld(a,b);eld(a,c)}\nfunction gmd(a,b,c){hmd(a,b);imd(a,c)}\nfunction nmd(a,b,c){omd(a,b);pmd(a,c)}\nfunction iKd(a,b){$Jd(a,b);_Jd(a,a.D)}\nfunction _ud(a){Wud.call(this,a,true)}\nfunction Xg(a,b,c){Vg.call(this,a,b,c)}\nfunction Ygb(a){Hgb();Zgb.call(this,a)}\nfunction rxb(){mxb.call(this,'Head',1)}\nfunction wxb(){mxb.call(this,'Tail',3)}\nfunction Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)}\nfunction Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)}\nfunction MGb(a){Hkb(a.xf(),new QGb(a))}\nfunction xtb(a){return a!=null?tb(a):0}\nfunction b2b(a,b){return ntd(b,mpd(a))}\nfunction c2b(a,b){return ntd(b,mpd(a))}\nfunction dAb(a,b){return a[a.length]=b}\nfunction gAb(a,b){return a[a.length]=b}\nfunction Vq(a){return lr(a.b.Kc(),a.a)}\nfunction dqd(a,b){return _o(qo(a.d),b)}\nfunction eqd(a,b){return _o(qo(a.g),b)}\nfunction fqd(a,b){return _o(qo(a.j),b)}\nfunction Osd(a,b){Msd.call(this,a.b,b)}\nfunction q0b(a){B_b.call(this,a,a,a,a)}\nfunction HOb(a){a.b&&LOb(a);return a.a}\nfunction IOb(a){a.b&&LOb(a);return a.c}\nfunction uyb(a,b){if(lyb){return}a.b=b}\nfunction lzd(a,b,c){NC(a,b,c);return c}\nfunction mBc(a,b,c){NC(a.c[b.g],b.g,c)}\nfunction _Hd(a,b,c){BD(a.c,69).Xh(b,c)}\nfunction wfd(a,b,c){bld(c,c.i+a,c.j+b)}\nfunction UOd(a,b){wtd(VKd(a.a),XOd(b))}\nfunction bTd(a,b){wtd(QSd(a.a),eTd(b))}\nfunction Lge(a){wfe();xfe.call(this,a)}\nfunction CAd(a){return a==null?0:tb(a)}\nfunction fNc(){fNc=ccb;eNc=new Rpb(v1)}\nfunction h0d(){h0d=ccb;new i0d;new Rkb}\nfunction i0d(){new Lqb;new Lqb;new Lqb}\nfunction GA(){GA=ccb;fA();FA=new Lqb}\nfunction Iy(){Iy=ccb;$wnd.Math.log(2)}\nfunction UVd(){UVd=ccb;TVd=(AFd(),zFd)}\nfunction _ge(){throw vbb(new cgb(Cxe))}\nfunction ohe(){throw vbb(new cgb(Cxe))}\nfunction che(){throw vbb(new cgb(Dxe))}\nfunction rhe(){throw vbb(new cgb(Dxe))}\nfunction Mg(a){this.a=a;Gg.call(this,a)}\nfunction up(a){this.a=a;rf.call(this,a)}\nfunction Bp(a){this.a=a;rf.call(this,a)}\nfunction Okb(a,b){Mlb(a.c,a.c.length,b)}\nfunction llb(a){return a.ab?1:0}\nfunction Deb(a,b){return ybb(a,b)>0?a:b}\nfunction TC(a,b,c){return {l:a,m:b,h:c}}\nfunction Ctb(a,b){a.a!=null&&BIc(b,a.a)}\nfunction Csb(a){a.a=new jtb;a.c=new jtb}\nfunction hDb(a){this.b=a;this.a=new Rkb}\nfunction dOb(a){this.b=new pOb;this.a=a}\nfunction q_b(a){n_b.call(this);this.a=a}\nfunction txb(){mxb.call(this,'Range',2)}\nfunction bUb(){ZTb();this.a=new L2c(zP)}\nfunction Bh(a,b){Qb(b);Ah(a).Jc(new Vw)}\nfunction fKc(a,b){FJc();return b.n.b+=a}\nfunction Tgc(a,b,c){return Rhb(a.g,c,b)}\nfunction LJc(a,b,c){return Rhb(a.k,c,b)}\nfunction r1c(a,b){return Rhb(a.a,b.a,b)}\nfunction jBc(a,b,c){return hBc(b,c,a.c)}\nfunction E6c(a){return new f7c(a.c,a.d)}\nfunction F6c(a){return new f7c(a.c,a.d)}\nfunction R6c(a){return new f7c(a.a,a.b)}\nfunction CQd(a,b){return hA(a.a,b,null)}\nfunction fec(a){QZb(a,null);RZb(a,null)}\nfunction AOc(a){BOc(a,null);COc(a,null)}\nfunction u4d(){qRd.call(this,null,null)}\nfunction y4d(){RRd.call(this,null,null)}\nfunction a7d(a){this.a=a;Lqb.call(this)}\nfunction Pp(a){this.b=(mmb(),new iob(a))}\nfunction Py(a){a.j=KC(VI,nie,310,0,0,1)}\nfunction oAd(a,b,c){a.c.Vc(b,BD(c,133))}\nfunction GAd(a,b,c){a.c.ji(b,BD(c,133))}\nfunction JLd(a,b){Uxd(a);a.Gc(BD(b,15))}\nfunction b7d(a,b){return t2d(a.c,a.b,b)}\nfunction Bv(a,b){return new Qv(a.Kc(),b)}\nfunction Lq(a,b){return rr(a.Kc(),b)!=-1}\nfunction Sqb(a,b){return a.a.Bc(b)!=null}\nfunction pr(a){return a.Ob()?a.Pb():null}\nfunction yfb(a){return zfb(a,0,a.length)}\nfunction JD(a,b){return a!=null&&AD(a,b)}\nfunction $A(a,b){a.q.setHours(b);YA(a,b)}\nfunction Yrb(a,b){if(a.c){jsb(b);isb(b)}}\nfunction nk(a,b,c){BD(a.Kb(c),164).Nb(b)}\nfunction RJc(a,b,c){SJc(a,b,c);return c}\nfunction Eub(a,b,c){a.a=b^1502;a.b=c^kke}\nfunction xHb(a,b,c){return a.a[b.g][c.g]}\nfunction REc(a,b){return a.a[b.c.p][b.p]}\nfunction aEc(a,b){return a.e[b.c.p][b.p]}\nfunction tEc(a,b){return a.c[b.c.p][b.p]}\nfunction OJc(a,b){return a.j[b.p]=aKc(b)}\nfunction k5c(a,b){return cfb(a.f,b.tg())}\nfunction Isd(a,b){return cfb(a.b,b.tg())}\nfunction Sfd(a,b){return a.a0?b*b/a:b*b*100}\nfunction CRb(a,b){return a>0?b/(a*a):b*100}\nfunction G2c(a,b,c){return Ekb(b,I2c(a,c))}\nfunction t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)}\nfunction St(a,b,c){var d;d=a.Zc(b);d.Rb(c)}\nfunction O6c(a,b,c){a.a+=b;a.b+=c;return a}\nfunction Z6c(a,b,c){a.a*=b;a.b*=c;return a}\nfunction b7c(a,b,c){a.a-=b;a.b-=c;return a}\nfunction a7c(a,b){a.a=b.a;a.b=b.b;return a}\nfunction V6c(a){a.a=-a.a;a.b=-a.b;return a}\nfunction Dic(a){this.c=a;this.a=1;this.b=1}\nfunction xed(a){this.c=a;dld(a,0);eld(a,0)}\nfunction u7c(a){Psb.call(this);n7c(this,a)}\nfunction AXb(a){xXb();yXb(this);this.mf(a)}\nfunction GRd(a,b){nRd();qRd.call(this,a,b)}\nfunction dSd(a,b){LRd();RRd.call(this,a,b)}\nfunction hSd(a,b){LRd();RRd.call(this,a,b)}\nfunction fSd(a,b){LRd();dSd.call(this,a,b)}\nfunction sId(a,b,c){dId.call(this,a,b,c,2)}\nfunction zXd(a,b){UVd();nXd.call(this,a,b)}\nfunction BXd(a,b){UVd();zXd.call(this,a,b)}\nfunction DXd(a,b){UVd();zXd.call(this,a,b)}\nfunction FXd(a,b){UVd();DXd.call(this,a,b)}\nfunction PXd(a,b){UVd();nXd.call(this,a,b)}\nfunction RXd(a,b){UVd();PXd.call(this,a,b)}\nfunction XXd(a,b){UVd();nXd.call(this,a,b)}\nfunction pAd(a,b){return a.c.Fc(BD(b,133))}\nfunction w1d(a,b,c){return V1d(p1d(a,b),c)}\nfunction N2d(a,b,c){return b.Qk(a.e,a.c,c)}\nfunction P2d(a,b,c){return b.Rk(a.e,a.c,c)}\nfunction a3d(a,b){return xid(a.e,BD(b,49))}\nfunction aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))}\nfunction TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))}\nfunction ypb(a,b){b.$modCount=a.$modCount}\nfunction MUc(){MUc=ccb;LUc=new Lsd('root')}\nfunction LCd(){LCd=ccb;KCd=new lDd;new NDd}\nfunction KVc(){this.a=new Hp;this.b=new Hp}\nfunction FUd(){hJd.call(this);this.Bb|=Tje}\nfunction t_c(){$r.call(this,'GROW_TREE',0)}\nfunction C9d(a){return a==null?null:cde(a)}\nfunction G9d(a){return a==null?null:jde(a)}\nfunction J9d(a){return a==null?null:fcb(a)}\nfunction K9d(a){return a==null?null:fcb(a)}\nfunction fdb(a){if(a.o!=null){return}vdb(a)}\nfunction DD(a){CCb(a==null||KD(a));return a}\nfunction ED(a){CCb(a==null||LD(a));return a}\nfunction GD(a){CCb(a==null||ND(a));return a}\nfunction gB(a){this.q=new $wnd.Date(Sbb(a))}\nfunction Mf(a,b){this.c=a;ne.call(this,a,b)}\nfunction Sf(a,b){this.a=a;Mf.call(this,a,b)}\nfunction Hg(a,b){this.d=a;Dg(this);this.b=b}\nfunction bAb(a,b){Vzb.call(this,a);this.a=b}\nfunction vAb(a,b){Vzb.call(this,a);this.a=b}\nfunction sNb(a){pNb.call(this,0,0);this.f=a}\nfunction Vg(a,b,c){dg.call(this,a,b,c,null)}\nfunction Yg(a,b,c){dg.call(this,a,b,c,null)}\nfunction Pxb(a,b,c){return a.ue(b,c)<=0?c:b}\nfunction Qxb(a,b,c){return a.ue(b,c)<=0?b:c}\nfunction g4c(a,b){return BD(Wrb(a.b,b),149)}\nfunction i4c(a,b){return BD(Wrb(a.c,b),229)}\nfunction wic(a){return BD(Ikb(a.a,a.b),287)}\nfunction B6c(a){return new f7c(a.c,a.d+a.a)}\nfunction eLc(a){return FJc(),Jzc(BD(a,197))}\nfunction $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))}\nfunction fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)}\nfunction qyb(a,b){if(lyb){return}Ekb(a.a,b)}\nfunction F2b(a,b){x2b();return f_b(b.d.i,a)}\nfunction _9b(a,b){I9b();return new gac(b,a)}\nfunction _Hb(a,b){ytb(b,lle);a.f=b;return a}\nfunction Kld(a,b,c){c=_hd(a,b,3,c);return c}\nfunction bmd(a,b,c){c=_hd(a,b,6,c);return c}\nfunction kpd(a,b,c){c=_hd(a,b,9,c);return c}\nfunction Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)}\nfunction Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))}\nfunction bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)}\nfunction c7d(a,b,c){return C2d(a.c,a.b,b,c)}\nfunction DAd(a,b){return (b&Ohe)%a.d.length}\nfunction Msd(a,b){Lsd.call(this,a);this.a=b}\nfunction uVd(a,b){lVd.call(this,a);this.a=b}\nfunction sYd(a,b){lVd.call(this,a);this.a=b}\nfunction zyd(a,b){this.c=a;zud.call(this,b)}\nfunction YOd(a,b){this.a=a;qOd.call(this,b)}\nfunction fTd(a,b){this.a=a;qOd.call(this,b)}\nfunction Xp(a){this.a=(Xj(a,Jie),new Skb(a))}\nfunction cq(a){this.a=(Xj(a,Jie),new Skb(a))}\nfunction LA(a){!a.a&&(a.a=new VA);return a.a}\nfunction XMb(a){if(a>8){return 0}return a+1}\nfunction Ecb(a,b){Bcb();return a==b?0:a?1:-1}\nfunction Opb(a,b,c){return Npb(a,BD(b,22),c)}\nfunction Bz(a,b,c){return a.apply(b,c);var d}\nfunction Sfb(a,b,c){a.a+=zfb(b,0,c);return a}\nfunction ijb(a,b){var c;c=a.e;a.e=b;return c}\nfunction trb(a,b){var c;c=a[hke];c.call(a,b)}\nfunction urb(a,b){var c;c=a[hke];c.call(a,b)}\nfunction Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1}\nfunction Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d}\nfunction _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)}\nfunction _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))}\nfunction Bxb(a,b){return Vd(Cwb(a.a,b,true))}\nfunction Cxb(a,b){return Vd(Dwb(a.a,b,true))}\nfunction _Bb(a,b){return eCb(new Array(b),a)}\nfunction HD(a){return String.fromCharCode(a)}\nfunction mz(a){return a==null?null:a.message}\nfunction gRb(){this.a=new Rkb;this.b=new Rkb}\nfunction iTb(){this.a=new MQb;this.b=new tTb}\nfunction tDb(){this.b=new d7c;this.c=new Rkb}\nfunction _Qb(){this.d=new d7c;this.e=new d7c}\nfunction n_b(){this.n=new d7c;this.o=new d7c}\nfunction $Gb(){this.n=new p0b;this.i=new I6c}\nfunction sec(){this.a=new Umc;this.b=new mnc}\nfunction NIc(){this.a=new Rkb;this.d=new Rkb}\nfunction LDc(){this.b=new Tqb;this.a=new Tqb}\nfunction hSc(){this.b=new Lqb;this.a=new Lqb}\nfunction HRc(){this.b=new tRc;this.a=new hRc}\nfunction aHb(){$Gb.call(this);this.a=new d7c}\nfunction Ywb(a){Zwb.call(this,a,(lxb(),hxb))}\nfunction J_b(a,b,c,d){B_b.call(this,a,b,c,d)}\nfunction sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))}\nfunction tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))}\nfunction Tod(a,b,c){c=_hd(a,b,11,c);return c}\nfunction P6c(a,b){a.a+=b.a;a.b+=b.b;return a}\nfunction c7c(a,b){a.a-=b.a;a.b-=b.b;return a}\nfunction u7b(a,b){return a.n.a=(uCb(b),b)+10}\nfunction v7b(a,b){return a.n.a=(uCb(b),b)+10}\nfunction dLd(a,b){return b==a||pud(UKd(b),a)}\nfunction PYd(a,b){return Rhb(a.a,b,'')==null}\nfunction E2b(a,b){x2b();return !f_b(b.d.i,a)}\nfunction rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)}\nfunction h1d(a,b){var c;c=b.Hh(a.a);return c}\nfunction Cyd(a,b){qcb.call(this,gve+a+mue+b)}\nfunction gUd(a,b,c,d){cUd.call(this,a,b,c,d)}\nfunction Q4d(a,b,c,d){cUd.call(this,a,b,c,d)}\nfunction U4d(a,b,c,d){Q4d.call(this,a,b,c,d)}\nfunction n5d(a,b,c,d){i5d.call(this,a,b,c,d)}\nfunction p5d(a,b,c,d){i5d.call(this,a,b,c,d)}\nfunction v5d(a,b,c,d){i5d.call(this,a,b,c,d)}\nfunction t5d(a,b,c,d){p5d.call(this,a,b,c,d)}\nfunction A5d(a,b,c,d){p5d.call(this,a,b,c,d)}\nfunction y5d(a,b,c,d){v5d.call(this,a,b,c,d)}\nfunction D5d(a,b,c,d){A5d.call(this,a,b,c,d)}\nfunction d6d(a,b,c,d){Y5d.call(this,a,b,c,d)}\nfunction Vp(a,b,c){this.a=a;qc.call(this,b,c)}\nfunction tk(a,b,c){this.c=b;this.b=c;this.a=a}\nfunction ik(a,b,c){return a.d=BD(b.Kb(c),164)}\nfunction j6d(a,b){return a.Aj().Nh().Kh(a,b)}\nfunction h6d(a,b){return a.Aj().Nh().Ih(a,b)}\nfunction Fdb(a,b){return uCb(a),PD(a)===PD(b)}\nfunction dfb(a,b){return uCb(a),PD(a)===PD(b)}\nfunction Dxb(a,b){return Vd(Cwb(a.a,b,false))}\nfunction Exb(a,b){return Vd(Dwb(a.a,b,false))}\nfunction vBb(a,b){return a.b.sd(new yBb(a,b))}\nfunction BBb(a,b){return a.b.sd(new EBb(a,b))}\nfunction HBb(a,b){return a.b.sd(new KBb(a,b))}\nfunction lfb(a,b,c){return a.lastIndexOf(b,c)}\nfunction uTb(a,b,c){return Kdb(a[b.b],a[c.b])}\nfunction RTb(a,b){return yNb(b,(Nyc(),Cwc),a)}\nfunction fmc(a,b){return beb(b.a.d.p,a.a.d.p)}\nfunction emc(a,b){return beb(a.a.d.p,b.a.d.p)}\nfunction _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)}\nfunction S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)}\nfunction Vxd(a){return a<100?null:new Ixd(a)}\nfunction ecd(a){return a==Zbd||a==_bd||a==$bd}\nfunction zAd(a,b){return JD(b,15)&&Btd(a.c,b)}\nfunction vyb(a,b){if(lyb){return}!!b&&(a.d=b)}\nfunction ujb(a,b){var c;c=b;return !!Awb(a,c)}\nfunction czd(a,b){this.c=a;Pyd.call(this,a,b)}\nfunction fBb(a){this.c=a;nvb.call(this,rie,0)}\nfunction Avb(a,b){Bvb.call(this,a,a.length,b)}\nfunction aId(a,b,c){return BD(a.c,69).lk(b,c)}\nfunction bId(a,b,c){return BD(a.c,69).mk(b,c)}\nfunction O2d(a,b,c){return N2d(a,BD(b,332),c)}\nfunction Q2d(a,b,c){return P2d(a,BD(b,332),c)}\nfunction i3d(a,b,c){return h3d(a,BD(b,332),c)}\nfunction k3d(a,b,c){return j3d(a,BD(b,332),c)}\nfunction tn(a,b){return b==null?null:Hv(a.b,b)}\nfunction Kcb(a){return LD(a)?(uCb(a),a):a.ke()}\nfunction Ldb(a){return !isNaN(a)&&!isFinite(a)}\nfunction Wn(a){Ql();this.a=(mmb(),new zob(a))}\nfunction dIc(a){FHc();this.d=a;this.a=new jkb}\nfunction xqb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Nrb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction $sb(a,b,c){this.d=a;this.b=c;this.a=b}\nfunction Qsb(a){Csb(this);Osb(this);ye(this,a)}\nfunction Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())}\nfunction Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null}\nfunction iyb(a){this.a=a;Zfb();Cbb(Date.now())}\nfunction JCb(){JCb=ccb;GCb=new nb;ICb=new nb}\nfunction ntb(){ntb=ccb;ltb=new otb;mtb=new qtb}\nfunction kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)}\nfunction tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)}\nfunction $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)}\nfunction Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))}\nfunction pxb(a){lxb();return es((zxb(),yxb),a)}\nfunction Hyb(a){Fyb();return es((Kyb(),Jyb),a)}\nfunction OEb(a){MEb();return es((REb(),QEb),a)}\nfunction WEb(a){UEb();return es((ZEb(),YEb),a)}\nfunction tFb(a){rFb();return es((wFb(),vFb),a)}\nfunction iHb(a){gHb();return es((lHb(),kHb),a)}\nfunction PHb(a){NHb();return es((SHb(),RHb),a)}\nfunction GIb(a){EIb();return es((JIb(),IIb),a)}\nfunction vJb(a){qJb();return es((yJb(),xJb),a)}\nfunction xLb(a){vLb();return es((ALb(),zLb),a)}\nfunction TMb(a){RMb();return es((WMb(),VMb),a)}\nfunction TOb(a){ROb();return es((WOb(),VOb),a)}\nfunction ePb(a){cPb();return es((hPb(),gPb),a)}\nfunction ZRb(a){XRb();return es((aSb(),_Rb),a)}\nfunction ATb(a){yTb();return es((DTb(),CTb),a)}\nfunction sUb(a){qUb();return es((vUb(),uUb),a)}\nfunction rWb(a){lWb();return es((uWb(),tWb),a)}\nfunction TXb(a){RXb();return es((WXb(),VXb),a)}\nfunction Mb(a,b){if(!a){throw vbb(new Wdb(b))}}\nfunction l0b(a){j0b();return es((o0b(),n0b),a)}\nfunction r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)}\nfunction K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)}\nfunction mKb(a,b,c){this.b=a;this.c=b;this.a=c}\nfunction BZb(a,b,c){this.b=a;this.a=b;this.c=c}\nfunction TNb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction uOb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction S3b(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Z6b(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction n9b(a,b,c){this.b=a;this.a=b;this.c=c}\nfunction x$b(a,b,c){this.e=b;this.b=a;this.d=c}\nfunction $Ab(a,b,c){EAb();a.a.Od(b,c);return b}\nfunction LGb(a){var b;b=new KGb;b.e=a;return b}\nfunction iLb(a){var b;b=new fLb;b.b=a;return b}\nfunction D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b}\nfunction Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc}\nfunction jbc(a){gbc();return es((mbc(),lbc),a)}\nfunction Cjc(a){Ajc();return es((Fjc(),Ejc),a)}\nfunction Clc(a){Alc();return es((Flc(),Elc),a)}\nfunction Cpc(a){Apc();return es((Fpc(),Epc),a)}\nfunction Kpc(a){Ipc();return es((Npc(),Mpc),a)}\nfunction Wpc(a){Rpc();return es((Zpc(),Ypc),a)}\nfunction $jc(a){Xjc();return es((bkc(),akc),a)}\nfunction Hkc(a){Fkc();return es((Kkc(),Jkc),a)}\nfunction dqc(a){bqc();return es((gqc(),fqc),a)}\nfunction rqc(a){mqc();return es((uqc(),tqc),a)}\nfunction zqc(a){xqc();return es((Cqc(),Bqc),a)}\nfunction Iqc(a){Gqc();return es((Lqc(),Kqc),a)}\nfunction Vqc(a){Sqc();return es((Yqc(),Xqc),a)}\nfunction brc(a){_qc();return es((erc(),drc),a)}\nfunction nrc(a){lrc();return es((qrc(),prc),a)}\nfunction Arc(a){yrc();return es((Drc(),Crc),a)}\nfunction Qrc(a){Orc();return es((Trc(),Src),a)}\nfunction Zrc(a){Xrc();return es((asc(),_rc),a)}\nfunction gsc(a){esc();return es((jsc(),isc),a)}\nfunction osc(a){msc();return es((rsc(),qsc),a)}\nfunction Etc(a){Ctc();return es((Htc(),Gtc),a)}\nfunction qzc(a){lzc();return es((tzc(),szc),a)}\nfunction Azc(a){xzc();return es((Dzc(),Czc),a)}\nfunction Mzc(a){Izc();return es((Pzc(),Ozc),a)}\nfunction MAc(a){KAc();return es((PAc(),OAc),a)}\nfunction mAc(a){kAc();return es((pAc(),oAc),a)}\nfunction vAc(a){tAc();return es((yAc(),xAc),a)}\nfunction DAc(a){BAc();return es((GAc(),FAc),a)}\nfunction VAc(a){TAc();return es((YAc(),XAc),a)}\nfunction $zc(a){Vzc();return es((bAc(),aAc),a)}\nfunction bBc(a){_Ac();return es((eBc(),dBc),a)}\nfunction vBc(a){tBc();return es((yBc(),xBc),a)}\nfunction EBc(a){CBc();return es((HBc(),GBc),a)}\nfunction NBc(a){LBc();return es((QBc(),PBc),a)}\nfunction tGc(a){rGc();return es((wGc(),vGc),a)}\nfunction WIc(a){UIc();return es((ZIc(),YIc),a)}\nfunction $Lc(a){YLc();return es((bMc(),aMc),a)}\nfunction gMc(a){eMc();return es((jMc(),iMc),a)}\nfunction JOc(a){HOc();return es((MOc(),LOc),a)}\nfunction HQc(a){FQc();return es((KQc(),JQc),a)}\nfunction DRc(a){yRc();return es((GRc(),FRc),a)}\nfunction tSc(a){qSc();return es((wSc(),vSc),a)}\nfunction UTc(a){STc();return es((XTc(),WTc),a)}\nfunction UUc(a){PUc();return es((XUc(),WUc),a)}\nfunction aUc(a){$Tc();return es((dUc(),cUc),a)}\nfunction wVc(a){tVc();return es((zVc(),yVc),a)}\nfunction iWc(a){fWc();return es((lWc(),kWc),a)}\nfunction sWc(a){pWc();return es((vWc(),uWc),a)}\nfunction lXc(a){iXc();return es((oXc(),nXc),a)}\nfunction vXc(a){sXc();return es((yXc(),xXc),a)}\nfunction BYc(a){zYc();return es((EYc(),DYc),a)}\nfunction m$c(a){k$c();return es((p$c(),o$c),a)}\nfunction $$c(a){Y$c();return es((b_c(),a_c),a)}\nfunction n_c(a){i_c();return es((q_c(),p_c),a)}\nfunction w_c(a){s_c();return es((z_c(),y_c),a)}\nfunction E_c(a){C_c();return es((H_c(),G_c),a)}\nfunction P_c(a){N_c();return es((S_c(),R_c),a)}\nfunction W0c(a){R0c();return es((Z0c(),Y0c),a)}\nfunction f1c(a){a1c();return es((i1c(),h1c),a)}\nfunction P5c(a){N5c();return es((S5c(),R5c),a)}\nfunction b6c(a){_5c();return es((e6c(),d6c),a)}\nfunction H7c(a){F7c();return es((K7c(),J7c),a)}\nfunction k8c(a){i8c();return es((n8c(),m8c),a)}\nfunction V8b(a){S8b();return es((Y8b(),X8b),a)}\nfunction A5b(a){y5b();return es((D5b(),C5b),a)}\nfunction jad(a){ead();return es((mad(),lad),a)}\nfunction sad(a){qad();return es((vad(),uad),a)}\nfunction Cad(a){Aad();return es((Fad(),Ead),a)}\nfunction Oad(a){Mad();return es((Rad(),Qad),a)}\nfunction jbd(a){hbd();return es((mbd(),lbd),a)}\nfunction ubd(a){rbd();return es((xbd(),wbd),a)}\nfunction Kbd(a){Hbd();return es((Nbd(),Mbd),a)}\nfunction Vbd(a){Tbd();return es((Ybd(),Xbd),a)}\nfunction hcd(a){dcd();return es((kcd(),jcd),a)}\nfunction vcd(a){rcd();return es((ycd(),xcd),a)}\nfunction vdd(a){tdd();return es((ydd(),xdd),a)}\nfunction Kdd(a){Idd();return es((Ndd(),Mdd),a)}\nfunction $cd(a){Ucd();return es((cdd(),bdd),a)}\nfunction Fed(a){Ded();return es((Ied(),Hed),a)}\nfunction rgd(a){pgd();return es((ugd(),tgd),a)}\nfunction Esd(a){Csd();return es((Hsd(),Gsd),a)}\nfunction Yoc(a,b){return (uCb(a),a)+(uCb(b),b)}\nfunction NNd(a,b){Zfb();return wtd(ZKd(a.a),b)}\nfunction SNd(a,b){Zfb();return wtd(ZKd(a.a),b)}\nfunction bPc(a,b){this.c=a;this.a=b;this.b=b-a}\nfunction nYc(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction L1c(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction T1c(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Rrd(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction zCd(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction IVd(a,b,c){this.e=a;this.a=b;this.c=c}\nfunction kWd(a,b,c){UVd();cWd.call(this,a,b,c)}\nfunction HXd(a,b,c){UVd();oXd.call(this,a,b,c)}\nfunction TXd(a,b,c){UVd();oXd.call(this,a,b,c)}\nfunction ZXd(a,b,c){UVd();oXd.call(this,a,b,c)}\nfunction JXd(a,b,c){UVd();HXd.call(this,a,b,c)}\nfunction LXd(a,b,c){UVd();HXd.call(this,a,b,c)}\nfunction NXd(a,b,c){UVd();LXd.call(this,a,b,c)}\nfunction VXd(a,b,c){UVd();TXd.call(this,a,b,c)}\nfunction _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)}\nfunction $j(a,b){Qb(a);Qb(b);return new _j(a,b)}\nfunction Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)}\nfunction Rq(a,b){Qb(a);Qb(b);return new ar(a,b)}\nfunction lr(a,b){Qb(a);Qb(b);return new zr(a,b)}\nfunction BD(a,b){CCb(a==null||AD(a,b));return a}\nfunction Nu(a){var b;b=new Rkb;fr(b,a);return b}\nfunction Ex(a){var b;b=new Tqb;fr(b,a);return b}\nfunction Hx(a){var b;b=new Gxb;Jq(b,a);return b}\nfunction Ru(a){var b;b=new Psb;Jq(b,a);return b}\nfunction YEc(a){!a.e&&(a.e=new Rkb);return a.e}\nfunction SMd(a){!a.c&&(a.c=new xYd);return a.c}\nfunction Ekb(a,b){a.c[a.c.length]=b;return true}\nfunction WA(a,b){this.c=a;this.b=b;this.a=false}\nfunction Gg(a){this.d=a;Dg(this);this.b=ed(a.d)}\nfunction pzb(){this.a=';,;';this.b='';this.c=''}\nfunction Bvb(a,b,c){qvb.call(this,b,c);this.a=a}\nfunction fAb(a,b,c){this.b=a;fvb.call(this,b,c)}\nfunction lsb(a,b,c){this.c=a;pjb.call(this,b,c)}\nfunction bCb(a,b,c){$Bb(c,0,a,b,c.length,false)}\nfunction HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e}\nfunction eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}}\nfunction v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e}\nfunction h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b}\nfunction k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c}\nfunction Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))}\nfunction rlc(a,b){return beb(D0b(a.d),D0b(b.d))}\nfunction uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d}\nfunction FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd}\nfunction DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))}\nfunction aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)}\nfunction C6c(a){return new f7c(a.c+a.b,a.d+a.a)}\nfunction Vmc(a,b){Imc();return beb(a.d.p,b.d.p)}\nfunction Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)}\nfunction Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)}\nfunction rCb(a,b){if(!a){throw vbb(new ucb(b))}}\nfunction mCb(a,b){if(!a){throw vbb(new Wdb(b))}}\nfunction dWb(a,b,c){cWb.call(this,a,b);this.b=c}\nfunction pMd(a,b,c){MLd.call(this,a,b);this.c=c}\nfunction Dnc(a,b,c){Cnc.call(this,b,c);this.d=a}\nfunction _Gd(a){$Gd();MGd.call(this);this.th(a)}\nfunction PNd(a,b,c){this.a=a;nNd.call(this,b,c)}\nfunction UNd(a,b,c){this.a=a;nNd.call(this,b,c)}\nfunction k2d(a,b,c){MLd.call(this,a,b);this.c=c}\nfunction y1d(){T0d();z1d.call(this,(yFd(),xFd))}\nfunction gFd(a){return a!=null&&!OEd(a,CEd,DEd)}\nfunction dFd(a,b){return (jFd(a)<<4|jFd(b))&aje}\nfunction ln(a,b){return Vm(),Wj(a,b),new iy(a,b)}\nfunction Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}}\nfunction Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)}\nfunction WUd(a,b){var c;c=a.c;VUd(a,b);return c}\nfunction Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a}\nfunction $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a}\nfunction G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e}\nfunction Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true}\nfunction jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null}\nfunction Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()}\nfunction Wq(a,b){this.b=a;this.a=b;ol.call(this)}\nfunction ar(a,b){this.a=a;this.b=b;ol.call(this)}\nfunction vvb(a,b){qvb.call(this,b,1040);this.a=a}\nfunction Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1}\nfunction WPb(a){QPb();return jtd(a)==Xod(ltd(a))}\nfunction XPb(a){QPb();return ltd(a)==Xod(jtd(a))}\nfunction iYb(a,b){return hYb(a,new cWb(b.a,b.b))}\nfunction NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c}\nfunction _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a}\nfunction YHb(a){var b;b=a.n;return a.e.b+b.d+b.a}\nfunction ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c}\nfunction zfe(a){wfe();++vfe;return new ige(0,a)}\nfunction o_b(a){if(a.a){return a.a}return JZb(a)}\nfunction CCb(a){if(!a){throw vbb(new Cdb(null))}}\nfunction X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))}\nfunction ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))}\nfunction oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)}\nfunction d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)}\nfunction sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)}\nfunction tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)}\nfunction xfd(a,b){return Ekb(a,new f7c(b.a,b.b))}\nfunction Bic(a,b){return a.c=b){throw vbb(new rcb)}}\nfunction Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b}\nfunction _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)}\nfunction n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)}\nfunction tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)}\nfunction D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)}\nfunction oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b}\nfunction bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b}\nfunction qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie}\nfunction gub(a){this.b=new Skb(11);this.a=(ipb(),a)}\nfunction Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)}\nfunction nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)}\nfunction Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)}\nfunction Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)}\nfunction jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)}\nfunction Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)}\nfunction nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)}\nfunction DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)}\nfunction cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d}\nfunction i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d}\nfunction x0d(a){Wud.call(this,a,false);this.a=false}\nfunction Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b}\nfunction px(a,b){im();ox.call(this,a,Dm(new amb(b)))}\nfunction Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)}\nfunction Efe(a,b){wfe();++vfe;return new Dge(6,a,b)}\nfunction nfb(a,b){return dfb(a.substr(0,b.length),b)}\nfunction Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)}\nfunction Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}}\nfunction Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c}\nfunction amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d}\nfunction xJc(a){var b;b=a;while(b.f){b=b.f}return b}\nfunction fkb(a){var b;b=bkb(a);sCb(b!=null);return b}\nfunction gkb(a){var b;b=ckb(a);sCb(b!=null);return b}\nfunction cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b}\nfunction Glb(a,b){var c;for(c=0;c0?$wnd.Math.log(a/b):-100}\nfunction ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0}\nfunction HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))}\nfunction iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()}\nfunction Olb(a,b){return avb(b,a.length),new vvb(a,b)}\nfunction Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b}\nfunction Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie}\nfunction rge(a,b){xfe.call(this,1);this.a=a;this.b=b}\nfunction Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a}\nfunction uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d}\nfunction ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)}\nfunction Flb(a,b,c){var d;for(d=0;d=a.g}\nfunction NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)}\nfunction Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)}\nfunction gCb(a,b){var c;c=console[a];c.call(console,b)}\nfunction Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))}\nfunction E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))}\nfunction oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c}\nfunction Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c}\nfunction dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c}\nfunction f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)}\nfunction z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd}\nfunction ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e}\nfunction usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)}\nfunction uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1}\nfunction U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)}\nfunction Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)}\nfunction Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)}\nfunction oAb(a){if(0>=a){return new yAb}return pAb(a-1)}\nfunction Nfe(a){if(!bfe)return false;return Qhb(bfe,a)}\nfunction Ehe(a){if(a)return a.dc();return !a.Kc().Ob()}\nfunction Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a}\nfunction LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a}\nfunction LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d}\nfunction uCb(a){if(a==null){throw vbb(new Geb)}return a}\nfunction Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}}\nfunction Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}}\nfunction Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)}\nfunction qlc(a,b){return beb(b.j.c.length,a.j.c.length)}\nfunction igd(a,b){a.c<0||a.b.b=0?a.Bh(c):vid(a,b)}\nfunction WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c}\nfunction Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e}\nfunction Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e}\nfunction Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f}\nfunction fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k}\nfunction cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j}\nfunction dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j}\nfunction AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b}\nfunction $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c}\nfunction pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c}\nfunction MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))}\nfunction Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)}\nfunction Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)}\nfunction Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)}\nfunction Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d}\nfunction $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d}\nfunction iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b}\nfunction cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)}\nfunction AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)}\nfunction T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)}\nfunction vfb(a){return String.fromCharCode.apply(null,a)}\nfunction Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)}\nfunction tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()}\nfunction d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))}\nfunction ix(a,b){ex();return new gx(new il(a),new Uk(b))}\nfunction Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))}\nfunction Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))}\nfunction hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d}\nfunction eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a}\nfunction gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b}\nfunction keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a}\nfunction wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)}\nfunction Gbc(a,b){return Bcb(),BD(b.b,19).ad&&++d;return d}\nfunction Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c}\nfunction Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c}\nfunction hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null}\nfunction JZb(a){var b;b=P2b(a);if(b){return b}return null}\nfunction Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b}\nfunction YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())}\nfunction ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))}\nfunction jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))}\nfunction wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)}\nfunction UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)}\nfunction pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)}\nfunction prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}\nfunction ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}\nfunction JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d}\nfunction ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d}\nfunction cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a}\nfunction jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a}\nfunction Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))}\nfunction ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)}\nfunction lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)}\nfunction tib(a){sCb(a.b=0&&dfb(a.substr(c,b.length),b)}\nfunction H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)}\nfunction Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)}\nfunction vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)}\nfunction $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])}\nfunction KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b}\nfunction cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b}\nfunction kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)}\nfunction nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)}\nfunction cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])}\nfunction crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])}\nfunction Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])}\nfunction Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])}\nfunction psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])}\nfunction EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])}\nfunction XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])}\nfunction KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])}\nfunction _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])}\nfunction hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])}\nfunction IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])}\nfunction bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])}\nfunction VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])}\nfunction VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])}\nfunction jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])}\nfunction g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])}\nfunction F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])}\nfunction PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])}\nfunction XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])}\nfunction $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])}\nfunction B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])}\nfunction lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)}\nfunction hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)}\nfunction Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)}\nfunction exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)}\nfunction pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a}\nfunction by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))}\nfunction bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))}\nfunction FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)}\nfunction YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)}\nfunction Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2}\nfunction Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c}\nfunction cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c}\nfunction aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true}\nfunction isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a}\nfunction $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)}\nfunction iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))}\nfunction tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)}\nfunction YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))}\nfunction Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)}\nfunction Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))}\nfunction QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0}\nfunction uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c}\nfunction Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)}\nfunction QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)}\nfunction Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d}\nfunction NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)}\nfunction zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)}\nfunction hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)}\nfunction g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c}\nfunction VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c}\nfunction b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c}\nfunction Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()}\nfunction ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)}\nfunction no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}}\nfunction Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b}\nfunction ecb(a){function b(){}\n;b.prototype=a||{};return new b}\nfunction dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false}\nfunction aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)}\nfunction tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]}\nfunction Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)}\nfunction mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)}\nfunction fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)}\nfunction Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)}\nfunction Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)}\nfunction Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)}\nfunction nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)}\nfunction Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)}\nfunction Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()}\nfunction t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a}\nfunction A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b}\nfunction Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0}\nfunction oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0}\nfunction BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)}\nfunction RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)}\nfunction eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)}\nfunction STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)}\nfunction evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)}\nfunction Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)}\nfunction _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)}\nfunction MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)}\nfunction ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)}\nfunction WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)}\nfunction rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))}\nfunction hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c}\nfunction aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)}\nfunction Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)}\nfunction FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)}\nfunction Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a}\nfunction bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a}\nfunction uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f}\nfunction vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f}\nfunction RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)}\nfunction QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)}\nfunction $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)}\nfunction F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)}\nfunction jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))}\nfunction qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))}\nfunction aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)}\nfunction IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))}\nfunction wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}}\nfunction Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null}\nfunction WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false}\nfunction qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))}\nfunction SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}\nfunction ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}\nfunction oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))}\nfunction aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))}\nfunction fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))}\nfunction DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)}\nfunction W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a}\nfunction e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)}\nfunction BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)}\nfunction COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)}\nfunction D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b}\nfunction BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)}\nfunction cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)}\nfunction lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)}\nfunction T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)}\nfunction jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))}\nfunction XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c}\nfunction eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c}\nfunction yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c}\nfunction Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()}\nfunction UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)}\nfunction nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}}\nfunction Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b}\nfunction Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b}\nfunction Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)}\nfunction Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))}\nfunction tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}}\nfunction BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}}\nfunction Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b}\nfunction kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)}\nfunction A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))}\nfunction Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])}\nfunction jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])}\nfunction QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])}\nfunction HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])}\nfunction UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])}\nfunction BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])}\nfunction Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])}\nfunction Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])}\nfunction eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])}\nfunction Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])}\nfunction Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])}\nfunction hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])}\nfunction $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])}\nfunction NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])}\nfunction wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])}\nfunction WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])}\nfunction OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])}\nfunction wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])}\nfunction FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])}\nfunction uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])}\nfunction xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])}\nfunction tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])}\nfunction CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])}\nfunction wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])}\nfunction _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])}\nfunction kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])}\nfunction tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])}\nfunction o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c}\nfunction tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)}\nfunction fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)}\nfunction av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)}\nfunction cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)}\nfunction Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje}\nfunction bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje}\nfunction Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a}\nfunction _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d}\nfunction mlb(a){sCb(a.ad?1:0}\nfunction bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a}\nfunction iSc(a,b){var c;c=a+'';while(c.length0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)}\nfunction wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)}\nfunction RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))}\nfunction cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))}\nfunction $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))}\nfunction XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))}\nfunction k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)}\nfunction l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)}\nfunction cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)}\nfunction kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))}\nfunction rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))}\nfunction Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)}\nfunction YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)}\nfunction o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)}\nfunction p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)}\nfunction i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d}\nfunction vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b}\nfunction H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a}\nfunction tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null}\nfunction Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true}\nfunction _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}\nfunction Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a}\nfunction Tb(a,b,c){if(a<0||bc){throw vbb(new qcb(Kb(a,b,c)))}}\nfunction eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a}\nfunction xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}}\nfunction $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}\nfunction dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}\nfunction msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false}\nfunction qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false}\nfunction Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)}\nfunction tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b}\nfunction Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b}\nfunction Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b}\nfunction orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array}\nfunction Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))}\nfunction Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))}\nfunction m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)}\nfunction sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)}\nfunction SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)}\nfunction a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))}\nfunction _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))}\nfunction Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d}\nfunction Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d}\nfunction $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d}\nfunction _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d}\nfunction Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b}\nfunction Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}}\nfunction C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()}\nfunction j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1}\nfunction mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1}\nfunction jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c}\nfunction uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c}\nfunction msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)}\nfunction cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))}\nfunction z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))}\nfunction q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))}\nfunction Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))}\nfunction hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))}\nfunction yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])}\nfunction qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])}\nfunction UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])}\nfunction UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])}\nfunction sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])}\nfunction kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])}\nfunction Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)}\nfunction Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])}\nfunction okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))}\nfunction Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)}\nfunction Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)}\nfunction Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)}\nfunction _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)}\nfunction Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()}\nfunction ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null}\nfunction Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0}\nfunction Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c}\nfunction Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)}\nfunction Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)}\nfunction A2c(a,b){var c;for(c=a.j.c.length;c0&&$fb(a.g,0,b,0,a.i);return b}\nfunction qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)}\nfunction Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24}\nfunction axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24}\nfunction gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16}\nfunction Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16}\nfunction sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)}\nfunction nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a}\nfunction Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))}\nfunction VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))}\nfunction E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)}\nfunction JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32}\nfunction Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)}\nfunction kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)}\nfunction Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b}\nfunction Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a}\nfunction kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c}\nfunction R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)}\nfunction TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)}\nfunction mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)}\nfunction dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)}\nfunction dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}}\nfunction vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b}\nfunction pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}}\nfunction VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n}\nfunction Fqb(a){sCb(a.a=0&&a.a[c]===b[c];c--);return c<0}\nfunction Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0}\nfunction Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb}\nfunction Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b}\nfunction GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))}\nfunction Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))}\nfunction REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))}\nfunction ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))}\nfunction aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))}\nfunction D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))}\nfunction Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))}\nfunction erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))}\nfunction eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))}\nfunction GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))}\nfunction Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))}\nfunction rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))}\nfunction MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))}\nfunction ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))}\nfunction bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))}\nfunction jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))}\nfunction KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))}\nfunction dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))}\nfunction XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))}\nfunction XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))}\nfunction lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))}\nfunction i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))}\nfunction H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))}\nfunction UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)}\nfunction Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)}\nfunction Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)}\nfunction Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d}\nfunction zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d}\nfunction Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a}\nfunction reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}}\nfunction me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))}\nfunction Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b}\nfunction Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d}\nfunction lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)}\nfunction fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)}\nfunction FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)}\nfunction tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])}\nfunction _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])}\nfunction Dz(b){Az();return function(){return Ez(b,this,arguments);var a}}\nfunction sz(){if(Date.now){return Date.now()}return (new Date).getTime()}\nfunction OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i}\nfunction pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()}\nfunction ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g}\nfunction ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)}\nfunction PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)}\nfunction jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)}\nfunction rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c}\nfunction wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb}\nfunction oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false}\nfunction C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false}\nfunction zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c}\nfunction j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)}\nfunction Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)}\nfunction Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)}\nfunction $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t}\nfunction kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])}\nfunction Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])}\nfunction Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])}\nfunction Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])}\nfunction _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])}\nfunction sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])}\nfunction n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])}\nfunction _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])}\nfunction Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])}\nfunction T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)}\nfunction yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c}\nfunction zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false}\nfunction RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)}\nfunction uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d0?ihb(a,b):lhb(a,-b)}\nfunction Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)}\nfunction Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}}\nfunction Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b}\nfunction kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b}\nfunction hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)}\nfunction uHb(a,b,c,d){var e;for(e=0;eb){throw vbb(new qcb(Jb(a,b,'index')))}return a}\nfunction zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e}\nfunction _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)}\nfunction A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))}\nfunction Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)}\nfunction b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)}\nfunction kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb}\nfunction MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb}\nfunction Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)}\nfunction wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}\nfunction CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}\nfunction IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b}\nfunction BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)}\nfunction SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb}\nfunction g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')}\nfunction Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))}\nfunction HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)}\nfunction _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)}\nfunction C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)}\nfunction PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)}\nfunction KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()}\nfunction JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a}\nfunction poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null}\nfunction ODc(a,b){if(a.pb.p){return -1}return 0}\nfunction pvb(a,b){uCb(b);if(a.c=0,'Initial capacity must not be negative')}\nfunction lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))}\nfunction SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))}\nfunction JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))}\nfunction Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))}\nfunction DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))}\nfunction WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))}\nfunction Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))}\nfunction gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))}\nfunction Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))}\nfunction Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))}\nfunction jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))}\nfunction asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))}\nfunction Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))}\nfunction YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))}\nfunction yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))}\nfunction PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))}\nfunction QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))}\nfunction yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))}\nfunction HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))}\nfunction wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))}\nfunction zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))}\nfunction vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))}\nfunction EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))}\nfunction yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))}\nfunction b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))}\nfunction mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))}\nfunction vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))}\nfunction icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])}\nfunction ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)}\nfunction NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d}\nfunction yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a}\nfunction EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b}\nfunction FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c}\nfunction A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;dc||b=0?a._g(c,true,true):sid(a,b,true)}\nfunction s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))}\nfunction pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)}\nfunction IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)}\nfunction qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)}\nfunction ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b}\nfunction dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true}\nfunction vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)}\nfunction r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)}\nfunction p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)}\nfunction fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)}\nfunction UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)}\nfunction yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0}\nfunction MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}}\nfunction nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]}\nfunction pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c}\nfunction KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)}\nfunction Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c}\nfunction ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c}\nfunction Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)}\nfunction bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)}\nfunction hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)}\nfunction iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)}\nfunction nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)}\nfunction qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b}\nfunction Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)}\nfunction NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)}\nfunction lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb}\nfunction zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))}\nfunction uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))}\nfunction ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))}\nfunction WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))}\nfunction WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))}\nfunction GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))}\nfunction mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))}\nfunction oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))}\nfunction Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))}\nfunction Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))}\nfunction ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))}\nfunction xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))}\nfunction Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))}\nfunction Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))}\nfunction ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))}\nfunction A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)}\nfunction _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)}\nfunction eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))}\nfunction gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))}\nfunction PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a}\nfunction Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true}\nfunction Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null}\nfunction Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))}\nfunction Jkb(a,b,c){for(;c=0?fid(a,c,true,true):sid(a,b,true)}\nfunction vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)}\nfunction Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))}\nfunction agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)}\nfunction S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)}\nfunction U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)}\nfunction INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)}\nfunction uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d}\nfunction Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}}\nfunction YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e}\nfunction fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c}\nfunction Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null}\nfunction UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)}\nfunction LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)}\nfunction tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)}\nfunction yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}}\nfunction oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije}\nfunction HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$}\nfunction dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b}\nfunction uA(a,b){while(b[0]=0){++b[0]}}\nfunction sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))}\nfunction vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d}\nfunction EA(a,b,c){var d,e;d=10;for(e=0;ea.a[d]&&(d=c)}return d}\nfunction fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c}\nfunction Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)}\nfunction nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}}\nfunction AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb}\nfunction UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)}\nfunction XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)}\nfunction xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)}\nfunction uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))}\nfunction bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))}\nfunction bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))}\nfunction Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))}\nfunction S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))}\nfunction S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))}\nfunction p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))}\nfunction vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))}\nfunction mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))}\nfunction Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))}\nfunction cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))}\nfunction _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c}\nfunction hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false}\nfunction ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false}\nfunction Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false}\nfunction Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)}\nfunction Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a=0&&b=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a}\nfunction sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()}\nfunction idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)}\nfunction Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)}\nfunction Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)}\nfunction u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))}\nfunction VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)}\nfunction mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a}\nfunction Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b}\nfunction bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e}\nfunction yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)}\nfunction zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)}\nfunction avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}}\nfunction Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b}\nfunction Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null}\nfunction VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)}\nfunction ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)}\nfunction xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}}\nfunction t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b}\nfunction ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))}\nfunction NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))}\nfunction iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))}\nfunction Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c}\nfunction ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false}\nfunction Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e0){a.a/=b;a.b/=b}return a}\nfunction bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}}\nfunction gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}}\nfunction qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])}\nfunction Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)}\nfunction Jmc(a){var b;for(b=0;b=14&&b<=16)));return a}\nfunction dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d}\nfunction TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)}\nfunction NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()}\nfunction ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)}\nfunction Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)}\nfunction Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)}\nfunction oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))}\nfunction o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))}\nfunction n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))}\nfunction K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))}\nfunction Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))}\nfunction Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))}\nfunction qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))}\nfunction tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))}\nfunction Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))}\nfunction wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))}\nfunction ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))}\nfunction Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))}\nfunction Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])}\nfunction vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))}\nfunction wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))}\nfunction hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))}\nfunction ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))}\nfunction cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))}\nfunction dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))}\nfunction eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))}\nfunction omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))}\nfunction imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))}\nfunction pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))}\nfunction qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))}\nfunction AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))}\nfunction DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))}\nfunction _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))}\nfunction izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)}\nfunction Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null}\nfunction ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c}\nfunction LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c}\nfunction Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a}\nfunction ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g}\nfunction rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c}\nfunction tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c}\nfunction BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c}\nfunction GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c}\nfunction xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c}\nfunction rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1}\nfunction pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e}\nfunction My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a}\nfunction n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c}\nfunction KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)}\nfunction bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)}\nfunction rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)}\nfunction ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)}\nfunction JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}}\nfunction $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a}\nfunction Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a}\nfunction Bt(a,b){var c,d;for(c=0,d=a.gc();c0){return BD(Ikb(c.a,d-1),10)}return null}\nfunction Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))}\nfunction kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))}\nfunction lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))}\nfunction Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))}\nfunction zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))}\nfunction UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))}\nfunction VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))}\nfunction Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))}\nfunction pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))}\nfunction PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))}\nfunction jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))}\nfunction Rdd(a,b){if(a.r>0&&a.c0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}}\nfunction dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)}\nfunction g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)}\nfunction _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))}\nfunction Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))}\nfunction pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)}\nfunction umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)}\nfunction aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(cb){b<<=1;return b>0?b:Iie}return b}\nfunction xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)}\nfunction T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}}\nfunction _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d}\nfunction IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}}\nfunction N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))}\nfunction DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))}\nfunction jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))}\nfunction _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))}\nfunction $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d>>31}d!=0&&(a[c]=d)}\nfunction rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}}\nfunction u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))}\nfunction Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}}\nfunction G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true}\nfunction sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e}\nfunction tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e}\nfunction Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b}\nfunction Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}}\nfunction $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}}\nfunction nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)}\nfunction oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)}\nfunction l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)}\nfunction Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)}\nfunction WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)}\nfunction m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.af&&b.b1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}}\nfunction kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)}\nfunction Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)}\nfunction Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)}\nfunction nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)}\nfunction bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)}\nfunction ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b}\nfunction btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}}\nfunction Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false}\nfunction kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()}\nfunction Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true}\nfunction Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a}\nfunction yac(a,b){var c,d;for(d=new olb(a.b);d.a=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)}\nfunction _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)}\nfunction bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0}\nfunction I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))}\nfunction $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;dd)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)}\nfunction xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a}\nfunction yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a}\nfunction TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c}\nfunction j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c}\nfunction Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f>=1);return b}}\nfunction $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}}\nfunction bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b}\nfunction EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c}\nfunction Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d}\nfunction djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}}\nfunction xVb(a){var b,c;for(c=new olb(a.a.b);c.ac&&(c=a[b])}return c}\nfunction SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d}\nfunction crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f}\nfunction j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e}\nfunction m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e}\nfunction Xb(a,b){var c;for(c=0;c1||b>=0&&a.b<3}\nfunction w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b}\nfunction qVb(a){var b,c;for(c=new olb(a.a.b);c.ad?1:0}\nfunction NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}}\nfunction d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}}\nfunction syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)}\nfunction mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))}\nfunction Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e}\nfunction Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1}\nfunction UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}}\nfunction nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c}\nfunction JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c}\nfunction Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false}\nfunction oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false}\nfunction Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g}\nfunction Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false}\nfunction Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false}\nfunction Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]}\nfunction Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb(\"The 'no null' constraint is violated\"))}return b}\nfunction $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)}\nfunction XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a}\nfunction b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}}\nfunction c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}}\nfunction Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)}\nfunction pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)}\nfunction pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)}\nfunction Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)}\nfunction nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)}\nfunction Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)}\nfunction tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)}\nfunction Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c}\nfunction o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)}\nfunction r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d}\nfunction $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null}\nfunction Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))}\nfunction Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)}\nfunction le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d}\nfunction AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}}\nfunction C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(bb){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}}\nfunction j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}}\nfunction vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.iRqe?a-c>Rqe:c-a>Rqe}\nfunction pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()}\nfunction qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()}\nfunction fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)}\nfunction xC(a){rC();throw vbb(new MB(\"Unexpected typeof result '\"+a+\"'; please report this bug to the GWT team\"))}\nfunction lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''}\nfunction F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)}\nfunction ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)}\nfunction xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)}\nfunction LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))}\nfunction VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b}\nfunction DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}}\nfunction yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()}\nfunction VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)}\nfunction wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.de){$Zc(b.q,e);d=c!=b.q.d}}return d}\nfunction PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c}\nfunction Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d}\nfunction Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)}\nfunction j7c(a,b){var c;for(c=0;c=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)}\nfunction BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f}\nfunction Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b}\nfunction A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}}\nfunction UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false}\nfunction JDc(a){var b,c;for(c=new olb(a.r);c.a=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e}\nfunction y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e}\nfunction sAd(a){var b,c,d,e;if(a!=null){for(c=0;c0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))}\nfunction $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))}\nfunction gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a}\nfunction u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b}\nfunction qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a}\nfunction Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c}\nfunction _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c}\nfunction vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d}\nfunction RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c}\nfunction o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d}\nfunction kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()}\nfunction vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a}\nfunction __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;dc){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}}\nfunction eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}}\nfunction Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f=d||b=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0}\nfunction QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a}\nfunction OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c}\nfunction BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))}\nfunction eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))}\nfunction LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))}\nfunction CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))}\nfunction fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))}\nfunction N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)}\nfunction meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)}\nfunction Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)}\nfunction L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false}\nfunction i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null}\nfunction l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null}\nfunction cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false}\nfunction vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)}\nfunction iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null}\nfunction $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+\"' is not a valid attribute\"))}\nfunction V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;db){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1}\nfunction f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)}\nfunction Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}}\nfunction vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}}\nfunction ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))}\nfunction dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))}\nfunction eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))}\nfunction fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))}\nfunction jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)}\nfunction jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null}\nfunction k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null}\nfunction n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)}\nfunction a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c}\nfunction rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}}\nfunction Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb(\"Stream already terminated, can't be modified or used\"))}}\nfunction Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a}\nfunction ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d}\nfunction ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f}\nfunction pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c}\nfunction hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null}\nfunction Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c}\nfunction Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje>1;a.k=c-1>>1}\nfunction Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke}\nfunction O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b}\nfunction aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63}\nfunction Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)}\nfunction Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e}\nfunction EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)}\nfunction LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a}\nfunction Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e}\nfunction efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))}\nfunction Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)}\nfunction Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)}\nfunction zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)}\nfunction Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)}\nfunction tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)}\nfunction Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b))}\nfunction yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)}\nfunction t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;fb&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}}\nfunction did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}}\nfunction xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}}\nfunction iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}}\nfunction GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}}\nfunction Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)}\nfunction Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)}\nfunction MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c}\nfunction VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)}\nfunction fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()}\nfunction Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)}\nfunction _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)}\nfunction OEd(a,b,c){var d,e;for(d=0,e=a.length;d=e){return b.c+c}}return b.c+b.b.gc()}\nfunction NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d}\nfunction Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b0&&this.b>0&&q$c(this.c,this.b,this.a)}\nfunction ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))}\nfunction I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}}\nfunction Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false}\nfunction Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}}\nfunction Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)}\nfunction gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}}\nfunction b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}}\nfunction qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb}\nfunction hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b}\nfunction bhb(a){var b,c,d;if(a>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true}\nfunction XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false}\nfunction s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}}\nfunction Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c=0;--d){b=c[d];for(e=0;e>1;this.k=b-1>>1}\nfunction r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)}\nfunction NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d}\nfunction xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))}\nfunction T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))}\nfunction xud(a,b){var c;if(a.i>0){if(b.lengtha.i&&NC(b,a.i,null);return b}\nfunction Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c}\nfunction HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c}\nfunction _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b}\nfunction Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b}\nfunction pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d}\nfunction Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false}\nfunction qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}}\nfunction AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null}\nfunction R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))}\nfunction Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f}\nfunction Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}}\nfunction Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e}\nfunction Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e}\nfunction Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e}\nfunction QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g}\nfunction hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))}\nfunction zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false}\nfunction wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true}\nfunction Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false}\nfunction Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error}\nfunction BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))>0}\nfunction DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<0}\nfunction CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:ab?1:Ny(isNaN(a),isNaN(b)))<=0}\nfunction ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cWje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d}\nfunction fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null}\nfunction fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}}\nfunction uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))}\nfunction Igb(a,b){if(a.e>b.e){return 1}if(a.eb.d){return a.e}if(a.d=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1}\nfunction Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)}\nfunction ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c=f){hkb(a,b);return -1}else{ikb(a,b);return 1}}\nfunction lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(db.e){return 1}else if(a.fb.f){return 1}return tb(a)-tb(b)}\nfunction efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())}\nfunction x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)}\nfunction _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()}\nfunction a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()}\nfunction FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null}\nfunction HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c}\nfunction gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d0}else{return false}}\nfunction q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}}\nfunction ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}}\nfunction OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}}\nfunction TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}}\nfunction tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)}\nfunction xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))}\nfunction b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))}\nfunction dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)}\nfunction k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)}\nfunction _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}}\nfunction HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a=e)return e;for(b=b>0?b:0;bd&&NC(b,d,null);return b}\nfunction _lb(a,b){var c,d;d=a.a.length;b.lengthd&&NC(b,d,null);return b}\nfunction Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}}\nfunction P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d(\"Invalid hexBinary value: '\"+a+\"'\"))}return b}\nfunction ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)}\nfunction wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])}\nfunction vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))}\nfunction Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))}\nfunction N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)}\nfunction Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)}\nfunction UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1}\nfunction cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad}\nfunction kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}}\nfunction Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e}\nfunction c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d}\nfunction oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))}\nfunction mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)}\nfunction Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+\"'. \"+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}}\nfunction L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d(\"Invalid base64Binary value: '\"+a+\"'\"))}return b}\nfunction Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}}\nfunction Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}}\nfunction CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb}\nfunction NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}}\nfunction ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}}\nfunction JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}}\nfunction S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}}\nfunction zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)}\nfunction Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb(\"Can't get element \"+c))}else throw vbb(a)}}\nfunction Tgb(a,b){this.e=a;if(b=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}}\nfunction RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true}\nfunction ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true}\nfunction dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)}\nfunction CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.ac.b){return true}}}return false}\nfunction AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false}\nfunction jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a}\nfunction jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)}\nfunction fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)}\nfunction u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}}\nfunction H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}}\nfunction kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}}\nfunction Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e}\nfunction lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b=0)return e;if(a.Fk()){for(d=0;d=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)}\nfunction gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}}\nfunction mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)}\nfunction LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b}\nfunction qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)}\nfunction X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}}\nfunction tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}}\nfunction ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}}\nfunction tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a1&&(f=GFb(a,b));return f}\nfunction dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f}\nfunction emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i}\nfunction zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b}\nfunction uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}}\nfunction m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null}\nfunction wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0}\nfunction b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a}\nfunction Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)}\nfunction Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)}\nfunction XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}}\nfunction HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false}\nfunction FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false}\nfunction QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false}\nfunction FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10}\nfunction Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}}\nfunction kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()}\nfunction jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}\nfunction kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}\nfunction mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)}\nfunction iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}}\nfunction V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e}\nfunction IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.af&&NC(b,f,null);return b}\nfunction Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c0&&(i+=e);j[k]=g;g+=h*(i+d)}}\nfunction Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b0?a.c:0);++e}a.b=d;a.d=f}\nfunction BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a0?a.g:0);++c}a.c=e;a.d=d}\nfunction AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c}\nfunction lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}}\nfunction mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}}\nfunction d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}}\nfunction e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}}\nfunction udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)}\nfunction ikc(a,b,c,d){var e,f;for(e=b;e0&&(e.b+=b);return e}\nfunction GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e}\nfunction d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\\n')}return []}\nfunction jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28}\nfunction _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d}\nfunction DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b}\nfunction P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))}\nfunction C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))}\nfunction Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e}\nfunction shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b}\nfunction Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}}\nfunction bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)}\nfunction Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true}\nfunction Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true}\nfunction Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0}\nfunction Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}}\nfunction End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d}\nfunction tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c}\nfunction UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.ac.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)}\nfunction p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb}\nfunction rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)}\nfunction $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb}\nfunction MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;eWje){return p6d(a,d)}if(d==a){return true}}}return false}\nfunction HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}}\nfunction LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}}\nfunction XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}}\nfunction V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0}\nfunction hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}}\nfunction v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)}\nfunction wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r}\nfunction yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d}\nfunction O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f}\nfunction fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))}\nfunction cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}}\nfunction vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a0?a.g:0);++c}b.b=d;b.e=e}\nfunction to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}}\nfunction cNb(a,b,c,d){var e,f,g,h;for(e=0;eg&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a}\nfunction ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd}\nfunction Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d}\nfunction qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd}\nfunction HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c}\nfunction nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie}\nfunction qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}\nfunction eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}\nfunction PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c}\nfunction ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)}\nfunction s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)}\nfunction qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}}\nfunction BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null}\nfunction t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a}\nfunction Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}}\nfunction Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}}\nfunction IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d}\nfunction T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}}\nfunction lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)}\nfunction FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d}\nfunction jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}}\nfunction Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)}\nfunction Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)}\nfunction Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)}\nfunction mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}}\nfunction Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)}\nfunction JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}}\nfunction Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;aOqe){return c}else e>-1.0E-6&&++c}return c}\nfunction PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}\nfunction SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))}\nfunction E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)}\nfunction I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)}\nfunction qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0}\nfunction zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}}\nfunction Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}}\nfunction eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false}\nfunction h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c}\nfunction Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b}\nfunction mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f}\nfunction U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))}\nfunction Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)}\nfunction jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)}\nfunction KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a0&&ric(this,this.c-1,(Ucd(),zcd));this.c0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss}\nfunction tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)}\nfunction rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b}\nfunction HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))}\nfunction oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b}\nfunction pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)}\nfunction yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d}\nfunction zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}}\nfunction S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false}\nfunction kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}}\nfunction rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)}\nfunction tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.ac;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<=a.f){break}f.c[f.c.length]=c}return f}\nfunction sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;ef&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e}\nfunction MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0}\nfunction iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}}\nfunction j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c}\nfunction wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}}\nfunction bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}}\nfunction IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}}\nfunction Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)}\nfunction kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0}\nfunction cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true}\nfunction BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f=h}\nfunction Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}}\nfunction W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0}\nfunction X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0}\nfunction Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null}\nfunction ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true}\nfunction fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}}\nfunction lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)}\nfunction vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c}\nfunction qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)}\nfunction SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}}\nfunction IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}}\nfunction y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)}\nfunction RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d}\nfunction m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d}\nfunction Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)}\nfunction CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;cd&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}}\nfunction gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])}\nfunction omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}}\nfunction oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f}\nfunction oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;dwic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}}\nfunction XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.ah&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)}\nfunction sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g}\nfunction t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false}\nfunction ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)}\nfunction bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))}\nfunction yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}}\nfunction wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}}\nfunction pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))}\nfunction jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)}\nfunction fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}}\nfunction ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a0&&WGc(a,c,b);return e}return TGc(a,b,c)}\nfunction MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}}\nfunction JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+11&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}}\nfunction cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}}\nfunction Q6c(a,b,c,d,e){if(dd&&(a.a=d);a.be&&(a.b=e);return a}\nfunction lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}}\nfunction mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g>>e|c[g+d+1]<>>e;++g}return f}\nfunction zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false}\nfunction mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)}\nfunction Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)}\nfunction ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a=c){K9b(a,b,d.p);return true}}return false}\nfunction Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' \"',b),a.a),'\"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a}\nfunction Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;gc){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))}\nfunction Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e0&&iCc(a,f,c))}}b.p=0}\nfunction p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f}\nfunction Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}}\nfunction aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c}\nfunction ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}}\nfunction QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}}\nfunction I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g1&&(b.c[b.c.length]=f,true)}}\nfunction TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}}\nfunction _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)}\nfunction H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++0){uu(this)}}this.b=b;this.a=null}\nfunction rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)}\nfunction FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d}\nfunction OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d}\nfunction cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.ac.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)}\nfunction aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))}\nfunction PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}}\nfunction Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}}\nfunction Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}}\nfunction q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b}\nfunction jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null}\nfunction YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c}\nfunction uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}}\nfunction RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)}\nfunction SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)}\nfunction Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f=0?BD(qud(d,f),56):null}\nfunction Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}}\nfunction Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}}\nfunction ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))}\nfunction QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f}\nfunction K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d}\nfunction Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}}\nfunction tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a=f){g.$b()}else{e=g.Kc();for(d=0;d0?zh():g<0&&Bw(a,b,-g);return true}else{return false}}\nfunction fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0}\nfunction gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0}\nfunction MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}}\nfunction NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c}\nfunction iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c}\nfunction TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a}\nfunction zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}}\nfunction mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f}\nfunction mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}}\nfunction LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}}\nfunction k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e=0&&f=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}}\nfunction BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a}\nfunction v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}}\nfunction rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e}\nfunction vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))}\nfunction fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e=0&&j>=0&&i=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}\nfunction $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb}\nfunction BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}}\nfunction _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h}\nfunction ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)}\nfunction sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}}\nfunction wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}}\nfunction u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}}\nfunction KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)}\nfunction qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}}\nfunction oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}}\nfunction NRd(a){var b,c;if(a.f){while(a.n=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e}\nfunction m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))}\nfunction AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)}\nfunction IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}}\nfunction Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)}\nfunction olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0}\nfunction swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}}\nfunction D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))}\nfunction Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;bg){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true}\nfunction wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)}\nfunction DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)}\nfunction Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a}\nfunction l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb(\"Couldn't create new instance of property '\"+a.f+\"'. \"+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)}\nfunction aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f}\nfunction nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e>16)),15).Xc(f);if(h0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}}\nfunction N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)}\nfunction XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)}\nfunction Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d}\nfunction gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)}\nfunction Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c0&&(e=c);for(g=new olb(a.f.e);g.a0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))}\nfunction PIc(a,b){if(a.cb.c){return 1}else if(a.bb.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0}\nfunction aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e0}else if(e<0&&-e0}return false}\nfunction RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a>24}return g}\nfunction vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]}\nfunction qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true}\nfunction UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}}\nfunction PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h0&&++k}}++j}return k}\nfunction Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a}\nfunction TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a>24}return c}\nfunction lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e}\nfunction r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g=0){return e}else{f=1;for(h=new olb(b.j);h.a0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb}\nfunction n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\\\[\\\\]\\\\s,]+');for(f=i,g=0,h=f.length;g0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}}\nfunction Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}}\nfunction htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g}\nfunction Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<=2147483648&&(d-=Zje);return d}}\nfunction Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}}\nfunction l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\\\w+'),e=0,f=d.length;ea.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i}\nfunction lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc}\nfunction Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i0&&JPb(this,e)}}\nfunction IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null}\nfunction e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a=2}\nfunction gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true}\nfunction U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null}\nfunction ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}}\nfunction mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}}\nfunction AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}}\nfunction Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e}\nfunction r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f1||c>1){return 2}}if(b+c==1){return 2}return 0}\nfunction WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)}\nfunction yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}}\nfunction ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c}\nfunction AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))}\nfunction Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}}\nfunction UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j}\nfunction O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}}\nfunction _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1}\nfunction qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a1){for(e=new olb(a.a);e.a0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b3&&EA(a,0,b-3)}}\nfunction cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)}\nfunction lkc(a){var b,c;c=0;for(;c0){break}}if(c>0&&c0){break}}if(b>0&&c>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))}\nfunction npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))}\nfunction Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}\nfunction VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null}\nfunction wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b}\nfunction IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d}\nfunction vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}}\nfunction jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}}\nfunction jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(ed.b.g&&(f.c[f.c.length]=d,true)}}return f}\nfunction k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)}\nfunction Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}}\nfunction aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}}\nfunction $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))}\nfunction uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}}\nfunction G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.af.a){return -1}else if(e.ai){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f}\nfunction rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))}\nfunction W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])}\nfunction Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)}\nfunction esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l}\nfunction ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))}\nfunction NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))}\nfunction Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)}\nfunction aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g}\nfunction o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}}\nfunction rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)}\nfunction Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c}\nfunction Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;fj){i=c;k=e;j=d}}b.a=k;b.c=i}\nfunction sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)}\nfunction AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a}\nfunction HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;hi-a.b&&hi-a.a&&h0&&++n}}}++m}return n}\nfunction hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)}\nfunction S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}}\nfunction Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}}\nfunction Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))}\nfunction q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}}\nfunction FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)}\nfunction hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)}\nfunction GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}}\nfunction Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+\"' has its layer constraint set to FIRST, but has at least one incoming edge that \"+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}}\nfunction vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b}\nfunction ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)}\nfunction Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}}\nfunction aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)}\nfunction vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c0&&a.a[c]<<32-b!=0){for(c=0;c=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}}\nfunction R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null}\nfunction Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)}\nfunction bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}}\nfunction AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)}\nfunction Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}}\nfunction inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k1){Xxd(e,e.i-1)}}return d}}\nfunction Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.aa.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c}\nfunction o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f}\nfunction Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}}\nfunction UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.ah.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i}\nfunction Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)}\nfunction gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e}\nfunction fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f}\nfunction zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false}\nfunction BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false}\nfunction DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l}\nfunction ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;dvre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e}\nfunction Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))}\nfunction jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of \"real\" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)}\nfunction hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje}\nfunction BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d}\nfunction xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true}\nfunction Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1}\nfunction Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c0){a.qj();if(b!=null){for(f=0;f>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}}\nfunction AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)}\nfunction rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)}\nfunction roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e}\nfunction VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)}\nfunction hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}}\nfunction Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))}\nfunction a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c}\nfunction wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb}\nfunction ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a0&&b=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f}\nfunction hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;ea.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c}\nfunction Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false}\nfunction iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:ef?1:Ny(isNaN(e),isNaN(f))}\nfunction YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}}\nfunction BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}}\nfunction N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' \"',b),d),'\"')}}else{Qfb(Qfb((b.a+=' \"',b),c),'\"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a}\nfunction opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' \"',b),d),'\"')}}else{Qfb(Qfb((b.a+=' \"',b),c),'\"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a}\nfunction h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e}\nfunction QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(ee.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e}\nfunction NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))}\nfunction Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h0){e=i.length;while(e>0&&i[e-1]==''){--e}e=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}}\nfunction _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a=0&&ic?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)}\nfunction Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a=0){h=bD(a,g);if(h){j<22?(i.l|=1<>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i}\nfunction TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;dc){throw vbb(new Oeb(Oje+a+'\"'))}return h}\nfunction dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)}\nfunction pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}}\nfunction B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))}\nfunction tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d}\nfunction LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;bm){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n}\nfunction kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)}\nfunction DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f1){for(d=new olb(e);d.ac.s&&hh){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}}\nfunction MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.ah){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}}\nfunction Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))}\nfunction W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)}\nfunction pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.ai+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c}\nfunction VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}}\nfunction FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}}\nfunction xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1}\nfunction mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.fb.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}}\nfunction Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}}\nfunction tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)}\nfunction Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}}\nfunction pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b}\nfunction _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b}\nfunction bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.bf*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l}\nfunction qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e0){for(g=0;g>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c}\nfunction f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.ac);return e}\nfunction XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e}\nfunction uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}}\nfunction _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)}\nfunction lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47}\nfunction FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)}\nfunction mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.af){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)}\nfunction vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}}\nfunction gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)}\nfunction WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a0);d.a.Xb(d.c=--d.b)}}}}\nfunction Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe}\nfunction S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb(\"Layout algorithm '\"),b),\"' not found for \");yfd(a,c);throw vbb(new y2c(c.a))}}}\nfunction hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h}\nfunction ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.aEdb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)}\nfunction odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a>>0,'0'+b.toString(16));d='\\\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d}\nfunction yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j}\nfunction YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false}\nfunction Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}}\nfunction YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)}\nfunction opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)}\nfunction MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;ee&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n}\nfunction y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}}\nfunction E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c}\nfunction Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e}\nfunction X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.aj&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e}\nfunction XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)}\nfunction q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)}\nfunction qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)}\nfunction pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]}\nfunction SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f}\nfunction rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;ib[m]&&md[i]&&aNb(a,i,m,false,true)}}}\nfunction lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}}\nfunction Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}}\nfunction DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))}\nfunction Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a}\nfunction v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}}\nfunction OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.ab.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.ab){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l}\nfunction OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a}\nfunction vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l}\nfunction C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;ha.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}}\nfunction rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)}\nfunction $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,\"Array types don't match\");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&bd;){NC(f,h,k[--b])}}else{for(h=d+e;d0&&$Bb(a,b,c,d,e,true)}\nfunction phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}\nfunction soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' \"',b),e),'\"')}}else{Qfb(Qfb((b.a+=' \"',b),d),'\"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a}\nfunction TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}}\nfunction Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;kk){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g}\nfunction TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}}\nfunction nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)}\nfunction Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.aa.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true}\nfunction thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j}\nfunction oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j}\nfunction V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n=a.b[e+1]){e+=2}else if(c0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.bv)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)}\nfunction Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a}\nfunction rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g}\nfunction npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null}\nfunction JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.dg.c&&f.c0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)}\nfunction o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}}\nfunction vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;da.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c}\nfunction eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)}\nfunction vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)}\nfunction nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;rq.a-p-k&&(r=q.a-p-k);h.n.a=b+r}}\nfunction ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(fh[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p}\nfunction Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+\"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. \"+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+\"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. \"+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}}\nfunction C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a0&&iCc(a,h,l)}for(e=new olb(l);e.a>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)}\nfunction F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.cb.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}}\nfunction XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;cOqe){f=b;g=0;while($wnd.Math.abs(b-f)0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}}\nfunction $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false}\nfunction l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}}\nfunction kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))}\nfunction AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.ag)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}}\nfunction o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}}\nfunction JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h}\nfunction jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}}\nfunction nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c}\nfunction Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e}\nfunction sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g}\nfunction NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g}\nfunction _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)}\nfunction BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))}\nfunction iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}}\nfunction nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))}\nfunction rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+11){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(iQie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)}\nfunction sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}}\nfunction Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.aa.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.aa.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)}\nfunction fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)}\nfunction xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))}\nfunction sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.ah}\nfunction k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}}\nfunction Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb(\"Invalid value: '\"+d+\"' for datatype :\"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)}\nfunction zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f=97&&d<=122||d>=65&&d<=90){for(g=f+1;g=j){throw vbb(new Wdb(\"Missing trailing '\"))}g+10&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.aJkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null}\nfunction wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)}\nfunction xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}}\nfunction wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a-1){for(f=new olb(h);f.a0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}}\nfunction QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c}\nfunction O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))}\nfunction zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)}\nfunction lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}}\nfunction y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a=0){i=null;h=new Bib(k.a,j+1);while(h.bg?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f}\nfunction z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p=0&&p=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}}\nfunction VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m}\nfunction d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}}\nfunction m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.ad.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}}\nfunction l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}}\nfunction oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.aQje||b.o==cMc&&k0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}}\nfunction _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}}\nfunction $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in \"Drawing free trees.\", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))}\nfunction LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)}\nfunction Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)}\nfunction Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'\"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'\"'))}for(e=0;e0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'\"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'\"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'\"'))}}return l}\nfunction Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g=0&&g0&&(BD(Mpb(a.b,b),124).a.b=c)}\nfunction b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)}\nfunction f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e}\nfunction cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)}\nfunction mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true}\nfunction z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}}\nfunction Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))}\nfunction fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.ah?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return eh?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1}\nfunction acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.bb.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}}\nfunction QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;ee+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(gw&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}}\nfunction SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}}\nfunction rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a}\nfunction iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)}\nfunction Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h}\nfunction yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;hB[i]&&(q=i);for(l=new olb(a.a.b);l.an){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(Fqme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)}\nfunction KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.ah){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p}\nfunction Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)}\nfunction bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l}\nfunction Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.aA.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false}\nfunction XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.aj&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)}\nfunction aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}}\nfunction fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a0||c.o==dMc&&e0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(gg?Anc(a,b,c):Anc(a,c,b);return eg?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return df?1:0}\nfunction u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k}\nfunction AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j=c}\nfunction ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}}\nfunction j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}}\nif(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}}\nfunction aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)}\nfunction f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.aj&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l}\nfunction fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.ap){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.ae){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}}\nfunction erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o=\"An edge must have a source node (edge id: '\"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q=\"The source port of an edge must be a port of the edge's source node (edge id: '\"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s=\"An edge must have a target node (edge id: '\"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u=\"The target port of an edge must be a port of the edge's target node (edge id: '\"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D}\nfunction DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g}\nfunction Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.ae.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.bf.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p}\nfunction WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)}\nfunction lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.aD.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}}\nfunction qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d=48&&b<=57){d=b-48;while(e=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f}\nfunction $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):Hw+p?(r=w+p):Iv-u&&qw-p&&rH+G?(B=H+G):vI+A?(C=I+A):wH-G&&BI-A&&Cc&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}}\nfunction Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc}\nfunction shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a}\nfunction z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k}\nfunction $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a0?G+1:1}for(g=new olb(w.g);g.a0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;ja.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)}\nfunction sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c}\nfunction aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d}\nfunction P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)}\nfunction gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h}\nfunction xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))}\nfunction fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.al){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.aSLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true}\nfunction X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p}\nfunction yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)}\nfunction Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true}\nfunction wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')}\nfunction jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc}\nfunction S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)}\nfunction KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;Jj.b&&(j.b=Z)}else if(U.i.c==bb){Zj.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u'?\":dfb(wue,a)?\"'(?<' or '(? toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{\"\\' \\t\\r\\n',nne=')]}\"\\' \\t\\r\\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne=\"Node '\",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse=\"Couldn't clone property '\",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite=\"The feature '\",jte=\"' is not a valid changeable feature\",kte='Expecting null',lte=\"' is not a valid feature\",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte=\"The datatype '\",ute=\"' is not a valid classifier\",vte=\"The value '\",wte={190:1,3:1,4:1},xte=\"The class '\",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte=\"An edge must have at least one source and one target (edge id: '\",$te=\"').\",_te='Referenced edge section does not exist: ',aue=\" (edge id: '\",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue=\"Passed edge is not 'simple'.\",jue='org.eclipse.elk.graph.util',kue=\"The 'no duplicates' constraint is violated\",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve=\"The value of type '\",Zve=\"' must be of type '\",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\\\i\\\\c*',Zwe='[\\\\i-[:]][\\\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\\\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\\u0660\\u0669\\u06F0\\u06F9\\u0966\\u096F\\u09E6\\u09EF\\u0A66\\u0A6F\\u0AE6\\u0AEF\\u0B66\\u0B6F\\u0BE7\\u0BEF\\u0C66\\u0C6F\\u0CE6\\u0CEF\\u0D66\\u0D6F\\u0E50\\u0E59\\u0ED0\\u0ED9\\u0F20\\u0F29',txe='AZaz\\xC0\\xD6\\xD8\\xF6\\xF8\\u0131\\u0134\\u013E\\u0141\\u0148\\u014A\\u017E\\u0180\\u01C3\\u01CD\\u01F0\\u01F4\\u01F5\\u01FA\\u0217\\u0250\\u02A8\\u02BB\\u02C1\\u0386\\u0386\\u0388\\u038A\\u038C\\u038C\\u038E\\u03A1\\u03A3\\u03CE\\u03D0\\u03D6\\u03DA\\u03DA\\u03DC\\u03DC\\u03DE\\u03DE\\u03E0\\u03E0\\u03E2\\u03F3\\u0401\\u040C\\u040E\\u044F\\u0451\\u045C\\u045E\\u0481\\u0490\\u04C4\\u04C7\\u04C8\\u04CB\\u04CC\\u04D0\\u04EB\\u04EE\\u04F5\\u04F8\\u04F9\\u0531\\u0556\\u0559\\u0559\\u0561\\u0586\\u05D0\\u05EA\\u05F0\\u05F2\\u0621\\u063A\\u0641\\u064A\\u0671\\u06B7\\u06BA\\u06BE\\u06C0\\u06CE\\u06D0\\u06D3\\u06D5\\u06D5\\u06E5\\u06E6\\u0905\\u0939\\u093D\\u093D\\u0958\\u0961\\u0985\\u098C\\u098F\\u0990\\u0993\\u09A8\\u09AA\\u09B0\\u09B2\\u09B2\\u09B6\\u09B9\\u09DC\\u09DD\\u09DF\\u09E1\\u09F0\\u09F1\\u0A05\\u0A0A\\u0A0F\\u0A10\\u0A13\\u0A28\\u0A2A\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59\\u0A5C\\u0A5E\\u0A5E\\u0A72\\u0A74\\u0A85\\u0A8B\\u0A8D\\u0A8D\\u0A8F\\u0A91\\u0A93\\u0AA8\\u0AAA\\u0AB0\\u0AB2\\u0AB3\\u0AB5\\u0AB9\\u0ABD\\u0ABD\\u0AE0\\u0AE0\\u0B05\\u0B0C\\u0B0F\\u0B10\\u0B13\\u0B28\\u0B2A\\u0B30\\u0B32\\u0B33\\u0B36\\u0B39\\u0B3D\\u0B3D\\u0B5C\\u0B5D\\u0B5F\\u0B61\\u0B85\\u0B8A\\u0B8E\\u0B90\\u0B92\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8\\u0BAA\\u0BAE\\u0BB5\\u0BB7\\u0BB9\\u0C05\\u0C0C\\u0C0E\\u0C10\\u0C12\\u0C28\\u0C2A\\u0C33\\u0C35\\u0C39\\u0C60\\u0C61\\u0C85\\u0C8C\\u0C8E\\u0C90\\u0C92\\u0CA8\\u0CAA\\u0CB3\\u0CB5\\u0CB9\\u0CDE\\u0CDE\\u0CE0\\u0CE1\\u0D05\\u0D0C\\u0D0E\\u0D10\\u0D12\\u0D28\\u0D2A\\u0D39\\u0D60\\u0D61\\u0E01\\u0E2E\\u0E30\\u0E30\\u0E32\\u0E33\\u0E40\\u0E45\\u0E81\\u0E82\\u0E84\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8A\\u0E8D\\u0E8D\\u0E94\\u0E97\\u0E99\\u0E9F\\u0EA1\\u0EA3\\u0EA5\\u0EA5\\u0EA7\\u0EA7\\u0EAA\\u0EAB\\u0EAD\\u0EAE\\u0EB0\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EBD\\u0EC0\\u0EC4\\u0F40\\u0F47\\u0F49\\u0F69\\u10A0\\u10C5\\u10D0\\u10F6\\u1100\\u1100\\u1102\\u1103\\u1105\\u1107\\u1109\\u1109\\u110B\\u110C\\u110E\\u1112\\u113C\\u113C\\u113E\\u113E\\u1140\\u1140\\u114C\\u114C\\u114E\\u114E\\u1150\\u1150\\u1154\\u1155\\u1159\\u1159\\u115F\\u1161\\u1163\\u1163\\u1165\\u1165\\u1167\\u1167\\u1169\\u1169\\u116D\\u116E\\u1172\\u1173\\u1175\\u1175\\u119E\\u119E\\u11A8\\u11A8\\u11AB\\u11AB\\u11AE\\u11AF\\u11B7\\u11B8\\u11BA\\u11BA\\u11BC\\u11C2\\u11EB\\u11EB\\u11F0\\u11F0\\u11F9\\u11F9\\u1E00\\u1E9B\\u1EA0\\u1EF9\\u1F00\\u1F15\\u1F18\\u1F1D\\u1F20\\u1F45\\u1F48\\u1F4D\\u1F50\\u1F57\\u1F59\\u1F59\\u1F5B\\u1F5B\\u1F5D\\u1F5D\\u1F5F\\u1F7D\\u1F80\\u1FB4\\u1FB6\\u1FBC\\u1FBE\\u1FBE\\u1FC2\\u1FC4\\u1FC6\\u1FCC\\u1FD0\\u1FD3\\u1FD6\\u1FDB\\u1FE0\\u1FEC\\u1FF2\\u1FF4\\u1FF6\\u1FFC\\u2126\\u2126\\u212A\\u212B\\u212E\\u212E\\u2180\\u2182\\u3007\\u3007\\u3021\\u3029\\u3041\\u3094\\u30A1\\u30FA\\u3105\\u312C\\u4E00\\u9FA5\\uAC00\\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\\x00\\x7F\\x80\\xFF\\u0100\\u017F\\u0180\\u024F\\u0250\\u02AF\\u02B0\\u02FF\\u0300\\u036F\\u0370\\u03FF\\u0400\\u04FF\\u0530\\u058F\\u0590\\u05FF\\u0600\\u06FF\\u0700\\u074F\\u0780\\u07BF\\u0900\\u097F\\u0980\\u09FF\\u0A00\\u0A7F\\u0A80\\u0AFF\\u0B00\\u0B7F\\u0B80\\u0BFF\\u0C00\\u0C7F\\u0C80\\u0CFF\\u0D00\\u0D7F\\u0D80\\u0DFF\\u0E00\\u0E7F\\u0E80\\u0EFF\\u0F00\\u0FFF\\u1000\\u109F\\u10A0\\u10FF\\u1100\\u11FF\\u1200\\u137F\\u13A0\\u13FF\\u1400\\u167F\\u1680\\u169F\\u16A0\\u16FF\\u1780\\u17FF\\u1800\\u18AF\\u1E00\\u1EFF\\u1F00\\u1FFF\\u2000\\u206F\\u2070\\u209F\\u20A0\\u20CF\\u20D0\\u20FF\\u2100\\u214F\\u2150\\u218F\\u2190\\u21FF\\u2200\\u22FF\\u2300\\u23FF\\u2400\\u243F\\u2440\\u245F\\u2460\\u24FF\\u2500\\u257F\\u2580\\u259F\\u25A0\\u25FF\\u2600\\u26FF\\u2700\\u27BF\\u2800\\u28FF\\u2E80\\u2EFF\\u2F00\\u2FDF\\u2FF0\\u2FFF\\u3000\\u303F\\u3040\\u309F\\u30A0\\u30FF\\u3100\\u312F\\u3130\\u318F\\u3190\\u319F\\u31A0\\u31BF\\u3200\\u32FF\\u3300\\u33FF\\u3400\\u4DB5\\u4E00\\u9FFF\\uA000\\uA48F\\uA490\\uA4CF\\uAC00\\uD7A3\\uE000\\uF8FF\\uF900\\uFAFF\\uFB00\\uFB4F\\uFB50\\uFDFF\\uFE20\\uFE2F\\uFE30\\uFE4F\\uFE50\\uFE6F\\uFE70\\uFEFE\\uFEFF\\uFEFF\\uFF00\\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,\"Can't add a queue to itself\");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.lengthb&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.ad.d.c||d.d.c==f.d.c&&d.d.b0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),\"Factor for repulsive forces in Eades' model.\"),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),\"Maximum number of performed iterations. Takes higher precedence than 'epsilon'.\"),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.an){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),\"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed.\"),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),\"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes.\"),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),\"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine.\"),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),\"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected.\"),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),\"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected.\"),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),\"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints.\"),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),\"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine.\"),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),\"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation.\"),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),\"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used.\"),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),\"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges.\"),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),\"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false.\"),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),\"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments.\"),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),\"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent.\"),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),\"Default value of the 'nodeFlexibility' option for the children of a hierarchical node.\"),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),\"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node.\"),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),\"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used.\"),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),\"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer.\"),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),\"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself.\"),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),\"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'.\"),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),\"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option.\"),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a');a0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.aqme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\\r|\\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\}| |\\t|\\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),\"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points.\"),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),\"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`.\"),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),\"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately.\"),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),\"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout.\"),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),\"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position.\"),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),\"Label managers can shorten labels upon a layout algorithm's request.\"),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),\"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels.\"),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),\"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node.\"),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),\"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set.\"),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),\"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'.\"),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),\"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated.\"),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),\"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option.\"),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),\"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option.\"),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),\"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option.\"),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),\"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option.\"),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),\"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent.\"),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),\"Hints for where node labels are to be placed; if empty, the node label's position is not modified.\"),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),\"Defines how ports on the northern side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),\"Defines how ports on the southern side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),\"Defines how ports on the western side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),\"Defines how ports on the eastern side are placed, overriding the node's general port alignment.\"),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),\"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed.\"),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),\"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so.\"),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),\"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible.\"),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),\"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case.\"),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),\"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports.\"),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),\"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border.\"),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),\"Decides on a placement method for port labels; if empty, the node label's position is not modified.\"),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),\"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE.\"),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),\"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports.\"),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called \"hierarchies\", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the \"topology-shape-metrics\" approach by Batini, Nardelli and Tamassia \\'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;gc)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;cc)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.lengthd&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.lengthh&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;ah&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+\"'\"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+\"'\"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+\"'\"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+\"'\"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+\"'\"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+\" uri='\"+this.d+\"'\"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return ac*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\\\d';else if(this==sfe)c='\\\\w';else if(this==nfe)c='\\\\s';else{d=new Hfb;d.a+='[';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\\\D';else if(this==lfe)c='\\\\W';else if(this==kfe)c='\\\\S';else{d=new Hfb;d.a+='[^';for(b=0;b0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\\\'+HD(this.a&aje);break;case 12:d='\\\\f';break;case 10:d='\\\\n';break;case 13:d='\\\\r';break;case 9:d='\\\\t';break;case 27:d='\\\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]);\n// -------------- RUN GWT INITIALIZATION CODE -------------- \ngwtOnLoad(null, 'elk', null);\n\n}).call(this)}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],3:[function(require,module,exports){\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*******************************************************************************\n * Copyright (c) 2021 Kiel University and others.\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0.\n * \n * SPDX-License-Identifier: EPL-2.0\n *******************************************************************************/\nvar ELK = require('./elk-api.js').default;\n\nvar ELKNode = function (_ELK) {\n _inherits(ELKNode, _ELK);\n\n function ELKNode() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ELKNode);\n\n var optionsClone = Object.assign({}, options);\n\n var workerThreadsExist = false;\n try {\n require.resolve('web-worker');\n workerThreadsExist = true;\n } catch (e) {}\n\n // user requested a worker\n if (options.workerUrl) {\n if (workerThreadsExist) {\n var Worker = require('web-worker');\n optionsClone.workerFactory = function (url) {\n return new Worker(url);\n };\n } else {\n console.warn('Web worker requested but \\'web-worker\\' package not installed. \\nConsider installing the package or pass your own \\'workerFactory\\' to ELK\\'s constructor.\\n... Falling back to non-web worker version.');\n }\n }\n\n // unless no other workerFactory is registered, use the fake worker\n if (!optionsClone.workerFactory) {\n var _require = require('./elk-worker.min.js'),\n _Worker = _require.Worker;\n\n optionsClone.workerFactory = function (url) {\n return new _Worker(url);\n };\n }\n\n return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone));\n }\n\n return ELKNode;\n}(ELK);\n\nObject.defineProperty(module.exports, \"__esModule\", {\n value: true\n});\nmodule.exports = ELKNode;\nELKNode.default = ELKNode;\n},{\"./elk-api.js\":1,\"./elk-worker.min.js\":2,\"web-worker\":4}],4:[function(require,module,exports){\n/**\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = Worker;\n},{}]},{},[3])(3)\n});\n", "import { d as db, p as parser } from \"./flowDb-170db09d.js\";\nimport { select, curveLinear, line } from \"d3\";\nimport { a as insertMarkers, e as insertNode, l as labelHelper, f as insertEdgeLabel, j as getLineFunctionsWithOffset } from \"./edges-80f1ebb6.js\";\nimport { l as log, E as getConfig, o as setupGraphViewbox, k as getStylesFromArray, n as interpolateToCurve, e as common } from \"./mermaid-934d9bea.js\";\nimport ELK from \"elkjs/lib/elk.bundled.js\";\nimport \"./createText-aebacdfe.js\";\nimport \"mdast-util-from-markdown\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst findCommonAncestor = (id1, id2, treeData) => {\n const { parentById } = treeData;\n const visited = /* @__PURE__ */ new Set();\n let currentId = id1;\n while (currentId) {\n visited.add(currentId);\n if (currentId === id2) {\n return currentId;\n }\n currentId = parentById[currentId];\n }\n currentId = id2;\n while (currentId) {\n if (visited.has(currentId)) {\n return currentId;\n }\n currentId = parentById[currentId];\n }\n return \"root\";\n};\nconst elk = new ELK();\nlet portPos = {};\nconst conf = {};\nlet nodeDb = {};\nconst addVertices = async function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) {\n const svg = root.select(`[id=\"${svgId}\"]`);\n const nodes = svg.insert(\"g\").attr(\"class\", \"nodes\");\n const keys = Object.keys(vert);\n await Promise.all(\n keys.map(async function(id) {\n const vertex = vert[id];\n let classStr = \"default\";\n if (vertex.classes.length > 0) {\n classStr = vertex.classes.join(\" \");\n }\n classStr = classStr + \" flowchart-label\";\n const styles2 = getStylesFromArray(vertex.styles);\n let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;\n const labelData = { width: 0, height: 0 };\n const ports = [\n {\n id: vertex.id + \"-west\",\n layoutOptions: {\n \"port.side\": \"WEST\"\n }\n },\n {\n id: vertex.id + \"-east\",\n layoutOptions: {\n \"port.side\": \"EAST\"\n }\n },\n {\n id: vertex.id + \"-south\",\n layoutOptions: {\n \"port.side\": \"SOUTH\"\n }\n },\n {\n id: vertex.id + \"-north\",\n layoutOptions: {\n \"port.side\": \"NORTH\"\n }\n }\n ];\n let radious = 0;\n let _shape = \"\";\n let layoutOptions = {};\n switch (vertex.type) {\n case \"round\":\n radious = 5;\n _shape = \"rect\";\n break;\n case \"square\":\n _shape = \"rect\";\n break;\n case \"diamond\":\n _shape = \"question\";\n layoutOptions = {\n portConstraints: \"FIXED_SIDE\"\n };\n break;\n case \"hexagon\":\n _shape = \"hexagon\";\n break;\n case \"odd\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"lean_right\":\n _shape = \"lean_right\";\n break;\n case \"lean_left\":\n _shape = \"lean_left\";\n break;\n case \"trapezoid\":\n _shape = \"trapezoid\";\n break;\n case \"inv_trapezoid\":\n _shape = \"inv_trapezoid\";\n break;\n case \"odd_right\":\n _shape = \"rect_left_inv_arrow\";\n break;\n case \"circle\":\n _shape = \"circle\";\n break;\n case \"ellipse\":\n _shape = \"ellipse\";\n break;\n case \"stadium\":\n _shape = \"stadium\";\n break;\n case \"subroutine\":\n _shape = \"subroutine\";\n break;\n case \"cylinder\":\n _shape = \"cylinder\";\n break;\n case \"group\":\n _shape = \"rect\";\n break;\n case \"doublecircle\":\n _shape = \"doublecircle\";\n break;\n default:\n _shape = \"rect\";\n }\n const node = {\n labelStyle: styles2.labelStyle,\n shape: _shape,\n labelText: vertexText,\n labelType: vertex.labelType,\n rx: radious,\n ry: radious,\n class: classStr,\n style: styles2.style,\n id: vertex.id,\n link: vertex.link,\n linkTarget: vertex.linkTarget,\n tooltip: diagObj.db.getTooltip(vertex.id) || \"\",\n domId: diagObj.db.lookUpDomId(vertex.id),\n haveCallback: vertex.haveCallback,\n width: vertex.type === \"group\" ? 500 : void 0,\n dir: vertex.dir,\n type: vertex.type,\n props: vertex.props,\n padding: getConfig().flowchart.padding\n };\n let boundingBox;\n let nodeEl;\n if (node.type !== \"group\") {\n nodeEl = await insertNode(nodes, node, vertex.dir);\n boundingBox = nodeEl.node().getBBox();\n } else {\n doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n const { shapeSvg, bbox } = await labelHelper(nodes, node, void 0, true);\n labelData.width = bbox.width;\n labelData.wrappingWidth = getConfig().flowchart.wrappingWidth;\n labelData.height = bbox.height;\n labelData.labelNode = shapeSvg.node();\n node.labelData = labelData;\n }\n const data = {\n id: vertex.id,\n ports: vertex.type === \"diamond\" ? ports : [],\n // labelStyle: styles.labelStyle,\n // shape: _shape,\n layoutOptions,\n labelText: vertexText,\n labelData,\n // labels: [{ text: vertexText }],\n // rx: radius,\n // ry: radius,\n // class: classStr,\n // style: styles.style,\n // link: vertex.link,\n // linkTarget: vertex.linkTarget,\n // tooltip: diagObj.db.getTooltip(vertex.id) || '',\n domId: diagObj.db.lookUpDomId(vertex.id),\n // haveCallback: vertex.haveCallback,\n width: boundingBox == null ? void 0 : boundingBox.width,\n height: boundingBox == null ? void 0 : boundingBox.height,\n // dir: vertex.dir,\n type: vertex.type,\n // props: vertex.props,\n // padding: getConfig().flowchart.padding,\n // boundingBox,\n el: nodeEl,\n parent: parentLookupDb.parentById[vertex.id]\n };\n nodeDb[node.id] = data;\n })\n );\n return graph;\n};\nconst getNextPosition = (position, edgeDirection, graphDirection) => {\n const portPos2 = {\n TB: {\n in: {\n north: \"north\"\n },\n out: {\n south: \"west\",\n west: \"east\",\n east: \"south\"\n }\n },\n LR: {\n in: {\n west: \"west\"\n },\n out: {\n east: \"south\",\n south: \"north\",\n north: \"east\"\n }\n },\n RL: {\n in: {\n east: \"east\"\n },\n out: {\n west: \"north\",\n north: \"south\",\n south: \"west\"\n }\n },\n BT: {\n in: {\n south: \"south\"\n },\n out: {\n north: \"east\",\n east: \"west\",\n west: \"north\"\n }\n }\n };\n portPos2.TD = portPos2.TB;\n log.info(\"abc88\", graphDirection, edgeDirection, position);\n return portPos2[graphDirection][edgeDirection][position];\n};\nconst getNextPort = (node, edgeDirection, graphDirection) => {\n log.info(\"getNextPort abc88\", { node, edgeDirection, graphDirection });\n if (!portPos[node]) {\n switch (graphDirection) {\n case \"TB\":\n case \"TD\":\n portPos[node] = {\n inPosition: \"north\",\n outPosition: \"south\"\n };\n break;\n case \"BT\":\n portPos[node] = {\n inPosition: \"south\",\n outPosition: \"north\"\n };\n break;\n case \"RL\":\n portPos[node] = {\n inPosition: \"east\",\n outPosition: \"west\"\n };\n break;\n case \"LR\":\n portPos[node] = {\n inPosition: \"west\",\n outPosition: \"east\"\n };\n break;\n }\n }\n const result = edgeDirection === \"in\" ? portPos[node].inPosition : portPos[node].outPosition;\n if (edgeDirection === \"in\") {\n portPos[node].inPosition = getNextPosition(\n portPos[node].inPosition,\n edgeDirection,\n graphDirection\n );\n } else {\n portPos[node].outPosition = getNextPosition(\n portPos[node].outPosition,\n edgeDirection,\n graphDirection\n );\n }\n return result;\n};\nconst getEdgeStartEndPoint = (edge, dir) => {\n let source = edge.start;\n let target = edge.end;\n const sourceId = source;\n const targetId = target;\n const startNode = nodeDb[source];\n const endNode = nodeDb[target];\n if (!startNode || !endNode) {\n return { source, target };\n }\n if (startNode.type === \"diamond\") {\n source = `${source}-${getNextPort(source, \"out\", dir)}`;\n }\n if (endNode.type === \"diamond\") {\n target = `${target}-${getNextPort(target, \"in\", dir)}`;\n }\n return { source, target, sourceId, targetId };\n};\nconst addEdges = function(edges, diagObj, graph, svg) {\n log.info(\"abc78 edges = \", edges);\n const labelsEl = svg.insert(\"g\").attr(\"class\", \"edgeLabels\");\n let linkIdCnt = {};\n let dir = diagObj.db.getDirection();\n let defaultStyle;\n let defaultLabelStyle;\n if (edges.defaultStyle !== void 0) {\n const defaultStyles = getStylesFromArray(edges.defaultStyle);\n defaultStyle = defaultStyles.style;\n defaultLabelStyle = defaultStyles.labelStyle;\n }\n edges.forEach(function(edge) {\n const linkIdBase = \"L-\" + edge.start + \"-\" + edge.end;\n if (linkIdCnt[linkIdBase] === void 0) {\n linkIdCnt[linkIdBase] = 0;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n } else {\n linkIdCnt[linkIdBase]++;\n log.info(\"abc78 new entry\", linkIdBase, linkIdCnt[linkIdBase]);\n }\n let linkId = linkIdBase + \"-\" + linkIdCnt[linkIdBase];\n log.info(\"abc78 new link id to be used is\", linkIdBase, linkId, linkIdCnt[linkIdBase]);\n const linkNameStart = \"LS-\" + edge.start;\n const linkNameEnd = \"LE-\" + edge.end;\n const edgeData = { style: \"\", labelStyle: \"\" };\n edgeData.minlen = edge.length || 1;\n if (edge.type === \"arrow_open\") {\n edgeData.arrowhead = \"none\";\n } else {\n edgeData.arrowhead = \"normal\";\n }\n edgeData.arrowTypeStart = \"arrow_open\";\n edgeData.arrowTypeEnd = \"arrow_open\";\n switch (edge.type) {\n case \"double_arrow_cross\":\n edgeData.arrowTypeStart = \"arrow_cross\";\n case \"arrow_cross\":\n edgeData.arrowTypeEnd = \"arrow_cross\";\n break;\n case \"double_arrow_point\":\n edgeData.arrowTypeStart = \"arrow_point\";\n case \"arrow_point\":\n edgeData.arrowTypeEnd = \"arrow_point\";\n break;\n case \"double_arrow_circle\":\n edgeData.arrowTypeStart = \"arrow_circle\";\n case \"arrow_circle\":\n edgeData.arrowTypeEnd = \"arrow_circle\";\n break;\n }\n let style = \"\";\n let labelStyle = \"\";\n switch (edge.stroke) {\n case \"normal\":\n style = \"fill:none;\";\n if (defaultStyle !== void 0) {\n style = defaultStyle;\n }\n if (defaultLabelStyle !== void 0) {\n labelStyle = defaultLabelStyle;\n }\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"solid\";\n break;\n case \"dotted\":\n edgeData.thickness = \"normal\";\n edgeData.pattern = \"dotted\";\n edgeData.style = \"fill:none;stroke-width:2px;stroke-dasharray:3;\";\n break;\n case \"thick\":\n edgeData.thickness = \"thick\";\n edgeData.pattern = \"solid\";\n edgeData.style = \"stroke-width: 3.5px;fill:none;\";\n break;\n }\n if (edge.style !== void 0) {\n const styles2 = getStylesFromArray(edge.style);\n style = styles2.style;\n labelStyle = styles2.labelStyle;\n }\n edgeData.style = edgeData.style += style;\n edgeData.labelStyle = edgeData.labelStyle += labelStyle;\n if (edge.interpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (edges.defaultInterpolate !== void 0) {\n edgeData.curve = interpolateToCurve(edges.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n if (edge.text === void 0) {\n if (edge.style !== void 0) {\n edgeData.arrowheadStyle = \"fill: #333\";\n }\n } else {\n edgeData.arrowheadStyle = \"fill: #333\";\n edgeData.labelpos = \"c\";\n }\n edgeData.labelType = edge.labelType;\n edgeData.label = edge.text.replace(common.lineBreakRegex, \"\\n\");\n if (edge.style === void 0) {\n edgeData.style = edgeData.style || \"stroke: #333; stroke-width: 1.5px;fill:none;\";\n }\n edgeData.labelStyle = edgeData.labelStyle.replace(\"color:\", \"fill:\");\n edgeData.id = linkId;\n edgeData.classes = \"flowchart-link \" + linkNameStart + \" \" + linkNameEnd;\n const labelEl = insertEdgeLabel(labelsEl, edgeData);\n const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);\n log.debug(\"abc78 source and target\", source, target);\n graph.edges.push({\n id: \"e\" + edge.start + edge.end,\n sources: [source],\n targets: [target],\n sourceId,\n targetId,\n labelEl,\n labels: [\n {\n width: edgeData.width,\n height: edgeData.height,\n orgWidth: edgeData.width,\n orgHeight: edgeData.height,\n text: edgeData.label,\n layoutOptions: {\n \"edgeLabels.inline\": \"true\",\n \"edgeLabels.placement\": \"CENTER\"\n }\n }\n ],\n edgeData\n });\n });\n return graph;\n};\nconst addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute, id) {\n let url = \"\";\n if (arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n switch (edgeData.arrowTypeStart) {\n case \"arrow_cross\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-crossStart)\"\n );\n break;\n case \"arrow_point\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-pointStart)\"\n );\n break;\n case \"arrow_barb\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-barbStart)\"\n );\n break;\n case \"arrow_circle\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-circleStart)\"\n );\n break;\n case \"aggregation\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-aggregationStart)\"\n );\n break;\n case \"extension\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-extensionStart)\"\n );\n break;\n case \"composition\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-compositionStart)\"\n );\n break;\n case \"dependency\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-dependencyStart)\"\n );\n break;\n case \"lollipop\":\n svgPath.attr(\n \"marker-start\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-lollipopStart)\"\n );\n break;\n }\n switch (edgeData.arrowTypeEnd) {\n case \"arrow_cross\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-crossEnd)\");\n break;\n case \"arrow_point\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-pointEnd)\");\n break;\n case \"arrow_barb\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-barbEnd)\");\n break;\n case \"arrow_circle\":\n svgPath.attr(\"marker-end\", \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-circleEnd)\");\n break;\n case \"aggregation\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-aggregationEnd)\"\n );\n break;\n case \"extension\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-extensionEnd)\"\n );\n break;\n case \"composition\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-compositionEnd)\"\n );\n break;\n case \"dependency\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-dependencyEnd)\"\n );\n break;\n case \"lollipop\":\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + id + \"_\" + diagramType + \"-lollipopEnd)\"\n );\n break;\n }\n};\nconst getClasses = function(text, diagObj) {\n log.info(\"Extracting classes\");\n return diagObj.db.getClasses();\n};\nconst addSubGraphs = function(db2) {\n const parentLookupDb = { parentById: {}, childrenById: {} };\n const subgraphs = db2.getSubGraphs();\n log.info(\"Subgraphs - \", subgraphs);\n subgraphs.forEach(function(subgraph) {\n subgraph.nodes.forEach(function(node) {\n parentLookupDb.parentById[node] = subgraph.id;\n if (parentLookupDb.childrenById[subgraph.id] === void 0) {\n parentLookupDb.childrenById[subgraph.id] = [];\n }\n parentLookupDb.childrenById[subgraph.id].push(node);\n });\n });\n subgraphs.forEach(function(subgraph) {\n ({ id: subgraph.id });\n if (parentLookupDb.parentById[subgraph.id] !== void 0) {\n parentLookupDb.parentById[subgraph.id];\n }\n });\n return parentLookupDb;\n};\nconst calcOffset = function(src, dest, parentLookupDb) {\n const ancestor = findCommonAncestor(src, dest, parentLookupDb);\n if (ancestor === void 0 || ancestor === \"root\") {\n return { x: 0, y: 0 };\n }\n const ancestorOffset = nodeDb[ancestor].offset;\n return { x: ancestorOffset.posX, y: ancestorOffset.posY };\n};\nconst insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb, id) {\n const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);\n const src = edge.sections[0].startPoint;\n const dest = edge.sections[0].endPoint;\n const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];\n const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);\n const points = [\n [src.x + offset.x, src.y + offset.y],\n ...segPoints,\n [dest.x + offset.x, dest.y + offset.y]\n ];\n const { x, y } = getLineFunctionsWithOffset(edge.edgeData);\n const curve = line().x(x).y(y).curve(curveLinear);\n const edgePath = edgesEl.insert(\"path\").attr(\"d\", curve(points)).attr(\"class\", \"path \" + edgeData.classes).attr(\"fill\", \"none\");\n const edgeG = edgesEl.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));\n const box = edgeWithLabel.node().firstChild.getBoundingClientRect();\n edgeWithLabel.attr(\"width\", box.width);\n edgeWithLabel.attr(\"height\", box.height);\n edgeG.attr(\n \"transform\",\n `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`\n );\n addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute, id);\n};\nconst insertChildren = (nodeArray, parentLookupDb) => {\n nodeArray.forEach((node) => {\n if (!node.children) {\n node.children = [];\n }\n const childIds = parentLookupDb.childrenById[node.id];\n if (childIds) {\n childIds.forEach((childId) => {\n node.children.push(nodeDb[childId]);\n });\n }\n insertChildren(node.children, parentLookupDb);\n });\n};\nconst draw = async function(text, id, _version, diagObj) {\n var _a;\n diagObj.db.clear();\n nodeDb = {};\n portPos = {};\n diagObj.db.setGen(\"gen-2\");\n diagObj.parser.parse(text);\n const renderEl = select(\"body\").append(\"div\").attr(\"style\", \"height:400px\").attr(\"id\", \"cy\");\n let graph = {\n id: \"root\",\n layoutOptions: {\n \"elk.hierarchyHandling\": \"INCLUDE_CHILDREN\",\n \"org.eclipse.elk.padding\": \"[top=100, left=100, bottom=110, right=110]\",\n \"elk.layered.spacing.edgeNodeBetweenLayers\": \"30\",\n // 'elk.layered.mergeEdges': 'true',\n \"elk.direction\": \"DOWN\"\n // 'elk.ports.sameLayerEdges': true,\n // 'nodePlacement.strategy': 'SIMPLE',\n },\n children: [],\n edges: []\n };\n log.info(\"Drawing flowchart using v3 renderer\", elk);\n let dir = diagObj.db.getDirection();\n switch (dir) {\n case \"BT\":\n graph.layoutOptions[\"elk.direction\"] = \"UP\";\n break;\n case \"TB\":\n graph.layoutOptions[\"elk.direction\"] = \"DOWN\";\n break;\n case \"LR\":\n graph.layoutOptions[\"elk.direction\"] = \"RIGHT\";\n break;\n case \"RL\":\n graph.layoutOptions[\"elk.direction\"] = \"LEFT\";\n break;\n }\n const { securityLevel, flowchart: conf2 } = getConfig();\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const svg = root.select(`[id=\"${id}\"]`);\n const markers = [\"point\", \"circle\", \"cross\"];\n insertMarkers(svg, markers, diagObj.type, id);\n const vert = diagObj.db.getVertices();\n let subG;\n const subGraphs = diagObj.db.getSubGraphs();\n log.info(\"Subgraphs - \", subGraphs);\n for (let i = subGraphs.length - 1; i >= 0; i--) {\n subG = subGraphs[i];\n diagObj.db.addVertex(\n subG.id,\n { text: subG.title, type: subG.labelType },\n \"group\",\n void 0,\n subG.classes,\n subG.dir\n );\n }\n const subGraphsEl = svg.insert(\"g\").attr(\"class\", \"subgraphs\");\n const parentLookupDb = addSubGraphs(diagObj.db);\n graph = await addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph);\n const edgesEl = svg.insert(\"g\").attr(\"class\", \"edges edgePath\");\n const edges = diagObj.db.getEdges();\n graph = addEdges(edges, diagObj, graph, svg);\n const nodes = Object.keys(nodeDb);\n nodes.forEach((nodeId) => {\n const node = nodeDb[nodeId];\n if (!node.parent) {\n graph.children.push(node);\n }\n if (parentLookupDb.childrenById[nodeId] !== void 0) {\n node.labels = [\n {\n text: node.labelText,\n layoutOptions: {\n \"nodeLabels.placement\": \"[H_CENTER, V_TOP, INSIDE]\"\n },\n width: node.labelData.width,\n height: node.labelData.height\n // width: 100,\n // height: 100,\n }\n ];\n delete node.x;\n delete node.y;\n delete node.width;\n delete node.height;\n }\n });\n insertChildren(graph.children, parentLookupDb);\n log.info(\"after layout\", JSON.stringify(graph, null, 2));\n const g = await elk.layout(graph);\n drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0);\n log.info(\"after layout\", g);\n (_a = g.edges) == null ? void 0 : _a.map((edge) => {\n insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb, id);\n });\n setupGraphViewbox({}, svg, conf2.diagramPadding, conf2.useMaxWidth);\n renderEl.remove();\n};\nconst drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => {\n nodeArray.forEach(function(node) {\n if (node) {\n nodeDb[node.id].offset = {\n posX: node.x + relX,\n posY: node.y + relY,\n x: relX,\n y: relY,\n depth,\n width: node.width,\n height: node.height\n };\n if (node.type === \"group\") {\n const subgraphEl = subgraphsEl.insert(\"g\").attr(\"class\", \"subgraph\");\n subgraphEl.insert(\"rect\").attr(\"class\", \"subgraph subgraph-lvl-\" + depth % 5 + \" node\").attr(\"x\", node.x + relX).attr(\"y\", node.y + relY).attr(\"width\", node.width).attr(\"height\", node.height);\n const label = subgraphEl.insert(\"g\").attr(\"class\", \"label\");\n const labelCentering = getConfig().flowchart.htmlLabels ? node.labelData.width / 2 : 0;\n label.attr(\n \"transform\",\n `translate(${node.labels[0].x + relX + node.x + labelCentering}, ${node.labels[0].y + relY + node.y + 3})`\n );\n label.node().appendChild(node.labelData.labelNode);\n log.info(\"Id (UGH)= \", node.type, node.labels);\n } else {\n log.info(\"Id (UGH)= \", node.id);\n node.el.attr(\n \"transform\",\n `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})`\n );\n }\n }\n });\n nodeArray.forEach(function(node) {\n if (node && node.type === \"group\") {\n drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1);\n }\n });\n};\nconst renderer = {\n getClasses,\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\n for (let i = 0; i < 5; i++) {\n sections += `\n .subgraph-lvl-${i} {\n fill: ${options[`surface${i}`]};\n stroke: ${options[`surfacePeer${i}`]};\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `.label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n .cluster-label text {\n fill: ${options.titleColor};\n }\n .cluster-label span {\n color: ${options.titleColor};\n }\n\n .label text,span {\n fill: ${options.nodeTextColor || options.textColor};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.85;\n background-color: ${options.edgeLabelBackground};\n fill: ${options.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${options.clusterBkg};\n stroke: ${options.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n .cluster span {\n color: ${options.titleColor};\n }\n /* .cluster div {\n color: ${options.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${options.fontFamily};\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n\n .flowchart-label text {\n text-anchor: middle;\n }\n\n ${genSections(options)}\n`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser,\n styles\n};\nexport {\n diagram\n};\n"], - "mappings": "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C;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,MAAK;AAAA,YAAC;AACf,qBAAS,IAAI,GAAE;AAAA,YAAC;AAChB,qBAAS,IAAI,GAAE;AAAA,YAAC;AAChB,qBAAS,KAAI;AAAC,iBAAG;AAAA,YAAC;AAClB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AACpB,qBAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AACtB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACvB,qBAAS,KAAI;AAAC,mBAAK,IAAE,CAAC;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,IAAE;AAAA,YAAC;AACvB,qBAAS,IAAI,GAAE;AAAC,gBAAE,IAAE,EAAE;AAAA,YAAC;AACvB,qBAAS,GAAG,GAAE;AAAC,gBAAE,IAAE,EAAE,EAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB,qBAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AACxB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AE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,gBA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AAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GAAE,EAAE;AAAE,gBAAE,KAAG,IAAI,GA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AAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC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,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAA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AAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,iBAAG,KAAI,KAAI,GAAG;AAAE,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;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,GAAE,CAAC;AAAE,kBAAI,EAAE,CAAC;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,gBAAE,IAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EAAE;AAAE,kBAAI,EAAE,GAAE,EA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,CAAC,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,GAAE,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,GAAE,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,GAAE,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,GAAE,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,GAAE,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,GAAE,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,WAAU,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,UAAS,IAAG,KAAI,KAAI,KAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,oBAAI,IAAI,IAAI,KAAI,IAAG,MAAK,MAAK,MAAK,MAAK,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AACp4F,qBAAS,MAAK;AAAC,oBAAI;AAAI,qBAAK,IAAI,GAAE,KAAK;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,EAAE,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAG,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAG,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAG,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,oBAAI,IAAI;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE,EAAE;AAAE,iBAAG,IAAI,IAA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IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,MAAK,IAAI,GAAE,KAAK;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI,GAAG,C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I,KAAI,GAAG;AAAE,kBAAI,GAAG,IAAE;AAAG,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAG,IAAE;AAAG,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,GAAG,IAAE;AAAI,kBAAI,GAAG,IAAE;AAAI,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAG,IAAE;AAAG,kBAAI,GAAG,IAAE;AAAI,kBAAI,GAAG,IAAE;AAAG,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAG,IAAE;AAAG,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAG,IAAE;AAAG,kBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,kBAAI,KAAI,KAAI,KAAI,EAAE;AAAE,kBAAI,GAAG,IAAE;AAAI,kBAAI,GAAG,IAAE;AAAG,kBAAI,GAAG,IAAE;AAAI,kBAAI,GAAG,IAAE;AAAG,kBAAI,GAAG,IAAE;AAAI,kBAAI,GAAG,IAAE;AAAG,kBAAI,GAAG,IAAE;AAAI,kBAAI,GAAG,IAAE;AAAG,kBAAI,KAAI,KAAI,MAAK,GAAG;AAAE,kBAAI,KAAI,MAAK,MAAK,EAAE;AAAE,kBAAI,KAAI,MAAK,MAAK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AO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI,KAAK,IAAI,GAAE,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAG,yBAAO,IAAI,KAAK,IAAI,GAAE,IAAI;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,OAAK,KAAK,KAAG,OAAK,KAAK,IAAE,KAAG,KAAK,EAAE,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAG,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,MAAI,IAAI,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,MAAI,IAAI,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,qDAAoD,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAgB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,CAAC,CAAC,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,IAAI,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,UAAQ;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,mBAAK,IAAE;AAAE,sBAAO,KAAK,EAAE,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAE,IAAI;AAAI,sBAAI,IAAI,IAAI,IAAI,MAAK,IAAI,IAAI,KAAK,EAAE,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,KAAG,GAAE,IAAI,IAAI,MAAK,CAAC,CAAC;AAAE,sBAAI,MAAK,IAAI,KAAG;AAAE,sBAAI,GAAE,IAAI,KAAG;AAAE,oBAAE,IAAE,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAE,sBAAI,IAAI,IAAI,IAAI,MAAK,IAAI,IAAI,KAAK,EAAE,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,KAAG,GAAE,IAAI,IAAI,CAAC,CAAC;AAAE,sBAAI,MAAK,IAAI,KAAG;AAAE,sBAAI,GAAE,IAAI,KAAG;AAAE,oBAAE,IAAE,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAE,sBAAE,IAAI,IAAI,IAAI,IAAI,IAAI,MAAK,IAAI,IAAI,KAAK,EAAE,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,IAAI,IAAI,CAAC,CAAC,GAAE,IAAI,KAAG;AAAE,sBAAI,IAAI,IAAI,MAAK,IAAI,IAAI,KAAK,EAAE,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,sBAAI,MAAK,IAAI,KAAG;AAAE,sBAAI,GAAE,IAAI,KAAG;AAAE,oBAAE,IAAE,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAE;AAAA,gBAAM,KAAK;AAAE,sBAAE,IAAI;AAAI,sBAAI,MAAK,IAAI,KAAG;AAAE,sBAAE,IAAI,IAAI,IAAI,IAAI,IAAI,MAAK,IAAI,IAAI,KAAK,EAAE,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,IAAI,IAAI,CAAC,CAAC,GAAE,IAAI,KAAG;AAAE,sBAAI,IAAI,IAAI,IAAI,MAAK,IAAI,IAAI,KAAK,EAAE,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,KAAG,GAAE,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,sBAAI,MAAK,IAAI,KAAG;AAAE,sBAAI,GAAE,IAAI,KAAG;AAAE,oBAAE,IAAE,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAE;AAAA,gBAAM;AAAQ,wBAAM,IAAI,IAAI,KAAG;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wDAAuD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,IAAI,GAAE,CAAC,GAAE;AAAC,uBAAO;AAAA,cAAC;AAAC,kBAAE,IAAI,CAAC;AAAE,kBAAE,IAAI,CAAC;AAAE,kBAAG,CAAC,CAAC,KAAG,EAAE,MAAI,IAAI,GAAE,QAAM,CAAC,CAAC,KAAG,EAAE,MAAI,IAAI,GAAE,MAAK;AAAC,uBAAO;AAAA,cAAC;AAAC,kBAAE,GAAG,IAAI,KAAK,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAE,qBAAO,IAAI,GAAE,IAAE,EAAE,KAAG,IAAI,GAAE,MAAK,IAAE,EAAE,KAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,IAAI,GAAE,CAAC,GAAE;AAAC,uBAAO;AAAA,cAAC;AAAC,kBAAE,IAAI,CAAC;AAAE,kBAAE,IAAI,CAAC;AAAE,kBAAE,GAAG,IAAI,KAAK,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAE,qBAAO,IAAI,GAAE,IAAE,EAAE,KAAG,IAAI,GAAE,MAAK,IAAE,EAAE,KAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,EAAE,EAAE,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAG;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,mBAAK,IAAE;AAAE,mBAAK,IAAE,IAAI;AAAI,mBAAK,IAAE,GAAG,IAAG,KAAI,KAAI,KAAK,EAAE,EAAE,EAAE,EAAE,QAAO,GAAE,CAAC;AAAE,mBAAK,IAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,kBAAE,IAAE,KAAK;AAAE,oBAAE,IAAI,IAAI,IAAI,OAAI,CAAC,GAAE,KAAK,CAAC;AAAE,qBAAK,EAAE,KAAK,CAAC,IAAE;AAAE,kBAAE,KAAK;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI,KAAK,CAAC,GAAE,IAAI,KAAG;AAAE,mBAAI,IAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAE,EAAE,IAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAE,EAAE,EAAE;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,yBAAuB,KAAK,IAAE,oBAAkB,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,yBAAuB,KAAK,IAAE,mBAAiB,KAAK,IAAE,0BAAwB,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,mEAAkE,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAgB;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE,GAAG,IAAG,KAAI,IAAG,KAAK,GAAE,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,gBAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAE,CAAC;AAAE,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,GAAE,EAAE,MAAM;AAAE,kBAAI,MAAK,GAAE,GAAE,CAAC;AAAE,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,iBAAgB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iCAAgC,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gBAAe,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,6BAA4B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,iBAAG,GAAE,GAAG,EAAE,IAAE;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,2BAA0B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,EAAE,CAAC,GAAE,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,MAAK,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,MAAK,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,EAAE,EAAE;AAAE,iBAAG,GAAE,GAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,CAAC,CAAC;AAAE,kBAAE,EAAE,EAAE;AAAE,kBAAI,GAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,CAAC,CAAC;AAAE,qBAAO,IAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAK,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,iBAAG,GAAE,EAAE,EAAE,GAAG,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,IAAI;AAAE,gBAAI,MAAK,MAAK,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAES;AAAE,kBAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,cAAAA,MAAE,IAAI,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,EAAE,IAAE,EAAE,EAAE,GAAE,IAAI,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAAE,kBAAI,GAAE,GAAE,GAAEA,KAAE,CAAC;AAAE,kBAAIA,MAAG,IAAE,EAAE,EAAE,GAAE,IAAI,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,CAAC,EAAE;AAAE,qBAAO,IAAI,IAAI,IAAIA,GAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,UAAQ;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,CAAC,GAAE,EAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,UAAQ;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,CAAC,GAAE,EAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,UAAQ;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI,CAAC;AAAE,kBAAE,IAAI;AAAI,kBAAE,EAAE,IAAE;AAAE,mBAAI,IAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,oBAAI,GAAE,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,IAAI;AAAI,gBAAE,KAAG;AAAU,gBAAE,KAAG;AAAa,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAW,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAqB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAoB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAoB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAyB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAwB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAuB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAsB,kBAAI,GAAE,KAAK,CAAC;AAAE,qBAAO,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,GAAG,EAAE,IAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,CAAC,GAAE,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE;AAAE,qBAAO,IAAE,KAAG,IAAI,GAAE,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,mBAAG,EAAE,KAAG,QAAM,IAAI,CAAC,GAAE,EAAE;AAAG,cAAAV,OAAG,EAAE,KAAG,QAAM,IAAI,CAAC,GAAE,EAAE;AAAG,kBAAE,GAAG,IAAG,KAAI,IAAG,EAAE,QAAO,IAAG,CAAC;AAAE,gBAAE,CAAC,IAAE,EAAE,CAAC;AAAE,kBAAE,EAAE,CAAC;AAAE,mBAAI,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,kBAAE,CAAC,IAAE,EAAE,IAAE,CAAC,IAAE,EAAE,CAAC;AAAE,qBAAG,EAAE,CAAC;AAAA,cAAC;AAAC,kBAAE,IAAI,CAAC,IAAE;AAAE,cAAAS,MAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE;AAAE,kBAAE;AAAI,kBAAE,IAAI;AAAI,mBAAI,IAAE,KAAK,KAAK,IAAI,GAAE,IAAEA,GAAC,GAAE,KAAG,KAAK,KAAK,IAAI,EAAE,IAAE,GAAE,IAAEA,GAAC,GAAE,KAAI;AAAC,oBAAE,KAAG,IAAE;AAAG,oBAAE;AAAE,oBAAE;AAAE,oBAAE,IAAI;AAAI,oBAAE;AAAI,oBAAE;AAAE,oBAAE;AAAE,gBAAAC,MAAEV,IAAE,CAAC;AAAE,oBAAG,KAAG,GAAE;AAAC,sBAAE;AAAE,uBAAG,EAAE,KAAG,SAAO,EAAE,IAAE,IAAI,GAAE,IAAI,KAAG,IAAG,IAAI,EAAE,CAAC;AAAA,gBAAE,OAAK;AAAC,yBAAM,IAAE,EAAE,GAAE;AAAC,wBAAG,EAAE,IAAE,CAAC,IAAE,KAAG,GAAE;AAAC,0BAAI,GAAE,IAAI,CAAC,CAAC;AAAE,0BAAE,KAAK,KAAK,IAAI,GAAE,EAAE,IAAE,CAAC,IAAE,CAAC;AAAE,2BAAGU;AAAE,2BAAG,EAAE,IAAE,CAAC,IAAE;AAAE,0BAAE,EAAE,IAAE,CAAC;AAAE,sBAAAA,MAAEV,IAAE,CAAC;AAAA,oBAAC;AAAC,oBAAAU,MAAE,KAAK,KAAK,IAAIA,KAAEV,IAAE,CAAC,CAAC;AAAE,sBAAE;AAAA,kBAAC;AAAC,uBAAGU;AAAA,gBAAC;AAAC,oBAAE,KAAK,KAAK,IAAI,IAAE,GAAE,IAAE,EAAE,IAAE,CAAC;AAAE,oBAAG,IAAE,GAAE;AAAC,sBAAE;AAAE,sBAAE;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oCAAmC,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iCAAgC,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gCAA+B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,uBAAsB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,6BAA4B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,2BAA0B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,qBAAoB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,6BAA4B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,sBAAsB,GAAE,sMAAsM,GAAE,GAAG,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,gBAAgB,GAAE,2EAA2E,IAAG,IAAI,GAAE,MAAM,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,6BAA6B,GAAE,8EAA8E,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,aAAa,GAAE,uSAAuS,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,gCAAgC,GAAE,+aAA+a,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,sCAAsC,GAAE,2gBAA2gB,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,GAAE,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,uBAAuB,GAAE,yMAAyM,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,2DAA2D,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,4BAA4B,GAAE,8SAA8S,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,iCAAiC,GAAE,wLAAwL,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,eAAe,GAAE,yBAAyB,GAAE,6RAA6R,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wBAAwB,GAAE,6BAA6B,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kBAAkB,GAAE,8EAA8E,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,0gBAA0gB,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,UAAU,GAAE,mJAAmJ,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yCAAyC,GAAE,8IAA8I,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,0DAA0D,GAAE,6TAA6T,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,mEAAmE,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,+BAA+B,GAAE,qDAAqD,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,wBAAwB,GAAE,aAAa,GAAE,gDAAgD,GAAE,IAAI,GAAG,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,gCAAgC,GAAE,qCAAqC,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wBAAwB,GAAE,wVAAwV,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,gEAAgE,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wCAAwC,GAAE,qTAAqT,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,2hBAA2hB,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,aAAa,GAAE,0JAA0J,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oCAAoC,GAAE,8OAA8O,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,qCAAqC,GAAE,gRAAgR,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,+CAA+C,GAAE,oDAAoD,GAAE,iXAAiX,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,8BAA8B,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,qCAAqC,GAAE,kNAAkN,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,6dAA6d,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,yJAAyJ,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,8BAA8B,GAAE,sCAAsC,GAAE,2EAA2E,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,8BAA8B,GAAE,kBAAkB,GAAE,kXAAkX,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,8CAA8C,GAAE,0BAA0B,GAAE,wFAAwF,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wBAAwB,GAAE,qGAAqG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,yHAAyH,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,qBAAqB,GAAE,qBAAqB,GAAE,+RAA+R,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,4BAA4B,GAAE,oCAAoC,GAAE,kFAAkF,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,sBAAsB,GAAE,wBAAwB,GAAE,iQAAiQ,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,mVAAmV,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kCAAkC,GAAE,+LAA+L,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,iCAAiC,GAAE,sMAAsM,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kCAAkC,GAAE,2KAA2K,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,8JAA8J,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,uHAAuH,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,8IAA8I,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,gEAAgE,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,0BAA0B,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wCAAwC,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,+DAA+D,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,qDAAqD,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sCAAsC,GAAE,6FAA6F,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,oUAAoU,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kCAAkC,GAAE,2MAA2M,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,gCAAgC,GAAE,qSAAqS,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kBAAkB,GAAE,oGAAoG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,8DAA8D,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,sBAAsB,GAAE,aAAa,GAAE,4QAA4Q,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,mKAAmK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,cAAc,GAAE,2KAA2K,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sCAAsC,GAAE,IAAI,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,oMAAoM,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,2BAA2B,GAAE,uCAAuC,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sCAAsC,GAAE,yEAAyE,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sBAAsB,GAAE,wNAAwN,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,gBAAgB,GAAE,qFAAqF,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,qCAAqC,GAAE,0YAA0Y,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,6BAA6B,GAAE,+NAA+N,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uCAAuC,GAAE,mbAAmb,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uCAAuC,GAAE,mbAAmb,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,CAAC;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,KAAI,MAAK,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0CAAyC,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4BAA2B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,uBAAsB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,YAAW,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gCAA+B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4BAA2B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,YAAW,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,qBAAoB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAE,IAAI,KAAK,GAAE,EAAE,EAAE,MAAM,CAAC,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAK,kBAAE;AAAI,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAG,IAAI,IAAG,IAAI,GAAE,IAAI,KAAG,GAAG,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,IAAE,GAAE;AAAC,sBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE;AAAE,sBAAE;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAG,CAAC,GAAE;AAAC,uBAAO,GAAG,IAAI,GAAE,IAAI,KAAK,GAAE,EAAE,EAAE,MAAM,CAAC,GAAE,EAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,2BAA0B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2DAA0D,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,IAAI,IAAI,QAAK,IAAI,GAAE,OAAM,IAAI,GAAE,IAAI,GAAE,KAAI,GAAG,GAAE,KAAI,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,IAAI,IAAI,QAAK,IAAI,GAAE,OAAM,IAAI,GAAE,IAAI,GAAE,KAAI,GAAG,GAAE,KAAI,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8CAA6C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,IAAI,IAAI,QAAK,IAAI,GAAE,OAAM,IAAI,GAAE,IAAI,GAAE,KAAI,GAAG,GAAE,KAAI,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,KAAI,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE,GAAG,IAAG,KAAI,IAAG,KAAK,GAAE,IAAG,CAAC;AAAE,mBAAK,IAAE,GAAG,IAAG,KAAI,IAAG,KAAK,GAAE,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,EAAE,CAAC,IAAE,GAAG,IAAG,KAAI,IAAG,EAAE,CAAC,EAAE,QAAO,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,CAAC,EAAE,CAAC;AAAE,gBAAE,IAAE;AAAE,mBAAK,EAAE,CAAC,EAAE,CAAC,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,iBAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,CAAC,GAAE,EAAE,EAAE,IAAE,KAAK;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mDAAkD,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE,KAAK,EAAE;AAAE,mBAAK,IAAE,KAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAG,GAAE;AAAC,oBAAI,MAAK,CAAC;AAAA,cAAC,OAAK;AAAC,oBAAI,MAAK,GAAE,CAAC;AAAE,oBAAI,MAAK,GAAE,CAAC;AAAA,cAAC;AAAC,kBAAG,EAAE,EAAE,SAAO,GAAE;AAAC,oBAAI,GAAG,IAAI,KAAK,IAAI,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,CAAC,GAAE,EAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,IAAE,IAAI,GAAE,KAAK,GAAE,GAAG,MAAK,GAAG,CAAC,KAAG,IAAI,GAAE,IAAI,GAAE,KAAK,CAAC;AAAG,oBAAI,KAAK,GAAE,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAED,KAAE,GAAET,KAAE,GAAE;AAAE,kBAAG,KAAG,IAAI,GAAE,EAAE,MAAM,GAAE;AAAC,oBAAE,EAAE,KAAG,IAAE,IAAE,GAAG;AAAE,oBAAI,KAAK,GAAE,GAAE,KAAG,IAAI,GAAE,QAAM,IAAI,GAAE,IAAI;AAAA,cAAC;AAAC,kBAAE,EAAE,CAAC,EAAE,CAAC;AAAE,kBAAE,CAAC,KAAG,EAAE,MAAI,IAAI,GAAE;AAAK,kBAAE,GAAG,EAAE,CAAC,CAAC;AAAE,mBAAK,GAAG,GAAE,GAAE,OAAM,CAAC;AAAE,cAAAS,MAAE;AAAE,mBAAIT,MAAE,IAAI,IAAI,CAAC,GAAEA,IAAE,IAAEA,IAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAIA,GAAC,GAAE,EAAE;AAAE,kBAAE,CAAC,EAAES,KAAG,IAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA;AAAE,cAAAA,MAAE,IAAI,GAAE,EAAE,MAAM;AAAE,kBAAE,GAAG,EAAEA,GAAC,CAAC;AAAE,mBAAK,GAAG,GAAE,OAAM,MAAK,CAAC;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAEA,GAAC,EAAE,GAAG,IAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,2BAAyB,KAAK,IAAE,oBAAkB,KAAK,IAAE,cAAY,KAAK,IAAE,kBAAgB,KAAK,IAAE,eAAa,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,EAAE,CAAC,IAAE,GAAG,IAAG,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,MAAK,EAAC,GAAE,KAAI,EAAE,CAAC,EAAE,QAAO,GAAE,CAAC;AAAE,mBAAK,EAAE,CAAC,IAAE,GAAG,IAAG,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,MAAK,EAAC,GAAE,KAAI,EAAE,CAAC,EAAE,QAAO,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,MAAK,EAAE,CAAC,EAAE,CAAC,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,IAAI;AAAI,gBAAE,KAAG;AAAI,mBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,QAAO,KAAI;AAAC,oBAAI,GAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AAAE,oBAAI,KAAK,GAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAG,QAAM,IAAI,KAAK,EAAE,KAAG,KAAI,IAAG,IAAI,IAAI,KAAK,GAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAE,GAAG;AAAE,oBAAE,KAAK,EAAE,SAAO,MAAI,EAAE,KAAG,KAAI;AAAA,cAAE;AAAC,sBAAQ,EAAE,KAAG,KAAI,GAAG;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE,GAAG,IAAG,KAAI,IAAG,KAAK,GAAE,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,EAAE,CAAC,EAAE,CAAC;AAAE,kBAAE,EAAE;AAAE,eAAC,CAAC,KAAG,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,gBAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,mBAAG,IAAE,KAAG,IAAI,KAAK,GAAE,EAAE,IAAE,CAAC,GAAE,EAAE,CAAC,CAAC,GAAE,UAAW,CAAC,KAAG,IAAE,EAAE,SAAO,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,GAAE,EAAE,IAAE,CAAC,CAAC,GAAE,UAAW,IAAI,KAAK,GAAE,EAAE,CAAC,GAAE,KAAG,IAAI,GAAE,QAAM,IAAI,GAAE,IAAI;AAAE,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE,GAAG,IAAG,KAAI,IAAG,KAAK,GAAE,IAAG,CAAC;AAAE,mBAAK,IAAE,IAAI,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,CAAC,EAAE,CAAC;AAAE,mBAAK,KAAG,EAAE,EAAE,EAAE;AAAA,YAAM;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,qBAAO,GAAG,GAAE,EAAE,GAAE,IAAE,IAAI,GAAG,GAAE,IAAI,IAAG,IAAI,GAAE,OAAM,IAAI,GAAE,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iFAAgF,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0EAAyE,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4EAA2E,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4CAA2C,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE,UAAQ;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,gBAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAE;AAAE,mBAAK,EAAE,CAAC,IAAE,GAAG,IAAG,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,MAAK,EAAC,GAAE,KAAI,EAAE,CAAC,EAAE,QAAO,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,CAAC,EAAE,CAAC;AAAE,gBAAE,IAAE;AAAE,iBAAG,KAAK,EAAE,CAAC,GAAE,GAAE,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,8BAA4B,KAAK,IAAE,6BAA2B,KAAK,IAAE,uBAAqB,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE;AAAE,kBAAE,KAAK;AAAE,sBAAO,EAAE,GAAE;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE;AAAE,sBAAE;AAAE,uBAAIA,MAAE,IAAI,IAAI,EAAE,CAAC,GAAEA,IAAE,IAAEA,IAAE,EAAE,EAAE,UAAQ;AAAC,oBAAAS,MAAE,GAAG,IAAIT,GAAC,GAAE,EAAE;AAAE,wBAAGS,IAAE,EAAE,EAAE,UAAQ,GAAE;AAAC,wBAAE;AAAE,sBAAAA,IAAE,MAAI,IAAI,GAAE,QAAM,EAAE;AAAA,oBAAC;AAAA,kBAAC;AAAC,sBAAE,IAAE;AAAE,sBAAE,IAAE;AAAE,uBAAI,IAAE,IAAI,IAAG,IAAI,GAAE,IAAI,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAAA,MAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,wBAAGA,IAAE,MAAI,IAAI,GAAE,MAAK;AAAC,wBAAEA,IAAE,CAAC,IAAE;AAAE,wBAAE;AAAA,oBAAC,OAAK;AAAC,wBAAEA,IAAE,CAAC,IAAE;AAAE,wBAAE;AAAA,oBAAC;AAAA,kBAAC;AAAC,yBAAO;AAAA,gBAAC;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE;AAAE,uBAAI,IAAE,IAAI,IAAG,IAAI,GAAE,IAAI,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAAA,MAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,sBAAE;AAAE,sBAAEA,IAAE,CAAC,IAAE,IAAE;AAAA,kBAAC;AAAC,yBAAO;AAAA,gBAAC;AAAA,gBAAC;AAAQ,wBAAM,IAAI,IAAI,KAAG;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAG,GAAE;AAAC,oBAAI,MAAK,CAAC;AAAA,cAAC,OAAK;AAAC,oBAAI,MAAK,GAAE,CAAC;AAAE,oBAAI,MAAK,GAAE,CAAC;AAAA,cAAC;AAAC,kBAAG,EAAE,EAAE,SAAO,GAAE;AAAC,oBAAI,GAAG,IAAI,KAAK,IAAI,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,CAAC,GAAE,EAAE,EAAE,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,IAAE,IAAI,GAAE,KAAK,GAAE,IAAI,KAAG,IAAI,GAAE,IAAI,GAAE,KAAK,CAAC;AAAG,oBAAI,GAAG,IAAI,KAAK,IAAI,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,CAAC,GAAE,EAAE,EAAE,GAAE,GAAG,CAAC,CAAC,KAAG,IAAI,KAAK,GAAE,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+CAA8C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,qBAAO,GAAG,GAAE,EAAE,GAAE,IAAE,IAAI,GAAG,GAAE,IAAI,IAAG,IAAI,GAAE,OAAM,IAAI,GAAE,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,GAAG,GAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,KAAK;AAAE,sBAAO,EAAE,GAAE;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE;AAAE,sBAAE;AAAE,uBAAI,IAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAAA,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,wBAAGA,IAAE,EAAE,EAAE,UAAQ,GAAE;AAAC,wBAAE;AAAE,sBAAAA,IAAE,MAAI,IAAI,GAAE,QAAM,EAAE;AAAA,oBAAC;AAAA,kBAAC;AAAC,sBAAE,KAAG,IAAE;AAAG,kBAAAS,MAAE,IAAE,IAAE;AAAE,sBAAE,IAAE,IAAE;AAAE,uBAAI,IAAE,IAAI,IAAG,IAAI,GAAE,IAAI,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAAT,MAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,wBAAGA,IAAE,MAAI,IAAI,GAAE,MAAK;AAAC,wBAAEA,IAAE,CAAC,IAAES;AAAE,sBAAAA,OAAG;AAAA,oBAAC,OAAK;AAAC,wBAAET,IAAE,CAAC,IAAE;AAAE,2BAAG;AAAA,oBAAC;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE;AAAE,uBAAI,IAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAAA,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAAA,IAAE,EAAE,EAAE,UAAQ,KAAG,EAAE;AAAA,kBAAC;AAAC,sBAAE,KAAG,IAAE;AAAG,sBAAE,IAAE;AAAE,uBAAI,IAAE,IAAI,IAAG,IAAI,GAAE,IAAI,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAAA,MAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,sBAAEA,IAAE,CAAC,IAAE;AAAE,yBAAG;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC;AAAQ,wBAAM,IAAI,IAAI,IAAI,wBAAwB,CAAC;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAG,KAAI,IAAG,KAAK,GAAE,IAAG,CAAC;AAAE,mBAAK,IAAE,IAAI,IAAI,CAAC;AAAE,mBAAK,IAAE,IAAI,IAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAIS;AAAE,cAAAA,MAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,gBAAE,KAAGA,OAAG,EAAE,EAAE,EAAE,KAAG,EAAE,EAAE,EAAE,KAAG,EAAE,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,CAAC,EAAE,CAAC;AAAE,mBAAK,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC,IAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,CAAC,GAAE,EAAE;AAAE,gBAAE,IAAE,KAAK;AAAI,gBAAE,EAAE,EAAE,SAAO,EAAE,EAAE,EAAE,SAAO,MAAI,EAAE,MAAI,IAAI,GAAE,OAAM,KAAK,EAAE,CAAC,IAAE,OAAM,EAAE,KAAG,OAAK,IAAE,MAAI,KAAK,EAAE,IAAE,CAAC,IAAE;AAAA,YAAM;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAI;AAAE,kBAAI,KAAK,IAAG,IAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kDAAiD,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE,IAAI,IAAI,GAAE,IAAI,IAAE,MAAI;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE,IAAI,IAAI,GAAE,IAAI,IAAE,MAAI;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,oBAAE,GAAG,GAAE,GAAG;AAAE,uBAAO,KAAK,KAAG,EAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,OAAK,GAAG,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAG,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE,IAAI,IAAI,GAAE,IAAI,IAAE,MAAI;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG,GAAE,EAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG,GAAE,EAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,EAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,EAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAG,GAAE,EAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,SAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,MAAK,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE,IAAI,IAAI,GAAE,IAAI,IAAE,MAAI;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE;AAAG,mBAAK,MAAI,IAAI,GAAE,OAAM,KAAG,MAAK,KAAK,KAAG,QAAM,KAAG;AAAK,mBAAK,MAAI,IAAI,GAAE,OAAM,KAAG,MAAK,KAAK,KAAG,MAAK,KAAG,OAAO,KAAG;AAAY,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,8BAA6B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,8BAA6B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAG,GAAE,EAAE,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE,IAAI,IAAI,GAAE,IAAI,IAAE,MAAI;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8CAA6C,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,KAAK,EAAE,MAAI,IAAI,GAAE,OAAK,MAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,KAAG;AAAE,kBAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAG;AAAE,kBAAG,EAAE,KAAG,IAAG;AAAC,uBAAO;AAAA,cAAC;AAAC,kBAAE;AAAE,kBAAG,KAAK,EAAE,MAAI,IAAI,GAAE,MAAK;AAAC,sBAAI,IAAE,IAAI,MAAK,GAAE,IAAI;AAAG,iBAAC,MAAM,CAAC,KAAG,CAAC,SAAS,CAAC,KAAG,MAAI,IAAE,IAAI,MAAK,GAAE,KAAK;AAAA,cAAE,OAAK;AAAC,sBAAI,IAAE,IAAI,MAAK,GAAE,IAAI;AAAG,iBAAC,MAAM,CAAC,KAAG,CAAC,SAAS,CAAC,KAAG,MAAI,IAAE,IAAI,MAAK,GAAE,KAAK;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,qBAAM,KAAK,EAAE,KAAG,GAAE;AAAC,oBAAE,GAAG,IAAI,KAAK,CAAC,GAAE,GAAG;AAAE,oBAAE,IAAI,MAAK,CAAC;AAAE,oBAAG,CAAC,EAAE,GAAE;AAAC;AAAA,gBAAQ;AAAC,oBAAE,EAAE;AAAE,oBAAE,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAAE,oBAAG,CAAC,KAAG,CAAC,IAAI,CAAC,KAAG,EAAE,EAAE,EAAE,KAAG,EAAE,EAAE,EAAE,GAAE;AAAC;AAAA,gBAAQ;AAAC,oBAAE,IAAI,MAAK,CAAC;AAAE,qBAAG,IAAI,KAAK,GAAE,CAAC;AAAA,cAAC;AAAC,qBAAM,KAAK,EAAE,EAAE,EAAE,UAAQ,GAAE;AAAC,oBAAI,MAAK,GAAG,IAAI,KAAK,CAAC,GAAE,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE,MAAI,IAAI,GAAE;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,oBAAE,GAAG,GAAE,GAAG;AAAE,uBAAO,KAAK,KAAG,EAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI,IAAI,GAAG;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC;AAAE,qBAAM,EAAE,IAAE,EAAE,EAAE,EAAE,QAAO;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAE,IAAI,EAAE,CAAC;AAAE,qBAAG,SAAO,IAAE,MAAI,IAAI,EAAE,CAAC;AAAG,kBAAE,KAAG,KAAG;AAAE,kBAAE,IAAE,EAAE,EAAE,EAAE,WAAS,EAAE,KAAG,KAAI;AAAA,cAAE;AAAC,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAI,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE,OAAK,KAAK,IAAE,OAAK,GAAG,KAAK,CAAC,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,6CAA4C,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE;AAAE,kBAAG,CAAC,CAAC,EAAE,KAAG,CAAC,EAAE,GAAE;AAAC;AAAA,cAAM;AAAC,kBAAE,IAAE,EAAE,IAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,gBAAAV,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAE,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAACA,IAAE,EAAE,GAAEA,IAAE,GAAEA,IAAE,CAAC,CAAC,CAAC,EAAE;AAAE,qBAAI,IAAE,IAAI,IAAIA,IAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,kBAAAS,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAG,CAAC,IAAIA,GAAC,GAAE;AAAC,oBAAAC,MAAED,IAAE;AAAE,wBAAE,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAACC,IAAE,EAAE,GAAEA,IAAE,GAAEA,IAAE,CAAC,CAAC,CAAC,EAAE;AAAE,wBAAG,KAAK,KAAK,IAAI,IAAE,CAAC,IAAE,KAAI;AAAC,0BAAE;AAAE,0BAAE;AAAE,0BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,0BAAID,IAAE,GAAE,CAAC;AAAE,0BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAE,0BAAE,EAAE;AAAE,0BAAG,GAAE;AAAC,4BAAE,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAAE,4BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,4BAAIA,IAAE,GAAE,CAAC;AAAE,4BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAE,4BAAE,IAAE,EAAE,IAAE;AAAE,4BAAE;AAAE,4BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,4BAAIA,IAAE,GAAE,CAAC;AAAE,4BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAA,sBAAC;AAAC,0BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,0BAAIA,IAAE,GAAE,CAAC;AAAE,0BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,EAAE,EAAE,IAAE,EAAE,EAAE,IAAE,EAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE;AAAE,kBAAG,CAAC,CAAC,EAAE,KAAG,CAAC,EAAE,GAAE;AAAC;AAAA,cAAM;AAAC,kBAAE,IAAE,EAAE,IAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,gBAAAV,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAE,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAACA,IAAE,EAAE,GAAEA,IAAE,GAAEA,IAAE,CAAC,CAAC,CAAC,EAAE;AAAE,qBAAI,IAAE,IAAI,IAAIA,IAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,kBAAAS,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAG,CAAC,IAAIA,GAAC,GAAE;AAAC,oBAAAC,MAAED,IAAE;AAAE,wBAAE,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAACC,IAAE,EAAE,GAAEA,IAAE,GAAEA,IAAE,CAAC,CAAC,CAAC,EAAE;AAAE,wBAAG,KAAK,KAAK,IAAI,IAAE,CAAC,IAAE,KAAI;AAAC,0BAAE;AAAE,0BAAE;AAAE,0BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,0BAAID,IAAE,GAAE,CAAC;AAAE,0BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAE,0BAAE,EAAE;AAAE,0BAAG,GAAE;AAAC,4BAAE,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAAE,4BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,4BAAIA,IAAE,GAAE,CAAC;AAAE,4BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAE,4BAAE,IAAE,EAAE,IAAE;AAAE,4BAAE;AAAE,4BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,4BAAIA,IAAE,GAAE,CAAC;AAAE,4BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAA,sBAAC;AAAC,0BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,0BAAIA,IAAE,GAAE,CAAC;AAAE,0BAAI,MAAKA,KAAE,GAAE,GAAE,KAAK;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,EAAE,EAAE,IAAE,EAAE,EAAE,IAAE,EAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE;AAAE,kBAAG,CAAC,CAAC,EAAE,KAAG,CAAC,EAAE,GAAE;AAAC;AAAA,cAAM;AAAC,kBAAE,IAAE,EAAE,IAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,EAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,gBAAAV,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAE,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAACA,IAAE,EAAE,GAAEA,IAAE,GAAEA,IAAE,CAAC,CAAC,CAAC,EAAE;AAAE,qBAAI,IAAE,IAAI,IAAIA,IAAE,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,kBAAAS,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAG,CAAC,IAAIA,GAAC,GAAE;AAAC,oBAAAC,MAAED,IAAE;AAAE,wBAAE,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAACC,IAAE,EAAE,GAAEA,IAAE,GAAEA,IAAE,CAAC,CAAC,CAAC,EAAE;AAAE,wBAAG,KAAK,KAAK,IAAI,IAAE,CAAC,IAAE,KAAI;AAAC,0BAAE;AAAE,0BAAE;AAAE,0BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,0BAAID,IAAE,GAAE,CAAC;AAAE,0BAAI,MAAKA,KAAE,GAAE,GAAE,IAAI;AAAE,0BAAE,EAAE;AAAE,0BAAG,GAAE;AAAC,4BAAE,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAAE,4BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,4BAAIA,IAAE,GAAE,CAAC;AAAE,4BAAI,MAAKA,KAAE,GAAE,GAAE,IAAI;AAAE,4BAAE,IAAE,EAAE,IAAE;AAAE,4BAAE;AAAE,4BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,4BAAIA,IAAE,GAAE,CAAC;AAAE,4BAAI,MAAKA,KAAE,GAAE,GAAE,IAAI;AAAA,sBAAC;AAAC,0BAAE,IAAI,IAAI,GAAE,CAAC;AAAE,0BAAIA,IAAE,GAAE,CAAC;AAAE,0BAAI,MAAKA,KAAE,GAAE,GAAE,IAAI;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,EAAE,EAAE,IAAE,EAAE,EAAE,IAAE,EAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE,SAAO,KAAK,IAAE,OAAK,KAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kCAAiC,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE,IAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAS,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET;AAAE,kBAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,KAAG,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,IAAI,IAAI,CAAC,EAAE,GAAE,EAAE;AAAE,cAAAS,OAAG,IAAE,IAAI,OAAI,IAAI,GAAE,CAAC,GAAE,IAAI,IAAG,IAAI,GAAE,MAAK,CAAC,GAAET,MAAE,IAAI,OAAI,IAAI,GAAE,GAAEA,GAAC,GAAE,IAAI,GAAE,GAAEA,GAAC,GAAE;AAAG,kBAAE,IAAI,KAAK,GAAES,GAAC;AAAE,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,oBAAI,KAAK,GAAE,GAAE,IAAI,GAAE,IAAE,EAAE,EAAE,MAAM,CAAC;AAAA,cAAC;AAAC,cAAAA,MAAE,IAAI,CAAC;AAAE,kBAAIA,GAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,CAAC,KAAK,IAAE,IAAI,KAAK,CAAC,IAAE,OAAK,IAAI,KAAK,CAAC,IAAE,OAAK,GAAG,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,SAAQ,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAK,mBAAI,IAAE,IAAI,KAAK,GAAE,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAI,EAAE,KAAG,QAAM,EAAE,EAAE,UAAQ,IAAE,OAAK,EAAE,IAAE,OAAK,EAAE,KAAG;AAAA,cAAI;AAAC,mBAAI,IAAE,IAAI,KAAK,GAAE,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,sBAAI,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,EAAE,IAAE,IAAI,EAAE,CAAC,IAAE,OAAK,IAAI,EAAE,CAAC,IAAE,OAAK,GAAG,CAAC,KAAG;AAAA,cAAI;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAS,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAS,GAAG;AAAE,gBAAI,IAAG,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,SAAQ,EAAE;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,IAAI,IAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,WAAU,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,KAAK,CAAC,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI;AAAQ,wBAAM,IAAI,IAAI,IAAI,OAAK,KAAK,KAAG,OAAK,KAAK,IAAE,KAAG,KAAK,EAAE,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,KAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAgB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,oBAAoB,GAAE,qDAAqD,GAAE,GAAG,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,2DAA2D,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,wCAAuC,gBAAe,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,sCAAqC,eAAc,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,sCAAqC,cAAa,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,sCAAqC,cAAa,IAAI;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,IAAI,MAAK,CAAC;AAAE,kBAAI,GAAE,iBAAgB,EAAE,EAAE,MAAM;AAAE,kBAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,KAAG,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,IAAI,IAAI,CAAC,EAAE,GAAE,EAAE;AAAE,kBAAE,IAAI,CAAC;AAAE,kBAAI,IAAG,IAAI,GAAE,MAAK,CAAC;AAAE,kBAAG,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,gCAAgC,CAAC;AAAA,cAAC;AAAC,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,mBAAG,MAAI,IAAE,IAAI,CAAC;AAAG,kBAAI,GAAE,KAAI,CAAC;AAAE,mBAAIA,MAAE,IAAI,IAAI,IAAI,MAAK,CAAC,CAAC,GAAEA,IAAE,IAAEA,IAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAIA,GAAC,GAAE,EAAE;AAAE,kBAAE,GAAG,GAAE,IAAI,GAAE,CAAC,CAAC;AAAA,cAAC;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI;AAAA,gBAAI;AAAQ,wBAAM,IAAI,IAAI,IAAI,OAAK,KAAK,KAAG,OAAK,KAAK,IAAE,KAAG,KAAK,EAAE,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,KAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE;AAAE,mBAAK,IAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE;AAAE,kBAAI,MAAK,KAAK,CAAC;AAAE,mBAAK,IAAE,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,CAAC;AAAE,cAAAA,MAAE,GAAG,IAAI,GAAE,GAAG,GAAE,EAAE;AAAE,eAAC,CAACA,OAAG,IAAI,MAAKA,IAAE,CAAC;AAAE,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,kBAAI,OAAM,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAE,IAAI,KAAK,CAAC;AAAE,eAAC,CAAC,KAAK,KAAG,KAAK,EAAE,GAAG,CAAC;AAAE,kBAAI,MAAK,CAAC;AAAE,cAAAS,MAAE,IAAI,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,mBAAI,IAAE,GAAE,IAAE,GAAE,KAAI;AAAC,qBAAI,IAAE,GAAE,IAAE,EAAE,EAAE,QAAO,KAAI;AAAC,sBAAE,IAAI,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,GAAE,EAAE,IAAI,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,CAAC,GAAE,EAAE,EAAE,CAAC,CAAC;AAAE,sBAAE,IAAE,EAAE,EAAE,SAAO,KAAG,IAAI,IAAE,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,IAAE,CAAC,GAAE,EAAE,MAAI,IAAI,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,CAAC,GAAE,EAAE;AAAG,sBAAE,KAAG,IAAE,GAAG,IAAI,GAAE,EAAE,EAAE,SAAO,CAAC,GAAE,EAAE,KAAG,IAAI,IAAE,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,IAAE,CAAC,GAAE,EAAE;AAAG,sBAAI,OAAM,IAAI,GAAE,EAAE,EAAE,MAAM,GAAE,GAAG,EAAE,EAAE,CAAC,GAAE,EAAE,GAAEA,MAAG,GAAE,GAAE,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE;AAAE,mBAAK,IAAE;AAAE,mBAAK,IAAE,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,CAAC;AAAE,kBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,EAAE;AAAE,eAAC,CAAC,KAAG,IAAI,MAAK,EAAE,CAAC;AAAE,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,kBAAI,OAAM,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAE,IAAI,CAAC;AAAE,eAAC,CAAC,KAAK,KAAG,KAAK,EAAE,GAAG,CAAC;AAAE,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA;AAAE,mBAAK,IAAE;AAAE,kBAAE;AAAE,cAAAA,MAAE,IAAI,CAAC;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAIA,GAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAE;AAAE,qBAAI,IAAE,GAAE,IAAEA,IAAE,EAAE,QAAO,KAAI;AAAC,sBAAI,MAAK,IAAG,IAAI,GAAEA,IAAE,EAAE,MAAM,GAAE,GAAGA,IAAE,EAAE,CAAC,GAAE,EAAE,EAAE,MAAI,KAAG;AAAA,gBAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,oBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,oBAAE,IAAI,GAAG,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,IAAG,CAAC,GAAE,EAAE,CAAC;AAAE,oBAAE,EAAE,IAAE,EAAE,IAAE;AAAE,oBAAE,EAAE,IAAE,EAAE,IAAE;AAAE,oBAAE,EAAE,IAAE,EAAE,IAAE;AAAE,oBAAE,EAAE,IAAE,EAAE,IAAE;AAAE,oBAAE,IAAI;AAAI,kBAAE,IAAE,IAAE;AAAE,kBAAE,IAAE,IAAE;AAAE,gBAAAS,MAAE,IAAI,IAAI,EAAE,GAAE,EAAE,CAAC;AAAE,oBAAIA,KAAE,EAAE,GAAE,EAAE,CAAC;AAAE,kBAAE,KAAGA,IAAE;AAAE,kBAAE,KAAGA,IAAE;AAAE,oBAAE,IAAE,EAAE;AAAE,oBAAE,IAAE,EAAE;AAAE,gBAAAT,MAAE,IAAI,IAAI,EAAE,GAAE,EAAE,CAAC;AAAE,oBAAIA,KAAE,EAAE,GAAE,EAAE,CAAC;AAAE,kBAAE,KAAGA,IAAE;AAAE,kBAAE,KAAGA,IAAE;AAAE,oBAAE,IAAE,EAAE;AAAE,oBAAE,IAAE,EAAE;AAAE,oBAAE,IAAE;AAAE,oBAAE,IAAE;AAAE,qBAAG,KAAK,KAAK,KAAK,IAAE,IAAE,IAAE,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET,KAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,oBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,oBAAE,IAAI,GAAG,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,IAAG,CAAC,GAAE,EAAE,CAAC;AAAE,gBAAAA,MAAE,EAAE,IAAE,EAAE,IAAE;AAAE,oBAAE,EAAE,IAAE,EAAE,IAAE;AAAE,oBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,CAAC;AAAE,oBAAE,EAAE,IAAE,EAAE,IAAE,EAAE,IAAE;AAAE,gBAAAS,MAAE,EAAE,IAAE,EAAE,IAAE,EAAE;AAAE,oBAAET,MAAE;AAAE,oBAAE,IAAES;AAAE,qBAAG,KAAK,KAAK,KAAK,IAAE,IAAE,IAAE,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,oDAAmD,iCAAgC,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wBAAuB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,KAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,UAAU,GAAE,wHAAwH,GAAE,IAAI,CAAC,CAAC,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,QAAQ,GAAE,kFAAkF,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,YAAY,GAAE,kLAAkL,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,sBAAsB,GAAE,iIAAiI,GAAE,IAAI,CAAC,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,QAAQ,GAAE,qJAAqJ,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,wBAAwB,GAAE,wKAAwK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,0BAA0B,GAAE,uIAAuI,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,6BAA4B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,yCAAwC,eAAc,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,wCAAuC,0BAAyB,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,YAAW,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,CAAC,EAAE,GAAG,GAAE;AAAC,oBAAG,CAAC,KAAK,GAAE;AAAC,sBAAE,IAAI,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE,CAAC;AAAE,sBAAI,MAAK,CAAC;AAAA,gBAAC;AAAC,oBAAI,KAAK,GAAE,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAI,GAAE,qBAAoB,CAAC;AAAE,gBAAE,KAAG,EAAE,KAAG,CAAC,CAAC,KAAG,IAAI,GAAE,IAAI,CAAC,IAAG,IAAI,GAAE,IAAI;AAAE,kBAAE,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,mBAAG,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,IAAG,EAAE,IAAG,EAAE;AAAG,kBAAI,CAAC;AAAE,kBAAG,GAAE;AAAC,gBAAAA,MAAE,IAAI;AAAI,qBAAIV,MAAE,IAAI,IAAI,CAAC,GAAEA,IAAE,KAAGA,IAAE,EAAE,GAAG,KAAG;AAAC,kBAAAS,MAAE,GAAG,IAAIT,GAAC,GAAE,EAAE;AAAE,sBAAIS,KAAE,GAAG,MAAIC,IAAE,EAAEA,IAAE,EAAE,MAAM,IAAED,KAAE;AAAA,gBAAK;AAAC,qBAAI,IAAE,IAAI,IAAIC,GAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,kBAAAD,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAI,GAAEA,GAAC;AAAA,gBAAC;AAAC,oBAAI;AAAE,oBAAIC,KAAE,IAAI,KAAG;AAAE,qBAAI,IAAE,IAAI,IAAIA,GAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,kBAAAD,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAE,GAAG,IAAIA,KAAE,GAAG,GAAE,EAAE,EAAE;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,CAAC;AAAE,sBAAI,GAAE,GAAEA,GAAC;AAAA,gBAAC;AAAC,oBAAE;AAAE,qBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,kBAAAA,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAIA,KAAE,KAAI,IAAI,CAAC,CAAC;AAAE,oBAAE;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAE,IAAI,CAAC;AAAE,gBAAE,KAAG,EAAE,IAAE,EAAE;AAAE,gBAAE,KAAG,EAAE,IAAE,EAAE;AAAE,kBAAE,EAAE;AAAE,kBAAG,IAAE,KAAG,IAAE,EAAE,GAAE;AAAC,oBAAE,IAAI,IAAI,GAAE,GAAE,CAAC;AAAE,oBAAE,IAAI,GAAE,GAAE,GAAE,CAAC;AAAE,kBAAE,KAAG,EAAE,KAAG,CAAC,CAAC,KAAG,IAAI,GAAE,IAAI,CAAC,IAAG,IAAI,GAAE,IAAI;AAAA,cAAC,OAAK;AAAC,oBAAE,IAAI,IAAI,GAAE,GAAE,IAAG,IAAI,GAAE,IAAI;AAAA,cAAC;AAAC,gBAAE,KAAG,EAAE,IAAE,EAAE;AAAE,gBAAE,KAAG,EAAE,IAAE,EAAE;AAAE,kBAAG,CAAC,GAAE;AAAC,oBAAI,CAAC;AAAE,oBAAE,IAAI,IAAI,GAAE,GAAE,GAAE,GAAE,CAAC;AAAE,oBAAE,KAAK,KAAK,IAAI,EAAE,GAAE,EAAE,CAAC;AAAE,oBAAE,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,cAAC;AAAC,kBAAI,GAAE,CAAC;AAAE,kBAAI,GAAE,EAAE,KAAG,EAAE,IAAE,EAAE,IAAG,EAAE,KAAG,EAAE,IAAE,EAAE,IAAG,OAAM,IAAI;AAAE,kBAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC,KAAG,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,IAAI,IAAI,CAAC,EAAE,GAAE,EAAE;AAAE,gBAAE,KAAG,EAAE,KAAG,CAAC,CAAC,KAAG,IAAI,GAAE,IAAI,CAAC,IAAG,IAAI,GAAE,IAAI;AAAE,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,qBAAoB,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAqB;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE,GAAET;AAAE,cAAAA,MAAE,IAAI;AAAI,kBAAE;AAAI,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,gBAAAS,MAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,oBAAE,KAAK,KAAK,IAAI,IAAGA,IAAE,KAAG,EAAE,IAAE,EAAE,OAAKA,IAAE,KAAG,EAAE,IAAE,EAAE,GAAG;AAAA,cAAC;AAAC,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,iBAAC,EAAE,KAAG,EAAE,IAAE,EAAE,OAAK,EAAE,KAAG,EAAE,IAAE,EAAE,OAAK,MAAIT,IAAE,EAAEA,IAAE,EAAE,MAAM,IAAE,GAAE;AAAA,cAAK;AAAC,qBAAOA;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAES,KAAE,GAAET;AAAE,kBAAE,IAAI;AAAI,cAAAA,MAAE;AAAI,mBAAIS,MAAE,IAAI,IAAI,CAAC,GAAEA,IAAE,IAAEA,IAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAIA,GAAC,GAAE,GAAG;AAAE,gBAAAT,MAAE,KAAK,KAAK,IAAIA,KAAE,KAAK,KAAK,KAAK,EAAE,KAAG,EAAE,IAAE,EAAE,OAAK,EAAE,KAAG,EAAE,IAAE,EAAE,MAAI,CAAC,CAAC;AAAA,cAAC;AAAC,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,qBAAK,KAAK,KAAK,EAAE,KAAG,EAAE,IAAE,EAAE,OAAK,EAAE,KAAG,EAAE,IAAE,EAAE,MAAI,CAAC,KAAGA,QAAI,EAAE,EAAE,EAAE,EAAE,MAAM,IAAE,GAAE;AAAA,cAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAES,KAAE,GAAET;AAAE,cAAAA,MAAE,IAAI;AAAI,kBAAE;AAAI,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,gBAAAS,MAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,oBAAE,KAAK,KAAK,IAAI,GAAE,IAAIA,IAAE,KAAG,EAAE,IAAE,EAAE,IAAGA,IAAE,KAAG,EAAE,IAAE,EAAE,IAAGA,IAAE,CAAC,CAAC;AAAA,cAAC;AAAC,mBAAI,IAAE,IAAI,IAAI,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,oBAAI,EAAE,KAAG,EAAE,IAAE,EAAE,IAAG,EAAE,KAAG,EAAE,IAAE,EAAE,IAAG,EAAE,CAAC,KAAG,MAAIT,IAAE,EAAEA,IAAE,EAAE,MAAM,IAAE,GAAE;AAAA,cAAK;AAAC,qBAAOA;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,mBAAmB,GAAE,8OAA8O,GAAE,GAAG,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,oBAAoB,GAAE,wiBAAwiB,IAAG,IAAI,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,kDAAkD,GAAE,yIAAyI,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,uBAAuB,GAAE,oLAAoL,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,yBAAyB,GAAE,gNAAgN,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,8MAA8M,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,kBAAkB,GAAE,uOAAuO,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,IAAI;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,yOAAyO,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yCAAwC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,mDAAkD,2BAA0B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAI,cAAE,IAAE;AAAI,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,SAAQ,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,YAAW,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,KAAI,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,WAAU,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,EAAE,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,KAAI,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE;AAAC,oBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,oBAAE,IAAI,IAAI,GAAE,CAAC;AAAE,oBAAG,GAAE;AAAC,kBAAAS,MAAE,GAAG,IAAI,EAAE,CAAC,GAAE,GAAG;AAAE,kBAAAA,IAAE,GAAG,GAAE,IAAI,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAI,GAAE,MAAK,IAAI,GAAE,IAAI;AAAE,kBAAI,GAAE,MAAK,IAAI,GAAE,IAAI;AAAE,kBAAI,GAAE,MAAK,IAAI,GAAE,IAAI;AAAE,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,EAAE;AAAE,kBAAI,GAAE,mBAAkB,CAAC;AAAE,kBAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC,KAAG;AAAyB,cAAAT,MAAE,IAAI;AAAI,kBAAE,IAAI,IAAIA,GAAC;AAAE,kBAAE,IAAI;AAAI,kBAAE,IAAI,GAAE,CAAC;AAAE,kBAAE;AAAK,kBAAE;AAAE,qBAAM,IAAE,KAAG,GAAE;AAAC,oBAAG,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC,GAAE;AAAC,kBAAAA,IAAE,EAAE,GAAG;AAAE,sBAAI,IAAI,IAAI,CAAC,GAAE,EAAE,CAAC;AAAE,sBAAGA,IAAE,EAAE,GAAG,KAAG,GAAE;AAAC;AAAA,kBAAK;AAAC,oBAAE,IAAEA;AAAA,gBAAC;AAAC,oBAAI,KAAK,CAAC;AAAE,oBAAI,KAAK,IAAG,IAAI,GAAE,OAAM,IAAI,GAAE,IAAI;AAAE,oBAAI,KAAK,GAAE,KAAI,EAAE,CAAC;AAAE,oBAAI,KAAK,GAAE,MAAK,IAAI,GAAE,IAAI;AAAE,qBAAK,IAAE,IAAI,KAAK,GAAE,CAAC;AAAE,qBAAI,IAAE,IAAI,IAAI,KAAK,CAAC,GAAE,EAAE,IAAE,EAAE,EAAE,EAAE,UAAQ;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAE,GAAG,GAAE,IAAI,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAC,oBAAI,GAAE,CAAC;AAAE,oBAAE,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAE;AAAA,cAAC;AAAC,kBAAI,GAAE,CAAC;AAAE,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8CAA6C,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,eAAc,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAES;AAAE,kBAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE;AAAC,gBAAAA,MAAE,GAAG,IAAI,GAAE,GAAG,CAAC;AAAE,oBAAE,IAAI,IAAI,GAAEA,GAAC;AAAE,oBAAG,GAAE;AAAC,sBAAE,GAAG,IAAI,EAAE,CAAC,GAAE,GAAG;AAAE,oBAAE,GAAG,GAAE,IAAI,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAE,IAAI;AAAI,kBAAE,IAAI,GAAE,CAAC;AAAE,kBAAI,KAAK,GAAE,GAAE,IAAI,GAAE,CAAC,CAAC;AAAE,kBAAI,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,mCAAkC,SAAQ,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,KAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iBAAgB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4BAA2B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iDAAgD,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,6BAA6B,GAAE,gIAAgI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,WAAW,GAAE,+BAA+B,GAAE,+GAA+G,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,mFAAmF,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,iCAAiC,GAAE,iEAAiE,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,0CAA0C,GAAE,2HAA2H,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kCAAkC,GAAE,yFAAyF,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,qBAAqB,GAAE,oDAAoD,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,sFAAsF,IAAG,IAAI,GAAE,MAAM,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,+CAA+C,GAAE,IAAI,GAAE,IAAI,EAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wDAAwD,GAAE,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,+BAA8B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,4BAA2B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE,IAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE,IAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,GAAG,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAI,GAAE,sCAAqC,CAAC;AAAE,gBAAE,IAAG,IAAE,EAAE,EAAE,IAAI,IAAE,GAAG,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE,EAAE;AAAG,kBAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,IAAG,IAAE,IAAI,EAAE,GAAE,IAAG,IAAE,EAAE,GAAE,EAAE,IAAI,IAAE,IAAI,EAAE,GAAE,GAAE,EAAE,CAAC;AAAG,kBAAI,MAAK,GAAE,CAAC;AAAE,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAI,GAAE,sCAAqC,CAAC;AAAE,kBAAE,IAAI,IAAI,CAAC;AAAE,gBAAE,IAAG,IAAE,EAAE,EAAE,IAAI,IAAE,GAAG,IAAI,EAAE,GAAE,CAAC,GAAE,EAAE,EAAE;AAAG,kBAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,IAAG,IAAE,IAAI,EAAE,GAAE,IAAG,IAAE,GAAE,EAAE,IAAI,IAAE,IAAI,EAAE,GAAE,GAAE,CAAC;AAAG,kBAAI,MAAK,GAAE,CAAC;AAAE,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE,IAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG,GAAE,IAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAsB;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,MAAK,CAAC;AAAE,kBAAI,GAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,EAAE,CAAC;AAAE,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAAgD;AAAE,gBAAI,KAAI,GAAE,EAAC,MAAK,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,MAAK,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,IAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,CAAC,CAAC,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,CAAC,CAAC,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,IAAG,KAAI,EAAC,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,EAAE;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAI,IAAI,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,uBAAqB,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,GAAG,KAAG,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAE,IAAI,CAAC,CAAC,KAAG,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,uBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,kBAAgB,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,yCAAwC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,WAAW;AAAE,gBAAI,IAAG,GAAE,EAAC,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,IAAE,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,EAAE,CAAC,IAAE,GAAG,GAAE,GAAG,KAAG,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,GAAG,KAAK,GAAE,CAAC,GAAE;AAAC,oBAAE,IAAI,KAAK,CAAC;AAAE,oBAAG,KAAG,MAAK;AAAC,wBAAM,IAAI,IAAI,IAAI,MAAI,KAAK,IAAE,oDAAqD,IAAI,EAAE,GAAE,GAAG,KAAG,GAAG,CAAC;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAC,OAAK;AAAC,uBAAO,KAAK;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,oBAAkB,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,EAAE;AAAE,gBAAI,IAAG,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,EAAE;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,2BAA0B,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI;AAAI,gBAAI;AAAI,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAG,QAAM,CAAC,GAAG,GAAE,GAAG,GAAE;AAAC,uBAAO;AAAA,cAAK;AAAC,kBAAE,GAAG,GAAE,GAAG;AAAE,qBAAO,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAAC,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,KAAK,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,YAAU,KAAK,IAAE,QAAM,KAAK,IAAE,QAAM,KAAK,IAAE,QAAM,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,GAAE,GAAE,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,KAAI,EAAC,GAAE,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC,IAAE,IAAI,IAAI,KAAK,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,qBAAM,IAAE,EAAE,UAAQ,KAAK,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,IAAG,GAAG,GAAE;AAAC,kBAAE;AAAA,cAAC;AAAC,kBAAE,EAAE;AAAO,qBAAM,IAAE,KAAG,KAAK,IAAI,IAAE,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,IAAE,CAAC,IAAG,GAAG,GAAE;AAAC,kBAAE;AAAA,cAAC;AAAC,kBAAG,KAAG,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,gDAAgD,CAAC;AAAA,cAAC;AAAC,kBAAE,IAAI,EAAE,OAAO,GAAE,IAAE,CAAC,GAAE,WAAW;AAAE,kBAAG,EAAE,UAAQ,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,uCAAqC,EAAE,SAAO,cAAc,CAAC;AAAA,cAAC;AAAC,kBAAG;AAAC,qBAAK,IAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAAE,qBAAK,IAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,sBAAE;AAAE,wBAAM,IAAI,IAAI,IAAI,MAAI,CAAC,CAAC;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,MAAI,KAAK,IAAE,MAAI,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,WAAU,CAAC;AAAE,gBAAI,IAAG,IAAG,EAAC,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,IAAI,GAAE,oCAAqC;AAAE,kBAAI,IAAI;AAAE,kBAAG;AAAC,oBAAE;AAAE,gBAAAA,MAAE;AAAE,oBAAE;AAAE,oBAAE;AAAE,uBAAM,IAAE,EAAE,QAAO;AAAC,sBAAG,EAAE,CAAC,KAAG,QAAM,IAAI,EAAE,CAAC,CAAC,EAAE,SAAO,GAAE;AAAC,oBAAAA,MAAE,KAAG,IAAG,IAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAE,IAAI,EAAE,CAAC,CAAC;AAAG,oBAAAA,MAAE,KAAGA,MAAE,KAAG,KAAG,IAAI,MAAK,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,sBAAEA;AAAA,kBAAC;AAAC,oBAAE;AAAA,gBAAC;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,sBAAE;AAAE,wBAAM,IAAI,IAAI,IAAI,qEAAmE,CAAC,CAAC;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,IAAI,IAAI,GAAG;AAAE,kBAAE,IAAI,MAAK,CAAC;AAAE,qBAAM,EAAE,KAAG,EAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,CAAC;AAAE,oBAAI,GAAE,EAAE,IAAE,MAAI,EAAE,CAAC;AAAE,kBAAE,KAAG,EAAE,EAAE,MAAI,EAAE,KAAG,MAAK;AAAA,cAAE;AAAC,sBAAQ,EAAE,KAAG,KAAI,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,EAAE;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,aAAY,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,kBAAkB,GAAE,qCAAqC,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,2BAA2B,GAAE,mDAAmD,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,WAAW,GAAE,0GAA0G,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,mFAAmF,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,aAAa,GAAE,kQAAkQ,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,mBAAmB,GAAE,8NAA8N,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,YAAY,GAAE,0DAA0D,IAAG,IAAI,GAAE,MAAM,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,gFAAgF,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,4SAA4S,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,iEAAiE,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,oBAAoB,GAAE,8pBAA8pB,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,SAAS,GAAE,iMAAiM,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,aAAa,GAAE,oRAAoR,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,oBAAoB,GAAE,iFAAiF,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,wBAAwB,GAAE,yZAAyZ,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,kBAAkB,GAAE,6DAA6D,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,UAAU,GAAE,yHAAyH,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,UAAU,GAAE,2HAA2H,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,oBAAoB,GAAE,6KAA6K,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,+BAA+B,GAAE,kEAAkE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,iBAAiB,GAAE,gYAAgY,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,aAAa,GAAE,qPAAqP,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,WAAW,GAAE,oDAAoD,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,eAAe,GAAE,sEAAsE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,SAAS,GAAE,0RAA0R,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,WAAW,GAAE,oZAAoZ,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,4eAA4e,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,SAAS,GAAE,qFAAqF,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,uBAAuB,GAAE,0MAA0M,GAAE,IAAI,GAAG,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,kBAAkB,GAAE,wIAAwI,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,wBAAwB,GAAE,mDAAmD,GAAE,IAAI,GAAI,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,wBAAwB,GAAE,mDAAmD,GAAE,IAAI,GAAG,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,cAAc,GAAE,uEAAuE,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,gBAAgB,GAAE,2MAA2M,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,kBAAkB,GAAE,gNAAgN,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,EAAE,GAAE,aAAa,GAAE,6EAA6E,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,KAAK,GAAE,iBAAiB,GAAE,uRAAuR,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yBAAyB,GAAE,mMAAmM,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sBAAsB,GAAE,gLAAgL,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,4IAA4I,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,cAAc,GAAE,mMAAmM,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,iLAAiL,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,mBAAmB,GAAE,kDAAkD,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,eAAe,GAAE,yFAAyF,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,gLAAgL,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,2CAA2C,GAAE,kLAAkL,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,yCAAyC,GAAE,gLAAgL,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,cAAc,GAAE,8DAA8D,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wBAAwB,GAAE,4DAA4D,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,cAAc,GAAE,kDAAkD,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,2IAA2I,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,KAAI,KAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,oTAAoT,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kBAAkB,GAAE,6NAA6N,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,KAAI,KAAI,GAAG;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,qBAAqB,GAAE,+eAA+e,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,kEAAkE,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sBAAsB,GAAE,oGAAoG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,gBAAgB,GAAE,iGAAiG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wBAAwB,GAAE,kGAAkG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,wBAAwB,GAAE,kGAAkG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,iGAAiG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,iGAAiG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,uBAAuB,GAAE,iKAAiK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,mBAAmB,GAAE,wOAAwO,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,mBAAmB,GAAE,kDAAkD,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kBAAkB,GAAE,qJAAqJ,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sBAAsB,GAAE,2CAA2C,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,yOAAyO,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,MAAM,GAAE,WAAW,GAAE,6BAA6B,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,MAAM,GAAE,WAAW,GAAE,6BAA6B,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,sEAAsE,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,YAAY,GAAE,qUAAqU,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,WAAW,GAAE,sLAAsL,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,oBAAoB,GAAE,qkBAAqkB,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,sBAAsB,GAAE,qGAAqG,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,0BAA0B,GAAE,uDAAuD,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,0XAA0X,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,4BAA4B,GAAE,uPAAuP,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,GAAG,GAAE,kBAAkB,GAAE,iFAAiF,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,MAAM,GAAE,gBAAgB,GAAE,uIAAuI,GAAE,CAAC,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,MAAM,GAAE,WAAW,GAAE,wIAAwI,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,SAAS,GAAE,uZAAuZ,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,4BAA4B,GAAE,YAAY,GAAE,ohBAAqhB,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,OAAO,GAAE,qLAAqL,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,wBAAwB,GAAE,QAAQ,GAAE,+PAA+P,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,MAAM,GAAE,8KAA8K,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,wBAAwB,GAAE,QAAQ,GAAE,8IAA8I,CAAC,CAAC;AAAE,kBAAI,GAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,GAAG,GAAE,QAAQ,GAAE,yFAAyF,CAAC,CAAC;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAE,mBAAK,IAAI,OAAI,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,KAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,eAAc,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,YAAW,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,qBAAoB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,aAAY,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,IAAG,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAG,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iBAAgB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,IAAG,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mBAAkB,IAAG,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,IAAG,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,YAAW,IAAG,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,OAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,eAAc,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,EAAC,MAAK,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAG,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE;AAAE,kBAAI,GAAE,cAAa,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,sBAAO,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE;AAAA,gBAAC,KAAK;AAAE,kBAAAS,OAAG,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,IAAG,EAAE,IAAG,EAAE,EAAE,GAAE,IAAI,GAAE,IAAI,GAAE,IAAI,IAAI,CAAC,CAAC,GAAE;AAAG,kBAAAT,MAAE,IAAI,CAAC;AAAE,sBAAE,GAAG,IAAI,GAAE,GAAG,CAAC;AAAE,mBAAC,KAAG,SAAO,IAAI,CAAC,GAAE,MAAI,OAAK,IAAE;AAAK,sBAAE,IAAIS,KAAE,GAAE,GAAET,IAAE,GAAEA,IAAE,GAAE,IAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAI,GAAE,EAAE,GAAE,EAAE,GAAE,OAAM,IAAI;AAAE;AAAA,gBAAM;AAAQ,sBAAI,GAAE,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE,IAAI,KAAK,CAAC,IAAE,GAAG,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iCAAgC,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,GAAG;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,CAAC,GAAG,GAAE,GAAG,KAAG,KAAK,IAAI,GAAE,KAAI,GAAG,GAAE,GAAG,IAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,EAAE;AAAE,kBAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qDAAoD,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,oBAAE,GAAG,GAAE,GAAG;AAAE,uBAAO,KAAK,KAAG,EAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE;AAAA,YAAc;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAI,GAAE,gBAAe,CAAC;AAAE,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAE,kBAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,IAAG,EAAE,IAAG,EAAE,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,CAAC;AAAE,oBAAG,GAAE;AAAC,sBAAI,GAAE,EAAE,GAAE,EAAE,CAAC;AAAE,sBAAG,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG,EAAE,IAAI,IAAI,GAAE,IAAI,GAAE;AAAC,wBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,CAAC;AAAE,sBAAE,IAAE,KAAG,EAAE,IAAE,KAAG,IAAI,GAAE,EAAE,GAAE,EAAE,GAAE,MAAK,IAAI;AAAA,kBAAC;AAAA,gBAAC;AAAC,oBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,IAAE,EAAE,CAAC;AAAE,oBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,IAAE,EAAE,CAAC;AAAE,qBAAI,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,sBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,CAAC;AAAE,mBAAC,CAAC,KAAG,IAAI,GAAE,EAAE,GAAE,EAAE,CAAC;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,IAAE,EAAE,IAAE,EAAE,CAAC;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,IAAE,EAAE,IAAE,EAAE,CAAC;AAAA,gBAAC;AAAC,qBAAI,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,sBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,CAAC;AAAE,mBAAC,CAAC,KAAG,IAAI,GAAE,EAAE,GAAE,EAAE,CAAC;AAAE,sBAAE,EAAE,IAAE,EAAE;AAAE,sBAAE,EAAE,IAAE,EAAE;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,IAAE,EAAE,CAAC;AAAE,uBAAIV,MAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,EAAE,GAAEA,IAAE,KAAGA,IAAE,EAAE,GAAG,KAAG;AAAC,wBAAE,GAAG,IAAIA,GAAC,GAAE,GAAG;AAAE,wBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,CAAC;AAAE,qBAAC,CAAC,KAAG,IAAI,GAAE,EAAE,GAAE,EAAE,CAAC;AAAE,wBAAE,KAAK,KAAK,IAAI,GAAE,IAAE,EAAE,IAAE,EAAE,CAAC;AAAE,wBAAE,KAAK,KAAK,IAAI,GAAE,IAAE,EAAE,IAAE,EAAE,CAAC;AAAA,kBAAC;AAAA,gBAAC;AAAC,qBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,sBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,sBAAE,IAAI,CAAC;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,CAAC;AAAE,sBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,CAAC;AAAA,gBAAC;AAAC,qBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,sBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,sBAAG,IAAI,IAAI,CAAC,CAAC,KAAG,GAAE;AAAC,wBAAE,IAAI,CAAC;AAAE,wBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,CAAC;AAAE,wBAAE,KAAK,KAAK,IAAI,GAAE,EAAE,CAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAG,MAAI,IAAI,GAAE,MAAK;AAAC,qBAAI,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,IAAG,EAAE,IAAG,EAAE,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,uBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,wBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,oBAAAS,MAAE,IAAI,CAAC;AAAE,oBAAAA,IAAE,KAAG,IAAE,IAAI,GAAE,KAAI,IAAI,IAAE,IAAI,GAAE,KAAIA,GAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAG,CAAC,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,GAAE;AAAC,oBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG;AAAE,oBAAE,IAAE,EAAE,IAAE,EAAE;AAAE,gBAAAC,MAAE,IAAE,EAAE,IAAE,EAAE;AAAE,oBAAI,GAAE,GAAEA,KAAE,MAAK,IAAI;AAAA,cAAC;AAAC,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAED,KAAE,GAAET,KAAE,GAAE;AAAE,kBAAG,CAAC,GAAE;AAAC;AAAA,cAAM;AAAC,kBAAG;AAAC,oBAAE,IAAI,GAAE,KAAK;AAAE,qBAAIS,MAAE,GAAE,IAAE,GAAET,MAAES,IAAE,QAAO,IAAET,KAAE,EAAE,GAAE;AAAC,sBAAES,IAAE,CAAC;AAAE,sBAAE,IAAI,GAAE,KAAK;AAAE,sBAAE,IAAI,IAAI,GAAE,EAAE,CAAC,CAAC;AAAE,sBAAG,CAAC,GAAE;AAAC,0BAAM,IAAI,IAAI,IAAI,wBAAsB,EAAE,CAAC,CAAC,CAAC;AAAA,kBAAC;AAAC,sBAAE,IAAI,GAAE,EAAE,CAAC,CAAC;AAAE,sBAAG,KAAG,MAAK;AAAC,0BAAM,IAAI,IAAI,IAAI,2BAAyB,EAAE,CAAC,CAAC,CAAC;AAAA,kBAAC;AAAC,uBAAG,QAAM,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,IAAI,KAAK,GAAE,CAAC,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,sBAAE;AAAE,wBAAM,IAAI,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,KAAK,CAAC,KAAK,KAAG,IAAI,GAAE,IAAI,GAAE,OAAK,KAAK,GAAG,GAAG,EAAE,GAAG,GAAE,IAAI,KAAG,GAAE,IAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,KAAI,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,IAAG,GAAE,EAAC,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAE,KAAK,KAAG,OAAK,EAAE,KAAG,OAAK,GAAG,KAAK,GAAE,EAAE,CAAC;AAAE,oBAAE,KAAK,KAAG,OAAK,EAAE,KAAG,OAAK,GAAG,KAAK,GAAE,EAAE,CAAC;AAAE,uBAAO,KAAG;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,KAAK,KAAG,OAAK,IAAE,GAAG,KAAK,CAAC;AAAE,kBAAE,IAAE;AAAI,kBAAE,IAAE;AAAO,kBAAE,KAAK,KAAG,OAAK,IAAE,GAAG,KAAK,CAAC;AAAE,kBAAE,IAAE;AAAI,kBAAE,IAAE;AAAO,qBAAO,IAAE,KAAG,KAAG,MAAI,IAAE,KAAG;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,OAAK,oBAAkB,KAAK,KAAG,OAAK,eAAa,IAAI,KAAK,CAAC,IAAE,MAAI,KAAK,KAAG,OAAK,UAAQ,IAAI,KAAK,CAAC,IAAE,WAAS,UAAQ,IAAI,KAAK,CAAC,IAAE,MAAI,IAAI,KAAK,CAAC,IAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,QAAO,EAAE;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,MAAI,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG,QAAM,KAAK,EAAE,KAAG;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,CAAC,KAAK,KAAG,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG,MAAK;AAAC,qBAAK,IAAE;AAAK,uBAAO,KAAK,EAAE;AAAA,cAAC,WAAS,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG,MAAK;AAAC,qBAAK,IAAE;AAAK,uBAAO,KAAK,EAAE;AAAA,cAAC;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,KAAG,KAAK,EAAE,KAAG,OAAM,KAAK,EAAE,IAAE,OAAM,KAAK,KAAG,KAAK,EAAE,KAAG,SAAO,KAAK,EAAE,IAAE;AAAM,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,UAAS,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,GAAE,GAAE,CAAC,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,KAAK,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,MAAI,KAAK,IAAE,MAAI,KAAK,IAAE,MAAI,KAAK,IAAE,MAAI,KAAK,IAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA;AAAE,kBAAI,GAAE,iBAAgB,CAAC;AAAE,mBAAI,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,IAAG,EAAE,IAAG,EAAE,GAAG,KAAG,GAAE;AAAC,oBAAI,CAAC;AAAE;AAAA,cAAM;AAAC,kBAAE,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE;AAAE,eAAC,CAAC,KAAG,EAAE,KAAG,IAAG,IAAE,IAAI,IAAI,EAAE,CAAC,IAAI,IAAE,IAAI;AAAK,kBAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,cAAAA,MAAE,IAAI,GAAG,IAAI,GAAE,GAAG,CAAC,CAAC;AAAE,kBAAE,GAAG,IAAI,GAAE,GAAG,GAAE,GAAG;AAAE,kBAAI,GAAE,GAAE,GAAEA,KAAE,CAAC;AAAE,kBAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,EAAE,GAAE,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE;AAAC,uBAAO,IAAI,KAAK,GAAE,GAAG;AAAA,cAAC;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,EAAE,GAAE,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,EAAE,CAAC;AAAE,kBAAI,KAAK,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,EAAE,CAAC;AAAE,kBAAI,KAAK,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,mDAAkD,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,qBAAK,IAAE,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;AAAE,qBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,GAAG;AAAE,sBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,mCAAkC,GAAG;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,CAAC,MAAI,IAAE,IAAI,QAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI,CAAC;AAAE,kBAAI,KAAK,IAAG,IAAI,GAAE,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,IAAG,IAAI,GAAE,MAAK,IAAI,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,qBAAK,IAAE,IAAI;AAAI,qBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,sBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,sBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,qBAAK,IAAE,IAAI;AAAI,qBAAI,IAAE,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,GAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAE,IAAI,IAAE,CAAC,GAAE,GAAG,CAAC,KAAG;AAAC,sBAAE,GAAG,GAAG,CAAC,GAAE,EAAE;AAAE,sBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAG,KAAK,GAAE,EAAE,CAAC,EAAE,KAAG,KAAG,IAAI,GAAG,GAAG,KAAK,GAAE,EAAE,EAAE,IAAI,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,OAAM,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,mCAAkC,GAAG;AAAE,gBAAI,MAAK,KAAI,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,qBAAK,IAAE,GAAG,GAAG,KAAK,GAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAAE,qBAAI,IAAE,IAAI,IAAI,GAAG,KAAK,GAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,qBAAK,IAAE,GAAG,GAAG,KAAK,GAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAAE,qBAAI,IAAE,IAAI,IAAI,GAAG,KAAK,GAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,GAAG,KAAK,GAAE,GAAG,EAAE,IAAI,IAAI,GAAE,IAAI,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,IAAI,GAAG,KAAK,GAAE,GAAG,CAAC;AAAE,mBAAI,IAAE,IAAI,IAAI,GAAG,KAAK,GAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,qBAAI,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,kBAAAA,MAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAG,IAAI,IAAIA,GAAC,GAAE,CAAC,GAAE;AAAC,2BAAO;AAAA,kBAAI,WAAS,IAAIA,GAAC,KAAG,KAAG,IAAI,GAAG,IAAI,IAAG,IAAI,GAAE,IAAI,CAAC,CAAC,GAAE;AAAC,2BAAO;AAAA,kBAAI;AAAA,gBAAC;AAAA,cAAC;AAAC,mBAAI,IAAE,IAAI,IAAI,GAAG,KAAK,GAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,qBAAI,IAAE,IAAI,KAAK,CAAC,EAAE,MAAI,EAAE,IAAE,IAAI,IAAI,IAAG,GAAE,GAAE,CAAC,IAAG,EAAE,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,sBAAG,IAAI,IAAI,CAAC,GAAE,CAAC,GAAE;AAAC,2BAAO;AAAA,kBAAI;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,mCAAkC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,SAAS;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAU;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAU;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAU;AAAE,gBAAI;AAAI,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,IAAG,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,GAAG;AAAE,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,GAAE;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,EAAE;AAAE,gBAAI,IAAG,IAAG,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,GAAG,IAAI,KAAK,GAAG,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,GAAE,KAAK,GAAG,EAAE,GAAG,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,oBAAE,KAAK,GAAG,EAAE,GAAG;AAAE,oBAAG,GAAE;AAAC,yBAAO;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,KAAK,GAAG,EAAE,GAAG;AAAE,eAAC,KAAG,KAAK,GAAG,EAAE,GAAG,KAAG,IAAI,GAAE,IAAE,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,GAAE,KAAG,OAAK,MAAI,IAAI,IAAI,MAAK,CAAC,EAAE;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG;AAAE,qBAAO,CAAC,IAAE,IAAI,KAAK,GAAG,GAAE,CAAC,IAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,KAAK,GAAG;AAAE,qBAAO,CAAC,IAAE,OAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,GAAG,IAAE,OAAK,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,KAAK,GAAG;AAAE,qBAAO,CAAC,CAAC,KAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,IAAI,KAAK,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,KAAK,GAAG,GAAE,IAAE,KAAK,GAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,IAAI,KAAK,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,KAAK,GAAG,GAAE,IAAE,KAAK,GAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,CAAC,KAAK,GAAG,KAAG,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,GAAG,IAAE,OAAK,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,KAAK,GAAG;AAAE,kBAAG,CAAC,CAAC,KAAG,CAAC,CAAC,GAAE;AAAC,oBAAE,IAAI,EAAE,GAAG,GAAE,MAAK,CAAC;AAAE,kBAAE,GAAG,IAAI;AAAA,cAAC;AAAC,kBAAE,KAAK,GAAG;AAAE,kBAAG,GAAE;AAAC,qBAAI,IAAI,MAAK,KAAK,GAAG,GAAE,KAAK,GAAG,CAAC,EAAE,KAAG,QAAM,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,mBAAC,CAAC,MAAI,CAAC,IAAE,EAAE,GAAG,IAAI,IAAE,CAAC,KAAG,EAAE,GAAG,IAAI;AAAA,gBAAE,OAAK;AAAC,uBAAG,IAAE,KAAK,GAAG,GAAE,KAAG,IAAE,KAAK,GAAG,CAAC,IAAE,KAAK,GAAG,EAAE,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAG,sBAAE,KAAK,GAAG,MAAK,IAAG,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,mBAAK,GAAG,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET;AAAE,kBAAE,KAAK,GAAG;AAAE,kBAAE,IAAI,GAAE,CAAC;AAAE,kBAAE,KAAK,GAAG;AAAE,kBAAG,KAAG,GAAE;AAAC,uBAAO,GAAG,GAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAK,KAAK,GAAG,GAAE,IAAE,CAAC;AAAA,cAAC,WAAS,KAAG,IAAG;AAAC,gBAAAS,MAAE,KAAK,IAAI,GAAE,MAAK,GAAE,CAAC;AAAE,oBAAGA,KAAE;AAAC,sBAAI;AAAE,qBAAGA,KAAE,EAAE,EAAE,GAAG,MAAIA,MAAE,IAAI,IAAI,KAAIA,GAAC,CAAC;AAAG,uBAAG,IAAE,KAAK,GAAGA,GAAC,GAAE,GAAG,KAAG,IAAE,KAAK,GAAG,GAAE,MAAK,IAAI,IAAE,IAAI,MAAKA,KAAE,IAAI,GAAE,GAAG;AAAG,kBAAAT,MAAES,IAAE,GAAG;AAAE,sBAAGT,MAAE,KAAGA,OAAG,IAAG;AAAC,2BAAO,GAAG,GAAG,GAAE,GAAG,EAAE,GAAG,GAAE,KAAK,GAAE,EAAE;AAAA,kBAAC;AAAA,gBAAC,OAAK;AAAC,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,gBAAC;AAAA,cAAC,WAAS,EAAE,GAAG,GAAE;AAAC,uBAAO,IAAE,KAAK,GAAG,CAAC,GAAE,GAAG,KAAG,IAAE,KAAK,GAAG,GAAE,OAAM,IAAI,IAAE,IAAI,MAAK,GAAE,KAAK,GAAE,EAAE;AAAA,cAAC;AAAC,kBAAE,IAAI,IAAI,MAAK,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,IAAI,GAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,EAAE;AAAE,gBAAI;AAAI,gBAAI,KAAI,IAAG,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI;AAAE,qBAAO,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI;AAAE,iBAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI;AAAE,iBAAG,GAAE,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,MAAK,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,KAAG,KAAG,KAAG,KAAK,KAAG;AAAI,mBAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,MAAI;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAI,GAAE,IAAE,IAAI,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,EAAE,CAAC,GAAE,KAAG,QAAM,MAAK,OAAK,IAAI,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,MAAK,GAAG,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,OAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,MAAK,CAAC,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,OAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,MAAK,EAAE,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,KAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,MAAK,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAQ,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAQ,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAI,MAAK,EAAC,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAE,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG,KAAG,QAAM;AAAA,gBAAK,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAI,IAAI,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAI,IAAI,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,GAAE,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG,KAAG,OAAK;AAAA,cAAM;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,EAAE,KAAK,EAAE,KAAG,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG;AAAA,gBAAI,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK,EAAE,KAAG;AAAA,cAAG;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,MAAK,EAAC,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,EAAE,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,KAAG;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAG,GAAE;AAAC,uBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAG,GAAE;AAAC,uBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,cAAC;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAG,GAAE;AAAC,uBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,cAAC;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAG,GAAE;AAAC,uBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,KAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG,IAAI,CAAC,MAAI,EAAE,KAAG,QAAM,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,KAAG,GAAG,CAAC;AAAA,cAAC;AAAC,mBAAI,IAAE,IAAI,CAAC,GAAE,IAAI,EAAE,CAAC,EAAE,KAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,GAAE,IAAG,IAAE,GAAG,IAAI,IAAI,EAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE,KAAK,GAAE,EAAE;AAAE,oBAAG,IAAI,CAAC,GAAE;AAAC,sBAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAAE,qBAAG,GAAE,EAAE,EAAE,GAAG,CAAC;AAAE,yBAAO;AAAA,gBAAC;AAAC,oBAAE,IAAI,CAAC;AAAA,cAAC;AAAC,sBAAQ,EAAE,KAAG,OAAK,EAAE,IAAE,EAAE,MAAI,wBAAsB,IAAI,IAAI,CAAC,IAAE,IAAI,IAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,MAAI,IAAE,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG,MAAK,GAAE,IAAG,CAAC;AAAG,yBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,MAAK,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,EAAE,GAAG,GAAE;AAAA,gBAAC,KAAK;AAAG,yBAAO,GAAG,GAAE,GAAG,EAAE,GAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET;AAAE,sBAAO,EAAE,KAAG,OAAK,EAAE,KAAG,IAAE,IAAI,CAAC,GAAE,IAAE,IAAI,EAAE,GAAG,GAAE,CAAC,IAAE,MAAK,EAAE,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAOS,MAAE,IAAI,OAAIA;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAOT,MAAE,IAAI,OAAIA;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,KAAG,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,EAAE,GAAG,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO;AAAA,gBAAK;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,mBAAG,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,IAAI,IAAI,CAAC,IAAE,KAAK,GAAG,IAAE,CAAC,CAAC;AAAG,qBAAO,KAAG,QAAM,IAAI,GAAE,IAAI,GAAE,OAAK,IAAI,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK,GAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,GAAG,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG;AAAK,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,sBAAG;AAAE,2BAAO,KAAK,MAAI,MAAI,IAAE,GAAG,KAAK,IAAG,GAAG,IAAE;AAAK,yBAAO,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,IAAE,GAAG,KAAK,IAAG,EAAE,EAAE,GAAG,MAAK,GAAE,IAAG,CAAC;AAAG,yBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,MAAK,CAAC;AAAE,qBAAO,IAAE,IAAE,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,CAAC,CAAC,KAAG,CAAC,CAAC,KAAK,IAAG;AAAC,qBAAI,IAAE,IAAI,IAAI,KAAK,EAAE,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,IAAI,CAAC;AAAE,qBAAG,GAAE,GAAG,MAAI,GAAG,GAAE,GAAG,EAAE,IAAE;AAAA,gBAAK;AAAA,cAAC;AAAC,kBAAI,MAAK,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,MAAK,IAAG,IAAI,IAAG,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAY,kBAAI,GAAE,KAAK,EAAE;AAAE,gBAAE,KAAG;AAAe,kBAAI,GAAE,KAAK,EAAE;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG;AAAK,cAAE,KAAG;AAAK,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,MAAK,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,MAAI;AAAM,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAG,KAAG,GAAE;AAAC,uBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,IAAI,IAAG,KAAK,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,EAAE;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAG,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,GAAE,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,KAAK,EAAE,IAAE,IAAE,OAAK;AAAA,cAAM;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,KAAK,EAAE,IAAE;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAG,KAAG,GAAE;AAAC,uBAAO,IAAI,IAAI;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAG,KAAG,GAAE;AAAC,uBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAG,GAAE;AAAC,uBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAiB;AAAE,gBAAI,MAAK,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG,IAAG;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE,CAAC,IAAE,IAAE,GAAG,CAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,KAAK;AAAE,kBAAI,MAAK,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI;AAAI,kBAAI,IAAI,IAAI,GAAE,KAAK,IAAE,KAAK,EAAE,GAAG,IAAE,GAAG,GAAE,GAAG,GAAE,IAAI,KAAK,CAAC,CAAC;AAAE,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gBAAe,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,IAAG,GAAE,EAAC,IAAG,GAAE,KAAI,EAAC,GAAE,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,YAAW,EAAE;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,CAAC,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,OAAO;AAAE,gBAAI,IAAG,IAAG,EAAC,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,KAAK,GAAG;AAAE,kBAAG,IAAE,KAAG,IAAE;AAAE,sBAAM,IAAI,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,qBAAO,IAAI,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,GAAG,GAAE,KAAK,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAgB,EAAE;AAAE,gBAAI,IAAG,IAAG,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,gBAAE,KAAK;AAAE,kBAAE,KAAK,KAAG,OAAK,IAAE,KAAK,EAAE;AAAO,kBAAG,IAAE,GAAE;AAAC,oBAAE,KAAK;AAAE,oBAAE,KAAG,IAAE,IAAE,KAAG;AAAE,oBAAE,MAAI,IAAE;AAAG,qBAAK,IAAE,KAAK,GAAG,CAAC;AAAE,qBAAG,QAAM,IAAI,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,EAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAc;AAAE,gBAAI,KAAI,IAAG,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG,QAAM,CAAC,KAAK,IAAE,IAAI,IAAI,IAAE,KAAK,KAAG,QAAM,KAAK,KAAG,KAAG,GAAG,KAAK,EAAE,KAAK,IAAE,CAAC,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,CAAC,KAAK,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,qCAAqC,CAAC;AAAA,cAAC;AAAC,mBAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,GAAE,EAAE,EAAE,GAAG,EAAE,GAAG;AAAE,iBAAG,GAAE,GAAG,KAAG,GAAG,GAAE,GAAG,EAAE,GAAG,IAAI,KAAG;AAAE,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+CAA8C,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,iDAAgD,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,cAAa,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iBAAiB;AAAE,gBAAI,MAAK,GAAE,CAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,MAAK,MAAK,CAAC,CAAC;AAAE,gBAAI,KAAG,IAAI,0BAAyB,aAAY,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,SAAS;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAc;AAAE,gBAAI,MAAK,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,KAAG,MAAI,KAAK,IAAE;AAAA,YAAK;AAAE,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,MAAK,IAAG,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,gBAAE,KAAK;AAAE,kBAAG,EAAE,GAAG,GAAE;AAAC,uBAAO;AAAA,cAAK,OAAK;AAAC,oBAAE,KAAK,GAAG;AAAE,qBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,EAAE,GAAG;AAAE,uBAAK,GAAG,KAAK,GAAG,GAAE,CAAC,CAAC;AAAE,oBAAE;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,MAAK,KAAK,GAAG,GAAE,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,GAAE,KAAK,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,KAAG,GAAE;AAAC,qBAAK,GAAG,CAAC;AAAE,uBAAO;AAAA,cAAI,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,GAAG,GAAE,KAAK,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mBAAkB,IAAI;AAAE,gBAAI,MAAK,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,KAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,oBAAE,KAAK,GAAG;AAAE,oBAAE,IAAI,MAAK,GAAE,CAAC;AAAE,qBAAK,GAAG,KAAK,GAAG,GAAE,IAAI,CAAC,GAAE,GAAE,GAAE,CAAC,CAAC;AAAE,uBAAO;AAAA,cAAC,OAAK;AAAC,uBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,oBAAE;AAAK,oBAAE,KAAK,GAAG;AAAE,oBAAE,KAAK,GAAG,GAAE,IAAE,IAAI,MAAK,CAAC,GAAE,MAAK,GAAE,CAAC;AAAE,oBAAG,KAAK,GAAG,KAAG,CAAC,CAAC,GAAE;AAAC,sBAAE,KAAK,GAAG,GAAE,CAAC;AAAE,sBAAG,CAAC,GAAE;AAAC,yBAAK,GAAG,CAAC;AAAA,kBAAC,OAAK;AAAC,sBAAE,GAAG,CAAC;AAAE,sBAAE,GAAG;AAAA,kBAAC;AAAA,gBAAC,OAAK;AAAC,sBAAG,CAAC,GAAE;AAAC,yBAAK,GAAG,CAAC;AAAA,kBAAC,OAAK;AAAC,sBAAE,GAAG,CAAC;AAAE,sBAAE,GAAG;AAAA,kBAAC;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAC,OAAK;AAAC,oBAAE,IAAI,MAAK,CAAC;AAAE,oBAAG,KAAK,GAAG,KAAG,CAAC,CAAC,GAAE;AAAC,sBAAE,KAAK,GAAG,GAAE,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,KAAI,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE,IAAE,KAAK,IAAE,KAAG,KAAG,KAAK,IAAE,IAAE,KAAG,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET,KAAE,GAAE,GAAE;AAAE,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAE,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK;AAAA,oBAAE,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,GAAG,CAAC,KAAG,KAAK,GAAG,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,6BAAK,IAAE,EAAE,GAAG;AAAE,0BAAE,GAAG,KAAG,MAAI,KAAK,IAAE;AAAG,+BAAO;AAAA,sBAAI;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,GAAG,CAAC,KAAG,KAAK,GAAG,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,4BAAE,IAAI,IAAI;AAAE,wBAAAA,MAAE,KAAK,IAAE,IAAE,KAAK,IAAE,KAAG,KAAG,KAAK,IAAE,IAAE,KAAG,KAAK;AAAE,wBAAAS,MAAE,EAAE,GAAG;AAAE,6BAAK,IAAE;AAAE,4BAAE,IAAI,IAAI,CAAC;AAAE,4BAAGT,OAAGS,KAAE;AAAC,8BAAI,GAAE,KAAK,CAAC;AAAE,8BAAI,GAAE,EAAE,GAAG,CAAC;AAAE,+BAAK,IAAE,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,IAAG,CAAC,KAAK,IAAET,KAAES,MAAE,CAAC,CAAC;AAAA,wBAAC,OAAK;AAAC,8BAAI,GAAE,EAAE,GAAG,CAAC;AAAE,8BAAI,GAAE,KAAK,CAAC;AAAE,+BAAK,IAAE,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,IAAG,CAAC,KAAK,IAAEA,KAAET,GAAC,CAAC;AAAA,wBAAC;AAAC,6BAAK,IAAE;AAAE,8BAAI,KAAK,IAAE,KAAG,KAAK,IAAE;AAAG,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,GAAG,CAAC,KAAG,KAAK,GAAG,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,4BAAE,IAAI,IAAI;AAAE,wBAAAS,MAAE,EAAE,GAAG;AAAE,4BAAE,GAAG,KAAK,GAAE,EAAE;AAAE,4BAAE,GAAG,IAAG,KAAI,IAAG,EAAE,SAAO,GAAE,IAAG,CAAC;AAAE,4BAAE;AAAE,+BAAM,IAAE,EAAE,QAAO;AAAC,8BAAE,EAAE,CAAC;AAAE,8BAAG,KAAGA,KAAE;AAAC,8BAAE,GAAG,IAAE;AAAE,8BAAEA;AAAA,0BAAC,OAAK;AAAC;AAAA,0BAAK;AAAA,wBAAC;AAAC,4BAAE,GAAG,KAAK,GAAE,EAAE;AAAE,0BAAE,GAAG,GAAE,EAAE,GAAG,CAAC;AAAE,0BAAE,CAAC,IAAEA;AAAE,+BAAM,EAAE,IAAE,EAAE,QAAO;AAAC,4BAAE,CAAC,IAAE,EAAE,IAAE,CAAC;AAAA,wBAAC;AAAC,6BAAK,IAAE;AAAE,8BAAI,KAAK,IAAE,KAAG,EAAE,CAAC;AAAG,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI,IAAI,IAAI,KAAK,EAAE,IAAE,OAAK,IAAE,GAAG,IAAI,MAAI,GAAE,EAAE,SAAS,EAAE,EAAE;AAAE,gBAAE,KAAG;AAAgB,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAM;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAQ;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAM;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAW;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAS;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAc;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAO;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAmB;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,oBAAE,KAAG;AAAU;AAAA,gBAAK;AAAA,gBAAC,SAAQ;AAAC,sBAAI,GAAE,KAAK,CAAC;AAAE;AAAA,gBAAK;AAAA,cAAC;AAAC,kBAAI,IAAI,MAAI,EAAE,KAAG,iBAAgB;AAAG,gBAAE,KAAG;AAAe,kBAAI,GAAE,KAAK,IAAE,IAAE,KAAK,IAAE,KAAG,KAAG,KAAK,IAAE,IAAE,KAAG,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAe,kBAAI,GAAE,KAAK,GAAG,CAAC;AAAE,gBAAE,KAAG;AAAc,kBAAI,GAAE,KAAK,GAAG,CAAC;AAAE,gBAAE,KAAG;AAAe,kBAAI,GAAE,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAe,kBAAG,KAAK,KAAG,KAAG,GAAG,KAAK,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,KAAK,GAAE,EAAE;AAAE,kBAAE,KAAG;AAAI,qBAAI,IAAE,GAAE,IAAE,EAAE,UAAQ;AAAC,oBAAE,KAAG,EAAE,CAAC;AAAE,oBAAE,IAAE,EAAE,WAAS,EAAE,KAAG,KAAI;AAAA,gBAAE;AAAC,kBAAE,KAAG;AAAA,cAAG,OAAK;AAAC,oBAAI,GAAE,IAAI,IAAI,CAAC;AAAA,cAAC;AAAC,gBAAE,KAAG;AAAc,kBAAI,GAAE,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAa,kBAAI,GAAE,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,mBAAI,IAAE,GAAE,IAAE,KAAK,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,KAAK,EAAE,CAAC,GAAE,GAAG;AAAE,oBAAE,EAAE,GAAG;AAAE,qBAAG,QAAM,EAAE,GAAG,KAAG,MAAI,GAAG,GAAE,EAAE,EAAE,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,MAAK,IAAG,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,IAAG,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAK,IAAE,IAAG;AAAC,oBAAG,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG,KAAK,GAAE;AAAC,uBAAK,IAAE,IAAI,IAAI,IAAI;AAAE,uBAAK,IAAE,KAAK;AAAA,gBAAC;AAAC,uBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,cAAC,OAAK;AAAC,uBAAO,IAAI,MAAK,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,GAAG;AAAE,gBAAI,IAAG,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,EAAE,KAAG,KAAK,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAG,gBAAI,KAAG,IAAI,KAAI,2BAA0B,EAAE;AAAE,gBAAI,KAAI,IAAG,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG;AAAC,oBAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;AAAE,qBAAK,GAAG;AAAE,qBAAK,IAAE,KAAK;AAAE,uBAAO;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,uBAAK,GAAG;AAAE,wBAAM,IAAI,IAAI,KAAG;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG;AAAC,oBAAE,KAAK,EAAE,GAAG,KAAK,CAAC;AAAE,qBAAK,GAAG;AAAE,qBAAK,IAAE,KAAK;AAAI,uBAAO;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,uBAAK,GAAG;AAAE,wBAAM,IAAI,IAAI,KAAG;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG;AAAC,oBAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;AAAE,qBAAK,GAAG;AAAE,qBAAK,IAAE,KAAK;AAAE,uBAAO;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,uBAAK,GAAG;AAAE,wBAAM,IAAI,IAAI,KAAG;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,GAAG;AAAE,gBAAI,MAAK,IAAG,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,EAAE,GAAG;AAAE,kBAAG,KAAG,GAAE;AAAC,oBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,oBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,oBAAE,IAAE;AAAE,oBAAE,IAAI,MAAK,CAAC;AAAE,oBAAE,IAAE;AAAE,oBAAE,KAAG,IAAI,GAAE,GAAE,GAAE,IAAE,GAAE,CAAC;AAAE,gBAAAA,MAAE,EAAE,GAAG;AAAE,qBAAIS,MAAE,GAAEA,MAAE,GAAE,EAAEA,KAAE;AAAC,sBAAET,IAAE,GAAG;AAAE,sBAAE,IAAES;AAAE,sBAAI,GAAE,GAAE,IAAI,MAAK,CAAC,CAAC;AAAA,gBAAC;AAAC,oBAAI,MAAK,CAAC;AAAE,qBAAI,IAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,sBAAE,EAAE,CAAC;AAAE,uBAAK,GAAG,GAAE,CAAC;AAAE,oBAAE;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAI,OAAK;AAAC,kBAAE,KAAK;AAAE,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE;AAAE,kBAAE,EAAE,GAAG;AAAE,kBAAG,KAAG,GAAE;AAAC,gBAAAA,OAAG,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,GAAE,KAAG,OAAK,IAAE,EAAE;AAAQ,oBAAEA,MAAE;AAAE,oBAAE,IAAI,MAAK,CAAC;AAAE,oBAAE,EAAE,GAAG;AAAE,qBAAI,IAAEA,KAAE,IAAE,GAAE,EAAE,GAAE;AAAC,kBAAAS,MAAE,EAAE,GAAG;AAAE,sBAAI,GAAE,GAAE,IAAI,MAAKA,GAAC,CAAC;AAAA,gBAAC;AAAC,oBAAI,MAAK,CAAC;AAAE,qBAAI,IAAET,KAAE,IAAE,GAAE,EAAE,GAAE;AAAC,kBAAAS,MAAE,EAAE,CAAC;AAAE,uBAAK,GAAG,GAAEA,GAAC;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAI,OAAK;AAAC,kBAAE,KAAK;AAAE,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,kBAAE,IAAI,MAAK,IAAE,CAAC;AAAE,kBAAE,IAAI,MAAK,CAAC;AAAE,mBAAG,KAAG,IAAI,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,CAAC;AAAE,iBAAG,GAAE,GAAE,CAAC;AAAE,kBAAI,MAAK,CAAC;AAAE,mBAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,mBAAG,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,GAAE,KAAG,OAAK,IAAE,EAAE;AAAQ,kBAAE,IAAI,MAAK,IAAE,CAAC;AAAE,kBAAI,GAAE,GAAE,IAAI,MAAK,CAAC,CAAC;AAAE,kBAAI,MAAK,CAAC;AAAE,mBAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,mBAAG,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,GAAE,KAAG,OAAK,IAAE,EAAE;AAAQ,kBAAG,IAAE,KAAG,IAAE;AAAE,sBAAM,IAAI,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,qBAAO,IAAI,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,gBAAE,KAAK;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,kBAAI,MAAK,IAAI;AAAE,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAG,KAAG,MAAK;AAAC,oBAAG,KAAG,MAAK;AAAC,uBAAI,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,GAAE,EAAE,GAAE;AAAC,wBAAE,EAAE,CAAC;AAAE,wBAAG,GAAG,GAAE,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAI;AAAA,kBAAC;AAAA,gBAAC,OAAK;AAAC,uBAAI,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,GAAE,EAAE,GAAE;AAAC,wBAAE,EAAE,CAAC;AAAE,wBAAG,GAAG,CAAC,MAAI,GAAG,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAI;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,kBAAG,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,qBAAO,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAG,KAAG,MAAK;AAAC,oBAAG,KAAG,MAAK;AAAC,uBAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,GAAE,EAAE,GAAE;AAAC,wBAAG,GAAG,GAAE,EAAE,CAAC,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC,OAAK;AAAC,uBAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAE,GAAE,EAAE,GAAE;AAAC,wBAAG,GAAG,EAAE,CAAC,CAAC,MAAI,GAAG,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,KAAG;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,mBAAG,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,GAAE,KAAG,OAAK,IAAE,EAAE;AAAQ,kBAAG,IAAE,KAAG,IAAE;AAAE,sBAAM,IAAI,IAAI,IAAI,GAAE,CAAC,CAAC;AAAE,qBAAO,IAAI,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,IAAI,IAAI;AAAE,kBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,kBAAG,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,MAAI,IAAE,MAAI,CAAC,CAAC;AAAE,kBAAG,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,MAAI,IAAE,MAAI,CAAC,CAAC;AAAE,kBAAE,EAAE,CAAC;AAAE,kBAAG,KAAG,GAAE;AAAC,oBAAE,IAAE,IAAI,GAAE,GAAE,GAAE,IAAE,GAAE,IAAE,CAAC,IAAE,IAAI,GAAE,IAAE,GAAE,GAAE,GAAE,IAAE,CAAC;AAAE,mBAAG,GAAE,GAAE,CAAC;AAAE,oBAAI,MAAK,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,IAAI,IAAI;AAAE,kBAAE,EAAE,CAAC;AAAE,kBAAI,GAAE,GAAE,IAAI,MAAK,CAAC,CAAC;AAAE,kBAAI,MAAK,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,GAAE,KAAG,OAAK,IAAE,EAAE;AAAA,YAAM;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,kBAAE,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAE,kBAAE,KAAG,IAAI,GAAE,GAAE,GAAE,GAAE,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,kBAAE,KAAG,OAAK,IAAE,EAAE;AAAO,kBAAG,IAAE,GAAE;AAAC,oBAAG,EAAE,SAAO,GAAE;AAAC,sBAAE,IAAI,GAAG,CAAC,EAAE,GAAE,CAAC;AAAE,sBAAE;AAAA,gBAAC;AAAC,oBAAI,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,cAAC;AAAC,gBAAE,SAAO,KAAG,GAAG,GAAE,GAAE,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,EAAE,KAAG,KAAK,KAAG,GAAG,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,mBAAK,IAAE,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,EAAE,KAAG,KAAK,KAAG,GAAG,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAE,mBAAK,IAAE,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,mBAAK,IAAE,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,EAAE,KAAG,KAAK,KAAG,GAAG,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8CAA6C,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,EAAE,KAAG,KAAK,KAAG,GAAG,GAAG,IAAI,KAAK,EAAE,GAAE,CAAC,GAAE,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,GAAG,KAAK,EAAE,GAAG,GAAE,CAAC,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,MAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,KAAK,EAAE,GAAG,CAAC,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,MAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,qBAAK,IAAE,GAAG,IAAG,KAAI,IAAG,IAAE,KAAK,IAAE,GAAE,GAAE,CAAC;AAAE,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAE,qBAAI,IAAE,KAAK,EAAE,GAAG,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,EAAE,GAAG,GAAE,GAAG;AAAE,sBAAI,MAAK,CAAC;AAAA,gBAAC;AAAC,qBAAK,IAAE;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,iBAAG,IAAE,MAAK,GAAG,GAAE,GAAG,GAAE,GAAG,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,KAAG,KAAG,IAAI,GAAE,IAAI,KAAG,IAAI,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,KAAK,EAAE;AAAE,kBAAI,KAAK,GAAE,CAAC;AAAE,qBAAO,KAAK,EAAE,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,KAAG,KAAG,IAAI,GAAE,IAAI,KAAG,IAAI,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE;AAAE,kBAAG,KAAK,EAAE,IAAE,KAAG,GAAG,GAAE,EAAE,GAAE;AAAC,qBAAK,EAAE,GAAG;AAAE,gBAAAA,MAAE,GAAG,GAAE,EAAE;AAAE,oBAAEA,IAAE,GAAG;AAAE,oBAAE,KAAG,OAAK,IAAE,GAAG,CAAC;AAAE,oBAAE,IAAI,KAAK,GAAE,CAAC;AAAE,oBAAE,KAAK,EAAE,EAAE,CAAC;AAAE,oBAAG,GAAE;AAAC,sBAAE,GAAG,EAAE,GAAE,GAAG;AAAE,sBAAE,EAAE;AAAE,uBAAIS,MAAE,GAAEA,MAAE,GAAE,EAAEA,KAAE;AAAC,wBAAE,EAAEA,GAAC;AAAE,wBAAG,EAAE,GAAG,KAAG,KAAG,EAAE,GAAGT,GAAC,GAAE;AAAC,6BAAO;AAAA,oBAAI;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,KAAG,KAAG,IAAI,GAAE,IAAI,KAAG,IAAI,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,EAAE,KAAG,KAAK,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,kBAAG,KAAK,KAAG,IAAG;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,mBAAK,IAAE,KAAK;AAAE,mBAAK,IAAE,KAAK;AAAE,kBAAI,IAAI;AAAE,kBAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAE,GAAG;AAAE,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,EAAE,KAAG,KAAK,GAAE;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,kBAAG,KAAK,KAAG,IAAG;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,mBAAK,EAAE,EAAE,GAAG,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC,GAAE,KAAK,CAAC,CAAC;AAAE,mBAAK,IAAE,KAAK,EAAE;AAAE,mBAAK,IAAE;AAAG,mBAAK,KAAG,KAAK,KAAG,KAAK,KAAG,MAAI,EAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kCAAiC,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,wBAAQ,KAAK,KAAG,OAAK,GAAG,KAAK,GAAE,EAAE,GAAG,CAAC,IAAE,GAAG,KAAK,CAAC,MAAI,GAAG,EAAE,GAAG,CAAC,OAAK,KAAK,KAAG,OAAK,GAAG,KAAK,GAAE,EAAE,GAAG,CAAC,IAAE,GAAG,KAAK,CAAC,MAAI,GAAG,EAAE,GAAG,CAAC;AAAA,cAAE,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG,KAAK,KAAG,OAAK,IAAE,GAAG,KAAK,CAAC;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,KAAK;AAAE,mBAAK,IAAE;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE,OAAK,KAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8CAA6C,IAAI;AAAE,gBAAI,MAAK,KAAI,EAAC,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,IAAI,GAAE,KAAI,EAAE,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,MAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,MAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,KAAI,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,KAAI,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,MAAK,KAAI,EAAC,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,IAAI,GAAE,KAAI,EAAE,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,MAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,MAAK,IAAI,IAAI,MAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,IAAI,KAAI,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,GAAE,GAAG,KAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,YAAY;AAAE,gBAAI;AAAI,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,SAAO;AAAE,uBAAO;AAAK,kBAAG,CAAC,GAAG,GAAE,GAAG;AAAE,uBAAO;AAAM,kBAAE,GAAG,GAAE,GAAG;AAAE,qBAAO,KAAK,KAAG,EAAE,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,KAAK,IAAG,KAAK,IAAE,QAAM,KAAG,EAAE,IAAE,QAAM,IAAE,EAAE,IAAE,QAAM,EAAE,IAAE,QAAM,IAAE,OAAK,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,KAAI,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,MAAI,GAAE,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,OAAM,GAAG;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,GAAG,IAAI,MAAK,GAAG,CAAC,GAAE,GAAG,GAAE,GAAG,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,QAAQ;AAAE,gBAAI,KAAG,IAAI,KAAI,WAAW;AAAE,gBAAI;AAAI,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC,IAAE,IAAI,MAAK,CAAC,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+DAA8D,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,OAAO;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,oDAAmD,IAAI;AAAE,gBAAI;AAAI,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC,IAAE,IAAI,MAAK,CAAC,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qEAAoE,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA2B;AAAE,gBAAI;AAAI,gBAAI;AAAI,gBAAI;AAAI,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAkB;AAAE,gBAAI,KAAI,GAAE,EAAC,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE,KAAG,IAAE,MAAI,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,EAAE,CAAC,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,EAAE,CAAC,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,8CAA6C,IAAI;AAAE,gBAAI,KAAI,MAAK,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,IAAE;AAAE,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI,IAAE,KAAK,GAAG,IAAE,KAAK,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG,CAAC;AAAE,kBAAG,KAAK,KAAG,IAAI,KAAK,KAAG;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,GAAG,EAAE,GAAG,CAAC;AAAE,kBAAG,KAAK,KAAG,IAAI,KAAK,KAAG;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,IAAI,GAAE,KAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,EAAE,CAAC,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,EAAE,CAAC,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,eAAC,KAAK,MAAI,KAAK,IAAE,IAAI;AAAK,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,oBAAE,IAAI,KAAK,CAAC;AAAE,qBAAK,IAAE,KAAG,IAAE,MAAI,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,MAAK,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAE,mBAAK,IAAE,IAAI,GAAE,KAAK;AAAE,mBAAK,IAAE,IAAI,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG,IAAG;AAAC,oBAAE,IAAI,MAAK,KAAK,CAAC;AAAE,qBAAK,IAAE,KAAG,OAAK,IAAE,GAAG,CAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,MAAK,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,MAAK,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,MAAK,KAAK,CAAC;AAAE,kBAAI,MAAK,KAAK,GAAE,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,IAAI;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mDAAkD,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,IAAI,IAAG,KAAK,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,IAAI,IAAG,IAAI,KAAK,CAAC;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,IAAI,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,IAAI;AAAG,uBAAK,EAAE,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,GAAE,GAAG;AAAE,gBAAE,GAAG,CAAC;AAAE,gBAAE,GAAG,CAAC;AAAE,gBAAE,GAAG,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,iBAAG,KAAK,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,oBAAE,GAAG,IAAG,KAAI,IAAG,IAAE,KAAK,IAAE,GAAE,GAAE,CAAC;AAAE,qBAAI,IAAE,KAAK,EAAE,GAAG,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,sBAAE,GAAG,EAAE,GAAG,GAAE,GAAG;AAAE,sBAAE,EAAE,GAAG;AAAE,uBAAG,IAAE,OAAK,EAAE;AAAO,sBAAE,EAAE,CAAC;AAAE,mBAAC,MAAI,IAAE,EAAE,CAAC,IAAE,IAAI,IAAI,IAAI;AAAG,oBAAE,GAAG,CAAC;AAAA,gBAAC;AAAC,qBAAK,IAAE;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAE,KAAK,GAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,KAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,GAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,cAAG;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,MAAK,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,KAAK,GAAE,IAAE,KAAG,KAAG;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAE,KAAK,GAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,KAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,IAAG,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,MAAK,MAAK,IAAG,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,GAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAG,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAG,yBAAO,IAAI,IAAI,KAAG;AAAA,gBAAK,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,EAAE,KAAG,IAAI,IAAI,GAAG,KAAK,IAAG,EAAE,CAAC,GAAE,CAAC;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,MAAK,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,uBAAK,IAAE;AAAK,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,IAAI,GAAE,MAAK,IAAI,CAAC;AAAE,kBAAI,IAAI;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,oBAAE,IAAI,IAAI;AAAE,iBAAC,EAAE,KAAG,QAAM,IAAI,CAAC,GAAE,EAAE,GAAG;AAAO,oBAAE,KAAK,GAAG;AAAE,iBAAC,CAAC,KAAG,IAAI,IAAI,CAAC,CAAC;AAAE,oBAAE,IAAI,IAAI;AAAE,gBAAAS,MAAE,EAAE,GAAG;AAAE,oBAAE,CAACA,MAAE,QAAMA,IAAE,IAAE,MAAI,IAAEA,OAAG,MAAI,KAAGA,OAAG,KAAG,KAAGA,OAAG,KAAG,KAAGA,OAAG,KAAG,KAAGA,OAAG,KAAG,KAAGA,OAAG,MAAI,KAAGA,OAAG,KAAG,KAAG,KAAGA;AAAE,oBAAE,IAAI,IAAI;AAAE,oBAAE,EAAE,GAAG;AAAE,oBAAI,IAAI;AAAE,iBAAC,KAAK,KAAG,QAAM,MAAI,CAAC,EAAE,IAAE,KAAK,IAAI,GAAE,MAAK,CAAC,MAAI,KAAG,QAAM,CAAC,EAAE,IAAE,IAAI,IAAI,KAAI,IAAI,CAAC,MAAK,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK,GAAG,IAAE,KAAK,GAAG,IAAE,CAAC,KAAG,KAAK,KAAG,QAAM,IAAE,CAAC,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,IAAI,IAAG,KAAG,KAAI,KAAK,IAAE,IAAI,IAAI,IAAG,IAAG,IAAI,IAAG,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,IAAI,IAAG,CAAC,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,IAAI,IAAG,KAAG,KAAI,KAAK,IAAE,IAAI,IAAI,IAAG,IAAG,IAAI,IAAG,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,IAAI,KAAI,KAAK,KAAG,QAAM,IAAE,CAAC,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,MAAK,CAAC,IAAG,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,MAAK,CAAC,IAAG,CAAC,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,MAAK,CAAC,IAAG,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,MAAK,CAAC,IAAG,GAAG,GAAE,GAAG,IAAE,KAAG,KAAI,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,KAAI,KAAK,KAAG,QAAM,KAAG,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,IAAI,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,KAAI,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,IAAG,CAAC,IAAE,KAAK,GAAG,KAAG,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,KAAI,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,IAAI,KAAIT,MAAE,EAAE,GAAEA,MAAE,KAAGA,OAAG,KAAG,KAAK,GAAG,KAAG,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,KAAI,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAG,KAAK,GAAG,KAAG,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,KAAI,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,IAAG,GAAE,MAAK,CAAC,KAAI,KAAK,GAAG,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAG,GAAG,GAAE,GAAG,IAAE,KAAG,KAAI,KAAK,IAAE,IAAI,IAAI,IAAG,IAAI,KAAI,KAAK,KAAG,QAAM,IAAE,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,GAAG,GAAE,GAAE,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,OAAM,IAAI,GAAES,OAAG,KAAG,MAAIA,OAAG,MAAI,MAAIA,OAAG,KAAG,MAAIA,OAAG,KAAG,MAAIA,OAAG,KAAG,MAAIA,OAAG,MAAI,MAAIA,OAAG,KAAG,MAAIA,OAAG,KAAG,MAAI,IAAI,IAAG,CAAC,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,GAAG,GAAE,GAAE,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAE,GAAE,OAAM,IAAI,GAAEA,OAAG,KAAG,MAAIA,OAAG,MAAI,MAAIA,OAAG,KAAG,MAAIA,OAAG,KAAG,MAAIA,OAAG,KAAG,MAAIA,OAAG,MAAI,MAAIA,OAAG,KAAG,MAAIA,OAAG,KAAG,MAAI,IAAI,IAAG,KAAK,GAAG,IAAE,CAAC,KAAG,KAAK,KAAG,QAAM,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,IAAG,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,KAAK,KAAG,QAAM,IAAE,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAG,KAAK,GAAG,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAG,KAAK,GAAG,IAAE,CAAC,KAAG,KAAK,KAAG,QAAM,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,KAAK,KAAG,QAAM,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAG,CAAC,KAAG,KAAK,KAAG,QAAM,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,IAAI,KAAI,KAAK,KAAG,QAAM,IAAG,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC,IAAI,KAAK,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,GAAE,MAAK,CAAC;AAAA,cAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAI,IAAI,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,KAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAG,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAG,yBAAO,IAAI,IAAI,KAAG;AAAA,gBAAK,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,EAAE,KAAG,IAAI,IAAI,GAAG,KAAK,IAAG,EAAE,CAAC,GAAE,CAAC;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,IAAE;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,MAAK,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,uBAAK,IAAE;AAAK,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,kBAAI,KAAK,IAAI,GAAE,MAAK,IAAI,CAAC;AAAE,kBAAI,IAAI;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,IAAE;AAAE,mBAAK,IAAE;AAAK,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAS,kBAAI,IAAG,KAAK,KAAG,QAAM,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,GAAG,KAAG;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,IAAE;AAAK,mBAAK,KAAG,KAAG,KAAG,KAAK,KAAG;AAAI,mBAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK,KAAG,OAAK,KAAK,IAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,GAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,GAAG,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK,KAAG,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,GAAG,MAAI,GAAG,KAAK,IAAG,GAAG,EAAE,KAAG;AAAM,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE,sBAAI,MAAK,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,KAAK,KAAG,OAAK,KAAK,KAAG,IAAE,IAAI,IAAI,GAAE,IAAE,IAAI,EAAE,GAAG,GAAE,IAAI,IAAE,MAAK,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG,OAAK,KAAK,IAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAG,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,IAAG,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK,KAAG,OAAK,KAAK,IAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,GAAE,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,GAAE,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,GAAE,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,IAAI,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAM,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK,KAAG,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,IAAI,KAAK,EAAE,CAAC,EAAE,KAAG,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAA,gBAAG,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,GAAE,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,GAAE,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,GAAE,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE,KAAK,KAAG,QAAM,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG,IAAE,OAAK,IAAI,MAAK,CAAC;AAAE,qBAAO,IAAE,IAAE,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,IAAI,IAAI,CAAC;AAAE,sBAAI,IAAI,IAAI,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,IAAI,IAAI,CAAC;AAAE,sBAAI,IAAI,IAAI,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,GAAG,MAAI,GAAG,KAAK,IAAG,GAAG,EAAE,KAAG;AAAM,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE,sBAAI,MAAK,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI;AAAE,kBAAI,IAAI,IAAI,IAAI,CAAC,CAAC;AAAE,kBAAG,KAAK,GAAE;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,sBAAI,IAAI,KAAK,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAG,KAAK,GAAE;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,sBAAI,IAAI,KAAK,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,mBAAK,IAAI,GAAE,MAAK,IAAI,EAAE,GAAG;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,gBAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,cAAa,EAAE;AAAE,gBAAI,MAAK,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,KAAI,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,EAAE,GAAG,GAAE,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,EAAE,GAAG,GAAE,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,GAAG,EAAE,GAAG,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAG,KAAK,GAAG,GAAE,EAAE,CAAC,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,GAAE,EAAE,GAAE,KAAK,GAAG,IAAE,KAAK,GAAG,IAAE,EAAE,GAAG,KAAK,GAAE,KAAK,GAAG,GAAE,KAAK,GAAG,GAAE,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,IAAI,EAAE,GAAG,GAAE,IAAI,GAAG,KAAK,GAAG,GAAE,EAAE,CAAC,CAAC,GAAE,MAAK,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,KAAG,KAAK,GAAG,GAAE,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,GAAE,EAAE,GAAE,KAAK,GAAG,IAAE,KAAK,GAAG,IAAE,EAAE,GAAG,KAAK,GAAE,KAAK,GAAG,GAAE,KAAK,GAAG,GAAE,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,IAAI,EAAE,GAAG,GAAE,IAAI,GAAG,KAAK,GAAG,GAAE,EAAE,CAAC,CAAC,GAAE,MAAK,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,KAAG,KAAK,GAAG,GAAE,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,GAAG,KAAG,KAAK,GAAG,IAAE,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,EAAE,GAAG,IAAE,IAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,qBAAI,IAAE,KAAK,IAAE,GAAE,KAAG,GAAE,EAAE,GAAE;AAAC,sBAAI,MAAK,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,cAAa,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,IAAG,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,EAAE;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAM,oBAAI,KAAK,GAAE,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC,OAAK;AAAC,qBAAK,IAAE;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,sCAAqC,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAE,GAAG,IAAI,MAAK,GAAE,CAAC,GAAE,EAAE,GAAE,IAAI,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,IAAI,KAAK,GAAE,IAAG,IAAI,GAAE,MAAK,IAAI,CAAC,IAAG,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,IAAE,MAAK,CAAC,CAAC,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK,GAAE;AAAC,yBAAO,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,KAAK,IAAE,CAAC;AAAA,gBAAC;AAAA,gBAAC,KAAK,GAAE;AAAC,yBAAO,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,KAAK,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,IAAE,CAAC;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,yBAAO,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,GAAE,GAAE,IAAI;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,EAAE,GAAG;AAAE,kBAAG,KAAG,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,KAAG,GAAE;AAAC,0BAAO,GAAE;AAAA,oBAAC,KAAK;AAAA,oBAAE,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,KAAG,MAAK;AAAC,4BAAE,IAAI,GAAG,GAAE,GAAG,CAAC;AAAE,yBAAC,EAAE,MAAI,EAAE,IAAE,IAAI;AAAK,4BAAI,EAAE,GAAE,EAAE,GAAG,CAAC;AAAA,sBAAC;AAAC,sBAAAA,MAAE,EAAE,GAAG;AAAE,0BAAGA,OAAG,MAAK;AAAC,4BAAE,GAAGA,KAAE,GAAG;AAAE,6BAAI,EAAE,KAAG,MAAI,GAAE;AAAC,8BAAE,IAAI,CAAC;AAAE,2BAAC,EAAE,MAAI,EAAE,IAAE,IAAI;AAAK,8BAAI,EAAE,GAAE,GAAG,EAAE,GAAG,GAAE,EAAE,CAAC;AAAA,wBAAC;AAAA,sBAAC;AAAC;AAAA,oBAAK;AAAA,oBAAC,KAAK,GAAE;AAAC,sBAAAA,MAAE,EAAE,GAAG;AAAE,0BAAGA,OAAG,MAAK;AAAC,4BAAE,GAAGA,KAAE,GAAG;AAAE,6BAAI,EAAE,KAAG,MAAI,GAAE;AAAC,8BAAE,IAAI,CAAC;AAAE,2BAAC,EAAE,MAAI,EAAE,IAAE,IAAI;AAAK,8BAAI,EAAE,GAAE,GAAG,EAAE,GAAG,GAAE,EAAE,CAAC;AAAA,wBAAC;AAAA,sBAAC;AAAC;AAAA,oBAAK;AAAA,oBAAC,KAAK,GAAE;AAAC,sBAAAA,MAAE,EAAE,GAAG;AAAE,0BAAGA,OAAG,MAAK;AAAC,6BAAI,IAAE,GAAGA,KAAE,EAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,8BAAE,GAAG,EAAE,GAAG,GAAE,GAAG;AAAE,+BAAI,EAAE,KAAG,MAAI,GAAE;AAAC,gCAAE,IAAI,CAAC;AAAE,6BAAC,EAAE,MAAI,EAAE,IAAE,IAAI;AAAK,gCAAI,EAAE,GAAE,GAAG,EAAE,GAAG,GAAE,EAAE,CAAC;AAAA,0BAAC;AAAA,wBAAC;AAAA,sBAAC;AAAC;AAAA,oBAAK;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,KAAG,MAAK;AAAC,4BAAE,GAAG,GAAE,GAAG;AAAE,6BAAI,EAAE,KAAG,MAAI,GAAE;AAAC,8BAAE,IAAI,CAAC;AAAE,2BAAC,EAAE,MAAI,EAAE,IAAE,IAAI;AAAK,8BAAI,EAAE,GAAE,EAAE,GAAG,CAAC;AAAA,wBAAC;AAAA,sBAAC;AAAC;AAAA,oBAAK;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,KAAG,MAAK;AAAC,6BAAI,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,8BAAE,GAAG,EAAE,GAAG,GAAE,GAAG;AAAE,+BAAI,EAAE,KAAG,MAAI,GAAE;AAAC,gCAAE,IAAI,CAAC;AAAE,6BAAC,EAAE,MAAI,EAAE,IAAE,IAAI;AAAK,gCAAI,EAAE,GAAE,EAAE,GAAG,CAAC;AAAA,0BAAC;AAAA,wBAAC;AAAA,sBAAC;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAA,gBAAC;AAAC,qBAAK,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAG,gBAAI,KAAG,IAAI,KAAI,iBAAgB,IAAI;AAAE,gBAAI,MAAK,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAgB,IAAI;AAAE,gBAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gCAA+B,IAAI;AAAE,gBAAI,KAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,4CAA2C,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,oBAAE,GAAG,GAAE,GAAG;AAAE,oBAAE,EAAE,GAAG;AAAE,oBAAG,KAAG,IAAG;AAAC,uBAAI,IAAE,KAAK,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,wBAAG,GAAG,KAAK,EAAE,CAAC,CAAC,MAAI,GAAG,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,0CAAyC,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,MAAK,EAAC,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,KAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,KAAI,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG;AAAE,qBAAO,GAAG,GAAE,GAAG,KAAG,CAAC,GAAG,GAAE,GAAG,MAAI,EAAE,GAAG,EAAE,IAAE,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,gBAAAA,MAAE,KAAK,GAAG;AAAE,oBAAGA,MAAE,GAAE;AAAC,sBAAG,KAAK,GAAG,CAAC,GAAE;AAAC,wBAAG,KAAK,GAAG,GAAE;AAAC,0BAAE,GAAG,GAAE,EAAE;AAAE,0BAAE,EAAE,GAAG;AAAE,0BAAE,KAAG,KAAK,MAAI,KAAK,GAAG,IAAE,EAAE,GAAG,EAAE,GAAG,GAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAE,EAAE,EAAE,GAAG,CAAC,KAAG,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,EAAE,IAAE,KAAG,EAAE,GAAG,KAAG,KAAK,GAAG;AAAG,0BAAG,KAAK,GAAG,KAAG,CAAC,KAAG,CAAC,KAAG,CAAC,CAAC,EAAE,GAAG,GAAE;AAAC,6BAAI,IAAE,GAAE,IAAEA,KAAE,EAAE,GAAE;AAAC,8BAAE,IAAI,MAAK,KAAK,GAAG,CAAC,CAAC;AAAE,8BAAG,GAAG,CAAC,MAAI,GAAG,CAAC,GAAE;AAAC,mCAAO;AAAA,0BAAI;AAAA,wBAAC;AAAA,sBAAC;AAAC,6BAAO;AAAA,oBAAC,WAAS,KAAK,GAAG,KAAG,CAAC,KAAK,GAAG,GAAE;AAAC,0BAAE,GAAG,GAAE,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,CAAC;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,GAAE;AAAC,+BAAO;AAAA,sBAAI,WAAS,KAAG,QAAM,CAAC,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE;AAAC,+BAAO;AAAA,sBAAK;AAAA,oBAAC;AAAA,kBAAC,OAAK;AAAC,2BAAO;AAAA,kBAAK;AAAA,gBAAC;AAAC,gBAAAS,MAAE,KAAK,GAAG,CAAC;AAAE,oBAAG,KAAK,GAAG,KAAG,CAACA,KAAE;AAAC,uBAAI,IAAE,GAAE,IAAET,KAAE,EAAE,GAAE;AAAC,wBAAE,IAAI,MAAK,KAAK,GAAG,CAAC,CAAC;AAAE,wBAAG,GAAG,CAAC,MAAI,GAAG,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAI;AAAA,kBAAC;AAAA,gBAAC;AAAC,uBAAOS;AAAA,cAAC,OAAK;AAAC,uBAAO,KAAK,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAG,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,CAAC,GAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,wBAAQ,EAAE,KAAG,QAAM,KAAG,CAAC,CAAC,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAE,IAAI,CAAC;AAAE,uBAAO,CAAC,CAAC,MAAI,IAAE,EAAE,GAAE,IAAE,KAAG,KAAG;AAAA,cAAG,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAE,IAAI,CAAC;AAAE,uBAAO,CAAC,CAAC;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,wBAAQ,EAAE,KAAG,QAAM;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,KAAG;AAAE,uBAAO;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,GAAG,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,sBAAE,IAAI,MAAK,KAAK,GAAG,CAAC,CAAC;AAAE,sBAAG,GAAG,CAAC,MAAI,GAAG,CAAC,GAAE;AAAC,2BAAO;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,GAAE,EAAE,GAAE,KAAK,GAAG,IAAE,KAAK,GAAG,IAAE,EAAE,GAAG,KAAK,GAAE,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,EAAE,GAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,IAAI,EAAE,GAAG,GAAE,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,CAAC,GAAE,MAAK,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,KAAG,KAAK,GAAG,GAAE,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,GAAG,GAAE,EAAE,GAAE,KAAK,GAAG,IAAE,KAAK,GAAG,IAAE,EAAE,GAAG,KAAK,GAAE,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,EAAE,GAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,IAAI,EAAE,GAAG,GAAE,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,GAAE,EAAE,CAAC,CAAC,GAAE,MAAK,CAAC,IAAE,EAAE,GAAG,KAAK,GAAE,KAAG,KAAK,GAAG,GAAE,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,wBAAQ,EAAE,KAAG,QAAM;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,CAAC,GAAE,KAAK,GAAG,CAAC,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,IAAI;AAAE,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,qBAAI,IAAE,KAAK,GAAG,IAAE,GAAE,KAAG,GAAE,EAAE,GAAE;AAAC,sBAAI,MAAK,GAAE,KAAK,GAAG,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,qBAAI,IAAE,KAAK,GAAG,IAAE,GAAE,KAAG,GAAE,EAAE,GAAE;AAAC,sBAAI,MAAK,GAAE,KAAK,GAAG,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI,KAAK,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,mBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,EAAE,GAAG;AAAE,oBAAG,CAAC,IAAI,MAAK,CAAC,GAAE;AAAC,yBAAO;AAAA,gBAAK;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAG,EAAE,GAAG,KAAG,IAAI,KAAK,CAAC,EAAE,GAAE;AAAC,uBAAI,IAAE,EAAE,GAAG,GAAE,IAAE,IAAI,IAAI,IAAI,GAAE,EAAE,GAAG,KAAG;AAAC,wBAAG,GAAG,EAAE,GAAG,CAAC,MAAI,GAAG,IAAI,CAAC,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAK;AAAA,kBAAC;AAAC,yBAAO;AAAA,gBAAI;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,qBAAG,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE;AAAM,oBAAE,KAAG,KAAG,CAAC,IAAE,IAAE,IAAI,CAAC;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAG,GAAG,CAAC,MAAI,IAAI,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE,KAAK,GAAE;AAAC,yBAAO;AAAA,gBAAC;AAAC,kBAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI,KAAK,CAAC,EAAE;AAAE,kBAAE,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAE,GAAG,KAAG,IAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE;AAAA,cAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,IAAI,KAAK,CAAC,EAAE;AAAE,kBAAG,EAAE,SAAO,GAAE;AAAC,oBAAE,IAAI,GAAG,CAAC,EAAE,GAAE,CAAC;AAAE,oBAAE;AAAA,cAAC;AAAC,gBAAE,SAAO,KAAG,GAAG,GAAE,GAAE,IAAI;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,qBAAGA,MAAE,EAAE,GAAE,GAAGA,KAAE,EAAE,IAAE,GAAGA,KAAE,EAAE,KAAG,IAAI,GAAE;AAAM,mBAAG,GAAE,KAAI,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI;AAAI,gBAAE,KAAG;AAAI,kBAAE,IAAI,KAAK,CAAC;AAAE,mBAAI,IAAE,GAAE,IAAE,IAAI,KAAK,CAAC,EAAE,GAAE,IAAE,KAAG;AAAC,oBAAI,GAAE,KAAK,IAAE,GAAG,IAAI,GAAE,CAAC,GAAE,EAAE,EAAE,GAAE,GAAG,GAAE,EAAE,IAAE,GAAG,GAAE,EAAE,KAAG,IAAI,GAAE,KAAK,CAAC;AAAE,kBAAE,IAAE,MAAI,EAAE,KAAG,KAAI;AAAA,cAAE;AAAC,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,EAAE,CAAC,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,gBAAe,IAAI;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK,KAAG,OAAK,KAAK,IAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,GAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,cAAM;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,GAAG,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK,KAAG,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,GAAG,MAAI,GAAG,KAAK,IAAG,GAAG,EAAE,KAAG;AAAM,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE,sBAAI,MAAK,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,KAAK,GAAG,IAAE,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAI,GAAE,MAAK,IAAI,EAAE,GAAG;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,oBAAE,IAAI,IAAI,IAAI,CAAC;AAAE,oBAAG,CAAC,EAAE,GAAG,GAAE;AAAC,uBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,wBAAE,GAAG,EAAE,GAAG,CAAC;AAAE,qBAAC,CAAC,IAAI,MAAK,CAAC,KAAG,IAAI,IAAI;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,CAAC,KAAK,GAAE;AAAC,oBAAE;AAAK,oBAAG;AAAC,sBAAE,IAAI,IAAI;AAAA,gBAAC,SAAO,GAAE;AAAC,sBAAE,IAAI,CAAC;AAAE,sBAAG,CAAC,GAAG,GAAE,GAAG;AAAE,0BAAM,IAAI,CAAC;AAAA,gBAAC;AAAC,qBAAK,IAAE;AAAK,iBAAC,CAAC,MAAI,EAAE,IAAE,MAAI,MAAI,KAAG,MAAK,KAAK,KAAG,IAAI,GAAE,OAAM,KAAG,KAAI,KAAK,IAAE,IAAI,CAAC,IAAG,KAAG,KAAI,KAAK,IAAE,IAAI,IAAI,CAAC,IAAG,KAAG,KAAI,KAAK,IAAE,IAAG,KAAG,KAAI,KAAK,IAAE,IAAI,CAAC,IAAG,KAAG,MAAK,KAAK,IAAE,IAAI,CAAC,IAAG,KAAG,KAAI,KAAK,IAAE,IAAI,CAAC,IAAI,KAAK,IAAE,IAAI,CAAC;AAAI,qBAAK,IAAE;AAAA,cAAI;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAI,KAAK,IAAE;AAAA,YAAiD;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAE,mBAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAE,mBAAK,IAAE;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAmB,kBAAI,IAAG,KAAK,KAAG,QAAM,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAK,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,iBAAgB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK,KAAG,OAAK,KAAK,IAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG,QAAM,KAAK,KAAG,KAAK,KAAG,KAAK,KAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,GAAG,MAAI,GAAG,KAAK,IAAG,GAAG,EAAE,KAAG;AAAM,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE,sBAAI,MAAK,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAK,GAAE;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,sBAAI,IAAI,KAAK,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,mBAAK,IAAI,GAAE,MAAK,IAAI,EAAE,GAAG;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAG,MAAK;AAAC,uBAAO;AAAA,cAAI;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAY,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,MAAK,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,IAAE,KAAK,IAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG,OAAK,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI,MAAI,IAAE,GAAG,KAAK,IAAG,GAAG,IAAE;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,CAAC,EAAE,KAAK,MAAI,MAAI,IAAE,GAAG,KAAK,IAAG,GAAG,IAAE;AAAA,cAAM;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,IAAI,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,KAAK,GAAE,KAAG,OAAK,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAsC;AAAE,gBAAI,KAAI,GAAE,EAAC,MAAK,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,+CAA8C,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,MAAK,GAAE,GAAE,CAAC;AAAE,kBAAG,CAAC,CAAC,KAAK,KAAG,GAAG,GAAE,GAAG,GAAE;AAAC,oBAAE,IAAI,MAAK,KAAK,CAAC;AAAE,qBAAG,KAAK,MAAI,IAAE,IAAI,MAAK,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,MAAK,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAiB,kBAAI,MAAK,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,MAAK,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,KAAK,GAAG,GAAE,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,KAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,iBAAG,MAAK,GAAE,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,GAAG,MAAK,CAAC;AAAE,kBAAE,KAAK,GAAG,CAAC;AAAE,gBAAE,GAAG,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,iBAAG,MAAK,GAAE,IAAI;AAAE,kBAAE,KAAK,GAAG,CAAC;AAAE,gBAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,IAAI;AAAE,gBAAI,KAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,KAAK,GAAG,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,KAAG,MAAK;AAAC,uBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,cAAG;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,KAAG,MAAK;AAAC,uBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,cAAG;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,oBAAG,IAAE,KAAG,IAAE,GAAE;AAAC,wBAAM,IAAI,IAAI,IAAI,MAAI,IAAE,UAAU,CAAC;AAAA,gBAAC;AAAC,uBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,cAAG;AAAC,kBAAE,KAAK,GAAG;AAAE,mBAAI,IAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,oBAAI,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,QAAO,EAAE,GAAE;AAAC,sBAAE,KAAK,EAAE,CAAC;AAAE,sBAAG,CAAC,KAAK,GAAG,KAAG,KAAK,EAAE,GAAG,CAAC,GAAE;AAAC,wBAAE,KAAK,EAAE,GAAG,GAAE,KAAK;AAAE,wBAAI;AAAE,wBAAG,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE;AAAC,0BAAE,GAAG,GAAE,GAAG;AAAE,2BAAI,IAAE,GAAE,IAAE,EAAE,GAAG,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,4BAAG,IAAI,EAAE,GAAG,CAAC,CAAC,KAAG,EAAE,GAAG,CAAC,KAAG,MAAK;AAAC,iCAAO;AAAA,wBAAK;AAAA,sBAAC;AAAA,oBAAC,WAAS,EAAE,GAAG,GAAE;AAAC,0BAAG,CAAC,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE;AAAC,+BAAO;AAAA,sBAAK;AAAA,oBAAC,WAAS,KAAG,MAAK;AAAC,6BAAO;AAAA,oBAAK;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,oBAAG,KAAG,GAAE;AAAC,wBAAM,IAAI,IAAI,IAAI,MAAI,IAAE,UAAU,CAAC;AAAA,gBAAC;AAAC,uBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,cAAG;AAAC,kBAAE,KAAK,GAAG,IAAE,KAAK,GAAG,IAAE,KAAK,GAAG;AAAE,mBAAI,IAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,oBAAI,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAEA;AAAE,kBAAE;AAAE,kBAAG,KAAK,KAAG,MAAK;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,QAAO,EAAE,GAAE;AAAC,sBAAE,KAAK,EAAE,CAAC;AAAE,sBAAG,CAAC,KAAK,GAAG,KAAG,KAAK,EAAE,GAAG,CAAC,GAAE;AAAC,oBAAAA,MAAE,KAAK,EAAE,GAAG,GAAE,KAAK;AAAE,wBAAI;AAAE,wBAAG,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE;AAAC,0BAAE,GAAGA,KAAE,GAAG;AAAE,2BAAI,IAAE,GAAE,IAAE,EAAE,GAAG,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,4BAAI,EAAE,GAAG,CAAC,CAAC,KAAG,EAAE,GAAG,CAAC,KAAG,QAAM,EAAE;AAAA,sBAAC;AAAA,oBAAC;AAAM,wBAAE,GAAG,IAAG,KAAG,GAAGA,KAAE,EAAE,EAAE,GAAG,IAAGA,OAAG,QAAM,EAAE;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAK,KAAG,KAAG,CAAC,CAAC,KAAK,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,6CAA6C,CAAC;AAAA,cAAC;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAE,KAAK,GAAE;AAAC,yBAAO;AAAA,gBAAI;AAAA,gBAAC,KAAK,GAAE;AAAC,yBAAO;AAAA,gBAAK;AAAA,gBAAC,KAAK,IAAG;AAAC,mBAAC,KAAK,IAAE,EAAE,KAAK,IAAE,KAAK,EAAE,GAAG;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,sBAAG,CAAC,KAAK,MAAI,CAAC,KAAK,IAAE,CAAC,IAAI,IAAI,IAAE,CAAC,IAAI,MAAK,KAAK,CAAC,IAAG;AAAC,2BAAM,KAAK,IAAE,KAAK,EAAE,QAAO;AAAC,0BAAE,KAAK,EAAE,KAAK,GAAG;AAAE,2BAAI,CAAC,KAAK,KAAG,EAAE,GAAG,KAAG,MAAI,EAAE,GAAG,KAAG,OAAK,CAAC,KAAK,GAAG,KAAG,KAAK,EAAE,GAAG,CAAC,IAAG;AAAC,4BAAE,KAAK,EAAE,GAAG,GAAE,KAAK,GAAG,CAAC;AAAE,6BAAK,KAAG,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,GAAG;AAAG,4BAAG,KAAK,KAAG,EAAE,GAAG,GAAE;AAAC,8BAAG,KAAK,GAAG,GAAE;AAAC,gCAAE,GAAG,GAAE,EAAE;AAAE,iCAAK,IAAE;AAAA,0BAAC,OAAK;AAAC,gCAAE,GAAG,GAAE,EAAE;AAAE,iCAAK,IAAE,KAAK,IAAE;AAAA,0BAAC;AAAC,8BAAG,GAAG,KAAK,GAAE,EAAE,GAAE;AAAC,iCAAK,IAAE;AAAK,iCAAK,IAAE,KAAK,EAAE,GAAG;AAAE,iCAAK,IAAE;AAAA,0BAAC,OAAK;AAAC,iCAAK,IAAE,CAAC,KAAK,IAAE,KAAK,EAAE,GAAG,IAAE,KAAK,EAAE,GAAG;AAAA,0BAAC;AAAC,8BAAG,CAAC,KAAK,IAAE,IAAI,IAAI,IAAE,IAAI,MAAK,KAAK,CAAC,GAAE;AAAC,gCAAE,CAAC,KAAK,IAAE,CAAC,KAAK,IAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAE,KAAK,EAAE,GAAG;AAAE,gCAAG,KAAK,GAAE;AAAC,kCAAE,GAAG,GAAE,EAAE;AAAE,gCAAE,GAAG;AAAE,kCAAE,EAAE,GAAG;AAAE,mCAAK,IAAE;AAAA,4BAAC,OAAK;AAAC,kCAAE;AAAE,mCAAK,IAAE;AAAA,4BAAC;AAAC,iCAAK,IAAE;AAAE,mCAAO;AAAA,0BAAI;AAAA,wBAAC,WAAS,KAAG,MAAK;AAAC,+BAAK,IAAE;AAAK,+BAAK,IAAE;AAAK,8BAAE;AAAE,+BAAK,IAAE;AAAE,+BAAK,IAAE;AAAE,iCAAO;AAAA,wBAAI;AAAA,sBAAC;AAAA,oBAAC;AAAC,yBAAK,IAAE;AAAK,yBAAK,IAAE;AAAK,yBAAK,IAAE;AAAM,yBAAK,IAAE;AAAE,2BAAO;AAAA,kBAAK,OAAK;AAAC,wBAAE,CAAC,KAAK,IAAE,CAAC,KAAK,IAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAE,KAAK,EAAE,GAAG;AAAE,wBAAG,KAAK,GAAE;AAAC,0BAAE,GAAG,GAAE,EAAE;AAAE,wBAAE,GAAG;AAAE,0BAAE,EAAE,GAAG;AAAE,2BAAK,IAAE;AAAA,oBAAC,OAAK;AAAC,0BAAE;AAAE,2BAAK,IAAE;AAAA,oBAAC;AAAC,yBAAK,IAAE;AAAE,2BAAO;AAAA,kBAAI;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAG,KAAK,IAAG;AAAC,yBAAO;AAAA,gBAAI;AAAA,gBAAC,KAAK,IAAG;AAAC,yBAAO;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,mBAAC,KAAK,IAAE,EAAE,KAAK,IAAE,KAAK,EAAE,GAAG;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,sBAAG,CAAC,KAAK,MAAI,CAAC,KAAK,IAAE,CAAC,IAAI,IAAI,IAAE,CAAC,IAAI,MAAK,KAAK,CAAC,IAAG;AAAC,2BAAM,KAAK,IAAE,GAAE;AAAC,0BAAE,KAAK,EAAE,EAAE,KAAK,CAAC;AAAE,2BAAI,CAAC,KAAK,KAAG,EAAE,GAAG,KAAG,MAAI,EAAE,GAAG,KAAG,OAAK,CAAC,KAAK,GAAG,KAAG,KAAK,EAAE,GAAG,CAAC,IAAG;AAAC,4BAAE,KAAK,EAAE,GAAG,GAAE,KAAK,GAAG,CAAC;AAAE,6BAAK,KAAG,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE,GAAG;AAAG,4BAAG,KAAK,KAAG,EAAE,GAAG,GAAE;AAAC,8BAAG,KAAK,GAAG,GAAE;AAAC,gCAAE,GAAG,GAAE,EAAE;AAAE,iCAAK,IAAE;AAAA,0BAAC,OAAK;AAAC,gCAAE,GAAG,GAAE,EAAE;AAAE,iCAAK,IAAE,KAAK,IAAE;AAAA,0BAAC;AAAC,8BAAG,GAAG,KAAK,GAAE,EAAE,GAAE;AAAC,iCAAK,IAAE,KAAK,EAAE,GAAG;AAAE,iCAAK,IAAE,KAAK;AAAA,0BAAC,OAAK;AAAC,iCAAK,IAAE,CAAC,KAAK,IAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,IAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC;AAAA,0BAAC;AAAC,8BAAG,CAAC,KAAK,IAAE,IAAI,IAAI,IAAE,IAAI,MAAK,KAAK,CAAC,GAAE;AAAC,gCAAE,CAAC,KAAK,IAAE,CAAC,KAAK,IAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAE,KAAK,EAAE,GAAG;AAAE,gCAAG,KAAK,GAAE;AAAC,kCAAE,GAAG,GAAE,EAAE;AAAE,gCAAE,GAAG;AAAE,kCAAE,EAAE,GAAG;AAAE,mCAAK,IAAE;AAAA,4BAAC,OAAK;AAAC,kCAAE;AAAE,mCAAK,IAAE;AAAA,4BAAC;AAAC,iCAAK,IAAE;AAAG,mCAAO;AAAA,0BAAI;AAAA,wBAAC,WAAS,KAAG,MAAK;AAAC,+BAAK,IAAE;AAAK,+BAAK,IAAE;AAAK,8BAAE;AAAE,+BAAK,IAAE;AAAE,+BAAK,IAAE;AAAG,iCAAO;AAAA,wBAAI;AAAA,sBAAC;AAAA,oBAAC;AAAC,yBAAK,IAAE;AAAK,yBAAK,IAAE;AAAK,yBAAK,IAAE;AAAG,2BAAO;AAAA,kBAAK,OAAK;AAAC,wBAAE,CAAC,KAAK,IAAE,CAAC,KAAK,IAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAE,KAAK,EAAE,GAAG;AAAE,wBAAG,KAAK,GAAE;AAAC,0BAAE,GAAG,GAAE,EAAE;AAAE,wBAAE,GAAG;AAAE,0BAAE,EAAE,GAAG;AAAE,2BAAK,IAAE;AAAA,oBAAC,OAAK;AAAC,0BAAE;AAAE,2BAAK,IAAE;AAAA,oBAAC;AAAC,yBAAK,IAAE;AAAG,2BAAO;AAAA,kBAAI;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,IAAE,MAAI,KAAK,GAAG,GAAE;AAAC,kBAAE,KAAK;AAAE,qBAAK,IAAE;AAAE,oBAAE,KAAK;AAAE,qBAAK,GAAG;AAAE,uBAAO;AAAA,cAAC,OAAK;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sCAAqC,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,+CAA8C,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI;AAAE,kBAAG,GAAE;AAAC,uBAAO,EAAE,GAAG;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,KAAG,MAAI,CAAC,CAAC,KAAK,MAAI,KAAK,IAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,GAAE,KAAK,EAAE,GAAG,CAAC;AAAG,qBAAO,KAAK,EAAE,GAAG,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,IAAI,IAAI;AAAE,kBAAG,GAAE;AAAC,uBAAO,EAAE,GAAG;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,IAAE;AAAG,gBAAI,KAAG,IAAI,KAAI,qBAAoB,EAAE;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,IAAE,KAAG,KAAG,KAAG,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,KAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,MAAI,MAAI,KAAG,GAAG,KAAK,IAAG,EAAE,IAAE;AAAA,gBAAK,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAI,IAAG,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,IAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,MAAK,MAAK,IAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI,IAAI,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,IAAE,KAAG,KAAG;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAG,KAAK;AAAG,yBAAO,CAAC,EAAE,KAAK,MAAI,MAAI,KAAG,GAAG,KAAK,IAAG,EAAE,IAAE;AAAA,gBAAM,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,IAAI,KAAK,EAAE,CAAC,EAAE,KAAG,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAA,gBAAG,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAI;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAI;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,IAAI,IAAI,CAAC;AAAE,sBAAI,IAAI,IAAI,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,MAAK,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,IAAG,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,CAAC,KAAK,KAAG,IAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAG,KAAK,GAAE;AAAC,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,sBAAI,IAAI,KAAK,GAAE,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,KAAG,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,IAAE,EAAE,GAAE,IAAE,KAAG,IAAI,GAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI,KAAK,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,mBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,EAAE,GAAG;AAAE,oBAAG,CAAC,IAAI,MAAK,CAAC,GAAE;AAAC,yBAAO;AAAA,gBAAK;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAG,EAAE,GAAG,KAAG,IAAI,KAAK,CAAC,EAAE,GAAE;AAAC,uBAAI,IAAE,EAAE,GAAG,GAAE,IAAE,IAAI,IAAI,IAAI,GAAE,EAAE,GAAG,KAAG;AAAC,wBAAG,GAAG,EAAE,GAAG,CAAC,MAAI,GAAG,IAAI,CAAC,CAAC,GAAE;AAAC,6BAAO;AAAA,oBAAK;AAAA,kBAAC;AAAC,yBAAO;AAAA,gBAAI;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,qBAAG,IAAE,EAAE,GAAE,IAAE,KAAG,IAAI,GAAE;AAAM,oBAAE,KAAG,KAAG,CAAC,IAAE,IAAE,GAAG,CAAC;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,oBAAG,GAAG,CAAC,MAAI,IAAI,IAAE,EAAE,GAAE,IAAE,KAAG,IAAI,GAAE,KAAK,GAAE;AAAC,yBAAO;AAAA,gBAAC;AAAC,kBAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI,KAAK,CAAC,EAAE;AAAE,kBAAE,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,kBAAE,GAAG,KAAG,IAAE,EAAE,GAAE,IAAE,KAAG,IAAI,GAAE;AAAA,cAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,IAAI,KAAK,CAAC,EAAE;AAAE,kBAAG,EAAE,SAAO,GAAE;AAAC,oBAAE,IAAI,GAAG,CAAC,EAAE,GAAE,CAAC;AAAE,oBAAE;AAAA,cAAC;AAAC,gBAAE,SAAO,KAAG,GAAG,GAAE,GAAE,IAAI;AAAE,kBAAE;AAAE,mBAAI,IAAE,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,GAAE,EAAE,KAAG,EAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,IAAI,CAAC,GAAE,EAAE;AAAE,qBAAGA,MAAE,EAAE,GAAEA,MAAEA,OAAG,IAAI,GAAE;AAAM,mBAAG,GAAE,KAAI,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,IAAI;AAAI,gBAAE,KAAG;AAAI,kBAAE,IAAI,KAAK,CAAC;AAAE,mBAAI,IAAE,GAAE,IAAE,IAAI,KAAK,CAAC,EAAE,GAAE,IAAE,KAAG;AAAC,oBAAI,GAAE,KAAK,IAAE,GAAG,IAAI,GAAE,CAAC,GAAE,EAAE,EAAE,GAAE,IAAE,KAAG,IAAI,GAAE,KAAK,CAAC;AAAE,kBAAE,IAAE,MAAI,EAAE,KAAG,KAAI;AAAA,cAAE;AAAC,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,MAAK,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,EAAE,CAAC,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,qBAAO,IAAE,GAAG,IAAI,MAAK,GAAE,CAAC,GAAE,EAAE,GAAE,IAAI,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,IAAI,KAAK,GAAE,IAAG,IAAI,GAAE,MAAK,IAAI,CAAC,IAAG,IAAE,EAAE,GAAE,IAAE,IAAE,MAAK,CAAC,CAAC,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK,GAAE;AAAC,yBAAO,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,KAAK,IAAE,CAAC;AAAA,gBAAC;AAAA,gBAAC,KAAK,GAAE;AAAC,yBAAO,IAAI,MAAK,GAAE,GAAE,GAAE,GAAE,KAAK,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,IAAE,CAAC;AAAA,gBAAC;AAAA,gBAAC,SAAQ;AAAC,yBAAO,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,GAAE,GAAE,IAAI;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,MAAK,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,IAAG,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,EAAE;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,KAAG;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC,IAAE,IAAI,MAAK,CAAC,IAAE,CAAC,CAAC,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,MAAK,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,IAAE,KAAG,KAAG,KAAG,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,KAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,MAAI,MAAI,KAAG,GAAG,KAAK,IAAG,EAAE,IAAE;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,mBAAC,CAAC,KAAK,OAAK,KAAG,IAAE,KAAK,MAAI,IAAG,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,KAAK,GAAG,GAAG,MAAK,KAAG,GAAE,MAAK,CAAC;AAAI,yBAAO,IAAI,MAAK,GAAE,IAAG,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,MAAK,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,MAAK,MAAK,IAAG,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,IAAE,KAAG,KAAG;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAG,KAAK;AAAG,yBAAO,CAAC,EAAE,KAAK,MAAI,MAAI,KAAG,GAAG,KAAK,IAAG,EAAE,IAAE;AAAA,cAAM;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,IAAG,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAEA,MAAE,KAAK,GAAEA,MAAE,KAAGA,OAAG,KAAG,OAAK;AAAA,gBAAM,KAAK;AAAE,yBAAO,IAAI,GAAE,IAAE,KAAK,GAAE,KAAG,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAE,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,GAAE,IAAE,IAAI,IAAI,GAAE,CAAC,CAAC,MAAI,EAAE,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,yBAAO,IAAI,IAAG,KAAK,KAAG,QAAM,IAAE,OAAK;AAAA,gBAAM,KAAK;AAAG,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAG,sBAAG;AAAE,2BAAO,IAAI,IAAI;AAAE,yBAAO,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE,IAAG,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,IAAE,KAAG,KAAG;AAAA,gBAAG,KAAK;AAAE,yBAAO,IAAE,KAAK,GAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,EAAE,CAAC,CAAC,KAAK,KAAG,CAAC,KAAK,EAAE,KAAG,IAAI,KAAK,CAAC,EAAE,KAAG;AAAA,gBAAG,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAG,yBAAO,IAAI,IAAI,KAAG;AAAA,gBAAK,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,IAAI,GAAE,CAAC,CAAC,MAAI,EAAE,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,0BAAQ,KAAK,KAAG,QAAM;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,IAAI,IAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,EAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,qBAAG,KAAK,IAAG,EAAE,KAAG,IAAI,IAAI,GAAG,KAAK,IAAG,EAAE,CAAC,GAAE,CAAC;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAE,IAAI,MAAK,MAAK,IAAI;AAAE,mBAAC,CAAC,KAAG,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,uBAAK,IAAE;AAAK,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,KAAK;AAAE,qBAAG,KAAK,IAAG,EAAE,KAAG,IAAI,IAAI,GAAG,KAAK,IAAG,EAAE,CAAC,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAG,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAG,MAAK,EAAE;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,kBAAI,KAAK,IAAI,GAAE,MAAK,IAAI,CAAC;AAAE,kBAAI,IAAI;AAAE,mBAAK,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,IAAI,GAAE,CAAC,CAAC,MAAI,EAAE,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,KAAG,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAK,IAAE;AAAK,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAkB,kBAAI,IAAG,KAAK,KAAG,QAAM,CAAC;AAAE,gBAAE,KAAG;AAAqB,kBAAI,IAAG,KAAK,KAAG,QAAM,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,EAAE;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG,IAAG;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE,KAAG,OAAK,IAAE,IAAI,CAAC;AAAA,cAAC;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,KAAG,OAAK;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAU,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAY,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA2B;AAAE,gBAAI,KAAI,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,SAAO,GAAE;AAAC,uBAAO;AAAA,cAAI,WAAS,GAAG,GAAE,EAAE,GAAE;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAG,EAAE,GAAG,KAAG,KAAK,GAAE;AAAC,sBAAE,KAAK,GAAG;AAAE,yBAAO,KAAG,OAAK,EAAE,GAAG,KAAG,OAAK,GAAG,GAAE,EAAE,GAAG,CAAC;AAAA,gBAAC,OAAK;AAAC,yBAAO;AAAA,gBAAK;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAE,KAAK,GAAG;AAAE,qBAAO,GAAG,KAAK,CAAC,KAAG,KAAG,OAAK,IAAE,GAAG,CAAC;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,KAAK;AAAE,kBAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG;AAAE,gBAAE,GAAG;AAAE,sBAAQ,KAAG,QAAM,EAAE,UAAQ,IAAE,IAAE,MAAI,EAAE,GAAG,IAAE,EAAE,GAAG,KAAG,MAAI,KAAK,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+CAA8C,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6DAA4D,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG;AAAE,qBAAO,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG;AAAE,qBAAO,EAAE,GAAG,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG;AAAE,qBAAO,EAAE,GAAG,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG;AAAE,qBAAO,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG;AAAE,gBAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,IAAI,GAAE,KAAK,CAAC,GAAE,GAAG;AAAE,gBAAE,GAAG,KAAK,CAAC,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qEAAoE,IAAI;AAAE,gBAAI,IAAG,GAAE,CAAC,GAAE,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,mBAAG,QAAM,EAAE,GAAG,GAAE,IAAE,IAAI,MAAK,CAAC,CAAC;AAAE,kBAAG,CAAC,GAAE;AAAC,wBAAO,KAAK,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAG,KAAK;AAAG,2BAAO,GAAG,GAAE,GAAG,EAAE,GAAG;AAAA,kBAAE,KAAK;AAAG,2BAAO,GAAG,GAAE,GAAG,EAAE,GAAG;AAAA,gBAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAEA;AAAE,cAAAA,MAAE,EAAE,GAAG,CAAC;AAAE,cAAAA,OAAG,QAAM,EAAE,GAAG,GAAEA,MAAE,IAAI,MAAK,CAAC,CAAC;AAAE,kBAAE,GAAGA,KAAE,EAAE,EAAE,GAAG,GAAE,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,mBAAG,SAAO,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE,CAAC;AAAG,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,qBAAO,KAAG,QAAM,GAAG,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE;AAAE,eAAC,KAAG,EAAE,GAAG,GAAE,IAAE,IAAI,MAAK,CAAC,CAAC;AAAE,gBAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,mBAAG,QAAM,EAAE,GAAG,GAAE,IAAE,IAAI,MAAK,CAAC,CAAC;AAAE,kBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,uBAAO,GAAG,GAAE,EAAE;AAAA,cAAC,OAAK;AAAC,oBAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE;AAAE,uBAAO,IAAI,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE;AAAE,eAAC,KAAG,EAAE,GAAG,GAAE,IAAE,IAAI,MAAK,CAAC,CAAC;AAAE,gBAAE,GAAG;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,sDAAqD,EAAE;AAAE,gBAAI,KAAI,GAAE,CAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,wDAAuD,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG,KAAK,GAAE,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,EAAE,GAAG,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,GAAG,KAAK,GAAE,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,0DAAyD,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,EAAE,GAAG,GAAE,EAAE,GAAG,CAAC,KAAG,KAAK,IAAE,KAAK,GAAG,KAAG,IAAE,IAAI,CAAC,IAAE,EAAE,GAAG,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAEA;AAAE,eAAC,CAAC,EAAE,GAAG,MAAI,KAAG,IAAE,EAAE,GAAG,GAAE,KAAG,IAAE,EAAE,GAAG,CAAC,IAAE,EAAE,GAAG,EAAE,GAAG,GAAE,KAAG,GAAE,MAAK,CAAC;AAAI,cAAAA,MAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC;AAAE,qBAAO,EAAE,GAAG,GAAEA,KAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC;AAAE,qBAAO,EAAE,GAAG,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC;AAAE,qBAAO,CAAC,CAAC,EAAE,GAAG,KAAG,EAAE,GAAG,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAEA,KAAE,GAAET;AAAE,kBAAG,KAAG,QAAM,CAAC,IAAI,KAAK,GAAE,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,OAAK,GAAG,GAAE,EAAE,IAAE,IAAI,GAAG,GAAE,EAAE,EAAE,GAAG,CAAC,IAAE,IAAI,GAAG,CAAC,CAAC,KAAG,MAAI,KAAK,IAAE,GAAG,CAAC;AAAA,cAAC;AAAC,kBAAE,EAAE,GAAG;AAAE,cAAAS,MAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC;AAAE,kBAAG,GAAG,CAAC,MAAI,GAAG,CAAC,KAAG,EAAE,GAAG,KAAGA,OAAG,KAAG,MAAK;AAAC,oBAAG,IAAI,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,CAAC,CAAC;AAAE,gBAAAT,MAAE;AAAK,iBAAC,CAAC,MAAIA,OAAG,IAAE,EAAE,GAAG,GAAE,KAAG,IAAE,EAAE,GAAGA,GAAC,IAAE,EAAE,GAAG,EAAE,GAAG,GAAE,KAAG,GAAE,MAAKA,GAAC;AAAI,oBAAE,GAAG,GAAE,EAAE;AAAE,iBAAC,CAAC,MAAIA,MAAE,EAAE,GAAG,GAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAKA,GAAC;AAAG,gBAAAA,MAAE,EAAE,GAAG,GAAES,KAAET,GAAC;AAAE,iBAAC,CAACA,OAAGA,IAAE,GAAG;AAAA,cAAC,OAAK;AAAC,kBAAE,GAAG,KAAG,EAAE,GAAG,KAAG,IAAI,GAAE,IAAI,IAAI,GAAE,GAAES,KAAE,GAAE,CAAC,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA;AAAE,kBAAE,EAAE,GAAG;AAAE,kBAAG,GAAE;AAAC,gBAAAA,OAAG,IAAE,EAAE,GAAG,GAAE,KAAG,IAAE,EAAE,GAAG,IAAI,IAAE,EAAE,GAAG,EAAE,GAAG,GAAE,KAAG,GAAE,MAAK,IAAI;AAAG,oBAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC;AAAE,gBAAAA,MAAE,EAAE,GAAG,MAAK,GAAEA,GAAC;AAAE,iBAAC,CAACA,OAAGA,IAAE,GAAG;AAAA,cAAC,OAAK;AAAC,kBAAE,GAAG,KAAG,EAAE,GAAG,KAAG,IAAI,GAAE,IAAI,IAAI,GAAE,GAAE,KAAK,GAAE,MAAK,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,iEAAgE,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,0EAAyE,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,qBAAO,IAAE,EAAE,GAAG,CAAC,GAAE,KAAG,OAAK,KAAK,IAAE,GAAG,CAAC,MAAI,GAAG,GAAG,IAAE,OAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,qBAAO,KAAG,SAAO,GAAG,CAAC,MAAI,GAAG,GAAG,KAAG,CAAC,GAAG,GAAE,KAAK,CAAC;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,qBAAG,IAAE,EAAE,GAAG,CAAC,GAAE,KAAG,OAAK,KAAK,IAAE,GAAG,CAAC,MAAI,GAAG,GAAG,IAAE,OAAK;AAAG,oBAAG,KAAG,MAAK;AAAC,sBAAG,KAAK,KAAG,MAAK;AAAC,sBAAE,GAAG,GAAE,IAAI;AAAE,wBAAE,KAAK;AAAA,kBAAC;AAAM,yBAAK,KAAG,OAAK,EAAE,GAAG,GAAE,GAAG,IAAE,EAAE,GAAG,GAAE,IAAI;AAAA,gBAAC,OAAK;AAAC,uBAAK,GAAG,CAAC;AAAE,oBAAE,GAAG,GAAE,CAAC;AAAA,gBAAC;AAAC,oBAAI,GAAE,KAAK,EAAE,GAAG,GAAE,GAAE,KAAK,GAAE,GAAE,CAAC,CAAC;AAAA,cAAC,OAAK;AAAC,oBAAG,KAAG,MAAK;AAAC,uBAAK,KAAG,OAAK,EAAE,GAAG,GAAE,IAAI,IAAE,KAAK,KAAG,OAAK,EAAE,GAAG,GAAE,GAAG,IAAE,EAAE,GAAG,GAAE,IAAI;AAAA,gBAAC,OAAK;AAAC,uBAAK,GAAG,CAAC;AAAE,oBAAE,GAAG,GAAE,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,qBAAG,IAAE,EAAE,GAAG,CAAC,GAAE,KAAG,OAAK,KAAK,IAAE,GAAG,CAAC,MAAI,GAAG,GAAG,IAAE,OAAK;AAAG,kBAAE,GAAG,CAAC;AAAE,oBAAI,GAAE,KAAK,EAAE,GAAG,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC,CAAC;AAAA,cAAC,OAAK;AAAC,kBAAE,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,KAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4DAA2D,GAAG;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,gFAA+E,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,IAAI,GAAG,CAAC,CAAC,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,IAAI,GAAG,CAAC,CAAC,GAAE,IAAI,GAAG,CAAC,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,IAAI,GAAG,CAAC,CAAC,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,IAAI,GAAG,CAAC,CAAC,GAAE,IAAI,GAAG,CAAC,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG,GAAE,EAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,EAAE,EAAE,GAAE,GAAG,GAAE,EAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,IAAI,GAAE,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,MAAI,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mEAAkE,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kEAAiE,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,CAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,qBAAO,KAAG;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,oBAAE;AAAK,oBAAE,EAAE,GAAG,CAAC;AAAE,oBAAG,KAAG,MAAK;AAAC,sBAAE;AAAM,sBAAE,KAAK;AAAA,gBAAC;AAAM,qBAAG,CAAC,MAAI,GAAG,GAAG,MAAI,IAAE;AAAM,oBAAG,KAAG,MAAK;AAAC,sBAAG,KAAK,KAAG,MAAK;AAAC,sBAAE,GAAG,GAAE,IAAI;AAAE,wBAAE,KAAK;AAAA,kBAAC,OAAK;AAAC,sBAAE,GAAG,GAAE,GAAG;AAAA,kBAAC;AAAA,gBAAC,OAAK;AAAC,uBAAK,GAAG,CAAC;AAAE,oBAAE,GAAG,GAAE,CAAC;AAAA,gBAAC;AAAC,oBAAI,GAAE,KAAK,EAAE,GAAG,GAAE,GAAE,KAAK,GAAE,GAAE,GAAE,CAAC,CAAC,CAAC;AAAA,cAAC,OAAK;AAAC,oBAAG,KAAG,MAAK;AAAC,uBAAK,KAAG,OAAK,EAAE,GAAG,GAAE,IAAI,IAAE,EAAE,GAAG,GAAE,GAAG;AAAA,gBAAC,OAAK;AAAC,uBAAK,GAAG,CAAC;AAAE,oBAAE,GAAG,GAAE,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,oBAAE;AAAK,oBAAE,EAAE,GAAG,CAAC;AAAE,oBAAG,KAAG,MAAK;AAAC,sBAAE;AAAM,sBAAE,KAAK;AAAA,gBAAC;AAAM,qBAAG,CAAC,MAAI,GAAG,GAAG,MAAI,IAAE;AAAM,kBAAE,GAAG,CAAC;AAAE,oBAAI,GAAE,KAAK,EAAE,GAAG,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,GAAE,CAAC,CAAC;AAAA,cAAC,OAAK;AAAC,kBAAE,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sEAAqE,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,MAAI,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE,GAAG,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6EAA4E,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4EAA2E,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAEA,KAAE,GAAET,KAAE;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,kBAAG,KAAK,GAAG,KAAG,GAAG,CAAC,MAAI,GAAG,GAAG,GAAE;AAAC,uBAAO;AAAA,cAAI,WAAS,KAAK,GAAG,KAAG,KAAG,KAAG,MAAK;AAAC,oBAAE,GAAG,GAAE,EAAE;AAAE,oBAAG,EAAE,GAAG,GAAE;AAAC,kBAAAA,MAAE,IAAI,GAAE,CAAC;AAAE,sBAAG,KAAGA,KAAE;AAAC,wBAAG,CAAC,IAAI,KAAK,GAAEA,GAAC,GAAE;AAAC,4BAAM,IAAI,IAAI,IAAI,MAAI,GAAGA,GAAC,IAAE,MAAI,KAAK,IAAE,GAAG,CAAC;AAAA,oBAAC;AAAC,sBAAE,GAAG,GAAE,IAAEA,GAAC;AAAE,wBAAG,KAAK,GAAG,GAAE;AAAC,0BAAE,GAAGA,KAAE,EAAE;AAAE,sBAAAS,MAAE,EAAE,GAAG,GAAE,CAAC,KAAK,IAAE,KAAG,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,IAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAK,IAAI;AAAE,uBAAC,EAAE,GAAG,MAAIA,MAAE,EAAE,GAAG,GAAE,CAAC,KAAK,IAAE,KAAG,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,IAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAKA,GAAC;AAAG,uBAAC,CAACA,OAAGA,IAAE,GAAG;AAAA,oBAAC;AAAC,sBAAE,GAAG,KAAG,EAAE,GAAG,KAAG,IAAI,GAAE,IAAI,IAAI,GAAE,GAAE,KAAK,GAAE,GAAET,GAAC,CAAC;AAAA,kBAAC;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAC,OAAK;AAAC,uBAAO;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAES;AAAE,cAAAA,MAAE,EAAE,GAAG,CAAC;AAAE,iBAAGA,GAAC,MAAI,GAAG,GAAG,MAAIA,MAAE;AAAM,gBAAE,GAAG,GAAE,CAAC;AAAE,kBAAG,KAAK,GAAG,GAAE;AAAC,oBAAG,GAAGA,GAAC,MAAI,GAAG,CAAC,KAAGA,OAAG,MAAK;AAAC,sBAAE,GAAGA,KAAE,EAAE;AAAE,sBAAE,EAAE,GAAG,GAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAK,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAM,qBAAK,GAAG,KAAGA,OAAG,SAAO,IAAE,GAAGA,KAAE,EAAE,EAAE,GAAG,GAAE,KAAG,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAK,CAAC;AAAG,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,iBAAC,MAAI,IAAE,IAAI,IAAI,CAAC;AAAG,kBAAE,GAAG,IAAI,IAAI,GAAE,GAAE,KAAK,GAAEA,KAAE,CAAC,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,iBAAG,CAAC,MAAI,GAAG,GAAG,MAAI,IAAE;AAAM,gBAAE,GAAG,CAAC;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,iBAAC,MAAI,IAAE,IAAI,IAAI,CAAC;AAAG,qBAAK,GAAG,IAAE,EAAE,GAAG,IAAI,IAAI,GAAE,GAAE,KAAK,GAAE,GAAE,IAAI,CAAC,IAAE,EAAE,GAAG,IAAI,IAAI,GAAE,GAAE,KAAK,GAAE,GAAE,IAAI,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,qBAAO,KAAG;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAEA,KAAE,GAAET;AAAE,kBAAG,KAAG,QAAM,CAAC,IAAI,KAAK,GAAE,CAAC,GAAE;AAAC,sBAAM,IAAI,IAAI,IAAI,OAAK,GAAG,GAAE,EAAE,IAAE,IAAI,GAAG,GAAE,EAAE,EAAE,GAAG,CAAC,IAAE,IAAI,GAAG,CAAC,CAAC,KAAG,MAAI,KAAK,IAAE,GAAG,CAAC;AAAA,cAAC;AAAC,cAAAA,MAAE,EAAE,GAAG,CAAC;AAAE,kBAAEA,OAAG;AAAK,mBAAK,GAAG,KAAG,GAAGA,GAAC,MAAI,GAAG,GAAG,MAAIA,MAAE;AAAM,cAAAS,MAAE;AAAK,kBAAG,KAAK,GAAG,GAAE;AAAC,oBAAG,GAAGT,GAAC,MAAI,GAAG,CAAC,GAAE;AAAC,sBAAGA,OAAG,MAAK;AAAC,wBAAE,GAAGA,KAAE,EAAE;AAAE,oBAAAS,MAAE,EAAE,GAAG,GAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAKA,GAAC;AAAA,kBAAC;AAAC,sBAAG,KAAG,MAAK;AAAC,wBAAE,GAAG,GAAE,EAAE;AAAE,oBAAAA,MAAE,EAAE,GAAG,GAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAKA,GAAC;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC,WAAS,KAAK,GAAG,GAAE;AAAC,oBAAG,GAAGT,GAAC,MAAI,GAAG,CAAC,GAAE;AAAC,kBAAAA,OAAG,SAAOS,MAAE,GAAGT,KAAE,EAAE,EAAE,GAAG,GAAE,KAAG,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAKS,GAAC;AAAG,uBAAG,SAAOA,MAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE,KAAG,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAKA,GAAC;AAAA,gBAAE;AAAA,cAAC;AAAC,mBAAG,QAAM,KAAK,GAAG,IAAE,EAAE,GAAG,GAAE,GAAG,IAAE,EAAE,GAAG,GAAE,CAAC;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,oBAAE,IAAI,IAAI,GAAE,GAAE,KAAK,GAAET,KAAE,GAAE,KAAK,GAAG,KAAG,CAAC,CAAC;AAAE,oBAAG,CAACS,KAAE;AAAC,sBAAI,GAAE,CAAC;AAAA,gBAAC,OAAK;AAAC,kBAAAA,IAAE,GAAG,CAAC;AAAE,kBAAAA,IAAE,GAAG;AAAA,gBAAC;AAAA,cAAC;AAAM,iBAAC,CAACA,OAAGA,IAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAEA,KAAE;AAAE,kBAAE,EAAE,GAAG,CAAC;AAAE,cAAAA,MAAE,KAAG;AAAK,mBAAK,GAAG,KAAG,GAAG,CAAC,MAAI,GAAG,GAAG,MAAI,IAAE;AAAM,kBAAE;AAAK,kBAAG,KAAG,MAAK;AAAC,oBAAG,KAAK,GAAG,GAAE;AAAC,sBAAE,GAAG,GAAE,EAAE;AAAE,sBAAE,EAAE,GAAG,GAAE,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAK,CAAC;AAAA,gBAAC;AAAM,uBAAK,GAAG,MAAI,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAE,KAAG,IAAI,EAAE,GAAG,GAAE,KAAK,CAAC,GAAE,MAAK,CAAC;AAAA,cAAE;AAAC,gBAAE,GAAG,CAAC;AAAE,kBAAG,EAAE,GAAG,KAAG,EAAE,GAAG,GAAE;AAAC,oBAAE,IAAI,IAAI,GAAE,KAAK,GAAG,IAAE,IAAE,GAAE,KAAK,GAAE,GAAE,MAAKA,GAAC;AAAE,oBAAG,CAAC,GAAE;AAAC,sBAAI,GAAE,CAAC;AAAA,gBAAC,OAAK;AAAC,oBAAE,GAAG,CAAC;AAAE,oBAAE,GAAG;AAAA,gBAAC;AAAA,cAAC;AAAM,iBAAC,CAAC,KAAG,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,+DAA8D,GAAG;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,0EAAyE,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,mFAAkF,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,oFAAmF,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,6FAA4F,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,qFAAoF,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,8FAA6F,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,+FAA8F,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,wGAAuG,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,wEAAuE,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,kFAAiF,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,mFAAkF,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,6FAA4F,IAAI;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,yEAAwE,IAAI;AAAE,gBAAI,KAAI,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,0EAAyE,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,oFAAmF,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yDAAwD,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,KAAK,GAAE,EAAE,IAAE,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG,IAAE,CAAC,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,EAAE,GAAG;AAAE,mBAAK,EAAE,GAAG,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,iBAAG,KAAK,GAAE,EAAE,IAAE,GAAG,KAAK,GAAE,EAAE,EAAE,GAAG,IAAE,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sCAAqC,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,IAAI,GAAE,MAAK,KAAK,EAAE,GAAG,KAAK,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uDAAsD,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,mBAAkB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAG,IAAI,IAAG,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC,IAAG,IAAI,KAAK,IAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAG,IAAI,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,KAAG,IAAI,GAAE,OAAK,IAAG,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,MAAI,KAAK,GAAG,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK,MAAI;AAAA,gBAAK,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,IAAG,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,OAAK,KAAK,KAAG,IAAI,IAAI,IAAG,MAAK,GAAE,CAAC;AAAG,sBAAI,KAAK,EAAE;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,IAAG,IAAI;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,IAAE,GAAG,IAAI,MAAK,EAAE,GAAE,EAAE,GAAE,CAAC,IAAE,MAAI,IAAG,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE;AAAM,mBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,oBAAI,KAAK,GAAE,GAAE,EAAE,KAAG,SAAO,IAAE;AAAA,cAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAE,IAAI,IAAK,IAAI,IAAI,KAAK,CAAC,EAAG,CAAC,GAAE,IAAI,IAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,GAAG;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,MAAK,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC,IAAE,IAAI,MAAK,CAAC,IAAE,CAAC,CAAC,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,kBAAE,GAAG,CAAC,IAAE,IAAI,MAAK,CAAC,IAAE,GAAG,IAAI,KAAK,GAAE,CAAC,CAAC;AAAE,kBAAG,GAAG,GAAE,GAAG,GAAE;AAAC,oBAAE,GAAG,GAAE,GAAG;AAAE,oBAAE,EAAE,GAAG;AAAE,oBAAI,MAAK,GAAG,GAAE,GAAG,GAAE,CAAC;AAAE,uBAAO;AAAA,cAAC;AAAM,uBAAO,KAAG,OAAK,IAAE,KAAG,QAAM,IAAI,GAAE,OAAK;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,0BAAyB,IAAI;AAAE,gBAAI,MAAK,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,MAAK,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,EAAE,GAAG,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,CAAC,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,KAAG,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,CAAC;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE,GAAE;AAAE,sBAAO,EAAE,KAAG,OAAK,EAAE,KAAG,IAAE,IAAI,CAAC,GAAE,IAAE,IAAI,EAAE,GAAG,GAAE,CAAC,IAAE,MAAK,EAAE,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAOD,MAAE,IAAI,OAAIA;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAOC,MAAE,IAAI,OAAIA;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAG,yBAAOV,MAAE,IAAI,OAAIA;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,KAAG,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,EAAE,GAAG,GAAE;AAAA,gBAAC,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,GAAE,MAAK,GAAG,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,GAAE,KAAI,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO;AAAA,gBAAK,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK;AAAA,gBAAK,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,GAAE,KAAI,KAAK,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,MAAK,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG;AAAM,cAAE,KAAG;AAAM,gBAAI,KAAI,MAAI;AAAM,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,MAAK,EAAC,GAAE,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,uBAAsB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oDAAmD,IAAI;AAAE,gBAAI,MAAK,MAAK,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAG,IAAI,gCAA+B,eAAc,IAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,UAAU;AAAE,gBAAI,KAAI,MAAK,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,IAAI,IAAG,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE,EAAE;AAAO,kBAAG,IAAE,GAAE;AAAC,oBAAI,GAAE,EAAE,MAAM;AAAE,oBAAG,EAAE,WAAW,CAAC,KAAG,IAAG;AAAC,sBAAE,IAAI,IAAI,CAAC;AAAE,sBAAE;AAAE,uBAAI,IAAE,GAAE,IAAE,GAAE,EAAE,GAAE;AAAC,wBAAI,GAAE,EAAE,MAAM;AAAE,wBAAG,EAAE,WAAW,CAAC,KAAG,IAAG;AAAC,0BAAI,GAAE,KAAG,IAAE,KAAG,EAAE,OAAO,GAAE,IAAE,CAAC,CAAC;AAAE,0BAAE,IAAE;AAAA,oBAAC;AAAA,kBAAC;AAAC,sBAAI,GAAE,EAAE,OAAO,CAAC,CAAC;AAAE,yBAAO,IAAI,MAAK,CAAC;AAAA,gBAAC,OAAK;AAAC,sBAAI,IAAE,GAAE,EAAE,MAAM;AAAE,sBAAG,EAAE,WAAW,IAAE,CAAC,KAAG,IAAG;AAAC,wBAAE,IAAI,GAAE,IAAI,EAAE,GAAE,IAAE,CAAC;AAAE,wBAAE,MAAI,IAAE,EAAE,OAAO,GAAE,CAAC;AAAA,kBAAE;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,qBAAO,IAAI,KAAK,EAAE,IAAE,OAAK,IAAE,GAAG,IAAI,MAAI,GAAE,EAAE,SAAS,EAAE,KAAG,WAAS,KAAK,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,gBAAe,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE,IAAE,IAAI,MAAK,GAAG,GAAE,EAAE,CAAC,IAAE,GAAG,GAAE,GAAG,IAAE,IAAI,IAAI,GAAG,GAAE,GAAG,EAAE,GAAG,CAAC,IAAE,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,KAAG,IAAI,GAAE,IAAI;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,iCAAgC,IAAI;AAAE,gBAAI,MAAK,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,IAAE,GAAG,GAAE,EAAE,EAAE,GAAG,IAAE,IAAI,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI,KAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,KAAG,IAAE,IAAI,MAAK,CAAC,IAAE,GAAG,GAAE,EAAE,KAAG,GAAG,GAAE,EAAE,EAAE,GAAG,KAAG,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAG,KAAK,IAAE,MAAI,KAAK,EAAE,MAAI,KAAK,EAAE,IAAE,MAAK;AAAA,YAAM;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,mBAAG,IAAE,KAAK,EAAE,MAAI,KAAK,EAAE,IAAE,MAAK,QAAM,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,GAAE,EAAE;AAAE,kBAAE,EAAE,GAAG,KAAK,GAAE,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI;AAAE,kBAAE,GAAG,GAAE,EAAE;AAAE,qBAAO,EAAE,GAAG,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,8BAA6B,GAAG;AAAE,gBAAI,KAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,EAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,KAAG,MAAI,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,KAAG,OAAK,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAI,gBAAI,KAAG,IAAI,KAAI,oDAAmD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,MAAI,IAAI,GAAE,QAAM,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,MAAI,IAAI,GAAE,QAAM,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,eAAC,KAAK,KAAG,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,KAAG,OAAK,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,KAAG,MAAI,IAAI,MAAK,IAAI,KAAK,GAAE,KAAK,CAAC,CAAC;AAAE,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAI,cAAE,IAAE;AAAG,gBAAI,KAAG,IAAI,KAAI,uDAAsD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,sDAAqD,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAG,cAAE,IAAE;AAAI,cAAE,IAAE;AAAI,gBAAI,KAAG,IAAI,KAAI,gEAA+D,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,YAAY;AAAE,gBAAI,IAAG,KAAI,EAAC,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,MAAK,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAG,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET,KAAE,GAAE;AAAE,kBAAE,IAAI,IAAI,EAAE,GAAG,CAAC;AAAE,mBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,oBAAE,EAAE,GAAG;AAAE,oBAAG,IAAI,KAAK,GAAE,CAAC,GAAE;AAAC,mBAAC,CAAC,EAAE,GAAG,KAAG,CAAC,IAAI,MAAK,GAAE,EAAE,GAAG,CAAC,KAAG,CAAC,IAAI,GAAE,CAAC,MAAI,IAAI,GAAE,CAAC;AAAA,gBAAC,OAAK;AAAC,sBAAE,IAAI,KAAK,EAAE,GAAG,GAAE,CAAC;AAAE,sBAAE,GAAG,KAAK,GAAE,GAAG;AAAE,kBAAAS,MAAE;AAAK,uBAAI,IAAE,GAAE,IAAE,KAAK,GAAE,EAAE,GAAE;AAAC,oBAAAT,MAAE,EAAE,CAAC;AAAE,wBAAG,EAAE,GAAGA,IAAE,GAAG,CAAC,GAAE;AAAC,yBAAG,IAAI,MAAK,GAAE,CAAC,GAAE,EAAE;AAAE,sBAAAS,MAAE;AAAM;AAAA,oBAAK;AAAA,kBAAC;AAAC,kBAAAA,OAAG,IAAI,GAAE,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE;AAAE,cAAAA,MAAE,IAAI,IAAI,EAAE,GAAG,CAAC;AAAE,mBAAI,IAAE,EAAE,GAAG,GAAE,EAAE,GAAG,KAAG;AAAC,oBAAE,GAAG,EAAE,GAAG,GAAE,EAAE;AAAE,oBAAE,EAAE,GAAG;AAAE,oBAAG,IAAI,KAAK,GAAE,CAAC,GAAE;AAAC,mBAAC,CAAC,EAAE,GAAG,KAAG,CAAC,IAAI,MAAK,GAAE,EAAE,GAAG,CAAC,KAAG,CAAC,IAAIA,KAAE,CAAC,MAAI,IAAIA,KAAE,CAAC;AAAA,gBAAC,OAAK;AAAC,sBAAE,IAAI,KAAK,EAAE,GAAG,GAAE,CAAC;AAAE,sBAAE,GAAG,KAAK,GAAE,GAAG;AAAE,sBAAE;AAAK,uBAAIS,MAAE,GAAEA,MAAE,KAAK,GAAE,EAAEA,KAAE;AAAC,wBAAE,EAAEA,GAAC;AAAE,wBAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAE;AAAC,yBAAG,IAAI,MAAKA,KAAE,CAAC,GAAE,EAAE;AAAE,0BAAE;AAAM;AAAA,oBAAK;AAAA,kBAAC;AAAC,uBAAG,IAAIT,KAAE,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO,IAAI,MAAKA,GAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAG,qBAAO,IAAI,MAAK,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,MAAK,CAAC,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,MAAK,CAAC,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,CAAC,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mBAAkB,EAAE;AAAE,gBAAI,MAAK,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAK,KAAG,IAAG;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,kBAAG;AAAC,oBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,CAAC;AAAE,qBAAK,IAAE,KAAK,EAAE;AAAE,oBAAI,IAAI;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,wBAAM,IAAI,IAAI,KAAG;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,IAAI,IAAI,GAAE;AAAC,oBAAI,IAAI;AAAE,qBAAK,IAAE,EAAE,KAAK;AAAE,oBAAG,KAAK,GAAG,GAAE;AAAC,sBAAE,IAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,KAAK,CAAC;AAAE,uBAAK,IAAE;AAAA,gBAAC;AAAC,qBAAK,IAAE;AAAE,uBAAO,KAAK;AAAA,cAAC,OAAK;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAG,KAAK,KAAG,IAAG;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,kBAAG;AAAC,oBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,CAAC;AAAE,qBAAK,IAAE,KAAK,EAAE;AAAE,oBAAG,KAAK,IAAE,KAAK,GAAE;AAAC,oBAAE,KAAK;AAAE,oBAAE,KAAK;AAAA,gBAAC;AAAC,kBAAE,KAAK;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,wBAAM,IAAI,IAAI,KAAG;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAK,KAAG,IAAG;AAAC,sBAAM,IAAI,IAAI,KAAG;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,kBAAG;AAAC,oBAAI,KAAK,GAAE,KAAK,GAAE,KAAK,GAAE,CAAC;AAAE,qBAAK,IAAE,KAAK,EAAE;AAAA,cAAC,SAAO,GAAE;AAAC,oBAAE,IAAI,CAAC;AAAE,oBAAG,GAAG,GAAE,EAAE,GAAE;AAAC,wBAAM,IAAI,IAAI,KAAG;AAAA,gBAAC;AAAM,wBAAM,IAAI,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,IAAI;AAAE,gBAAI,KAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAE,KAAK,EAAE;AAAE,kBAAE,GAAG,KAAK,EAAE,GAAE,GAAG;AAAE,qBAAM,KAAK,IAAE,GAAE;AAAC,oBAAE,EAAE,KAAK,CAAC;AAAE,oBAAG,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAE;AAAC,uBAAK,IAAE,KAAK,IAAE,IAAE,EAAE,GAAG;AAAE,uBAAK,IAAE;AAAE,yBAAO;AAAA,gBAAI;AAAC,kBAAE,KAAK;AAAA,cAAC;AAAC,mBAAK,IAAE;AAAE,mBAAK,IAAE;AAAG,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,GAAG,KAAK,EAAE,GAAE,GAAG;AAAE,qBAAM,EAAE,KAAK,KAAG,GAAE;AAAC,oBAAE,EAAE,KAAK,CAAC;AAAE,oBAAG,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAE;AAAC,uBAAK,IAAE,KAAK,IAAE,IAAE,EAAE,GAAG;AAAE,uBAAK,IAAE;AAAG,yBAAO;AAAA,gBAAI;AAAA,cAAC;AAAC,mBAAK,IAAE;AAAG,mBAAK,IAAE;AAAG,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,wCAAuC,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAM,oBAAI,KAAK,GAAE,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC,OAAK;AAAC,qBAAK,IAAE;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qCAAoC,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAM,oBAAI,KAAK,GAAE,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC,OAAK;AAAC,qBAAK,IAAE;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,iDAAgD,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2DAA0D,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAM,oBAAI,KAAK,GAAE,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC,OAAK;AAAC,qBAAK,IAAE;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,IAAI;AAAE,gBAAI,MAAK,GAAE,CAAC,GAAE,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAM,oBAAI,KAAK,GAAE,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC,OAAK;AAAC,qBAAK,IAAE;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,sCAAqC,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,kDAAiD,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,IAAG,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,gDAA+C,EAAE;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+CAA8C,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,2DAA0D,IAAI;AAAE,gBAAI,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,SAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,OAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,OAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,OAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,CAAC,KAAK,IAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAE,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,MAAI,KAAG,KAAK,IAAE,MAAI,IAAE,KAAK,KAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,QAAM;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,mBAAI,KAAK,IAAE,MAAI,GAAE;AAAC,oBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,uBAAG,KAAK,IAAE,MAAI;AAAE,uBAAK,KAAG;AAAG,sBAAI,MAAK,IAAI,IAAI,KAAK,GAAE,GAAE,IAAI,KAAK,EAAE,GAAG,GAAE,KAAK,GAAG,CAAC,GAAE,GAAE,KAAK,CAAC;AAAA,gBAAC,OAAK;AAAC,uBAAK,KAAG;AAAA,gBAAE;AAAA,cAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,SAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,MAAK,MAAK,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,EAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,iBAAG,IAAE,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAE,iBAAG,CAAC,MAAI,GAAG,CAAC,KAAG,GAAG,GAAE,GAAG,EAAE,GAAG,IAAI,GAAG,GAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAAE,kBAAI,KAAK,GAAE,GAAG,GAAE,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,6CAA4C,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,IAAE;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAG,IAAI,KAAK,CAAC,GAAE;AAAC,oBAAE,KAAK;AAAE,qBAAK,IAAE;AAAM,oBAAI,KAAK,GAAE,IAAI,IAAI,KAAK,GAAE,GAAE,KAAK,GAAE,GAAE,KAAK,CAAC;AAAA,cAAC,OAAK;AAAC,qBAAK,IAAE;AAAA,cAAK;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,kEAAiE,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,KAAK;AAAE,mBAAK,IAAE;AAAK,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,mBAAK,EAAE,GAAG;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,mCAAkC,GAAG;AAAE,gBAAI,MAAK,MAAK,CAAC,GAAE,GAAG;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,kBAAiB,IAAI;AAAE,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,0BAA0B;AAAE,gBAAI,MAAK,GAAE,EAAC,MAAK,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,gBAAI,KAAG,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,EAAC,MAAK,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG;AAAE,uBAAO;AAAK,kBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,CAAC;AAAE,kBAAG,KAAG,MAAK;AAAC,oBAAG,IAAI,MAAK,CAAC,GAAE;AAAC,sBAAI,KAAK,GAAE,IAAG,IAAI,GAAE,IAAI;AAAE,yBAAO;AAAA,gBAAI,OAAK;AAAC,sBAAI,KAAK,GAAE,IAAG,IAAI,GAAE,IAAI;AAAE,yBAAO;AAAA,gBAAK;AAAA,cAAC,OAAK;AAAC,uBAAO,MAAI,IAAI,GAAE;AAAA,cAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,gBAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,IAAG,EAAC,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,CAAC;AAAE,kBAAI,MAAK,GAAG,GAAE,EAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,IAAI;AAAI,gBAAE,KAAG;AAAI,mBAAI,IAAE,IAAI,KAAK,GAAE,KAAK,CAAC,GAAE,IAAI,CAAC,KAAG;AAAC,oBAAI,GAAE,IAAI,IAAI,CAAC,CAAC,CAAC;AAAE,oBAAI,CAAC,MAAI,EAAE,KAAG,KAAI;AAAA,cAAE;AAAC,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,GAAG;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAES,KAAE;AAAE,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAE,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,sBAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,yBAAK,IAAE,EAAE,GAAG;AAAE,sBAAE,GAAG,KAAG,MAAI,KAAK,IAAE;AAAG,2BAAO;AAAA,kBAAI;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,6BAAK,IAAE;AAAE,4BAAE,IAAI,IAAI,CAAC;AAAE,4BAAI,GAAE,KAAK,CAAC;AAAE,4BAAI,GAAE,EAAE,GAAG,CAAC;AAAE,6BAAK,IAAE;AAAE,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,4BAAE,GAAG,KAAK,GAAE,EAAE;AAAE,0BAAE,GAAG,EAAE,GAAG,CAAC;AAAE,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,6BAAK,IAAE;AAAE,6BAAK,IAAE,EAAE,GAAG;AAAE,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,6BAAK,IAAE;AAAE,4BAAE,IAAI,IAAI,CAAC;AAAE,4BAAI,GAAE,KAAK,CAAC;AAAE,4BAAI,GAAE,EAAE,GAAG,CAAC;AAAE,6BAAK,IAAE;AAAE,wBAAAA,MAAE,GAAG,GAAG,IAAG,CAAC,GAAE,KAAI,IAAG,IAAG,CAAC,KAAK,GAAE,EAAE,GAAG,CAAC,CAAC;AAAE,6BAAK,IAAEA;AAAE,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,gBAAC,KAAK,GAAE;AAAC,sBAAE,EAAE,GAAG;AAAE,0BAAO,GAAE;AAAA,oBAAC,KAAK,GAAE;AAAC,0BAAE,EAAE,GAAG;AAAE,0BAAG,GAAG,CAAC,MAAI,GAAG,KAAK,CAAC,KAAG,IAAI,MAAK,IAAI,KAAG,EAAE,GAAG,IAAI,GAAE;AAAC,4BAAE,GAAG,KAAK,GAAE,EAAE;AAAE,0BAAE,GAAG,EAAE,GAAG,CAAC;AAAE,wBAAAA,MAAE,GAAG,KAAK,GAAE,EAAE;AAAE,4BAAE,GAAG,IAAG,KAAI,IAAGA,IAAE,SAAO,GAAE,IAAG,CAAC;AAAE,4BAAIA,KAAE,GAAE,GAAE,GAAEA,IAAE,MAAM;AAAE,0BAAEA,IAAE,MAAM,IAAE,EAAE,GAAG;AAAE,6BAAK,IAAE;AAAE,+BAAO;AAAA,sBAAI;AAAC;AAAA,oBAAK;AAAA,kBAAC;AAAC;AAAA,gBAAK;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAK;AAAE,gBAAI,KAAG,IAAI,KAAI,2CAA0C,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,MAAK,GAAE,IAAG,GAAE,IAAG,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,KAAK,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,KAAK,GAAE,KAAK,GAAE,GAAE,KAAK,GAAE,EAAE,EAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,CAAC,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,KAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,oCAAmC,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,KAAK,GAAE,KAAK,GAAE,IAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,IAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,KAAK,GAAE,KAAK,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,KAAK,GAAE,KAAK,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,+BAA8B,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,SAAS;AAAE,gBAAI,KAAI,IAAG,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,iCAAgC,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI;AAAI,gBAAI;AAAI,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK,EAAE;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAE,0BAAQ,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,GAAG,GAAG,GAAG;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK,EAAE;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,KAAK,GAAG,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,0BAAQ,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,EAAE,GAAG,GAAG,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,KAAK,IAAE,MAAI,IAAE,KAAK,GAAG,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,EAAE,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAG,GAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,KAAK,GAAG,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,GAAG,GAAG,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,KAAK,GAAG,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAG,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,IAAI,KAAK,GAAG,CAAC,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,KAAK,GAAG,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,IAAE,MAAI;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAY,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAmB,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,MAAK,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,KAAK,KAAG;AAAA,cAAK;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,uBAAK,IAAE;AAAK;AAAA,gBAAO,KAAK;AAAE,uBAAK,IAAE;AAAK;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,IAAE,MAAI;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAW,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAa,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAK,gBAAI,KAAG,IAAI,KAAI,6BAA4B,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,MAAK,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK,EAAE;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG;AAAE,0BAAQ,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,GAAG,GAAG,GAAG;AAAA,gBAAE,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK,EAAE;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,MAAK,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,KAAK,IAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,MAAK,IAAI,CAAC,EAAE;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,EAAE,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAG,GAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,MAAK,IAAI,CAAC,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,IAAI,KAAK,IAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,MAAK,IAAI,CAAC,EAAE,KAAG;AAAA,gBAAK,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAE,GAAG,GAAG,GAAG,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,KAAK,GAAE,CAAC,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,GAAG,GAAE,GAAG,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,GAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAG,GAAG,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,IAAG,IAAI,GAAE,MAAK,IAAI;AAAE;AAAA,gBAAO,KAAK;AAAE,sBAAI,MAAK,IAAI,KAAK,GAAE,IAAI,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,uBAAK,IAAE;AAAK;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,MAAK,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,sBAAG;AAAE,2BAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,KAAK,EAAE;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC,IAAG,KAAK,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,CAAC;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAG,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC,IAAG,KAAK,MAAI,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,CAAC;AAAA,gBAAG,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE,GAAE;AAAC,kBAAI;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC,IAAG,IAAI,KAAK,GAAE,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,IAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAE,GAAG,KAAK,KAAK,IAAE,MAAI,KAAG,IAAI,GAAE,QAAM,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,MAAK,IAAI,IAAI,GAAE,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,CAAC,KAAK,KAAG,KAAK,EAAE,KAAG;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,CAAC,IAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,CAAC,IAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,CAAC,IAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC,IAAG,CAAC,IAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAA,cAAE;AAAC,qBAAO,IAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC;AAAG,sBAAI,KAAK,GAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,GAAE,GAAG,GAAE,GAAG,GAAE,EAAE,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,KAAK,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC;AAAG,uBAAK,EAAE,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,KAAK,IAAI,GAAE,MAAK,IAAG,MAAK,CAAC;AAAG,uBAAK,EAAE,EAAE,GAAG;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE;AAAA,gBAAO,KAAK;AAAE,mBAAC,KAAK,MAAI,KAAK,IAAE,IAAI,IAAI,MAAK,CAAC;AAAG,sBAAI,IAAI,KAAK,IAAG,IAAI,GAAE,IAAI,CAAC;AAAE;AAAA,cAAO;AAAC,kBAAI,MAAK,IAAE,KAAK,IAAI,GAAE,IAAI,GAAE,KAAK,KAAK,IAAE,MAAI,IAAE,OAAK,CAAC,KAAK,MAAI,KAAK,IAAE,IAAI,QAAK,KAAK,GAAG,GAAG,GAAE,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAI,KAAK,IAAE,MAAI;AAAE,uBAAO,IAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,gBAAE,KAAG;AAAY,kBAAI,GAAE,KAAK,CAAC;AAAE,gBAAE,KAAG;AAAI,qBAAO,EAAE;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,MAAK,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,MAAK,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,sBAAO,EAAE,GAAG,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,KAAG,OAAK,OAAK,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,IAAI,MAAK,GAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,GAAG,GAAE,GAAG,EAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,GAAG,GAAE,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,GAAG,GAAE,EAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,GAAG,GAAE,EAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,sBAAO,EAAE,KAAG,OAAK,EAAE,KAAG,IAAE,IAAI,CAAC,GAAE,IAAE,IAAI,EAAE,GAAG,GAAE,CAAC,IAAE,MAAK,EAAE,GAAE;AAAA,gBAAC,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAE,IAAI,OAAI;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,KAAG,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAEA,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE,GAAE,GAAEU,KAAE,GAAE,GAAE;AAAE,sBAAO,EAAE,GAAG,GAAE;AAAA,gBAAC,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAE,yBAAO;AAAA,gBAAE,KAAK;AAAE,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAG,OAAK,OAAK,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAE,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,MAAK,GAAG,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,MAAK,GAAG,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,IAAI,GAAE,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,IAAI,GAAE,IAAI;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,KAAI,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,KAAI,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,EAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAKA,MAAE,IAAI,GAAE,IAAI,GAAEA,IAAE,SAAO,MAAI,IAAI,GAAEA,IAAE,MAAM,GAAEA,IAAE,WAAW,CAAC,KAAG,MAAIA,IAAE,OAAO,CAAC,IAAEA,IAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,IAAI,GAAE,KAAK;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAA,gBAAG,KAAK;AAAG,yBAAO,KAAK,IAAI,GAAE,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,KAAI,KAAK,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,KAAI,KAAK,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,GAAG,IAAI,OAAM,IAAI,GAAE,MAAK,CAAC,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAKD,MAAE,IAAI,GAAE,IAAI,GAAEA,IAAE,SAAO,MAAI,IAAI,GAAEA,IAAE,MAAM,GAAEA,IAAE,WAAW,CAAC,KAAG,MAAIA,IAAE,OAAO,CAAC,IAAEA,MAAG,KAAI,KAAK,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,KAAI,KAAK,KAAG,MAAI,EAAE;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAKT,MAAE,IAAI,GAAE,IAAI,GAAEA,IAAE,SAAO,MAAI,IAAI,GAAEA,IAAE,MAAM,GAAEA,IAAE,WAAW,CAAC,KAAG,MAAIA,IAAE,OAAO,CAAC,IAAEA,IAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,EAAE,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,KAAK,IAAE,IAAI,GAAE,IAAI,GAAE,EAAE,SAAO,MAAI,IAAI,GAAE,EAAE,MAAM,GAAE,EAAE,WAAW,CAAC,KAAG,MAAI,EAAE,OAAO,CAAC,IAAE,IAAG,KAAI,GAAG,CAAC;AAAA,gBAAE,KAAK;AAAG,yBAAO,KAAG,OAAK,OAAK,IAAI,IAAI,IAAI,GAAE,IAAI,GAAE,KAAI,GAAG,CAAC;AAAA,gBAAE;AAAQ,wBAAM,IAAI,IAAI,IAAI,MAAI,EAAE,GAAG,IAAE,GAAG,CAAC;AAAA,cAAE;AAAA,YAAC;AAAE,gBAAI,KAAI,KAAI,KAAI;AAAI,gBAAI,KAAG,IAAI,KAAI,sBAAqB,IAAI;AAAE,gBAAI,KAAI,KAAI,EAAC,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,KAAI,GAAE,MAAK,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,MAAI;AAAM,gBAAI,MAAI,IAAI,KAAI,sBAAqB,GAAG;AAAE,gBAAI,MAAK,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,KAAG,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,MAAK,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,IAAG,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAG,KAAI,KAAI,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,IAAI;AAAE,gBAAI,KAAI;AAAI,gBAAI,KAAI;AAAI,gBAAI;AAAI,gBAAI,IAAG,IAAG,KAAI,GAAG;AAAE,gBAAI,MAAI,IAAI,KAAI,wBAAuB,EAAE;AAAE,gBAAI,KAAI,GAAE,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAE,KAAK,KAAG,IAAI,KAAK,GAAE,CAAC,KAAG;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG;AAAG,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAE,KAAK;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAI,sBAAE;AAAG;AAAA,gBAAM,KAAK;AAAI,sBAAE;AAAG;AAAA,gBAAM,KAAK;AAAI,sBAAE;AAAG;AAAA,gBAAM,KAAK;AAAI,sBAAE;AAAG;AAAA,gBAAM,KAAK;AAAI,sBAAE;AAAE;AAAA,gBAAM,KAAK;AAAI,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAG,KAAK,KAAG,KAAI;AAAC,wBAAE;AAAE,wBAAE;AAAE,uBAAE;AAAC,0BAAI,IAAI;AAAE,0BAAG,KAAK,KAAG;AAAE,8BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,2BAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE;AAAM,0BAAG,IAAE,IAAE;AAAG,8BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,0BAAE,IAAE,KAAG;AAAA,oBAAC,SAAO;AAAM,wBAAG,KAAK,KAAG;AAAI,4BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,wBAAG,IAAE;AAAI,4BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,wBAAE;AAAA,kBAAC,OAAK;AAAC,wBAAE;AAAE,wBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,4BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,wBAAE;AAAE,wBAAI,IAAI;AAAE,wBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,4BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,wBAAE,IAAE,KAAG;AAAE,wBAAE;AAAA,kBAAC;AAAC;AAAA,gBAAM,KAAK;AAAI,sBAAE;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAE;AAAE;AAAA,gBAAM,KAAK;AAAI,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG,MAAI,IAAE,IAAI,KAAK,CAAC,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,IAAE,KAAG;AAAE,sBAAG,IAAE;AAAI,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,oBAAoB,CAAC,CAAC;AAAE,sBAAE;AAAE;AAAA,gBAAM,KAAK;AAAA,gBAAG,KAAK;AAAA,gBAAG,KAAK;AAAI,wBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE;AAAE,sBAAO,GAAE;AAAA,gBAAC,KAAK;AAAI,uBAAG,KAAK,IAAE,OAAK,KAAG,IAAI,MAAK,IAAI,KAAG,IAAI,GAAE;AAAK;AAAA,gBAAM,KAAK;AAAG,uBAAG,KAAK,IAAE,OAAK,KAAG,IAAI,MAAK,KAAK,KAAG,IAAI,GAAE;AAAK;AAAA,gBAAM,KAAK;AAAI,uBAAG,KAAK,IAAE,OAAK,KAAG,IAAI,UAAS,IAAI,KAAG,IAAI,GAAE;AAAK;AAAA,gBAAM,KAAK;AAAG,uBAAG,KAAK,IAAE,OAAK,KAAG,IAAI,UAAS,KAAK,KAAG,IAAI,GAAE;AAAK;AAAA,gBAAM,KAAK;AAAI,uBAAG,KAAK,IAAE,OAAK,KAAG,IAAI,WAAU,IAAI,KAAG,IAAI,GAAE;AAAK;AAAA,gBAAM,KAAK;AAAG,uBAAG,KAAK,IAAE,OAAK,KAAG,IAAI,WAAU,KAAK,KAAG,IAAI,GAAE;AAAK;AAAA,gBAAM;AAAQ,wBAAM,IAAI,IAAI,IAAI,IAAE,GAAE,MAAI,EAAE,SAAS,EAAE,EAAE,CAAC;AAAA,cAAE;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE,GAAES,KAAE,GAAET,KAAE,GAAE,GAAE,GAAE;AAAE,mBAAK,IAAE;AAAE,kBAAI,IAAI;AAAE,kBAAE;AAAK,kBAAG,KAAK,KAAG,KAAG,KAAK,KAAG,IAAG;AAAC,oBAAI,IAAI;AAAE,oBAAG,GAAE;AAAC,uBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,CAAC;AAAA,gBAAE,OAAK;AAAC,uBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,CAAC;AAAG,sBAAI,GAAE,GAAE,GAAG;AAAE,uBAAG,MAAK,EAAE,KAAI,IAAI,IAAI,CAAC;AAAA,gBAAE;AAAA,cAAC,OAAK;AAAC,qBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,CAAC;AAAA,cAAE;AAAC,kBAAE;AAAK,sBAAO,IAAE,KAAK,MAAI,GAAE;AAAC,oBAAG,KAAG,KAAG,KAAK,KAAG,MAAI,CAAC;AAAE;AAAM,oBAAE;AAAM,oBAAE,KAAK;AAAE,oBAAE;AAAM,oBAAG,KAAG,IAAG;AAAC,0BAAO,GAAE;AAAA,oBAAC,KAAK;AAAA,oBAAI,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAI,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAI,KAAK;AAAG,0BAAI,GAAE,KAAK,GAAG,CAAC,CAAC;AAAE,0BAAE;AAAK;AAAA,oBAAM,KAAK;AAAA,oBAAI,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAG,0BAAE,KAAK,GAAG,GAAE,CAAC;AAAE,0BAAE,MAAI,IAAE;AAAM;AAAA,oBAAM,KAAK;AAAA,oBAAI,KAAK;AAAG,0BAAE,IAAI,MAAK,CAAC;AAAE,0BAAG,CAAC;AAAE,8BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,0BAAI,GAAE,CAAC;AAAE,0BAAE;AAAK;AAAA,oBAAM;AAAQ,0BAAE,KAAK,GAAG;AAAA,kBAAE;AAAA,gBAAC,WAAS,KAAG,IAAG;AAAC,kBAAAS,MAAE,IAAI,KAAK,GAAE,IAAG,KAAK,CAAC;AAAE,sBAAGA,MAAE;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE;AAAK,sBAAG,IAAI,KAAK,GAAE,KAAK,CAAC,KAAG,IAAG;AAAC,sBAAE,KAAK;AAAE,wBAAE;AAAA,kBAAK;AAAC,sBAAE,IAAI,KAAK,GAAE,KAAK,GAAEA,GAAC;AAAE,kBAAAT,MAAE,IAAI,GAAE,IAAG,KAAK,IAAE,QAAM,GAAG;AAAE,sBAAG,CAACA;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAI,GAAEA,GAAC;AAAE,sBAAE;AAAK,sBAAGS,MAAE,KAAG,KAAK,KAAG,IAAI,KAAK,GAAEA,MAAE,CAAC,KAAG;AAAG,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,uBAAK,IAAEA,MAAE;AAAA,gBAAC;AAAC,oBAAI,IAAI;AAAE,oBAAG,CAAC,GAAE;AAAC,sBAAG,KAAK,KAAG,KAAG,KAAK,KAAG,IAAG;AAAC,wBAAI,GAAE,GAAE,CAAC;AAAA,kBAAC,OAAK;AAAC,wBAAI,IAAI;AAAE,yBAAI,IAAE,KAAK,MAAI;AAAE,4BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,wBAAG,KAAG,KAAG,KAAK,KAAG,IAAG;AAAC,0BAAI,GAAE,GAAE,CAAC;AAAE,0BAAI,GAAE,IAAG,EAAE;AAAA,oBAAC,OAAK;AAAC,0BAAE,KAAK;AAAE,2BAAG,OAAK,IAAE,KAAK,GAAG;AAAG,0BAAI,IAAI;AAAE,0BAAI,GAAE,GAAE,CAAC;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAC,iBAAC,KAAK,IAAE,QAAM,OAAK,KAAK,KAAG,KAAG,KAAK,KAAG,MAAI,IAAI,IAAI;AAAA,cAAC;AAAC,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAG,GAAE;AAAC,oBAAI,GAAE,CAAC;AAAE,oBAAE;AAAA,cAAC;AAAC,kBAAI,CAAC;AAAE,kBAAI,CAAC;AAAE,mBAAK,IAAE;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE;AAAE,kBAAE,KAAK,GAAG,KAAK;AAAE,sBAAO,IAAE,KAAK,MAAI,GAAE;AAAC,oBAAE,KAAK;AAAE,oBAAG,KAAG,MAAI,KAAG,MAAI,KAAG,OAAK,KAAG,GAAE;AAAC,sBAAI,IAAI;AAAE,sBAAG,KAAK,KAAG;AAAE,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,sBAAE,KAAK,GAAG,KAAK;AAAE,sBAAG,KAAG;AAAE,wBAAI,GAAE,CAAC;AAAA,2BAAU,KAAG;AAAG,wBAAI,GAAE,CAAC;AAAA,2BAAU,KAAG;AAAG,wBAAI,GAAE,CAAC;AAAA;AAAO,0BAAM,IAAI,IAAI,GAAG,QAAQ,CAAC;AAAA,gBAAC,OAAK;AAAC,wBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,gBAAC;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAE,KAAK,IAAE;AAAG,mBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,IAAG,MAAK,CAAC;AAAG,eAAC,KAAK,MAAI,KAAK,IAAE,IAAI;AAAK,kBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG,KAAK,OAAK,IAAE,IAAI,KAAK,GAAE,KAAK,GAAG,KAAG,UAAQ;AAAG,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,IAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,mBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,GAAG;AAAG,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,KAAK,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,IAAE,KAAG,KAAK;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAE;AAAG,kBAAE;AAAK,kBAAE,IAAI,KAAK,GAAE,KAAK,CAAC;AAAE,kBAAG,MAAI,KAAG,KAAG,IAAG;AAAC,oBAAE,IAAE;AAAG,iBAAC,KAAK,MAAI,KAAK,IAAE,IAAI;AAAK,oBAAI,KAAK,GAAE,IAAI,IAAI,CAAC,CAAC;AAAE,kBAAE,KAAK;AAAE,oBAAG,IAAI,KAAK,GAAE,KAAK,CAAC,KAAG;AAAG,wBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAE,KAAK;AAAA,cAAC,OAAK;AAAC,qBAAG,MAAI,EAAE,KAAK;AAAE,oBAAI,IAAI;AAAE,oBAAE,IAAI,IAAI;AAAE,wBAAO,EAAE,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAG,KAAK;AAAA,kBAAG,KAAK;AAAA,kBAAG,KAAK;AAAG;AAAA,kBAAM,KAAK;AAAE,wBAAG,KAAK,KAAG;AAAE,4BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE;AAAA,kBAAM;AAAQ,0BAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,gBAAE;AAAA,cAAC;AAAC,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAI;AAAE,kBAAE;AAAK,kBAAG,EAAE,KAAG,GAAE;AAAC,oBAAG,EAAE,GAAG,KAAG;AAAE,wBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,oBAAE,EAAE,GAAG,CAAC;AAAE,oBAAE,EAAE,GAAG,CAAC;AAAA,cAAC;AAAC,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,GAAE,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE;AAAA,YAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAG,IAAI,IAAI,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAG,IAAI,IAAI,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAG,IAAI,IAAI,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAE;AAAE,kBAAE;AAAE,kBAAE;AAAG,qBAAM,KAAK,IAAE,KAAK,GAAE;AAAC,oBAAE,IAAI,KAAK,GAAE,KAAK,CAAC;AAAE,oBAAE,IAAI,CAAC;AAAE,oBAAG,KAAG;AAAE;AAAM,qBAAG;AAAE,kBAAE,KAAK;AAAA,cAAC;AAAC,kBAAG,KAAK,KAAG,KAAK;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAG,KAAG,IAAG;AAAC,kBAAE,KAAK;AAAE,uBAAM,KAAK,IAAE,KAAK,GAAE;AAAC,sBAAE,IAAI,KAAK,GAAE,KAAK,CAAC;AAAE,sBAAE,IAAI,CAAC;AAAE,sBAAG,KAAG;AAAE;AAAM,uBAAG;AAAE,oBAAE,KAAK;AAAA,gBAAC;AAAC,oBAAG,KAAK,KAAG,KAAK;AAAE,wBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,cAAC;AAAC,kBAAG,KAAG,IAAG;AAAC,kBAAE,KAAK;AAAE,oBAAI,IAAI;AAAE,oBAAE,IAAI,IAAI,IAAI,GAAE,GAAE,CAAC;AAAE,oBAAG,KAAK,KAAG;AAAE,wBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,oBAAI,IAAI;AAAA,cAAC,WAAS,KAAG,IAAG;AAAC,kBAAE,KAAK;AAAE,oBAAI,IAAI;AAAE,oBAAE,IAAI,IAAI,IAAI,GAAE,GAAE,CAAC;AAAA,cAAC;AAAM,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAG,IAAI,IAAI,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAG,IAAI,IAAI,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,GAAE;AAAE,kBAAI,IAAI;AAAE,kBAAE,KAAK;AAAI,kBAAE,IAAI,IAAI,IAAI,GAAE,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,GAAE,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,IAAI;AAAE,kBAAG,KAAK,KAAG,GAAE;AAAC,oBAAI,IAAI;AAAE,uBAAO,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,CAAC,EAAE;AAAA,cAAC;AAAM,uBAAO,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,CAAC,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,mBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,CAAC;AAAG,kBAAG,KAAK,KAAG,GAAE;AAAC,oBAAI,IAAI;AAAE,oBAAI,IAAG,MAAK,IAAI;AAAE,oBAAI,GAAE,CAAC;AAAA,cAAC,OAAK;AAAC,oBAAI,GAAE,CAAC;AAAE,oBAAI,IAAG,MAAK,IAAI;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,IAAI;AAAE,kBAAG,KAAK,KAAG,GAAE;AAAC,oBAAI,IAAI;AAAE,uBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,CAAC;AAAA,cAAC;AAAM,uBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAK,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,qBAAoB,GAAG;AAAE,gBAAI,MAAK,KAAI,CAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE,GAAE;AAAC,qBAAO,IAAI,GAAE,IAAI,CAAC,CAAC,GAAE;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,kBAAE,IAAI,IAAI,IAAI,GAAE,CAAC;AAAE,kBAAG,KAAK,KAAG;AAAE,sBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAE,kBAAI,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,IAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,CAAC,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAI,IAAI;AAAE,mBAAG,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,CAAC;AAAG,kBAAI,GAAE,CAAC;AAAE,kBAAI,IAAG,MAAK,IAAI;AAAE,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,IAAI;AAAE,qBAAO,IAAI,GAAE,IAAI,GAAE,EAAE,KAAI,IAAI,IAAI,GAAE,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,MAAK,MAAI;AAAK,gBAAI,MAAI,IAAI,KAAI,4BAA2B,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,oBAAM,IAAI,IAAI,GAAG,gBAAgB,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAI;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,KAAG,KAAG,MAAI;AAAA,YAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAI,MAAK,KAAI,MAAI,MAAK,KAAI,KAAI,MAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAI;AAAE,gBAAI,MAAI,IAAI,KAAI,eAAc,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG,GAAE;AAAC,oBAAG,QAAM;AAAI,sBAAE;AAAA,yBAAY,QAAM;AAAI,sBAAE;AAAA,yBAAc,QAAM;AAAI,sBAAE;AAAA,yBAAc,QAAM;AAAI,sBAAE;AAAA,qBAAU;AAAC,sBAAE,IAAI;AAAI,oBAAE,KAAG;AAAI,uBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,QAAO,KAAG,GAAE;AAAC,qBAAC,IAAE,QAAM,KAAG,IAAE,MAAI,EAAE,KAAG,KAAI;AAAG,wBAAG,KAAK,EAAE,CAAC,MAAI,KAAK,EAAE,IAAE,CAAC,GAAE;AAAC,0BAAI,GAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AAAA,oBAAC,OAAK;AAAC,0BAAI,GAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AAAE,wBAAE,KAAG;AAAI,0BAAI,GAAE,IAAI,KAAK,EAAE,IAAE,CAAC,CAAC,CAAC;AAAA,oBAAC;AAAA,kBAAC;AAAC,oBAAE,KAAG;AAAI,sBAAE,EAAE;AAAA,gBAAC;AAAA,cAAC,OAAK;AAAC,oBAAG,QAAM;AAAI,sBAAE;AAAA,yBAAc,QAAM;AAAI,sBAAE;AAAA,yBAAc,QAAM;AAAI,sBAAE;AAAA,qBAAU;AAAC,sBAAE,IAAI;AAAI,oBAAE,KAAG;AAAK,uBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,QAAO,KAAG,GAAE;AAAC,qBAAC,IAAE,QAAM,KAAG,IAAE,MAAI,EAAE,KAAG,KAAI;AAAG,wBAAG,KAAK,EAAE,CAAC,MAAI,KAAK,EAAE,IAAE,CAAC,GAAE;AAAC,0BAAI,GAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AAAA,oBAAC,OAAK;AAAC,0BAAI,GAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AAAE,wBAAE,KAAG;AAAI,0BAAI,GAAE,IAAI,KAAK,EAAE,IAAE,CAAC,CAAC,CAAC;AAAA,oBAAC;AAAA,kBAAC;AAAC,oBAAE,KAAG;AAAI,sBAAE,EAAE;AAAA,gBAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAM,cAAE,IAAE;AAAM,gBAAI,MAAI,IAAI,KAAI,oBAAmB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,uCAAsC,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,GAAE,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAG;AAAK,uBAAO;AAAM,kBAAG,CAAC,GAAG,GAAE,GAAG;AAAE,uBAAO;AAAM,kBAAE,GAAG,GAAE,GAAG;AAAE,qBAAO,IAAI,KAAK,GAAE,EAAE,CAAC,KAAG,KAAK,KAAG,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,KAAK,IAAE,MAAI,IAAI,KAAK,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,GAAG,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE;AAAE,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAE,0BAAO,KAAK,GAAE;AAAA,oBAAC,KAAK;AAAA,oBAAI,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAG,KAAK;AAAA,oBAAI,KAAK;AAAG,0BAAE,OAAK,GAAG,KAAK,IAAE,GAAG;AAAE;AAAA,oBAAM,KAAK;AAAG,0BAAE;AAAM;AAAA,oBAAM,KAAK;AAAG,0BAAE;AAAM;AAAA,oBAAM,KAAK;AAAG,0BAAE;AAAM;AAAA,oBAAM,KAAK;AAAE,0BAAE;AAAM;AAAA,oBAAM,KAAK;AAAG,0BAAE;AAAM;AAAA,oBAAM;AAAQ,0BAAG,KAAK,KAAG,KAAI;AAAC,6BAAG,IAAE,KAAK,MAAI,GAAE,MAAI,EAAE,SAAS,EAAE;AAAG,4BAAE,QAAM,IAAI,GAAE,EAAE,SAAO,GAAE,EAAE,MAAM;AAAA,sBAAC;AAAM,4BAAE,KAAG,GAAG,KAAK,IAAE,GAAG;AAAA,kBAAE;AAAC;AAAA,gBAAM,KAAK;AAAE,0BAAM,OAAK,QAAM,MAAK,IAAE,KAAG,GAAG,KAAK,IAAE,GAAG,IAAI,IAAE,OAAK,GAAG,KAAK,IAAE,GAAG;AAAG;AAAA,gBAAM;AAAQ,sBAAE;AAAA,cAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,yBAAwB,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,mBAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAG,KAAK,KAAG,GAAE;AAAC,oBAAG,KAAK,IAAE,KAAG,KAAK,IAAE,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE;AAAA,gBAAG,WAAS,KAAK,KAAG,KAAK,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE;AAAA,gBAAG,WAAS,KAAK,KAAG,KAAG,KAAK,KAAG,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE,MAAI,KAAK,IAAE;AAAA,gBAAG,WAAS,KAAK,KAAG,KAAG,KAAK,IAAE,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE;AAAA,gBAAI;AAAM,wBAAM,IAAI,IAAI,GAAG,+BAA6B,KAAK,IAAE,MAAI,KAAK,CAAC,CAAC;AAAA,cAAC,OAAK;AAAC,oBAAG,KAAK,IAAE,KAAG,KAAK,IAAE,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE;AAAA,gBAAI,WAAS,KAAK,KAAG,KAAK,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE;AAAA,gBAAI,WAAS,KAAK,KAAG,KAAG,KAAK,KAAG,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE,MAAI,KAAK,IAAE;AAAA,gBAAI,WAAS,KAAK,KAAG,KAAG,KAAK,IAAE,GAAE;AAAC,sBAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAI,KAAK,IAAE;AAAA,gBAAK;AAAM,wBAAM,IAAI,IAAI,GAAG,wCAAsC,KAAK,IAAE,MAAI,KAAK,CAAC,CAAC;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,4BAA2B,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAG,IAAE,KAAK,IAAE,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,mBAAK,EAAE,KAAG,KAAG,KAAK,EAAE,GAAG,CAAC,KAAG,KAAK,IAAG,IAAE,KAAK,EAAE,GAAG,CAAC,IAAE,MAAK,KAAK,EAAE,KAAG,KAAG,KAAK,EAAE,GAAG,CAAC,KAAG,KAAK,IAAG,IAAE,KAAK,EAAE,GAAG,CAAC,IAAE,OAAO,IAAE,KAAK,EAAE,GAAG,CAAC,KAAG,KAAG,KAAK,EAAE,GAAG,CAAC;AAAI,qBAAO;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAG,KAAG;AAAE,uBAAO,KAAK;AAAE,kBAAG,KAAG;AAAE,uBAAO,KAAK;AAAE,oBAAM,IAAI,IAAI,GAAG,qBAAmB,CAAC,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,IAAE,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,mBAAK,IAAE,IAAG,IAAE,QAAM,KAAK,IAAE,MAAK,KAAK,EAAE,KAAG,IAAG,IAAE,QAAM,KAAK,IAAE,MAAM,IAAE,OAAK,KAAK;AAAG,eAAC,KAAK,IAAG,KAAG,KAAK,IAAE,MAAM,KAAG,KAAK,IAAE,MAAI,KAAK,IAAE;AAAK,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,8BAA6B,IAAI;AAAE,gBAAI,MAAK,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,QAAM,KAAK,KAAG,IAAE,KAAG,IAAI,KAAK,CAAC,MAAI,KAAK,KAAG,IAAE,KAAG,IAAI,KAAK,CAAC,KAAG,MAAI,KAAK,EAAE,GAAG,CAAC,IAAE;AAAA,YAAG;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI;AAAE,kBAAE;AAAK,sBAAO,KAAK,GAAE;AAAA,gBAAC,KAAK;AAAE,uBAAK,KAAG,IAAG,IAAE,QAAM,KAAK,EAAE,GAAG,CAAC,IAAE,MAAM,IAAE,MAAI,KAAK,EAAE,GAAG,CAAC,IAAE;AAAK;AAAA,gBAAM,KAAK;AAAG,sBAAE,QAAM,KAAK,EAAE,GAAG,CAAC,IAAE;AAAI;AAAA,gBAAM,KAAK;AAAG,sBAAE,QAAM,KAAK,EAAE,GAAG,CAAC,IAAE;AAAI;AAAA,gBAAM,KAAK;AAAG,sBAAE,SAAO,KAAK,EAAE,GAAG,CAAC,IAAE;AAAI;AAAA,gBAAM,KAAK;AAAG,sBAAE,SAAO,KAAK,EAAE,GAAG,CAAC,IAAE;AAAI;AAAA,gBAAM,KAAK;AAAG,sBAAE,QAAM,KAAK,EAAE,GAAG,CAAC,IAAE;AAAA,cAAI;AAAC,qBAAO;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,0BAAyB,GAAG;AAAE,gBAAI,KAAI,KAAI,EAAC,GAAE,GAAE,KAAI,GAAE,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,KAAK,KAAG,KAAG,OAAK,KAAK,IAAE,IAAI,KAAK,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,2BAA0B,GAAG;AAAE,gBAAI,KAAI,KAAI,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,qBAAO,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,CAAC,KAAK,IAAE,IAAE,KAAK,EAAE,EAAE,EAAE;AAAA,YAAM;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,GAAE,GAAE,GAAE,GAAE;AAAE,kBAAG,KAAK,KAAG,GAAE;AAAC,oBAAG,KAAK,EAAE,EAAE,EAAE,UAAQ,GAAE;AAAC,sBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,sBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG;AAAE,oBAAE,KAAG,KAAG,EAAE,GAAG,CAAC,KAAG,IAAG,IAAE,EAAE,GAAG,CAAC,IAAE,MAAK,EAAE,KAAG,KAAG,EAAE,GAAG,CAAC,KAAG,IAAG,IAAE,EAAE,GAAG,CAAC,IAAE,OAAO,IAAE,EAAE,GAAG,CAAC,KAAG,KAAG,EAAE,GAAG,CAAC;AAAA,gBAAG,OAAK;AAAC,sBAAE,IAAI;AAAI,uBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,EAAE,EAAE,QAAO,KAAI;AAAC,wBAAI,GAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAAA,kBAAC;AAAC,sBAAE,EAAE;AAAA,gBAAC;AAAC,uBAAO;AAAA,cAAC;AAAC,kBAAG,KAAK,EAAE,EAAE,EAAE,UAAQ,KAAG,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,KAAG,GAAE;AAAC,oBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,GAAG,CAAC,IAAE;AAAA,cAAG,WAAS,KAAK,EAAE,EAAE,EAAE,UAAQ,KAAG,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,KAAG,GAAE;AAAC,oBAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,GAAG,CAAC,IAAE;AAAA,cAAI,OAAK;AAAC,oBAAE,IAAI;AAAI,oBAAI,GAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAAE,qBAAI,IAAE,GAAE,IAAE,KAAK,EAAE,EAAE,EAAE,QAAO,KAAI;AAAC,oBAAE,KAAG;AAAI,sBAAI,GAAE,GAAG,IAAI,KAAK,GAAE,CAAC,GAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAAA,gBAAC;AAAC,oBAAE,EAAE;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,0BAAyB,GAAG;AAAE,gBAAI,KAAI,GAAE,EAAC,KAAI,EAAC,GAAE,GAAG;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,kCAAiC,GAAG;AAAE,gBAAI,MAAK,MAAK,CAAC,GAAE,GAAG;AAAE,gBAAI;AAAI,gBAAI,MAAI,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,sBAAQ,KAAK,IAAE,KAAK,KAAG,KAAK,IAAE,IAAE,MAAI,IAAI,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI;AAAI,gBAAI,MAAI,IAAI,KAAI,kBAAiB,GAAG;AAAE,gBAAI,MAAK,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,EAAE;AAAE,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,EAAE;AAAE,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAK;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO;AAAA,YAAE;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,GAAG,CAAC;AAAA,YAAC;AAAE,gBAAI,MAAI,IAAI,KAAI,oBAAmB,IAAI;AAAE,gBAAI,KAAI,GAAE,KAAI,GAAG;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,EAAE;AAAE,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,kBAAI,MAAK,CAAC;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,IAAI,IAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,IAAI,GAAE;AAAC,iBAAG,GAAE,EAAE;AAAE,kBAAI;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,EAAE,IAAE,IAAE,KAAK,KAAG,KAAK,EAAE,IAAE,KAAK,KAAG,KAAK,EAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,qBAAO,KAAK,IAAE;AAAA,YAAC;AAAE,cAAE,KAAG,SAAS,MAAK;AAAC,oBAAM,IAAI,IAAI,IAAI,GAAG,CAAC;AAAA,YAAC;AAAE,cAAE,IAAE;AAAE,cAAE,IAAE;AAAE,gBAAI,MAAI,IAAI,KAAI,gCAA+B,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,MAAI,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,KAAI,GAAG;AAAE,gBAAI,MAAI,IAAI,KAAI,GAAG;AAAE,gBAAI,KAAG,IAAI,+BAA8B,eAAe;AAAE,gBAAI,KAAG,IAAI,KAAI,iBAAiB;AAAE,gBAAI,KAAG,IAAI,KAAI,aAAa;AAAE,gBAAI,KAAG,IAAI,KAAI,6BAA4B,IAAI;AAAE,gBAAI,OAAK,GAAG,GAAE;AAAI,gBAAI,YAAU,YAAU;AAAI,gBAAI,GAAG;AAAE,gBAAI,aAAY,CAAC,CAAC,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,UAAU,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,MAAM,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,KAAK,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,KAAK,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,QAAQ,CAAC,CAAC,CAAC;AAEz75jB,sBAAU,MAAM,OAAO,IAAI;AAAA,UAE3B,GAAG,KAAK,IAAI;AAAA,QAAC,GAAG,KAAK,MAAK,OAAO,WAAW,cAAc,SAAS,OAAO,SAAS,cAAc,OAAO,OAAO,WAAW,cAAc,SAAS,CAAC,CAAC;AAAA,MACnJ,GAAE,CAAC,CAAC,GAAE,GAAE,CAAC,SAASN,UAAQL,SAAOC,UAAQ;AACzC;AAEA,iBAAS,gBAAgB,UAAU,aAAa;AAAE,cAAI,EAAE,oBAAoB,cAAc;AAAE,kBAAM,IAAI,UAAU,mCAAmC;AAAA,UAAG;AAAA,QAAE;AAExJ,iBAAS,2BAA2BQ,OAAM,MAAM;AAAE,cAAI,CAACA,OAAM;AAAE,kBAAM,IAAI,eAAe,2DAA2D;AAAA,UAAG;AAAE,iBAAO,SAAS,OAAO,SAAS,YAAY,OAAO,SAAS,cAAc,OAAOA;AAAA,QAAM;AAE/O,iBAAS,UAAU,UAAU,YAAY;AAAE,cAAI,OAAO,eAAe,cAAc,eAAe,MAAM;AAAE,kBAAM,IAAI,UAAU,6DAA6D,OAAO,UAAU;AAAA,UAAG;AAAE,mBAAS,YAAY,OAAO,OAAO,cAAc,WAAW,WAAW,EAAE,aAAa,EAAE,OAAO,UAAU,YAAY,OAAO,UAAU,MAAM,cAAc,KAAK,EAAE,CAAC;AAAG,cAAI;AAAY,mBAAO,iBAAiB,OAAO,eAAe,UAAU,UAAU,IAAI,SAAS,YAAY;AAAA,QAAY;AAU7e,YAAIH,OAAMD,SAAQ,cAAc,EAAE;AAElC,YAAI,UAAU,SAAU,MAAM;AAC5B,oBAAUS,UAAS,IAAI;AAEvB,mBAASA,WAAU;AACjB,gBAAI,UAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAC;AAEnF,4BAAgB,MAAMA,QAAO;AAE7B,gBAAI,eAAe,OAAO,OAAO,CAAC,GAAG,OAAO;AAE5C,gBAAI,qBAAqB;AACzB,gBAAI;AACF,cAAAT,SAAQ,QAAQ,YAAY;AAC5B,mCAAqB;AAAA,YACvB,SAAS,GAAG;AAAA,YAAC;AAGb,gBAAI,QAAQ,WAAW;AACrB,kBAAI,oBAAoB;AACtB,oBAAIU,UAASV,SAAQ,YAAY;AACjC,6BAAa,gBAAgB,SAAU,KAAK;AAC1C,yBAAO,IAAIU,QAAO,GAAG;AAAA,gBACvB;AAAA,cACF,OAAO;AACL,wBAAQ,KAAK,oMAAyM;AAAA,cACxN;AAAA,YACF;AAGA,gBAAI,CAAC,aAAa,eAAe;AAC/B,kBAAI,WAAWV,SAAQ,qBAAqB,GACxC,UAAU,SAAS;AAEvB,2BAAa,gBAAgB,SAAU,KAAK;AAC1C,uBAAO,IAAI,QAAQ,GAAG;AAAA,cACxB;AAAA,YACF;AAEA,mBAAO,2BAA2B,OAAOS,SAAQ,aAAa,OAAO,eAAeA,QAAO,GAAG,KAAK,MAAM,YAAY,CAAC;AAAA,UACxH;AAEA,iBAAOA;AAAA,QACT,EAAER,IAAG;AAEL,eAAO,eAAeN,QAAO,SAAS,cAAc;AAAA,UAClD,OAAO;AAAA,QACT,CAAC;AACD,QAAAA,QAAO,UAAU;AACjB,gBAAQ,UAAU;AAAA,MAClB,GAAE,EAAC,gBAAe,GAAE,uBAAsB,GAAE,cAAa,EAAC,CAAC,GAAE,GAAE,CAAC,SAASK,UAAQL,SAAOC,UAAQ;AAgBhG,QAAAD,QAAO,UAAU;AAAA,MACjB,GAAE,CAAC,CAAC,EAAC,GAAE,CAAC,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAAA,IAChB,CAAC;AAAA;AAAA;;;ACvyMD,yBAAgB;AAIhB,mBAAO;AACP,0BAAO;AAOP,IAAM,qBAAqB,CAAC,KAAK,KAAK,aAAa;AACjD,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,UAA0B,oBAAI,IAAI;AACxC,MAAI,YAAY;AAChB,SAAO,WAAW;AAChB,YAAQ,IAAI,SAAS;AACrB,QAAI,cAAc,KAAK;AACrB,aAAO;AAAA,IACT;AACA,gBAAY,WAAW,SAAS;AAAA,EAClC;AACA,cAAY;AACZ,SAAO,WAAW;AAChB,QAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B,aAAO;AAAA,IACT;AACA,gBAAY,WAAW,SAAS;AAAA,EAClC;AACA,SAAO;AACT;AACA,IAAM,MAAM,IAAI,mBAAAgB,QAAI;AACpB,IAAI,UAAU,CAAC;AACf,IAAM,OAAO,CAAC;AACd,IAAI,SAAS,CAAC;AACd,IAAM,cAAc,eAAe,MAAM,OAAO,MAAM,KAAK,SAAS,gBAAgB,OAAO;AACzF,QAAM,MAAM,KAAK,OAAO,QAAQ,KAAK,IAAI;AACzC,QAAM,QAAQ,IAAI,OAAO,GAAG,EAAE,KAAK,SAAS,OAAO;AACnD,QAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,QAAM,QAAQ;AAAA,IACZ,KAAK,IAAI,eAAe,IAAI;AAC1B,YAAM,SAAS,KAAK,EAAE;AACtB,UAAI,WAAW;AACf,UAAI,OAAO,QAAQ,SAAS,GAAG;AAC7B,mBAAW,OAAO,QAAQ,KAAK,GAAG;AAAA,MACpC;AACA,iBAAW,WAAW;AACtB,YAAM,UAAU,mBAAmB,OAAO,MAAM;AAChD,UAAI,aAAa,OAAO,SAAS,SAAS,OAAO,OAAO,OAAO;AAC/D,YAAM,YAAY,EAAE,OAAO,GAAG,QAAQ,EAAE;AACxC,YAAM,QAAQ;AAAA,QACZ;AAAA,UACE,IAAI,OAAO,KAAK;AAAA,UAChB,eAAe;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAI,OAAO,KAAK;AAAA,UAChB,eAAe;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAI,OAAO,KAAK;AAAA,UAChB,eAAe;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF;AAAA,QACA;AAAA,UACE,IAAI,OAAO,KAAK;AAAA,UAChB,eAAe;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF;AAAA,MACF;AACA,UAAI,UAAU;AACd,UAAI,SAAS;AACb,UAAI,gBAAgB,CAAC;AACrB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK;AACH,oBAAU;AACV,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT,0BAAgB;AAAA,YACd,iBAAiB;AAAA,UACnB;AACA;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF,KAAK;AACH,mBAAS;AACT;AAAA,QACF;AACE,mBAAS;AAAA,MACb;AACA,YAAM,OAAO;AAAA,QACX,YAAY,QAAQ;AAAA,QACpB,OAAO;AAAA,QACP,WAAW;AAAA,QACX,WAAW,OAAO;AAAA,QAClB,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,OAAO,QAAQ;AAAA,QACf,IAAI,OAAO;AAAA,QACX,MAAM,OAAO;AAAA,QACb,YAAY,OAAO;AAAA,QACnB,SAAS,QAAQ,GAAG,WAAW,OAAO,EAAE,KAAK;AAAA,QAC7C,OAAO,QAAQ,GAAG,YAAY,OAAO,EAAE;AAAA,QACvC,cAAc,OAAO;AAAA,QACrB,OAAO,OAAO,SAAS,UAAU,MAAM;AAAA,QACvC,KAAK,OAAO;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,OAAO,OAAO;AAAA,QACd,SAAS,YAAU,EAAE,UAAU;AAAA,MACjC;AACA,UAAI;AACJ,UAAI;AACJ,UAAI,KAAK,SAAS,SAAS;AACzB,iBAAS,MAAM,WAAW,OAAO,MAAM,OAAO,GAAG;AACjD,sBAAc,OAAO,KAAK,EAAE,QAAQ;AAAA,MACtC,OAAO;AACL,YAAI,gBAAgB,8BAA8B,MAAM;AACxD,cAAM,EAAE,UAAU,KAAK,IAAI,MAAM,YAAY,OAAO,MAAM,QAAQ,IAAI;AACtE,kBAAU,QAAQ,KAAK;AACvB,kBAAU,gBAAgB,YAAU,EAAE,UAAU;AAChD,kBAAU,SAAS,KAAK;AACxB,kBAAU,YAAY,SAAS,KAAK;AACpC,aAAK,YAAY;AAAA,MACnB;AACA,YAAM,OAAO;AAAA,QACX,IAAI,OAAO;AAAA,QACX,OAAO,OAAO,SAAS,YAAY,QAAQ,CAAC;AAAA;AAAA;AAAA,QAG5C;AAAA,QACA,WAAW;AAAA,QACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASA,OAAO,QAAQ,GAAG,YAAY,OAAO,EAAE;AAAA;AAAA,QAEvC,OAAO,eAAe,OAAO,SAAS,YAAY;AAAA,QAClD,QAAQ,eAAe,OAAO,SAAS,YAAY;AAAA;AAAA,QAEnD,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,QAIb,IAAI;AAAA,QACJ,QAAQ,eAAe,WAAW,OAAO,EAAE;AAAA,MAC7C;AACA,aAAO,KAAK,EAAE,IAAI;AAAA,IACpB,CAAC;AAAA,EACH;AACA,SAAO;AACT;AACA,IAAM,kBAAkB,CAAC,UAAU,eAAe,mBAAmB;AACnE,QAAM,WAAW;AAAA,IACf,IAAI;AAAA,MACF,IAAI;AAAA,QACF,OAAO;AAAA,MACT;AAAA,MACA,KAAK;AAAA,QACH,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,IAAI;AAAA,MACF,IAAI;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,KAAK;AAAA,QACH,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,IAAI;AAAA,MACF,IAAI;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,KAAK;AAAA,QACH,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,IAAI;AAAA,MACF,IAAI;AAAA,QACF,OAAO;AAAA,MACT;AAAA,MACA,KAAK;AAAA,QACH,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,WAAS,KAAK,SAAS;AACvB,QAAI,KAAK,SAAS,gBAAgB,eAAe,QAAQ;AACzD,SAAO,SAAS,cAAc,EAAE,aAAa,EAAE,QAAQ;AACzD;AACA,IAAM,cAAc,CAAC,MAAM,eAAe,mBAAmB;AAC3D,QAAI,KAAK,qBAAqB,EAAE,MAAM,eAAe,eAAe,CAAC;AACrE,MAAI,CAAC,QAAQ,IAAI,GAAG;AAClB,YAAQ,gBAAgB;AAAA,MACtB,KAAK;AAAA,MACL,KAAK;AACH,gBAAQ,IAAI,IAAI;AAAA,UACd,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AACA;AAAA,MACF,KAAK;AACH,gBAAQ,IAAI,IAAI;AAAA,UACd,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AACA;AAAA,MACF,KAAK;AACH,gBAAQ,IAAI,IAAI;AAAA,UACd,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AACA;AAAA,MACF,KAAK;AACH,gBAAQ,IAAI,IAAI;AAAA,UACd,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AACA;AAAA,IACJ;AAAA,EACF;AACA,QAAM,SAAS,kBAAkB,OAAO,QAAQ,IAAI,EAAE,aAAa,QAAQ,IAAI,EAAE;AACjF,MAAI,kBAAkB,MAAM;AAC1B,YAAQ,IAAI,EAAE,aAAa;AAAA,MACzB,QAAQ,IAAI,EAAE;AAAA,MACd;AAAA,MACA;AAAA,IACF;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,EAAE,cAAc;AAAA,MAC1B,QAAQ,IAAI,EAAE;AAAA,MACd;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AACA,IAAM,uBAAuB,CAAC,MAAM,QAAQ;AAC1C,MAAI,SAAS,KAAK;AAClB,MAAI,SAAS,KAAK;AAClB,QAAM,WAAW;AACjB,QAAM,WAAW;AACjB,QAAM,YAAY,OAAO,MAAM;AAC/B,QAAM,UAAU,OAAO,MAAM;AAC7B,MAAI,CAAC,aAAa,CAAC,SAAS;AAC1B,WAAO,EAAE,QAAQ,OAAO;AAAA,EAC1B;AACA,MAAI,UAAU,SAAS,WAAW;AAChC,aAAS,GAAG,MAAM,IAAI,YAAY,QAAQ,OAAO,GAAG,CAAC;AAAA,EACvD;AACA,MAAI,QAAQ,SAAS,WAAW;AAC9B,aAAS,GAAG,MAAM,IAAI,YAAY,QAAQ,MAAM,GAAG,CAAC;AAAA,EACtD;AACA,SAAO,EAAE,QAAQ,QAAQ,UAAU,SAAS;AAC9C;AACA,IAAM,WAAW,SAAS,OAAO,SAAS,OAAO,KAAK;AACpD,QAAI,KAAK,kBAAkB,KAAK;AAChC,QAAM,WAAW,IAAI,OAAO,GAAG,EAAE,KAAK,SAAS,YAAY;AAC3D,MAAI,YAAY,CAAC;AACjB,MAAI,MAAM,QAAQ,GAAG,aAAa;AAClC,MAAI;AACJ,MAAI;AACJ,MAAI,MAAM,iBAAiB,QAAQ;AACjC,UAAM,gBAAgB,mBAAmB,MAAM,YAAY;AAC3D,mBAAe,cAAc;AAC7B,wBAAoB,cAAc;AAAA,EACpC;AACA,QAAM,QAAQ,SAAS,MAAM;AAC3B,UAAM,aAAa,OAAO,KAAK,QAAQ,MAAM,KAAK;AAClD,QAAI,UAAU,UAAU,MAAM,QAAQ;AACpC,gBAAU,UAAU,IAAI;AACxB,YAAI,KAAK,mBAAmB,YAAY,UAAU,UAAU,CAAC;AAAA,IAC/D,OAAO;AACL,gBAAU,UAAU;AACpB,YAAI,KAAK,mBAAmB,YAAY,UAAU,UAAU,CAAC;AAAA,IAC/D;AACA,QAAI,SAAS,aAAa,MAAM,UAAU,UAAU;AACpD,UAAI,KAAK,mCAAmC,YAAY,QAAQ,UAAU,UAAU,CAAC;AACrF,UAAM,gBAAgB,QAAQ,KAAK;AACnC,UAAM,cAAc,QAAQ,KAAK;AACjC,UAAM,WAAW,EAAE,OAAO,IAAI,YAAY,GAAG;AAC7C,aAAS,SAAS,KAAK,UAAU;AACjC,QAAI,KAAK,SAAS,cAAc;AAC9B,eAAS,YAAY;AAAA,IACvB,OAAO;AACL,eAAS,YAAY;AAAA,IACvB;AACA,aAAS,iBAAiB;AAC1B,aAAS,eAAe;AACxB,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK;AACH,iBAAS,iBAAiB;AAAA,MAC5B,KAAK;AACH,iBAAS,eAAe;AACxB;AAAA,MACF,KAAK;AACH,iBAAS,iBAAiB;AAAA,MAC5B,KAAK;AACH,iBAAS,eAAe;AACxB;AAAA,MACF,KAAK;AACH,iBAAS,iBAAiB;AAAA,MAC5B,KAAK;AACH,iBAAS,eAAe;AACxB;AAAA,IACJ;AACA,QAAI,QAAQ;AACZ,QAAI,aAAa;AACjB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AACH,gBAAQ;AACR,YAAI,iBAAiB,QAAQ;AAC3B,kBAAQ;AAAA,QACV;AACA,YAAI,sBAAsB,QAAQ;AAChC,uBAAa;AAAA,QACf;AACA,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB;AAAA,MACF,KAAK;AACH,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB,iBAAS,QAAQ;AACjB;AAAA,MACF,KAAK;AACH,iBAAS,YAAY;AACrB,iBAAS,UAAU;AACnB,iBAAS,QAAQ;AACjB;AAAA,IACJ;AACA,QAAI,KAAK,UAAU,QAAQ;AACzB,YAAM,UAAU,mBAAmB,KAAK,KAAK;AAC7C,cAAQ,QAAQ;AAChB,mBAAa,QAAQ;AAAA,IACvB;AACA,aAAS,QAAQ,SAAS,SAAS;AACnC,aAAS,aAAa,SAAS,cAAc;AAC7C,QAAI,KAAK,gBAAgB,QAAQ;AAC/B,eAAS,QAAQ,mBAAmB,KAAK,aAAa,cAAW;AAAA,IACnE,WAAW,MAAM,uBAAuB,QAAQ;AAC9C,eAAS,QAAQ,mBAAmB,MAAM,oBAAoB,cAAW;AAAA,IAC3E,OAAO;AACL,eAAS,QAAQ,mBAAmB,KAAK,OAAO,cAAW;AAAA,IAC7D;AACA,QAAI,KAAK,SAAS,QAAQ;AACxB,UAAI,KAAK,UAAU,QAAQ;AACzB,iBAAS,iBAAiB;AAAA,MAC5B;AAAA,IACF,OAAO;AACL,eAAS,iBAAiB;AAC1B,eAAS,WAAW;AAAA,IACtB;AACA,aAAS,YAAY,KAAK;AAC1B,aAAS,QAAQ,KAAK,KAAK,QAAQ,SAAO,gBAAgB,IAAI;AAC9D,QAAI,KAAK,UAAU,QAAQ;AACzB,eAAS,QAAQ,SAAS,SAAS;AAAA,IACrC;AACA,aAAS,aAAa,SAAS,WAAW,QAAQ,UAAU,OAAO;AACnE,aAAS,KAAK;AACd,aAAS,UAAU,oBAAoB,gBAAgB,MAAM;AAC7D,UAAM,UAAU,gBAAgB,UAAU,QAAQ;AAClD,UAAM,EAAE,QAAQ,QAAQ,UAAU,SAAS,IAAI,qBAAqB,MAAM,GAAG;AAC7E,UAAI,MAAM,2BAA2B,QAAQ,MAAM;AACnD,UAAM,MAAM,KAAK;AAAA,MACf,IAAI,MAAM,KAAK,QAAQ,KAAK;AAAA,MAC5B,SAAS,CAAC,MAAM;AAAA,MAChB,SAAS,CAAC,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,QACN;AAAA,UACE,OAAO,SAAS;AAAA,UAChB,QAAQ,SAAS;AAAA,UACjB,UAAU,SAAS;AAAA,UACnB,WAAW,SAAS;AAAA,UACpB,MAAM,SAAS;AAAA,UACf,eAAe;AAAA,YACb,qBAAqB;AAAA,YACrB,wBAAwB;AAAA,UAC1B;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,SAAO;AACT;AACA,IAAM,mBAAmB,SAAS,SAAS,UAAU,aAAa,qBAAqB,IAAI;AACzF,MAAI,MAAM;AACV,MAAI,qBAAqB;AACvB,UAAM,OAAO,SAAS,WAAW,OAAO,OAAO,SAAS,OAAO,OAAO,SAAS,WAAW,OAAO,SAAS;AAC1G,UAAM,IAAI,QAAQ,OAAO,KAAK;AAC9B,UAAM,IAAI,QAAQ,OAAO,KAAK;AAAA,EAChC;AACA,UAAQ,SAAS,gBAAgB;AAAA,IAC/B,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,EACJ;AACA,UAAQ,SAAS,cAAc;AAAA,IAC7B,KAAK;AACH,cAAQ,KAAK,cAAc,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc,YAAY;AACrF;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,cAAc,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc,YAAY;AACrF;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,cAAc,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc,WAAW;AACpF;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,cAAc,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc,aAAa;AACtF;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,IACF,KAAK;AACH,cAAQ;AAAA,QACN;AAAA,QACA,SAAS,MAAM,MAAM,KAAK,MAAM,cAAc;AAAA,MAChD;AACA;AAAA,EACJ;AACF;AACA,IAAM,aAAa,SAAS,MAAM,SAAS;AACzC,QAAI,KAAK,oBAAoB;AAC7B,SAAO,QAAQ,GAAG,WAAW;AAC/B;AACA,IAAM,eAAe,SAAS,KAAK;AACjC,QAAM,iBAAiB,EAAE,YAAY,CAAC,GAAG,cAAc,CAAC,EAAE;AAC1D,QAAM,YAAY,IAAI,aAAa;AACnC,QAAI,KAAK,gBAAgB,SAAS;AAClC,YAAU,QAAQ,SAAS,UAAU;AACnC,aAAS,MAAM,QAAQ,SAAS,MAAM;AACpC,qBAAe,WAAW,IAAI,IAAI,SAAS;AAC3C,UAAI,eAAe,aAAa,SAAS,EAAE,MAAM,QAAQ;AACvD,uBAAe,aAAa,SAAS,EAAE,IAAI,CAAC;AAAA,MAC9C;AACA,qBAAe,aAAa,SAAS,EAAE,EAAE,KAAK,IAAI;AAAA,IACpD,CAAC;AAAA,EACH,CAAC;AACD,YAAU,QAAQ,SAAS,UAAU;AACnC,KAAC,EAAE,IAAI,SAAS,GAAG;AACnB,QAAI,eAAe,WAAW,SAAS,EAAE,MAAM,QAAQ;AACrD,qBAAe,WAAW,SAAS,EAAE;AAAA,IACvC;AAAA,EACF,CAAC;AACD,SAAO;AACT;AACA,IAAM,aAAa,SAAS,KAAK,MAAM,gBAAgB;AACrD,QAAM,WAAW,mBAAmB,KAAK,MAAM,cAAc;AAC7D,MAAI,aAAa,UAAU,aAAa,QAAQ;AAC9C,WAAO,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,EACtB;AACA,QAAM,iBAAiB,OAAO,QAAQ,EAAE;AACxC,SAAO,EAAE,GAAG,eAAe,MAAM,GAAG,eAAe,KAAK;AAC1D;AACA,IAAM,aAAa,SAAS,SAAS,MAAM,UAAU,SAAS,gBAAgB,IAAI;AAChF,QAAM,SAAS,WAAW,KAAK,UAAU,KAAK,UAAU,cAAc;AACtE,QAAM,MAAM,KAAK,SAAS,CAAC,EAAE;AAC7B,QAAM,OAAO,KAAK,SAAS,CAAC,EAAE;AAC9B,QAAM,WAAW,KAAK,SAAS,CAAC,EAAE,aAAa,KAAK,SAAS,CAAC,EAAE,aAAa,CAAC;AAC9E,QAAM,YAAY,SAAS,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,OAAO,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC;AACxF,QAAM,SAAS;AAAA,IACb,CAAC,IAAI,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,CAAC;AAAA,IACnC,GAAG;AAAA,IACH,CAAC,KAAK,IAAI,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC;AAAA,EACvC;AACA,QAAM,EAAE,GAAG,EAAE,IAAI,2BAA2B,KAAK,QAAQ;AACzD,QAAM,QAAQ,aAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,cAAW;AAChD,QAAM,WAAW,QAAQ,OAAO,MAAM,EAAE,KAAK,KAAK,MAAM,MAAM,CAAC,EAAE,KAAK,SAAS,UAAU,SAAS,OAAO,EAAE,KAAK,QAAQ,MAAM;AAC9H,QAAM,QAAQ,QAAQ,OAAO,GAAG,EAAE,KAAK,SAAS,WAAW;AAC3D,QAAM,gBAAgB,eAAO,MAAM,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;AACnE,QAAM,MAAM,cAAc,KAAK,EAAE,WAAW,sBAAsB;AAClE,gBAAc,KAAK,SAAS,IAAI,KAAK;AACrC,gBAAc,KAAK,UAAU,IAAI,MAAM;AACvC,QAAM;AAAA,IACJ;AAAA,IACA,aAAa,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC;AAAA,EAC1E;AACA,mBAAiB,UAAU,UAAU,QAAQ,MAAM,QAAQ,qBAAqB,EAAE;AACpF;AACA,IAAM,iBAAiB,CAAC,WAAW,mBAAmB;AACpD,YAAU,QAAQ,CAAC,SAAS;AAC1B,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,WAAW,CAAC;AAAA,IACnB;AACA,UAAM,WAAW,eAAe,aAAa,KAAK,EAAE;AACpD,QAAI,UAAU;AACZ,eAAS,QAAQ,CAAC,YAAY;AAC5B,aAAK,SAAS,KAAK,OAAO,OAAO,CAAC;AAAA,MACpC,CAAC;AAAA,IACH;AACA,mBAAe,KAAK,UAAU,cAAc;AAAA,EAC9C,CAAC;AACH;AACA,IAAM,OAAO,eAAe,MAAM,IAAI,UAAU,SAAS;AACvD,MAAI;AACJ,UAAQ,GAAG,MAAM;AACjB,WAAS,CAAC;AACV,YAAU,CAAC;AACX,UAAQ,GAAG,OAAO,OAAO;AACzB,UAAQ,OAAO,MAAM,IAAI;AACzB,QAAM,WAAW,eAAO,MAAM,EAAE,OAAO,KAAK,EAAE,KAAK,SAAS,cAAc,EAAE,KAAK,MAAM,IAAI;AAC3F,MAAI,QAAQ;AAAA,IACV,IAAI;AAAA,IACJ,eAAe;AAAA,MACb,yBAAyB;AAAA,MACzB,2BAA2B;AAAA,MAC3B,6CAA6C;AAAA;AAAA,MAE7C,iBAAiB;AAAA;AAAA;AAAA,IAGnB;AAAA,IACA,UAAU,CAAC;AAAA,IACX,OAAO,CAAC;AAAA,EACV;AACA,QAAI,KAAK,uCAAuC,GAAG;AACnD,MAAI,MAAM,QAAQ,GAAG,aAAa;AAClC,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,YAAM,cAAc,eAAe,IAAI;AACvC;AAAA,IACF,KAAK;AACH,YAAM,cAAc,eAAe,IAAI;AACvC;AAAA,IACF,KAAK;AACH,YAAM,cAAc,eAAe,IAAI;AACvC;AAAA,IACF,KAAK;AACH,YAAM,cAAc,eAAe,IAAI;AACvC;AAAA,EACJ;AACA,QAAM,EAAE,eAAe,WAAW,MAAM,IAAI,YAAU;AACtD,MAAI;AACJ,MAAI,kBAAkB,WAAW;AAC/B,qBAAiB,eAAO,OAAO,EAAE;AAAA,EACnC;AACA,QAAM,OAAO,kBAAkB,YAAY,eAAO,eAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,IAAI,eAAO,MAAM;AACjH,QAAM,MAAM,kBAAkB,YAAY,eAAe,MAAM,EAAE,CAAC,EAAE,kBAAkB;AACtF,QAAM,MAAM,KAAK,OAAO,QAAQ,EAAE,IAAI;AACtC,QAAM,UAAU,CAAC,SAAS,UAAU,OAAO;AAC3C,kBAAc,KAAK,SAAS,QAAQ,MAAM,EAAE;AAC5C,QAAM,OAAO,QAAQ,GAAG,YAAY;AACpC,MAAI;AACJ,QAAM,YAAY,QAAQ,GAAG,aAAa;AAC1C,QAAI,KAAK,gBAAgB,SAAS;AAClC,WAAS,IAAI,UAAU,SAAS,GAAG,KAAK,GAAG,KAAK;AAC9C,WAAO,UAAU,CAAC;AAClB,YAAQ,GAAG;AAAA,MACT,KAAK;AAAA,MACL,EAAE,MAAM,KAAK,OAAO,MAAM,KAAK,UAAU;AAAA,MACzC;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACA,QAAM,cAAc,IAAI,OAAO,GAAG,EAAE,KAAK,SAAS,WAAW;AAC7D,QAAM,iBAAiB,aAAa,QAAQ,EAAE;AAC9C,UAAQ,MAAM,YAAY,MAAM,IAAI,MAAM,KAAK,SAAS,gBAAgB,KAAK;AAC7E,QAAM,UAAU,IAAI,OAAO,GAAG,EAAE,KAAK,SAAS,gBAAgB;AAC9D,QAAM,QAAQ,QAAQ,GAAG,SAAS;AAClC,UAAQ,SAAS,OAAO,SAAS,OAAO,GAAG;AAC3C,QAAM,QAAQ,OAAO,KAAK,MAAM;AAChC,QAAM,QAAQ,CAAC,WAAW;AACxB,UAAM,OAAO,OAAO,MAAM;AAC1B,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,SAAS,KAAK,IAAI;AAAA,IAC1B;AACA,QAAI,eAAe,aAAa,MAAM,MAAM,QAAQ;AAClD,WAAK,SAAS;AAAA,QACZ;AAAA,UACE,MAAM,KAAK;AAAA,UACX,eAAe;AAAA,YACb,wBAAwB;AAAA,UAC1B;AAAA,UACA,OAAO,KAAK,UAAU;AAAA,UACtB,QAAQ,KAAK,UAAU;AAAA;AAAA;AAAA,QAGzB;AAAA,MACF;AACA,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AAAA,IACd;AAAA,EACF,CAAC;AACD,iBAAe,MAAM,UAAU,cAAc;AAC7C,QAAI,KAAK,gBAAgB,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AACvD,QAAM,IAAI,MAAM,IAAI,OAAO,KAAK;AAChC,YAAU,GAAG,GAAG,EAAE,UAAU,KAAK,aAAa,SAAS,CAAC;AACxD,QAAI,KAAK,gBAAgB,CAAC;AAC1B,GAAC,KAAK,EAAE,UAAU,OAAO,SAAS,GAAG,IAAI,CAAC,SAAS;AACjD,eAAW,SAAS,MAAM,KAAK,UAAU,SAAS,gBAAgB,EAAE;AAAA,EACtE,CAAC;AACD,sBAAkB,CAAC,GAAG,KAAK,MAAM,gBAAgB,MAAM,WAAW;AAClE,WAAS,OAAO;AAClB;AACA,IAAM,YAAY,CAAC,MAAM,MAAM,WAAW,KAAK,aAAa,SAAS,UAAU;AAC7E,YAAU,QAAQ,SAAS,MAAM;AAC/B,QAAI,MAAM;AACR,aAAO,KAAK,EAAE,EAAE,SAAS;AAAA,QACvB,MAAM,KAAK,IAAI;AAAA,QACf,MAAM,KAAK,IAAI;AAAA,QACf,GAAG;AAAA,QACH,GAAG;AAAA,QACH;AAAA,QACA,OAAO,KAAK;AAAA,QACZ,QAAQ,KAAK;AAAA,MACf;AACA,UAAI,KAAK,SAAS,SAAS;AACzB,cAAM,aAAa,YAAY,OAAO,GAAG,EAAE,KAAK,SAAS,UAAU;AACnE,mBAAW,OAAO,MAAM,EAAE,KAAK,SAAS,2BAA2B,QAAQ,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,KAAK,KAAK,EAAE,KAAK,UAAU,KAAK,MAAM;AAC9L,cAAM,QAAQ,WAAW,OAAO,GAAG,EAAE,KAAK,SAAS,OAAO;AAC1D,cAAM,iBAAiB,YAAU,EAAE,UAAU,aAAa,KAAK,UAAU,QAAQ,IAAI;AACrF,cAAM;AAAA,UACJ;AAAA,UACA,aAAa,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,KAAK,IAAI,cAAc,KAAK,KAAK,OAAO,CAAC,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC;AAAA,QACzG;AACA,cAAM,KAAK,EAAE,YAAY,KAAK,UAAU,SAAS;AACjD,cAAI,KAAK,cAAc,KAAK,MAAM,KAAK,MAAM;AAAA,MAC/C,OAAO;AACL,cAAI,KAAK,cAAc,KAAK,EAAE;AAC9B,aAAK,GAAG;AAAA,UACN;AAAA,UACA,aAAa,KAAK,IAAI,OAAO,KAAK,QAAQ,CAAC,KAAK,KAAK,IAAI,OAAO,KAAK,SAAS,CAAC;AAAA,QACjF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,YAAU,QAAQ,SAAS,MAAM;AAC/B,QAAI,QAAQ,KAAK,SAAS,SAAS;AACjC,gBAAU,OAAO,KAAK,GAAG,OAAO,KAAK,GAAG,KAAK,UAAU,KAAK,aAAa,SAAS,QAAQ,CAAC;AAAA,IAC7F;AAAA,EACF,CAAC;AACH;AACA,IAAM,WAAW;AAAA,EACf;AAAA,EACA;AACF;AACA,IAAM,cAAc,CAAC,YAAY;AAC/B,MAAI,WAAW;AACf,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,gBAAY;AAAA,sBACM,CAAC;AAAA,gBACP,QAAQ,UAAU,CAAC,EAAE,CAAC;AAAA,kBACpB,QAAQ,cAAc,CAAC,EAAE,CAAC;AAAA;AAAA;AAAA,EAG1C;AACA,SAAO;AACT;AACA,IAAM,YAAY,CAAC,YAAY;AAAA,mBACZ,QAAQ,UAAU;AAAA,aACxB,QAAQ,iBAAiB,QAAQ,SAAS;AAAA;AAAA;AAAA,YAG3C,QAAQ,UAAU;AAAA;AAAA;AAAA,aAGjB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,YAInB,QAAQ,iBAAiB,QAAQ,SAAS;AAAA,aACzC,QAAQ,iBAAiB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQ3C,QAAQ,OAAO;AAAA,cACb,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAYpB,QAAQ,cAAc;AAAA;AAAA;AAAA;AAAA,cAIpB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,cAKjB,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKP,QAAQ,mBAAmB;AAAA;AAAA;AAAA,0BAGzB,QAAQ,mBAAmB;AAAA,cACvC,QAAQ,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAM7B,QAAQ,UAAU;AAAA,cAChB,QAAQ,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,YAKvB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,aAIjB,QAAQ,UAAU;AAAA;AAAA;AAAA,aAGlB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAQZ,QAAQ,UAAU;AAAA;AAAA,kBAEnB,QAAQ,aAAa;AAAA,wBACf,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAS3B,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAezB,YAAY,OAAO,CAAC;AAAA;AAExB,IAAM,SAAS;AACf,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;", - "names": ["define", "module", "exports", "i", "r", "n", "require", "ELK", "factory", "PromisedWorker", "self", "global", "g", "o", "db", "ELKNode", "Worker", "ELK"] -} diff --git a/.vuepress/.cache/deps/ganttDiagram-db6931fb-7LNKEA3N.js b/.vuepress/.cache/deps/ganttDiagram-db6931fb-7LNKEA3N.js deleted file mode 100644 index 17d0192b8..000000000 --- a/.vuepress/.cache/deps/ganttDiagram-db6931fb-7LNKEA3N.js +++ /dev/null @@ -1,2320 +0,0 @@ -import { - axisBottom, - axisTop, - clear, - common$1, - configureSvgSize, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - hcl_default, - linear, - log$1, - max, - millisecond, - min, - require_dayjs_min, - require_dist, - second, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle, - time, - timeDay, - timeFormat, - timeFriday, - timeHour, - timeMinute, - timeMonday, - timeMonth, - timeSaturday, - timeSunday, - timeThursday, - timeTuesday, - timeWednesday, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __commonJS, - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/dayjs/plugin/isoWeek.js -var require_isoWeek = __commonJS({ - "node_modules/dayjs/plugin/isoWeek.js"(exports, module) { - !function(e, t) { - "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isoWeek = t(); - }(exports, function() { - "use strict"; - var e = "day"; - return function(t, i, s) { - var a = function(t2) { - return t2.add(4 - t2.isoWeekday(), e); - }, d = i.prototype; - d.isoWeekYear = function() { - return a(this).year(); - }, d.isoWeek = function(t2) { - if (!this.$utils().u(t2)) - return this.add(7 * (t2 - this.isoWeek()), e); - var i2, d2, n2, o, r = a(this), u = (i2 = this.isoWeekYear(), d2 = this.$u, n2 = (d2 ? s.utc : s)().year(i2).startOf("year"), o = 4 - n2.isoWeekday(), n2.isoWeekday() > 4 && (o += 7), n2.add(o, e)); - return r.diff(u, "week") + 1; - }, d.isoWeekday = function(e2) { - return this.$utils().u(e2) ? this.day() || 7 : this.day(this.day() % 7 ? e2 : e2 - 7); - }; - var n = d.startOf; - d.startOf = function(e2, t2) { - var i2 = this.$utils(), s2 = !!i2.u(t2) || t2; - return "isoweek" === i2.p(e2) ? s2 ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : n.bind(this)(e2, t2); - }; - }; - }); - } -}); - -// node_modules/dayjs/plugin/customParseFormat.js -var require_customParseFormat = __commonJS({ - "node_modules/dayjs/plugin/customParseFormat.js"(exports, module) { - !function(e, t) { - "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_customParseFormat = t(); - }(exports, function() { - "use strict"; - var e = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, t = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, n = /\d\d/, r = /\d\d?/, i = /\d*[^-_:/,()\s\d]+/, o = {}, s = function(e2) { - return (e2 = +e2) + (e2 > 68 ? 1900 : 2e3); - }; - var a = function(e2) { - return function(t2) { - this[e2] = +t2; - }; - }, f = [/[+-]\d\d:?(\d\d)?|Z/, function(e2) { - (this.zone || (this.zone = {})).offset = function(e3) { - if (!e3) - return 0; - if ("Z" === e3) - return 0; - var t2 = e3.match(/([+-]|\d\d)/g), n2 = 60 * t2[1] + (+t2[2] || 0); - return 0 === n2 ? 0 : "+" === t2[0] ? -n2 : n2; - }(e2); - }], h = function(e2) { - var t2 = o[e2]; - return t2 && (t2.indexOf ? t2 : t2.s.concat(t2.f)); - }, u = function(e2, t2) { - var n2, r2 = o.meridiem; - if (r2) { - for (var i2 = 1; i2 <= 24; i2 += 1) - if (e2.indexOf(r2(i2, 0, t2)) > -1) { - n2 = i2 > 12; - break; - } - } else - n2 = e2 === (t2 ? "pm" : "PM"); - return n2; - }, d = { A: [i, function(e2) { - this.afternoon = u(e2, false); - }], a: [i, function(e2) { - this.afternoon = u(e2, true); - }], S: [/\d/, function(e2) { - this.milliseconds = 100 * +e2; - }], SS: [n, function(e2) { - this.milliseconds = 10 * +e2; - }], SSS: [/\d{3}/, function(e2) { - this.milliseconds = +e2; - }], s: [r, a("seconds")], ss: [r, a("seconds")], m: [r, a("minutes")], mm: [r, a("minutes")], H: [r, a("hours")], h: [r, a("hours")], HH: [r, a("hours")], hh: [r, a("hours")], D: [r, a("day")], DD: [n, a("day")], Do: [i, function(e2) { - var t2 = o.ordinal, n2 = e2.match(/\d+/); - if (this.day = n2[0], t2) - for (var r2 = 1; r2 <= 31; r2 += 1) - t2(r2).replace(/\[|\]/g, "") === e2 && (this.day = r2); - }], M: [r, a("month")], MM: [n, a("month")], MMM: [i, function(e2) { - var t2 = h("months"), n2 = (h("monthsShort") || t2.map(function(e3) { - return e3.slice(0, 3); - })).indexOf(e2) + 1; - if (n2 < 1) - throw new Error(); - this.month = n2 % 12 || n2; - }], MMMM: [i, function(e2) { - var t2 = h("months").indexOf(e2) + 1; - if (t2 < 1) - throw new Error(); - this.month = t2 % 12 || t2; - }], Y: [/[+-]?\d+/, a("year")], YY: [n, function(e2) { - this.year = s(e2); - }], YYYY: [/\d{4}/, a("year")], Z: f, ZZ: f }; - function c(n2) { - var r2, i2; - r2 = n2, i2 = o && o.formats; - for (var s2 = (n2 = r2.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(t2, n3, r3) { - var o2 = r3 && r3.toUpperCase(); - return n3 || i2[r3] || e[r3] || i2[o2].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(e2, t3, n4) { - return t3 || n4.slice(1); - }); - })).match(t), a2 = s2.length, f2 = 0; f2 < a2; f2 += 1) { - var h2 = s2[f2], u2 = d[h2], c2 = u2 && u2[0], l = u2 && u2[1]; - s2[f2] = l ? { regex: c2, parser: l } : h2.replace(/^\[|\]$/g, ""); - } - return function(e2) { - for (var t2 = {}, n3 = 0, r3 = 0; n3 < a2; n3 += 1) { - var i3 = s2[n3]; - if ("string" == typeof i3) - r3 += i3.length; - else { - var o2 = i3.regex, f3 = i3.parser, h3 = e2.slice(r3), u3 = o2.exec(h3)[0]; - f3.call(t2, u3), e2 = e2.replace(u3, ""); - } - } - return function(e3) { - var t3 = e3.afternoon; - if (void 0 !== t3) { - var n4 = e3.hours; - t3 ? n4 < 12 && (e3.hours += 12) : 12 === n4 && (e3.hours = 0), delete e3.afternoon; - } - }(t2), t2; - }; - } - return function(e2, t2, n2) { - n2.p.customParseFormat = true, e2 && e2.parseTwoDigitYear && (s = e2.parseTwoDigitYear); - var r2 = t2.prototype, i2 = r2.parse; - r2.parse = function(e3) { - var t3 = e3.date, r3 = e3.utc, s2 = e3.args; - this.$u = r3; - var a2 = s2[1]; - if ("string" == typeof a2) { - var f2 = true === s2[2], h2 = true === s2[3], u2 = f2 || h2, d2 = s2[2]; - h2 && (d2 = s2[2]), o = this.$locale(), !f2 && d2 && (o = n2.Ls[d2]), this.$d = function(e4, t4, n3) { - try { - if (["x", "X"].indexOf(t4) > -1) - return new Date(("X" === t4 ? 1e3 : 1) * e4); - var r4 = c(t4)(e4), i3 = r4.year, o2 = r4.month, s3 = r4.day, a3 = r4.hours, f3 = r4.minutes, h3 = r4.seconds, u3 = r4.milliseconds, d3 = r4.zone, l2 = /* @__PURE__ */ new Date(), m2 = s3 || (i3 || o2 ? 1 : l2.getDate()), M2 = i3 || l2.getFullYear(), Y = 0; - i3 && !o2 || (Y = o2 > 0 ? o2 - 1 : l2.getMonth()); - var p = a3 || 0, v = f3 || 0, D = h3 || 0, g = u3 || 0; - return d3 ? new Date(Date.UTC(M2, Y, m2, p, v, D, g + 60 * d3.offset * 1e3)) : n3 ? new Date(Date.UTC(M2, Y, m2, p, v, D, g)) : new Date(M2, Y, m2, p, v, D, g); - } catch (e5) { - return /* @__PURE__ */ new Date(""); - } - }(t3, a2, r3), this.init(), d2 && true !== d2 && (this.$L = this.locale(d2).$L), u2 && t3 != this.format(a2) && (this.$d = /* @__PURE__ */ new Date("")), o = {}; - } else if (a2 instanceof Array) - for (var l = a2.length, m = 1; m <= l; m += 1) { - s2[1] = a2[m - 1]; - var M = n2.apply(this, s2); - if (M.isValid()) { - this.$d = M.$d, this.$L = M.$L, this.init(); - break; - } - m === l && (this.$d = /* @__PURE__ */ new Date("")); - } - else - i2.call(this, e3); - }; - }; - }); - } -}); - -// node_modules/dayjs/plugin/advancedFormat.js -var require_advancedFormat = __commonJS({ - "node_modules/dayjs/plugin/advancedFormat.js"(exports, module) { - !function(e, t) { - "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_advancedFormat = t(); - }(exports, function() { - "use strict"; - return function(e, t) { - var r = t.prototype, n = r.format; - r.format = function(e2) { - var t2 = this, r2 = this.$locale(); - if (!this.isValid()) - return n.bind(this)(e2); - var s = this.$utils(), a = (e2 || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(e3) { - switch (e3) { - case "Q": - return Math.ceil((t2.$M + 1) / 3); - case "Do": - return r2.ordinal(t2.$D); - case "gggg": - return t2.weekYear(); - case "GGGG": - return t2.isoWeekYear(); - case "wo": - return r2.ordinal(t2.week(), "W"); - case "w": - case "ww": - return s.s(t2.week(), "w" === e3 ? 1 : 2, "0"); - case "W": - case "WW": - return s.s(t2.isoWeek(), "W" === e3 ? 1 : 2, "0"); - case "k": - case "kk": - return s.s(String(0 === t2.$H ? 24 : t2.$H), "k" === e3 ? 1 : 2, "0"); - case "X": - return Math.floor(t2.$d.getTime() / 1e3); - case "x": - return t2.$d.getTime(); - case "z": - return "[" + t2.offsetName() + "]"; - case "zzz": - return "[" + t2.offsetName("long") + "]"; - default: - return e3; - } - }); - return n.bind(this)(a); - }; - }; - }); - } -}); - -// node_modules/mermaid/dist/ganttDiagram-db6931fb.js -var import_sanitize_url = __toESM(require_dist(), 1); -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_isoWeek = __toESM(require_isoWeek(), 1); -var import_customParseFormat = __toESM(require_customParseFormat(), 1); -var import_advancedFormat = __toESM(require_advancedFormat(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "gantt": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NL": 10, "weekday": 11, "weekday_monday": 12, "weekday_tuesday": 13, "weekday_wednesday": 14, "weekday_thursday": 15, "weekday_friday": 16, "weekday_saturday": 17, "weekday_sunday": 18, "dateFormat": 19, "inclusiveEndDates": 20, "topAxis": 21, "axisFormat": 22, "tickInterval": 23, "excludes": 24, "includes": 25, "todayMarker": 26, "title": 27, "acc_title": 28, "acc_title_value": 29, "acc_descr": 30, "acc_descr_value": 31, "acc_descr_multiline_value": 32, "section": 33, "clickStatement": 34, "taskTxt": 35, "taskData": 36, "click": 37, "callbackname": 38, "callbackargs": 39, "href": 40, "clickStatementDebug": 41, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "gantt", 6: "EOF", 8: "SPACE", 10: "NL", 12: "weekday_monday", 13: "weekday_tuesday", 14: "weekday_wednesday", 15: "weekday_thursday", 16: "weekday_friday", 17: "weekday_saturday", 18: "weekday_sunday", 19: "dateFormat", 20: "inclusiveEndDates", 21: "topAxis", 22: "axisFormat", 23: "tickInterval", 24: "excludes", 25: "includes", 26: "todayMarker", 27: "title", 28: "acc_title", 29: "acc_title_value", 30: "acc_descr", 31: "acc_descr_value", 32: "acc_descr_multiline_value", 33: "section", 35: "taskTxt", 36: "taskData", 37: "click", 38: "callbackname", 39: "callbackargs", 40: "href" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 1: - return $$[$0 - 1]; - case 2: - this.$ = []; - break; - case 3: - $$[$0 - 1].push($$[$0]); - this.$ = $$[$0 - 1]; - break; - case 4: - case 5: - this.$ = $$[$0]; - break; - case 6: - case 7: - this.$ = []; - break; - case 8: - yy.setWeekday("monday"); - break; - case 9: - yy.setWeekday("tuesday"); - break; - case 10: - yy.setWeekday("wednesday"); - break; - case 11: - yy.setWeekday("thursday"); - break; - case 12: - yy.setWeekday("friday"); - break; - case 13: - yy.setWeekday("saturday"); - break; - case 14: - yy.setWeekday("sunday"); - break; - case 15: - yy.setDateFormat($$[$0].substr(11)); - this.$ = $$[$0].substr(11); - break; - case 16: - yy.enableInclusiveEndDates(); - this.$ = $$[$0].substr(18); - break; - case 17: - yy.TopAxis(); - this.$ = $$[$0].substr(8); - break; - case 18: - yy.setAxisFormat($$[$0].substr(11)); - this.$ = $$[$0].substr(11); - break; - case 19: - yy.setTickInterval($$[$0].substr(13)); - this.$ = $$[$0].substr(13); - break; - case 20: - yy.setExcludes($$[$0].substr(9)); - this.$ = $$[$0].substr(9); - break; - case 21: - yy.setIncludes($$[$0].substr(9)); - this.$ = $$[$0].substr(9); - break; - case 22: - yy.setTodayMarker($$[$0].substr(12)); - this.$ = $$[$0].substr(12); - break; - case 24: - yy.setDiagramTitle($$[$0].substr(6)); - this.$ = $$[$0].substr(6); - break; - case 25: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 26: - case 27: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 28: - yy.addSection($$[$0].substr(8)); - this.$ = $$[$0].substr(8); - break; - case 30: - yy.addTask($$[$0 - 1], $$[$0]); - this.$ = "task"; - break; - case 31: - this.$ = $$[$0 - 1]; - yy.setClickEvent($$[$0 - 1], $$[$0], null); - break; - case 32: - this.$ = $$[$0 - 2]; - yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]); - break; - case 33: - this.$ = $$[$0 - 2]; - yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null); - yy.setLink($$[$0 - 2], $$[$0]); - break; - case 34: - this.$ = $$[$0 - 3]; - yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]); - yy.setLink($$[$0 - 3], $$[$0]); - break; - case 35: - this.$ = $$[$0 - 2]; - yy.setClickEvent($$[$0 - 2], $$[$0], null); - yy.setLink($$[$0 - 2], $$[$0 - 1]); - break; - case 36: - this.$ = $$[$0 - 3]; - yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]); - yy.setLink($$[$0 - 3], $$[$0 - 2]); - break; - case 37: - this.$ = $$[$0 - 1]; - yy.setLink($$[$0 - 1], $$[$0]); - break; - case 38: - case 44: - this.$ = $$[$0 - 1] + " " + $$[$0]; - break; - case 39: - case 40: - case 42: - this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0]; - break; - case 41: - case 43: - this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0]; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])], - defaultActions: {}, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self2.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - this.begin("open_directive"); - return "open_directive"; - case 1: - this.begin("acc_title"); - return 28; - case 2: - this.popState(); - return "acc_title_value"; - case 3: - this.begin("acc_descr"); - return 30; - case 4: - this.popState(); - return "acc_descr_value"; - case 5: - this.begin("acc_descr_multiline"); - break; - case 6: - this.popState(); - break; - case 7: - return "acc_descr_multiline_value"; - case 8: - break; - case 9: - break; - case 10: - break; - case 11: - return 10; - case 12: - break; - case 13: - break; - case 14: - break; - case 15: - this.begin("href"); - break; - case 16: - this.popState(); - break; - case 17: - return 40; - case 18: - this.begin("callbackname"); - break; - case 19: - this.popState(); - break; - case 20: - this.popState(); - this.begin("callbackargs"); - break; - case 21: - return 38; - case 22: - this.popState(); - break; - case 23: - return 39; - case 24: - this.begin("click"); - break; - case 25: - this.popState(); - break; - case 26: - return 37; - case 27: - return 4; - case 28: - return 19; - case 29: - return 20; - case 30: - return 21; - case 31: - return 22; - case 32: - return 23; - case 33: - return 25; - case 34: - return 24; - case 35: - return 26; - case 36: - return 12; - case 37: - return 13; - case 38: - return 14; - case 39: - return 15; - case 40: - return 16; - case 41: - return 17; - case 42: - return 18; - case 43: - return "date"; - case 44: - return 27; - case 45: - return "accDescription"; - case 46: - return 33; - case 47: - return 35; - case 48: - return 36; - case 49: - return ":"; - case 50: - return 6; - case 51: - return "INVALID"; - } - }, - rules: [/^(?:%%\{)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:weekday\s+monday\b)/i, /^(?:weekday\s+tuesday\b)/i, /^(?:weekday\s+wednesday\b)/i, /^(?:weekday\s+thursday\b)/i, /^(?:weekday\s+friday\b)/i, /^(?:weekday\s+saturday\b)/i, /^(?:weekday\s+sunday\b)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "callbackargs": { "rules": [22, 23], "inclusive": false }, "callbackname": { "rules": [19, 20, 21], "inclusive": false }, "href": { "rules": [16, 17], "inclusive": false }, "click": { "rules": [25, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 18, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var ganttParser = parser; -import_dayjs.default.extend(import_isoWeek.default); -import_dayjs.default.extend(import_customParseFormat.default); -import_dayjs.default.extend(import_advancedFormat.default); -var dateFormat = ""; -var axisFormat = ""; -var tickInterval = void 0; -var todayMarker = ""; -var includes = []; -var excludes = []; -var links = {}; -var sections = []; -var tasks = []; -var currentSection = ""; -var displayMode = ""; -var tags = ["active", "done", "crit", "milestone"]; -var funs = []; -var inclusiveEndDates = false; -var topAxis = false; -var weekday = "sunday"; -var lastOrder = 0; -var clear2 = function() { - sections = []; - tasks = []; - currentSection = ""; - funs = []; - taskCnt = 0; - lastTask = void 0; - lastTaskID = void 0; - rawTasks = []; - dateFormat = ""; - axisFormat = ""; - displayMode = ""; - tickInterval = void 0; - todayMarker = ""; - includes = []; - excludes = []; - inclusiveEndDates = false; - topAxis = false; - lastOrder = 0; - links = {}; - clear(); - weekday = "sunday"; -}; -var setAxisFormat = function(txt) { - axisFormat = txt; -}; -var getAxisFormat = function() { - return axisFormat; -}; -var setTickInterval = function(txt) { - tickInterval = txt; -}; -var getTickInterval = function() { - return tickInterval; -}; -var setTodayMarker = function(txt) { - todayMarker = txt; -}; -var getTodayMarker = function() { - return todayMarker; -}; -var setDateFormat = function(txt) { - dateFormat = txt; -}; -var enableInclusiveEndDates = function() { - inclusiveEndDates = true; -}; -var endDatesAreInclusive = function() { - return inclusiveEndDates; -}; -var enableTopAxis = function() { - topAxis = true; -}; -var topAxisEnabled = function() { - return topAxis; -}; -var setDisplayMode = function(txt) { - displayMode = txt; -}; -var getDisplayMode = function() { - return displayMode; -}; -var getDateFormat = function() { - return dateFormat; -}; -var setIncludes = function(txt) { - includes = txt.toLowerCase().split(/[\s,]+/); -}; -var getIncludes = function() { - return includes; -}; -var setExcludes = function(txt) { - excludes = txt.toLowerCase().split(/[\s,]+/); -}; -var getExcludes = function() { - return excludes; -}; -var getLinks = function() { - return links; -}; -var addSection = function(txt) { - currentSection = txt; - sections.push(txt); -}; -var getSections = function() { - return sections; -}; -var getTasks = function() { - let allItemsProcessed = compileTasks(); - const maxDepth = 10; - let iterationCount = 0; - while (!allItemsProcessed && iterationCount < maxDepth) { - allItemsProcessed = compileTasks(); - iterationCount++; - } - tasks = rawTasks; - return tasks; -}; -var isInvalidDate = function(date, dateFormat2, excludes2, includes2) { - if (includes2.includes(date.format(dateFormat2.trim()))) { - return false; - } - if (date.isoWeekday() >= 6 && excludes2.includes("weekends")) { - return true; - } - if (excludes2.includes(date.format("dddd").toLowerCase())) { - return true; - } - return excludes2.includes(date.format(dateFormat2.trim())); -}; -var setWeekday = function(txt) { - weekday = txt; -}; -var getWeekday = function() { - return weekday; -}; -var checkTaskDates = function(task, dateFormat2, excludes2, includes2) { - if (!excludes2.length || task.manualEndTime) { - return; - } - let startTime; - if (task.startTime instanceof Date) { - startTime = (0, import_dayjs.default)(task.startTime); - } else { - startTime = (0, import_dayjs.default)(task.startTime, dateFormat2, true); - } - startTime = startTime.add(1, "d"); - let originalEndTime; - if (task.endTime instanceof Date) { - originalEndTime = (0, import_dayjs.default)(task.endTime); - } else { - originalEndTime = (0, import_dayjs.default)(task.endTime, dateFormat2, true); - } - const [fixedEndTime, renderEndTime] = fixTaskDates( - startTime, - originalEndTime, - dateFormat2, - excludes2, - includes2 - ); - task.endTime = fixedEndTime.toDate(); - task.renderEndTime = renderEndTime; -}; -var fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) { - let invalid = false; - let renderEndTime = null; - while (startTime <= endTime) { - if (!invalid) { - renderEndTime = endTime.toDate(); - } - invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2); - if (invalid) { - endTime = endTime.add(1, "d"); - } - startTime = startTime.add(1, "d"); - } - return [endTime, renderEndTime]; -}; -var getStartDate = function(prevTime, dateFormat2, str) { - str = str.trim(); - const re = /^after\s+([\d\w- ]+)/; - const afterStatement = re.exec(str.trim()); - if (afterStatement !== null) { - let latestEndingTask = null; - afterStatement[1].split(" ").forEach(function(id) { - let task = findTaskById(id); - if (task !== void 0) { - if (!latestEndingTask) { - latestEndingTask = task; - } else { - if (task.endTime > latestEndingTask.endTime) { - latestEndingTask = task; - } - } - } - }); - if (!latestEndingTask) { - const dt = /* @__PURE__ */ new Date(); - dt.setHours(0, 0, 0, 0); - return dt; - } else { - return latestEndingTask.endTime; - } - } - let mDate = (0, import_dayjs.default)(str, dateFormat2.trim(), true); - if (mDate.isValid()) { - return mDate.toDate(); - } else { - log$1.debug("Invalid date:" + str); - log$1.debug("With date format:" + dateFormat2.trim()); - const d = new Date(str); - if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously - // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304. - // This can cause virtually infinite loops while rendering, so for the - // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as - // invalid. - d.getFullYear() < -1e4 || d.getFullYear() > 1e4) { - throw new Error("Invalid date:" + str); - } - return d; - } -}; -var parseDuration = function(str) { - const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim()); - if (statement !== null) { - return [Number.parseFloat(statement[1]), statement[2]]; - } - return [NaN, "ms"]; -}; -var getEndDate = function(prevTime, dateFormat2, str, inclusive = false) { - str = str.trim(); - let mDate = (0, import_dayjs.default)(str, dateFormat2.trim(), true); - if (mDate.isValid()) { - if (inclusive) { - mDate = mDate.add(1, "d"); - } - return mDate.toDate(); - } - let endTime = (0, import_dayjs.default)(prevTime); - const [durationValue, durationUnit] = parseDuration(str); - if (!Number.isNaN(durationValue)) { - const newEndTime = endTime.add(durationValue, durationUnit); - if (newEndTime.isValid()) { - endTime = newEndTime; - } - } - return endTime.toDate(); -}; -var taskCnt = 0; -var parseId = function(idStr) { - if (idStr === void 0) { - taskCnt = taskCnt + 1; - return "task" + taskCnt; - } - return idStr; -}; -var compileData = function(prevTask, dataStr) { - let ds; - if (dataStr.substr(0, 1) === ":") { - ds = dataStr.substr(1, dataStr.length); - } else { - ds = dataStr; - } - const data = ds.split(","); - const task = {}; - getTaskTags(data, task, tags); - for (let i = 0; i < data.length; i++) { - data[i] = data[i].trim(); - } - let endTimeData = ""; - switch (data.length) { - case 1: - task.id = parseId(); - task.startTime = prevTask.endTime; - endTimeData = data[0]; - break; - case 2: - task.id = parseId(); - task.startTime = getStartDate(void 0, dateFormat, data[0]); - endTimeData = data[1]; - break; - case 3: - task.id = parseId(data[0]); - task.startTime = getStartDate(void 0, dateFormat, data[1]); - endTimeData = data[2]; - break; - } - if (endTimeData) { - task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates); - task.manualEndTime = (0, import_dayjs.default)(endTimeData, "YYYY-MM-DD", true).isValid(); - checkTaskDates(task, dateFormat, excludes, includes); - } - return task; -}; -var parseData = function(prevTaskId, dataStr) { - let ds; - if (dataStr.substr(0, 1) === ":") { - ds = dataStr.substr(1, dataStr.length); - } else { - ds = dataStr; - } - const data = ds.split(","); - const task = {}; - getTaskTags(data, task, tags); - for (let i = 0; i < data.length; i++) { - data[i] = data[i].trim(); - } - switch (data.length) { - case 1: - task.id = parseId(); - task.startTime = { - type: "prevTaskEnd", - id: prevTaskId - }; - task.endTime = { - data: data[0] - }; - break; - case 2: - task.id = parseId(); - task.startTime = { - type: "getStartDate", - startData: data[0] - }; - task.endTime = { - data: data[1] - }; - break; - case 3: - task.id = parseId(data[0]); - task.startTime = { - type: "getStartDate", - startData: data[1] - }; - task.endTime = { - data: data[2] - }; - break; - } - return task; -}; -var lastTask; -var lastTaskID; -var rawTasks = []; -var taskDb = {}; -var addTask = function(descr, data) { - const rawTask = { - section: currentSection, - type: currentSection, - processed: false, - manualEndTime: false, - renderEndTime: null, - raw: { data }, - task: descr, - classes: [] - }; - const taskInfo = parseData(lastTaskID, data); - rawTask.raw.startTime = taskInfo.startTime; - rawTask.raw.endTime = taskInfo.endTime; - rawTask.id = taskInfo.id; - rawTask.prevTaskId = lastTaskID; - rawTask.active = taskInfo.active; - rawTask.done = taskInfo.done; - rawTask.crit = taskInfo.crit; - rawTask.milestone = taskInfo.milestone; - rawTask.order = lastOrder; - lastOrder++; - const pos = rawTasks.push(rawTask); - lastTaskID = rawTask.id; - taskDb[rawTask.id] = pos - 1; -}; -var findTaskById = function(id) { - const pos = taskDb[id]; - return rawTasks[pos]; -}; -var addTaskOrg = function(descr, data) { - const newTask = { - section: currentSection, - type: currentSection, - description: descr, - task: descr, - classes: [] - }; - const taskInfo = compileData(lastTask, data); - newTask.startTime = taskInfo.startTime; - newTask.endTime = taskInfo.endTime; - newTask.id = taskInfo.id; - newTask.active = taskInfo.active; - newTask.done = taskInfo.done; - newTask.crit = taskInfo.crit; - newTask.milestone = taskInfo.milestone; - lastTask = newTask; - tasks.push(newTask); -}; -var compileTasks = function() { - const compileTask = function(pos) { - const task = rawTasks[pos]; - let startTime = ""; - switch (rawTasks[pos].raw.startTime.type) { - case "prevTaskEnd": { - const prevTask = findTaskById(task.prevTaskId); - task.startTime = prevTask.endTime; - break; - } - case "getStartDate": - startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData); - if (startTime) { - rawTasks[pos].startTime = startTime; - } - break; - } - if (rawTasks[pos].startTime) { - rawTasks[pos].endTime = getEndDate( - rawTasks[pos].startTime, - dateFormat, - rawTasks[pos].raw.endTime.data, - inclusiveEndDates - ); - if (rawTasks[pos].endTime) { - rawTasks[pos].processed = true; - rawTasks[pos].manualEndTime = (0, import_dayjs.default)( - rawTasks[pos].raw.endTime.data, - "YYYY-MM-DD", - true - ).isValid(); - checkTaskDates(rawTasks[pos], dateFormat, excludes, includes); - } - } - return rawTasks[pos].processed; - }; - let allProcessed = true; - for (const [i, rawTask] of rawTasks.entries()) { - compileTask(i); - allProcessed = allProcessed && rawTask.processed; - } - return allProcessed; -}; -var setLink = function(ids, _linkStr) { - let linkStr = _linkStr; - if (getConfig().securityLevel !== "loose") { - linkStr = (0, import_sanitize_url.sanitizeUrl)(_linkStr); - } - ids.split(",").forEach(function(id) { - let rawTask = findTaskById(id); - if (rawTask !== void 0) { - pushFun(id, () => { - window.open(linkStr, "_self"); - }); - links[id] = linkStr; - } - }); - setClass(ids, "clickable"); -}; -var setClass = function(ids, className) { - ids.split(",").forEach(function(id) { - let rawTask = findTaskById(id); - if (rawTask !== void 0) { - rawTask.classes.push(className); - } - }); -}; -var setClickFun = function(id, functionName, functionArgs) { - if (getConfig().securityLevel !== "loose") { - return; - } - if (functionName === void 0) { - return; - } - let argList = []; - if (typeof functionArgs === "string") { - argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); - for (let i = 0; i < argList.length; i++) { - let item = argList[i].trim(); - if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { - item = item.substr(1, item.length - 2); - } - argList[i] = item; - } - } - if (argList.length === 0) { - argList.push(id); - } - let rawTask = findTaskById(id); - if (rawTask !== void 0) { - pushFun(id, () => { - utils.runFunc(functionName, ...argList); - }); - } -}; -var pushFun = function(id, callbackFunction) { - funs.push( - function() { - const elem = document.querySelector(`[id="${id}"]`); - if (elem !== null) { - elem.addEventListener("click", function() { - callbackFunction(); - }); - } - }, - function() { - const elem = document.querySelector(`[id="${id}-text"]`); - if (elem !== null) { - elem.addEventListener("click", function() { - callbackFunction(); - }); - } - } - ); -}; -var setClickEvent = function(ids, functionName, functionArgs) { - ids.split(",").forEach(function(id) { - setClickFun(id, functionName, functionArgs); - }); - setClass(ids, "clickable"); -}; -var bindFunctions = function(element) { - funs.forEach(function(fun) { - fun(element); - }); -}; -var ganttDb = { - getConfig: () => getConfig().gantt, - clear: clear2, - setDateFormat, - getDateFormat, - enableInclusiveEndDates, - endDatesAreInclusive, - enableTopAxis, - topAxisEnabled, - setAxisFormat, - getAxisFormat, - setTickInterval, - getTickInterval, - setTodayMarker, - getTodayMarker, - setAccTitle, - getAccTitle, - setDiagramTitle, - getDiagramTitle, - setDisplayMode, - getDisplayMode, - setAccDescription, - getAccDescription, - addSection, - getSections, - getTasks, - addTask, - findTaskById, - addTaskOrg, - setIncludes, - getIncludes, - setExcludes, - getExcludes, - setClickEvent, - setLink, - getLinks, - bindFunctions, - parseDuration, - isInvalidDate, - setWeekday, - getWeekday -}; -function getTaskTags(data, task, tags2) { - let matchFound = true; - while (matchFound) { - matchFound = false; - tags2.forEach(function(t) { - const pattern = "^\\s*" + t + "\\s*$"; - const regex = new RegExp(pattern); - if (data[0].match(regex)) { - task[t] = true; - data.shift(1); - matchFound = true; - } - }); - } -} -var setConf = function() { - log$1.debug("Something is calling, setConf, remove the call"); -}; -var mapWeekdayToTimeFunction = { - monday: timeMonday, - tuesday: timeTuesday, - wednesday: timeWednesday, - thursday: timeThursday, - friday: timeFriday, - saturday: timeSaturday, - sunday: timeSunday -}; -var getMaxIntersections = (tasks2, orderOffset) => { - let timeline = [...tasks2].map(() => -Infinity); - let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order); - let maxIntersections = 0; - for (const element of sorted) { - for (let j = 0; j < timeline.length; j++) { - if (element.startTime >= timeline[j]) { - timeline[j] = element.endTime; - element.order = j + orderOffset; - if (j > maxIntersections) { - maxIntersections = j; - } - break; - } - } - } - return maxIntersections; -}; -var w; -var draw = function(text, id, version, diagObj) { - const conf = getConfig().gantt; - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; - const elem = doc.getElementById(id); - w = elem.parentElement.offsetWidth; - if (w === void 0) { - w = 1200; - } - if (conf.useWidth !== void 0) { - w = conf.useWidth; - } - const taskArray = diagObj.db.getTasks(); - let categories = []; - for (const element of taskArray) { - categories.push(element.type); - } - categories = checkUnique(categories); - const categoryHeights = {}; - let h = 2 * conf.topPadding; - if (diagObj.db.getDisplayMode() === "compact" || conf.displayMode === "compact") { - const categoryElements = {}; - for (const element of taskArray) { - if (categoryElements[element.section] === void 0) { - categoryElements[element.section] = [element]; - } else { - categoryElements[element.section].push(element); - } - } - let intersections = 0; - for (const category of Object.keys(categoryElements)) { - const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1; - intersections += categoryHeight; - h += categoryHeight * (conf.barHeight + conf.barGap); - categoryHeights[category] = categoryHeight; - } - } else { - h += taskArray.length * (conf.barHeight + conf.barGap); - for (const category of categories) { - categoryHeights[category] = taskArray.filter((task) => task.type === category).length; - } - } - elem.setAttribute("viewBox", "0 0 " + w + " " + h); - const svg = root.select(`[id="${id}"]`); - const timeScale = time().domain([ - min(taskArray, function(d) { - return d.startTime; - }), - max(taskArray, function(d) { - return d.endTime; - }) - ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]); - function taskCompare(a, b) { - const taskA = a.startTime; - const taskB = b.startTime; - let result = 0; - if (taskA > taskB) { - result = 1; - } else if (taskA < taskB) { - result = -1; - } - return result; - } - taskArray.sort(taskCompare); - makeGant(taskArray, w, h); - configureSvgSize(svg, h, w, conf.useMaxWidth); - svg.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf.titleTopMargin).attr("class", "titleText"); - function makeGant(tasks2, pageWidth, pageHeight) { - const barHeight = conf.barHeight; - const gap = barHeight + conf.barGap; - const topPadding = conf.topPadding; - const leftPadding = conf.leftPadding; - const colorScale = linear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(hcl_default); - drawExcludeDays( - gap, - topPadding, - leftPadding, - pageWidth, - pageHeight, - tasks2, - diagObj.db.getExcludes(), - diagObj.db.getIncludes() - ); - makeGrid(leftPadding, topPadding, pageWidth, pageHeight); - drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth); - vertLabels(gap, topPadding); - drawToday(leftPadding, topPadding, pageWidth, pageHeight); - } - function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) { - const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))]; - const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2)); - svg.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i) { - i = d.order; - return i * theGap + theTopPad - 2; - }).attr("width", function() { - return w2 - conf.rightPadding / 2; - }).attr("height", theGap).attr("class", function(d) { - for (const [i, category] of categories.entries()) { - if (d.type === category) { - return "section section" + i % conf.numberSectionStyles; - } - } - return "section section0"; - }); - const rectangles = svg.append("g").selectAll("rect").data(theArray).enter(); - const links2 = diagObj.db.getLinks(); - rectangles.append("rect").attr("id", function(d) { - return d.id; - }).attr("rx", 3).attr("ry", 3).attr("x", function(d) { - if (d.milestone) { - return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight; - } - return timeScale(d.startTime) + theSidePad; - }).attr("y", function(d, i) { - i = d.order; - return i * theGap + theTopPad; - }).attr("width", function(d) { - if (d.milestone) { - return theBarHeight; - } - return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime); - }).attr("height", theBarHeight).attr("transform-origin", function(d, i) { - i = d.order; - return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px"; - }).attr("class", function(d) { - const res = "task"; - let classStr = ""; - if (d.classes.length > 0) { - classStr = d.classes.join(" "); - } - let secNum = 0; - for (const [i, category] of categories.entries()) { - if (d.type === category) { - secNum = i % conf.numberSectionStyles; - } - } - let taskClass = ""; - if (d.active) { - if (d.crit) { - taskClass += " activeCrit"; - } else { - taskClass = " active"; - } - } else if (d.done) { - if (d.crit) { - taskClass = " doneCrit"; - } else { - taskClass = " done"; - } - } else { - if (d.crit) { - taskClass += " crit"; - } - } - if (taskClass.length === 0) { - taskClass = " task"; - } - if (d.milestone) { - taskClass = " milestone " + taskClass; - } - taskClass += secNum; - taskClass += " " + classStr; - return res + taskClass; - }); - rectangles.append("text").attr("id", function(d) { - return d.id + "-text"; - }).text(function(d) { - return d.task; - }).attr("font-size", conf.fontSize).attr("x", function(d) { - let startX = timeScale(d.startTime); - let endX = timeScale(d.renderEndTime || d.endTime); - if (d.milestone) { - startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight; - } - if (d.milestone) { - endX = startX + theBarHeight; - } - const textWidth = this.getBBox().width; - if (textWidth > endX - startX) { - if (endX + textWidth + 1.5 * conf.leftPadding > w2) { - return startX + theSidePad - 5; - } else { - return endX + theSidePad + 5; - } - } else { - return (endX - startX) / 2 + startX + theSidePad; - } - }).attr("y", function(d, i) { - i = d.order; - return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad; - }).attr("text-height", theBarHeight).attr("class", function(d) { - const startX = timeScale(d.startTime); - let endX = timeScale(d.endTime); - if (d.milestone) { - endX = startX + theBarHeight; - } - const textWidth = this.getBBox().width; - let classStr = ""; - if (d.classes.length > 0) { - classStr = d.classes.join(" "); - } - let secNum = 0; - for (const [i, category] of categories.entries()) { - if (d.type === category) { - secNum = i % conf.numberSectionStyles; - } - } - let taskType = ""; - if (d.active) { - if (d.crit) { - taskType = "activeCritText" + secNum; - } else { - taskType = "activeText" + secNum; - } - } - if (d.done) { - if (d.crit) { - taskType = taskType + " doneCritText" + secNum; - } else { - taskType = taskType + " doneText" + secNum; - } - } else { - if (d.crit) { - taskType = taskType + " critText" + secNum; - } - } - if (d.milestone) { - taskType += " milestoneText"; - } - if (textWidth > endX - startX) { - if (endX + textWidth + 1.5 * conf.leftPadding > w2) { - return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType; - } else { - return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth; - } - } else { - return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth; - } - }); - const securityLevel2 = getConfig().securityLevel; - if (securityLevel2 === "sandbox") { - let sandboxElement2; - sandboxElement2 = select_default("#i" + id); - const doc2 = sandboxElement2.nodes()[0].contentDocument; - rectangles.filter(function(d) { - return links2[d.id] !== void 0; - }).each(function(o) { - var taskRect = doc2.querySelector("#" + o.id); - var taskText = doc2.querySelector("#" + o.id + "-text"); - const oldParent = taskRect.parentNode; - var Link = doc2.createElement("a"); - Link.setAttribute("xlink:href", links2[o.id]); - Link.setAttribute("target", "_top"); - oldParent.appendChild(Link); - Link.appendChild(taskRect); - Link.appendChild(taskText); - }); - } - } - function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) { - if (excludes2.length === 0 && includes2.length === 0) { - return; - } - let minTime; - let maxTime; - for (const { startTime, endTime } of tasks2) { - if (minTime === void 0 || startTime < minTime) { - minTime = startTime; - } - if (maxTime === void 0 || endTime > maxTime) { - maxTime = endTime; - } - } - if (!minTime || !maxTime) { - return; - } - if ((0, import_dayjs.default)(maxTime).diff((0, import_dayjs.default)(minTime), "year") > 5) { - log$1.warn( - "The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days." - ); - return; - } - const dateFormat2 = diagObj.db.getDateFormat(); - const excludeRanges = []; - let range = null; - let d = (0, import_dayjs.default)(minTime); - while (d.valueOf() <= maxTime) { - if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) { - if (!range) { - range = { - start: d, - end: d - }; - } else { - range.end = d; - } - } else { - if (range) { - excludeRanges.push(range); - range = null; - } - } - d = d.add(1, "d"); - } - const rectangles = svg.append("g").selectAll("rect").data(excludeRanges).enter(); - rectangles.append("rect").attr("id", function(d2) { - return "exclude-" + d2.start.format("YYYY-MM-DD"); - }).attr("x", function(d2) { - return timeScale(d2.start) + theSidePad; - }).attr("y", conf.gridLineStartPadding).attr("width", function(d2) { - const renderEnd = d2.end.add(1, "day"); - return timeScale(renderEnd) - timeScale(d2.start); - }).attr("height", h2 - theTopPad - conf.gridLineStartPadding).attr("transform-origin", function(d2, i) { - return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i * theGap + 0.5 * h2).toString() + "px"; - }).attr("class", "exclude-range"); - } - function makeGrid(theSidePad, theTopPad, w2, h2) { - let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d")); - const reTickInterval = /^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/; - const resultTickInterval = reTickInterval.exec( - diagObj.db.getTickInterval() || conf.tickInterval - ); - if (resultTickInterval !== null) { - const every = resultTickInterval[1]; - const interval = resultTickInterval[2]; - const weekday2 = diagObj.db.getWeekday() || conf.weekday; - switch (interval) { - case "millisecond": - bottomXAxis.ticks(millisecond.every(every)); - break; - case "second": - bottomXAxis.ticks(second.every(every)); - break; - case "minute": - bottomXAxis.ticks(timeMinute.every(every)); - break; - case "hour": - bottomXAxis.ticks(timeHour.every(every)); - break; - case "day": - bottomXAxis.ticks(timeDay.every(every)); - break; - case "week": - bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every)); - break; - case "month": - bottomXAxis.ticks(timeMonth.every(every)); - break; - } - } - svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em"); - if (diagObj.db.topAxisEnabled() || conf.topAxis) { - let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || "%Y-%m-%d")); - if (resultTickInterval !== null) { - const every = resultTickInterval[1]; - const interval = resultTickInterval[2]; - const weekday2 = diagObj.db.getWeekday() || conf.weekday; - switch (interval) { - case "millisecond": - topXAxis.ticks(millisecond.every(every)); - break; - case "second": - topXAxis.ticks(second.every(every)); - break; - case "minute": - topXAxis.ticks(timeMinute.every(every)); - break; - case "hour": - topXAxis.ticks(timeHour.every(every)); - break; - case "day": - topXAxis.ticks(timeDay.every(every)); - break; - case "week": - topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every)); - break; - case "month": - topXAxis.ticks(timeMonth.every(every)); - break; - } - } - svg.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10); - } - } - function vertLabels(theGap, theTopPad) { - let prevGap = 0; - const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]); - svg.append("g").selectAll("text").data(numOccurances).enter().append(function(d) { - const rows = d[0].split(common$1.lineBreakRegex); - const dy = -(rows.length - 1) / 2; - const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); - svgLabel.setAttribute("dy", dy + "em"); - for (const [j, row] of rows.entries()) { - const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); - tspan.setAttribute("alignment-baseline", "central"); - tspan.setAttribute("x", "10"); - if (j > 0) { - tspan.setAttribute("dy", "1em"); - } - tspan.textContent = row; - svgLabel.appendChild(tspan); - } - return svgLabel; - }).attr("x", 10).attr("y", function(d, i) { - if (i > 0) { - for (let j = 0; j < i; j++) { - prevGap += numOccurances[i - 1][1]; - return d[1] * theGap / 2 + prevGap * theGap + theTopPad; - } - } else { - return d[1] * theGap / 2 + theTopPad; - } - }).attr("font-size", conf.sectionFontSize).attr("class", function(d) { - for (const [i, category] of categories.entries()) { - if (d[0] === category) { - return "sectionTitle sectionTitle" + i % conf.numberSectionStyles; - } - } - return "sectionTitle"; - }); - } - function drawToday(theSidePad, theTopPad, w2, h2) { - const todayMarker2 = diagObj.db.getTodayMarker(); - if (todayMarker2 === "off") { - return; - } - const todayG = svg.append("g").attr("class", "today"); - const today = /* @__PURE__ */ new Date(); - const todayLine = todayG.append("line"); - todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf.titleTopMargin).attr("y2", h2 - conf.titleTopMargin).attr("class", "today"); - if (todayMarker2 !== "") { - todayLine.attr("style", todayMarker2.replace(/,/g, ";")); - } - } - function checkUnique(arr) { - const hash = {}; - const result = []; - for (let i = 0, l = arr.length; i < l; ++i) { - if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) { - hash[arr[i]] = true; - result.push(arr[i]); - } - } - return result; - } -}; -var ganttRenderer = { - setConf, - draw -}; -var getStyles = (options) => ` - .mermaid-main-font { - font-family: "trebuchet ms", verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - .exclude-range { - fill: ${options.excludeBkgColor}; - } - - .section { - stroke: none; - opacity: 0.2; - } - - .section0 { - fill: ${options.sectionBkgColor}; - } - - .section2 { - fill: ${options.sectionBkgColor2}; - } - - .section1, - .section3 { - fill: ${options.altSectionBkgColor}; - opacity: 0.2; - } - - .sectionTitle0 { - fill: ${options.titleColor}; - } - - .sectionTitle1 { - fill: ${options.titleColor}; - } - - .sectionTitle2 { - fill: ${options.titleColor}; - } - - .sectionTitle3 { - fill: ${options.titleColor}; - } - - .sectionTitle { - text-anchor: start; - // font-size: ${options.ganttFontSize}; - // text-height: 14px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - - /* Grid and axis */ - - .grid .tick { - stroke: ${options.gridColor}; - opacity: 0.8; - shape-rendering: crispEdges; - text { - font-family: ${options.fontFamily}; - fill: ${options.textColor}; - } - } - - .grid path { - stroke-width: 0; - } - - - /* Today line */ - - .today { - fill: none; - stroke: ${options.todayLineColor}; - stroke-width: 2px; - } - - - /* Task styling */ - - /* Default task */ - - .task { - stroke-width: 2; - } - - .taskText { - text-anchor: middle; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - - // .taskText:not([font-size]) { - // font-size: ${options.ganttFontSize}; - // } - - .taskTextOutsideRight { - fill: ${options.taskTextDarkColor}; - text-anchor: start; - // font-size: ${options.ganttFontSize}; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - - } - - .taskTextOutsideLeft { - fill: ${options.taskTextDarkColor}; - text-anchor: end; - // font-size: ${options.ganttFontSize}; - } - - /* Special case clickable */ - .task.clickable { - cursor: pointer; - } - .taskText.clickable { - cursor: pointer; - fill: ${options.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideLeft.clickable { - cursor: pointer; - fill: ${options.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideRight.clickable { - cursor: pointer; - fill: ${options.taskTextClickableColor} !important; - font-weight: bold; - } - - /* Specific task settings for the sections*/ - - .taskText0, - .taskText1, - .taskText2, - .taskText3 { - fill: ${options.taskTextColor}; - } - - .task0, - .task1, - .task2, - .task3 { - fill: ${options.taskBkgColor}; - stroke: ${options.taskBorderColor}; - } - - .taskTextOutside0, - .taskTextOutside2 - { - fill: ${options.taskTextOutsideColor}; - } - - .taskTextOutside1, - .taskTextOutside3 { - fill: ${options.taskTextOutsideColor}; - } - - - /* Active task */ - - .active0, - .active1, - .active2, - .active3 { - fill: ${options.activeTaskBkgColor}; - stroke: ${options.activeTaskBorderColor}; - } - - .activeText0, - .activeText1, - .activeText2, - .activeText3 { - fill: ${options.taskTextDarkColor} !important; - } - - - /* Completed task */ - - .done0, - .done1, - .done2, - .done3 { - stroke: ${options.doneTaskBorderColor}; - fill: ${options.doneTaskBkgColor}; - stroke-width: 2; - } - - .doneText0, - .doneText1, - .doneText2, - .doneText3 { - fill: ${options.taskTextDarkColor} !important; - } - - - /* Tasks on the critical line */ - - .crit0, - .crit1, - .crit2, - .crit3 { - stroke: ${options.critBorderColor}; - fill: ${options.critBkgColor}; - stroke-width: 2; - } - - .activeCrit0, - .activeCrit1, - .activeCrit2, - .activeCrit3 { - stroke: ${options.critBorderColor}; - fill: ${options.activeTaskBkgColor}; - stroke-width: 2; - } - - .doneCrit0, - .doneCrit1, - .doneCrit2, - .doneCrit3 { - stroke: ${options.critBorderColor}; - fill: ${options.doneTaskBkgColor}; - stroke-width: 2; - cursor: pointer; - shape-rendering: crispEdges; - } - - .milestone { - transform: rotate(45deg) scale(0.8,0.8); - } - - .milestoneText { - font-style: italic; - } - .doneCritText0, - .doneCritText1, - .doneCritText2, - .doneCritText3 { - fill: ${options.taskTextDarkColor} !important; - } - - .activeCritText0, - .activeCritText1, - .activeCritText2, - .activeCritText3 { - fill: ${options.taskTextDarkColor} !important; - } - - .titleText { - text-anchor: middle; - font-size: 18px; - fill: ${options.textColor} ; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } -`; -var ganttStyles = getStyles; -var diagram = { - parser: ganttParser, - db: ganttDb, - renderer: ganttRenderer, - styles: ganttStyles -}; -export { - diagram -}; -//# sourceMappingURL=ganttDiagram-db6931fb-7LNKEA3N.js.map diff --git a/.vuepress/.cache/deps/ganttDiagram-db6931fb-7LNKEA3N.js.map b/.vuepress/.cache/deps/ganttDiagram-db6931fb-7LNKEA3N.js.map deleted file mode 100644 index 8757436c7..000000000 --- a/.vuepress/.cache/deps/ganttDiagram-db6931fb-7LNKEA3N.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/dayjs/plugin/isoWeek.js", "../../../../node_modules/dayjs/plugin/customParseFormat.js", "../../../../node_modules/dayjs/plugin/advancedFormat.js", "../../../../node_modules/mermaid/dist/ganttDiagram-db6931fb.js"], - "sourcesContent": ["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));", "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));", "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){\"use strict\";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case\"Q\":return Math.ceil((t.$M+1)/3);case\"Do\":return r.ordinal(t.$D);case\"gggg\":return t.weekYear();case\"GGGG\":return t.isoWeekYear();case\"wo\":return r.ordinal(t.week(),\"W\");case\"w\":case\"ww\":return s.s(t.week(),\"w\"===e?1:2,\"0\");case\"W\":case\"WW\":return s.s(t.isoWeek(),\"W\"===e?1:2,\"0\");case\"k\":case\"kk\":return s.s(String(0===t.$H?24:t.$H),\"k\"===e?1:2,\"0\");case\"X\":return Math.floor(t.$d.getTime()/1e3);case\"x\":return t.$d.getTime();case\"z\":return\"[\"+t.offsetName()+\"]\";case\"zzz\":return\"[\"+t.offsetName(\"long\")+\"]\";default:return e}}));return n.bind(this)(a)}}}));", "import { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport dayjs from \"dayjs\";\nimport dayjsIsoWeek from \"dayjs/plugin/isoWeek.js\";\nimport dayjsCustomParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport dayjsAdvancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport { c as getConfig, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, b as setAccDescription, a as getAccDescription, t as clear$1, u as utils, l as log, i as configureSvgSize, e as common } from \"./mermaid-934d9bea.js\";\nimport { select, scaleTime, min, max, scaleLinear, interpolateHcl, axisBottom, timeFormat, timeMonth, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, axisTop, timeMonday, timeTuesday, timeWednesday, timeThursday, timeFriday, timeSaturday, timeSunday } from \"d3\";\nimport \"ts-dedent\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33, 35, 37], $V1 = [1, 25], $V2 = [1, 26], $V3 = [1, 27], $V4 = [1, 28], $V5 = [1, 29], $V6 = [1, 30], $V7 = [1, 31], $V8 = [1, 9], $V9 = [1, 10], $Va = [1, 11], $Vb = [1, 12], $Vc = [1, 13], $Vd = [1, 14], $Ve = [1, 15], $Vf = [1, 16], $Vg = [1, 18], $Vh = [1, 19], $Vi = [1, 20], $Vj = [1, 21], $Vk = [1, 22], $Vl = [1, 24], $Vm = [1, 32];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"gantt\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NL\": 10, \"weekday\": 11, \"weekday_monday\": 12, \"weekday_tuesday\": 13, \"weekday_wednesday\": 14, \"weekday_thursday\": 15, \"weekday_friday\": 16, \"weekday_saturday\": 17, \"weekday_sunday\": 18, \"dateFormat\": 19, \"inclusiveEndDates\": 20, \"topAxis\": 21, \"axisFormat\": 22, \"tickInterval\": 23, \"excludes\": 24, \"includes\": 25, \"todayMarker\": 26, \"title\": 27, \"acc_title\": 28, \"acc_title_value\": 29, \"acc_descr\": 30, \"acc_descr_value\": 31, \"acc_descr_multiline_value\": 32, \"section\": 33, \"clickStatement\": 34, \"taskTxt\": 35, \"taskData\": 36, \"click\": 37, \"callbackname\": 38, \"callbackargs\": 39, \"href\": 40, \"clickStatementDebug\": 41, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"gantt\", 6: \"EOF\", 8: \"SPACE\", 10: \"NL\", 12: \"weekday_monday\", 13: \"weekday_tuesday\", 14: \"weekday_wednesday\", 15: \"weekday_thursday\", 16: \"weekday_friday\", 17: \"weekday_saturday\", 18: \"weekday_sunday\", 19: \"dateFormat\", 20: \"inclusiveEndDates\", 21: \"topAxis\", 22: \"axisFormat\", 23: \"tickInterval\", 24: \"excludes\", 25: \"includes\", 26: \"todayMarker\", 27: \"title\", 28: \"acc_title\", 29: \"acc_title_value\", 30: \"acc_descr\", 31: \"acc_descr_value\", 32: \"acc_descr_multiline_value\", 33: \"section\", 35: \"taskTxt\", 36: \"taskData\", 37: \"click\", 38: \"callbackname\", 39: \"callbackargs\", 40: \"href\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [11, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [34, 2], [34, 3], [34, 3], [34, 4], [34, 3], [34, 4], [34, 2], [41, 2], [41, 3], [41, 3], [41, 4], [41, 3], [41, 4], [41, 2]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setWeekday(\"monday\");\n break;\n case 9:\n yy.setWeekday(\"tuesday\");\n break;\n case 10:\n yy.setWeekday(\"wednesday\");\n break;\n case 11:\n yy.setWeekday(\"thursday\");\n break;\n case 12:\n yy.setWeekday(\"friday\");\n break;\n case 13:\n yy.setWeekday(\"saturday\");\n break;\n case 14:\n yy.setWeekday(\"sunday\");\n break;\n case 15:\n yy.setDateFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 16:\n yy.enableInclusiveEndDates();\n this.$ = $$[$0].substr(18);\n break;\n case 17:\n yy.TopAxis();\n this.$ = $$[$0].substr(8);\n break;\n case 18:\n yy.setAxisFormat($$[$0].substr(11));\n this.$ = $$[$0].substr(11);\n break;\n case 19:\n yy.setTickInterval($$[$0].substr(13));\n this.$ = $$[$0].substr(13);\n break;\n case 20:\n yy.setExcludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 21:\n yy.setIncludes($$[$0].substr(9));\n this.$ = $$[$0].substr(9);\n break;\n case 22:\n yy.setTodayMarker($$[$0].substr(12));\n this.$ = $$[$0].substr(12);\n break;\n case 24:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 25:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 26:\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 28:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 30:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n case 31:\n this.$ = $$[$0 - 1];\n yy.setClickEvent($$[$0 - 1], $$[$0], null);\n break;\n case 32:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);\n break;\n case 33:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);\n yy.setLink($$[$0 - 2], $$[$0]);\n break;\n case 34:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);\n yy.setLink($$[$0 - 3], $$[$0]);\n break;\n case 35:\n this.$ = $$[$0 - 2];\n yy.setClickEvent($$[$0 - 2], $$[$0], null);\n yy.setLink($$[$0 - 2], $$[$0 - 1]);\n break;\n case 36:\n this.$ = $$[$0 - 3];\n yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);\n yy.setLink($$[$0 - 3], $$[$0 - 2]);\n break;\n case 37:\n this.$ = $$[$0 - 1];\n yy.setLink($$[$0 - 1], $$[$0]);\n break;\n case 38:\n case 44:\n this.$ = $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 39:\n case 40:\n case 42:\n this.$ = $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n case 41:\n case 43:\n this.$ = $$[$0 - 3] + \" \" + $$[$0 - 2] + \" \" + $$[$0 - 1] + \" \" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 33, 11: 17, 12: $V1, 13: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd, 25: $Ve, 26: $Vf, 27: $Vg, 28: $Vh, 30: $Vi, 32: $Vj, 33: $Vk, 34: 23, 35: $Vl, 37: $Vm }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 20]), o($V0, [2, 21]), o($V0, [2, 22]), o($V0, [2, 23]), o($V0, [2, 24]), { 29: [1, 34] }, { 31: [1, 35] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), { 36: [1, 36] }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), { 38: [1, 37], 40: [1, 38] }, o($V0, [2, 4]), o($V0, [2, 25]), o($V0, [2, 26]), o($V0, [2, 30]), o($V0, [2, 31], { 39: [1, 39], 40: [1, 40] }), o($V0, [2, 37], { 38: [1, 41] }), o($V0, [2, 32], { 40: [1, 42] }), o($V0, [2, 33]), o($V0, [2, 35], { 39: [1, 43] }), o($V0, [2, 34]), o($V0, [2, 36])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"open_directive\");\n return \"open_directive\";\n case 1:\n this.begin(\"acc_title\");\n return 28;\n case 2:\n this.popState();\n return \"acc_title_value\";\n case 3:\n this.begin(\"acc_descr\");\n return 30;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n case 8:\n break;\n case 9:\n break;\n case 10:\n break;\n case 11:\n return 10;\n case 12:\n break;\n case 13:\n break;\n case 14:\n break;\n case 15:\n this.begin(\"href\");\n break;\n case 16:\n this.popState();\n break;\n case 17:\n return 40;\n case 18:\n this.begin(\"callbackname\");\n break;\n case 19:\n this.popState();\n break;\n case 20:\n this.popState();\n this.begin(\"callbackargs\");\n break;\n case 21:\n return 38;\n case 22:\n this.popState();\n break;\n case 23:\n return 39;\n case 24:\n this.begin(\"click\");\n break;\n case 25:\n this.popState();\n break;\n case 26:\n return 37;\n case 27:\n return 4;\n case 28:\n return 19;\n case 29:\n return 20;\n case 30:\n return 21;\n case 31:\n return 22;\n case 32:\n return 23;\n case 33:\n return 25;\n case 34:\n return 24;\n case 35:\n return 26;\n case 36:\n return 12;\n case 37:\n return 13;\n case 38:\n return 14;\n case 39:\n return 15;\n case 40:\n return 16;\n case 41:\n return 17;\n case 42:\n return 18;\n case 43:\n return \"date\";\n case 44:\n return 27;\n case 45:\n return \"accDescription\";\n case 46:\n return 33;\n case 47:\n return 35;\n case 48:\n return 36;\n case 49:\n return \":\";\n case 50:\n return 6;\n case 51:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%%\\{)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:%%(?!\\{)*[^\\n]*)/i, /^(?:[^\\}]%%*[^\\n]*)/i, /^(?:%%*[^\\n]*[\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:href[\\s]+[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:call[\\s]+)/i, /^(?:\\([\\s]*\\))/i, /^(?:\\()/i, /^(?:[^(]*)/i, /^(?:\\))/i, /^(?:[^)]*)/i, /^(?:click[\\s]+)/i, /^(?:[\\s\\n])/i, /^(?:[^\\s\\n]*)/i, /^(?:gantt\\b)/i, /^(?:dateFormat\\s[^#\\n;]+)/i, /^(?:inclusiveEndDates\\b)/i, /^(?:topAxis\\b)/i, /^(?:axisFormat\\s[^#\\n;]+)/i, /^(?:tickInterval\\s[^#\\n;]+)/i, /^(?:includes\\s[^#\\n;]+)/i, /^(?:excludes\\s[^#\\n;]+)/i, /^(?:todayMarker\\s[^\\n;]+)/i, /^(?:weekday\\s+monday\\b)/i, /^(?:weekday\\s+tuesday\\b)/i, /^(?:weekday\\s+wednesday\\b)/i, /^(?:weekday\\s+thursday\\b)/i, /^(?:weekday\\s+friday\\b)/i, /^(?:weekday\\s+saturday\\b)/i, /^(?:weekday\\s+sunday\\b)/i, /^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:accDescription\\s[^#\\n;]+)/i, /^(?:section\\s[^#:\\n;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4], \"inclusive\": false }, \"acc_title\": { \"rules\": [2], \"inclusive\": false }, \"callbackargs\": { \"rules\": [22, 23], \"inclusive\": false }, \"callbackname\": { \"rules\": [19, 20, 21], \"inclusive\": false }, \"href\": { \"rules\": [16, 17], \"inclusive\": false }, \"click\": { \"rules\": [25, 26], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 18, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst ganttParser = parser;\ndayjs.extend(dayjsIsoWeek);\ndayjs.extend(dayjsCustomParseFormat);\ndayjs.extend(dayjsAdvancedFormat);\nlet dateFormat = \"\";\nlet axisFormat = \"\";\nlet tickInterval = void 0;\nlet todayMarker = \"\";\nlet includes = [];\nlet excludes = [];\nlet links = {};\nlet sections = [];\nlet tasks = [];\nlet currentSection = \"\";\nlet displayMode = \"\";\nconst tags = [\"active\", \"done\", \"crit\", \"milestone\"];\nlet funs = [];\nlet inclusiveEndDates = false;\nlet topAxis = false;\nlet weekday = \"sunday\";\nlet lastOrder = 0;\nconst clear = function() {\n sections = [];\n tasks = [];\n currentSection = \"\";\n funs = [];\n taskCnt = 0;\n lastTask = void 0;\n lastTaskID = void 0;\n rawTasks = [];\n dateFormat = \"\";\n axisFormat = \"\";\n displayMode = \"\";\n tickInterval = void 0;\n todayMarker = \"\";\n includes = [];\n excludes = [];\n inclusiveEndDates = false;\n topAxis = false;\n lastOrder = 0;\n links = {};\n clear$1();\n weekday = \"sunday\";\n};\nconst setAxisFormat = function(txt) {\n axisFormat = txt;\n};\nconst getAxisFormat = function() {\n return axisFormat;\n};\nconst setTickInterval = function(txt) {\n tickInterval = txt;\n};\nconst getTickInterval = function() {\n return tickInterval;\n};\nconst setTodayMarker = function(txt) {\n todayMarker = txt;\n};\nconst getTodayMarker = function() {\n return todayMarker;\n};\nconst setDateFormat = function(txt) {\n dateFormat = txt;\n};\nconst enableInclusiveEndDates = function() {\n inclusiveEndDates = true;\n};\nconst endDatesAreInclusive = function() {\n return inclusiveEndDates;\n};\nconst enableTopAxis = function() {\n topAxis = true;\n};\nconst topAxisEnabled = function() {\n return topAxis;\n};\nconst setDisplayMode = function(txt) {\n displayMode = txt;\n};\nconst getDisplayMode = function() {\n return displayMode;\n};\nconst getDateFormat = function() {\n return dateFormat;\n};\nconst setIncludes = function(txt) {\n includes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getIncludes = function() {\n return includes;\n};\nconst setExcludes = function(txt) {\n excludes = txt.toLowerCase().split(/[\\s,]+/);\n};\nconst getExcludes = function() {\n return excludes;\n};\nconst getLinks = function() {\n return links;\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 10;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks = rawTasks;\n return tasks;\n};\nconst isInvalidDate = function(date, dateFormat2, excludes2, includes2) {\n if (includes2.includes(date.format(dateFormat2.trim()))) {\n return false;\n }\n if (date.isoWeekday() >= 6 && excludes2.includes(\"weekends\")) {\n return true;\n }\n if (excludes2.includes(date.format(\"dddd\").toLowerCase())) {\n return true;\n }\n return excludes2.includes(date.format(dateFormat2.trim()));\n};\nconst setWeekday = function(txt) {\n weekday = txt;\n};\nconst getWeekday = function() {\n return weekday;\n};\nconst checkTaskDates = function(task, dateFormat2, excludes2, includes2) {\n if (!excludes2.length || task.manualEndTime) {\n return;\n }\n let startTime;\n if (task.startTime instanceof Date) {\n startTime = dayjs(task.startTime);\n } else {\n startTime = dayjs(task.startTime, dateFormat2, true);\n }\n startTime = startTime.add(1, \"d\");\n let originalEndTime;\n if (task.endTime instanceof Date) {\n originalEndTime = dayjs(task.endTime);\n } else {\n originalEndTime = dayjs(task.endTime, dateFormat2, true);\n }\n const [fixedEndTime, renderEndTime] = fixTaskDates(\n startTime,\n originalEndTime,\n dateFormat2,\n excludes2,\n includes2\n );\n task.endTime = fixedEndTime.toDate();\n task.renderEndTime = renderEndTime;\n};\nconst fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {\n let invalid = false;\n let renderEndTime = null;\n while (startTime <= endTime) {\n if (!invalid) {\n renderEndTime = endTime.toDate();\n }\n invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);\n if (invalid) {\n endTime = endTime.add(1, \"d\");\n }\n startTime = startTime.add(1, \"d\");\n }\n return [endTime, renderEndTime];\n};\nconst getStartDate = function(prevTime, dateFormat2, str) {\n str = str.trim();\n const re = /^after\\s+([\\d\\w- ]+)/;\n const afterStatement = re.exec(str.trim());\n if (afterStatement !== null) {\n let latestEndingTask = null;\n afterStatement[1].split(\" \").forEach(function(id) {\n let task = findTaskById(id);\n if (task !== void 0) {\n if (!latestEndingTask) {\n latestEndingTask = task;\n } else {\n if (task.endTime > latestEndingTask.endTime) {\n latestEndingTask = task;\n }\n }\n }\n });\n if (!latestEndingTask) {\n const dt = /* @__PURE__ */ new Date();\n dt.setHours(0, 0, 0, 0);\n return dt;\n } else {\n return latestEndingTask.endTime;\n }\n }\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n return mDate.toDate();\n } else {\n log.debug(\"Invalid date:\" + str);\n log.debug(\"With date format:\" + dateFormat2.trim());\n const d = new Date(str);\n if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously\n // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.\n // This can cause virtually infinite loops while rendering, so for the\n // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as\n // invalid.\n d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {\n throw new Error(\"Invalid date:\" + str);\n }\n return d;\n }\n};\nconst parseDuration = function(str) {\n const statement = /^(\\d+(?:\\.\\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());\n if (statement !== null) {\n return [Number.parseFloat(statement[1]), statement[2]];\n }\n return [NaN, \"ms\"];\n};\nconst getEndDate = function(prevTime, dateFormat2, str, inclusive = false) {\n str = str.trim();\n let mDate = dayjs(str, dateFormat2.trim(), true);\n if (mDate.isValid()) {\n if (inclusive) {\n mDate = mDate.add(1, \"d\");\n }\n return mDate.toDate();\n }\n let endTime = dayjs(prevTime);\n const [durationValue, durationUnit] = parseDuration(str);\n if (!Number.isNaN(durationValue)) {\n const newEndTime = endTime.add(durationValue, durationUnit);\n if (newEndTime.isValid()) {\n endTime = newEndTime;\n }\n }\n return endTime.toDate();\n};\nlet taskCnt = 0;\nconst parseId = function(idStr) {\n if (idStr === void 0) {\n taskCnt = taskCnt + 1;\n return \"task\" + taskCnt;\n }\n return idStr;\n};\nconst compileData = function(prevTask, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n let endTimeData = \"\";\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = prevTask.endTime;\n endTimeData = data[0];\n break;\n case 2:\n task.id = parseId();\n task.startTime = getStartDate(void 0, dateFormat, data[0]);\n endTimeData = data[1];\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = getStartDate(void 0, dateFormat, data[1]);\n endTimeData = data[2];\n break;\n }\n if (endTimeData) {\n task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);\n task.manualEndTime = dayjs(endTimeData, \"YYYY-MM-DD\", true).isValid();\n checkTaskDates(task, dateFormat, excludes, includes);\n }\n return task;\n};\nconst parseData = function(prevTaskId, dataStr) {\n let ds;\n if (dataStr.substr(0, 1) === \":\") {\n ds = dataStr.substr(1, dataStr.length);\n } else {\n ds = dataStr;\n }\n const data = ds.split(\",\");\n const task = {};\n getTaskTags(data, task, tags);\n for (let i = 0; i < data.length; i++) {\n data[i] = data[i].trim();\n }\n switch (data.length) {\n case 1:\n task.id = parseId();\n task.startTime = {\n type: \"prevTaskEnd\",\n id: prevTaskId\n };\n task.endTime = {\n data: data[0]\n };\n break;\n case 2:\n task.id = parseId();\n task.startTime = {\n type: \"getStartDate\",\n startData: data[0]\n };\n task.endTime = {\n data: data[1]\n };\n break;\n case 3:\n task.id = parseId(data[0]);\n task.startTime = {\n type: \"getStartDate\",\n startData: data[1]\n };\n task.endTime = {\n data: data[2]\n };\n break;\n }\n return task;\n};\nlet lastTask;\nlet lastTaskID;\nlet rawTasks = [];\nconst taskDb = {};\nconst addTask = function(descr, data) {\n const rawTask = {\n section: currentSection,\n type: currentSection,\n processed: false,\n manualEndTime: false,\n renderEndTime: null,\n raw: { data },\n task: descr,\n classes: []\n };\n const taskInfo = parseData(lastTaskID, data);\n rawTask.raw.startTime = taskInfo.startTime;\n rawTask.raw.endTime = taskInfo.endTime;\n rawTask.id = taskInfo.id;\n rawTask.prevTaskId = lastTaskID;\n rawTask.active = taskInfo.active;\n rawTask.done = taskInfo.done;\n rawTask.crit = taskInfo.crit;\n rawTask.milestone = taskInfo.milestone;\n rawTask.order = lastOrder;\n lastOrder++;\n const pos = rawTasks.push(rawTask);\n lastTaskID = rawTask.id;\n taskDb[rawTask.id] = pos - 1;\n};\nconst findTaskById = function(id) {\n const pos = taskDb[id];\n return rawTasks[pos];\n};\nconst addTaskOrg = function(descr, data) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n const taskInfo = compileData(lastTask, data);\n newTask.startTime = taskInfo.startTime;\n newTask.endTime = taskInfo.endTime;\n newTask.id = taskInfo.id;\n newTask.active = taskInfo.active;\n newTask.done = taskInfo.done;\n newTask.crit = taskInfo.crit;\n newTask.milestone = taskInfo.milestone;\n lastTask = newTask;\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n const task = rawTasks[pos];\n let startTime = \"\";\n switch (rawTasks[pos].raw.startTime.type) {\n case \"prevTaskEnd\": {\n const prevTask = findTaskById(task.prevTaskId);\n task.startTime = prevTask.endTime;\n break;\n }\n case \"getStartDate\":\n startTime = getStartDate(void 0, dateFormat, rawTasks[pos].raw.startTime.startData);\n if (startTime) {\n rawTasks[pos].startTime = startTime;\n }\n break;\n }\n if (rawTasks[pos].startTime) {\n rawTasks[pos].endTime = getEndDate(\n rawTasks[pos].startTime,\n dateFormat,\n rawTasks[pos].raw.endTime.data,\n inclusiveEndDates\n );\n if (rawTasks[pos].endTime) {\n rawTasks[pos].processed = true;\n rawTasks[pos].manualEndTime = dayjs(\n rawTasks[pos].raw.endTime.data,\n \"YYYY-MM-DD\",\n true\n ).isValid();\n checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);\n }\n }\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst setLink = function(ids, _linkStr) {\n let linkStr = _linkStr;\n if (getConfig().securityLevel !== \"loose\") {\n linkStr = sanitizeUrl(_linkStr);\n }\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n window.open(linkStr, \"_self\");\n });\n links[id] = linkStr;\n }\n });\n setClass(ids, \"clickable\");\n};\nconst setClass = function(ids, className) {\n ids.split(\",\").forEach(function(id) {\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n rawTask.classes.push(className);\n }\n });\n};\nconst setClickFun = function(id, functionName, functionArgs) {\n if (getConfig().securityLevel !== \"loose\") {\n return;\n }\n if (functionName === void 0) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === \"string\") {\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n if (argList.length === 0) {\n argList.push(id);\n }\n let rawTask = findTaskById(id);\n if (rawTask !== void 0) {\n pushFun(id, () => {\n utils.runFunc(functionName, ...argList);\n });\n }\n};\nconst pushFun = function(id, callbackFunction) {\n funs.push(\n function() {\n const elem = document.querySelector(`[id=\"${id}\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n },\n function() {\n const elem = document.querySelector(`[id=\"${id}-text\"]`);\n if (elem !== null) {\n elem.addEventListener(\"click\", function() {\n callbackFunction();\n });\n }\n }\n );\n};\nconst setClickEvent = function(ids, functionName, functionArgs) {\n ids.split(\",\").forEach(function(id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, \"clickable\");\n};\nconst bindFunctions = function(element) {\n funs.forEach(function(fun) {\n fun(element);\n });\n};\nconst ganttDb = {\n getConfig: () => getConfig().gantt,\n clear,\n setDateFormat,\n getDateFormat,\n enableInclusiveEndDates,\n endDatesAreInclusive,\n enableTopAxis,\n topAxisEnabled,\n setAxisFormat,\n getAxisFormat,\n setTickInterval,\n getTickInterval,\n setTodayMarker,\n getTodayMarker,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n setDisplayMode,\n getDisplayMode,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n findTaskById,\n addTaskOrg,\n setIncludes,\n getIncludes,\n setExcludes,\n getExcludes,\n setClickEvent,\n setLink,\n getLinks,\n bindFunctions,\n parseDuration,\n isInvalidDate,\n setWeekday,\n getWeekday\n};\nfunction getTaskTags(data, task, tags2) {\n let matchFound = true;\n while (matchFound) {\n matchFound = false;\n tags2.forEach(function(t) {\n const pattern = \"^\\\\s*\" + t + \"\\\\s*$\";\n const regex = new RegExp(pattern);\n if (data[0].match(regex)) {\n task[t] = true;\n data.shift(1);\n matchFound = true;\n }\n });\n }\n}\nconst setConf = function() {\n log.debug(\"Something is calling, setConf, remove the call\");\n};\nconst mapWeekdayToTimeFunction = {\n monday: timeMonday,\n tuesday: timeTuesday,\n wednesday: timeWednesday,\n thursday: timeThursday,\n friday: timeFriday,\n saturday: timeSaturday,\n sunday: timeSunday\n};\nconst getMaxIntersections = (tasks2, orderOffset) => {\n let timeline = [...tasks2].map(() => -Infinity);\n let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);\n let maxIntersections = 0;\n for (const element of sorted) {\n for (let j = 0; j < timeline.length; j++) {\n if (element.startTime >= timeline[j]) {\n timeline[j] = element.endTime;\n element.order = j + orderOffset;\n if (j > maxIntersections) {\n maxIntersections = j;\n }\n break;\n }\n }\n }\n return maxIntersections;\n};\nlet w;\nconst draw = function(text, id, version, diagObj) {\n const conf = getConfig().gantt;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n const elem = doc.getElementById(id);\n w = elem.parentElement.offsetWidth;\n if (w === void 0) {\n w = 1200;\n }\n if (conf.useWidth !== void 0) {\n w = conf.useWidth;\n }\n const taskArray = diagObj.db.getTasks();\n let categories = [];\n for (const element of taskArray) {\n categories.push(element.type);\n }\n categories = checkUnique(categories);\n const categoryHeights = {};\n let h = 2 * conf.topPadding;\n if (diagObj.db.getDisplayMode() === \"compact\" || conf.displayMode === \"compact\") {\n const categoryElements = {};\n for (const element of taskArray) {\n if (categoryElements[element.section] === void 0) {\n categoryElements[element.section] = [element];\n } else {\n categoryElements[element.section].push(element);\n }\n }\n let intersections = 0;\n for (const category of Object.keys(categoryElements)) {\n const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;\n intersections += categoryHeight;\n h += categoryHeight * (conf.barHeight + conf.barGap);\n categoryHeights[category] = categoryHeight;\n }\n } else {\n h += taskArray.length * (conf.barHeight + conf.barGap);\n for (const category of categories) {\n categoryHeights[category] = taskArray.filter((task) => task.type === category).length;\n }\n }\n elem.setAttribute(\"viewBox\", \"0 0 \" + w + \" \" + h);\n const svg = root.select(`[id=\"${id}\"]`);\n const timeScale = scaleTime().domain([\n min(taskArray, function(d) {\n return d.startTime;\n }),\n max(taskArray, function(d) {\n return d.endTime;\n })\n ]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);\n function taskCompare(a, b) {\n const taskA = a.startTime;\n const taskB = b.startTime;\n let result = 0;\n if (taskA > taskB) {\n result = 1;\n } else if (taskA < taskB) {\n result = -1;\n }\n return result;\n }\n taskArray.sort(taskCompare);\n makeGant(taskArray, w, h);\n configureSvgSize(svg, h, w, conf.useMaxWidth);\n svg.append(\"text\").text(diagObj.db.getDiagramTitle()).attr(\"x\", w / 2).attr(\"y\", conf.titleTopMargin).attr(\"class\", \"titleText\");\n function makeGant(tasks2, pageWidth, pageHeight) {\n const barHeight = conf.barHeight;\n const gap = barHeight + conf.barGap;\n const topPadding = conf.topPadding;\n const leftPadding = conf.leftPadding;\n const colorScale = scaleLinear().domain([0, categories.length]).range([\"#00B9FA\", \"#F95002\"]).interpolate(interpolateHcl);\n drawExcludeDays(\n gap,\n topPadding,\n leftPadding,\n pageWidth,\n pageHeight,\n tasks2,\n diagObj.db.getExcludes(),\n diagObj.db.getIncludes()\n );\n makeGrid(leftPadding, topPadding, pageWidth, pageHeight);\n drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);\n vertLabels(gap, topPadding);\n drawToday(leftPadding, topPadding, pageWidth, pageHeight);\n }\n function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {\n const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];\n const uniqueTasks = uniqueTaskOrderIds.map((id2) => theArray.find((item) => item.order === id2));\n svg.append(\"g\").selectAll(\"rect\").data(uniqueTasks).enter().append(\"rect\").attr(\"x\", 0).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad - 2;\n }).attr(\"width\", function() {\n return w2 - conf.rightPadding / 2;\n }).attr(\"height\", theGap).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n return \"section section\" + i % conf.numberSectionStyles;\n }\n }\n return \"section section0\";\n });\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(theArray).enter();\n const links2 = diagObj.db.getLinks();\n rectangles.append(\"rect\").attr(\"id\", function(d) {\n return d.id;\n }).attr(\"rx\", 3).attr(\"ry\", 3).attr(\"x\", function(d) {\n if (d.milestone) {\n return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n return timeScale(d.startTime) + theSidePad;\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + theTopPad;\n }).attr(\"width\", function(d) {\n if (d.milestone) {\n return theBarHeight;\n }\n return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);\n }).attr(\"height\", theBarHeight).attr(\"transform-origin\", function(d, i) {\n i = d.order;\n return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + \"px \" + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + \"px\";\n }).attr(\"class\", function(d) {\n const res = \"task\";\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskClass = \"\";\n if (d.active) {\n if (d.crit) {\n taskClass += \" activeCrit\";\n } else {\n taskClass = \" active\";\n }\n } else if (d.done) {\n if (d.crit) {\n taskClass = \" doneCrit\";\n } else {\n taskClass = \" done\";\n }\n } else {\n if (d.crit) {\n taskClass += \" crit\";\n }\n }\n if (taskClass.length === 0) {\n taskClass = \" task\";\n }\n if (d.milestone) {\n taskClass = \" milestone \" + taskClass;\n }\n taskClass += secNum;\n taskClass += \" \" + classStr;\n return res + taskClass;\n });\n rectangles.append(\"text\").attr(\"id\", function(d) {\n return d.id + \"-text\";\n }).text(function(d) {\n return d.task;\n }).attr(\"font-size\", conf.fontSize).attr(\"x\", function(d) {\n let startX = timeScale(d.startTime);\n let endX = timeScale(d.renderEndTime || d.endTime);\n if (d.milestone) {\n startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;\n }\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return startX + theSidePad - 5;\n } else {\n return endX + theSidePad + 5;\n }\n } else {\n return (endX - startX) / 2 + startX + theSidePad;\n }\n }).attr(\"y\", function(d, i) {\n i = d.order;\n return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;\n }).attr(\"text-height\", theBarHeight).attr(\"class\", function(d) {\n const startX = timeScale(d.startTime);\n let endX = timeScale(d.endTime);\n if (d.milestone) {\n endX = startX + theBarHeight;\n }\n const textWidth = this.getBBox().width;\n let classStr = \"\";\n if (d.classes.length > 0) {\n classStr = d.classes.join(\" \");\n }\n let secNum = 0;\n for (const [i, category] of categories.entries()) {\n if (d.type === category) {\n secNum = i % conf.numberSectionStyles;\n }\n }\n let taskType = \"\";\n if (d.active) {\n if (d.crit) {\n taskType = \"activeCritText\" + secNum;\n } else {\n taskType = \"activeText\" + secNum;\n }\n }\n if (d.done) {\n if (d.crit) {\n taskType = taskType + \" doneCritText\" + secNum;\n } else {\n taskType = taskType + \" doneText\" + secNum;\n }\n } else {\n if (d.crit) {\n taskType = taskType + \" critText\" + secNum;\n }\n }\n if (d.milestone) {\n taskType += \" milestoneText\";\n }\n if (textWidth > endX - startX) {\n if (endX + textWidth + 1.5 * conf.leftPadding > w2) {\n return classStr + \" taskTextOutsideLeft taskTextOutside\" + secNum + \" \" + taskType;\n } else {\n return classStr + \" taskTextOutsideRight taskTextOutside\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n } else {\n return classStr + \" taskText taskText\" + secNum + \" \" + taskType + \" width-\" + textWidth;\n }\n });\n const securityLevel2 = getConfig().securityLevel;\n if (securityLevel2 === \"sandbox\") {\n let sandboxElement2;\n sandboxElement2 = select(\"#i\" + id);\n const doc2 = sandboxElement2.nodes()[0].contentDocument;\n rectangles.filter(function(d) {\n return links2[d.id] !== void 0;\n }).each(function(o) {\n var taskRect = doc2.querySelector(\"#\" + o.id);\n var taskText = doc2.querySelector(\"#\" + o.id + \"-text\");\n const oldParent = taskRect.parentNode;\n var Link = doc2.createElement(\"a\");\n Link.setAttribute(\"xlink:href\", links2[o.id]);\n Link.setAttribute(\"target\", \"_top\");\n oldParent.appendChild(Link);\n Link.appendChild(taskRect);\n Link.appendChild(taskText);\n });\n }\n }\n function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {\n if (excludes2.length === 0 && includes2.length === 0) {\n return;\n }\n let minTime;\n let maxTime;\n for (const { startTime, endTime } of tasks2) {\n if (minTime === void 0 || startTime < minTime) {\n minTime = startTime;\n }\n if (maxTime === void 0 || endTime > maxTime) {\n maxTime = endTime;\n }\n }\n if (!minTime || !maxTime) {\n return;\n }\n if (dayjs(maxTime).diff(dayjs(minTime), \"year\") > 5) {\n log.warn(\n \"The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.\"\n );\n return;\n }\n const dateFormat2 = diagObj.db.getDateFormat();\n const excludeRanges = [];\n let range = null;\n let d = dayjs(minTime);\n while (d.valueOf() <= maxTime) {\n if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {\n if (!range) {\n range = {\n start: d,\n end: d\n };\n } else {\n range.end = d;\n }\n } else {\n if (range) {\n excludeRanges.push(range);\n range = null;\n }\n }\n d = d.add(1, \"d\");\n }\n const rectangles = svg.append(\"g\").selectAll(\"rect\").data(excludeRanges).enter();\n rectangles.append(\"rect\").attr(\"id\", function(d2) {\n return \"exclude-\" + d2.start.format(\"YYYY-MM-DD\");\n }).attr(\"x\", function(d2) {\n return timeScale(d2.start) + theSidePad;\n }).attr(\"y\", conf.gridLineStartPadding).attr(\"width\", function(d2) {\n const renderEnd = d2.end.add(1, \"day\");\n return timeScale(renderEnd) - timeScale(d2.start);\n }).attr(\"height\", h2 - theTopPad - conf.gridLineStartPadding).attr(\"transform-origin\", function(d2, i) {\n return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + \"px \" + (i * theGap + 0.5 * h2).toString() + \"px\";\n }).attr(\"class\", \"exclude-range\");\n }\n function makeGrid(theSidePad, theTopPad, w2, h2) {\n let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n const reTickInterval = /^([1-9]\\d*)(millisecond|second|minute|hour|day|week|month)$/;\n const resultTickInterval = reTickInterval.exec(\n diagObj.db.getTickInterval() || conf.tickInterval\n );\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n bottomXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n bottomXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n bottomXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n bottomXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n bottomXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n bottomXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n bottomXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + (h2 - 50) + \")\").call(bottomXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10).attr(\"dy\", \"1em\");\n if (diagObj.db.topAxisEnabled() || conf.topAxis) {\n let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf.axisFormat || \"%Y-%m-%d\"));\n if (resultTickInterval !== null) {\n const every = resultTickInterval[1];\n const interval = resultTickInterval[2];\n const weekday2 = diagObj.db.getWeekday() || conf.weekday;\n switch (interval) {\n case \"millisecond\":\n topXAxis.ticks(timeMillisecond.every(every));\n break;\n case \"second\":\n topXAxis.ticks(timeSecond.every(every));\n break;\n case \"minute\":\n topXAxis.ticks(timeMinute.every(every));\n break;\n case \"hour\":\n topXAxis.ticks(timeHour.every(every));\n break;\n case \"day\":\n topXAxis.ticks(timeDay.every(every));\n break;\n case \"week\":\n topXAxis.ticks(mapWeekdayToTimeFunction[weekday2].every(every));\n break;\n case \"month\":\n topXAxis.ticks(timeMonth.every(every));\n break;\n }\n }\n svg.append(\"g\").attr(\"class\", \"grid\").attr(\"transform\", \"translate(\" + theSidePad + \", \" + theTopPad + \")\").call(topXAxis).selectAll(\"text\").style(\"text-anchor\", \"middle\").attr(\"fill\", \"#000\").attr(\"stroke\", \"none\").attr(\"font-size\", 10);\n }\n }\n function vertLabels(theGap, theTopPad) {\n let prevGap = 0;\n const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);\n svg.append(\"g\").selectAll(\"text\").data(numOccurances).enter().append(function(d) {\n const rows = d[0].split(common.lineBreakRegex);\n const dy = -(rows.length - 1) / 2;\n const svgLabel = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"dy\", dy + \"em\");\n for (const [j, row] of rows.entries()) {\n const tspan = doc.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttribute(\"alignment-baseline\", \"central\");\n tspan.setAttribute(\"x\", \"10\");\n if (j > 0) {\n tspan.setAttribute(\"dy\", \"1em\");\n }\n tspan.textContent = row;\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }).attr(\"x\", 10).attr(\"y\", function(d, i) {\n if (i > 0) {\n for (let j = 0; j < i; j++) {\n prevGap += numOccurances[i - 1][1];\n return d[1] * theGap / 2 + prevGap * theGap + theTopPad;\n }\n } else {\n return d[1] * theGap / 2 + theTopPad;\n }\n }).attr(\"font-size\", conf.sectionFontSize).attr(\"class\", function(d) {\n for (const [i, category] of categories.entries()) {\n if (d[0] === category) {\n return \"sectionTitle sectionTitle\" + i % conf.numberSectionStyles;\n }\n }\n return \"sectionTitle\";\n });\n }\n function drawToday(theSidePad, theTopPad, w2, h2) {\n const todayMarker2 = diagObj.db.getTodayMarker();\n if (todayMarker2 === \"off\") {\n return;\n }\n const todayG = svg.append(\"g\").attr(\"class\", \"today\");\n const today = /* @__PURE__ */ new Date();\n const todayLine = todayG.append(\"line\");\n todayLine.attr(\"x1\", timeScale(today) + theSidePad).attr(\"x2\", timeScale(today) + theSidePad).attr(\"y1\", conf.titleTopMargin).attr(\"y2\", h2 - conf.titleTopMargin).attr(\"class\", \"today\");\n if (todayMarker2 !== \"\") {\n todayLine.attr(\"style\", todayMarker2.replace(/,/g, \";\"));\n }\n }\n function checkUnique(arr) {\n const hash = {};\n const result = [];\n for (let i = 0, l = arr.length; i < l; ++i) {\n if (!Object.prototype.hasOwnProperty.call(hash, arr[i])) {\n hash[arr[i]] = true;\n result.push(arr[i]);\n }\n }\n return result;\n }\n};\nconst ganttRenderer = {\n setConf,\n draw\n};\nconst getStyles = (options) => `\n .mermaid-main-font {\n font-family: \"trebuchet ms\", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${options.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${options.sectionBkgColor};\n }\n\n .section2 {\n fill: ${options.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${options.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${options.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${options.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${options.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${options.fontFamily};\n fill: ${options.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${options.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${options.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${options.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${options.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${options.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${options.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${options.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${options.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${options.taskBkgColor};\n stroke: ${options.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${options.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${options.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${options.activeTaskBkgColor};\n stroke: ${options.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${options.doneTaskBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${options.critBorderColor};\n fill: ${options.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${options.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`;\nconst ganttStyles = getStyles;\nconst diagram = {\n parser: ganttParser,\n db: ganttDb,\n renderer: ganttRenderer,\n styles: ganttStyles\n};\nexport {\n diagram\n};\n"], - "mappings": "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AAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,C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", - "names": ["t", "i", "d", "n", "e", "s", "e", "t", "n", "r", "i", "s", "o", "a", "f", "h", "u", "c", "d", "l", "m", "M", "e", "t", "r", "self", "dayjs", "dayjsIsoWeek", "dayjsCustomParseFormat", "dayjsAdvancedFormat", "clear"] -} diff --git a/.vuepress/.cache/deps/gitGraphDiagram-6b463803-7BG24S6L.js b/.vuepress/.cache/deps/gitGraphDiagram-6b463803-7BG24S6L.js deleted file mode 100644 index b6f5ceece..000000000 --- a/.vuepress/.cache/deps/gitGraphDiagram-6b463803-7BG24S6L.js +++ /dev/null @@ -1,1753 +0,0 @@ -import { - clear, - common$1, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - log$1, - random, - require_dayjs_min, - require_dist, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle, - setupGraphViewbox, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/gitGraphDiagram-6b463803.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 3], $V1 = [1, 6], $V2 = [1, 4], $V3 = [1, 5], $V4 = [2, 5], $V5 = [1, 12], $V6 = [5, 7, 13, 19, 21, 23, 24, 26, 28, 31, 36, 39, 46], $V7 = [7, 13, 19, 21, 23, 24, 26, 28, 31, 36, 39], $V8 = [7, 12, 13, 19, 21, 23, 24, 26, 28, 31, 36, 39], $V9 = [7, 13, 46], $Va = [1, 42], $Vb = [1, 41], $Vc = [7, 13, 29, 32, 34, 37, 46], $Vd = [1, 55], $Ve = [1, 56], $Vf = [1, 57], $Vg = [7, 13, 32, 34, 41, 46]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "eol": 4, "GG": 5, "document": 6, "EOF": 7, ":": 8, "DIR": 9, "options": 10, "body": 11, "OPT": 12, "NL": 13, "line": 14, "statement": 15, "commitStatement": 16, "mergeStatement": 17, "cherryPickStatement": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "section": 24, "branchStatement": 25, "CHECKOUT": 26, "ref": 27, "BRANCH": 28, "ORDER": 29, "NUM": 30, "CHERRY_PICK": 31, "COMMIT_ID": 32, "STR": 33, "COMMIT_TAG": 34, "EMPTYSTR": 35, "MERGE": 36, "COMMIT_TYPE": 37, "commitType": 38, "COMMIT": 39, "commit_arg": 40, "COMMIT_MSG": 41, "NORMAL": 42, "REVERSE": 43, "HIGHLIGHT": 44, "ID": 45, ";": 46, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "GG", 7: "EOF", 8: ":", 9: "DIR", 12: "OPT", 13: "NL", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "section", 26: "CHECKOUT", 28: "BRANCH", 29: "ORDER", 30: "NUM", 31: "CHERRY_PICK", 32: "COMMIT_ID", 33: "STR", 34: "COMMIT_TAG", 35: "EMPTYSTR", 36: "MERGE", 37: "COMMIT_TYPE", 39: "COMMIT", 41: "COMMIT_MSG", 42: "NORMAL", 43: "REVERSE", 44: "HIGHLIGHT", 45: "ID", 46: ";" }, - productions_: [0, [3, 2], [3, 3], [3, 4], [3, 5], [6, 0], [6, 2], [10, 2], [10, 1], [11, 0], [11, 2], [14, 2], [14, 1], [15, 1], [15, 1], [15, 1], [15, 2], [15, 2], [15, 1], [15, 1], [15, 1], [15, 2], [25, 2], [25, 4], [18, 3], [18, 5], [18, 5], [18, 5], [18, 5], [17, 2], [17, 4], [17, 4], [17, 4], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [16, 2], [16, 3], [16, 3], [16, 5], [16, 5], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [40, 0], [40, 1], [38, 1], [38, 1], [38, 1], [27, 1], [27, 1], [4, 1], [4, 1], [4, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 2: - return $$[$0]; - case 3: - return $$[$0 - 1]; - case 4: - yy.setDirection($$[$0 - 3]); - return $$[$0 - 1]; - case 6: - yy.setOptions($$[$0 - 1]); - this.$ = $$[$0]; - break; - case 7: - $$[$0 - 1] += $$[$0]; - this.$ = $$[$0 - 1]; - break; - case 9: - this.$ = []; - break; - case 10: - $$[$0 - 1].push($$[$0]); - this.$ = $$[$0 - 1]; - break; - case 11: - this.$ = $$[$0 - 1]; - break; - case 16: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 17: - case 18: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 19: - yy.addSection($$[$0].substr(8)); - this.$ = $$[$0].substr(8); - break; - case 21: - yy.checkout($$[$0]); - break; - case 22: - yy.branch($$[$0]); - break; - case 23: - yy.branch($$[$0 - 2], $$[$0]); - break; - case 24: - yy.cherryPick($$[$0], "", void 0); - break; - case 25: - yy.cherryPick($$[$0 - 2], "", $$[$0]); - break; - case 26: - case 28: - yy.cherryPick($$[$0 - 2], "", ""); - break; - case 27: - yy.cherryPick($$[$0], "", $$[$0 - 2]); - break; - case 29: - yy.merge($$[$0], "", "", ""); - break; - case 30: - yy.merge($$[$0 - 2], $$[$0], "", ""); - break; - case 31: - yy.merge($$[$0 - 2], "", $$[$0], ""); - break; - case 32: - yy.merge($$[$0 - 2], "", "", $$[$0]); - break; - case 33: - yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]); - break; - case 34: - yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]); - break; - case 35: - yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]); - break; - case 36: - yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], ""); - break; - case 37: - yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]); - break; - case 38: - yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], ""); - break; - case 39: - yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]); - break; - case 40: - yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]); - break; - case 41: - yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]); - break; - case 42: - yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]); - break; - case 43: - yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]); - break; - case 44: - yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]); - break; - case 45: - yy.commit($$[$0]); - break; - case 46: - yy.commit("", "", yy.commitType.NORMAL, $$[$0]); - break; - case 47: - yy.commit("", "", $$[$0], ""); - break; - case 48: - yy.commit("", "", $$[$0], $$[$0 - 2]); - break; - case 49: - yy.commit("", "", $$[$0 - 2], $$[$0]); - break; - case 50: - yy.commit("", $$[$0], yy.commitType.NORMAL, ""); - break; - case 51: - yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]); - break; - case 52: - yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]); - break; - case 53: - yy.commit("", $$[$0 - 2], $$[$0], ""); - break; - case 54: - yy.commit("", $$[$0], $$[$0 - 2], ""); - break; - case 55: - yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]); - break; - case 56: - yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]); - break; - case 57: - yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]); - break; - case 58: - yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]); - break; - case 59: - yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]); - break; - case 60: - yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]); - break; - case 61: - yy.commit($$[$0], "", yy.commitType.NORMAL, ""); - break; - case 62: - yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]); - break; - case 63: - yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]); - break; - case 64: - yy.commit($$[$0 - 2], "", $$[$0], ""); - break; - case 65: - yy.commit($$[$0], "", $$[$0 - 2], ""); - break; - case 66: - yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, ""); - break; - case 67: - yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, ""); - break; - case 68: - yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]); - break; - case 69: - yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]); - break; - case 70: - yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]); - break; - case 71: - yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]); - break; - case 72: - yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]); - break; - case 73: - yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]); - break; - case 74: - yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], ""); - break; - case 75: - yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], ""); - break; - case 76: - yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], ""); - break; - case 77: - yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], ""); - break; - case 78: - yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], ""); - break; - case 79: - yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], ""); - break; - case 80: - yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]); - break; - case 81: - yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]); - break; - case 82: - yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]); - break; - case 83: - yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]); - break; - case 84: - yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]); - break; - case 85: - yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]); - break; - case 86: - yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]); - break; - case 87: - yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]); - break; - case 88: - yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]); - break; - case 89: - yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]); - break; - case 90: - yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]); - break; - case 91: - yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]); - break; - case 92: - yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]); - break; - case 93: - yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]); - break; - case 94: - yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]); - break; - case 95: - yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]); - break; - case 96: - yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]); - break; - case 97: - yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]); - break; - case 98: - yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]); - break; - case 99: - yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]); - break; - case 100: - yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]); - break; - case 101: - yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]); - break; - case 102: - yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]); - break; - case 103: - yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]); - break; - case 104: - yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]); - break; - case 105: - yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]); - break; - case 106: - yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]); - break; - case 107: - yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]); - break; - case 108: - yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]); - break; - case 109: - yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]); - break; - case 110: - this.$ = ""; - break; - case 111: - this.$ = $$[$0]; - break; - case 112: - this.$ = yy.commitType.NORMAL; - break; - case 113: - this.$ = yy.commitType.REVERSE; - break; - case 114: - this.$ = yy.commitType.HIGHLIGHT; - break; - } - }, - table: [{ 3: 1, 4: 2, 5: $V0, 7: $V1, 13: $V2, 46: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 7: $V1, 13: $V2, 46: $V3 }, { 6: 8, 7: $V4, 8: [1, 9], 9: [1, 10], 10: 11, 13: $V5 }, o($V6, [2, 117]), o($V6, [2, 118]), o($V6, [2, 119]), { 1: [2, 1] }, { 7: [1, 13] }, { 6: 14, 7: $V4, 10: 11, 13: $V5 }, { 8: [1, 15] }, o($V7, [2, 9], { 11: 16, 12: [1, 17] }), o($V8, [2, 8]), { 1: [2, 2] }, { 7: [1, 18] }, { 6: 19, 7: $V4, 10: 11, 13: $V5 }, { 7: [2, 6], 13: [1, 22], 14: 20, 15: 21, 16: 23, 17: 24, 18: 25, 19: [1, 26], 21: [1, 27], 23: [1, 28], 24: [1, 29], 25: 30, 26: [1, 31], 28: [1, 35], 31: [1, 34], 36: [1, 33], 39: [1, 32] }, o($V8, [2, 7]), { 1: [2, 3] }, { 7: [1, 36] }, o($V7, [2, 10]), { 4: 37, 7: $V1, 13: $V2, 46: $V3 }, o($V7, [2, 12]), o($V9, [2, 13]), o($V9, [2, 14]), o($V9, [2, 15]), { 20: [1, 38] }, { 22: [1, 39] }, o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), { 27: 40, 33: $Va, 45: $Vb }, o($V9, [2, 110], { 40: 43, 32: [1, 46], 33: [1, 48], 34: [1, 44], 37: [1, 45], 41: [1, 47] }), { 27: 49, 33: $Va, 45: $Vb }, { 32: [1, 50], 34: [1, 51] }, { 27: 52, 33: $Va, 45: $Vb }, { 1: [2, 4] }, o($V7, [2, 11]), o($V9, [2, 16]), o($V9, [2, 17]), o($V9, [2, 21]), o($Vc, [2, 115]), o($Vc, [2, 116]), o($V9, [2, 45]), { 33: [1, 53] }, { 38: 54, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 58] }, { 33: [1, 59] }, o($V9, [2, 111]), o($V9, [2, 29], { 32: [1, 60], 34: [1, 62], 37: [1, 61] }), { 33: [1, 63] }, { 33: [1, 64], 35: [1, 65] }, o($V9, [2, 22], { 29: [1, 66] }), o($V9, [2, 46], { 32: [1, 68], 37: [1, 67], 41: [1, 69] }), o($V9, [2, 47], { 32: [1, 71], 34: [1, 70], 41: [1, 72] }), o($Vg, [2, 112]), o($Vg, [2, 113]), o($Vg, [2, 114]), o($V9, [2, 50], { 34: [1, 73], 37: [1, 74], 41: [1, 75] }), o($V9, [2, 61], { 32: [1, 78], 34: [1, 76], 37: [1, 77] }), { 33: [1, 79] }, { 38: 80, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 81] }, o($V9, [2, 24], { 34: [1, 82] }), { 32: [1, 83] }, { 32: [1, 84] }, { 30: [1, 85] }, { 38: 86, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 87] }, { 33: [1, 88] }, { 33: [1, 89] }, { 33: [1, 90] }, { 33: [1, 91] }, { 33: [1, 92] }, { 38: 93, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 94] }, { 33: [1, 95] }, { 38: 96, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 97] }, o($V9, [2, 30], { 34: [1, 99], 37: [1, 98] }), o($V9, [2, 31], { 32: [1, 101], 34: [1, 100] }), o($V9, [2, 32], { 32: [1, 102], 37: [1, 103] }), { 33: [1, 104], 35: [1, 105] }, { 33: [1, 106] }, { 33: [1, 107] }, o($V9, [2, 23]), o($V9, [2, 48], { 32: [1, 108], 41: [1, 109] }), o($V9, [2, 52], { 37: [1, 110], 41: [1, 111] }), o($V9, [2, 62], { 32: [1, 113], 37: [1, 112] }), o($V9, [2, 49], { 32: [1, 114], 41: [1, 115] }), o($V9, [2, 54], { 34: [1, 116], 41: [1, 117] }), o($V9, [2, 65], { 32: [1, 119], 34: [1, 118] }), o($V9, [2, 51], { 37: [1, 120], 41: [1, 121] }), o($V9, [2, 53], { 34: [1, 122], 41: [1, 123] }), o($V9, [2, 66], { 34: [1, 125], 37: [1, 124] }), o($V9, [2, 63], { 32: [1, 127], 37: [1, 126] }), o($V9, [2, 64], { 32: [1, 129], 34: [1, 128] }), o($V9, [2, 67], { 34: [1, 131], 37: [1, 130] }), { 38: 132, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 133] }, { 33: [1, 134] }, { 33: [1, 135] }, { 33: [1, 136] }, { 38: 137, 42: $Vd, 43: $Ve, 44: $Vf }, o($V9, [2, 25]), o($V9, [2, 26]), o($V9, [2, 27]), o($V9, [2, 28]), { 33: [1, 138] }, { 33: [1, 139] }, { 38: 140, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 141] }, { 38: 142, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 143] }, { 33: [1, 144] }, { 33: [1, 145] }, { 33: [1, 146] }, { 33: [1, 147] }, { 33: [1, 148] }, { 33: [1, 149] }, { 38: 150, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 151] }, { 33: [1, 152] }, { 33: [1, 153] }, { 38: 154, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 155] }, { 38: 156, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 157] }, { 33: [1, 158] }, { 33: [1, 159] }, { 38: 160, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 161] }, o($V9, [2, 36], { 34: [1, 162] }), o($V9, [2, 37], { 37: [1, 163] }), o($V9, [2, 35], { 32: [1, 164] }), o($V9, [2, 38], { 34: [1, 165] }), o($V9, [2, 33], { 37: [1, 166] }), o($V9, [2, 34], { 32: [1, 167] }), o($V9, [2, 59], { 41: [1, 168] }), o($V9, [2, 72], { 32: [1, 169] }), o($V9, [2, 60], { 41: [1, 170] }), o($V9, [2, 83], { 37: [1, 171] }), o($V9, [2, 73], { 32: [1, 172] }), o($V9, [2, 82], { 37: [1, 173] }), o($V9, [2, 58], { 41: [1, 174] }), o($V9, [2, 71], { 32: [1, 175] }), o($V9, [2, 57], { 41: [1, 176] }), o($V9, [2, 77], { 34: [1, 177] }), o($V9, [2, 70], { 32: [1, 178] }), o($V9, [2, 76], { 34: [1, 179] }), o($V9, [2, 56], { 41: [1, 180] }), o($V9, [2, 84], { 37: [1, 181] }), o($V9, [2, 55], { 41: [1, 182] }), o($V9, [2, 78], { 34: [1, 183] }), o($V9, [2, 79], { 34: [1, 184] }), o($V9, [2, 85], { 37: [1, 185] }), o($V9, [2, 69], { 32: [1, 186] }), o($V9, [2, 80], { 37: [1, 187] }), o($V9, [2, 68], { 32: [1, 188] }), o($V9, [2, 74], { 34: [1, 189] }), o($V9, [2, 75], { 34: [1, 190] }), o($V9, [2, 81], { 37: [1, 191] }), { 33: [1, 192] }, { 38: 193, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 194] }, { 33: [1, 195] }, { 38: 196, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 197] }, { 33: [1, 198] }, { 33: [1, 199] }, { 33: [1, 200] }, { 38: 201, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 202] }, { 38: 203, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 204] }, { 33: [1, 205] }, { 33: [1, 206] }, { 33: [1, 207] }, { 33: [1, 208] }, { 33: [1, 209] }, { 33: [1, 210] }, { 38: 211, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 212] }, { 33: [1, 213] }, { 33: [1, 214] }, { 38: 215, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 216] }, { 38: 217, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 218] }, { 33: [1, 219] }, { 33: [1, 220] }, { 38: 221, 42: $Vd, 43: $Ve, 44: $Vf }, o($V9, [2, 39]), o($V9, [2, 41]), o($V9, [2, 40]), o($V9, [2, 42]), o($V9, [2, 44]), o($V9, [2, 43]), o($V9, [2, 100]), o($V9, [2, 101]), o($V9, [2, 98]), o($V9, [2, 99]), o($V9, [2, 103]), o($V9, [2, 102]), o($V9, [2, 107]), o($V9, [2, 106]), o($V9, [2, 105]), o($V9, [2, 104]), o($V9, [2, 109]), o($V9, [2, 108]), o($V9, [2, 97]), o($V9, [2, 96]), o($V9, [2, 95]), o($V9, [2, 94]), o($V9, [2, 92]), o($V9, [2, 93]), o($V9, [2, 91]), o($V9, [2, 90]), o($V9, [2, 89]), o($V9, [2, 88]), o($V9, [2, 86]), o($V9, [2, 87])], - defaultActions: { 7: [2, 1], 13: [2, 2], 18: [2, 3], 36: [2, 4] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - this.begin("acc_title"); - return 19; - case 1: - this.popState(); - return "acc_title_value"; - case 2: - this.begin("acc_descr"); - return 21; - case 3: - this.popState(); - return "acc_descr_value"; - case 4: - this.begin("acc_descr_multiline"); - break; - case 5: - this.popState(); - break; - case 6: - return "acc_descr_multiline_value"; - case 7: - return 13; - case 8: - break; - case 9: - break; - case 10: - return 5; - case 11: - return 39; - case 12: - return 32; - case 13: - return 37; - case 14: - return 41; - case 15: - return 42; - case 16: - return 43; - case 17: - return 44; - case 18: - return 34; - case 19: - return 28; - case 20: - return 29; - case 21: - return 36; - case 22: - return 31; - case 23: - return 26; - case 24: - return 9; - case 25: - return 9; - case 26: - return 8; - case 27: - return "CARET"; - case 28: - this.begin("options"); - break; - case 29: - this.popState(); - break; - case 30: - return 12; - case 31: - return 35; - case 32: - this.begin("string"); - break; - case 33: - this.popState(); - break; - case 34: - return 33; - case 35: - return 30; - case 36: - return 45; - case 37: - return 7; - } - }, - rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:TB\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i], - conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "options": { "rules": [29, 30], "inclusive": false }, "string": { "rules": [33, 34], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 35, 36, 37, 38], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var gitGraphParser = parser; -var mainBranchName = getConfig().gitGraph.mainBranchName; -var mainBranchOrder = getConfig().gitGraph.mainBranchOrder; -var commits = {}; -var head = null; -var branchesConfig = {}; -branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder }; -var branches = {}; -branches[mainBranchName] = head; -var curBranch = mainBranchName; -var direction = "LR"; -var seq = 0; -function getId() { - return random({ length: 7 }); -} -function uniqBy(list, fn) { - const recordMap = /* @__PURE__ */ Object.create(null); - return list.reduce((out, item) => { - const key = fn(item); - if (!recordMap[key]) { - recordMap[key] = true; - out.push(item); - } - return out; - }, []); -} -var setDirection = function(dir2) { - direction = dir2; -}; -var options = {}; -var setOptions = function(rawOptString) { - log$1.debug("options str", rawOptString); - rawOptString = rawOptString && rawOptString.trim(); - rawOptString = rawOptString || "{}"; - try { - options = JSON.parse(rawOptString); - } catch (e) { - log$1.error("error while parsing gitGraph options", e.message); - } -}; -var getOptions = function() { - return options; -}; -var commit = function(msg, id, type, tag) { - log$1.debug("Entering commit:", msg, id, type, tag); - id = common$1.sanitizeText(id, getConfig()); - msg = common$1.sanitizeText(msg, getConfig()); - tag = common$1.sanitizeText(tag, getConfig()); - const commit2 = { - id: id ? id : seq + "-" + getId(), - message: msg, - seq: seq++, - type: type ? type : commitType$1.NORMAL, - tag: tag ? tag : "", - parents: head == null ? [] : [head.id], - branch: curBranch - }; - head = commit2; - commits[commit2.id] = commit2; - branches[curBranch] = commit2.id; - log$1.debug("in pushCommit " + commit2.id); -}; -var branch = function(name, order) { - name = common$1.sanitizeText(name, getConfig()); - if (branches[name] === void 0) { - branches[name] = head != null ? head.id : null; - branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null }; - checkout(name); - log$1.debug("in createBranch"); - } else { - let error = new Error( - 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name + '")' - ); - error.hash = { - text: "branch " + name, - token: "branch " + name, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ['"checkout ' + name + '"'] - }; - throw error; - } -}; -var merge = function(otherBranch, custom_id, override_type, custom_tag) { - otherBranch = common$1.sanitizeText(otherBranch, getConfig()); - custom_id = common$1.sanitizeText(custom_id, getConfig()); - const currentCommit = commits[branches[curBranch]]; - const otherCommit = commits[branches[otherBranch]]; - if (curBranch === otherBranch) { - let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself'); - error.hash = { - text: "merge " + otherBranch, - token: "merge " + otherBranch, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["branch abc"] - }; - throw error; - } else if (currentCommit === void 0 || !currentCommit) { - let error = new Error( - 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits" - ); - error.hash = { - text: "merge " + otherBranch, - token: "merge " + otherBranch, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["commit"] - }; - throw error; - } else if (branches[otherBranch] === void 0) { - let error = new Error( - 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist" - ); - error.hash = { - text: "merge " + otherBranch, - token: "merge " + otherBranch, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["branch " + otherBranch] - }; - throw error; - } else if (otherCommit === void 0 || !otherCommit) { - let error = new Error( - 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits" - ); - error.hash = { - text: "merge " + otherBranch, - token: "merge " + otherBranch, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ['"commit"'] - }; - throw error; - } else if (currentCommit === otherCommit) { - let error = new Error('Incorrect usage of "merge". Both branches have same head'); - error.hash = { - text: "merge " + otherBranch, - token: "merge " + otherBranch, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["branch abc"] - }; - throw error; - } else if (custom_id && commits[custom_id] !== void 0) { - let error = new Error( - 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id" - ); - error.hash = { - text: "merge " + otherBranch + custom_id + override_type + custom_tag, - token: "merge " + otherBranch + custom_id + override_type + custom_tag, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: [ - "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag - ] - }; - throw error; - } - const commit2 = { - id: custom_id ? custom_id : seq + "-" + getId(), - message: "merged branch " + otherBranch + " into " + curBranch, - seq: seq++, - parents: [head == null ? null : head.id, branches[otherBranch]], - branch: curBranch, - type: commitType$1.MERGE, - customType: override_type, - customId: custom_id ? true : false, - tag: custom_tag ? custom_tag : "" - }; - head = commit2; - commits[commit2.id] = commit2; - branches[curBranch] = commit2.id; - log$1.debug(branches); - log$1.debug("in mergeBranch"); -}; -var cherryPick = function(sourceId, targetId, tag) { - log$1.debug("Entering cherryPick:", sourceId, targetId, tag); - sourceId = common$1.sanitizeText(sourceId, getConfig()); - targetId = common$1.sanitizeText(targetId, getConfig()); - tag = common$1.sanitizeText(tag, getConfig()); - if (!sourceId || commits[sourceId] === void 0) { - let error = new Error( - 'Incorrect usage of "cherryPick". Source commit id should exist and provided' - ); - error.hash = { - text: "cherryPick " + sourceId + " " + targetId, - token: "cherryPick " + sourceId + " " + targetId, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["cherry-pick abc"] - }; - throw error; - } - let sourceCommit = commits[sourceId]; - let sourceCommitBranch = sourceCommit.branch; - if (sourceCommit.type === commitType$1.MERGE) { - let error = new Error( - 'Incorrect usage of "cherryPick". Source commit should not be a merge commit' - ); - error.hash = { - text: "cherryPick " + sourceId + " " + targetId, - token: "cherryPick " + sourceId + " " + targetId, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["cherry-pick abc"] - }; - throw error; - } - if (!targetId || commits[targetId] === void 0) { - if (sourceCommitBranch === curBranch) { - let error = new Error( - 'Incorrect usage of "cherryPick". Source commit is already on current branch' - ); - error.hash = { - text: "cherryPick " + sourceId + " " + targetId, - token: "cherryPick " + sourceId + " " + targetId, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["cherry-pick abc"] - }; - throw error; - } - const currentCommit = commits[branches[curBranch]]; - if (currentCommit === void 0 || !currentCommit) { - let error = new Error( - 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits" - ); - error.hash = { - text: "cherryPick " + sourceId + " " + targetId, - token: "cherryPick " + sourceId + " " + targetId, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["cherry-pick abc"] - }; - throw error; - } - const commit2 = { - id: seq + "-" + getId(), - message: "cherry-picked " + sourceCommit + " into " + curBranch, - seq: seq++, - parents: [head == null ? null : head.id, sourceCommit.id], - branch: curBranch, - type: commitType$1.CHERRY_PICK, - tag: tag ?? "cherry-pick:" + sourceCommit.id - }; - head = commit2; - commits[commit2.id] = commit2; - branches[curBranch] = commit2.id; - log$1.debug(branches); - log$1.debug("in cherryPick"); - } -}; -var checkout = function(branch2) { - branch2 = common$1.sanitizeText(branch2, getConfig()); - if (branches[branch2] === void 0) { - let error = new Error( - 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")' - ); - error.hash = { - text: "checkout " + branch2, - token: "checkout " + branch2, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ['"branch ' + branch2 + '"'] - }; - throw error; - } else { - curBranch = branch2; - const id = branches[curBranch]; - head = commits[id]; - } -}; -function upsert(arr, key, newVal) { - const index = arr.indexOf(key); - if (index === -1) { - arr.push(newVal); - } else { - arr.splice(index, 1, newVal); - } -} -function prettyPrintCommitHistory(commitArr) { - const commit2 = commitArr.reduce((out, commit3) => { - if (out.seq > commit3.seq) { - return out; - } - return commit3; - }, commitArr[0]); - let line = ""; - commitArr.forEach(function(c) { - if (c === commit2) { - line += " *"; - } else { - line += " |"; - } - }); - const label = [line, commit2.id, commit2.seq]; - for (let branch2 in branches) { - if (branches[branch2] === commit2.id) { - label.push(branch2); - } - } - log$1.debug(label.join(" ")); - if (commit2.parents && commit2.parents.length == 2) { - const newCommit = commits[commit2.parents[0]]; - upsert(commitArr, commit2, newCommit); - commitArr.push(commits[commit2.parents[1]]); - } else if (commit2.parents.length == 0) { - return; - } else { - const nextCommit = commits[commit2.parents]; - upsert(commitArr, commit2, nextCommit); - } - commitArr = uniqBy(commitArr, (c) => c.id); - prettyPrintCommitHistory(commitArr); -} -var prettyPrint = function() { - log$1.debug(commits); - const node = getCommitsArray()[0]; - prettyPrintCommitHistory([node]); -}; -var clear$1 = function() { - commits = {}; - head = null; - let mainBranch = getConfig().gitGraph.mainBranchName; - let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder; - branches = {}; - branches[mainBranch] = null; - branchesConfig = {}; - branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 }; - curBranch = mainBranch; - seq = 0; - clear(); -}; -var getBranchesAsObjArray = function() { - const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => { - if (branchConfig.order !== null) { - return branchConfig; - } - return { - ...branchConfig, - order: parseFloat(`0.${i}`, 10) - }; - }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name })); - return branchesArray; -}; -var getBranches = function() { - return branches; -}; -var getCommits = function() { - return commits; -}; -var getCommitsArray = function() { - const commitArr = Object.keys(commits).map(function(key) { - return commits[key]; - }); - commitArr.forEach(function(o) { - log$1.debug(o.id); - }); - commitArr.sort((a, b) => a.seq - b.seq); - return commitArr; -}; -var getCurrentBranch = function() { - return curBranch; -}; -var getDirection = function() { - return direction; -}; -var getHead = function() { - return head; -}; -var commitType$1 = { - NORMAL: 0, - REVERSE: 1, - HIGHLIGHT: 2, - MERGE: 3, - CHERRY_PICK: 4 -}; -var gitGraphDb = { - getConfig: () => getConfig().gitGraph, - setDirection, - setOptions, - getOptions, - commit, - branch, - merge, - cherryPick, - checkout, - //reset, - prettyPrint, - clear: clear$1, - getBranchesAsObjArray, - getBranches, - getCommits, - getCommitsArray, - getCurrentBranch, - getDirection, - getHead, - setAccTitle, - getAccTitle, - getAccDescription, - setAccDescription, - setDiagramTitle, - getDiagramTitle, - commitType: commitType$1 -}; -var allCommitsDict = {}; -var commitType = { - NORMAL: 0, - REVERSE: 1, - HIGHLIGHT: 2, - MERGE: 3, - CHERRY_PICK: 4 -}; -var THEME_COLOR_LIMIT = 8; -var branchPos = {}; -var commitPos = {}; -var lanes = []; -var maxPos = 0; -var dir = "LR"; -var clear2 = () => { - branchPos = {}; - commitPos = {}; - allCommitsDict = {}; - maxPos = 0; - lanes = []; - dir = "LR"; -}; -var drawText = (txt) => { - const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text"); - let rows = []; - if (typeof txt === "string") { - rows = txt.split(/\\n|\n|/gi); - } else if (Array.isArray(txt)) { - rows = txt; - } else { - rows = []; - } - for (const row of rows) { - const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); - tspan.setAttribute("dy", "1em"); - tspan.setAttribute("x", "0"); - tspan.setAttribute("class", "row"); - tspan.textContent = row.trim(); - svgLabel.appendChild(tspan); - } - return svgLabel; -}; -var drawCommits = (svg, commits2, modifyGraph) => { - const gitGraphConfig = getConfig().gitGraph; - const gBullets = svg.append("g").attr("class", "commit-bullets"); - const gLabels = svg.append("g").attr("class", "commit-labels"); - let pos = 0; - if (dir === "TB") { - pos = 30; - } - const keys = Object.keys(commits2); - const sortedKeys = keys.sort((a, b) => { - return commits2[a].seq - commits2[b].seq; - }); - sortedKeys.forEach((key) => { - const commit2 = commits2[key]; - const y = dir === "TB" ? pos + 10 : branchPos[commit2.branch].pos; - const x = dir === "TB" ? branchPos[commit2.branch].pos : pos + 10; - if (modifyGraph) { - let typeClass; - let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type; - switch (commitSymbolType) { - case commitType.NORMAL: - typeClass = "commit-normal"; - break; - case commitType.REVERSE: - typeClass = "commit-reverse"; - break; - case commitType.HIGHLIGHT: - typeClass = "commit-highlight"; - break; - case commitType.MERGE: - typeClass = "commit-merge"; - break; - case commitType.CHERRY_PICK: - typeClass = "commit-cherry-pick"; - break; - default: - typeClass = "commit-normal"; - } - if (commitSymbolType === commitType.HIGHLIGHT) { - const circle = gBullets.append("rect"); - circle.attr("x", x - 10); - circle.attr("y", y - 10); - circle.attr("height", 20); - circle.attr("width", 20); - circle.attr( - "class", - `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer` - ); - gBullets.append("rect").attr("x", x - 6).attr("y", y - 6).attr("height", 12).attr("width", 12).attr( - "class", - `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner` - ); - } else if (commitSymbolType === commitType.CHERRY_PICK) { - gBullets.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`); - gBullets.append("circle").attr("cx", x - 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); - gBullets.append("circle").attr("cx", x + 3).attr("cy", y + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); - gBullets.append("line").attr("x1", x + 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); - gBullets.append("line").attr("x1", x - 3).attr("y1", y + 1).attr("x2", x).attr("y2", y - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`); - } else { - const circle = gBullets.append("circle"); - circle.attr("cx", x); - circle.attr("cy", y); - circle.attr("r", commit2.type === commitType.MERGE ? 9 : 10); - circle.attr( - "class", - `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` - ); - if (commitSymbolType === commitType.MERGE) { - const circle2 = gBullets.append("circle"); - circle2.attr("cx", x); - circle2.attr("cy", y); - circle2.attr("r", 6); - circle2.attr( - "class", - `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` - ); - } - if (commitSymbolType === commitType.REVERSE) { - const cross = gBullets.append("path"); - cross.attr("d", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr( - "class", - `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}` - ); - } - } - } - if (dir === "TB") { - commitPos[commit2.id] = { x, y: pos + 10 }; - } else { - commitPos[commit2.id] = { x: pos + 10, y }; - } - if (modifyGraph) { - const px = 4; - const py = 2; - if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) { - const wrapper = gLabels.append("g"); - const labelBkg = wrapper.insert("rect").attr("class", "commit-label-bkg"); - const text = wrapper.append("text").attr("x", pos).attr("y", y + 25).attr("class", "commit-label").text(commit2.id); - let bbox = text.node().getBBox(); - labelBkg.attr("x", pos + 10 - bbox.width / 2 - py).attr("y", y + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py); - if (dir === "TB") { - labelBkg.attr("x", x - (bbox.width + 4 * px + 5)).attr("y", y - 12); - text.attr("x", x - (bbox.width + 4 * px)).attr("y", y + bbox.height - 12); - } - if (dir !== "TB") { - text.attr("x", pos + 10 - bbox.width / 2); - } - if (gitGraphConfig.rotateCommitLabel) { - if (dir === "TB") { - text.attr("transform", "rotate(-45, " + x + ", " + y + ")"); - labelBkg.attr("transform", "rotate(-45, " + x + ", " + y + ")"); - } else { - let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5; - let r_y = 10 + bbox.width / 25 * 8.5; - wrapper.attr( - "transform", - "translate(" + r_x + ", " + r_y + ") rotate(-45, " + pos + ", " + y + ")" - ); - } - } - } - if (commit2.tag) { - const rect = gLabels.insert("polygon"); - const hole = gLabels.append("circle"); - const tag = gLabels.append("text").attr("y", y - 16).attr("class", "tag-label").text(commit2.tag); - let tagBbox = tag.node().getBBox(); - tag.attr("x", pos + 10 - tagBbox.width / 2); - const h2 = tagBbox.height / 2; - const ly = y - 19.2; - rect.attr("class", "tag-label-bkg").attr( - "points", - ` - ${pos - tagBbox.width / 2 - px / 2},${ly + py} - ${pos - tagBbox.width / 2 - px / 2},${ly - py} - ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py} - ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py} - ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py} - ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}` - ); - hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole"); - if (dir === "TB") { - rect.attr("class", "tag-label-bkg").attr( - "points", - ` - ${x},${pos + py} - ${x},${pos - py} - ${x + 10},${pos - h2 - py} - ${x + 10 + tagBbox.width + px},${pos - h2 - py} - ${x + 10 + tagBbox.width + px},${pos + h2 + py} - ${x + 10},${pos + h2 + py}` - ).attr("transform", "translate(12,12) rotate(45, " + x + "," + pos + ")"); - hole.attr("cx", x + px / 2).attr("cy", pos).attr("transform", "translate(12,12) rotate(45, " + x + "," + pos + ")"); - tag.attr("x", x + 5).attr("y", pos + 3).attr("transform", "translate(14,14) rotate(45, " + x + "," + pos + ")"); - } - } - } - pos += 50; - if (pos > maxPos) { - maxPos = pos; - } - }); -}; -var hasOverlappingCommits = (commit1, commit2, allCommits) => { - const keys = Object.keys(allCommits); - const overlappingComits = keys.filter((key) => { - return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq; - }); - return overlappingComits.length > 0; -}; -var findLane = (y1, y2, depth = 0) => { - const candidate = y1 + Math.abs(y1 - y2) / 2; - if (depth > 5) { - return candidate; - } - let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10); - if (ok) { - lanes.push(candidate); - return candidate; - } - const diff = Math.abs(y1 - y2); - return findLane(y1, y2 - diff / 5, depth + 1); -}; -var drawArrow = (svg, commit1, commit2, allCommits) => { - const p1 = commitPos[commit1.id]; - const p2 = commitPos[commit2.id]; - const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits); - let arc = ""; - let arc2 = ""; - let radius = 0; - let offset = 0; - let colorClassNum = branchPos[commit2.branch].index; - let lineDef; - if (overlappingCommits) { - arc = "A 10 10, 0, 0, 0,"; - arc2 = "A 10 10, 0, 0, 1,"; - radius = 10; - offset = 10; - colorClassNum = branchPos[commit2.branch].index; - const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y); - const lineX = p1.x < p2.x ? findLane(p1.x, p2.x) : findLane(p2.x, p1.x); - if (dir === "TB") { - if (p1.x < p2.x) { - lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`; - } else { - lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc2} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`; - } - } else { - if (p1.y < p2.y) { - lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`; - } else { - lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`; - } - } - } else { - if (dir === "TB") { - if (p1.x < p2.x) { - arc = "A 20 20, 0, 0, 0,"; - arc2 = "A 20 20, 0, 0, 1,"; - radius = 20; - offset = 20; - colorClassNum = branchPos[commit2.branch].index; - lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`; - } - if (p1.x > p2.x) { - arc = "A 20 20, 0, 0, 0,"; - arc2 = "A 20 20, 0, 0, 1,"; - radius = 20; - offset = 20; - colorClassNum = branchPos[commit1.branch].index; - lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc2} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`; - } - if (p1.x === p2.x) { - colorClassNum = branchPos[commit1.branch].index; - lineDef = `M ${p1.x} ${p1.y} L ${p1.x + radius} ${p1.y} ${arc} ${p1.x + offset} ${p2.y + radius} L ${p2.x} ${p2.y}`; - } - } else { - if (p1.y < p2.y) { - arc = "A 20 20, 0, 0, 0,"; - radius = 20; - offset = 20; - colorClassNum = branchPos[commit2.branch].index; - lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; - } - if (p1.y > p2.y) { - arc = "A 20 20, 0, 0, 0,"; - radius = 20; - offset = 20; - colorClassNum = branchPos[commit1.branch].index; - lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`; - } - if (p1.y === p2.y) { - colorClassNum = branchPos[commit1.branch].index; - lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`; - } - } - } - svg.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT); -}; -var drawArrows = (svg, commits2) => { - const gArrows = svg.append("g").attr("class", "commit-arrows"); - Object.keys(commits2).forEach((key) => { - const commit2 = commits2[key]; - if (commit2.parents && commit2.parents.length > 0) { - commit2.parents.forEach((parent) => { - drawArrow(gArrows, commits2[parent], commit2, commits2); - }); - } - }); -}; -var drawBranches = (svg, branches2) => { - const gitGraphConfig = getConfig().gitGraph; - const g = svg.append("g"); - branches2.forEach((branch2, index) => { - const adjustIndexForTheme = index % THEME_COLOR_LIMIT; - const pos = branchPos[branch2.name].pos; - const line = g.append("line"); - line.attr("x1", 0); - line.attr("y1", pos); - line.attr("x2", maxPos); - line.attr("y2", pos); - line.attr("class", "branch branch" + adjustIndexForTheme); - if (dir === "TB") { - line.attr("y1", 30); - line.attr("x1", pos); - line.attr("y2", maxPos); - line.attr("x2", pos); - } - lanes.push(pos); - let name = branch2.name; - const labelElement = drawText(name); - const bkg = g.insert("rect"); - const branchLabel = g.insert("g").attr("class", "branchLabel"); - const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme); - label.node().appendChild(labelElement); - let bbox = labelElement.getBBox(); - bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4); - label.attr( - "transform", - "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")" - ); - if (dir === "TB") { - bkg.attr("x", pos - bbox.width / 2 - 10).attr("y", 0); - label.attr("transform", "translate(" + (pos - bbox.width / 2 - 5) + ", 0)"); - } - if (dir !== "TB") { - bkg.attr("transform", "translate(-19, " + (pos - bbox.height / 2) + ")"); - } - }); -}; -var draw = function(txt, id, ver, diagObj) { - clear2(); - const conf = getConfig(); - const gitGraphConfig = conf.gitGraph; - log$1.debug("in gitgraph renderer", txt + "\n", "id:", id, ver); - allCommitsDict = diagObj.db.getCommits(); - const branches2 = diagObj.db.getBranchesAsObjArray(); - dir = diagObj.db.getDirection(); - const diagram2 = select_default(`[id="${id}"]`); - let pos = 0; - branches2.forEach((branch2, index) => { - const labelElement = drawText(branch2.name); - const g = diagram2.append("g"); - const branchLabel = g.insert("g").attr("class", "branchLabel"); - const label = branchLabel.insert("g").attr("class", "label branch-label"); - label.node().appendChild(labelElement); - let bbox = labelElement.getBBox(); - branchPos[branch2.name] = { pos, index }; - pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0) + (dir === "TB" ? bbox.width / 2 : 0); - label.remove(); - branchLabel.remove(); - g.remove(); - }); - drawCommits(diagram2, allCommitsDict, false); - if (gitGraphConfig.showBranches) { - drawBranches(diagram2, branches2); - } - drawArrows(diagram2, allCommitsDict); - drawCommits(diagram2, allCommitsDict, true); - utils.insertTitle( - diagram2, - "gitTitleText", - gitGraphConfig.titleTopMargin, - diagObj.db.getDiagramTitle() - ); - setupGraphViewbox( - void 0, - diagram2, - gitGraphConfig.diagramPadding, - gitGraphConfig.useMaxWidth ?? conf.useMaxWidth - ); -}; -var gitGraphRenderer = { - draw -}; -var getStyles = (options2) => ` - .commit-id, - .commit-msg, - .branch-label { - fill: lightgrey; - color: lightgrey; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - ${[0, 1, 2, 3, 4, 5, 6, 7].map( - (i) => ` - .branch-label${i} { fill: ${options2["gitBranchLabel" + i]}; } - .commit${i} { stroke: ${options2["git" + i]}; fill: ${options2["git" + i]}; } - .commit-highlight${i} { stroke: ${options2["gitInv" + i]}; fill: ${options2["gitInv" + i]}; } - .label${i} { fill: ${options2["git" + i]}; } - .arrow${i} { stroke: ${options2["git" + i]}; } - ` -).join("\n")} - - .branch { - stroke-width: 1; - stroke: ${options2.lineColor}; - stroke-dasharray: 2; - } - .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};} - .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; } - .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};} - .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; } - .tag-hole { fill: ${options2.textColor}; } - - .commit-merge { - stroke: ${options2.primaryColor}; - fill: ${options2.primaryColor}; - } - .commit-reverse { - stroke: ${options2.primaryColor}; - fill: ${options2.primaryColor}; - stroke-width: 3; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${options2.primaryColor}; - fill: ${options2.primaryColor}; - } - - .arrow { stroke-width: 8; stroke-linecap: round; fill: none} - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${options2.textColor}; - } -`; -var gitGraphStyles = getStyles; -var diagram = { - parser: gitGraphParser, - db: gitGraphDb, - renderer: gitGraphRenderer, - styles: gitGraphStyles -}; -export { - diagram -}; -//# sourceMappingURL=gitGraphDiagram-6b463803-7BG24S6L.js.map diff --git a/.vuepress/.cache/deps/gitGraphDiagram-6b463803-7BG24S6L.js.map b/.vuepress/.cache/deps/gitGraphDiagram-6b463803-7BG24S6L.js.map deleted file mode 100644 index 903c93613..000000000 --- a/.vuepress/.cache/deps/gitGraphDiagram-6b463803-7BG24S6L.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/gitGraphDiagram-6b463803.js"], - "sourcesContent": ["import { c as getConfig, s as setAccTitle, g as getAccTitle, a as getAccDescription, b as setAccDescription, q as setDiagramTitle, r as getDiagramTitle, l as log, e as common, t as clear$2, x as random, u as utils, y as setupGraphViewbox } from \"./mermaid-934d9bea.js\";\nimport { select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 6], $V2 = [1, 4], $V3 = [1, 5], $V4 = [2, 5], $V5 = [1, 12], $V6 = [5, 7, 13, 19, 21, 23, 24, 26, 28, 31, 36, 39, 46], $V7 = [7, 13, 19, 21, 23, 24, 26, 28, 31, 36, 39], $V8 = [7, 12, 13, 19, 21, 23, 24, 26, 28, 31, 36, 39], $V9 = [7, 13, 46], $Va = [1, 42], $Vb = [1, 41], $Vc = [7, 13, 29, 32, 34, 37, 46], $Vd = [1, 55], $Ve = [1, 56], $Vf = [1, 57], $Vg = [7, 13, 32, 34, 41, 46];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"GG\": 5, \"document\": 6, \"EOF\": 7, \":\": 8, \"DIR\": 9, \"options\": 10, \"body\": 11, \"OPT\": 12, \"NL\": 13, \"line\": 14, \"statement\": 15, \"commitStatement\": 16, \"mergeStatement\": 17, \"cherryPickStatement\": 18, \"acc_title\": 19, \"acc_title_value\": 20, \"acc_descr\": 21, \"acc_descr_value\": 22, \"acc_descr_multiline_value\": 23, \"section\": 24, \"branchStatement\": 25, \"CHECKOUT\": 26, \"ref\": 27, \"BRANCH\": 28, \"ORDER\": 29, \"NUM\": 30, \"CHERRY_PICK\": 31, \"COMMIT_ID\": 32, \"STR\": 33, \"COMMIT_TAG\": 34, \"EMPTYSTR\": 35, \"MERGE\": 36, \"COMMIT_TYPE\": 37, \"commitType\": 38, \"COMMIT\": 39, \"commit_arg\": 40, \"COMMIT_MSG\": 41, \"NORMAL\": 42, \"REVERSE\": 43, \"HIGHLIGHT\": 44, \"ID\": 45, \";\": 46, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"GG\", 7: \"EOF\", 8: \":\", 9: \"DIR\", 12: \"OPT\", 13: \"NL\", 19: \"acc_title\", 20: \"acc_title_value\", 21: \"acc_descr\", 22: \"acc_descr_value\", 23: \"acc_descr_multiline_value\", 24: \"section\", 26: \"CHECKOUT\", 28: \"BRANCH\", 29: \"ORDER\", 30: \"NUM\", 31: \"CHERRY_PICK\", 32: \"COMMIT_ID\", 33: \"STR\", 34: \"COMMIT_TAG\", 35: \"EMPTYSTR\", 36: \"MERGE\", 37: \"COMMIT_TYPE\", 39: \"COMMIT\", 41: \"COMMIT_MSG\", 42: \"NORMAL\", 43: \"REVERSE\", 44: \"HIGHLIGHT\", 45: \"ID\", 46: \";\" },\n productions_: [0, [3, 2], [3, 3], [3, 4], [3, 5], [6, 0], [6, 2], [10, 2], [10, 1], [11, 0], [11, 2], [14, 2], [14, 1], [15, 1], [15, 1], [15, 1], [15, 2], [15, 2], [15, 1], [15, 1], [15, 1], [15, 2], [25, 2], [25, 4], [18, 3], [18, 5], [18, 5], [18, 5], [18, 5], [17, 2], [17, 4], [17, 4], [17, 4], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 6], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [17, 8], [16, 2], [16, 3], [16, 3], [16, 5], [16, 5], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 3], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 5], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 7], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [16, 9], [40, 0], [40, 1], [38, 1], [38, 1], [38, 1], [27, 1], [27, 1], [4, 1], [4, 1], [4, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 2:\n return $$[$0];\n case 3:\n return $$[$0 - 1];\n case 4:\n yy.setDirection($$[$0 - 3]);\n return $$[$0 - 1];\n case 6:\n yy.setOptions($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 7:\n $$[$0 - 1] += $$[$0];\n this.$ = $$[$0 - 1];\n break;\n case 9:\n this.$ = [];\n break;\n case 10:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 11:\n this.$ = $$[$0 - 1];\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 21:\n yy.checkout($$[$0]);\n break;\n case 22:\n yy.branch($$[$0]);\n break;\n case 23:\n yy.branch($$[$0 - 2], $$[$0]);\n break;\n case 24:\n yy.cherryPick($$[$0], \"\", void 0);\n break;\n case 25:\n yy.cherryPick($$[$0 - 2], \"\", $$[$0]);\n break;\n case 26:\n case 28:\n yy.cherryPick($$[$0 - 2], \"\", \"\");\n break;\n case 27:\n yy.cherryPick($$[$0], \"\", $$[$0 - 2]);\n break;\n case 29:\n yy.merge($$[$0], \"\", \"\", \"\");\n break;\n case 30:\n yy.merge($$[$0 - 2], $$[$0], \"\", \"\");\n break;\n case 31:\n yy.merge($$[$0 - 2], \"\", $$[$0], \"\");\n break;\n case 32:\n yy.merge($$[$0 - 2], \"\", \"\", $$[$0]);\n break;\n case 33:\n yy.merge($$[$0 - 4], $$[$0], \"\", $$[$0 - 2]);\n break;\n case 34:\n yy.merge($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 35:\n yy.merge($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 36:\n yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], \"\");\n break;\n case 37:\n yy.merge($$[$0 - 4], $$[$0 - 2], \"\", $$[$0]);\n break;\n case 38:\n yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], \"\");\n break;\n case 39:\n yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 40:\n yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 41:\n yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 42:\n yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 43:\n yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 44:\n yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 45:\n yy.commit($$[$0]);\n break;\n case 46:\n yy.commit(\"\", \"\", yy.commitType.NORMAL, $$[$0]);\n break;\n case 47:\n yy.commit(\"\", \"\", $$[$0], \"\");\n break;\n case 48:\n yy.commit(\"\", \"\", $$[$0], $$[$0 - 2]);\n break;\n case 49:\n yy.commit(\"\", \"\", $$[$0 - 2], $$[$0]);\n break;\n case 50:\n yy.commit(\"\", $$[$0], yy.commitType.NORMAL, \"\");\n break;\n case 51:\n yy.commit(\"\", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);\n break;\n case 52:\n yy.commit(\"\", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 53:\n yy.commit(\"\", $$[$0 - 2], $$[$0], \"\");\n break;\n case 54:\n yy.commit(\"\", $$[$0], $$[$0 - 2], \"\");\n break;\n case 55:\n yy.commit(\"\", $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 56:\n yy.commit(\"\", $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 57:\n yy.commit(\"\", $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 58:\n yy.commit(\"\", $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 59:\n yy.commit(\"\", $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 60:\n yy.commit(\"\", $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 61:\n yy.commit($$[$0], \"\", yy.commitType.NORMAL, \"\");\n break;\n case 62:\n yy.commit($$[$0], \"\", yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 63:\n yy.commit($$[$0 - 2], \"\", yy.commitType.NORMAL, $$[$0]);\n break;\n case 64:\n yy.commit($$[$0 - 2], \"\", $$[$0], \"\");\n break;\n case 65:\n yy.commit($$[$0], \"\", $$[$0 - 2], \"\");\n break;\n case 66:\n yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, \"\");\n break;\n case 67:\n yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, \"\");\n break;\n case 68:\n yy.commit($$[$0 - 4], \"\", $$[$0 - 2], $$[$0]);\n break;\n case 69:\n yy.commit($$[$0 - 4], \"\", $$[$0], $$[$0 - 2]);\n break;\n case 70:\n yy.commit($$[$0 - 2], \"\", $$[$0 - 4], $$[$0]);\n break;\n case 71:\n yy.commit($$[$0], \"\", $$[$0 - 4], $$[$0 - 2]);\n break;\n case 72:\n yy.commit($$[$0], \"\", $$[$0 - 2], $$[$0 - 4]);\n break;\n case 73:\n yy.commit($$[$0 - 2], \"\", $$[$0], $$[$0 - 4]);\n break;\n case 74:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], \"\");\n break;\n case 75:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], \"\");\n break;\n case 76:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], \"\");\n break;\n case 77:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], \"\");\n break;\n case 78:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], \"\");\n break;\n case 79:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], \"\");\n break;\n case 80:\n yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 81:\n yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);\n break;\n case 82:\n yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);\n break;\n case 83:\n yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);\n break;\n case 84:\n yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);\n break;\n case 85:\n yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);\n break;\n case 86:\n yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);\n break;\n case 87:\n yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);\n break;\n case 88:\n yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 89:\n yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 90:\n yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 91:\n yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 92:\n yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);\n break;\n case 93:\n yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);\n break;\n case 94:\n yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);\n break;\n case 95:\n yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);\n break;\n case 96:\n yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);\n break;\n case 97:\n yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);\n break;\n case 98:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);\n break;\n case 99:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);\n break;\n case 100:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);\n break;\n case 101:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);\n break;\n case 102:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);\n break;\n case 103:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);\n break;\n case 104:\n yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);\n break;\n case 105:\n yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);\n break;\n case 106:\n yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);\n break;\n case 107:\n yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);\n break;\n case 108:\n yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);\n break;\n case 109:\n yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);\n break;\n case 110:\n this.$ = \"\";\n break;\n case 111:\n this.$ = $$[$0];\n break;\n case 112:\n this.$ = yy.commitType.NORMAL;\n break;\n case 113:\n this.$ = yy.commitType.REVERSE;\n break;\n case 114:\n this.$ = yy.commitType.HIGHLIGHT;\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 7: $V1, 13: $V2, 46: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 7: $V1, 13: $V2, 46: $V3 }, { 6: 8, 7: $V4, 8: [1, 9], 9: [1, 10], 10: 11, 13: $V5 }, o($V6, [2, 117]), o($V6, [2, 118]), o($V6, [2, 119]), { 1: [2, 1] }, { 7: [1, 13] }, { 6: 14, 7: $V4, 10: 11, 13: $V5 }, { 8: [1, 15] }, o($V7, [2, 9], { 11: 16, 12: [1, 17] }), o($V8, [2, 8]), { 1: [2, 2] }, { 7: [1, 18] }, { 6: 19, 7: $V4, 10: 11, 13: $V5 }, { 7: [2, 6], 13: [1, 22], 14: 20, 15: 21, 16: 23, 17: 24, 18: 25, 19: [1, 26], 21: [1, 27], 23: [1, 28], 24: [1, 29], 25: 30, 26: [1, 31], 28: [1, 35], 31: [1, 34], 36: [1, 33], 39: [1, 32] }, o($V8, [2, 7]), { 1: [2, 3] }, { 7: [1, 36] }, o($V7, [2, 10]), { 4: 37, 7: $V1, 13: $V2, 46: $V3 }, o($V7, [2, 12]), o($V9, [2, 13]), o($V9, [2, 14]), o($V9, [2, 15]), { 20: [1, 38] }, { 22: [1, 39] }, o($V9, [2, 18]), o($V9, [2, 19]), o($V9, [2, 20]), { 27: 40, 33: $Va, 45: $Vb }, o($V9, [2, 110], { 40: 43, 32: [1, 46], 33: [1, 48], 34: [1, 44], 37: [1, 45], 41: [1, 47] }), { 27: 49, 33: $Va, 45: $Vb }, { 32: [1, 50], 34: [1, 51] }, { 27: 52, 33: $Va, 45: $Vb }, { 1: [2, 4] }, o($V7, [2, 11]), o($V9, [2, 16]), o($V9, [2, 17]), o($V9, [2, 21]), o($Vc, [2, 115]), o($Vc, [2, 116]), o($V9, [2, 45]), { 33: [1, 53] }, { 38: 54, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 58] }, { 33: [1, 59] }, o($V9, [2, 111]), o($V9, [2, 29], { 32: [1, 60], 34: [1, 62], 37: [1, 61] }), { 33: [1, 63] }, { 33: [1, 64], 35: [1, 65] }, o($V9, [2, 22], { 29: [1, 66] }), o($V9, [2, 46], { 32: [1, 68], 37: [1, 67], 41: [1, 69] }), o($V9, [2, 47], { 32: [1, 71], 34: [1, 70], 41: [1, 72] }), o($Vg, [2, 112]), o($Vg, [2, 113]), o($Vg, [2, 114]), o($V9, [2, 50], { 34: [1, 73], 37: [1, 74], 41: [1, 75] }), o($V9, [2, 61], { 32: [1, 78], 34: [1, 76], 37: [1, 77] }), { 33: [1, 79] }, { 38: 80, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 81] }, o($V9, [2, 24], { 34: [1, 82] }), { 32: [1, 83] }, { 32: [1, 84] }, { 30: [1, 85] }, { 38: 86, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 87] }, { 33: [1, 88] }, { 33: [1, 89] }, { 33: [1, 90] }, { 33: [1, 91] }, { 33: [1, 92] }, { 38: 93, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 94] }, { 33: [1, 95] }, { 38: 96, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 97] }, o($V9, [2, 30], { 34: [1, 99], 37: [1, 98] }), o($V9, [2, 31], { 32: [1, 101], 34: [1, 100] }), o($V9, [2, 32], { 32: [1, 102], 37: [1, 103] }), { 33: [1, 104], 35: [1, 105] }, { 33: [1, 106] }, { 33: [1, 107] }, o($V9, [2, 23]), o($V9, [2, 48], { 32: [1, 108], 41: [1, 109] }), o($V9, [2, 52], { 37: [1, 110], 41: [1, 111] }), o($V9, [2, 62], { 32: [1, 113], 37: [1, 112] }), o($V9, [2, 49], { 32: [1, 114], 41: [1, 115] }), o($V9, [2, 54], { 34: [1, 116], 41: [1, 117] }), o($V9, [2, 65], { 32: [1, 119], 34: [1, 118] }), o($V9, [2, 51], { 37: [1, 120], 41: [1, 121] }), o($V9, [2, 53], { 34: [1, 122], 41: [1, 123] }), o($V9, [2, 66], { 34: [1, 125], 37: [1, 124] }), o($V9, [2, 63], { 32: [1, 127], 37: [1, 126] }), o($V9, [2, 64], { 32: [1, 129], 34: [1, 128] }), o($V9, [2, 67], { 34: [1, 131], 37: [1, 130] }), { 38: 132, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 133] }, { 33: [1, 134] }, { 33: [1, 135] }, { 33: [1, 136] }, { 38: 137, 42: $Vd, 43: $Ve, 44: $Vf }, o($V9, [2, 25]), o($V9, [2, 26]), o($V9, [2, 27]), o($V9, [2, 28]), { 33: [1, 138] }, { 33: [1, 139] }, { 38: 140, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 141] }, { 38: 142, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 143] }, { 33: [1, 144] }, { 33: [1, 145] }, { 33: [1, 146] }, { 33: [1, 147] }, { 33: [1, 148] }, { 33: [1, 149] }, { 38: 150, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 151] }, { 33: [1, 152] }, { 33: [1, 153] }, { 38: 154, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 155] }, { 38: 156, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 157] }, { 33: [1, 158] }, { 33: [1, 159] }, { 38: 160, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 161] }, o($V9, [2, 36], { 34: [1, 162] }), o($V9, [2, 37], { 37: [1, 163] }), o($V9, [2, 35], { 32: [1, 164] }), o($V9, [2, 38], { 34: [1, 165] }), o($V9, [2, 33], { 37: [1, 166] }), o($V9, [2, 34], { 32: [1, 167] }), o($V9, [2, 59], { 41: [1, 168] }), o($V9, [2, 72], { 32: [1, 169] }), o($V9, [2, 60], { 41: [1, 170] }), o($V9, [2, 83], { 37: [1, 171] }), o($V9, [2, 73], { 32: [1, 172] }), o($V9, [2, 82], { 37: [1, 173] }), o($V9, [2, 58], { 41: [1, 174] }), o($V9, [2, 71], { 32: [1, 175] }), o($V9, [2, 57], { 41: [1, 176] }), o($V9, [2, 77], { 34: [1, 177] }), o($V9, [2, 70], { 32: [1, 178] }), o($V9, [2, 76], { 34: [1, 179] }), o($V9, [2, 56], { 41: [1, 180] }), o($V9, [2, 84], { 37: [1, 181] }), o($V9, [2, 55], { 41: [1, 182] }), o($V9, [2, 78], { 34: [1, 183] }), o($V9, [2, 79], { 34: [1, 184] }), o($V9, [2, 85], { 37: [1, 185] }), o($V9, [2, 69], { 32: [1, 186] }), o($V9, [2, 80], { 37: [1, 187] }), o($V9, [2, 68], { 32: [1, 188] }), o($V9, [2, 74], { 34: [1, 189] }), o($V9, [2, 75], { 34: [1, 190] }), o($V9, [2, 81], { 37: [1, 191] }), { 33: [1, 192] }, { 38: 193, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 194] }, { 33: [1, 195] }, { 38: 196, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 197] }, { 33: [1, 198] }, { 33: [1, 199] }, { 33: [1, 200] }, { 38: 201, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 202] }, { 38: 203, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 204] }, { 33: [1, 205] }, { 33: [1, 206] }, { 33: [1, 207] }, { 33: [1, 208] }, { 33: [1, 209] }, { 33: [1, 210] }, { 38: 211, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 212] }, { 33: [1, 213] }, { 33: [1, 214] }, { 38: 215, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 216] }, { 38: 217, 42: $Vd, 43: $Ve, 44: $Vf }, { 33: [1, 218] }, { 33: [1, 219] }, { 33: [1, 220] }, { 38: 221, 42: $Vd, 43: $Ve, 44: $Vf }, o($V9, [2, 39]), o($V9, [2, 41]), o($V9, [2, 40]), o($V9, [2, 42]), o($V9, [2, 44]), o($V9, [2, 43]), o($V9, [2, 100]), o($V9, [2, 101]), o($V9, [2, 98]), o($V9, [2, 99]), o($V9, [2, 103]), o($V9, [2, 102]), o($V9, [2, 107]), o($V9, [2, 106]), o($V9, [2, 105]), o($V9, [2, 104]), o($V9, [2, 109]), o($V9, [2, 108]), o($V9, [2, 97]), o($V9, [2, 96]), o($V9, [2, 95]), o($V9, [2, 94]), o($V9, [2, 92]), o($V9, [2, 93]), o($V9, [2, 91]), o($V9, [2, 90]), o($V9, [2, 89]), o($V9, [2, 88]), o($V9, [2, 86]), o($V9, [2, 87])],\n defaultActions: { 7: [2, 1], 13: [2, 2], 18: [2, 3], 36: [2, 4] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 19;\n case 1:\n this.popState();\n return \"acc_title_value\";\n case 2:\n this.begin(\"acc_descr\");\n return 21;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n case 7:\n return 13;\n case 8:\n break;\n case 9:\n break;\n case 10:\n return 5;\n case 11:\n return 39;\n case 12:\n return 32;\n case 13:\n return 37;\n case 14:\n return 41;\n case 15:\n return 42;\n case 16:\n return 43;\n case 17:\n return 44;\n case 18:\n return 34;\n case 19:\n return 28;\n case 20:\n return 29;\n case 21:\n return 36;\n case 22:\n return 31;\n case 23:\n return 26;\n case 24:\n return 9;\n case 25:\n return 9;\n case 26:\n return 8;\n case 27:\n return \"CARET\";\n case 28:\n this.begin(\"options\");\n break;\n case 29:\n this.popState();\n break;\n case 30:\n return 12;\n case 31:\n return 35;\n case 32:\n this.begin(\"string\");\n break;\n case 33:\n this.popState();\n break;\n case 34:\n return 33;\n case 35:\n return 30;\n case 36:\n return 45;\n case 37:\n return 7;\n }\n },\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:(\\r?\\n)+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:gitGraph\\b)/i, /^(?:commit(?=\\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\\b)/i, /^(?:REVERSE\\b)/i, /^(?:HIGHLIGHT\\b)/i, /^(?:tag:)/i, /^(?:branch(?=\\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\\s|$))/i, /^(?:cherry-pick(?=\\s|$))/i, /^(?:checkout(?=\\s|$))/i, /^(?:LR\\b)/i, /^(?:TB\\b)/i, /^(?::)/i, /^(?:\\^)/i, /^(?:options\\r?\\n)/i, /^(?:[ \\r\\n\\t]+end\\b)/i, /^(?:[\\s\\S]+(?=[ \\r\\n\\t]+end))/i, /^(?:[\"][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[0-9]+(?=\\s|$))/i, /^(?:\\w([-\\./\\w]*[-\\w])?)/i, /^(?:$)/i, /^(?:\\s+)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"options\": { \"rules\": [29, 30], \"inclusive\": false }, \"string\": { \"rules\": [33, 34], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 35, 36, 37, 38], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst gitGraphParser = parser;\nlet mainBranchName = getConfig().gitGraph.mainBranchName;\nlet mainBranchOrder = getConfig().gitGraph.mainBranchOrder;\nlet commits = {};\nlet head = null;\nlet branchesConfig = {};\nbranchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };\nlet branches = {};\nbranches[mainBranchName] = head;\nlet curBranch = mainBranchName;\nlet direction = \"LR\";\nlet seq = 0;\nfunction getId() {\n return random({ length: 7 });\n}\nfunction uniqBy(list, fn) {\n const recordMap = /* @__PURE__ */ Object.create(null);\n return list.reduce((out, item) => {\n const key = fn(item);\n if (!recordMap[key]) {\n recordMap[key] = true;\n out.push(item);\n }\n return out;\n }, []);\n}\nconst setDirection = function(dir2) {\n direction = dir2;\n};\nlet options = {};\nconst setOptions = function(rawOptString) {\n log.debug(\"options str\", rawOptString);\n rawOptString = rawOptString && rawOptString.trim();\n rawOptString = rawOptString || \"{}\";\n try {\n options = JSON.parse(rawOptString);\n } catch (e) {\n log.error(\"error while parsing gitGraph options\", e.message);\n }\n};\nconst getOptions = function() {\n return options;\n};\nconst commit = function(msg, id, type, tag) {\n log.debug(\"Entering commit:\", msg, id, type, tag);\n id = common.sanitizeText(id, getConfig());\n msg = common.sanitizeText(msg, getConfig());\n tag = common.sanitizeText(tag, getConfig());\n const commit2 = {\n id: id ? id : seq + \"-\" + getId(),\n message: msg,\n seq: seq++,\n type: type ? type : commitType$1.NORMAL,\n tag: tag ? tag : \"\",\n parents: head == null ? [] : [head.id],\n branch: curBranch\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(\"in pushCommit \" + commit2.id);\n};\nconst branch = function(name, order) {\n name = common.sanitizeText(name, getConfig());\n if (branches[name] === void 0) {\n branches[name] = head != null ? head.id : null;\n branchesConfig[name] = { name, order: order ? parseInt(order, 10) : null };\n checkout(name);\n log.debug(\"in createBranch\");\n } else {\n let error = new Error(\n 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using \"checkout ' + name + '\")'\n );\n error.hash = {\n text: \"branch \" + name,\n token: \"branch \" + name,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"checkout ' + name + '\"']\n };\n throw error;\n }\n};\nconst merge = function(otherBranch, custom_id, override_type, custom_tag) {\n otherBranch = common.sanitizeText(otherBranch, getConfig());\n custom_id = common.sanitizeText(custom_id, getConfig());\n const currentCommit = commits[branches[curBranch]];\n const otherCommit = commits[branches[otherBranch]];\n if (curBranch === otherBranch) {\n let error = new Error('Incorrect usage of \"merge\". Cannot merge a branch to itself');\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch abc\"]\n };\n throw error;\n } else if (currentCommit === void 0 || !currentCommit) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Current branch (' + curBranch + \")has no commits\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"commit\"]\n };\n throw error;\n } else if (branches[otherBranch] === void 0) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") does not exist\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch \" + otherBranch]\n };\n throw error;\n } else if (otherCommit === void 0 || !otherCommit) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Branch to be merged (' + otherBranch + \") has no commits\"\n );\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"commit\"']\n };\n throw error;\n } else if (currentCommit === otherCommit) {\n let error = new Error('Incorrect usage of \"merge\". Both branches have same head');\n error.hash = {\n text: \"merge \" + otherBranch,\n token: \"merge \" + otherBranch,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"branch abc\"]\n };\n throw error;\n } else if (custom_id && commits[custom_id] !== void 0) {\n let error = new Error(\n 'Incorrect usage of \"merge\". Commit with id:' + custom_id + \" already exists, use different custom Id\"\n );\n error.hash = {\n text: \"merge \" + otherBranch + custom_id + override_type + custom_tag,\n token: \"merge \" + otherBranch + custom_id + override_type + custom_tag,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\n \"merge \" + otherBranch + \" \" + custom_id + \"_UNIQUE \" + override_type + \" \" + custom_tag\n ]\n };\n throw error;\n }\n const commit2 = {\n id: custom_id ? custom_id : seq + \"-\" + getId(),\n message: \"merged branch \" + otherBranch + \" into \" + curBranch,\n seq: seq++,\n parents: [head == null ? null : head.id, branches[otherBranch]],\n branch: curBranch,\n type: commitType$1.MERGE,\n customType: override_type,\n customId: custom_id ? true : false,\n tag: custom_tag ? custom_tag : \"\"\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(branches);\n log.debug(\"in mergeBranch\");\n};\nconst cherryPick = function(sourceId, targetId, tag) {\n log.debug(\"Entering cherryPick:\", sourceId, targetId, tag);\n sourceId = common.sanitizeText(sourceId, getConfig());\n targetId = common.sanitizeText(targetId, getConfig());\n tag = common.sanitizeText(tag, getConfig());\n if (!sourceId || commits[sourceId] === void 0) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit id should exist and provided'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n let sourceCommit = commits[sourceId];\n let sourceCommitBranch = sourceCommit.branch;\n if (sourceCommit.type === commitType$1.MERGE) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit should not be a merge commit'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n if (!targetId || commits[targetId] === void 0) {\n if (sourceCommitBranch === curBranch) {\n let error = new Error(\n 'Incorrect usage of \"cherryPick\". Source commit is already on current branch'\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const currentCommit = commits[branches[curBranch]];\n if (currentCommit === void 0 || !currentCommit) {\n let error = new Error(\n 'Incorrect usage of \"cherry-pick\". Current branch (' + curBranch + \")has no commits\"\n );\n error.hash = {\n text: \"cherryPick \" + sourceId + \" \" + targetId,\n token: \"cherryPick \" + sourceId + \" \" + targetId,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"cherry-pick abc\"]\n };\n throw error;\n }\n const commit2 = {\n id: seq + \"-\" + getId(),\n message: \"cherry-picked \" + sourceCommit + \" into \" + curBranch,\n seq: seq++,\n parents: [head == null ? null : head.id, sourceCommit.id],\n branch: curBranch,\n type: commitType$1.CHERRY_PICK,\n tag: tag ?? \"cherry-pick:\" + sourceCommit.id\n };\n head = commit2;\n commits[commit2.id] = commit2;\n branches[curBranch] = commit2.id;\n log.debug(branches);\n log.debug(\"in cherryPick\");\n }\n};\nconst checkout = function(branch2) {\n branch2 = common.sanitizeText(branch2, getConfig());\n if (branches[branch2] === void 0) {\n let error = new Error(\n 'Trying to checkout branch which is not yet created. (Help try using \"branch ' + branch2 + '\")'\n );\n error.hash = {\n text: \"checkout \" + branch2,\n token: \"checkout \" + branch2,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"branch ' + branch2 + '\"']\n };\n throw error;\n } else {\n curBranch = branch2;\n const id = branches[curBranch];\n head = commits[id];\n }\n};\nfunction upsert(arr, key, newVal) {\n const index = arr.indexOf(key);\n if (index === -1) {\n arr.push(newVal);\n } else {\n arr.splice(index, 1, newVal);\n }\n}\nfunction prettyPrintCommitHistory(commitArr) {\n const commit2 = commitArr.reduce((out, commit3) => {\n if (out.seq > commit3.seq) {\n return out;\n }\n return commit3;\n }, commitArr[0]);\n let line = \"\";\n commitArr.forEach(function(c) {\n if (c === commit2) {\n line += \"\t*\";\n } else {\n line += \"\t|\";\n }\n });\n const label = [line, commit2.id, commit2.seq];\n for (let branch2 in branches) {\n if (branches[branch2] === commit2.id) {\n label.push(branch2);\n }\n }\n log.debug(label.join(\" \"));\n if (commit2.parents && commit2.parents.length == 2) {\n const newCommit = commits[commit2.parents[0]];\n upsert(commitArr, commit2, newCommit);\n commitArr.push(commits[commit2.parents[1]]);\n } else if (commit2.parents.length == 0) {\n return;\n } else {\n const nextCommit = commits[commit2.parents];\n upsert(commitArr, commit2, nextCommit);\n }\n commitArr = uniqBy(commitArr, (c) => c.id);\n prettyPrintCommitHistory(commitArr);\n}\nconst prettyPrint = function() {\n log.debug(commits);\n const node = getCommitsArray()[0];\n prettyPrintCommitHistory([node]);\n};\nconst clear$1 = function() {\n commits = {};\n head = null;\n let mainBranch = getConfig().gitGraph.mainBranchName;\n let mainBranchOrder2 = getConfig().gitGraph.mainBranchOrder;\n branches = {};\n branches[mainBranch] = null;\n branchesConfig = {};\n branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };\n curBranch = mainBranch;\n seq = 0;\n clear$2();\n};\nconst getBranchesAsObjArray = function() {\n const branchesArray = Object.values(branchesConfig).map((branchConfig, i) => {\n if (branchConfig.order !== null) {\n return branchConfig;\n }\n return {\n ...branchConfig,\n order: parseFloat(`0.${i}`, 10)\n };\n }).sort((a, b) => a.order - b.order).map(({ name }) => ({ name }));\n return branchesArray;\n};\nconst getBranches = function() {\n return branches;\n};\nconst getCommits = function() {\n return commits;\n};\nconst getCommitsArray = function() {\n const commitArr = Object.keys(commits).map(function(key) {\n return commits[key];\n });\n commitArr.forEach(function(o) {\n log.debug(o.id);\n });\n commitArr.sort((a, b) => a.seq - b.seq);\n return commitArr;\n};\nconst getCurrentBranch = function() {\n return curBranch;\n};\nconst getDirection = function() {\n return direction;\n};\nconst getHead = function() {\n return head;\n};\nconst commitType$1 = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\nconst gitGraphDb = {\n getConfig: () => getConfig().gitGraph,\n setDirection,\n setOptions,\n getOptions,\n commit,\n branch,\n merge,\n cherryPick,\n checkout,\n //reset,\n prettyPrint,\n clear: clear$1,\n getBranchesAsObjArray,\n getBranches,\n getCommits,\n getCommitsArray,\n getCurrentBranch,\n getDirection,\n getHead,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commitType: commitType$1\n};\nlet allCommitsDict = {};\nconst commitType = {\n NORMAL: 0,\n REVERSE: 1,\n HIGHLIGHT: 2,\n MERGE: 3,\n CHERRY_PICK: 4\n};\nconst THEME_COLOR_LIMIT = 8;\nlet branchPos = {};\nlet commitPos = {};\nlet lanes = [];\nlet maxPos = 0;\nlet dir = \"LR\";\nconst clear = () => {\n branchPos = {};\n commitPos = {};\n allCommitsDict = {};\n maxPos = 0;\n lanes = [];\n dir = \"LR\";\n};\nconst drawText = (txt) => {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n let rows = [];\n if (typeof txt === \"string\") {\n rows = txt.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(txt)) {\n rows = txt;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n tspan.setAttribute(\"class\", \"row\");\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n};\nconst drawCommits = (svg, commits2, modifyGraph) => {\n const gitGraphConfig = getConfig().gitGraph;\n const gBullets = svg.append(\"g\").attr(\"class\", \"commit-bullets\");\n const gLabels = svg.append(\"g\").attr(\"class\", \"commit-labels\");\n let pos = 0;\n if (dir === \"TB\") {\n pos = 30;\n }\n const keys = Object.keys(commits2);\n const sortedKeys = keys.sort((a, b) => {\n return commits2[a].seq - commits2[b].seq;\n });\n sortedKeys.forEach((key) => {\n const commit2 = commits2[key];\n const y = dir === \"TB\" ? pos + 10 : branchPos[commit2.branch].pos;\n const x = dir === \"TB\" ? branchPos[commit2.branch].pos : pos + 10;\n if (modifyGraph) {\n let typeClass;\n let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== \"\" ? commit2.customType : commit2.type;\n switch (commitSymbolType) {\n case commitType.NORMAL:\n typeClass = \"commit-normal\";\n break;\n case commitType.REVERSE:\n typeClass = \"commit-reverse\";\n break;\n case commitType.HIGHLIGHT:\n typeClass = \"commit-highlight\";\n break;\n case commitType.MERGE:\n typeClass = \"commit-merge\";\n break;\n case commitType.CHERRY_PICK:\n typeClass = \"commit-cherry-pick\";\n break;\n default:\n typeClass = \"commit-normal\";\n }\n if (commitSymbolType === commitType.HIGHLIGHT) {\n const circle = gBullets.append(\"rect\");\n circle.attr(\"x\", x - 10);\n circle.attr(\"y\", y - 10);\n circle.attr(\"height\", 20);\n circle.attr(\"width\", 20);\n circle.attr(\n \"class\",\n `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`\n );\n gBullets.append(\"rect\").attr(\"x\", x - 6).attr(\"y\", y - 6).attr(\"height\", 12).attr(\"width\", 12).attr(\n \"class\",\n `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`\n );\n } else if (commitSymbolType === commitType.CHERRY_PICK) {\n gBullets.append(\"circle\").attr(\"cx\", x).attr(\"cy\", y).attr(\"r\", 10).attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", x - 3).attr(\"cy\", y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"circle\").attr(\"cx\", x + 3).attr(\"cy\", y + 2).attr(\"r\", 2.75).attr(\"fill\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", x + 3).attr(\"y1\", y + 1).attr(\"x2\", x).attr(\"y2\", y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n gBullets.append(\"line\").attr(\"x1\", x - 3).attr(\"y1\", y + 1).attr(\"x2\", x).attr(\"y2\", y - 5).attr(\"stroke\", \"#fff\").attr(\"class\", `commit ${commit2.id} ${typeClass}`);\n } else {\n const circle = gBullets.append(\"circle\");\n circle.attr(\"cx\", x);\n circle.attr(\"cy\", y);\n circle.attr(\"r\", commit2.type === commitType.MERGE ? 9 : 10);\n circle.attr(\n \"class\",\n `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n if (commitSymbolType === commitType.MERGE) {\n const circle2 = gBullets.append(\"circle\");\n circle2.attr(\"cx\", x);\n circle2.attr(\"cy\", y);\n circle2.attr(\"r\", 6);\n circle2.attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n }\n if (commitSymbolType === commitType.REVERSE) {\n const cross = gBullets.append(\"path\");\n cross.attr(\"d\", `M ${x - 5},${y - 5}L${x + 5},${y + 5}M${x - 5},${y + 5}L${x + 5},${y - 5}`).attr(\n \"class\",\n `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`\n );\n }\n }\n }\n if (dir === \"TB\") {\n commitPos[commit2.id] = { x, y: pos + 10 };\n } else {\n commitPos[commit2.id] = { x: pos + 10, y };\n }\n if (modifyGraph) {\n const px = 4;\n const py = 2;\n if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {\n const wrapper = gLabels.append(\"g\");\n const labelBkg = wrapper.insert(\"rect\").attr(\"class\", \"commit-label-bkg\");\n const text = wrapper.append(\"text\").attr(\"x\", pos).attr(\"y\", y + 25).attr(\"class\", \"commit-label\").text(commit2.id);\n let bbox = text.node().getBBox();\n labelBkg.attr(\"x\", pos + 10 - bbox.width / 2 - py).attr(\"y\", y + 13.5).attr(\"width\", bbox.width + 2 * py).attr(\"height\", bbox.height + 2 * py);\n if (dir === \"TB\") {\n labelBkg.attr(\"x\", x - (bbox.width + 4 * px + 5)).attr(\"y\", y - 12);\n text.attr(\"x\", x - (bbox.width + 4 * px)).attr(\"y\", y + bbox.height - 12);\n }\n if (dir !== \"TB\") {\n text.attr(\"x\", pos + 10 - bbox.width / 2);\n }\n if (gitGraphConfig.rotateCommitLabel) {\n if (dir === \"TB\") {\n text.attr(\"transform\", \"rotate(-45, \" + x + \", \" + y + \")\");\n labelBkg.attr(\"transform\", \"rotate(-45, \" + x + \", \" + y + \")\");\n } else {\n let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;\n let r_y = 10 + bbox.width / 25 * 8.5;\n wrapper.attr(\n \"transform\",\n \"translate(\" + r_x + \", \" + r_y + \") rotate(-45, \" + pos + \", \" + y + \")\"\n );\n }\n }\n }\n if (commit2.tag) {\n const rect = gLabels.insert(\"polygon\");\n const hole = gLabels.append(\"circle\");\n const tag = gLabels.append(\"text\").attr(\"y\", y - 16).attr(\"class\", \"tag-label\").text(commit2.tag);\n let tagBbox = tag.node().getBBox();\n tag.attr(\"x\", pos + 10 - tagBbox.width / 2);\n const h2 = tagBbox.height / 2;\n const ly = y - 19.2;\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${pos - tagBbox.width / 2 - px / 2},${ly + py}\n ${pos - tagBbox.width / 2 - px / 2},${ly - py}\n ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py}\n ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py}\n ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py}\n ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}`\n );\n hole.attr(\"cx\", pos - tagBbox.width / 2 + px / 2).attr(\"cy\", ly).attr(\"r\", 1.5).attr(\"class\", \"tag-hole\");\n if (dir === \"TB\") {\n rect.attr(\"class\", \"tag-label-bkg\").attr(\n \"points\",\n `\n ${x},${pos + py}\n ${x},${pos - py}\n ${x + 10},${pos - h2 - py}\n ${x + 10 + tagBbox.width + px},${pos - h2 - py}\n ${x + 10 + tagBbox.width + px},${pos + h2 + py}\n ${x + 10},${pos + h2 + py}`\n ).attr(\"transform\", \"translate(12,12) rotate(45, \" + x + \",\" + pos + \")\");\n hole.attr(\"cx\", x + px / 2).attr(\"cy\", pos).attr(\"transform\", \"translate(12,12) rotate(45, \" + x + \",\" + pos + \")\");\n tag.attr(\"x\", x + 5).attr(\"y\", pos + 3).attr(\"transform\", \"translate(14,14) rotate(45, \" + x + \",\" + pos + \")\");\n }\n }\n }\n pos += 50;\n if (pos > maxPos) {\n maxPos = pos;\n }\n });\n};\nconst hasOverlappingCommits = (commit1, commit2, allCommits) => {\n const keys = Object.keys(allCommits);\n const overlappingComits = keys.filter((key) => {\n return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;\n });\n return overlappingComits.length > 0;\n};\nconst findLane = (y1, y2, depth = 0) => {\n const candidate = y1 + Math.abs(y1 - y2) / 2;\n if (depth > 5) {\n return candidate;\n }\n let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);\n if (ok) {\n lanes.push(candidate);\n return candidate;\n }\n const diff = Math.abs(y1 - y2);\n return findLane(y1, y2 - diff / 5, depth + 1);\n};\nconst drawArrow = (svg, commit1, commit2, allCommits) => {\n const p1 = commitPos[commit1.id];\n const p2 = commitPos[commit2.id];\n const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits);\n let arc = \"\";\n let arc2 = \"\";\n let radius = 0;\n let offset = 0;\n let colorClassNum = branchPos[commit2.branch].index;\n let lineDef;\n if (overlappingCommits) {\n arc = \"A 10 10, 0, 0, 0,\";\n arc2 = \"A 10 10, 0, 0, 1,\";\n radius = 10;\n offset = 10;\n colorClassNum = branchPos[commit2.branch].index;\n const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);\n const lineX = p1.x < p2.x ? findLane(p1.x, p2.x) : findLane(p2.x, p1.x);\n if (dir === \"TB\") {\n if (p1.x < p2.x) {\n lineDef = `M ${p1.x} ${p1.y} L ${lineX - radius} ${p1.y} ${arc2} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc} ${lineX + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${lineX + radius} ${p1.y} ${arc} ${lineX} ${p1.y + offset} L ${lineX} ${p2.y - radius} ${arc2} ${lineX - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;\n } else {\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;\n }\n }\n } else {\n if (dir === \"TB\") {\n if (p1.x < p2.x) {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n colorClassNum = branchPos[commit2.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc2} ${p2.x} ${p1.y + offset} L ${p2.x} ${p2.y}`;\n }\n if (p1.x > p2.x) {\n arc = \"A 20 20, 0, 0, 0,\";\n arc2 = \"A 20 20, 0, 0, 1,\";\n radius = 20;\n offset = 20;\n colorClassNum = branchPos[commit1.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc2} ${p1.x - offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n if (p1.x === p2.x) {\n colorClassNum = branchPos[commit1.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x + radius} ${p1.y} ${arc} ${p1.x + offset} ${p2.y + radius} L ${p2.x} ${p2.y}`;\n }\n } else {\n if (p1.y < p2.y) {\n arc = \"A 20 20, 0, 0, 0,\";\n radius = 20;\n offset = 20;\n colorClassNum = branchPos[commit2.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n if (p1.y > p2.y) {\n arc = \"A 20 20, 0, 0, 0,\";\n radius = 20;\n offset = 20;\n colorClassNum = branchPos[commit1.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;\n }\n if (p1.y === p2.y) {\n colorClassNum = branchPos[commit1.branch].index;\n lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;\n }\n }\n }\n svg.append(\"path\").attr(\"d\", lineDef).attr(\"class\", \"arrow arrow\" + colorClassNum % THEME_COLOR_LIMIT);\n};\nconst drawArrows = (svg, commits2) => {\n const gArrows = svg.append(\"g\").attr(\"class\", \"commit-arrows\");\n Object.keys(commits2).forEach((key) => {\n const commit2 = commits2[key];\n if (commit2.parents && commit2.parents.length > 0) {\n commit2.parents.forEach((parent) => {\n drawArrow(gArrows, commits2[parent], commit2, commits2);\n });\n }\n });\n};\nconst drawBranches = (svg, branches2) => {\n const gitGraphConfig = getConfig().gitGraph;\n const g = svg.append(\"g\");\n branches2.forEach((branch2, index) => {\n const adjustIndexForTheme = index % THEME_COLOR_LIMIT;\n const pos = branchPos[branch2.name].pos;\n const line = g.append(\"line\");\n line.attr(\"x1\", 0);\n line.attr(\"y1\", pos);\n line.attr(\"x2\", maxPos);\n line.attr(\"y2\", pos);\n line.attr(\"class\", \"branch branch\" + adjustIndexForTheme);\n if (dir === \"TB\") {\n line.attr(\"y1\", 30);\n line.attr(\"x1\", pos);\n line.attr(\"y2\", maxPos);\n line.attr(\"x2\", pos);\n }\n lanes.push(pos);\n let name = branch2.name;\n const labelElement = drawText(name);\n const bkg = g.insert(\"rect\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\" + adjustIndexForTheme);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n bkg.attr(\"class\", \"branchLabelBkg label\" + adjustIndexForTheme).attr(\"rx\", 4).attr(\"ry\", 4).attr(\"x\", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr(\"y\", -bbox.height / 2 + 8).attr(\"width\", bbox.width + 18).attr(\"height\", bbox.height + 4);\n label.attr(\n \"transform\",\n \"translate(\" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + \", \" + (pos - bbox.height / 2 - 1) + \")\"\n );\n if (dir === \"TB\") {\n bkg.attr(\"x\", pos - bbox.width / 2 - 10).attr(\"y\", 0);\n label.attr(\"transform\", \"translate(\" + (pos - bbox.width / 2 - 5) + \", 0)\");\n }\n if (dir !== \"TB\") {\n bkg.attr(\"transform\", \"translate(-19, \" + (pos - bbox.height / 2) + \")\");\n }\n });\n};\nconst draw = function(txt, id, ver, diagObj) {\n clear();\n const conf = getConfig();\n const gitGraphConfig = conf.gitGraph;\n log.debug(\"in gitgraph renderer\", txt + \"\\n\", \"id:\", id, ver);\n allCommitsDict = diagObj.db.getCommits();\n const branches2 = diagObj.db.getBranchesAsObjArray();\n dir = diagObj.db.getDirection();\n const diagram2 = select(`[id=\"${id}\"]`);\n let pos = 0;\n branches2.forEach((branch2, index) => {\n const labelElement = drawText(branch2.name);\n const g = diagram2.append(\"g\");\n const branchLabel = g.insert(\"g\").attr(\"class\", \"branchLabel\");\n const label = branchLabel.insert(\"g\").attr(\"class\", \"label branch-label\");\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n branchPos[branch2.name] = { pos, index };\n pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0) + (dir === \"TB\" ? bbox.width / 2 : 0);\n label.remove();\n branchLabel.remove();\n g.remove();\n });\n drawCommits(diagram2, allCommitsDict, false);\n if (gitGraphConfig.showBranches) {\n drawBranches(diagram2, branches2);\n }\n drawArrows(diagram2, allCommitsDict);\n drawCommits(diagram2, allCommitsDict, true);\n utils.insertTitle(\n diagram2,\n \"gitTitleText\",\n gitGraphConfig.titleTopMargin,\n diagObj.db.getDiagramTitle()\n );\n setupGraphViewbox(\n void 0,\n diagram2,\n gitGraphConfig.diagramPadding,\n gitGraphConfig.useMaxWidth ?? conf.useMaxWidth\n );\n};\nconst gitGraphRenderer = {\n draw\n};\nconst getStyles = (options2) => `\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0, 1, 2, 3, 4, 5, 6, 7].map(\n (i) => `\n .branch-label${i} { fill: ${options2[\"gitBranchLabel\" + i]}; }\n .commit${i} { stroke: ${options2[\"git\" + i]}; fill: ${options2[\"git\" + i]}; }\n .commit-highlight${i} { stroke: ${options2[\"gitInv\" + i]}; fill: ${options2[\"gitInv\" + i]}; }\n .label${i} { fill: ${options2[\"git\" + i]}; }\n .arrow${i} { stroke: ${options2[\"git\" + i]}; }\n `\n).join(\"\\n\")}\n\n .branch {\n stroke-width: 1;\n stroke: ${options2.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}\n .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}\n .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }\n .tag-hole { fill: ${options2.textColor}; }\n\n .commit-merge {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n }\n .commit-reverse {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${options2.primaryColor};\n fill: ${options2.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options2.textColor};\n }\n`;\nconst gitGraphStyles = getStyles;\nconst diagram = {\n parser: gitGraphParser,\n db: gitGraphDb,\n renderer: gitGraphRenderer,\n styles: gitGraphStyles\n};\nexport {\n diagram\n};\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAGA,mBAAO;AACP,0BAAO;AAOP,IAAI,SAAS,WAAW;AACtB,MAAI,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG;AAC5B,SAAK,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI;AAChD;AACF,WAAO;AAAA,EACT,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE;AACzZ,MAAI,UAAU;AAAA,IACZ,OAAO,SAAS,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,CAAC;AAAA,IACL,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,MAAM,IAAI,QAAQ,IAAI,aAAa,IAAI,mBAAmB,IAAI,kBAAkB,IAAI,uBAAuB,IAAI,aAAa,IAAI,mBAAmB,IAAI,aAAa,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,WAAW,IAAI,mBAAmB,IAAI,YAAY,IAAI,OAAO,IAAI,UAAU,IAAI,SAAS,IAAI,OAAO,IAAI,eAAe,IAAI,aAAa,IAAI,OAAO,IAAI,cAAc,IAAI,YAAY,IAAI,SAAS,IAAI,eAAe,IAAI,cAAc,IAAI,UAAU,IAAI,cAAc,IAAI,cAAc,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,MAAM,IAAI,KAAK,IAAI,WAAW,GAAG,QAAQ,EAAE;AAAA,IAC7tB,YAAY,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IAAI,OAAO,IAAI,MAAM,IAAI,aAAa,IAAI,mBAAmB,IAAI,aAAa,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,WAAW,IAAI,YAAY,IAAI,UAAU,IAAI,SAAS,IAAI,OAAO,IAAI,eAAe,IAAI,aAAa,IAAI,OAAO,IAAI,cAAc,IAAI,YAAY,IAAI,SAAS,IAAI,eAAe,IAAI,UAAU,IAAI,cAAc,IAAI,UAAU,IAAI,WAAW,IAAI,aAAa,IAAI,MAAM,IAAI,IAAI;AAAA,IAC3d,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IA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AG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GA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", - "names": ["clear"] -} diff --git a/.vuepress/.cache/deps/infoDiagram-a336098b-NXZLKPTX.js b/.vuepress/.cache/deps/infoDiagram-a336098b-NXZLKPTX.js deleted file mode 100644 index e6a3d0ccc..000000000 --- a/.vuepress/.cache/deps/infoDiagram-a336098b-NXZLKPTX.js +++ /dev/null @@ -1,524 +0,0 @@ -import { - configureSvgSize, - log$1, - require_dayjs_min, - require_dist, - selectSvgElement -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/infoDiagram-a336098b.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [6, 9, 10]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "info": 4, "document": 5, "EOF": 6, "line": 7, "statement": 8, "NL": 9, "showInfo": 10, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - $$.length - 1; - switch (yystate) { - case 1: - return yy; - case 4: - break; - case 6: - yy.setInfo(true); - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])], - defaultActions: { 4: [2, 1] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - return 4; - case 1: - return 9; - case 2: - return "space"; - case 3: - return 10; - case 4: - return 6; - case 5: - return "TXT"; - } - }, - rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var DEFAULT_INFO_DB = { - info: false -}; -var info = DEFAULT_INFO_DB.info; -var setInfo = (toggle) => { - info = toggle; -}; -var getInfo = () => info; -var clear = () => { - info = DEFAULT_INFO_DB.info; -}; -var db = { - clear, - setInfo, - getInfo -}; -var draw = (text, id, version) => { - log$1.debug("rendering info diagram\n" + text); - const svg = selectSvgElement(id); - configureSvgSize(svg, 100, 400, true); - const group = svg.append("g"); - group.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", 32).style("text-anchor", "middle").text(`v${version}`); -}; -var renderer = { draw }; -var diagram = { - parser: parser$1, - db, - renderer -}; -export { - diagram -}; -//# sourceMappingURL=infoDiagram-a336098b-NXZLKPTX.js.map diff --git a/.vuepress/.cache/deps/infoDiagram-a336098b-NXZLKPTX.js.map b/.vuepress/.cache/deps/infoDiagram-a336098b-NXZLKPTX.js.map deleted file mode 100644 index 836ca60f3..000000000 --- a/.vuepress/.cache/deps/infoDiagram-a336098b-NXZLKPTX.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/infoDiagram-a336098b.js"], - "sourcesContent": ["import { l as log, z as selectSvgElement, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"d3\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 9, 10];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"info\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"statement\": 8, \"NL\": 9, \"showInfo\": 10, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"info\", 6: \"EOF\", 9: \"NL\", 10: \"showInfo\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n $$.length - 1;\n switch (yystate) {\n case 1:\n return yy;\n case 4:\n break;\n case 6:\n yy.setInfo(true);\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],\n defaultActions: { 4: [2, 1] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 4;\n case 1:\n return 9;\n case 2:\n return \"space\";\n case 3:\n return 10;\n case 4:\n return 6;\n case 5:\n return \"TXT\";\n }\n },\n rules: [/^(?:info\\b)/i, /^(?:[\\s\\n\\r]+)/i, /^(?:[\\s]+)/i, /^(?:showInfo\\b)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst DEFAULT_INFO_DB = {\n info: false\n};\nlet info = DEFAULT_INFO_DB.info;\nconst setInfo = (toggle) => {\n info = toggle;\n};\nconst getInfo = () => info;\nconst clear = () => {\n info = DEFAULT_INFO_DB.info;\n};\nconst db = {\n clear,\n setInfo,\n getInfo\n};\nconst draw = (text, id, version) => {\n log.debug(\"rendering info diagram\\n\" + text);\n const svg = selectSvgElement(id);\n configureSvgSize(svg, 100, 400, true);\n const group = svg.append(\"g\");\n group.append(\"text\").attr(\"x\", 100).attr(\"y\", 40).attr(\"class\", \"version\").attr(\"font-size\", 32).style(\"text-anchor\", \"middle\").text(`v${version}`);\n};\nconst renderer = { draw };\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": [] -} diff --git a/.vuepress/.cache/deps/journeyDiagram-deae3313-2WMJCSGI.js b/.vuepress/.cache/deps/journeyDiagram-deae3313-2WMJCSGI.js deleted file mode 100644 index de7113c0c..000000000 --- a/.vuepress/.cache/deps/journeyDiagram-deae3313-2WMJCSGI.js +++ /dev/null @@ -1,1208 +0,0 @@ -import { - drawBackgroundRect, - drawRect, - drawText, - getNoteRect -} from "./chunk-UV6QJ4UL.js"; -import { - arc_default, - clear, - configureSvgSize, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - require_dayjs_min, - require_dist, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/journeyDiagram-deae3313.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "taskName": 18, "taskData": 19, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 1: - return $$[$0 - 1]; - case 2: - this.$ = []; - break; - case 3: - $$[$0 - 1].push($$[$0]); - this.$ = $$[$0 - 1]; - break; - case 4: - case 5: - this.$ = $$[$0]; - break; - case 6: - case 7: - this.$ = []; - break; - case 8: - yy.setDiagramTitle($$[$0].substr(6)); - this.$ = $$[$0].substr(6); - break; - case 9: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 10: - case 11: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 12: - yy.addSection($$[$0].substr(8)); - this.$ = $$[$0].substr(8); - break; - case 13: - yy.addTask($$[$0 - 1], $$[$0]); - this.$ = "task"; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])], - defaultActions: {}, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - break; - case 1: - break; - case 2: - return 10; - case 3: - break; - case 4: - break; - case 5: - return 4; - case 6: - return 11; - case 7: - this.begin("acc_title"); - return 12; - case 8: - this.popState(); - return "acc_title_value"; - case 9: - this.begin("acc_descr"); - return 14; - case 10: - this.popState(); - return "acc_descr_value"; - case 11: - this.begin("acc_descr_multiline"); - break; - case 12: - this.popState(); - break; - case 13: - return "acc_descr_multiline_value"; - case 14: - return 17; - case 15: - return 18; - case 16: - return 19; - case 17: - return ":"; - case 18: - return 6; - case 19: - return "INVALID"; - } - }, - rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var currentSection = ""; -var sections = []; -var tasks = []; -var rawTasks = []; -var clear2 = function() { - sections.length = 0; - tasks.length = 0; - currentSection = ""; - rawTasks.length = 0; - clear(); -}; -var addSection = function(txt) { - currentSection = txt; - sections.push(txt); -}; -var getSections = function() { - return sections; -}; -var getTasks = function() { - let allItemsProcessed = compileTasks(); - const maxDepth = 100; - let iterationCount = 0; - while (!allItemsProcessed && iterationCount < maxDepth) { - allItemsProcessed = compileTasks(); - iterationCount++; - } - tasks.push(...rawTasks); - return tasks; -}; -var updateActors = function() { - const tempActors = []; - tasks.forEach((task) => { - if (task.people) { - tempActors.push(...task.people); - } - }); - const unique = new Set(tempActors); - return [...unique].sort(); -}; -var addTask = function(descr, taskData) { - const pieces = taskData.substr(1).split(":"); - let score = 0; - let peeps = []; - if (pieces.length === 1) { - score = Number(pieces[0]); - peeps = []; - } else { - score = Number(pieces[0]); - peeps = pieces[1].split(","); - } - const peopleList = peeps.map((s) => s.trim()); - const rawTask = { - section: currentSection, - type: currentSection, - people: peopleList, - task: descr, - score - }; - rawTasks.push(rawTask); -}; -var addTaskOrg = function(descr) { - const newTask = { - section: currentSection, - type: currentSection, - description: descr, - task: descr, - classes: [] - }; - tasks.push(newTask); -}; -var compileTasks = function() { - const compileTask = function(pos) { - return rawTasks[pos].processed; - }; - let allProcessed = true; - for (const [i, rawTask] of rawTasks.entries()) { - compileTask(i); - allProcessed = allProcessed && rawTask.processed; - } - return allProcessed; -}; -var getActors = function() { - return updateActors(); -}; -var db = { - getConfig: () => getConfig().journey, - clear: clear2, - setDiagramTitle, - getDiagramTitle, - setAccTitle, - getAccTitle, - setAccDescription, - getAccDescription, - addSection, - getSections, - getTasks, - addTask, - addTaskOrg, - getActors -}; -var getStyles = (options) => `.label { - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - color: ${options.textColor}; - } - .mouth { - stroke: #666; - } - - line { - stroke: ${options.textColor} - } - - .legend { - fill: ${options.textColor}; - } - - .label text { - fill: #333; - } - .label { - color: ${options.textColor} - } - - .face { - ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"}; - stroke: #999; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${options.mainBkg}; - stroke: ${options.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${options.arrowheadColor}; - } - - .edgePath .path { - stroke: ${options.lineColor}; - stroke-width: 1.5px; - } - - .flowchart-link { - stroke: ${options.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${options.edgeLabelBackground}; - rect { - opacity: 0.5; - } - text-align: center; - } - - .cluster rect { - } - - .cluster text { - fill: ${options.titleColor}; - } - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - font-size: 12px; - background: ${options.tertiaryColor}; - border: 1px solid ${options.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .task-type-0, .section-type-0 { - ${options.fillType0 ? `fill: ${options.fillType0}` : ""}; - } - .task-type-1, .section-type-1 { - ${options.fillType0 ? `fill: ${options.fillType1}` : ""}; - } - .task-type-2, .section-type-2 { - ${options.fillType0 ? `fill: ${options.fillType2}` : ""}; - } - .task-type-3, .section-type-3 { - ${options.fillType0 ? `fill: ${options.fillType3}` : ""}; - } - .task-type-4, .section-type-4 { - ${options.fillType0 ? `fill: ${options.fillType4}` : ""}; - } - .task-type-5, .section-type-5 { - ${options.fillType0 ? `fill: ${options.fillType5}` : ""}; - } - .task-type-6, .section-type-6 { - ${options.fillType0 ? `fill: ${options.fillType6}` : ""}; - } - .task-type-7, .section-type-7 { - ${options.fillType0 ? `fill: ${options.fillType7}` : ""}; - } - - .actor-0 { - ${options.actor0 ? `fill: ${options.actor0}` : ""}; - } - .actor-1 { - ${options.actor1 ? `fill: ${options.actor1}` : ""}; - } - .actor-2 { - ${options.actor2 ? `fill: ${options.actor2}` : ""}; - } - .actor-3 { - ${options.actor3 ? `fill: ${options.actor3}` : ""}; - } - .actor-4 { - ${options.actor4 ? `fill: ${options.actor4}` : ""}; - } - .actor-5 { - ${options.actor5 ? `fill: ${options.actor5}` : ""}; - } -`; -var styles = getStyles; -var drawRect2 = function(elem, rectData) { - return drawRect(elem, rectData); -}; -var drawFace = function(element, faceData) { - const radius = 15; - const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); - const face = element.append("g"); - face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); - face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); - function smile(face2) { - const arc$1 = arc_default().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); - face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); - } - function sad(face2) { - const arc$1 = arc_default().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); - face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); - } - function ambivalent(face2) { - face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); - } - if (faceData.score > 3) { - smile(face); - } else if (faceData.score < 3) { - sad(face); - } else { - ambivalent(face); - } - return circleElement; -}; -var drawCircle = function(element, circleData) { - const circleElement = element.append("circle"); - circleElement.attr("cx", circleData.cx); - circleElement.attr("cy", circleData.cy); - circleElement.attr("class", "actor-" + circleData.pos); - circleElement.attr("fill", circleData.fill); - circleElement.attr("stroke", circleData.stroke); - circleElement.attr("r", circleData.r); - if (circleElement.class !== void 0) { - circleElement.attr("class", circleElement.class); - } - if (circleData.title !== void 0) { - circleElement.append("title").text(circleData.title); - } - return circleElement; -}; -var drawText2 = function(elem, textData) { - return drawText(elem, textData); -}; -var drawLabel = function(elem, txtObject) { - function genPoints(x, y, width, height, cut) { - return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); - } - const polygon = elem.append("polygon"); - polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); - polygon.attr("class", "labelBox"); - txtObject.y = txtObject.y + txtObject.labelMargin; - txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; - drawText2(elem, txtObject); -}; -var drawSection = function(elem, section, conf2) { - const g = elem.append("g"); - const rect = getNoteRect(); - rect.x = section.x; - rect.y = section.y; - rect.fill = section.fill; - rect.width = conf2.width * section.taskCount + // width of the tasks - conf2.diagramMarginX * (section.taskCount - 1); - rect.height = conf2.height; - rect.class = "journey-section section-type-" + section.num; - rect.rx = 3; - rect.ry = 3; - drawRect2(g, rect); - _drawTextCandidateFunc(conf2)( - section.text, - g, - rect.x, - rect.y, - rect.width, - rect.height, - { class: "journey-section section-type-" + section.num }, - conf2, - section.colour - ); -}; -var taskCount = -1; -var drawTask = function(elem, task, conf2) { - const center = task.x + conf2.width / 2; - const g = elem.append("g"); - taskCount++; - const maxHeight = 300 + 5 * 30; - g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); - drawFace(g, { - cx: center, - cy: 300 + (5 - task.score) * 30, - score: task.score - }); - const rect = getNoteRect(); - rect.x = task.x; - rect.y = task.y; - rect.fill = task.fill; - rect.width = conf2.width; - rect.height = conf2.height; - rect.class = "task task-type-" + task.num; - rect.rx = 3; - rect.ry = 3; - drawRect2(g, rect); - let xPos = task.x + 14; - task.people.forEach((person) => { - const colour = task.actors[person].color; - const circle = { - cx: xPos, - cy: task.y, - r: 7, - fill: colour, - stroke: "#000", - title: person, - pos: task.actors[person].position - }; - drawCircle(g, circle); - xPos += 10; - }); - _drawTextCandidateFunc(conf2)( - task.task, - g, - rect.x, - rect.y, - rect.width, - rect.height, - { class: "task" }, - conf2, - task.colour - ); -}; -var drawBackgroundRect2 = function(elem, bounds2) { - drawBackgroundRect(elem, bounds2); -}; -var _drawTextCandidateFunc = /* @__PURE__ */ function() { - function byText(content, g, x, y, width, height, textAttrs, colour) { - const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); - _setTextAttrs(text, textAttrs); - } - function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) { - const { taskFontSize, taskFontFamily } = conf2; - const lines = content.split(//gi); - for (let i = 0; i < lines.length; i++) { - const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; - const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); - text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); - text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); - _setTextAttrs(text, textAttrs); - } - } - function byFo(content, g, x, y, width, height, textAttrs, conf2) { - const body = g.append("switch"); - const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); - const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); - text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); - byTspan(content, body, x, y, width, height, textAttrs, conf2); - _setTextAttrs(text, textAttrs); - } - function _setTextAttrs(toText, fromTextAttrsDict) { - for (const key in fromTextAttrsDict) { - if (key in fromTextAttrsDict) { - toText.attr(key, fromTextAttrsDict[key]); - } - } - } - return function(conf2) { - return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; - }; -}(); -var initGraphics = function(graphics) { - graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); -}; -var svgDraw = { - drawRect: drawRect2, - drawCircle, - drawSection, - drawText: drawText2, - drawLabel, - drawTask, - drawBackgroundRect: drawBackgroundRect2, - initGraphics -}; -var setConf = function(cnf) { - const keys = Object.keys(cnf); - keys.forEach(function(key) { - conf[key] = cnf[key]; - }); -}; -var actors = {}; -function drawActorLegend(diagram2) { - const conf2 = getConfig().journey; - let yPos = 60; - Object.keys(actors).forEach((person) => { - const colour = actors[person].color; - const circleData = { - cx: 20, - cy: yPos, - r: 7, - fill: colour, - stroke: "#000", - pos: actors[person].position - }; - svgDraw.drawCircle(diagram2, circleData); - const labelData = { - x: 40, - y: yPos + 7, - fill: "#666", - text: person, - textMargin: conf2.boxTextMargin | 5 - }; - svgDraw.drawText(diagram2, labelData); - yPos += 20; - }); -} -var conf = getConfig().journey; -var LEFT_MARGIN = conf.leftMargin; -var draw = function(text, id, version, diagObj) { - const conf2 = getConfig().journey; - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - bounds.init(); - const diagram2 = root.select("#" + id); - svgDraw.initGraphics(diagram2); - const tasks2 = diagObj.db.getTasks(); - const title = diagObj.db.getDiagramTitle(); - const actorNames = diagObj.db.getActors(); - for (const member in actors) { - delete actors[member]; - } - let actorPos = 0; - actorNames.forEach((actorName) => { - actors[actorName] = { - color: conf2.actorColours[actorPos % conf2.actorColours.length], - position: actorPos - }; - actorPos++; - }); - drawActorLegend(diagram2); - bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50); - drawTasks(diagram2, tasks2, 0); - const box = bounds.getBounds(); - if (title) { - diagram2.append("text").text(title).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25); - } - const height = box.stopy - box.starty + 2 * conf2.diagramMarginY; - const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX; - configureSvgSize(diagram2, height, width, conf2.useMaxWidth); - diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); - const extraVertForTitle = title ? 70 : 0; - diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`); - diagram2.attr("preserveAspectRatio", "xMinYMin meet"); - diagram2.attr("height", height + extraVertForTitle + 25); -}; -var bounds = { - data: { - startx: void 0, - stopx: void 0, - starty: void 0, - stopy: void 0 - }, - verticalPos: 0, - sequenceItems: [], - init: function() { - this.sequenceItems = []; - this.data = { - startx: void 0, - stopx: void 0, - starty: void 0, - stopy: void 0 - }; - this.verticalPos = 0; - }, - updateVal: function(obj, key, val, fun) { - if (obj[key] === void 0) { - obj[key] = val; - } else { - obj[key] = fun(val, obj[key]); - } - }, - updateBounds: function(startx, starty, stopx, stopy) { - const conf2 = getConfig().journey; - const _self = this; - let cnt = 0; - function updateFn(type) { - return function updateItemBounds(item) { - cnt++; - const n = _self.sequenceItems.length - cnt + 1; - _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min); - _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max); - _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min); - _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max); - if (!(type === "activation")) { - _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min); - _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max); - _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min); - _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max); - } - }; - } - this.sequenceItems.forEach(updateFn()); - }, - insert: function(startx, starty, stopx, stopy) { - const _startx = Math.min(startx, stopx); - const _stopx = Math.max(startx, stopx); - const _starty = Math.min(starty, stopy); - const _stopy = Math.max(starty, stopy); - this.updateVal(bounds.data, "startx", _startx, Math.min); - this.updateVal(bounds.data, "starty", _starty, Math.min); - this.updateVal(bounds.data, "stopx", _stopx, Math.max); - this.updateVal(bounds.data, "stopy", _stopy, Math.max); - this.updateBounds(_startx, _starty, _stopx, _stopy); - }, - bumpVerticalPos: function(bump) { - this.verticalPos = this.verticalPos + bump; - this.data.stopy = this.verticalPos; - }, - getVerticalPos: function() { - return this.verticalPos; - }, - getBounds: function() { - return this.data; - } -}; -var fills = conf.sectionFills; -var textColours = conf.sectionColours; -var drawTasks = function(diagram2, tasks2, verticalPos) { - const conf2 = getConfig().journey; - let lastSection = ""; - const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY; - const taskPos = verticalPos + sectionVHeight; - let sectionNumber = 0; - let fill = "#CCC"; - let colour = "black"; - let num = 0; - for (const [i, task] of tasks2.entries()) { - if (lastSection !== task.section) { - fill = fills[sectionNumber % fills.length]; - num = sectionNumber % fills.length; - colour = textColours[sectionNumber % textColours.length]; - let taskInSectionCount = 0; - const currentSection2 = task.section; - for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) { - if (tasks2[taskIndex].section == currentSection2) { - taskInSectionCount = taskInSectionCount + 1; - } else { - break; - } - } - const section = { - x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN, - y: 50, - text: task.section, - fill, - num, - colour, - taskCount: taskInSectionCount - }; - svgDraw.drawSection(diagram2, section, conf2); - lastSection = task.section; - sectionNumber++; - } - const taskActors = task.people.reduce((acc, actorName) => { - if (actors[actorName]) { - acc[actorName] = actors[actorName]; - } - return acc; - }, {}); - task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN; - task.y = taskPos; - task.width = conf2.diagramMarginX; - task.height = conf2.diagramMarginY; - task.colour = colour; - task.fill = fill; - task.num = num; - task.actors = taskActors; - svgDraw.drawTask(diagram2, task, conf2); - bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30); - } -}; -var renderer = { - setConf, - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: (cnf) => { - renderer.setConf(cnf.journey); - db.clear(); - } -}; -export { - diagram -}; -//# sourceMappingURL=journeyDiagram-deae3313-2WMJCSGI.js.map diff --git a/.vuepress/.cache/deps/journeyDiagram-deae3313-2WMJCSGI.js.map b/.vuepress/.cache/deps/journeyDiagram-deae3313-2WMJCSGI.js.map deleted file mode 100644 index ff636b891..000000000 --- a/.vuepress/.cache/deps/journeyDiagram-deae3313-2WMJCSGI.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/journeyDiagram-deae3313.js"], - "sourcesContent": ["import { c as getConfig, q as setDiagramTitle, r as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, t as clear$1, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport { arc, select } from \"d3\";\nimport { d as drawRect$1, f as drawText$1, a as drawBackgroundRect$1, g as getNoteRect } from \"./svgDrawCommon-ad5ef572.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"journey\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"title\": 11, \"acc_title\": 12, \"acc_title_value\": 13, \"acc_descr\": 14, \"acc_descr_value\": 15, \"acc_descr_multiline_value\": 16, \"section\": 17, \"taskName\": 18, \"taskData\": 19, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"journey\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 11: \"title\", 12: \"acc_title\", 13: \"acc_title_value\", 14: \"acc_descr\", 15: \"acc_descr_value\", 16: \"acc_descr_multiline_value\", 17: \"section\", 18: \"taskName\", 19: \"taskData\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 10:\n case 11:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 12:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 13:\n yy.addTask($$[$0 - 1], $$[$0]);\n this.$ = \"task\";\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 10;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 4;\n case 6:\n return 11;\n case 7:\n this.begin(\"acc_title\");\n return 12;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.begin(\"acc_descr\");\n return 14;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 17;\n case 15:\n return 18;\n case 16:\n return 19;\n case 17:\n return \":\";\n case 18:\n return 6;\n case 19:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:journey\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^#:\\n;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?::[^#\\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n};\nconst updateActors = function() {\n const tempActors = [];\n tasks.forEach((task) => {\n if (task.people) {\n tempActors.push(...task.people);\n }\n });\n const unique = new Set(tempActors);\n return [...unique].sort();\n};\nconst addTask = function(descr, taskData) {\n const pieces = taskData.substr(1).split(\":\");\n let score = 0;\n let peeps = [];\n if (pieces.length === 1) {\n score = Number(pieces[0]);\n peeps = [];\n } else {\n score = Number(pieces[0]);\n peeps = pieces[1].split(\",\");\n }\n const peopleList = peeps.map((s) => s.trim());\n const rawTask = {\n section: currentSection,\n type: currentSection,\n people: peopleList,\n task: descr,\n score\n };\n rawTasks.push(rawTask);\n};\nconst addTaskOrg = function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst getActors = function() {\n return updateActors();\n};\nconst db = {\n getConfig: () => getConfig().journey,\n clear,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n getActors\n};\nconst getStyles = (options) => `.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${options.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${options.textColor}\n }\n\n .legend {\n fill: ${options.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${options.textColor}\n }\n\n .face {\n ${options.faceColor ? `fill: ${options.faceColor}` : \"fill: #FFF8DC\"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${options.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${options.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${options.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${options.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${options.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${options.tertiaryColor};\n border: 1px solid ${options.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${options.fillType0 ? `fill: ${options.fillType0}` : \"\"};\n }\n .task-type-1, .section-type-1 {\n ${options.fillType0 ? `fill: ${options.fillType1}` : \"\"};\n }\n .task-type-2, .section-type-2 {\n ${options.fillType0 ? `fill: ${options.fillType2}` : \"\"};\n }\n .task-type-3, .section-type-3 {\n ${options.fillType0 ? `fill: ${options.fillType3}` : \"\"};\n }\n .task-type-4, .section-type-4 {\n ${options.fillType0 ? `fill: ${options.fillType4}` : \"\"};\n }\n .task-type-5, .section-type-5 {\n ${options.fillType0 ? `fill: ${options.fillType5}` : \"\"};\n }\n .task-type-6, .section-type-6 {\n ${options.fillType0 ? `fill: ${options.fillType6}` : \"\"};\n }\n .task-type-7, .section-type-7 {\n ${options.fillType0 ? `fill: ${options.fillType7}` : \"\"};\n }\n\n .actor-0 {\n ${options.actor0 ? `fill: ${options.actor0}` : \"\"};\n }\n .actor-1 {\n ${options.actor1 ? `fill: ${options.actor1}` : \"\"};\n }\n .actor-2 {\n ${options.actor2 ? `fill: ${options.actor2}` : \"\"};\n }\n .actor-3 {\n ${options.actor3 ? `fill: ${options.actor3}` : \"\"};\n }\n .actor-4 {\n ${options.actor4 ? `fill: ${options.actor4}` : \"\"};\n }\n .actor-5 {\n ${options.actor5 ? `fill: ${options.actor5}` : \"\"};\n }\n`;\nconst styles = getStyles;\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst drawFace = function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n};\nconst drawCircle = function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n};\nconst drawText = function(elem, textData) {\n return drawText$1(elem, textData);\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n};\nconst drawSection = function(elem, section, conf2) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf2.width * section.taskCount + // width of the tasks\n conf2.diagramMarginX * (section.taskCount - 1);\n rect.height = conf2.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf2)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf2,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf2) {\n const center = task.x + conf2.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf2.width;\n rect.height = conf2.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n let xPos = task.x + 14;\n task.people.forEach((person) => {\n const colour = task.actors[person].color;\n const circle = {\n cx: xPos,\n cy: task.y,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n title: person,\n pos: task.actors[person].position\n };\n drawCircle(g, circle);\n xPos += 10;\n });\n _drawTextCandidateFunc(conf2)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf2,\n task.colour\n );\n};\nconst drawBackgroundRect = function(elem, bounds2) {\n drawBackgroundRect$1(elem, bounds2);\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {\n const { taskFontSize, taskFontFamily } = conf2;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n};\nconst svgDraw = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n initGraphics\n};\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n keys.forEach(function(key) {\n conf[key] = cnf[key];\n });\n};\nconst actors = {};\nfunction drawActorLegend(diagram2) {\n const conf2 = getConfig().journey;\n let yPos = 60;\n Object.keys(actors).forEach((person) => {\n const colour = actors[person].color;\n const circleData = {\n cx: 20,\n cy: yPos,\n r: 7,\n fill: colour,\n stroke: \"#000\",\n pos: actors[person].position\n };\n svgDraw.drawCircle(diagram2, circleData);\n const labelData = {\n x: 40,\n y: yPos + 7,\n fill: \"#666\",\n text: person,\n textMargin: conf2.boxTextMargin | 5\n };\n svgDraw.drawText(diagram2, labelData);\n yPos += 20;\n });\n}\nconst conf = getConfig().journey;\nconst LEFT_MARGIN = conf.leftMargin;\nconst draw = function(text, id, version, diagObj) {\n const conf2 = getConfig().journey;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n bounds.init();\n const diagram2 = root.select(\"#\" + id);\n svgDraw.initGraphics(diagram2);\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getDiagramTitle();\n const actorNames = diagObj.db.getActors();\n for (const member in actors) {\n delete actors[member];\n }\n let actorPos = 0;\n actorNames.forEach((actorName) => {\n actors[actorName] = {\n color: conf2.actorColours[actorPos % conf2.actorColours.length],\n position: actorPos\n };\n actorPos++;\n });\n drawActorLegend(diagram2);\n bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);\n drawTasks(diagram2, tasks2, 0);\n const box = bounds.getBounds();\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 25);\n }\n const height = box.stopy - box.starty + 2 * conf2.diagramMarginY;\n const width = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;\n configureSvgSize(diagram2, height, width, conf2.useMaxWidth);\n diagram2.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", conf2.height * 4).attr(\"x2\", width - LEFT_MARGIN - 4).attr(\"y2\", conf2.height * 4).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n const extraVertForTitle = title ? 70 : 0;\n diagram2.attr(\"viewBox\", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);\n diagram2.attr(\"preserveAspectRatio\", \"xMinYMin meet\");\n diagram2.attr(\"height\", height + extraVertForTitle + 25);\n};\nconst bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n init: function() {\n this.sequenceItems = [];\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n },\n updateVal: function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n },\n updateBounds: function(startx, starty, stopx, stopy) {\n const conf2 = getConfig().journey;\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf2.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf2.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf2.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf2.boxMargin, Math.max);\n }\n };\n }\n this.sequenceItems.forEach(updateFn());\n },\n insert: function(startx, starty, stopx, stopy) {\n const _startx = Math.min(startx, stopx);\n const _stopx = Math.max(startx, stopx);\n const _starty = Math.min(starty, stopy);\n const _stopy = Math.max(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n },\n bumpVerticalPos: function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = this.verticalPos;\n },\n getVerticalPos: function() {\n return this.verticalPos;\n },\n getBounds: function() {\n return this.data;\n }\n};\nconst fills = conf.sectionFills;\nconst textColours = conf.sectionColours;\nconst drawTasks = function(diagram2, tasks2, verticalPos) {\n const conf2 = getConfig().journey;\n let lastSection = \"\";\n const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;\n const taskPos = verticalPos + sectionVHeight;\n let sectionNumber = 0;\n let fill = \"#CCC\";\n let colour = \"black\";\n let num = 0;\n for (const [i, task] of tasks2.entries()) {\n if (lastSection !== task.section) {\n fill = fills[sectionNumber % fills.length];\n num = sectionNumber % fills.length;\n colour = textColours[sectionNumber % textColours.length];\n let taskInSectionCount = 0;\n const currentSection2 = task.section;\n for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {\n if (tasks2[taskIndex].section == currentSection2) {\n taskInSectionCount = taskInSectionCount + 1;\n } else {\n break;\n }\n }\n const section = {\n x: i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN,\n y: 50,\n text: task.section,\n fill,\n num,\n colour,\n taskCount: taskInSectionCount\n };\n svgDraw.drawSection(diagram2, section, conf2);\n lastSection = task.section;\n sectionNumber++;\n }\n const taskActors = task.people.reduce((acc, actorName) => {\n if (actors[actorName]) {\n acc[actorName] = actors[actorName];\n }\n return acc;\n }, {});\n task.x = i * conf2.taskMargin + i * conf2.width + LEFT_MARGIN;\n task.y = taskPos;\n task.width = conf2.diagramMarginX;\n task.height = conf2.diagramMarginY;\n task.colour = colour;\n task.fill = fill;\n task.num = num;\n task.actors = taskActors;\n svgDraw.drawTask(diagram2, task, conf2);\n bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);\n }\n};\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: (cnf) => {\n renderer.setConf(cnf.journey);\n db.clear();\n }\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": ["clear", "drawRect", "drawText", "drawBackgroundRect"] -} diff --git a/.vuepress/.cache/deps/mermaid.js b/.vuepress/.cache/deps/mermaid.js deleted file mode 100644 index 2b71491eb..000000000 --- a/.vuepress/.cache/deps/mermaid.js +++ /dev/null @@ -1,16 +0,0 @@ -import { - mermaid, - require_dayjs_min, - require_dist -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/mermaid.core.mjs -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -export { - mermaid as default -}; -//# sourceMappingURL=mermaid.js.map diff --git a/.vuepress/.cache/deps/mermaid.js.map b/.vuepress/.cache/deps/mermaid.js.map deleted file mode 100644 index 4e0a13ad6..000000000 --- a/.vuepress/.cache/deps/mermaid.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/mermaid.core.mjs"], - "sourcesContent": ["import \"ts-dedent\";\nimport { L } from \"./mermaid-934d9bea.js\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"d3\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nexport {\n L as default\n};\n"], - "mappings": ";;;;;;;;;;AAEA,mBAAO;AACP,0BAAO;", - "names": [] -} diff --git a/.vuepress/.cache/deps/mindmap-definition-617cf8dd-Z54F4QIY.js b/.vuepress/.cache/deps/mindmap-definition-617cf8dd-Z54F4QIY.js deleted file mode 100644 index 1494c8bde..000000000 --- a/.vuepress/.cache/deps/mindmap-definition-617cf8dd-Z54F4QIY.js +++ /dev/null @@ -1,32463 +0,0 @@ -import { - createText -} from "./chunk-TQDBUXIK.js"; -import { - darken_default, - getConfig, - is_dark_default, - lighten_default, - log$1, - require_dayjs_min, - require_dist, - sanitizeText$2, - select_default, - setupGraphViewbox$1 -} from "./chunk-MILIJ3F3.js"; -import { - __commonJS, - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/cytoscape/dist/cytoscape.umd.js -var require_cytoscape_umd = __commonJS({ - "node_modules/cytoscape/dist/cytoscape.umd.js"(exports, module) { - (function(global2, factory) { - typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.cytoscape = factory()); - })(exports, function() { - "use strict"; - function _typeof(obj) { - "@babel/helpers - typeof"; - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) { - return typeof obj2; - } : function(obj2) { - return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; - }, _typeof(obj); - } - function _classCallCheck(instance2, Constructor) { - if (!(instance2 instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - function _defineProperties(target, props) { - for (var i2 = 0; i2 < props.length; i2++) { - var descriptor = props[i2]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) - _defineProperties(Constructor.prototype, protoProps); - if (staticProps) - _defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; - } - function _defineProperty$1(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; - } - function _slicedToArray(arr, i2) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i2) || _unsupportedIterableToArray(arr, i2) || _nonIterableRest(); - } - function _arrayWithHoles(arr) { - if (Array.isArray(arr)) - return arr; - } - function _iterableToArrayLimit(arr, i2) { - var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; - if (_i == null) - return; - var _arr = []; - var _n = true; - var _d = false; - var _s, _e; - try { - for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i2 && _arr.length === i2) - break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) - _i["return"](); - } finally { - if (_d) - throw _e; - } - } - return _arr; - } - function _unsupportedIterableToArray(o, minLen) { - if (!o) - return; - if (typeof o === "string") - return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) - n = o.constructor.name; - if (n === "Map" || n === "Set") - return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) - return _arrayLikeToArray(o, minLen); - } - function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) - len = arr.length; - for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) - arr2[i2] = arr[i2]; - return arr2; - } - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var _window = typeof window === "undefined" ? null : window; - var navigator = _window ? _window.navigator : null; - _window ? _window.document : null; - var typeofstr = _typeof(""); - var typeofobj = _typeof({}); - var typeoffn = _typeof(function() { - }); - var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement); - var instanceStr = function instanceStr2(obj) { - return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null; - }; - var string = function string2(obj) { - return obj != null && _typeof(obj) == typeofstr; - }; - var fn$6 = function fn2(obj) { - return obj != null && _typeof(obj) === typeoffn; - }; - var array = function array2(obj) { - return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array); - }; - var plainObject = function plainObject2(obj) { - return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object; - }; - var object = function object2(obj) { - return obj != null && _typeof(obj) === typeofobj; - }; - var number$1 = function number2(obj) { - return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj); - }; - var integer = function integer2(obj) { - return number$1(obj) && Math.floor(obj) === obj; - }; - var htmlElement = function htmlElement2(obj) { - if ("undefined" === typeofhtmlele) { - return void 0; - } else { - return null != obj && obj instanceof HTMLElement; - } - }; - var elementOrCollection = function elementOrCollection2(obj) { - return element(obj) || collection(obj); - }; - var element = function element2(obj) { - return instanceStr(obj) === "collection" && obj._private.single; - }; - var collection = function collection2(obj) { - return instanceStr(obj) === "collection" && !obj._private.single; - }; - var core = function core2(obj) { - return instanceStr(obj) === "core"; - }; - var stylesheet = function stylesheet2(obj) { - return instanceStr(obj) === "stylesheet"; - }; - var event = function event2(obj) { - return instanceStr(obj) === "event"; - }; - var emptyString = function emptyString2(obj) { - if (obj === void 0 || obj === null) { - return true; - } else if (obj === "" || obj.match(/^\s+$/)) { - return true; - } - return false; - }; - var domElement = function domElement2(obj) { - if (typeof HTMLElement === "undefined") { - return false; - } else { - return obj instanceof HTMLElement; - } - }; - var boundingBox = function boundingBox2(obj) { - return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2); - }; - var promise = function promise2(obj) { - return object(obj) && fn$6(obj.then); - }; - var ms = function ms2() { - return navigator && navigator.userAgent.match(/msie|trident|edge/i); - }; - var memoize$1 = function memoize2(fn2, keyFn) { - if (!keyFn) { - keyFn = function keyFn2() { - if (arguments.length === 1) { - return arguments[0]; - } else if (arguments.length === 0) { - return "undefined"; - } - var args = []; - for (var i2 = 0; i2 < arguments.length; i2++) { - args.push(arguments[i2]); - } - return args.join("$"); - }; - } - var memoizedFn = function memoizedFn2() { - var self2 = this; - var args = arguments; - var ret; - var k = keyFn.apply(self2, args); - var cache2 = memoizedFn2.cache; - if (!(ret = cache2[k])) { - ret = cache2[k] = fn2.apply(self2, args); - } - return ret; - }; - memoizedFn.cache = {}; - return memoizedFn; - }; - var camel2dash = memoize$1(function(str) { - return str.replace(/([A-Z])/g, function(v) { - return "-" + v.toLowerCase(); - }); - }); - var dash2camel = memoize$1(function(str) { - return str.replace(/(-\w)/g, function(v) { - return v[1].toUpperCase(); - }); - }); - var prependCamel = memoize$1(function(prefix, str) { - return prefix + str[0].toUpperCase() + str.substring(1); - }, function(prefix, str) { - return prefix + "$" + str; - }); - var capitalize = function capitalize2(str) { - if (emptyString(str)) { - return str; - } - return str.charAt(0).toUpperCase() + str.substring(1); - }; - var number = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))"; - var rgba = "rgb[a]?\\((" + number + "[%]?)\\s*,\\s*(" + number + "[%]?)\\s*,\\s*(" + number + "[%]?)(?:\\s*,\\s*(" + number + "))?\\)"; - var rgbaNoBackRefs = "rgb[a]?\\((?:" + number + "[%]?)\\s*,\\s*(?:" + number + "[%]?)\\s*,\\s*(?:" + number + "[%]?)(?:\\s*,\\s*(?:" + number + "))?\\)"; - var hsla = "hsl[a]?\\((" + number + ")\\s*,\\s*(" + number + "[%])\\s*,\\s*(" + number + "[%])(?:\\s*,\\s*(" + number + "))?\\)"; - var hslaNoBackRefs = "hsl[a]?\\((?:" + number + ")\\s*,\\s*(?:" + number + "[%])\\s*,\\s*(?:" + number + "[%])(?:\\s*,\\s*(?:" + number + "))?\\)"; - var hex3 = "\\#[0-9a-fA-F]{3}"; - var hex6 = "\\#[0-9a-fA-F]{6}"; - var ascending = function ascending2(a, b) { - if (a < b) { - return -1; - } else if (a > b) { - return 1; - } else { - return 0; - } - }; - var descending = function descending2(a, b) { - return -1 * ascending(a, b); - }; - var extend = Object.assign != null ? Object.assign.bind(Object) : function(tgt) { - var args = arguments; - for (var i2 = 1; i2 < args.length; i2++) { - var obj = args[i2]; - if (obj == null) { - continue; - } - var keys = Object.keys(obj); - for (var j = 0; j < keys.length; j++) { - var k = keys[j]; - tgt[k] = obj[k]; - } - } - return tgt; - }; - var hex2tuple = function hex2tuple2(hex) { - if (!(hex.length === 4 || hex.length === 7) || hex[0] !== "#") { - return; - } - var shortHex = hex.length === 4; - var r, g, b; - var base = 16; - if (shortHex) { - r = parseInt(hex[1] + hex[1], base); - g = parseInt(hex[2] + hex[2], base); - b = parseInt(hex[3] + hex[3], base); - } else { - r = parseInt(hex[1] + hex[2], base); - g = parseInt(hex[3] + hex[4], base); - b = parseInt(hex[5] + hex[6], base); - } - return [r, g, b]; - }; - var hsl2tuple = function hsl2tuple2(hsl) { - var ret; - var h, s, l, a, r, g, b; - function hue2rgb(p3, q2, t) { - if (t < 0) - t += 1; - if (t > 1) - t -= 1; - if (t < 1 / 6) - return p3 + (q2 - p3) * 6 * t; - if (t < 1 / 2) - return q2; - if (t < 2 / 3) - return p3 + (q2 - p3) * (2 / 3 - t) * 6; - return p3; - } - var m = new RegExp("^" + hsla + "$").exec(hsl); - if (m) { - h = parseInt(m[1]); - if (h < 0) { - h = (360 - -1 * h % 360) % 360; - } else if (h > 360) { - h = h % 360; - } - h /= 360; - s = parseFloat(m[2]); - if (s < 0 || s > 100) { - return; - } - s = s / 100; - l = parseFloat(m[3]); - if (l < 0 || l > 100) { - return; - } - l = l / 100; - a = m[4]; - if (a !== void 0) { - a = parseFloat(a); - if (a < 0 || a > 1) { - return; - } - } - if (s === 0) { - r = g = b = Math.round(l * 255); - } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p2 = 2 * l - q; - r = Math.round(255 * hue2rgb(p2, q, h + 1 / 3)); - g = Math.round(255 * hue2rgb(p2, q, h)); - b = Math.round(255 * hue2rgb(p2, q, h - 1 / 3)); - } - ret = [r, g, b, a]; - } - return ret; - }; - var rgb2tuple = function rgb2tuple2(rgb) { - var ret; - var m = new RegExp("^" + rgba + "$").exec(rgb); - if (m) { - ret = []; - var isPct = []; - for (var i2 = 1; i2 <= 3; i2++) { - var channel = m[i2]; - if (channel[channel.length - 1] === "%") { - isPct[i2] = true; - } - channel = parseFloat(channel); - if (isPct[i2]) { - channel = channel / 100 * 255; - } - if (channel < 0 || channel > 255) { - return; - } - ret.push(Math.floor(channel)); - } - var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3]; - var allArePct = isPct[1] && isPct[2] && isPct[3]; - if (atLeastOneIsPct && !allArePct) { - return; - } - var alpha = m[4]; - if (alpha !== void 0) { - alpha = parseFloat(alpha); - if (alpha < 0 || alpha > 1) { - return; - } - ret.push(alpha); - } - } - return ret; - }; - var colorname2tuple = function colorname2tuple2(color) { - return colors[color.toLowerCase()]; - }; - var color2tuple = function color2tuple2(color) { - return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color); - }; - var colors = { - // special colour names - transparent: [0, 0, 0, 0], - // NB alpha === 0 - // regular colours - aliceblue: [240, 248, 255], - antiquewhite: [250, 235, 215], - aqua: [0, 255, 255], - aquamarine: [127, 255, 212], - azure: [240, 255, 255], - beige: [245, 245, 220], - bisque: [255, 228, 196], - black: [0, 0, 0], - blanchedalmond: [255, 235, 205], - blue: [0, 0, 255], - blueviolet: [138, 43, 226], - brown: [165, 42, 42], - burlywood: [222, 184, 135], - cadetblue: [95, 158, 160], - chartreuse: [127, 255, 0], - chocolate: [210, 105, 30], - coral: [255, 127, 80], - cornflowerblue: [100, 149, 237], - cornsilk: [255, 248, 220], - crimson: [220, 20, 60], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgoldenrod: [184, 134, 11], - darkgray: [169, 169, 169], - darkgreen: [0, 100, 0], - darkgrey: [169, 169, 169], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkseagreen: [143, 188, 143], - darkslateblue: [72, 61, 139], - darkslategray: [47, 79, 79], - darkslategrey: [47, 79, 79], - darkturquoise: [0, 206, 209], - darkviolet: [148, 0, 211], - deeppink: [255, 20, 147], - deepskyblue: [0, 191, 255], - dimgray: [105, 105, 105], - dimgrey: [105, 105, 105], - dodgerblue: [30, 144, 255], - firebrick: [178, 34, 34], - floralwhite: [255, 250, 240], - forestgreen: [34, 139, 34], - fuchsia: [255, 0, 255], - gainsboro: [220, 220, 220], - ghostwhite: [248, 248, 255], - gold: [255, 215, 0], - goldenrod: [218, 165, 32], - gray: [128, 128, 128], - grey: [128, 128, 128], - green: [0, 128, 0], - greenyellow: [173, 255, 47], - honeydew: [240, 255, 240], - hotpink: [255, 105, 180], - indianred: [205, 92, 92], - indigo: [75, 0, 130], - ivory: [255, 255, 240], - khaki: [240, 230, 140], - lavender: [230, 230, 250], - lavenderblush: [255, 240, 245], - lawngreen: [124, 252, 0], - lemonchiffon: [255, 250, 205], - lightblue: [173, 216, 230], - lightcoral: [240, 128, 128], - lightcyan: [224, 255, 255], - lightgoldenrodyellow: [250, 250, 210], - lightgray: [211, 211, 211], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightsalmon: [255, 160, 122], - lightseagreen: [32, 178, 170], - lightskyblue: [135, 206, 250], - lightslategray: [119, 136, 153], - lightslategrey: [119, 136, 153], - lightsteelblue: [176, 196, 222], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - limegreen: [50, 205, 50], - linen: [250, 240, 230], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - mediumaquamarine: [102, 205, 170], - mediumblue: [0, 0, 205], - mediumorchid: [186, 85, 211], - mediumpurple: [147, 112, 219], - mediumseagreen: [60, 179, 113], - mediumslateblue: [123, 104, 238], - mediumspringgreen: [0, 250, 154], - mediumturquoise: [72, 209, 204], - mediumvioletred: [199, 21, 133], - midnightblue: [25, 25, 112], - mintcream: [245, 255, 250], - mistyrose: [255, 228, 225], - moccasin: [255, 228, 181], - navajowhite: [255, 222, 173], - navy: [0, 0, 128], - oldlace: [253, 245, 230], - olive: [128, 128, 0], - olivedrab: [107, 142, 35], - orange: [255, 165, 0], - orangered: [255, 69, 0], - orchid: [218, 112, 214], - palegoldenrod: [238, 232, 170], - palegreen: [152, 251, 152], - paleturquoise: [175, 238, 238], - palevioletred: [219, 112, 147], - papayawhip: [255, 239, 213], - peachpuff: [255, 218, 185], - peru: [205, 133, 63], - pink: [255, 192, 203], - plum: [221, 160, 221], - powderblue: [176, 224, 230], - purple: [128, 0, 128], - red: [255, 0, 0], - rosybrown: [188, 143, 143], - royalblue: [65, 105, 225], - saddlebrown: [139, 69, 19], - salmon: [250, 128, 114], - sandybrown: [244, 164, 96], - seagreen: [46, 139, 87], - seashell: [255, 245, 238], - sienna: [160, 82, 45], - silver: [192, 192, 192], - skyblue: [135, 206, 235], - slateblue: [106, 90, 205], - slategray: [112, 128, 144], - slategrey: [112, 128, 144], - snow: [255, 250, 250], - springgreen: [0, 255, 127], - steelblue: [70, 130, 180], - tan: [210, 180, 140], - teal: [0, 128, 128], - thistle: [216, 191, 216], - tomato: [255, 99, 71], - turquoise: [64, 224, 208], - violet: [238, 130, 238], - wheat: [245, 222, 179], - white: [255, 255, 255], - whitesmoke: [245, 245, 245], - yellow: [255, 255, 0], - yellowgreen: [154, 205, 50] - }; - var setMap = function setMap2(options) { - var obj = options.map; - var keys = options.keys; - var l = keys.length; - for (var i2 = 0; i2 < l; i2++) { - var key = keys[i2]; - if (plainObject(key)) { - throw Error("Tried to set map with object key"); - } - if (i2 < keys.length - 1) { - if (obj[key] == null) { - obj[key] = {}; - } - obj = obj[key]; - } else { - obj[key] = options.value; - } - } - }; - var getMap = function getMap2(options) { - var obj = options.map; - var keys = options.keys; - var l = keys.length; - for (var i2 = 0; i2 < l; i2++) { - var key = keys[i2]; - if (plainObject(key)) { - throw Error("Tried to get map with object key"); - } - obj = obj[key]; - if (obj == null) { - return obj; - } - } - return obj; - }; - function isObject(value) { - var type = typeof value; - return value != null && (type == "object" || type == "function"); - } - var isObject_1 = isObject; - var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; - function createCommonjsModule(fn2, module2) { - return module2 = { exports: {} }, fn2(module2, module2.exports), module2.exports; - } - var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; - var _freeGlobal = freeGlobal; - var freeSelf = typeof self == "object" && self && self.Object === Object && self; - var root = _freeGlobal || freeSelf || Function("return this")(); - var _root = root; - var now = function() { - return _root.Date.now(); - }; - var now_1 = now; - var reWhitespace = /\s/; - function trimmedEndIndex(string2) { - var index = string2.length; - while (index-- && reWhitespace.test(string2.charAt(index))) { - } - return index; - } - var _trimmedEndIndex = trimmedEndIndex; - var reTrimStart = /^\s+/; - function baseTrim(string2) { - return string2 ? string2.slice(0, _trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2; - } - var _baseTrim = baseTrim; - var Symbol$1 = _root.Symbol; - var _Symbol = Symbol$1; - var objectProto$5 = Object.prototype; - var hasOwnProperty$4 = objectProto$5.hasOwnProperty; - var nativeObjectToString$1 = objectProto$5.toString; - var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : void 0; - function getRawTag(value) { - var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag = value[symToStringTag$1]; - try { - value[symToStringTag$1] = void 0; - var unmasked = true; - } catch (e) { - } - var result = nativeObjectToString$1.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag$1] = tag; - } else { - delete value[symToStringTag$1]; - } - } - return result; - } - var _getRawTag = getRawTag; - var objectProto$4 = Object.prototype; - var nativeObjectToString = objectProto$4.toString; - function objectToString(value) { - return nativeObjectToString.call(value); - } - var _objectToString = objectToString; - var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; - var symToStringTag = _Symbol ? _Symbol.toStringTag : void 0; - function baseGetTag(value) { - if (value == null) { - return value === void 0 ? undefinedTag : nullTag; - } - return symToStringTag && symToStringTag in Object(value) ? _getRawTag(value) : _objectToString(value); - } - var _baseGetTag = baseGetTag; - function isObjectLike(value) { - return value != null && typeof value == "object"; - } - var isObjectLike_1 = isObjectLike; - var symbolTag = "[object Symbol]"; - function isSymbol(value) { - return typeof value == "symbol" || isObjectLike_1(value) && _baseGetTag(value) == symbolTag; - } - var isSymbol_1 = isSymbol; - var NAN = 0 / 0; - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - var reIsBinary = /^0b[01]+$/i; - var reIsOctal = /^0o[0-7]+$/i; - var freeParseInt = parseInt; - function toNumber(value) { - if (typeof value == "number") { - return value; - } - if (isSymbol_1(value)) { - return NAN; - } - if (isObject_1(value)) { - var other = typeof value.valueOf == "function" ? value.valueOf() : value; - value = isObject_1(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; - } - var toNumber_1 = toNumber; - var FUNC_ERROR_TEXT$1 = "Expected a function"; - var nativeMax = Math.max, nativeMin = Math.min; - function debounce(func, wait, options) { - var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; - if (typeof func != "function") { - throw new TypeError(FUNC_ERROR_TEXT$1); - } - wait = toNumber_1(wait) || 0; - if (isObject_1(options)) { - leading = !!options.leading; - maxing = "maxWait" in options; - maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait; - trailing = "trailing" in options ? !!options.trailing : trailing; - } - function invokeFunc(time) { - var args = lastArgs, thisArg = lastThis; - lastArgs = lastThis = void 0; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - function leadingEdge(time) { - lastInvokeTime = time; - timerId = setTimeout(timerExpired, wait); - return leading ? invokeFunc(time) : result; - } - 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 === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time = now_1(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - timerId = setTimeout(timerExpired, remainingWait(time)); - } - function trailingEdge(time) { - timerId = void 0; - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = void 0; - return result; - } - function cancel() { - if (timerId !== void 0) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = void 0; - } - function flush() { - return timerId === void 0 ? result : trailingEdge(now_1()); - } - function debounced() { - var time = now_1(), isInvoking = shouldInvoke(time); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - if (isInvoking) { - if (timerId === void 0) { - return leadingEdge(lastCallTime); - } - if (maxing) { - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === void 0) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - var debounce_1 = debounce; - var performance = _window ? _window.performance : null; - var pnow = performance && performance.now ? function() { - return performance.now(); - } : function() { - return Date.now(); - }; - var raf = function() { - if (_window) { - if (_window.requestAnimationFrame) { - return function(fn2) { - _window.requestAnimationFrame(fn2); - }; - } else if (_window.mozRequestAnimationFrame) { - return function(fn2) { - _window.mozRequestAnimationFrame(fn2); - }; - } else if (_window.webkitRequestAnimationFrame) { - return function(fn2) { - _window.webkitRequestAnimationFrame(fn2); - }; - } else if (_window.msRequestAnimationFrame) { - return function(fn2) { - _window.msRequestAnimationFrame(fn2); - }; - } - } - return function(fn2) { - if (fn2) { - setTimeout(function() { - fn2(pnow()); - }, 1e3 / 60); - } - }; - }(); - var requestAnimationFrame2 = function requestAnimationFrame3(fn2) { - return raf(fn2); - }; - var performanceNow = pnow; - var DEFAULT_HASH_SEED = 9261; - var K = 65599; - var DEFAULT_HASH_SEED_ALT = 5381; - var hashIterableInts = function hashIterableInts2(iterator) { - var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED; - var hash = seed; - var entry; - for (; ; ) { - entry = iterator.next(); - if (entry.done) { - break; - } - hash = hash * K + entry.value | 0; - } - return hash; - }; - var hashInt = function hashInt2(num) { - var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED; - return seed * K + num | 0; - }; - var hashIntAlt = function hashIntAlt2(num) { - var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED_ALT; - return (seed << 5) + seed + num | 0; - }; - var combineHashes = function combineHashes2(hash1, hash2) { - return hash1 * 2097152 + hash2; - }; - var combineHashesArray = function combineHashesArray2(hashes) { - return hashes[0] * 2097152 + hashes[1]; - }; - var hashArrays = function hashArrays2(hashes1, hashes2) { - return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])]; - }; - var hashIntsArray = function hashIntsArray2(ints, seed) { - var entry = { - value: 0, - done: false - }; - var i2 = 0; - var length = ints.length; - var iterator = { - next: function next2() { - if (i2 < length) { - entry.value = ints[i2++]; - } else { - entry.done = true; - } - return entry; - } - }; - return hashIterableInts(iterator, seed); - }; - var hashString = function hashString2(str, seed) { - var entry = { - value: 0, - done: false - }; - var i2 = 0; - var length = str.length; - var iterator = { - next: function next2() { - if (i2 < length) { - entry.value = str.charCodeAt(i2++); - } else { - entry.done = true; - } - return entry; - } - }; - return hashIterableInts(iterator, seed); - }; - var hashStrings = function hashStrings2() { - return hashStringsArray(arguments); - }; - var hashStringsArray = function hashStringsArray2(strs) { - var hash; - for (var i2 = 0; i2 < strs.length; i2++) { - var str = strs[i2]; - if (i2 === 0) { - hash = hashString(str); - } else { - hash = hashString(str, hash); - } - } - return hash; - }; - var warningsEnabled = true; - var warnSupported = console.warn != null; - var traceSupported = console.trace != null; - var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; - var trueify = function trueify2() { - return true; - }; - var falsify = function falsify2() { - return false; - }; - var zeroify = function zeroify2() { - return 0; - }; - var noop$1 = function noop2() { - }; - var error = function error2(msg) { - throw new Error(msg); - }; - var warnings = function warnings2(enabled) { - if (enabled !== void 0) { - warningsEnabled = !!enabled; - } else { - return warningsEnabled; - } - }; - var warn = function warn2(msg) { - if (!warnings()) { - return; - } - if (warnSupported) { - console.warn(msg); - } else { - console.log(msg); - if (traceSupported) { - console.trace(); - } - } - }; - var clone = function clone2(obj) { - return extend({}, obj); - }; - var copy = function copy2(obj) { - if (obj == null) { - return obj; - } - if (array(obj)) { - return obj.slice(); - } else if (plainObject(obj)) { - return clone(obj); - } else { - return obj; - } - }; - var copyArray$1 = function copyArray2(arr) { - return arr.slice(); - }; - var uuid = function uuid2(a, b) { - for ( - // loop :) - b = a = ""; - // b - result , a - numeric letiable - a++ < 36; - // - b += a * 51 & 52 ? ( - // return a random number or 4 - (a ^ 15 ? ( - // generate a random number from 0 to 15 - 8 ^ Math.random() * (a ^ 20 ? 16 : 4) - ) : 4).toString(16) - ) : "-" - ) { - } - return b; - }; - var _staticEmptyObject = {}; - var staticEmptyObject = function staticEmptyObject2() { - return _staticEmptyObject; - }; - var defaults$g = function defaults2(_defaults) { - var keys = Object.keys(_defaults); - return function(opts) { - var filledOpts = {}; - for (var i2 = 0; i2 < keys.length; i2++) { - var key = keys[i2]; - var optVal = opts == null ? void 0 : opts[key]; - filledOpts[key] = optVal === void 0 ? _defaults[key] : optVal; - } - return filledOpts; - }; - }; - var removeFromArray = function removeFromArray2(arr, ele, oneCopy) { - for (var i2 = arr.length - 1; i2 >= 0; i2--) { - if (arr[i2] === ele) { - arr.splice(i2, 1); - if (oneCopy) { - break; - } - } - } - }; - var clearArray = function clearArray2(arr) { - arr.splice(0, arr.length); - }; - var push = function push2(arr, otherArr) { - for (var i2 = 0; i2 < otherArr.length; i2++) { - var el = otherArr[i2]; - arr.push(el); - } - }; - var getPrefixedProperty = function getPrefixedProperty2(obj, propName, prefix) { - if (prefix) { - propName = prependCamel(prefix, propName); - } - return obj[propName]; - }; - var setPrefixedProperty = function setPrefixedProperty2(obj, propName, prefix, value) { - if (prefix) { - propName = prependCamel(prefix, propName); - } - obj[propName] = value; - }; - var ObjectMap = function() { - function ObjectMap2() { - _classCallCheck(this, ObjectMap2); - this._obj = {}; - } - _createClass(ObjectMap2, [{ - key: "set", - value: function set2(key, val) { - this._obj[key] = val; - return this; - } - }, { - key: "delete", - value: function _delete(key) { - this._obj[key] = void 0; - return this; - } - }, { - key: "clear", - value: function clear2() { - this._obj = {}; - } - }, { - key: "has", - value: function has(key) { - return this._obj[key] !== void 0; - } - }, { - key: "get", - value: function get2(key) { - return this._obj[key]; - } - }]); - return ObjectMap2; - }(); - var Map$2 = typeof Map !== "undefined" ? Map : ObjectMap; - var undef = "undefined"; - var ObjectSet = function() { - function ObjectSet2(arrayOrObjectSet) { - _classCallCheck(this, ObjectSet2); - this._obj = /* @__PURE__ */ Object.create(null); - this.size = 0; - if (arrayOrObjectSet != null) { - var arr; - if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) { - arr = arrayOrObjectSet.toArray(); - } else { - arr = arrayOrObjectSet; - } - for (var i2 = 0; i2 < arr.length; i2++) { - this.add(arr[i2]); - } - } - } - _createClass(ObjectSet2, [{ - key: "instanceString", - value: function instanceString() { - return "set"; - } - }, { - key: "add", - value: function add(val) { - var o = this._obj; - if (o[val] !== 1) { - o[val] = 1; - this.size++; - } - } - }, { - key: "delete", - value: function _delete(val) { - var o = this._obj; - if (o[val] === 1) { - o[val] = 0; - this.size--; - } - } - }, { - key: "clear", - value: function clear2() { - this._obj = /* @__PURE__ */ Object.create(null); - } - }, { - key: "has", - value: function has(val) { - return this._obj[val] === 1; - } - }, { - key: "toArray", - value: function toArray() { - var _this = this; - return Object.keys(this._obj).filter(function(key) { - return _this.has(key); - }); - } - }, { - key: "forEach", - value: function forEach(callback, thisArg) { - return this.toArray().forEach(callback, thisArg); - } - }]); - return ObjectSet2; - }(); - var Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet; - var Element = function Element2(cy, params) { - var restore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true; - if (cy === void 0 || params === void 0 || !core(cy)) { - error("An element must have a core reference and parameters set"); - return; - } - var group = params.group; - if (group == null) { - if (params.data && params.data.source != null && params.data.target != null) { - group = "edges"; - } else { - group = "nodes"; - } - } - if (group !== "nodes" && group !== "edges") { - error("An element must be of type `nodes` or `edges`; you specified `" + group + "`"); - return; - } - this.length = 1; - this[0] = this; - var _p = this._private = { - cy, - single: true, - // indicates this is an element - data: params.data || {}, - // data object - position: params.position || { - x: 0, - y: 0 - }, - // (x, y) position pair - autoWidth: void 0, - // width and height of nodes calculated by the renderer when set to special 'auto' value - autoHeight: void 0, - autoPadding: void 0, - compoundBoundsClean: false, - // whether the compound dimensions need to be recalculated the next time dimensions are read - listeners: [], - // array of bound listeners - group, - // string; 'nodes' or 'edges' - style: {}, - // properties as set by the style - rstyle: {}, - // properties for style sent from the renderer to the core - styleCxts: [], - // applied style contexts from the styler - styleKeys: {}, - // per-group keys of style property values - removed: true, - // whether it's inside the vis; true if removed (set true here since we call restore) - selected: params.selected ? true : false, - // whether it's selected - selectable: params.selectable === void 0 ? true : params.selectable ? true : false, - // whether it's selectable - locked: params.locked ? true : false, - // whether the element is locked (cannot be moved) - grabbed: false, - // whether the element is grabbed by the mouse; renderer sets this privately - grabbable: params.grabbable === void 0 ? true : params.grabbable ? true : false, - // whether the element can be grabbed - pannable: params.pannable === void 0 ? group === "edges" ? true : false : params.pannable ? true : false, - // whether the element has passthrough panning enabled - active: false, - // whether the element is active from user interaction - classes: new Set$1(), - // map ( className => true ) - animation: { - // object for currently-running animations - current: [], - queue: [] - }, - rscratch: {}, - // object in which the renderer can store information - scratch: params.scratch || {}, - // scratch objects - edges: [], - // array of connected edges - children: [], - // array of children - parent: params.parent && params.parent.isNode() ? params.parent : null, - // parent ref - traversalCache: {}, - // cache of output of traversal functions - backgrounding: false, - // whether background images are loading - bbCache: null, - // cache of the current bounding box - bbCacheShift: { - x: 0, - y: 0 - }, - // shift applied to cached bb to be applied on next get - bodyBounds: null, - // bounds cache of element body, w/o overlay - overlayBounds: null, - // bounds cache of element body, including overlay - labelBounds: { - // bounds cache of labels - all: null, - source: null, - target: null, - main: null - }, - arrowBounds: { - // bounds cache of edge arrows - source: null, - target: null, - "mid-source": null, - "mid-target": null - } - }; - if (_p.position.x == null) { - _p.position.x = 0; - } - if (_p.position.y == null) { - _p.position.y = 0; - } - if (params.renderedPosition) { - var rpos = params.renderedPosition; - var pan = cy.pan(); - var zoom = cy.zoom(); - _p.position = { - x: (rpos.x - pan.x) / zoom, - y: (rpos.y - pan.y) / zoom - }; - } - var classes = []; - if (array(params.classes)) { - classes = params.classes; - } else if (string(params.classes)) { - classes = params.classes.split(/\s+/); - } - for (var i2 = 0, l = classes.length; i2 < l; i2++) { - var cls = classes[i2]; - if (!cls || cls === "") { - continue; - } - _p.classes.add(cls); - } - this.createEmitter(); - var bypass = params.style || params.css; - if (bypass) { - warn("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."); - this.style(bypass); - } - if (restore === void 0 || restore) { - this.restore(); - } - }; - var defineSearch = function defineSearch2(params) { - params = { - bfs: params.bfs || !params.dfs, - dfs: params.dfs || !params.bfs - }; - return function searchFn(roots, fn2, directed) { - var options; - if (plainObject(roots) && !elementOrCollection(roots)) { - options = roots; - roots = options.roots || options.root; - fn2 = options.visit; - directed = options.directed; - } - directed = arguments.length === 2 && !fn$6(fn2) ? fn2 : directed; - fn2 = fn$6(fn2) ? fn2 : function() { - }; - var cy = this._private.cy; - var v = roots = string(roots) ? this.filter(roots) : roots; - var Q = []; - var connectedNodes = []; - var connectedBy = {}; - var id2depth = {}; - var V = {}; - var j = 0; - var found; - var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; - for (var i2 = 0; i2 < v.length; i2++) { - var vi = v[i2]; - var viId = vi.id(); - if (vi.isNode()) { - Q.unshift(vi); - if (params.bfs) { - V[viId] = true; - connectedNodes.push(vi); - } - id2depth[viId] = 0; - } - } - var _loop = function _loop2() { - var v2 = params.bfs ? Q.shift() : Q.pop(); - var vId = v2.id(); - if (params.dfs) { - if (V[vId]) { - return "continue"; - } - V[vId] = true; - connectedNodes.push(v2); - } - var depth = id2depth[vId]; - var prevEdge = connectedBy[vId]; - var src = prevEdge != null ? prevEdge.source() : null; - var tgt = prevEdge != null ? prevEdge.target() : null; - var prevNode = prevEdge == null ? void 0 : v2.same(src) ? tgt[0] : src[0]; - var ret = void 0; - ret = fn2(v2, prevEdge, prevNode, j++, depth); - if (ret === true) { - found = v2; - return "break"; - } - if (ret === false) { - return "break"; - } - var vwEdges = v2.connectedEdges().filter(function(e2) { - return (!directed || e2.source().same(v2)) && edges.has(e2); - }); - for (var _i2 = 0; _i2 < vwEdges.length; _i2++) { - var e = vwEdges[_i2]; - var w = e.connectedNodes().filter(function(n) { - return !n.same(v2) && nodes2.has(n); - }); - var wId = w.id(); - if (w.length !== 0 && !V[wId]) { - w = w[0]; - Q.push(w); - if (params.bfs) { - V[wId] = true; - connectedNodes.push(w); - } - connectedBy[wId] = e; - id2depth[wId] = id2depth[vId] + 1; - } - } - }; - while (Q.length !== 0) { - var _ret = _loop(); - if (_ret === "continue") - continue; - if (_ret === "break") - break; - } - var connectedEles = cy.collection(); - for (var _i = 0; _i < connectedNodes.length; _i++) { - var node = connectedNodes[_i]; - var edge = connectedBy[node.id()]; - if (edge != null) { - connectedEles.push(edge); - } - connectedEles.push(node); - } - return { - path: cy.collection(connectedEles), - found: cy.collection(found) - }; - }; - }; - var elesfn$v = { - breadthFirstSearch: defineSearch({ - bfs: true - }), - depthFirstSearch: defineSearch({ - dfs: true - }) - }; - elesfn$v.bfs = elesfn$v.breadthFirstSearch; - elesfn$v.dfs = elesfn$v.depthFirstSearch; - var heap$1 = createCommonjsModule(function(module2, exports2) { - (function() { - var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min2, nlargest, nsmallest, updateItem, _siftdown, _siftup; - floor = Math.floor, min2 = Math.min; - defaultCmp = function(x, y) { - if (x < y) { - return -1; - } - if (x > y) { - return 1; - } - return 0; - }; - insort = function(a, x, lo, hi, cmp) { - var mid; - if (lo == null) { - lo = 0; - } - if (cmp == null) { - cmp = defaultCmp; - } - if (lo < 0) { - throw new Error("lo must be non-negative"); - } - if (hi == null) { - hi = a.length; - } - while (lo < hi) { - mid = floor((lo + hi) / 2); - if (cmp(x, a[mid]) < 0) { - hi = mid; - } else { - lo = mid + 1; - } - } - return [].splice.apply(a, [lo, lo - lo].concat(x)), x; - }; - heappush = function(array2, item, cmp) { - if (cmp == null) { - cmp = defaultCmp; - } - array2.push(item); - return _siftdown(array2, 0, array2.length - 1, cmp); - }; - heappop = function(array2, cmp) { - var lastelt, returnitem; - if (cmp == null) { - cmp = defaultCmp; - } - lastelt = array2.pop(); - if (array2.length) { - returnitem = array2[0]; - array2[0] = lastelt; - _siftup(array2, 0, cmp); - } else { - returnitem = lastelt; - } - return returnitem; - }; - heapreplace = function(array2, item, cmp) { - var returnitem; - if (cmp == null) { - cmp = defaultCmp; - } - returnitem = array2[0]; - array2[0] = item; - _siftup(array2, 0, cmp); - return returnitem; - }; - heappushpop = function(array2, item, cmp) { - var _ref; - if (cmp == null) { - cmp = defaultCmp; - } - if (array2.length && cmp(array2[0], item) < 0) { - _ref = [array2[0], item], item = _ref[0], array2[0] = _ref[1]; - _siftup(array2, 0, cmp); - } - return item; - }; - heapify = function(array2, cmp) { - var i2, _i, _len, _ref1, _results, _results1; - if (cmp == null) { - cmp = defaultCmp; - } - _ref1 = (function() { - _results1 = []; - for (var _j = 0, _ref = floor(array2.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--) { - _results1.push(_j); - } - return _results1; - }).apply(this).reverse(); - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - i2 = _ref1[_i]; - _results.push(_siftup(array2, i2, cmp)); - } - return _results; - }; - updateItem = function(array2, item, cmp) { - var pos; - if (cmp == null) { - cmp = defaultCmp; - } - pos = array2.indexOf(item); - if (pos === -1) { - return; - } - _siftdown(array2, 0, pos, cmp); - return _siftup(array2, pos, cmp); - }; - nlargest = function(array2, n, cmp) { - var elem, result, _i, _len, _ref; - if (cmp == null) { - cmp = defaultCmp; - } - result = array2.slice(0, n); - if (!result.length) { - return result; - } - heapify(result, cmp); - _ref = array2.slice(n); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - elem = _ref[_i]; - heappushpop(result, elem, cmp); - } - return result.sort(cmp).reverse(); - }; - nsmallest = function(array2, n, cmp) { - var elem, los, result, _i, _j, _len, _ref, _ref1, _results; - if (cmp == null) { - cmp = defaultCmp; - } - if (n * 10 <= array2.length) { - result = array2.slice(0, n).sort(cmp); - if (!result.length) { - return result; - } - los = result[result.length - 1]; - _ref = array2.slice(n); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - elem = _ref[_i]; - if (cmp(elem, los) < 0) { - insort(result, elem, 0, null, cmp); - result.pop(); - los = result[result.length - 1]; - } - } - return result; - } - heapify(array2, cmp); - _results = []; - for (_j = 0, _ref1 = min2(n, array2.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) { - _results.push(heappop(array2, cmp)); - } - return _results; - }; - _siftdown = function(array2, startpos, pos, cmp) { - var newitem, parent, parentpos; - if (cmp == null) { - cmp = defaultCmp; - } - newitem = array2[pos]; - while (pos > startpos) { - parentpos = pos - 1 >> 1; - parent = array2[parentpos]; - if (cmp(newitem, parent) < 0) { - array2[pos] = parent; - pos = parentpos; - continue; - } - break; - } - return array2[pos] = newitem; - }; - _siftup = function(array2, pos, cmp) { - var childpos, endpos, newitem, rightpos, startpos; - if (cmp == null) { - cmp = defaultCmp; - } - endpos = array2.length; - startpos = pos; - newitem = array2[pos]; - childpos = 2 * pos + 1; - while (childpos < endpos) { - rightpos = childpos + 1; - if (rightpos < endpos && !(cmp(array2[childpos], array2[rightpos]) < 0)) { - childpos = rightpos; - } - array2[pos] = array2[childpos]; - pos = childpos; - childpos = 2 * pos + 1; - } - array2[pos] = newitem; - return _siftdown(array2, startpos, pos, cmp); - }; - Heap = function() { - Heap2.push = heappush; - Heap2.pop = heappop; - Heap2.replace = heapreplace; - Heap2.pushpop = heappushpop; - Heap2.heapify = heapify; - Heap2.updateItem = updateItem; - Heap2.nlargest = nlargest; - Heap2.nsmallest = nsmallest; - function Heap2(cmp) { - this.cmp = cmp != null ? cmp : defaultCmp; - this.nodes = []; - } - Heap2.prototype.push = function(x) { - return heappush(this.nodes, x, this.cmp); - }; - Heap2.prototype.pop = function() { - return heappop(this.nodes, this.cmp); - }; - Heap2.prototype.peek = function() { - return this.nodes[0]; - }; - Heap2.prototype.contains = function(x) { - return this.nodes.indexOf(x) !== -1; - }; - Heap2.prototype.replace = function(x) { - return heapreplace(this.nodes, x, this.cmp); - }; - Heap2.prototype.pushpop = function(x) { - return heappushpop(this.nodes, x, this.cmp); - }; - Heap2.prototype.heapify = function() { - return heapify(this.nodes, this.cmp); - }; - Heap2.prototype.updateItem = function(x) { - return updateItem(this.nodes, x, this.cmp); - }; - Heap2.prototype.clear = function() { - return this.nodes = []; - }; - Heap2.prototype.empty = function() { - return this.nodes.length === 0; - }; - Heap2.prototype.size = function() { - return this.nodes.length; - }; - Heap2.prototype.clone = function() { - var heap2; - heap2 = new Heap2(); - heap2.nodes = this.nodes.slice(0); - return heap2; - }; - Heap2.prototype.toArray = function() { - return this.nodes.slice(0); - }; - Heap2.prototype.insert = Heap2.prototype.push; - Heap2.prototype.top = Heap2.prototype.peek; - Heap2.prototype.front = Heap2.prototype.peek; - Heap2.prototype.has = Heap2.prototype.contains; - Heap2.prototype.copy = Heap2.prototype.clone; - return Heap2; - }(); - (function(root2, factory) { - { - return module2.exports = factory(); - } - })(this, function() { - return Heap; - }); - }).call(commonjsGlobal); - }); - var heap = heap$1; - var dijkstraDefaults = defaults$g({ - root: null, - weight: function weight(edge) { - return 1; - }, - directed: false - }); - var elesfn$u = { - dijkstra: function dijkstra(options) { - if (!plainObject(options)) { - var args = arguments; - options = { - root: args[0], - weight: args[1], - directed: args[2] - }; - } - var _dijkstraDefaults = dijkstraDefaults(options), root2 = _dijkstraDefaults.root, weight = _dijkstraDefaults.weight, directed = _dijkstraDefaults.directed; - var eles = this; - var weightFn = weight; - var source = string(root2) ? this.filter(root2)[0] : root2[0]; - var dist2 = {}; - var prev = {}; - var knownDist = {}; - var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; - edges.unmergeBy(function(ele) { - return ele.isLoop(); - }); - var getDist2 = function getDist3(node2) { - return dist2[node2.id()]; - }; - var setDist = function setDist2(node2, d) { - dist2[node2.id()] = d; - Q.updateItem(node2); - }; - var Q = new heap(function(a, b) { - return getDist2(a) - getDist2(b); - }); - for (var i2 = 0; i2 < nodes2.length; i2++) { - var node = nodes2[i2]; - dist2[node.id()] = node.same(source) ? 0 : Infinity; - Q.push(node); - } - var distBetween = function distBetween2(u2, v2) { - var uvs = (directed ? u2.edgesTo(v2) : u2.edgesWith(v2)).intersect(edges); - var smallestDistance = Infinity; - var smallestEdge; - for (var _i = 0; _i < uvs.length; _i++) { - var edge = uvs[_i]; - var _weight = weightFn(edge); - if (_weight < smallestDistance || !smallestEdge) { - smallestDistance = _weight; - smallestEdge = edge; - } - } - return { - edge: smallestEdge, - dist: smallestDistance - }; - }; - while (Q.size() > 0) { - var u = Q.pop(); - var smalletsDist = getDist2(u); - var uid = u.id(); - knownDist[uid] = smalletsDist; - if (smalletsDist === Infinity) { - continue; - } - var neighbors = u.neighborhood().intersect(nodes2); - for (var _i2 = 0; _i2 < neighbors.length; _i2++) { - var v = neighbors[_i2]; - var vid = v.id(); - var vDist = distBetween(u, v); - var alt = smalletsDist + vDist.dist; - if (alt < getDist2(v)) { - setDist(v, alt); - prev[vid] = { - node: u, - edge: vDist.edge - }; - } - } - } - return { - distanceTo: function distanceTo(node2) { - var target = string(node2) ? nodes2.filter(node2)[0] : node2[0]; - return knownDist[target.id()]; - }, - pathTo: function pathTo(node2) { - var target = string(node2) ? nodes2.filter(node2)[0] : node2[0]; - var S = []; - var u2 = target; - var uid2 = u2.id(); - if (target.length > 0) { - S.unshift(target); - while (prev[uid2]) { - var p2 = prev[uid2]; - S.unshift(p2.edge); - S.unshift(p2.node); - u2 = p2.node; - uid2 = u2.id(); - } - } - return eles.spawn(S); - } - }; - } - }; - var elesfn$t = { - // kruskal's algorithm (finds min spanning tree, assuming undirected graph) - // implemented from pseudocode from wikipedia - kruskal: function kruskal(weightFn) { - weightFn = weightFn || function(edge2) { - return 1; - }; - var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; - var numNodes = nodes2.length; - var forest = new Array(numNodes); - var A = nodes2; - var findSetIndex = function findSetIndex2(ele) { - for (var i3 = 0; i3 < forest.length; i3++) { - var eles = forest[i3]; - if (eles.has(ele)) { - return i3; - } - } - }; - for (var i2 = 0; i2 < numNodes; i2++) { - forest[i2] = this.spawn(nodes2[i2]); - } - var S = edges.sort(function(a, b) { - return weightFn(a) - weightFn(b); - }); - for (var _i = 0; _i < S.length; _i++) { - var edge = S[_i]; - var u = edge.source()[0]; - var v = edge.target()[0]; - var setUIndex = findSetIndex(u); - var setVIndex = findSetIndex(v); - var setU = forest[setUIndex]; - var setV = forest[setVIndex]; - if (setUIndex !== setVIndex) { - A.merge(edge); - setU.merge(setV); - forest.splice(setVIndex, 1); - } - } - return A; - } - }; - var aStarDefaults = defaults$g({ - root: null, - goal: null, - weight: function weight(edge) { - return 1; - }, - heuristic: function heuristic(edge) { - return 0; - }, - directed: false - }); - var elesfn$s = { - // Implemented from pseudocode from wikipedia - aStar: function aStar(options) { - var cy = this.cy(); - var _aStarDefaults = aStarDefaults(options), root2 = _aStarDefaults.root, goal = _aStarDefaults.goal, heuristic = _aStarDefaults.heuristic, directed = _aStarDefaults.directed, weight = _aStarDefaults.weight; - root2 = cy.collection(root2)[0]; - goal = cy.collection(goal)[0]; - var sid = root2.id(); - var tid = goal.id(); - var gScore = {}; - var fScore = {}; - var closedSetIds = {}; - var openSet = new heap(function(a, b) { - return fScore[a.id()] - fScore[b.id()]; - }); - var openSetIds = new Set$1(); - var cameFrom = {}; - var cameFromEdge = {}; - var addToOpenSet = function addToOpenSet2(ele, id) { - openSet.push(ele); - openSetIds.add(id); - }; - var cMin, cMinId; - var popFromOpenSet = function popFromOpenSet2() { - cMin = openSet.pop(); - cMinId = cMin.id(); - openSetIds["delete"](cMinId); - }; - var isInOpenSet = function isInOpenSet2(id) { - return openSetIds.has(id); - }; - addToOpenSet(root2, sid); - gScore[sid] = 0; - fScore[sid] = heuristic(root2); - var steps = 0; - while (openSet.size() > 0) { - popFromOpenSet(); - steps++; - if (cMinId === tid) { - var path = []; - var pathNode = goal; - var pathNodeId = tid; - var pathEdge = cameFromEdge[pathNodeId]; - for (; ; ) { - path.unshift(pathNode); - if (pathEdge != null) { - path.unshift(pathEdge); - } - pathNode = cameFrom[pathNodeId]; - if (pathNode == null) { - break; - } - pathNodeId = pathNode.id(); - pathEdge = cameFromEdge[pathNodeId]; - } - return { - found: true, - distance: gScore[cMinId], - path: this.spawn(path), - steps - }; - } - closedSetIds[cMinId] = true; - var vwEdges = cMin._private.edges; - for (var i2 = 0; i2 < vwEdges.length; i2++) { - var e = vwEdges[i2]; - if (!this.hasElementWithId(e.id())) { - continue; - } - if (directed && e.data("source") !== cMinId) { - continue; - } - var wSrc = e.source(); - var wTgt = e.target(); - var w = wSrc.id() !== cMinId ? wSrc : wTgt; - var wid = w.id(); - if (!this.hasElementWithId(wid)) { - continue; - } - if (closedSetIds[wid]) { - continue; - } - var tempScore = gScore[cMinId] + weight(e); - if (!isInOpenSet(wid)) { - gScore[wid] = tempScore; - fScore[wid] = tempScore + heuristic(w); - addToOpenSet(w, wid); - cameFrom[wid] = cMin; - cameFromEdge[wid] = e; - continue; - } - if (tempScore < gScore[wid]) { - gScore[wid] = tempScore; - fScore[wid] = tempScore + heuristic(w); - cameFrom[wid] = cMin; - cameFromEdge[wid] = e; - } - } - } - return { - found: false, - distance: void 0, - path: void 0, - steps - }; - } - }; - var floydWarshallDefaults = defaults$g({ - weight: function weight(edge) { - return 1; - }, - directed: false - }); - var elesfn$r = { - // Implemented from pseudocode from wikipedia - floydWarshall: function floydWarshall(options) { - var cy = this.cy(); - var _floydWarshallDefault = floydWarshallDefaults(options), weight = _floydWarshallDefault.weight, directed = _floydWarshallDefault.directed; - var weightFn = weight; - var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; - var N = nodes2.length; - var Nsq = N * N; - var indexOf = function indexOf2(node) { - return nodes2.indexOf(node); - }; - var atIndex = function atIndex2(i3) { - return nodes2[i3]; - }; - var dist2 = new Array(Nsq); - for (var n = 0; n < Nsq; n++) { - var j = n % N; - var i2 = (n - j) / N; - if (i2 === j) { - dist2[n] = 0; - } else { - dist2[n] = Infinity; - } - } - var next2 = new Array(Nsq); - var edgeNext = new Array(Nsq); - for (var _i = 0; _i < edges.length; _i++) { - var edge = edges[_i]; - var src = edge.source()[0]; - var tgt = edge.target()[0]; - if (src === tgt) { - continue; - } - var s = indexOf(src); - var t = indexOf(tgt); - var st = s * N + t; - var _weight = weightFn(edge); - if (dist2[st] > _weight) { - dist2[st] = _weight; - next2[st] = t; - edgeNext[st] = edge; - } - if (!directed) { - var ts = t * N + s; - if (!directed && dist2[ts] > _weight) { - dist2[ts] = _weight; - next2[ts] = s; - edgeNext[ts] = edge; - } - } - } - for (var k = 0; k < N; k++) { - for (var _i2 = 0; _i2 < N; _i2++) { - var ik = _i2 * N + k; - for (var _j = 0; _j < N; _j++) { - var ij = _i2 * N + _j; - var kj = k * N + _j; - if (dist2[ik] + dist2[kj] < dist2[ij]) { - dist2[ij] = dist2[ik] + dist2[kj]; - next2[ij] = next2[ik]; - } - } - } - } - var getArgEle = function getArgEle2(ele) { - return (string(ele) ? cy.filter(ele) : ele)[0]; - }; - var indexOfArgEle = function indexOfArgEle2(ele) { - return indexOf(getArgEle(ele)); - }; - var res = { - distance: function distance(from, to) { - var i3 = indexOfArgEle(from); - var j2 = indexOfArgEle(to); - return dist2[i3 * N + j2]; - }, - path: function path(from, to) { - var i3 = indexOfArgEle(from); - var j2 = indexOfArgEle(to); - var fromNode = atIndex(i3); - if (i3 === j2) { - return fromNode.collection(); - } - if (next2[i3 * N + j2] == null) { - return cy.collection(); - } - var path2 = cy.collection(); - var prev = i3; - var edge2; - path2.merge(fromNode); - while (i3 !== j2) { - prev = i3; - i3 = next2[i3 * N + j2]; - edge2 = edgeNext[prev * N + i3]; - path2.merge(edge2); - path2.merge(atIndex(i3)); - } - return path2; - } - }; - return res; - } - // floydWarshall - }; - var bellmanFordDefaults = defaults$g({ - weight: function weight(edge) { - return 1; - }, - directed: false, - root: null - }); - var elesfn$q = { - // Implemented from pseudocode from wikipedia - bellmanFord: function bellmanFord(options) { - var _this = this; - var _bellmanFordDefaults = bellmanFordDefaults(options), weight = _bellmanFordDefaults.weight, directed = _bellmanFordDefaults.directed, root2 = _bellmanFordDefaults.root; - var weightFn = weight; - var eles = this; - var cy = this.cy(); - var _this$byGroup = this.byGroup(), edges = _this$byGroup.edges, nodes2 = _this$byGroup.nodes; - var numNodes = nodes2.length; - var infoMap = new Map$2(); - var hasNegativeWeightCycle = false; - var negativeWeightCycles = []; - root2 = cy.collection(root2)[0]; - edges.unmergeBy(function(edge2) { - return edge2.isLoop(); - }); - var numEdges = edges.length; - var getInfo2 = function getInfo3(node2) { - var obj = infoMap.get(node2.id()); - if (!obj) { - obj = {}; - infoMap.set(node2.id(), obj); - } - return obj; - }; - var getNodeFromTo = function getNodeFromTo2(to) { - return (string(to) ? cy.$(to) : to)[0]; - }; - var distanceTo = function distanceTo2(to) { - return getInfo2(getNodeFromTo(to)).dist; - }; - var pathTo = function pathTo2(to) { - var thisStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : root2; - var end = getNodeFromTo(to); - var path = []; - var node2 = end; - for (; ; ) { - if (node2 == null) { - return _this.spawn(); - } - var _getInfo = getInfo2(node2), edge2 = _getInfo.edge, pred = _getInfo.pred; - path.unshift(node2[0]); - if (node2.same(thisStart) && path.length > 0) { - break; - } - if (edge2 != null) { - path.unshift(edge2); - } - node2 = pred; - } - return eles.spawn(path); - }; - for (var i2 = 0; i2 < numNodes; i2++) { - var node = nodes2[i2]; - var info = getInfo2(node); - if (node.same(root2)) { - info.dist = 0; - } else { - info.dist = Infinity; - } - info.pred = null; - info.edge = null; - } - var replacedEdge = false; - var checkForEdgeReplacement = function checkForEdgeReplacement2(node1, node2, edge2, info1, info2, weight2) { - var dist2 = info1.dist + weight2; - if (dist2 < info2.dist && !edge2.same(info1.edge)) { - info2.dist = dist2; - info2.pred = node1; - info2.edge = edge2; - replacedEdge = true; - } - }; - for (var _i = 1; _i < numNodes; _i++) { - replacedEdge = false; - for (var e = 0; e < numEdges; e++) { - var edge = edges[e]; - var src = edge.source(); - var tgt = edge.target(); - var _weight = weightFn(edge); - var srcInfo = getInfo2(src); - var tgtInfo = getInfo2(tgt); - checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight); - if (!directed) { - checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight); - } - } - if (!replacedEdge) { - break; - } - } - if (replacedEdge) { - var negativeWeightCycleIds = []; - for (var _e = 0; _e < numEdges; _e++) { - var _edge = edges[_e]; - var _src = _edge.source(); - var _tgt = _edge.target(); - var _weight2 = weightFn(_edge); - var srcDist = getInfo2(_src).dist; - var tgtDist = getInfo2(_tgt).dist; - if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) { - if (!hasNegativeWeightCycle) { - warn("Graph contains a negative weight cycle for Bellman-Ford"); - hasNegativeWeightCycle = true; - } - if (options.findNegativeWeightCycles !== false) { - var negativeNodes = []; - if (srcDist + _weight2 < tgtDist) { - negativeNodes.push(_src); - } - if (!directed && tgtDist + _weight2 < srcDist) { - negativeNodes.push(_tgt); - } - var numNegativeNodes = negativeNodes.length; - for (var n = 0; n < numNegativeNodes; n++) { - var start = negativeNodes[n]; - var cycle = [start]; - cycle.push(getInfo2(start).edge); - var _node = getInfo2(start).pred; - while (cycle.indexOf(_node) === -1) { - cycle.push(_node); - cycle.push(getInfo2(_node).edge); - _node = getInfo2(_node).pred; - } - cycle = cycle.slice(cycle.indexOf(_node)); - var smallestId = cycle[0].id(); - var smallestIndex = 0; - for (var c = 2; c < cycle.length; c += 2) { - if (cycle[c].id() < smallestId) { - smallestId = cycle[c].id(); - smallestIndex = c; - } - } - cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex)); - cycle.push(cycle[0]); - var cycleId = cycle.map(function(el) { - return el.id(); - }).join(","); - if (negativeWeightCycleIds.indexOf(cycleId) === -1) { - negativeWeightCycles.push(eles.spawn(cycle)); - negativeWeightCycleIds.push(cycleId); - } - } - } else { - break; - } - } - } - } - return { - distanceTo, - pathTo, - hasNegativeWeightCycle, - negativeWeightCycles - }; - } - // bellmanFord - }; - var sqrt2 = Math.sqrt(2); - var collapse = function collapse2(edgeIndex, nodeMap, remainingEdges) { - if (remainingEdges.length === 0) { - error("Karger-Stein must be run on a connected (sub)graph"); - } - var edgeInfo = remainingEdges[edgeIndex]; - var sourceIn = edgeInfo[1]; - var targetIn = edgeInfo[2]; - var partition1 = nodeMap[sourceIn]; - var partition2 = nodeMap[targetIn]; - var newEdges = remainingEdges; - for (var i2 = newEdges.length - 1; i2 >= 0; i2--) { - var edge = newEdges[i2]; - var src = edge[1]; - var tgt = edge[2]; - if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) { - newEdges.splice(i2, 1); - } - } - for (var _i = 0; _i < newEdges.length; _i++) { - var _edge = newEdges[_i]; - if (_edge[1] === partition2) { - newEdges[_i] = _edge.slice(); - newEdges[_i][1] = partition1; - } else if (_edge[2] === partition2) { - newEdges[_i] = _edge.slice(); - newEdges[_i][2] = partition1; - } - } - for (var _i2 = 0; _i2 < nodeMap.length; _i2++) { - if (nodeMap[_i2] === partition2) { - nodeMap[_i2] = partition1; - } - } - return newEdges; - }; - var contractUntil = function contractUntil2(metaNodeMap, remainingEdges, size, sizeLimit) { - while (size > sizeLimit) { - var edgeIndex = Math.floor(Math.random() * remainingEdges.length); - remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges); - size--; - } - return remainingEdges; - }; - var elesfn$p = { - // Computes the minimum cut of an undirected graph - // Returns the correct answer with high probability - kargerStein: function kargerStein() { - var _this = this; - var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; - edges.unmergeBy(function(edge) { - return edge.isLoop(); - }); - var numNodes = nodes2.length; - var numEdges = edges.length; - var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2)); - var stopSize = Math.floor(numNodes / sqrt2); - if (numNodes < 2) { - error("At least 2 nodes are required for Karger-Stein algorithm"); - return void 0; - } - var edgeIndexes = []; - for (var i2 = 0; i2 < numEdges; i2++) { - var e = edges[i2]; - edgeIndexes.push([i2, nodes2.indexOf(e.source()), nodes2.indexOf(e.target())]); - } - var minCutSize = Infinity; - var minCutEdgeIndexes = []; - var minCutNodeMap = new Array(numNodes); - var metaNodeMap = new Array(numNodes); - var metaNodeMap2 = new Array(numNodes); - var copyNodesMap = function copyNodesMap2(from, to) { - for (var _i3 = 0; _i3 < numNodes; _i3++) { - to[_i3] = from[_i3]; - } - }; - for (var iter = 0; iter <= numIter; iter++) { - for (var _i4 = 0; _i4 < numNodes; _i4++) { - metaNodeMap[_i4] = _i4; - } - var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize); - var edgesState2 = edgesState.slice(); - copyNodesMap(metaNodeMap, metaNodeMap2); - var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2); - var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2); - if (res1.length <= res2.length && res1.length < minCutSize) { - minCutSize = res1.length; - minCutEdgeIndexes = res1; - copyNodesMap(metaNodeMap, minCutNodeMap); - } else if (res2.length <= res1.length && res2.length < minCutSize) { - minCutSize = res2.length; - minCutEdgeIndexes = res2; - copyNodesMap(metaNodeMap2, minCutNodeMap); - } - } - var cut = this.spawn(minCutEdgeIndexes.map(function(e2) { - return edges[e2[0]]; - })); - var partition1 = this.spawn(); - var partition2 = this.spawn(); - var witnessNodePartition = minCutNodeMap[0]; - for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) { - var partitionId = minCutNodeMap[_i5]; - var node = nodes2[_i5]; - if (partitionId === witnessNodePartition) { - partition1.merge(node); - } else { - partition2.merge(node); - } - } - var constructComponent = function constructComponent2(subset) { - var component = _this.spawn(); - subset.forEach(function(node2) { - component.merge(node2); - node2.connectedEdges().forEach(function(edge) { - if (_this.contains(edge) && !cut.contains(edge)) { - component.merge(edge); - } - }); - }); - return component; - }; - var components = [constructComponent(partition1), constructComponent(partition2)]; - var ret = { - cut, - components, - // n.b. partitions are included to be compatible with the old api spec - // (could be removed in a future major version) - partition1, - partition2 - }; - return ret; - } - }; - var copyPosition = function copyPosition2(p2) { - return { - x: p2.x, - y: p2.y - }; - }; - var modelToRenderedPosition = function modelToRenderedPosition2(p2, zoom, pan) { - return { - x: p2.x * zoom + pan.x, - y: p2.y * zoom + pan.y - }; - }; - var renderedToModelPosition = function renderedToModelPosition2(p2, zoom, pan) { - return { - x: (p2.x - pan.x) / zoom, - y: (p2.y - pan.y) / zoom - }; - }; - var array2point = function array2point2(arr) { - return { - x: arr[0], - y: arr[1] - }; - }; - var min = function min2(arr) { - var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; - var min3 = Infinity; - for (var i2 = begin; i2 < end; i2++) { - var val = arr[i2]; - if (isFinite(val)) { - min3 = Math.min(val, min3); - } - } - return min3; - }; - var max = function max2(arr) { - var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; - var max3 = -Infinity; - for (var i2 = begin; i2 < end; i2++) { - var val = arr[i2]; - if (isFinite(val)) { - max3 = Math.max(val, max3); - } - } - return max3; - }; - var mean = function mean2(arr) { - var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; - var total = 0; - var n = 0; - for (var i2 = begin; i2 < end; i2++) { - var val = arr[i2]; - if (isFinite(val)) { - total += val; - n++; - } - } - return total / n; - }; - var median = function median2(arr) { - var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - var end = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length; - var copy2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; - var sort = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; - var includeHoles = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; - if (copy2) { - arr = arr.slice(begin, end); - } else { - if (end < arr.length) { - arr.splice(end, arr.length - end); - } - if (begin > 0) { - arr.splice(0, begin); - } - } - var off = 0; - for (var i2 = arr.length - 1; i2 >= 0; i2--) { - var v = arr[i2]; - if (includeHoles) { - if (!isFinite(v)) { - arr[i2] = -Infinity; - off++; - } - } else { - arr.splice(i2, 1); - } - } - if (sort) { - arr.sort(function(a, b) { - return a - b; - }); - } - var len = arr.length; - var mid = Math.floor(len / 2); - if (len % 2 !== 0) { - return arr[mid + 1 + off]; - } else { - return (arr[mid - 1 + off] + arr[mid + off]) / 2; - } - }; - var deg2rad = function deg2rad2(deg) { - return Math.PI * deg / 180; - }; - var getAngleFromDisp = function getAngleFromDisp2(dispX, dispY) { - return Math.atan2(dispY, dispX) - Math.PI / 2; - }; - var log2 = Math.log2 || function(n) { - return Math.log(n) / Math.log(2); - }; - var signum = function signum2(x) { - if (x > 0) { - return 1; - } else if (x < 0) { - return -1; - } else { - return 0; - } - }; - var dist = function dist2(p1, p2) { - return Math.sqrt(sqdist(p1, p2)); - }; - var sqdist = function sqdist2(p1, p2) { - var dx = p2.x - p1.x; - var dy = p2.y - p1.y; - return dx * dx + dy * dy; - }; - var inPlaceSumNormalize = function inPlaceSumNormalize2(v) { - var length = v.length; - var total = 0; - for (var i2 = 0; i2 < length; i2++) { - total += v[i2]; - } - for (var _i = 0; _i < length; _i++) { - v[_i] = v[_i] / total; - } - return v; - }; - var qbezierAt = function qbezierAt2(p0, p1, p2, t) { - return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2; - }; - var qbezierPtAt = function qbezierPtAt2(p0, p1, p2, t) { - return { - x: qbezierAt(p0.x, p1.x, p2.x, t), - y: qbezierAt(p0.y, p1.y, p2.y, t) - }; - }; - var lineAt = function lineAt2(p0, p1, t, d) { - var vec = { - x: p1.x - p0.x, - y: p1.y - p0.y - }; - var vecDist = dist(p0, p1); - var normVec = { - x: vec.x / vecDist, - y: vec.y / vecDist - }; - t = t == null ? 0 : t; - d = d != null ? d : t * vecDist; - return { - x: p0.x + normVec.x * d, - y: p0.y + normVec.y * d - }; - }; - var bound = function bound2(min2, val, max2) { - return Math.max(min2, Math.min(max2, val)); - }; - var makeBoundingBox = function makeBoundingBox2(bb) { - if (bb == null) { - return { - x1: Infinity, - y1: Infinity, - x2: -Infinity, - y2: -Infinity, - w: 0, - h: 0 - }; - } else if (bb.x1 != null && bb.y1 != null) { - if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) { - return { - x1: bb.x1, - y1: bb.y1, - x2: bb.x2, - y2: bb.y2, - w: bb.x2 - bb.x1, - h: bb.y2 - bb.y1 - }; - } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) { - return { - x1: bb.x1, - y1: bb.y1, - x2: bb.x1 + bb.w, - y2: bb.y1 + bb.h, - w: bb.w, - h: bb.h - }; - } - } - }; - var copyBoundingBox = function copyBoundingBox2(bb) { - return { - x1: bb.x1, - x2: bb.x2, - w: bb.w, - y1: bb.y1, - y2: bb.y2, - h: bb.h - }; - }; - var clearBoundingBox = function clearBoundingBox2(bb) { - bb.x1 = Infinity; - bb.y1 = Infinity; - bb.x2 = -Infinity; - bb.y2 = -Infinity; - bb.w = 0; - bb.h = 0; - }; - var shiftBoundingBox = function shiftBoundingBox2(bb, dx, dy) { - return { - x1: bb.x1 + dx, - x2: bb.x2 + dx, - y1: bb.y1 + dy, - y2: bb.y2 + dy, - w: bb.w, - h: bb.h - }; - }; - var updateBoundingBox = function updateBoundingBox2(bb1, bb2) { - bb1.x1 = Math.min(bb1.x1, bb2.x1); - bb1.x2 = Math.max(bb1.x2, bb2.x2); - bb1.w = bb1.x2 - bb1.x1; - bb1.y1 = Math.min(bb1.y1, bb2.y1); - bb1.y2 = Math.max(bb1.y2, bb2.y2); - bb1.h = bb1.y2 - bb1.y1; - }; - var expandBoundingBoxByPoint = function expandBoundingBoxByPoint2(bb, x, y) { - bb.x1 = Math.min(bb.x1, x); - bb.x2 = Math.max(bb.x2, x); - bb.w = bb.x2 - bb.x1; - bb.y1 = Math.min(bb.y1, y); - bb.y2 = Math.max(bb.y2, y); - bb.h = bb.y2 - bb.y1; - }; - var expandBoundingBox = function expandBoundingBox2(bb) { - var padding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - bb.x1 -= padding; - bb.x2 += padding; - bb.y1 -= padding; - bb.y2 += padding; - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - return bb; - }; - var expandBoundingBoxSides = function expandBoundingBoxSides2(bb) { - var padding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0]; - var top, right, bottom, left; - if (padding.length === 1) { - top = right = bottom = left = padding[0]; - } else if (padding.length === 2) { - top = bottom = padding[0]; - left = right = padding[1]; - } else if (padding.length === 4) { - var _padding = _slicedToArray(padding, 4); - top = _padding[0]; - right = _padding[1]; - bottom = _padding[2]; - left = _padding[3]; - } - bb.x1 -= left; - bb.x2 += right; - bb.y1 -= top; - bb.y2 += bottom; - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - return bb; - }; - var assignBoundingBox = function assignBoundingBox2(bb1, bb2) { - bb1.x1 = bb2.x1; - bb1.y1 = bb2.y1; - bb1.x2 = bb2.x2; - bb1.y2 = bb2.y2; - bb1.w = bb1.x2 - bb1.x1; - bb1.h = bb1.y2 - bb1.y1; - }; - var boundingBoxesIntersect = function boundingBoxesIntersect2(bb1, bb2) { - if (bb1.x1 > bb2.x2) { - return false; - } - if (bb2.x1 > bb1.x2) { - return false; - } - if (bb1.x2 < bb2.x1) { - return false; - } - if (bb2.x2 < bb1.x1) { - return false; - } - if (bb1.y2 < bb2.y1) { - return false; - } - if (bb2.y2 < bb1.y1) { - return false; - } - if (bb1.y1 > bb2.y2) { - return false; - } - if (bb2.y1 > bb1.y2) { - return false; - } - return true; - }; - var inBoundingBox = function inBoundingBox2(bb, x, y) { - return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2; - }; - var pointInBoundingBox = function pointInBoundingBox2(bb, pt) { - return inBoundingBox(bb, pt.x, pt.y); - }; - var boundingBoxInBoundingBox = function boundingBoxInBoundingBox2(bb1, bb2) { - return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2); - }; - var roundRectangleIntersectLine = function roundRectangleIntersectLine2(x, y, nodeX, nodeY, width, height, padding) { - var cornerRadius = getRoundRectangleRadius(width, height); - var halfWidth = width / 2; - var halfHeight = height / 2; - var straightLineIntersections; - { - var topStartX = nodeX - halfWidth + cornerRadius - padding; - var topStartY = nodeY - halfHeight - padding; - var topEndX = nodeX + halfWidth - cornerRadius + padding; - var topEndY = topStartY; - straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - { - var rightStartX = nodeX + halfWidth + padding; - var rightStartY = nodeY - halfHeight + cornerRadius - padding; - var rightEndX = rightStartX; - var rightEndY = nodeY + halfHeight - cornerRadius + padding; - straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false); - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - { - var bottomStartX = nodeX - halfWidth + cornerRadius - padding; - var bottomStartY = nodeY + halfHeight + padding; - var bottomEndX = nodeX + halfWidth - cornerRadius + padding; - var bottomEndY = bottomStartY; - straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false); - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - { - var leftStartX = nodeX - halfWidth - padding; - var leftStartY = nodeY - halfHeight + cornerRadius - padding; - var leftEndX = leftStartX; - var leftEndY = nodeY + halfHeight - cornerRadius + padding; - straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false); - if (straightLineIntersections.length > 0) { - return straightLineIntersections; - } - } - var arcIntersections; - { - var topLeftCenterX = nodeX - halfWidth + cornerRadius; - var topLeftCenterY = nodeY - halfHeight + cornerRadius; - arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding); - if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - { - var topRightCenterX = nodeX + halfWidth - cornerRadius; - var topRightCenterY = nodeY - halfHeight + cornerRadius; - arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding); - if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - { - var bottomRightCenterX = nodeX + halfWidth - cornerRadius; - var bottomRightCenterY = nodeY + halfHeight - cornerRadius; - arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding); - if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - { - var bottomLeftCenterX = nodeX - halfWidth + cornerRadius; - var bottomLeftCenterY = nodeY + halfHeight - cornerRadius; - arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding); - if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) { - return [arcIntersections[0], arcIntersections[1]]; - } - } - return []; - }; - var inLineVicinity = function inLineVicinity2(x, y, lx1, ly1, lx2, ly2, tolerance) { - var t = tolerance; - var x1 = Math.min(lx1, lx2); - var x2 = Math.max(lx1, lx2); - var y1 = Math.min(ly1, ly2); - var y2 = Math.max(ly1, ly2); - return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t; - }; - var inBezierVicinity = function inBezierVicinity2(x, y, x1, y1, x2, y2, x3, y3, tolerance) { - var bb = { - x1: Math.min(x1, x3, x2) - tolerance, - x2: Math.max(x1, x3, x2) + tolerance, - y1: Math.min(y1, y3, y2) - tolerance, - y2: Math.max(y1, y3, y2) + tolerance - }; - if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) { - return false; - } else { - return true; - } - }; - var solveQuadratic = function solveQuadratic2(a, b, c, val) { - c -= val; - var r = b * b - 4 * a * c; - if (r < 0) { - return []; - } - var sqrtR = Math.sqrt(r); - var denom = 2 * a; - var root1 = (-b + sqrtR) / denom; - var root2 = (-b - sqrtR) / denom; - return [root1, root2]; - }; - var solveCubic = function solveCubic2(a, b, c, d, result) { - var epsilon = 1e-5; - if (a === 0) { - a = epsilon; - } - b /= a; - c /= a; - d /= a; - var discriminant, q, r, dum1, s, t, term1, r13; - q = (3 * c - b * b) / 9; - r = -(27 * d) + b * (9 * c - 2 * (b * b)); - r /= 54; - discriminant = q * q * q + r * r; - result[1] = 0; - term1 = b / 3; - if (discriminant > 0) { - s = r + Math.sqrt(discriminant); - s = s < 0 ? -Math.pow(-s, 1 / 3) : Math.pow(s, 1 / 3); - t = r - Math.sqrt(discriminant); - t = t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3); - result[0] = -term1 + s + t; - term1 += (s + t) / 2; - result[4] = result[2] = -term1; - term1 = Math.sqrt(3) * (-t + s) / 2; - result[3] = term1; - result[5] = -term1; - return; - } - result[5] = result[3] = 0; - if (discriminant === 0) { - r13 = r < 0 ? -Math.pow(-r, 1 / 3) : Math.pow(r, 1 / 3); - result[0] = -term1 + 2 * r13; - result[4] = result[2] = -(r13 + term1); - return; - } - q = -q; - dum1 = q * q * q; - dum1 = Math.acos(r / Math.sqrt(dum1)); - r13 = 2 * Math.sqrt(q); - result[0] = -term1 + r13 * Math.cos(dum1 / 3); - result[2] = -term1 + r13 * Math.cos((dum1 + 2 * Math.PI) / 3); - result[4] = -term1 + r13 * Math.cos((dum1 + 4 * Math.PI) / 3); - return; - }; - var sqdistToQuadraticBezier = function sqdistToQuadraticBezier2(x, y, x1, y1, x2, y2, x3, y3) { - var a = 1 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3; - var b = 1 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3; - var c = 1 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y; - var d = 1 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y; - var roots = []; - solveCubic(a, b, c, d, roots); - var zeroThreshold = 1e-7; - var params = []; - for (var index = 0; index < 6; index += 2) { - if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1) { - params.push(roots[index]); - } - } - params.push(1); - params.push(0); - var minDistanceSquared = -1; - var curX, curY, distSquared; - for (var i2 = 0; i2 < params.length; i2++) { - curX = Math.pow(1 - params[i2], 2) * x1 + 2 * (1 - params[i2]) * params[i2] * x2 + params[i2] * params[i2] * x3; - curY = Math.pow(1 - params[i2], 2) * y1 + 2 * (1 - params[i2]) * params[i2] * y2 + params[i2] * params[i2] * y3; - distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2); - if (minDistanceSquared >= 0) { - if (distSquared < minDistanceSquared) { - minDistanceSquared = distSquared; - } - } else { - minDistanceSquared = distSquared; - } - } - return minDistanceSquared; - }; - var sqdistToFiniteLine = function sqdistToFiniteLine2(x, y, x1, y1, x2, y2) { - var offset = [x - x1, y - y1]; - var line = [x2 - x1, y2 - y1]; - var lineSq = line[0] * line[0] + line[1] * line[1]; - var hypSq = offset[0] * offset[0] + offset[1] * offset[1]; - var dotProduct = offset[0] * line[0] + offset[1] * line[1]; - var adjSq = dotProduct * dotProduct / lineSq; - if (dotProduct < 0) { - return hypSq; - } - if (adjSq > lineSq) { - return (x - x2) * (x - x2) + (y - y2) * (y - y2); - } - return hypSq - adjSq; - }; - var pointInsidePolygonPoints = function pointInsidePolygonPoints2(x, y, points) { - var x1, y1, x2, y2; - var y3; - var up = 0; - for (var i2 = 0; i2 < points.length / 2; i2++) { - x1 = points[i2 * 2]; - y1 = points[i2 * 2 + 1]; - if (i2 + 1 < points.length / 2) { - x2 = points[(i2 + 1) * 2]; - y2 = points[(i2 + 1) * 2 + 1]; - } else { - x2 = points[(i2 + 1 - points.length / 2) * 2]; - y2 = points[(i2 + 1 - points.length / 2) * 2 + 1]; - } - if (x1 == x && x2 == x) - ; - else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) { - y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1; - if (y3 > y) { - up++; - } - } else { - continue; - } - } - if (up % 2 === 0) { - return false; - } else { - return true; - } - }; - var pointInsidePolygon = function pointInsidePolygon2(x, y, basePoints, centerX, centerY, width, height, direction, padding) { - var transformedPoints = new Array(basePoints.length); - var angle; - if (direction[0] != null) { - angle = Math.atan(direction[1] / direction[0]); - if (direction[0] < 0) { - angle = angle + Math.PI / 2; - } else { - angle = -angle - Math.PI / 2; - } - } else { - angle = direction; - } - var cos2 = Math.cos(-angle); - var sin2 = Math.sin(-angle); - for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) { - transformedPoints[i2 * 2] = width / 2 * (basePoints[i2 * 2] * cos2 - basePoints[i2 * 2 + 1] * sin2); - transformedPoints[i2 * 2 + 1] = height / 2 * (basePoints[i2 * 2 + 1] * cos2 + basePoints[i2 * 2] * sin2); - transformedPoints[i2 * 2] += centerX; - transformedPoints[i2 * 2 + 1] += centerY; - } - var points; - if (padding > 0) { - var expandedLineSet = expandPolygon(transformedPoints, -padding); - points = joinLines(expandedLineSet); - } else { - points = transformedPoints; - } - return pointInsidePolygonPoints(x, y, points); - }; - var pointInsideRoundPolygon = function pointInsideRoundPolygon2(x, y, basePoints, centerX, centerY, width, height) { - var cutPolygonPoints = new Array(basePoints.length); - var halfW = width / 2; - var halfH = height / 2; - var cornerRadius = getRoundPolygonRadius(width, height); - var squaredCornerRadius = cornerRadius * cornerRadius; - for (var i2 = 0; i2 < basePoints.length / 4; i2++) { - var sourceUv = void 0, destUv = void 0; - if (i2 === 0) { - sourceUv = basePoints.length - 2; - } else { - sourceUv = i2 * 4 - 2; - } - destUv = i2 * 4 + 2; - var px = centerX + halfW * basePoints[i2 * 4]; - var py = centerY + halfH * basePoints[i2 * 4 + 1]; - var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; - var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); - var cp0x = px - offset * basePoints[sourceUv]; - var cp0y = py - offset * basePoints[sourceUv + 1]; - var cp1x = px + offset * basePoints[destUv]; - var cp1y = py + offset * basePoints[destUv + 1]; - cutPolygonPoints[i2 * 4] = cp0x; - cutPolygonPoints[i2 * 4 + 1] = cp0y; - cutPolygonPoints[i2 * 4 + 2] = cp1x; - cutPolygonPoints[i2 * 4 + 3] = cp1y; - var orthx = basePoints[sourceUv + 1]; - var orthy = -basePoints[sourceUv]; - var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; - if (cosAlpha < 0) { - orthx *= -1; - orthy *= -1; - } - var cx = cp0x + orthx * cornerRadius; - var cy = cp0y + orthy * cornerRadius; - var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2); - if (squaredDistance <= squaredCornerRadius) { - return true; - } - } - return pointInsidePolygonPoints(x, y, cutPolygonPoints); - }; - var joinLines = function joinLines2(lineSet) { - var vertices = new Array(lineSet.length / 2); - var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY; - var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY; - for (var i2 = 0; i2 < lineSet.length / 4; i2++) { - currentLineStartX = lineSet[i2 * 4]; - currentLineStartY = lineSet[i2 * 4 + 1]; - currentLineEndX = lineSet[i2 * 4 + 2]; - currentLineEndY = lineSet[i2 * 4 + 3]; - if (i2 < lineSet.length / 4 - 1) { - nextLineStartX = lineSet[(i2 + 1) * 4]; - nextLineStartY = lineSet[(i2 + 1) * 4 + 1]; - nextLineEndX = lineSet[(i2 + 1) * 4 + 2]; - nextLineEndY = lineSet[(i2 + 1) * 4 + 3]; - } else { - nextLineStartX = lineSet[0]; - nextLineStartY = lineSet[1]; - nextLineEndX = lineSet[2]; - nextLineEndY = lineSet[3]; - } - var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true); - vertices[i2 * 2] = intersection[0]; - vertices[i2 * 2 + 1] = intersection[1]; - } - return vertices; - }; - var expandPolygon = function expandPolygon2(points, pad) { - var expandedLineSet = new Array(points.length * 2); - var currentPointX, currentPointY, nextPointX, nextPointY; - for (var i2 = 0; i2 < points.length / 2; i2++) { - currentPointX = points[i2 * 2]; - currentPointY = points[i2 * 2 + 1]; - if (i2 < points.length / 2 - 1) { - nextPointX = points[(i2 + 1) * 2]; - nextPointY = points[(i2 + 1) * 2 + 1]; - } else { - nextPointX = points[0]; - nextPointY = points[1]; - } - var offsetX = nextPointY - currentPointY; - var offsetY = -(nextPointX - currentPointX); - var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY); - var normalizedOffsetX = offsetX / offsetLength; - var normalizedOffsetY = offsetY / offsetLength; - expandedLineSet[i2 * 4] = currentPointX + normalizedOffsetX * pad; - expandedLineSet[i2 * 4 + 1] = currentPointY + normalizedOffsetY * pad; - expandedLineSet[i2 * 4 + 2] = nextPointX + normalizedOffsetX * pad; - expandedLineSet[i2 * 4 + 3] = nextPointY + normalizedOffsetY * pad; - } - return expandedLineSet; - }; - var intersectLineEllipse = function intersectLineEllipse2(x, y, centerX, centerY, ellipseWradius, ellipseHradius) { - var dispX = centerX - x; - var dispY = centerY - y; - dispX /= ellipseWradius; - dispY /= ellipseHradius; - var len = Math.sqrt(dispX * dispX + dispY * dispY); - var newLength = len - 1; - if (newLength < 0) { - return []; - } - var lenProportion = newLength / len; - return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y]; - }; - var checkInEllipse = function checkInEllipse2(x, y, width, height, centerX, centerY, padding) { - x -= centerX; - y -= centerY; - x /= width / 2 + padding; - y /= height / 2 + padding; - return x * x + y * y <= 1; - }; - var intersectLineCircle = function intersectLineCircle2(x1, y1, x2, y2, centerX, centerY, radius) { - var d = [x2 - x1, y2 - y1]; - var f = [x1 - centerX, y1 - centerY]; - var a = d[0] * d[0] + d[1] * d[1]; - var b = 2 * (f[0] * d[0] + f[1] * d[1]); - var c = f[0] * f[0] + f[1] * f[1] - radius * radius; - var discriminant = b * b - 4 * a * c; - if (discriminant < 0) { - return []; - } - var t1 = (-b + Math.sqrt(discriminant)) / (2 * a); - var t2 = (-b - Math.sqrt(discriminant)) / (2 * a); - var tMin = Math.min(t1, t2); - var tMax = Math.max(t1, t2); - var inRangeParams = []; - if (tMin >= 0 && tMin <= 1) { - inRangeParams.push(tMin); - } - if (tMax >= 0 && tMax <= 1) { - inRangeParams.push(tMax); - } - if (inRangeParams.length === 0) { - return []; - } - var nearIntersectionX = inRangeParams[0] * d[0] + x1; - var nearIntersectionY = inRangeParams[0] * d[1] + y1; - if (inRangeParams.length > 1) { - if (inRangeParams[0] == inRangeParams[1]) { - return [nearIntersectionX, nearIntersectionY]; - } else { - var farIntersectionX = inRangeParams[1] * d[0] + x1; - var farIntersectionY = inRangeParams[1] * d[1] + y1; - return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY]; - } - } else { - return [nearIntersectionX, nearIntersectionY]; - } - }; - var midOfThree = function midOfThree2(a, b, c) { - if (b <= a && a <= c || c <= a && a <= b) { - return a; - } else if (a <= b && b <= c || c <= b && b <= a) { - return b; - } else { - return c; - } - }; - var finiteLinesIntersect = function finiteLinesIntersect2(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) { - var dx13 = x1 - x3; - var dx21 = x2 - x1; - var dx43 = x4 - x3; - var dy13 = y1 - y3; - var dy21 = y2 - y1; - var dy43 = y4 - y3; - var ua_t = dx43 * dy13 - dy43 * dx13; - var ub_t = dx21 * dy13 - dy21 * dx13; - var u_b = dy43 * dx21 - dx43 * dy21; - if (u_b !== 0) { - var ua = ua_t / u_b; - var ub = ub_t / u_b; - var flptThreshold = 1e-3; - var _min = 0 - flptThreshold; - var _max = 1 + flptThreshold; - if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) { - return [x1 + ua * dx21, y1 + ua * dy21]; - } else { - if (!infiniteLines) { - return []; - } else { - return [x1 + ua * dx21, y1 + ua * dy21]; - } - } - } else { - if (ua_t === 0 || ub_t === 0) { - if (midOfThree(x1, x2, x4) === x4) { - return [x4, y4]; - } - if (midOfThree(x1, x2, x3) === x3) { - return [x3, y3]; - } - if (midOfThree(x3, x4, x2) === x2) { - return [x2, y2]; - } - return []; - } else { - return []; - } - } - }; - var polygonIntersectLine = function polygonIntersectLine2(x, y, basePoints, centerX, centerY, width, height, padding) { - var intersections = []; - var intersection; - var transformedPoints = new Array(basePoints.length); - var doTransform = true; - if (width == null) { - doTransform = false; - } - var points; - if (doTransform) { - for (var i2 = 0; i2 < transformedPoints.length / 2; i2++) { - transformedPoints[i2 * 2] = basePoints[i2 * 2] * width + centerX; - transformedPoints[i2 * 2 + 1] = basePoints[i2 * 2 + 1] * height + centerY; - } - if (padding > 0) { - var expandedLineSet = expandPolygon(transformedPoints, -padding); - points = joinLines(expandedLineSet); - } else { - points = transformedPoints; - } - } else { - points = basePoints; - } - var currentX, currentY, nextX, nextY; - for (var _i2 = 0; _i2 < points.length / 2; _i2++) { - currentX = points[_i2 * 2]; - currentY = points[_i2 * 2 + 1]; - if (_i2 < points.length / 2 - 1) { - nextX = points[(_i2 + 1) * 2]; - nextY = points[(_i2 + 1) * 2 + 1]; - } else { - nextX = points[0]; - nextY = points[1]; - } - intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY); - if (intersection.length !== 0) { - intersections.push(intersection[0], intersection[1]); - } - } - return intersections; - }; - var roundPolygonIntersectLine = function roundPolygonIntersectLine2(x, y, basePoints, centerX, centerY, width, height, padding) { - var intersections = []; - var intersection; - var lines = new Array(basePoints.length); - var halfW = width / 2; - var halfH = height / 2; - var cornerRadius = getRoundPolygonRadius(width, height); - for (var i2 = 0; i2 < basePoints.length / 4; i2++) { - var sourceUv = void 0, destUv = void 0; - if (i2 === 0) { - sourceUv = basePoints.length - 2; - } else { - sourceUv = i2 * 4 - 2; - } - destUv = i2 * 4 + 2; - var px = centerX + halfW * basePoints[i2 * 4]; - var py = centerY + halfH * basePoints[i2 * 4 + 1]; - var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; - var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); - var cp0x = px - offset * basePoints[sourceUv]; - var cp0y = py - offset * basePoints[sourceUv + 1]; - var cp1x = px + offset * basePoints[destUv]; - var cp1y = py + offset * basePoints[destUv + 1]; - if (i2 === 0) { - lines[basePoints.length - 2] = cp0x; - lines[basePoints.length - 1] = cp0y; - } else { - lines[i2 * 4 - 2] = cp0x; - lines[i2 * 4 - 1] = cp0y; - } - lines[i2 * 4] = cp1x; - lines[i2 * 4 + 1] = cp1y; - var orthx = basePoints[sourceUv + 1]; - var orthy = -basePoints[sourceUv]; - var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; - if (cosAlpha < 0) { - orthx *= -1; - orthy *= -1; - } - var cx = cp0x + orthx * cornerRadius; - var cy = cp0y + orthy * cornerRadius; - intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius); - if (intersection.length !== 0) { - intersections.push(intersection[0], intersection[1]); - } - } - for (var _i3 = 0; _i3 < lines.length / 4; _i3++) { - intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false); - if (intersection.length !== 0) { - intersections.push(intersection[0], intersection[1]); - } - } - if (intersections.length > 2) { - var lowestIntersection = [intersections[0], intersections[1]]; - var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2); - for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) { - var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2); - if (squaredDistance <= lowestSquaredDistance) { - lowestIntersection[0] = intersections[_i4 * 2]; - lowestIntersection[1] = intersections[_i4 * 2 + 1]; - lowestSquaredDistance = squaredDistance; - } - } - return lowestIntersection; - } - return intersections; - }; - var shortenIntersection = function shortenIntersection2(intersection, offset, amount) { - var disp = [intersection[0] - offset[0], intersection[1] - offset[1]]; - var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]); - var lenRatio = (length - amount) / length; - if (lenRatio < 0) { - lenRatio = 1e-5; - } - return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]]; - }; - var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare2(sides, rotationRadians) { - var points = generateUnitNgonPoints(sides, rotationRadians); - points = fitPolygonToSquare(points); - return points; - }; - var fitPolygonToSquare = function fitPolygonToSquare2(points) { - var x, y; - var sides = points.length / 2; - var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity; - for (var i2 = 0; i2 < sides; i2++) { - x = points[2 * i2]; - y = points[2 * i2 + 1]; - minX = Math.min(minX, x); - maxX = Math.max(maxX, x); - minY = Math.min(minY, y); - maxY = Math.max(maxY, y); - } - var sx = 2 / (maxX - minX); - var sy = 2 / (maxY - minY); - for (var _i5 = 0; _i5 < sides; _i5++) { - x = points[2 * _i5] = points[2 * _i5] * sx; - y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy; - minX = Math.min(minX, x); - maxX = Math.max(maxX, x); - minY = Math.min(minY, y); - maxY = Math.max(maxY, y); - } - if (minY < -1) { - for (var _i6 = 0; _i6 < sides; _i6++) { - y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY); - } - } - return points; - }; - var generateUnitNgonPoints = function generateUnitNgonPoints2(sides, rotationRadians) { - var increment = 1 / sides * 2 * Math.PI; - var startAngle = sides % 2 === 0 ? Math.PI / 2 + increment / 2 : Math.PI / 2; - startAngle += rotationRadians; - var points = new Array(sides * 2); - var currentAngle; - for (var i2 = 0; i2 < sides; i2++) { - currentAngle = i2 * increment + startAngle; - points[2 * i2] = Math.cos(currentAngle); - points[2 * i2 + 1] = Math.sin(-currentAngle); - } - return points; - }; - var getRoundRectangleRadius = function getRoundRectangleRadius2(width, height) { - return Math.min(width / 4, height / 4, 8); - }; - var getRoundPolygonRadius = function getRoundPolygonRadius2(width, height) { - return Math.min(width / 10, height / 10, 8); - }; - var getCutRectangleCornerLength = function getCutRectangleCornerLength2() { - return 8; - }; - var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff2(p0, p1, p2) { - return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0]; - }; - var getBarrelCurveConstants = function getBarrelCurveConstants2(width, height) { - return { - heightOffset: Math.min(15, 0.05 * height), - widthOffset: Math.min(100, 0.25 * width), - ctrlPtOffsetPct: 0.05 - }; - }; - var pageRankDefaults = defaults$g({ - dampingFactor: 0.8, - precision: 1e-6, - iterations: 200, - weight: function weight(edge) { - return 1; - } - }); - var elesfn$o = { - pageRank: function pageRank(options) { - var _pageRankDefaults = pageRankDefaults(options), dampingFactor = _pageRankDefaults.dampingFactor, precision = _pageRankDefaults.precision, iterations = _pageRankDefaults.iterations, weight = _pageRankDefaults.weight; - var cy = this._private.cy; - var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges = _this$byGroup.edges; - var numNodes = nodes2.length; - var numNodesSqd = numNodes * numNodes; - var numEdges = edges.length; - var matrix = new Array(numNodesSqd); - var columnSum = new Array(numNodes); - var additionalProb = (1 - dampingFactor) / numNodes; - for (var i2 = 0; i2 < numNodes; i2++) { - for (var j = 0; j < numNodes; j++) { - var n = i2 * numNodes + j; - matrix[n] = 0; - } - columnSum[i2] = 0; - } - for (var _i = 0; _i < numEdges; _i++) { - var edge = edges[_i]; - var srcId = edge.data("source"); - var tgtId = edge.data("target"); - if (srcId === tgtId) { - continue; - } - var s = nodes2.indexOfId(srcId); - var t = nodes2.indexOfId(tgtId); - var w = weight(edge); - var _n = t * numNodes + s; - matrix[_n] += w; - columnSum[s] += w; - } - var p2 = 1 / numNodes + additionalProb; - for (var _j = 0; _j < numNodes; _j++) { - if (columnSum[_j] === 0) { - for (var _i2 = 0; _i2 < numNodes; _i2++) { - var _n2 = _i2 * numNodes + _j; - matrix[_n2] = p2; - } - } else { - for (var _i3 = 0; _i3 < numNodes; _i3++) { - var _n3 = _i3 * numNodes + _j; - matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb; - } - } - } - var eigenvector = new Array(numNodes); - var temp = new Array(numNodes); - var previous; - for (var _i4 = 0; _i4 < numNodes; _i4++) { - eigenvector[_i4] = 1; - } - for (var iter = 0; iter < iterations; iter++) { - for (var _i5 = 0; _i5 < numNodes; _i5++) { - temp[_i5] = 0; - } - for (var _i6 = 0; _i6 < numNodes; _i6++) { - for (var _j2 = 0; _j2 < numNodes; _j2++) { - var _n4 = _i6 * numNodes + _j2; - temp[_i6] += matrix[_n4] * eigenvector[_j2]; - } - } - inPlaceSumNormalize(temp); - previous = eigenvector; - eigenvector = temp; - temp = previous; - var diff = 0; - for (var _i7 = 0; _i7 < numNodes; _i7++) { - var delta = previous[_i7] - eigenvector[_i7]; - diff += delta * delta; - } - if (diff < precision) { - break; - } - } - var res = { - rank: function rank(node) { - node = cy.collection(node)[0]; - return eigenvector[nodes2.indexOf(node)]; - } - }; - return res; - } - // pageRank - }; - var defaults$f = defaults$g({ - root: null, - weight: function weight(edge) { - return 1; - }, - directed: false, - alpha: 0 - }); - var elesfn$n = { - degreeCentralityNormalized: function degreeCentralityNormalized(options) { - options = defaults$f(options); - var cy = this.cy(); - var nodes2 = this.nodes(); - var numNodes = nodes2.length; - if (!options.directed) { - var degrees = {}; - var maxDegree = 0; - for (var i2 = 0; i2 < numNodes; i2++) { - var node = nodes2[i2]; - options.root = node; - var currDegree = this.degreeCentrality(options); - if (maxDegree < currDegree.degree) { - maxDegree = currDegree.degree; - } - degrees[node.id()] = currDegree.degree; - } - return { - degree: function degree(node2) { - if (maxDegree === 0) { - return 0; - } - if (string(node2)) { - node2 = cy.filter(node2); - } - return degrees[node2.id()] / maxDegree; - } - }; - } else { - var indegrees = {}; - var outdegrees = {}; - var maxIndegree = 0; - var maxOutdegree = 0; - for (var _i = 0; _i < numNodes; _i++) { - var _node = nodes2[_i]; - var id = _node.id(); - options.root = _node; - var _currDegree = this.degreeCentrality(options); - if (maxIndegree < _currDegree.indegree) - maxIndegree = _currDegree.indegree; - if (maxOutdegree < _currDegree.outdegree) - maxOutdegree = _currDegree.outdegree; - indegrees[id] = _currDegree.indegree; - outdegrees[id] = _currDegree.outdegree; - } - return { - indegree: function indegree(node2) { - if (maxIndegree == 0) { - return 0; - } - if (string(node2)) { - node2 = cy.filter(node2); - } - return indegrees[node2.id()] / maxIndegree; - }, - outdegree: function outdegree(node2) { - if (maxOutdegree === 0) { - return 0; - } - if (string(node2)) { - node2 = cy.filter(node2); - } - return outdegrees[node2.id()] / maxOutdegree; - } - }; - } - }, - // degreeCentralityNormalized - // Implemented from the algorithm in Opsahl's paper - // "Node centrality in weighted networks: Generalizing degree and shortest paths" - // check the heading 2 "Degree" - degreeCentrality: function degreeCentrality(options) { - options = defaults$f(options); - var cy = this.cy(); - var callingEles = this; - var _options = options, root2 = _options.root, weight = _options.weight, directed = _options.directed, alpha = _options.alpha; - root2 = cy.collection(root2)[0]; - if (!directed) { - var connEdges = root2.connectedEdges().intersection(callingEles); - var k = connEdges.length; - var s = 0; - for (var i2 = 0; i2 < connEdges.length; i2++) { - s += weight(connEdges[i2]); - } - return { - degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha) - }; - } else { - var edges = root2.connectedEdges(); - var incoming = edges.filter(function(edge) { - return edge.target().same(root2) && callingEles.has(edge); - }); - var outgoing = edges.filter(function(edge) { - return edge.source().same(root2) && callingEles.has(edge); - }); - var k_in = incoming.length; - var k_out = outgoing.length; - var s_in = 0; - var s_out = 0; - for (var _i2 = 0; _i2 < incoming.length; _i2++) { - s_in += weight(incoming[_i2]); - } - for (var _i3 = 0; _i3 < outgoing.length; _i3++) { - s_out += weight(outgoing[_i3]); - } - return { - indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha), - outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha) - }; - } - } - // degreeCentrality - }; - elesfn$n.dc = elesfn$n.degreeCentrality; - elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized; - var defaults$e = defaults$g({ - harmonic: true, - weight: function weight() { - return 1; - }, - directed: false, - root: null - }); - var elesfn$m = { - closenessCentralityNormalized: function closenessCentralityNormalized(options) { - var _defaults = defaults$e(options), harmonic = _defaults.harmonic, weight = _defaults.weight, directed = _defaults.directed; - var cy = this.cy(); - var closenesses = {}; - var maxCloseness = 0; - var nodes2 = this.nodes(); - var fw = this.floydWarshall({ - weight, - directed - }); - for (var i2 = 0; i2 < nodes2.length; i2++) { - var currCloseness = 0; - var node_i = nodes2[i2]; - for (var j = 0; j < nodes2.length; j++) { - if (i2 !== j) { - var d = fw.distance(node_i, nodes2[j]); - if (harmonic) { - currCloseness += 1 / d; - } else { - currCloseness += d; - } - } - } - if (!harmonic) { - currCloseness = 1 / currCloseness; - } - if (maxCloseness < currCloseness) { - maxCloseness = currCloseness; - } - closenesses[node_i.id()] = currCloseness; - } - return { - closeness: function closeness(node) { - if (maxCloseness == 0) { - return 0; - } - if (string(node)) { - node = cy.filter(node)[0].id(); - } else { - node = node.id(); - } - return closenesses[node] / maxCloseness; - } - }; - }, - // Implemented from pseudocode from wikipedia - closenessCentrality: function closenessCentrality(options) { - var _defaults2 = defaults$e(options), root2 = _defaults2.root, weight = _defaults2.weight, directed = _defaults2.directed, harmonic = _defaults2.harmonic; - root2 = this.filter(root2)[0]; - var dijkstra = this.dijkstra({ - root: root2, - weight, - directed - }); - var totalDistance = 0; - var nodes2 = this.nodes(); - for (var i2 = 0; i2 < nodes2.length; i2++) { - var n = nodes2[i2]; - if (!n.same(root2)) { - var d = dijkstra.distanceTo(n); - if (harmonic) { - totalDistance += 1 / d; - } else { - totalDistance += d; - } - } - } - return harmonic ? totalDistance : 1 / totalDistance; - } - // closenessCentrality - }; - elesfn$m.cc = elesfn$m.closenessCentrality; - elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized; - var defaults$d = defaults$g({ - weight: null, - directed: false - }); - var elesfn$l = { - // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes - betweennessCentrality: function betweennessCentrality(options) { - var _defaults = defaults$d(options), directed = _defaults.directed, weight = _defaults.weight; - var weighted = weight != null; - var cy = this.cy(); - var V = this.nodes(); - var A = {}; - var _C = {}; - var max2 = 0; - var C = { - set: function set2(key, val) { - _C[key] = val; - if (val > max2) { - max2 = val; - } - }, - get: function get2(key) { - return _C[key]; - } - }; - for (var i2 = 0; i2 < V.length; i2++) { - var v = V[i2]; - var vid = v.id(); - if (directed) { - A[vid] = v.outgoers().nodes(); - } else { - A[vid] = v.openNeighborhood().nodes(); - } - C.set(vid, 0); - } - var _loop = function _loop2(s2) { - var sid = V[s2].id(); - var S = []; - var P = {}; - var g = {}; - var d = {}; - var Q = new heap(function(a, b) { - return d[a] - d[b]; - }); - for (var _i = 0; _i < V.length; _i++) { - var _vid = V[_i].id(); - P[_vid] = []; - g[_vid] = 0; - d[_vid] = Infinity; - } - g[sid] = 1; - d[sid] = 0; - Q.push(sid); - while (!Q.empty()) { - var _v = Q.pop(); - S.push(_v); - if (weighted) { - for (var j = 0; j < A[_v].length; j++) { - var w = A[_v][j]; - var vEle = cy.getElementById(_v); - var edge = void 0; - if (vEle.edgesTo(w).length > 0) { - edge = vEle.edgesTo(w)[0]; - } else { - edge = w.edgesTo(vEle)[0]; - } - var edgeWeight = weight(edge); - w = w.id(); - if (d[w] > d[_v] + edgeWeight) { - d[w] = d[_v] + edgeWeight; - if (Q.nodes.indexOf(w) < 0) { - Q.push(w); - } else { - Q.updateItem(w); - } - g[w] = 0; - P[w] = []; - } - if (d[w] == d[_v] + edgeWeight) { - g[w] = g[w] + g[_v]; - P[w].push(_v); - } - } - } else { - for (var _j = 0; _j < A[_v].length; _j++) { - var _w = A[_v][_j].id(); - if (d[_w] == Infinity) { - Q.push(_w); - d[_w] = d[_v] + 1; - } - if (d[_w] == d[_v] + 1) { - g[_w] = g[_w] + g[_v]; - P[_w].push(_v); - } - } - } - } - var e = {}; - for (var _i2 = 0; _i2 < V.length; _i2++) { - e[V[_i2].id()] = 0; - } - while (S.length > 0) { - var _w2 = S.pop(); - for (var _j2 = 0; _j2 < P[_w2].length; _j2++) { - var _v2 = P[_w2][_j2]; - e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]); - } - if (_w2 != V[s2].id()) { - C.set(_w2, C.get(_w2) + e[_w2]); - } - } - }; - for (var s = 0; s < V.length; s++) { - _loop(s); - } - var ret = { - betweenness: function betweenness(node) { - var id = cy.collection(node).id(); - return C.get(id); - }, - betweennessNormalized: function betweennessNormalized(node) { - if (max2 == 0) { - return 0; - } - var id = cy.collection(node).id(); - return C.get(id) / max2; - } - }; - ret.betweennessNormalised = ret.betweennessNormalized; - return ret; - } - // betweennessCentrality - }; - elesfn$l.bc = elesfn$l.betweennessCentrality; - var defaults$c = defaults$g({ - expandFactor: 2, - // affects time of computation and cluster granularity to some extent: M * M - inflateFactor: 2, - // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j) - multFactor: 1, - // optional self loops for each node. Use a neutral value to improve cluster computations. - maxIterations: 20, - // maximum number of iterations of the MCL algorithm in a single run - attributes: [ - // attributes/features used to group nodes, ie. similarity values between nodes - function(edge) { - return 1; - } - ] - }); - var setOptions$3 = function setOptions2(options) { - return defaults$c(options); - }; - var getSimilarity$1 = function getSimilarity2(edge, attributes) { - var total = 0; - for (var i2 = 0; i2 < attributes.length; i2++) { - total += attributes[i2](edge); - } - return total; - }; - var addLoops = function addLoops2(M, n, val) { - for (var i2 = 0; i2 < n; i2++) { - M[i2 * n + i2] = val; - } - }; - var normalize = function normalize2(M, n) { - var sum; - for (var col = 0; col < n; col++) { - sum = 0; - for (var row = 0; row < n; row++) { - sum += M[row * n + col]; - } - for (var _row = 0; _row < n; _row++) { - M[_row * n + col] = M[_row * n + col] / sum; - } - } - }; - var mmult = function mmult2(A, B, n) { - var C = new Array(n * n); - for (var i2 = 0; i2 < n; i2++) { - for (var j = 0; j < n; j++) { - C[i2 * n + j] = 0; - } - for (var k = 0; k < n; k++) { - for (var _j = 0; _j < n; _j++) { - C[i2 * n + _j] += A[i2 * n + k] * B[k * n + _j]; - } - } - } - return C; - }; - var expand = function expand2(M, n, expandFactor) { - var _M = M.slice(0); - for (var p2 = 1; p2 < expandFactor; p2++) { - M = mmult(M, _M, n); - } - return M; - }; - var inflate = function inflate2(M, n, inflateFactor) { - var _M = new Array(n * n); - for (var i2 = 0; i2 < n * n; i2++) { - _M[i2] = Math.pow(M[i2], inflateFactor); - } - normalize(_M, n); - return _M; - }; - var hasConverged = function hasConverged2(M, _M, n2, roundFactor) { - for (var i2 = 0; i2 < n2; i2++) { - var v1 = Math.round(M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); - var v2 = Math.round(_M[i2] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); - if (v1 !== v2) { - return false; - } - } - return true; - }; - var assign$2 = function assign2(M, n, nodes2, cy) { - var clusters = []; - for (var i2 = 0; i2 < n; i2++) { - var cluster = []; - for (var j = 0; j < n; j++) { - if (Math.round(M[i2 * n + j] * 1e3) / 1e3 > 0) { - cluster.push(nodes2[j]); - } - } - if (cluster.length !== 0) { - clusters.push(cy.collection(cluster)); - } - } - return clusters; - }; - var isDuplicate = function isDuplicate2(c1, c2) { - for (var i2 = 0; i2 < c1.length; i2++) { - if (!c2[i2] || c1[i2].id() !== c2[i2].id()) { - return false; - } - } - return true; - }; - var removeDuplicates = function removeDuplicates2(clusters) { - for (var i2 = 0; i2 < clusters.length; i2++) { - for (var j = 0; j < clusters.length; j++) { - if (i2 != j && isDuplicate(clusters[i2], clusters[j])) { - clusters.splice(j, 1); - } - } - } - return clusters; - }; - var markovClustering = function markovClustering2(options) { - var nodes2 = this.nodes(); - var edges = this.edges(); - var cy = this.cy(); - var opts = setOptions$3(options); - var id2position = {}; - for (var i2 = 0; i2 < nodes2.length; i2++) { - id2position[nodes2[i2].id()] = i2; - } - var n = nodes2.length, n2 = n * n; - var M = new Array(n2), _M; - for (var _i = 0; _i < n2; _i++) { - M[_i] = 0; - } - for (var e = 0; e < edges.length; e++) { - var edge = edges[e]; - var _i2 = id2position[edge.source().id()]; - var j = id2position[edge.target().id()]; - var sim = getSimilarity$1(edge, opts.attributes); - M[_i2 * n + j] += sim; - M[j * n + _i2] += sim; - } - addLoops(M, n, opts.multFactor); - normalize(M, n); - var isStillMoving = true; - var iterations = 0; - while (isStillMoving && iterations < opts.maxIterations) { - isStillMoving = false; - _M = expand(M, n, opts.expandFactor); - M = inflate(_M, n, opts.inflateFactor); - if (!hasConverged(M, _M, n2, 4)) { - isStillMoving = true; - } - iterations++; - } - var clusters = assign$2(M, n, nodes2, cy); - clusters = removeDuplicates(clusters); - return clusters; - }; - var markovClustering$1 = { - markovClustering, - mcl: markovClustering - }; - var identity = function identity2(x) { - return x; - }; - var absDiff = function absDiff2(p2, q) { - return Math.abs(q - p2); - }; - var addAbsDiff = function addAbsDiff2(total, p2, q) { - return total + absDiff(p2, q); - }; - var addSquaredDiff = function addSquaredDiff2(total, p2, q) { - return total + Math.pow(q - p2, 2); - }; - var sqrt = function sqrt3(x) { - return Math.sqrt(x); - }; - var maxAbsDiff = function maxAbsDiff2(currentMax, p2, q) { - return Math.max(currentMax, absDiff(p2, q)); - }; - var getDistance = function getDistance2(length, getP, getQ, init, visit) { - var post = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : identity; - var ret = init; - var p2, q; - for (var dim = 0; dim < length; dim++) { - p2 = getP(dim); - q = getQ(dim); - ret = visit(ret, p2, q); - } - return post(ret); - }; - var distances = { - euclidean: function euclidean(length, getP, getQ) { - if (length >= 2) { - return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt); - } else { - return getDistance(length, getP, getQ, 0, addAbsDiff); - } - }, - squaredEuclidean: function squaredEuclidean(length, getP, getQ) { - return getDistance(length, getP, getQ, 0, addSquaredDiff); - }, - manhattan: function manhattan(length, getP, getQ) { - return getDistance(length, getP, getQ, 0, addAbsDiff); - }, - max: function max2(length, getP, getQ) { - return getDistance(length, getP, getQ, -Infinity, maxAbsDiff); - } - }; - distances["squared-euclidean"] = distances["squaredEuclidean"]; - distances["squaredeuclidean"] = distances["squaredEuclidean"]; - function clusteringDistance(method, length, getP, getQ, nodeP, nodeQ) { - var impl2; - if (fn$6(method)) { - impl2 = method; - } else { - impl2 = distances[method] || distances.euclidean; - } - if (length === 0 && fn$6(method)) { - return impl2(nodeP, nodeQ); - } else { - return impl2(length, getP, getQ, nodeP, nodeQ); - } - } - var defaults$b = defaults$g({ - k: 2, - m: 2, - sensitivityThreshold: 1e-4, - distance: "euclidean", - maxIterations: 10, - attributes: [], - testMode: false, - testCentroids: null - }); - var setOptions$2 = function setOptions2(options) { - return defaults$b(options); - }; - var getDist = function getDist2(type, node, centroid, attributes, mode) { - var noNodeP = mode !== "kMedoids"; - var getP = noNodeP ? function(i2) { - return centroid[i2]; - } : function(i2) { - return attributes[i2](centroid); - }; - var getQ = function getQ2(i2) { - return attributes[i2](node); - }; - var nodeP = centroid; - var nodeQ = node; - return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ); - }; - var randomCentroids = function randomCentroids2(nodes2, k, attributes) { - var ndim = attributes.length; - var min2 = new Array(ndim); - var max2 = new Array(ndim); - var centroids = new Array(k); - var centroid = null; - for (var i2 = 0; i2 < ndim; i2++) { - min2[i2] = nodes2.min(attributes[i2]).value; - max2[i2] = nodes2.max(attributes[i2]).value; - } - for (var c = 0; c < k; c++) { - centroid = []; - for (var _i = 0; _i < ndim; _i++) { - centroid[_i] = Math.random() * (max2[_i] - min2[_i]) + min2[_i]; - } - centroids[c] = centroid; - } - return centroids; - }; - var classify = function classify2(node, centroids, distance, attributes, type) { - var min2 = Infinity; - var index = 0; - for (var i2 = 0; i2 < centroids.length; i2++) { - var dist2 = getDist(distance, node, centroids[i2], attributes, type); - if (dist2 < min2) { - min2 = dist2; - index = i2; - } - } - return index; - }; - var buildCluster = function buildCluster2(centroid, nodes2, assignment) { - var cluster = []; - var node = null; - for (var n = 0; n < nodes2.length; n++) { - node = nodes2[n]; - if (assignment[node.id()] === centroid) { - cluster.push(node); - } - } - return cluster; - }; - var haveValuesConverged = function haveValuesConverged2(v1, v2, sensitivityThreshold) { - return Math.abs(v2 - v1) <= sensitivityThreshold; - }; - var haveMatricesConverged = function haveMatricesConverged2(v1, v2, sensitivityThreshold) { - for (var i2 = 0; i2 < v1.length; i2++) { - for (var j = 0; j < v1[i2].length; j++) { - var diff = Math.abs(v1[i2][j] - v2[i2][j]); - if (diff > sensitivityThreshold) { - return false; - } - } - } - return true; - }; - var seenBefore = function seenBefore2(node, medoids, n) { - for (var i2 = 0; i2 < n; i2++) { - if (node === medoids[i2]) - return true; - } - return false; - }; - var randomMedoids = function randomMedoids2(nodes2, k) { - var medoids = new Array(k); - if (nodes2.length < 50) { - for (var i2 = 0; i2 < k; i2++) { - var node = nodes2[Math.floor(Math.random() * nodes2.length)]; - while (seenBefore(node, medoids, i2)) { - node = nodes2[Math.floor(Math.random() * nodes2.length)]; - } - medoids[i2] = node; - } - } else { - for (var _i2 = 0; _i2 < k; _i2++) { - medoids[_i2] = nodes2[Math.floor(Math.random() * nodes2.length)]; - } - } - return medoids; - }; - var findCost = function findCost2(potentialNewMedoid, cluster, attributes) { - var cost = 0; - for (var n = 0; n < cluster.length; n++) { - cost += getDist("manhattan", cluster[n], potentialNewMedoid, attributes, "kMedoids"); - } - return cost; - }; - var kMeans = function kMeans2(options) { - var cy = this.cy(); - var nodes2 = this.nodes(); - var node = null; - var opts = setOptions$2(options); - var clusters = new Array(opts.k); - var assignment = {}; - var centroids; - if (opts.testMode) { - if (typeof opts.testCentroids === "number") { - opts.testCentroids; - centroids = randomCentroids(nodes2, opts.k, opts.attributes); - } else if (_typeof(opts.testCentroids) === "object") { - centroids = opts.testCentroids; - } else { - centroids = randomCentroids(nodes2, opts.k, opts.attributes); - } - } else { - centroids = randomCentroids(nodes2, opts.k, opts.attributes); - } - var isStillMoving = true; - var iterations = 0; - while (isStillMoving && iterations < opts.maxIterations) { - for (var n = 0; n < nodes2.length; n++) { - node = nodes2[n]; - assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, "kMeans"); - } - isStillMoving = false; - for (var c = 0; c < opts.k; c++) { - var cluster = buildCluster(c, nodes2, assignment); - if (cluster.length === 0) { - continue; - } - var ndim = opts.attributes.length; - var centroid = centroids[c]; - var newCentroid = new Array(ndim); - var sum = new Array(ndim); - for (var d = 0; d < ndim; d++) { - sum[d] = 0; - for (var i2 = 0; i2 < cluster.length; i2++) { - node = cluster[i2]; - sum[d] += opts.attributes[d](node); - } - newCentroid[d] = sum[d] / cluster.length; - if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) { - isStillMoving = true; - } - } - centroids[c] = newCentroid; - clusters[c] = cy.collection(cluster); - } - iterations++; - } - return clusters; - }; - var kMedoids = function kMedoids2(options) { - var cy = this.cy(); - var nodes2 = this.nodes(); - var node = null; - var opts = setOptions$2(options); - var clusters = new Array(opts.k); - var medoids; - var assignment = {}; - var curCost; - var minCosts = new Array(opts.k); - if (opts.testMode) { - if (typeof opts.testCentroids === "number") - ; - else if (_typeof(opts.testCentroids) === "object") { - medoids = opts.testCentroids; - } else { - medoids = randomMedoids(nodes2, opts.k); - } - } else { - medoids = randomMedoids(nodes2, opts.k); - } - var isStillMoving = true; - var iterations = 0; - while (isStillMoving && iterations < opts.maxIterations) { - for (var n = 0; n < nodes2.length; n++) { - node = nodes2[n]; - assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, "kMedoids"); - } - isStillMoving = false; - for (var m = 0; m < medoids.length; m++) { - var cluster = buildCluster(m, nodes2, assignment); - if (cluster.length === 0) { - continue; - } - minCosts[m] = findCost(medoids[m], cluster, opts.attributes); - for (var _n = 0; _n < cluster.length; _n++) { - curCost = findCost(cluster[_n], cluster, opts.attributes); - if (curCost < minCosts[m]) { - minCosts[m] = curCost; - medoids[m] = cluster[_n]; - isStillMoving = true; - } - } - clusters[m] = cy.collection(cluster); - } - iterations++; - } - return clusters; - }; - var updateCentroids = function updateCentroids2(centroids, nodes2, U, weight, opts) { - var numerator, denominator; - for (var n = 0; n < nodes2.length; n++) { - for (var c = 0; c < centroids.length; c++) { - weight[n][c] = Math.pow(U[n][c], opts.m); - } - } - for (var _c = 0; _c < centroids.length; _c++) { - for (var dim = 0; dim < opts.attributes.length; dim++) { - numerator = 0; - denominator = 0; - for (var _n2 = 0; _n2 < nodes2.length; _n2++) { - numerator += weight[_n2][_c] * opts.attributes[dim](nodes2[_n2]); - denominator += weight[_n2][_c]; - } - centroids[_c][dim] = numerator / denominator; - } - } - }; - var updateMembership = function updateMembership2(U, _U, centroids, nodes2, opts) { - for (var i2 = 0; i2 < U.length; i2++) { - _U[i2] = U[i2].slice(); - } - var sum, numerator, denominator; - var pow = 2 / (opts.m - 1); - for (var c = 0; c < centroids.length; c++) { - for (var n = 0; n < nodes2.length; n++) { - sum = 0; - for (var k = 0; k < centroids.length; k++) { - numerator = getDist(opts.distance, nodes2[n], centroids[c], opts.attributes, "cmeans"); - denominator = getDist(opts.distance, nodes2[n], centroids[k], opts.attributes, "cmeans"); - sum += Math.pow(numerator / denominator, pow); - } - U[n][c] = 1 / sum; - } - } - }; - var assign$1 = function assign2(nodes2, U, opts, cy) { - var clusters = new Array(opts.k); - for (var c = 0; c < clusters.length; c++) { - clusters[c] = []; - } - var max2; - var index; - for (var n = 0; n < U.length; n++) { - max2 = -Infinity; - index = -1; - for (var _c2 = 0; _c2 < U[0].length; _c2++) { - if (U[n][_c2] > max2) { - max2 = U[n][_c2]; - index = _c2; - } - } - clusters[index].push(nodes2[n]); - } - for (var _c3 = 0; _c3 < clusters.length; _c3++) { - clusters[_c3] = cy.collection(clusters[_c3]); - } - return clusters; - }; - var fuzzyCMeans = function fuzzyCMeans2(options) { - var cy = this.cy(); - var nodes2 = this.nodes(); - var opts = setOptions$2(options); - var clusters; - var centroids; - var U; - var _U; - var weight; - _U = new Array(nodes2.length); - for (var i2 = 0; i2 < nodes2.length; i2++) { - _U[i2] = new Array(opts.k); - } - U = new Array(nodes2.length); - for (var _i3 = 0; _i3 < nodes2.length; _i3++) { - U[_i3] = new Array(opts.k); - } - for (var _i4 = 0; _i4 < nodes2.length; _i4++) { - var total = 0; - for (var j = 0; j < opts.k; j++) { - U[_i4][j] = Math.random(); - total += U[_i4][j]; - } - for (var _j = 0; _j < opts.k; _j++) { - U[_i4][_j] = U[_i4][_j] / total; - } - } - centroids = new Array(opts.k); - for (var _i5 = 0; _i5 < opts.k; _i5++) { - centroids[_i5] = new Array(opts.attributes.length); - } - weight = new Array(nodes2.length); - for (var _i6 = 0; _i6 < nodes2.length; _i6++) { - weight[_i6] = new Array(opts.k); - } - var isStillMoving = true; - var iterations = 0; - while (isStillMoving && iterations < opts.maxIterations) { - isStillMoving = false; - updateCentroids(centroids, nodes2, U, weight, opts); - updateMembership(U, _U, centroids, nodes2, opts); - if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) { - isStillMoving = true; - } - iterations++; - } - clusters = assign$1(nodes2, U, opts, cy); - return { - clusters, - degreeOfMembership: U - }; - }; - var kClustering = { - kMeans, - kMedoids, - fuzzyCMeans, - fcm: fuzzyCMeans - }; - var defaults$a = defaults$g({ - distance: "euclidean", - // distance metric to compare nodes - linkage: "min", - // linkage criterion : how to determine the distance between clusters of nodes - mode: "threshold", - // mode:'threshold' => clusters must be threshold distance apart - threshold: Infinity, - // the distance threshold - // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters - addDendrogram: false, - // whether to add the dendrogram to the graph for viz - dendrogramDepth: 0, - // depth at which dendrogram branches are merged into the returned clusters - attributes: [] - // array of attr functions - }); - var linkageAliases = { - "single": "min", - "complete": "max" - }; - var setOptions$1 = function setOptions2(options) { - var opts = defaults$a(options); - var preferredAlias = linkageAliases[opts.linkage]; - if (preferredAlias != null) { - opts.linkage = preferredAlias; - } - return opts; - }; - var mergeClosest = function mergeClosest2(clusters, index, dists, mins, opts) { - var minKey = 0; - var min2 = Infinity; - var dist2; - var attrs = opts.attributes; - var getDist2 = function getDist3(n1, n2) { - return clusteringDistance(opts.distance, attrs.length, function(i3) { - return attrs[i3](n1); - }, function(i3) { - return attrs[i3](n2); - }, n1, n2); - }; - for (var i2 = 0; i2 < clusters.length; i2++) { - var key = clusters[i2].key; - var _dist = dists[key][mins[key]]; - if (_dist < min2) { - minKey = key; - min2 = _dist; - } - } - if (opts.mode === "threshold" && min2 >= opts.threshold || opts.mode === "dendrogram" && clusters.length === 1) { - return false; - } - var c1 = index[minKey]; - var c2 = index[mins[minKey]]; - var merged; - if (opts.mode === "dendrogram") { - merged = { - left: c1, - right: c2, - key: c1.key - }; - } else { - merged = { - value: c1.value.concat(c2.value), - key: c1.key - }; - } - clusters[c1.index] = merged; - clusters.splice(c2.index, 1); - index[c1.key] = merged; - for (var _i = 0; _i < clusters.length; _i++) { - var cur = clusters[_i]; - if (c1.key === cur.key) { - dist2 = Infinity; - } else if (opts.linkage === "min") { - dist2 = dists[c1.key][cur.key]; - if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) { - dist2 = dists[c2.key][cur.key]; - } - } else if (opts.linkage === "max") { - dist2 = dists[c1.key][cur.key]; - if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) { - dist2 = dists[c2.key][cur.key]; - } - } else if (opts.linkage === "mean") { - dist2 = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size); - } else { - if (opts.mode === "dendrogram") - dist2 = getDist2(cur.value, c1.value); - else - dist2 = getDist2(cur.value[0], c1.value[0]); - } - dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist2; - } - for (var _i2 = 0; _i2 < clusters.length; _i2++) { - var key1 = clusters[_i2].key; - if (mins[key1] === c1.key || mins[key1] === c2.key) { - var _min = key1; - for (var j = 0; j < clusters.length; j++) { - var key2 = clusters[j].key; - if (dists[key1][key2] < dists[key1][_min]) { - _min = key2; - } - } - mins[key1] = _min; - } - clusters[_i2].index = _i2; - } - c1.key = c2.key = c1.index = c2.index = null; - return true; - }; - var getAllChildren = function getAllChildren2(root2, arr, cy) { - if (!root2) - return; - if (root2.value) { - arr.push(root2.value); - } else { - if (root2.left) - getAllChildren2(root2.left, arr); - if (root2.right) - getAllChildren2(root2.right, arr); - } - }; - var buildDendrogram = function buildDendrogram2(root2, cy) { - if (!root2) - return ""; - if (root2.left && root2.right) { - var leftStr = buildDendrogram2(root2.left, cy); - var rightStr = buildDendrogram2(root2.right, cy); - var node = cy.add({ - group: "nodes", - data: { - id: leftStr + "," + rightStr - } - }); - cy.add({ - group: "edges", - data: { - source: leftStr, - target: node.id() - } - }); - cy.add({ - group: "edges", - data: { - source: rightStr, - target: node.id() - } - }); - return node.id(); - } else if (root2.value) { - return root2.value.id(); - } - }; - var buildClustersFromTree = function buildClustersFromTree2(root2, k, cy) { - if (!root2) - return []; - var left = [], right = [], leaves = []; - if (k === 0) { - if (root2.left) - getAllChildren(root2.left, left); - if (root2.right) - getAllChildren(root2.right, right); - leaves = left.concat(right); - return [cy.collection(leaves)]; - } else if (k === 1) { - if (root2.value) { - return [cy.collection(root2.value)]; - } else { - if (root2.left) - getAllChildren(root2.left, left); - if (root2.right) - getAllChildren(root2.right, right); - return [cy.collection(left), cy.collection(right)]; - } - } else { - if (root2.value) { - return [cy.collection(root2.value)]; - } else { - if (root2.left) - left = buildClustersFromTree2(root2.left, k - 1, cy); - if (root2.right) - right = buildClustersFromTree2(root2.right, k - 1, cy); - return left.concat(right); - } - } - }; - var hierarchicalClustering = function hierarchicalClustering2(options) { - var cy = this.cy(); - var nodes2 = this.nodes(); - var opts = setOptions$1(options); - var attrs = opts.attributes; - var getDist2 = function getDist3(n1, n2) { - return clusteringDistance(opts.distance, attrs.length, function(i3) { - return attrs[i3](n1); - }, function(i3) { - return attrs[i3](n2); - }, n1, n2); - }; - var clusters = []; - var dists = []; - var mins = []; - var index = []; - for (var n = 0; n < nodes2.length; n++) { - var cluster = { - value: opts.mode === "dendrogram" ? nodes2[n] : [nodes2[n]], - key: n, - index: n - }; - clusters[n] = cluster; - index[n] = cluster; - dists[n] = []; - mins[n] = 0; - } - for (var i2 = 0; i2 < clusters.length; i2++) { - for (var j = 0; j <= i2; j++) { - var dist2 = void 0; - if (opts.mode === "dendrogram") { - dist2 = i2 === j ? Infinity : getDist2(clusters[i2].value, clusters[j].value); - } else { - dist2 = i2 === j ? Infinity : getDist2(clusters[i2].value[0], clusters[j].value[0]); - } - dists[i2][j] = dist2; - dists[j][i2] = dist2; - if (dist2 < dists[i2][mins[i2]]) { - mins[i2] = j; - } - } - } - var merged = mergeClosest(clusters, index, dists, mins, opts); - while (merged) { - merged = mergeClosest(clusters, index, dists, mins, opts); - } - var retClusters; - if (opts.mode === "dendrogram") { - retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy); - if (opts.addDendrogram) - buildDendrogram(clusters[0], cy); - } else { - retClusters = new Array(clusters.length); - clusters.forEach(function(cluster2, i3) { - cluster2.key = cluster2.index = null; - retClusters[i3] = cy.collection(cluster2.value); - }); - } - return retClusters; - }; - var hierarchicalClustering$1 = { - hierarchicalClustering, - hca: hierarchicalClustering - }; - var defaults$9 = defaults$g({ - distance: "euclidean", - // distance metric to compare attributes between two nodes - preference: "median", - // suitability of a data point to serve as an exemplar - damping: 0.8, - // damping factor between [0.5, 1) - maxIterations: 1e3, - // max number of iterations to run - minIterations: 100, - // min number of iterations to run in order for clustering to stop - attributes: [ - // functions to quantify the similarity between any two points - // e.g. node => node.data('weight') - ] - }); - var setOptions = function setOptions2(options) { - var dmp = options.damping; - var pref = options.preference; - if (!(0.5 <= dmp && dmp < 1)) { - error("Damping must range on [0.5, 1). Got: ".concat(dmp)); - } - var validPrefs = ["median", "mean", "min", "max"]; - if (!(validPrefs.some(function(v) { - return v === pref; - }) || number$1(pref))) { - error("Preference must be one of [".concat(validPrefs.map(function(p2) { - return "'".concat(p2, "'"); - }).join(", "), "] or a number. Got: ").concat(pref)); - } - return defaults$9(options); - }; - var getSimilarity = function getSimilarity2(type, n1, n2, attributes) { - var attr = function attr2(n, i2) { - return attributes[i2](n); - }; - return -clusteringDistance(type, attributes.length, function(i2) { - return attr(n1, i2); - }, function(i2) { - return attr(n2, i2); - }, n1, n2); - }; - var getPreference = function getPreference2(S, preference) { - var p2 = null; - if (preference === "median") { - p2 = median(S); - } else if (preference === "mean") { - p2 = mean(S); - } else if (preference === "min") { - p2 = min(S); - } else if (preference === "max") { - p2 = max(S); - } else { - p2 = preference; - } - return p2; - }; - var findExemplars = function findExemplars2(n, R, A) { - var indices = []; - for (var i2 = 0; i2 < n; i2++) { - if (R[i2 * n + i2] + A[i2 * n + i2] > 0) { - indices.push(i2); - } - } - return indices; - }; - var assignClusters = function assignClusters2(n, S, exemplars) { - var clusters = []; - for (var i2 = 0; i2 < n; i2++) { - var index = -1; - var max2 = -Infinity; - for (var ei = 0; ei < exemplars.length; ei++) { - var e = exemplars[ei]; - if (S[i2 * n + e] > max2) { - index = e; - max2 = S[i2 * n + e]; - } - } - if (index > 0) { - clusters.push(index); - } - } - for (var _ei = 0; _ei < exemplars.length; _ei++) { - clusters[exemplars[_ei]] = exemplars[_ei]; - } - return clusters; - }; - var assign = function assign2(n, S, exemplars) { - var clusters = assignClusters(n, S, exemplars); - for (var ei = 0; ei < exemplars.length; ei++) { - var ii = []; - for (var c = 0; c < clusters.length; c++) { - if (clusters[c] === exemplars[ei]) { - ii.push(c); - } - } - var maxI = -1; - var maxSum = -Infinity; - for (var i2 = 0; i2 < ii.length; i2++) { - var sum = 0; - for (var j = 0; j < ii.length; j++) { - sum += S[ii[j] * n + ii[i2]]; - } - if (sum > maxSum) { - maxI = i2; - maxSum = sum; - } - } - exemplars[ei] = ii[maxI]; - } - clusters = assignClusters(n, S, exemplars); - return clusters; - }; - var affinityPropagation = function affinityPropagation2(options) { - var cy = this.cy(); - var nodes2 = this.nodes(); - var opts = setOptions(options); - var id2position = {}; - for (var i2 = 0; i2 < nodes2.length; i2++) { - id2position[nodes2[i2].id()] = i2; - } - var n; - var n2; - var S; - var p2; - var R; - var A; - n = nodes2.length; - n2 = n * n; - S = new Array(n2); - for (var _i = 0; _i < n2; _i++) { - S[_i] = -Infinity; - } - for (var _i2 = 0; _i2 < n; _i2++) { - for (var j = 0; j < n; j++) { - if (_i2 !== j) { - S[_i2 * n + j] = getSimilarity(opts.distance, nodes2[_i2], nodes2[j], opts.attributes); - } - } - } - p2 = getPreference(S, opts.preference); - for (var _i3 = 0; _i3 < n; _i3++) { - S[_i3 * n + _i3] = p2; - } - R = new Array(n2); - for (var _i4 = 0; _i4 < n2; _i4++) { - R[_i4] = 0; - } - A = new Array(n2); - for (var _i5 = 0; _i5 < n2; _i5++) { - A[_i5] = 0; - } - var old = new Array(n); - var Rp = new Array(n); - var se = new Array(n); - for (var _i6 = 0; _i6 < n; _i6++) { - old[_i6] = 0; - Rp[_i6] = 0; - se[_i6] = 0; - } - var e = new Array(n * opts.minIterations); - for (var _i7 = 0; _i7 < e.length; _i7++) { - e[_i7] = 0; - } - var iter; - for (iter = 0; iter < opts.maxIterations; iter++) { - for (var _i8 = 0; _i8 < n; _i8++) { - var max2 = -Infinity, max22 = -Infinity, maxI = -1, AS = 0; - for (var _j = 0; _j < n; _j++) { - old[_j] = R[_i8 * n + _j]; - AS = A[_i8 * n + _j] + S[_i8 * n + _j]; - if (AS >= max2) { - max22 = max2; - max2 = AS; - maxI = _j; - } else if (AS > max22) { - max22 = AS; - } - } - for (var _j2 = 0; _j2 < n; _j2++) { - R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max2) + opts.damping * old[_j2]; - } - R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max22) + opts.damping * old[maxI]; - } - for (var _i9 = 0; _i9 < n; _i9++) { - var sum = 0; - for (var _j3 = 0; _j3 < n; _j3++) { - old[_j3] = A[_j3 * n + _i9]; - Rp[_j3] = Math.max(0, R[_j3 * n + _i9]); - sum += Rp[_j3]; - } - sum -= Rp[_i9]; - Rp[_i9] = R[_i9 * n + _i9]; - sum += Rp[_i9]; - for (var _j4 = 0; _j4 < n; _j4++) { - A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4]; - } - A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9]; - } - var K2 = 0; - for (var _i10 = 0; _i10 < n; _i10++) { - var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0; - e[iter % opts.minIterations * n + _i10] = E; - K2 += E; - } - if (K2 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) { - var _sum = 0; - for (var _i11 = 0; _i11 < n; _i11++) { - se[_i11] = 0; - for (var _j5 = 0; _j5 < opts.minIterations; _j5++) { - se[_i11] += e[_j5 * n + _i11]; - } - if (se[_i11] === 0 || se[_i11] === opts.minIterations) { - _sum++; - } - } - if (_sum === n) { - break; - } - } - } - var exemplarsIndices = findExemplars(n, R, A); - var clusterIndices = assign(n, S, exemplarsIndices); - var clusters = {}; - for (var c = 0; c < exemplarsIndices.length; c++) { - clusters[exemplarsIndices[c]] = []; - } - for (var _i12 = 0; _i12 < nodes2.length; _i12++) { - var pos = id2position[nodes2[_i12].id()]; - var clusterIndex = clusterIndices[pos]; - if (clusterIndex != null) { - clusters[clusterIndex].push(nodes2[_i12]); - } - } - var retClusters = new Array(exemplarsIndices.length); - for (var _c = 0; _c < exemplarsIndices.length; _c++) { - retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]); - } - return retClusters; - }; - var affinityPropagation$1 = { - affinityPropagation, - ap: affinityPropagation - }; - var hierholzerDefaults = defaults$g({ - root: void 0, - directed: false - }); - var elesfn$k = { - hierholzer: function hierholzer(options) { - if (!plainObject(options)) { - var args = arguments; - options = { - root: args[0], - directed: args[1] - }; - } - var _hierholzerDefaults = hierholzerDefaults(options), root2 = _hierholzerDefaults.root, directed = _hierholzerDefaults.directed; - var eles = this; - var dflag = false; - var oddIn; - var oddOut; - var startVertex; - if (root2) - startVertex = string(root2) ? this.filter(root2)[0].id() : root2[0].id(); - var nodes2 = {}; - var edges = {}; - if (directed) { - eles.forEach(function(ele) { - var id = ele.id(); - if (ele.isNode()) { - var ind = ele.indegree(true); - var outd = ele.outdegree(true); - var d1 = ind - outd; - var d2 = outd - ind; - if (d1 == 1) { - if (oddIn) - dflag = true; - else - oddIn = id; - } else if (d2 == 1) { - if (oddOut) - dflag = true; - else - oddOut = id; - } else if (d2 > 1 || d1 > 1) { - dflag = true; - } - nodes2[id] = []; - ele.outgoers().forEach(function(e) { - if (e.isEdge()) - nodes2[id].push(e.id()); - }); - } else { - edges[id] = [void 0, ele.target().id()]; - } - }); - } else { - eles.forEach(function(ele) { - var id = ele.id(); - if (ele.isNode()) { - var d2 = ele.degree(true); - if (d2 % 2) { - if (!oddIn) - oddIn = id; - else if (!oddOut) - oddOut = id; - else - dflag = true; - } - nodes2[id] = []; - ele.connectedEdges().forEach(function(e) { - return nodes2[id].push(e.id()); - }); - } else { - edges[id] = [ele.source().id(), ele.target().id()]; - } - }); - } - var result = { - found: false, - trail: void 0 - }; - if (dflag) - return result; - else if (oddOut && oddIn) { - if (directed) { - if (startVertex && oddOut != startVertex) { - return result; - } - startVertex = oddOut; - } else { - if (startVertex && oddOut != startVertex && oddIn != startVertex) { - return result; - } else if (!startVertex) { - startVertex = oddOut; - } - } - } else { - if (!startVertex) - startVertex = eles[0].id(); - } - var walk = function walk2(v) { - var currentNode = v; - var subtour2 = [v]; - var adj, adjTail, adjHead; - while (nodes2[currentNode].length) { - adj = nodes2[currentNode].shift(); - adjTail = edges[adj][0]; - adjHead = edges[adj][1]; - if (currentNode != adjHead) { - nodes2[adjHead] = nodes2[adjHead].filter(function(e) { - return e != adj; - }); - currentNode = adjHead; - } else if (!directed && currentNode != adjTail) { - nodes2[adjTail] = nodes2[adjTail].filter(function(e) { - return e != adj; - }); - currentNode = adjTail; - } - subtour2.unshift(adj); - subtour2.unshift(currentNode); - } - return subtour2; - }; - var trail = []; - var subtour = []; - subtour = walk(startVertex); - while (subtour.length != 1) { - if (nodes2[subtour[0]].length == 0) { - trail.unshift(eles.getElementById(subtour.shift())); - trail.unshift(eles.getElementById(subtour.shift())); - } else { - subtour = walk(subtour.shift()).concat(subtour); - } - } - trail.unshift(eles.getElementById(subtour.shift())); - for (var d in nodes2) { - if (nodes2[d].length) { - return result; - } - } - result.found = true; - result.trail = this.spawn(trail, true); - return result; - } - }; - var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected2() { - var eles = this; - var nodes2 = {}; - var id = 0; - var edgeCount = 0; - var components = []; - var stack = []; - var visitedEdges = {}; - var buildComponent = function buildComponent2(x, y) { - var i2 = stack.length - 1; - var cutset = []; - var component = eles.spawn(); - while (stack[i2].x != x || stack[i2].y != y) { - cutset.push(stack.pop().edge); - i2--; - } - cutset.push(stack.pop().edge); - cutset.forEach(function(edge) { - var connectedNodes = edge.connectedNodes().intersection(eles); - component.merge(edge); - connectedNodes.forEach(function(node) { - var nodeId = node.id(); - var connectedEdges = node.connectedEdges().intersection(eles); - component.merge(node); - if (!nodes2[nodeId].cutVertex) { - component.merge(connectedEdges); - } else { - component.merge(connectedEdges.filter(function(edge2) { - return edge2.isLoop(); - })); - } - }); - }); - components.push(component); - }; - var biconnectedSearch = function biconnectedSearch2(root2, currentNode, parent) { - if (root2 === parent) - edgeCount += 1; - nodes2[currentNode] = { - id, - low: id++, - cutVertex: false - }; - var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles); - if (edges.size() === 0) { - components.push(eles.spawn(eles.getElementById(currentNode))); - } else { - var sourceId, targetId, otherNodeId, edgeId; - edges.forEach(function(edge) { - sourceId = edge.source().id(); - targetId = edge.target().id(); - otherNodeId = sourceId === currentNode ? targetId : sourceId; - if (otherNodeId !== parent) { - edgeId = edge.id(); - if (!visitedEdges[edgeId]) { - visitedEdges[edgeId] = true; - stack.push({ - x: currentNode, - y: otherNodeId, - edge - }); - } - if (!(otherNodeId in nodes2)) { - biconnectedSearch2(root2, otherNodeId, currentNode); - nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].low); - if (nodes2[currentNode].id <= nodes2[otherNodeId].low) { - nodes2[currentNode].cutVertex = true; - buildComponent(currentNode, otherNodeId); - } - } else { - nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].id); - } - } - }); - } - }; - eles.forEach(function(ele) { - if (ele.isNode()) { - var nodeId = ele.id(); - if (!(nodeId in nodes2)) { - edgeCount = 0; - biconnectedSearch(nodeId, nodeId); - nodes2[nodeId].cutVertex = edgeCount > 1; - } - } - }); - var cutVertices = Object.keys(nodes2).filter(function(id2) { - return nodes2[id2].cutVertex; - }).map(function(id2) { - return eles.getElementById(id2); - }); - return { - cut: eles.spawn(cutVertices), - components - }; - }; - var hopcroftTarjanBiconnected$1 = { - hopcroftTarjanBiconnected, - htbc: hopcroftTarjanBiconnected, - htb: hopcroftTarjanBiconnected, - hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected - }; - var tarjanStronglyConnected = function tarjanStronglyConnected2() { - var eles = this; - var nodes2 = {}; - var index = 0; - var components = []; - var stack = []; - var cut = eles.spawn(eles); - var stronglyConnectedSearch = function stronglyConnectedSearch2(sourceNodeId) { - stack.push(sourceNodeId); - nodes2[sourceNodeId] = { - index, - low: index++, - explored: false - }; - var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles); - connectedEdges.forEach(function(edge) { - var targetNodeId = edge.target().id(); - if (targetNodeId !== sourceNodeId) { - if (!(targetNodeId in nodes2)) { - stronglyConnectedSearch2(targetNodeId); - } - if (!nodes2[targetNodeId].explored) { - nodes2[sourceNodeId].low = Math.min(nodes2[sourceNodeId].low, nodes2[targetNodeId].low); - } - } - }); - if (nodes2[sourceNodeId].index === nodes2[sourceNodeId].low) { - var componentNodes = eles.spawn(); - for (; ; ) { - var nodeId = stack.pop(); - componentNodes.merge(eles.getElementById(nodeId)); - nodes2[nodeId].low = nodes2[sourceNodeId].index; - nodes2[nodeId].explored = true; - if (nodeId === sourceNodeId) { - break; - } - } - var componentEdges = componentNodes.edgesWith(componentNodes); - var component = componentNodes.merge(componentEdges); - components.push(component); - cut = cut.difference(component); - } - }; - eles.forEach(function(ele) { - if (ele.isNode()) { - var nodeId = ele.id(); - if (!(nodeId in nodes2)) { - stronglyConnectedSearch(nodeId); - } - } - }); - return { - cut, - components - }; - }; - var tarjanStronglyConnected$1 = { - tarjanStronglyConnected, - tsc: tarjanStronglyConnected, - tscc: tarjanStronglyConnected, - tarjanStronglyConnectedComponents: tarjanStronglyConnected - }; - var elesfn$j = {}; - [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function(props) { - extend(elesfn$j, props); - }); - var STATE_PENDING = 0; - var STATE_FULFILLED = 1; - var STATE_REJECTED = 2; - var api = function api2(executor) { - if (!(this instanceof api2)) - return new api2(executor); - this.id = "Thenable/1.0.7"; - this.state = STATE_PENDING; - this.fulfillValue = void 0; - this.rejectReason = void 0; - this.onFulfilled = []; - this.onRejected = []; - this.proxy = { - then: this.then.bind(this) - }; - if (typeof executor === "function") - executor.call(this, this.fulfill.bind(this), this.reject.bind(this)); - }; - api.prototype = { - /* promise resolving methods */ - fulfill: function fulfill(value) { - return deliver(this, STATE_FULFILLED, "fulfillValue", value); - }, - reject: function reject(value) { - return deliver(this, STATE_REJECTED, "rejectReason", value); - }, - /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */ - then: function then(onFulfilled, onRejected) { - var curr = this; - var next2 = new api(); - curr.onFulfilled.push(resolver(onFulfilled, next2, "fulfill")); - curr.onRejected.push(resolver(onRejected, next2, "reject")); - execute(curr); - return next2.proxy; - } - }; - var deliver = function deliver2(curr, state, name2, value) { - if (curr.state === STATE_PENDING) { - curr.state = state; - curr[name2] = value; - execute(curr); - } - return curr; - }; - var execute = function execute2(curr) { - if (curr.state === STATE_FULFILLED) - execute_handlers(curr, "onFulfilled", curr.fulfillValue); - else if (curr.state === STATE_REJECTED) - execute_handlers(curr, "onRejected", curr.rejectReason); - }; - var execute_handlers = function execute_handlers2(curr, name2, value) { - if (curr[name2].length === 0) - return; - var handlers = curr[name2]; - curr[name2] = []; - var func = function func2() { - for (var i2 = 0; i2 < handlers.length; i2++) { - handlers[i2](value); - } - }; - if (typeof setImmediate === "function") - setImmediate(func); - else - setTimeout(func, 0); - }; - var resolver = function resolver2(cb, next2, method) { - return function(value) { - if (typeof cb !== "function") - next2[method].call(next2, value); - else { - var result; - try { - result = cb(value); - } catch (e) { - next2.reject(e); - return; - } - resolve(next2, result); - } - }; - }; - var resolve = function resolve2(promise2, x) { - if (promise2 === x || promise2.proxy === x) { - promise2.reject(new TypeError("cannot resolve promise with itself")); - return; - } - var then; - if (_typeof(x) === "object" && x !== null || typeof x === "function") { - try { - then = x.then; - } catch (e) { - promise2.reject(e); - return; - } - } - if (typeof then === "function") { - var resolved = false; - try { - then.call( - x, - /* resolvePromise */ - /* [Promises/A+ 2.3.3.3.1] */ - function(y) { - if (resolved) - return; - resolved = true; - if (y === x) - promise2.reject(new TypeError("circular thenable chain")); - else - resolve2(promise2, y); - }, - /* rejectPromise */ - /* [Promises/A+ 2.3.3.3.2] */ - function(r) { - if (resolved) - return; - resolved = true; - promise2.reject(r); - } - ); - } catch (e) { - if (!resolved) - promise2.reject(e); - } - return; - } - promise2.fulfill(x); - }; - api.all = function(ps) { - return new api(function(resolveAll, rejectAll) { - var vals = new Array(ps.length); - var doneCount = 0; - var fulfill = function fulfill2(i3, val) { - vals[i3] = val; - doneCount++; - if (doneCount === ps.length) { - resolveAll(vals); - } - }; - for (var i2 = 0; i2 < ps.length; i2++) { - (function(i3) { - var p2 = ps[i3]; - var isPromise = p2 != null && p2.then != null; - if (isPromise) { - p2.then(function(val2) { - fulfill(i3, val2); - }, function(err) { - rejectAll(err); - }); - } else { - var val = p2; - fulfill(i3, val); - } - })(i2); - } - }); - }; - api.resolve = function(val) { - return new api(function(resolve2, reject) { - resolve2(val); - }); - }; - api.reject = function(val) { - return new api(function(resolve2, reject) { - reject(val); - }); - }; - var Promise$1 = typeof Promise !== "undefined" ? Promise : api; - var Animation = function Animation2(target, opts, opts2) { - var isCore = core(target); - var isEle = !isCore; - var _p = this._private = extend({ - duration: 1e3 - }, opts, opts2); - _p.target = target; - _p.style = _p.style || _p.css; - _p.started = false; - _p.playing = false; - _p.hooked = false; - _p.applying = false; - _p.progress = 0; - _p.completes = []; - _p.frames = []; - if (_p.complete && fn$6(_p.complete)) { - _p.completes.push(_p.complete); - } - if (isEle) { - var pos = target.position(); - _p.startPosition = _p.startPosition || { - x: pos.x, - y: pos.y - }; - _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style); - } - if (isCore) { - var pan = target.pan(); - _p.startPan = { - x: pan.x, - y: pan.y - }; - _p.startZoom = target.zoom(); - } - this.length = 1; - this[0] = this; - }; - var anifn = Animation.prototype; - extend(anifn, { - instanceString: function instanceString() { - return "animation"; - }, - hook: function hook() { - var _p = this._private; - if (!_p.hooked) { - var q; - var tAni = _p.target._private.animation; - if (_p.queue) { - q = tAni.queue; - } else { - q = tAni.current; - } - q.push(this); - if (elementOrCollection(_p.target)) { - _p.target.cy().addToAnimationPool(_p.target); - } - _p.hooked = true; - } - return this; - }, - play: function play() { - var _p = this._private; - if (_p.progress === 1) { - _p.progress = 0; - } - _p.playing = true; - _p.started = false; - _p.stopped = false; - this.hook(); - return this; - }, - playing: function playing() { - return this._private.playing; - }, - apply: function apply() { - var _p = this._private; - _p.applying = true; - _p.started = false; - _p.stopped = false; - this.hook(); - return this; - }, - applying: function applying() { - return this._private.applying; - }, - pause: function pause() { - var _p = this._private; - _p.playing = false; - _p.started = false; - return this; - }, - stop: function stop() { - var _p = this._private; - _p.playing = false; - _p.started = false; - _p.stopped = true; - return this; - }, - rewind: function rewind() { - return this.progress(0); - }, - fastforward: function fastforward() { - return this.progress(1); - }, - time: function time(t) { - var _p = this._private; - if (t === void 0) { - return _p.progress * _p.duration; - } else { - return this.progress(t / _p.duration); - } - }, - progress: function progress(p2) { - var _p = this._private; - var wasPlaying = _p.playing; - if (p2 === void 0) { - return _p.progress; - } else { - if (wasPlaying) { - this.pause(); - } - _p.progress = p2; - _p.started = false; - if (wasPlaying) { - this.play(); - } - } - return this; - }, - completed: function completed() { - return this._private.progress === 1; - }, - reverse: function reverse() { - var _p = this._private; - var wasPlaying = _p.playing; - if (wasPlaying) { - this.pause(); - } - _p.progress = 1 - _p.progress; - _p.started = false; - var swap = function swap2(a, b) { - var _pa = _p[a]; - if (_pa == null) { - return; - } - _p[a] = _p[b]; - _p[b] = _pa; - }; - swap("zoom", "startZoom"); - swap("pan", "startPan"); - swap("position", "startPosition"); - if (_p.style) { - for (var i2 = 0; i2 < _p.style.length; i2++) { - var prop = _p.style[i2]; - var name2 = prop.name; - var startStyleProp = _p.startStyle[name2]; - _p.startStyle[name2] = prop; - _p.style[i2] = startStyleProp; - } - } - if (wasPlaying) { - this.play(); - } - return this; - }, - promise: function promise2(type) { - var _p = this._private; - var arr; - switch (type) { - case "frame": - arr = _p.frames; - break; - default: - case "complete": - case "completed": - arr = _p.completes; - } - return new Promise$1(function(resolve2, reject) { - arr.push(function() { - resolve2(); - }); - }); - } - }); - anifn.complete = anifn.completed; - anifn.run = anifn.play; - anifn.running = anifn.playing; - var define$3 = { - animated: function animated() { - return function animatedImpl() { - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - var cy = this._private.cy || this; - if (!cy.styleEnabled()) { - return false; - } - var ele = all[0]; - if (ele) { - return ele._private.animation.current.length > 0; - } - }; - }, - // animated - clearQueue: function clearQueue() { - return function clearQueueImpl() { - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - var cy = this._private.cy || this; - if (!cy.styleEnabled()) { - return this; - } - for (var i2 = 0; i2 < all.length; i2++) { - var ele = all[i2]; - ele._private.animation.queue = []; - } - return this; - }; - }, - // clearQueue - delay: function delay() { - return function delayImpl(time, complete) { - var cy = this._private.cy || this; - if (!cy.styleEnabled()) { - return this; - } - return this.animate({ - delay: time, - duration: time, - complete - }); - }; - }, - // delay - delayAnimation: function delayAnimation() { - return function delayAnimationImpl(time, complete) { - var cy = this._private.cy || this; - if (!cy.styleEnabled()) { - return this; - } - return this.animation({ - delay: time, - duration: time, - complete - }); - }; - }, - // delay - animation: function animation() { - return function animationImpl(properties, params) { - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - var cy = this._private.cy || this; - var isCore = !selfIsArrayLike; - var isEles = !isCore; - if (!cy.styleEnabled()) { - return this; - } - var style = cy.style(); - properties = extend({}, properties, params); - var propertiesEmpty = Object.keys(properties).length === 0; - if (propertiesEmpty) { - return new Animation(all[0], properties); - } - if (properties.duration === void 0) { - properties.duration = 400; - } - switch (properties.duration) { - case "slow": - properties.duration = 600; - break; - case "fast": - properties.duration = 200; - break; - } - if (isEles) { - properties.style = style.getPropsList(properties.style || properties.css); - properties.css = void 0; - } - if (isEles && properties.renderedPosition != null) { - var rpos = properties.renderedPosition; - var pan = cy.pan(); - var zoom = cy.zoom(); - properties.position = renderedToModelPosition(rpos, zoom, pan); - } - if (isCore && properties.panBy != null) { - var panBy = properties.panBy; - var cyPan = cy.pan(); - properties.pan = { - x: cyPan.x + panBy.x, - y: cyPan.y + panBy.y - }; - } - var center = properties.center || properties.centre; - if (isCore && center != null) { - var centerPan = cy.getCenterPan(center.eles, properties.zoom); - if (centerPan != null) { - properties.pan = centerPan; - } - } - if (isCore && properties.fit != null) { - var fit = properties.fit; - var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding); - if (fitVp != null) { - properties.pan = fitVp.pan; - properties.zoom = fitVp.zoom; - } - } - if (isCore && plainObject(properties.zoom)) { - var vp = cy.getZoomedViewport(properties.zoom); - if (vp != null) { - if (vp.zoomed) { - properties.zoom = vp.zoom; - } - if (vp.panned) { - properties.pan = vp.pan; - } - } else { - properties.zoom = null; - } - } - return new Animation(all[0], properties); - }; - }, - // animate - animate: function animate() { - return function animateImpl(properties, params) { - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - var cy = this._private.cy || this; - if (!cy.styleEnabled()) { - return this; - } - if (params) { - properties = extend({}, properties, params); - } - for (var i2 = 0; i2 < all.length; i2++) { - var ele = all[i2]; - var queue = ele.animated() && (properties.queue === void 0 || properties.queue); - var ani = ele.animation(properties, queue ? { - queue: true - } : void 0); - ani.play(); - } - return this; - }; - }, - // animate - stop: function stop() { - return function stopImpl(clearQueue, jumpToEnd) { - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - var cy = this._private.cy || this; - if (!cy.styleEnabled()) { - return this; - } - for (var i2 = 0; i2 < all.length; i2++) { - var ele = all[i2]; - var _p = ele._private; - var anis = _p.animation.current; - for (var j = 0; j < anis.length; j++) { - var ani = anis[j]; - var ani_p = ani._private; - if (jumpToEnd) { - ani_p.duration = 0; - } - } - if (clearQueue) { - _p.animation.queue = []; - } - if (!jumpToEnd) { - _p.animation.current = []; - } - } - cy.notify("draw"); - return this; - }; - } - // stop - }; - var isArray = Array.isArray; - var isArray_1 = isArray; - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; - function isKey(value, object2) { - if (isArray_1(value)) { - return false; - } - var type = typeof value; - if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol_1(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object2 != null && value in Object(object2); - } - var _isKey = isKey; - var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; - function isFunction(value) { - if (!isObject_1(value)) { - return false; - } - var tag = _baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - var isFunction_1 = isFunction; - var coreJsData = _root["__core-js_shared__"]; - var _coreJsData = coreJsData; - var maskSrcKey = function() { - var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ""); - return uid ? "Symbol(src)_1." + uid : ""; - }(); - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - var _isMasked = isMasked; - var funcProto$1 = Function.prototype; - var funcToString$1 = funcProto$1.toString; - function toSource(func) { - if (func != null) { - try { - return funcToString$1.call(func); - } catch (e) { - } - try { - return func + ""; - } catch (e) { - } - } - return ""; - } - var _toSource = toSource; - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - var reIsHostCtor = /^\[object .+?Constructor\]$/; - var funcProto = Function.prototype, objectProto$3 = Object.prototype; - var funcToString = funcProto.toString; - var hasOwnProperty$3 = objectProto$3.hasOwnProperty; - var reIsNative = RegExp( - "^" + funcToString.call(hasOwnProperty$3).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" - ); - function baseIsNative(value) { - if (!isObject_1(value) || _isMasked(value)) { - return false; - } - var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; - return pattern.test(_toSource(value)); - } - var _baseIsNative = baseIsNative; - function getValue$1(object2, key) { - return object2 == null ? void 0 : object2[key]; - } - var _getValue = getValue$1; - function getNative(object2, key) { - var value = _getValue(object2, key); - return _baseIsNative(value) ? value : void 0; - } - var _getNative = getNative; - var nativeCreate = _getNative(Object, "create"); - var _nativeCreate = nativeCreate; - function hashClear() { - this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; - this.size = 0; - } - var _hashClear = hashClear; - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - var _hashDelete = hashDelete; - var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; - var objectProto$2 = Object.prototype; - var hasOwnProperty$2 = objectProto$2.hasOwnProperty; - function hashGet(key) { - var data2 = this.__data__; - if (_nativeCreate) { - var result = data2[key]; - return result === HASH_UNDEFINED$1 ? void 0 : result; - } - return hasOwnProperty$2.call(data2, key) ? data2[key] : void 0; - } - var _hashGet = hashGet; - var objectProto$1 = Object.prototype; - var hasOwnProperty$1 = objectProto$1.hasOwnProperty; - function hashHas(key) { - var data2 = this.__data__; - return _nativeCreate ? data2[key] !== void 0 : hasOwnProperty$1.call(data2, key); - } - var _hashHas = hashHas; - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - function hashSet(key, value) { - var data2 = this.__data__; - this.size += this.has(key) ? 0 : 1; - data2[key] = _nativeCreate && value === void 0 ? HASH_UNDEFINED : value; - return this; - } - var _hashSet = hashSet; - function Hash(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - Hash.prototype.clear = _hashClear; - Hash.prototype["delete"] = _hashDelete; - Hash.prototype.get = _hashGet; - Hash.prototype.has = _hashHas; - Hash.prototype.set = _hashSet; - var _Hash = Hash; - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - var _listCacheClear = listCacheClear; - function eq(value, other) { - return value === other || value !== value && other !== other; - } - var eq_1 = eq; - function assocIndexOf(array2, key) { - var length = array2.length; - while (length--) { - if (eq_1(array2[length][0], key)) { - return length; - } - } - return -1; - } - var _assocIndexOf = assocIndexOf; - var arrayProto = Array.prototype; - var splice = arrayProto.splice; - function listCacheDelete(key) { - var data2 = this.__data__, index = _assocIndexOf(data2, key); - if (index < 0) { - return false; - } - var lastIndex = data2.length - 1; - if (index == lastIndex) { - data2.pop(); - } else { - splice.call(data2, index, 1); - } - --this.size; - return true; - } - var _listCacheDelete = listCacheDelete; - function listCacheGet(key) { - var data2 = this.__data__, index = _assocIndexOf(data2, key); - return index < 0 ? void 0 : data2[index][1]; - } - var _listCacheGet = listCacheGet; - function listCacheHas(key) { - return _assocIndexOf(this.__data__, key) > -1; - } - var _listCacheHas = listCacheHas; - function listCacheSet(key, value) { - var data2 = this.__data__, index = _assocIndexOf(data2, key); - if (index < 0) { - ++this.size; - data2.push([key, value]); - } else { - data2[index][1] = value; - } - return this; - } - var _listCacheSet = listCacheSet; - function ListCache(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - ListCache.prototype.clear = _listCacheClear; - ListCache.prototype["delete"] = _listCacheDelete; - ListCache.prototype.get = _listCacheGet; - ListCache.prototype.has = _listCacheHas; - ListCache.prototype.set = _listCacheSet; - var _ListCache = ListCache; - var Map$1 = _getNative(_root, "Map"); - var _Map = Map$1; - function mapCacheClear() { - this.size = 0; - this.__data__ = { - "hash": new _Hash(), - "map": new (_Map || _ListCache)(), - "string": new _Hash() - }; - } - var _mapCacheClear = mapCacheClear; - function isKeyable(value) { - var type = typeof value; - return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; - } - var _isKeyable = isKeyable; - function getMapData(map, key) { - var data2 = map.__data__; - return _isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map; - } - var _getMapData = getMapData; - function mapCacheDelete(key) { - var result = _getMapData(this, key)["delete"](key); - this.size -= result ? 1 : 0; - return result; - } - var _mapCacheDelete = mapCacheDelete; - function mapCacheGet(key) { - return _getMapData(this, key).get(key); - } - var _mapCacheGet = mapCacheGet; - function mapCacheHas(key) { - return _getMapData(this, key).has(key); - } - var _mapCacheHas = mapCacheHas; - function mapCacheSet(key, value) { - var data2 = _getMapData(this, key), size = data2.size; - data2.set(key, value); - this.size += data2.size == size ? 0 : 1; - return this; - } - var _mapCacheSet = mapCacheSet; - function MapCache(entries) { - var index = -1, length = entries == null ? 0 : entries.length; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - MapCache.prototype.clear = _mapCacheClear; - MapCache.prototype["delete"] = _mapCacheDelete; - MapCache.prototype.get = _mapCacheGet; - MapCache.prototype.has = _mapCacheHas; - MapCache.prototype.set = _mapCacheSet; - var _MapCache = MapCache; - var FUNC_ERROR_TEXT = "Expected a function"; - function memoize(func, resolver2) { - if (typeof func != "function" || resolver2 != null && typeof resolver2 != "function") { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, key = resolver2 ? resolver2.apply(this, args) : args[0], cache2 = memoized.cache; - if (cache2.has(key)) { - return cache2.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache2.set(key, result) || cache2; - return result; - }; - memoized.cache = new (memoize.Cache || _MapCache)(); - return memoized; - } - memoize.Cache = _MapCache; - var memoize_1 = memoize; - var MAX_MEMOIZE_SIZE = 500; - function memoizeCapped(func) { - var result = memoize_1(func, function(key) { - if (cache2.size === MAX_MEMOIZE_SIZE) { - cache2.clear(); - } - return key; - }); - var cache2 = result.cache; - return result; - } - var _memoizeCapped = memoizeCapped; - var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - var reEscapeChar = /\\(\\)?/g; - var stringToPath = _memoizeCapped(function(string2) { - var result = []; - if (string2.charCodeAt(0) === 46) { - result.push(""); - } - string2.replace(rePropName, function(match2, number2, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, "$1") : number2 || match2); - }); - return result; - }); - var _stringToPath = stringToPath; - function arrayMap(array2, iteratee) { - var index = -1, length = array2 == null ? 0 : array2.length, result = Array(length); - while (++index < length) { - result[index] = iteratee(array2[index], index, array2); - } - return result; - } - var _arrayMap = arrayMap; - var INFINITY$1 = 1 / 0; - var symbolProto = _Symbol ? _Symbol.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0; - function baseToString(value) { - if (typeof value == "string") { - return value; - } - if (isArray_1(value)) { - return _arrayMap(value, baseToString) + ""; - } - if (isSymbol_1(value)) { - return symbolToString ? symbolToString.call(value) : ""; - } - var result = value + ""; - return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result; - } - var _baseToString = baseToString; - function toString$1(value) { - return value == null ? "" : _baseToString(value); - } - var toString_1 = toString$1; - function castPath(value, object2) { - if (isArray_1(value)) { - return value; - } - return _isKey(value, object2) ? [value] : _stringToPath(toString_1(value)); - } - var _castPath = castPath; - var INFINITY = 1 / 0; - function toKey(value) { - if (typeof value == "string" || isSymbol_1(value)) { - return value; - } - var result = value + ""; - return result == "0" && 1 / value == -INFINITY ? "-0" : result; - } - var _toKey = toKey; - function baseGet(object2, path) { - path = _castPath(path, object2); - var index = 0, length = path.length; - while (object2 != null && index < length) { - object2 = object2[_toKey(path[index++])]; - } - return index && index == length ? object2 : void 0; - } - var _baseGet = baseGet; - function get(object2, path, defaultValue) { - var result = object2 == null ? void 0 : _baseGet(object2, path); - return result === void 0 ? defaultValue : result; - } - var get_1 = get; - var defineProperty = function() { - try { - var func = _getNative(Object, "defineProperty"); - func({}, "", {}); - return func; - } catch (e) { - } - }(); - var _defineProperty = defineProperty; - function baseAssignValue(object2, key, value) { - if (key == "__proto__" && _defineProperty) { - _defineProperty(object2, key, { - "configurable": true, - "enumerable": true, - "value": value, - "writable": true - }); - } else { - object2[key] = value; - } - } - var _baseAssignValue = baseAssignValue; - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - function assignValue(object2, key, value) { - var objValue = object2[key]; - if (!(hasOwnProperty.call(object2, key) && eq_1(objValue, value)) || value === void 0 && !(key in object2)) { - _baseAssignValue(object2, key, value); - } - } - var _assignValue = assignValue; - var MAX_SAFE_INTEGER = 9007199254740991; - var reIsUint = /^(?:0|[1-9]\d*)$/; - 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); - } - var _isIndex = isIndex; - function baseSet(object2, path, value, customizer) { - if (!isObject_1(object2)) { - return object2; - } - path = _castPath(path, object2); - var index = -1, length = path.length, lastIndex = length - 1, nested = object2; - while (nested != null && ++index < length) { - var key = _toKey(path[index]), newValue = value; - if (key === "__proto__" || key === "constructor" || key === "prototype") { - return object2; - } - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : void 0; - if (newValue === void 0) { - newValue = isObject_1(objValue) ? objValue : _isIndex(path[index + 1]) ? [] : {}; - } - } - _assignValue(nested, key, newValue); - nested = nested[key]; - } - return object2; - } - var _baseSet = baseSet; - function set(object2, path, value) { - return object2 == null ? object2 : _baseSet(object2, path, value); - } - var set_1 = set; - function copyArray(source, array2) { - var index = -1, length = source.length; - array2 || (array2 = Array(length)); - while (++index < length) { - array2[index] = source[index]; - } - return array2; - } - var _copyArray = copyArray; - function toPath(value) { - if (isArray_1(value)) { - return _arrayMap(value, _toKey); - } - return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value))); - } - var toPath_1 = toPath; - var define$2 = { - // access data field - data: function data2(params) { - var defaults2 = { - field: "data", - bindingEvent: "data", - allowBinding: false, - allowSetting: false, - allowGetting: false, - settingEvent: "data", - settingTriggersEvent: false, - triggerFnName: "trigger", - immutableKeys: {}, - // key => true if immutable - updateStyle: false, - beforeGet: function beforeGet(self2) { - }, - beforeSet: function beforeSet(self2, obj) { - }, - onSet: function onSet(self2) { - }, - canSet: function canSet(self2) { - return true; - } - }; - params = extend({}, defaults2, params); - return function dataImpl(name2, value) { - var p2 = params; - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - var single = selfIsArrayLike ? self2[0] : self2; - if (string(name2)) { - var isPathLike = name2.indexOf(".") !== -1; - var path = isPathLike && toPath_1(name2); - if (p2.allowGetting && value === void 0) { - var ret; - if (single) { - p2.beforeGet(single); - if (path && single._private[p2.field][name2] === void 0) { - ret = get_1(single._private[p2.field], path); - } else { - ret = single._private[p2.field][name2]; - } - } - return ret; - } else if (p2.allowSetting && value !== void 0) { - var valid2 = !p2.immutableKeys[name2]; - if (valid2) { - var change = _defineProperty$1({}, name2, value); - p2.beforeSet(self2, change); - for (var i2 = 0, l = all.length; i2 < l; i2++) { - var ele = all[i2]; - if (p2.canSet(ele)) { - if (path && single._private[p2.field][name2] === void 0) { - set_1(ele._private[p2.field], path, value); - } else { - ele._private[p2.field][name2] = value; - } - } - } - if (p2.updateStyle) { - self2.updateStyle(); - } - p2.onSet(self2); - if (p2.settingTriggersEvent) { - self2[p2.triggerFnName](p2.settingEvent); - } - } - } - } else if (p2.allowSetting && plainObject(name2)) { - var obj = name2; - var k, v; - var keys = Object.keys(obj); - p2.beforeSet(self2, obj); - for (var _i = 0; _i < keys.length; _i++) { - k = keys[_i]; - v = obj[k]; - var _valid = !p2.immutableKeys[k]; - if (_valid) { - for (var j = 0; j < all.length; j++) { - var _ele = all[j]; - if (p2.canSet(_ele)) { - _ele._private[p2.field][k] = v; - } - } - } - } - if (p2.updateStyle) { - self2.updateStyle(); - } - p2.onSet(self2); - if (p2.settingTriggersEvent) { - self2[p2.triggerFnName](p2.settingEvent); - } - } else if (p2.allowBinding && fn$6(name2)) { - var fn2 = name2; - self2.on(p2.bindingEvent, fn2); - } else if (p2.allowGetting && name2 === void 0) { - var _ret; - if (single) { - p2.beforeGet(single); - _ret = single._private[p2.field]; - } - return _ret; - } - return self2; - }; - }, - // data - // remove data field - removeData: function removeData(params) { - var defaults2 = { - field: "data", - event: "data", - triggerFnName: "trigger", - triggerEvent: false, - immutableKeys: {} - // key => true if immutable - }; - params = extend({}, defaults2, params); - return function removeDataImpl(names) { - var p2 = params; - var self2 = this; - var selfIsArrayLike = self2.length !== void 0; - var all = selfIsArrayLike ? self2 : [self2]; - if (string(names)) { - var keys = names.split(/\s+/); - var l = keys.length; - for (var i2 = 0; i2 < l; i2++) { - var key = keys[i2]; - if (emptyString(key)) { - continue; - } - var valid2 = !p2.immutableKeys[key]; - if (valid2) { - for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) { - all[i_a]._private[p2.field][key] = void 0; - } - } - } - if (p2.triggerEvent) { - self2[p2.triggerFnName](p2.event); - } - } else if (names === void 0) { - for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) { - var _privateFields = all[_i_a]._private[p2.field]; - var _keys = Object.keys(_privateFields); - for (var _i2 = 0; _i2 < _keys.length; _i2++) { - var _key = _keys[_i2]; - var validKeyToDelete = !p2.immutableKeys[_key]; - if (validKeyToDelete) { - _privateFields[_key] = void 0; - } - } - } - if (p2.triggerEvent) { - self2[p2.triggerFnName](p2.event); - } - } - return self2; - }; - } - // removeData - }; - var define$1 = { - eventAliasesOn: function eventAliasesOn(proto) { - var p2 = proto; - p2.addListener = p2.listen = p2.bind = p2.on; - p2.unlisten = p2.unbind = p2.off = p2.removeListener; - p2.trigger = p2.emit; - p2.pon = p2.promiseOn = function(events, selector) { - var self2 = this; - var args = Array.prototype.slice.call(arguments, 0); - return new Promise$1(function(resolve2, reject) { - var callback = function callback2(e) { - self2.off.apply(self2, offArgs); - resolve2(e); - }; - var onArgs = args.concat([callback]); - var offArgs = onArgs.concat([]); - self2.on.apply(self2, onArgs); - }); - }; - } - }; - var define2 = {}; - [define$3, define$2, define$1].forEach(function(m) { - extend(define2, m); - }); - var elesfn$i = { - animate: define2.animate(), - animation: define2.animation(), - animated: define2.animated(), - clearQueue: define2.clearQueue(), - delay: define2.delay(), - delayAnimation: define2.delayAnimation(), - stop: define2.stop() - }; - var elesfn$h = { - classes: function classes(_classes) { - var self2 = this; - if (_classes === void 0) { - var ret = []; - self2[0]._private.classes.forEach(function(cls2) { - return ret.push(cls2); - }); - return ret; - } else if (!array(_classes)) { - _classes = (_classes || "").match(/\S+/g) || []; - } - var changed = []; - var classesSet = new Set$1(_classes); - for (var j = 0; j < self2.length; j++) { - var ele = self2[j]; - var _p = ele._private; - var eleClasses = _p.classes; - var changedEle = false; - for (var i2 = 0; i2 < _classes.length; i2++) { - var cls = _classes[i2]; - var eleHasClass = eleClasses.has(cls); - if (!eleHasClass) { - changedEle = true; - break; - } - } - if (!changedEle) { - changedEle = eleClasses.size !== _classes.length; - } - if (changedEle) { - _p.classes = classesSet; - changed.push(ele); - } - } - if (changed.length > 0) { - this.spawn(changed).updateStyle().emit("class"); - } - return self2; - }, - addClass: function addClass(classes) { - return this.toggleClass(classes, true); - }, - hasClass: function hasClass(className) { - var ele = this[0]; - return ele != null && ele._private.classes.has(className); - }, - toggleClass: function toggleClass(classes, toggle) { - if (!array(classes)) { - classes = classes.match(/\S+/g) || []; - } - var self2 = this; - var toggleUndefd = toggle === void 0; - var changed = []; - for (var i2 = 0, il = self2.length; i2 < il; i2++) { - var ele = self2[i2]; - var eleClasses = ele._private.classes; - var changedEle = false; - for (var j = 0; j < classes.length; j++) { - var cls = classes[j]; - var hasClass = eleClasses.has(cls); - var changedNow = false; - if (toggle || toggleUndefd && !hasClass) { - eleClasses.add(cls); - changedNow = true; - } else if (!toggle || toggleUndefd && hasClass) { - eleClasses["delete"](cls); - changedNow = true; - } - if (!changedEle && changedNow) { - changed.push(ele); - changedEle = true; - } - } - } - if (changed.length > 0) { - this.spawn(changed).updateStyle().emit("class"); - } - return self2; - }, - removeClass: function removeClass(classes) { - return this.toggleClass(classes, false); - }, - flashClass: function flashClass(classes, duration) { - var self2 = this; - if (duration == null) { - duration = 250; - } else if (duration === 0) { - return self2; - } - self2.addClass(classes); - setTimeout(function() { - self2.removeClass(classes); - }, duration); - return self2; - } - }; - elesfn$h.className = elesfn$h.classNames = elesfn$h.classes; - var tokens = { - metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]", - // chars we need to escape in let names, etc - comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=", - // binary comparison op (used in data selectors) - boolOp: "\\?|\\!|\\^", - // boolean (unary) operators (used in data selectors) - string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`, - // string literals (used in data selectors) -- doublequotes | singlequotes - number, - // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123 - meta: "degree|indegree|outdegree", - // allowed metadata fields (i.e. allowed functions to use from Collection) - separator: "\\s*,\\s*", - // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass - descendant: "\\s+", - child: "\\s+>\\s+", - subject: "\\$", - group: "node|edge|\\*", - directedEdge: "\\s+->\\s+", - undirectedEdge: "\\s+<->\\s+" - }; - tokens.variable = "(?:[\\w-.]|(?:\\\\" + tokens.metaChar + "))+"; - tokens.className = "(?:[\\w-]|(?:\\\\" + tokens.metaChar + "))+"; - tokens.value = tokens.string + "|" + tokens.number; - tokens.id = tokens.variable; - (function() { - var ops, op, i2; - ops = tokens.comparatorOp.split("|"); - for (i2 = 0; i2 < ops.length; i2++) { - op = ops[i2]; - tokens.comparatorOp += "|@" + op; - } - ops = tokens.comparatorOp.split("|"); - for (i2 = 0; i2 < ops.length; i2++) { - op = ops[i2]; - if (op.indexOf("!") >= 0) { - continue; - } - if (op === "=") { - continue; - } - tokens.comparatorOp += "|\\!" + op; - } - })(); - var newQuery = function newQuery2() { - return { - checks: [] - }; - }; - var Type = { - /** E.g. node */ - GROUP: 0, - /** A collection of elements */ - COLLECTION: 1, - /** A filter(ele) function */ - FILTER: 2, - /** E.g. [foo > 1] */ - DATA_COMPARE: 3, - /** E.g. [foo] */ - DATA_EXIST: 4, - /** E.g. [?foo] */ - DATA_BOOL: 5, - /** E.g. [[degree > 2]] */ - META_COMPARE: 6, - /** E.g. :selected */ - STATE: 7, - /** E.g. #foo */ - ID: 8, - /** E.g. .foo */ - CLASS: 9, - /** E.g. #foo <-> #bar */ - UNDIRECTED_EDGE: 10, - /** E.g. #foo -> #bar */ - DIRECTED_EDGE: 11, - /** E.g. $#foo -> #bar */ - NODE_SOURCE: 12, - /** E.g. #foo -> $#bar */ - NODE_TARGET: 13, - /** E.g. $#foo <-> #bar */ - NODE_NEIGHBOR: 14, - /** E.g. #foo > #bar */ - CHILD: 15, - /** E.g. #foo #bar */ - DESCENDANT: 16, - /** E.g. $#foo > #bar */ - PARENT: 17, - /** E.g. $#foo #bar */ - ANCESTOR: 18, - /** E.g. #foo > $bar > #baz */ - COMPOUND_SPLIT: 19, - /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */ - TRUE: 20 - }; - var stateSelectors = [{ - selector: ":selected", - matches: function matches2(ele) { - return ele.selected(); - } - }, { - selector: ":unselected", - matches: function matches2(ele) { - return !ele.selected(); - } - }, { - selector: ":selectable", - matches: function matches2(ele) { - return ele.selectable(); - } - }, { - selector: ":unselectable", - matches: function matches2(ele) { - return !ele.selectable(); - } - }, { - selector: ":locked", - matches: function matches2(ele) { - return ele.locked(); - } - }, { - selector: ":unlocked", - matches: function matches2(ele) { - return !ele.locked(); - } - }, { - selector: ":visible", - matches: function matches2(ele) { - return ele.visible(); - } - }, { - selector: ":hidden", - matches: function matches2(ele) { - return !ele.visible(); - } - }, { - selector: ":transparent", - matches: function matches2(ele) { - return ele.transparent(); - } - }, { - selector: ":grabbed", - matches: function matches2(ele) { - return ele.grabbed(); - } - }, { - selector: ":free", - matches: function matches2(ele) { - return !ele.grabbed(); - } - }, { - selector: ":removed", - matches: function matches2(ele) { - return ele.removed(); - } - }, { - selector: ":inside", - matches: function matches2(ele) { - return !ele.removed(); - } - }, { - selector: ":grabbable", - matches: function matches2(ele) { - return ele.grabbable(); - } - }, { - selector: ":ungrabbable", - matches: function matches2(ele) { - return !ele.grabbable(); - } - }, { - selector: ":animated", - matches: function matches2(ele) { - return ele.animated(); - } - }, { - selector: ":unanimated", - matches: function matches2(ele) { - return !ele.animated(); - } - }, { - selector: ":parent", - matches: function matches2(ele) { - return ele.isParent(); - } - }, { - selector: ":childless", - matches: function matches2(ele) { - return ele.isChildless(); - } - }, { - selector: ":child", - matches: function matches2(ele) { - return ele.isChild(); - } - }, { - selector: ":orphan", - matches: function matches2(ele) { - return ele.isOrphan(); - } - }, { - selector: ":nonorphan", - matches: function matches2(ele) { - return ele.isChild(); - } - }, { - selector: ":compound", - matches: function matches2(ele) { - if (ele.isNode()) { - return ele.isParent(); - } else { - return ele.source().isParent() || ele.target().isParent(); - } - } - }, { - selector: ":loop", - matches: function matches2(ele) { - return ele.isLoop(); - } - }, { - selector: ":simple", - matches: function matches2(ele) { - return ele.isSimple(); - } - }, { - selector: ":active", - matches: function matches2(ele) { - return ele.active(); - } - }, { - selector: ":inactive", - matches: function matches2(ele) { - return !ele.active(); - } - }, { - selector: ":backgrounding", - matches: function matches2(ele) { - return ele.backgrounding(); - } - }, { - selector: ":nonbackgrounding", - matches: function matches2(ele) { - return !ele.backgrounding(); - } - }].sort(function(a, b) { - return descending(a.selector, b.selector); - }); - var lookup = function() { - var selToFn = {}; - var s; - for (var i2 = 0; i2 < stateSelectors.length; i2++) { - s = stateSelectors[i2]; - selToFn[s.selector] = s.matches; - } - return selToFn; - }(); - var stateSelectorMatches = function stateSelectorMatches2(sel, ele) { - return lookup[sel](ele); - }; - var stateSelectorRegex = "(" + stateSelectors.map(function(s) { - return s.selector; - }).join("|") + ")"; - var cleanMetaChars = function cleanMetaChars2(str) { - return str.replace(new RegExp("\\\\(" + tokens.metaChar + ")", "g"), function(match2, $1) { - return $1; - }); - }; - var replaceLastQuery = function replaceLastQuery2(selector, examiningQuery, replacementQuery) { - selector[selector.length - 1] = replacementQuery; - }; - var exprs = [{ - name: "group", - // just used for identifying when debugging - query: true, - regex: "(" + tokens.group + ")", - populate: function populate(selector, query, _ref) { - var _ref2 = _slicedToArray(_ref, 1), group = _ref2[0]; - query.checks.push({ - type: Type.GROUP, - value: group === "*" ? group : group + "s" - }); - } - }, { - name: "state", - query: true, - regex: stateSelectorRegex, - populate: function populate(selector, query, _ref3) { - var _ref4 = _slicedToArray(_ref3, 1), state = _ref4[0]; - query.checks.push({ - type: Type.STATE, - value: state - }); - } - }, { - name: "id", - query: true, - regex: "\\#(" + tokens.id + ")", - populate: function populate(selector, query, _ref5) { - var _ref6 = _slicedToArray(_ref5, 1), id = _ref6[0]; - query.checks.push({ - type: Type.ID, - value: cleanMetaChars(id) - }); - } - }, { - name: "className", - query: true, - regex: "\\.(" + tokens.className + ")", - populate: function populate(selector, query, _ref7) { - var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0]; - query.checks.push({ - type: Type.CLASS, - value: cleanMetaChars(className) - }); - } - }, { - name: "dataExists", - query: true, - regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]", - populate: function populate(selector, query, _ref9) { - var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0]; - query.checks.push({ - type: Type.DATA_EXIST, - field: cleanMetaChars(variable) - }); - } - }, { - name: "dataCompare", - query: true, - regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]", - populate: function populate(selector, query, _ref11) { - var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value = _ref12[2]; - var valueIsString = new RegExp("^" + tokens.string + "$").exec(value) != null; - if (valueIsString) { - value = value.substring(1, value.length - 1); - } else { - value = parseFloat(value); - } - query.checks.push({ - type: Type.DATA_COMPARE, - field: cleanMetaChars(variable), - operator: comparatorOp, - value - }); - } - }, { - name: "dataBool", - query: true, - regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]", - populate: function populate(selector, query, _ref13) { - var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1]; - query.checks.push({ - type: Type.DATA_BOOL, - field: cleanMetaChars(variable), - operator: boolOp - }); - } - }, { - name: "metaCompare", - query: true, - regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]", - populate: function populate(selector, query, _ref15) { - var _ref16 = _slicedToArray(_ref15, 3), meta2 = _ref16[0], comparatorOp = _ref16[1], number2 = _ref16[2]; - query.checks.push({ - type: Type.META_COMPARE, - field: cleanMetaChars(meta2), - operator: comparatorOp, - value: parseFloat(number2) - }); - } - }, { - name: "nextQuery", - separator: true, - regex: tokens.separator, - populate: function populate(selector, query) { - var currentSubject = selector.currentSubject; - var edgeCount = selector.edgeCount; - var compoundCount = selector.compoundCount; - var lastQ = selector[selector.length - 1]; - if (currentSubject != null) { - lastQ.subject = currentSubject; - selector.currentSubject = null; - } - lastQ.edgeCount = edgeCount; - lastQ.compoundCount = compoundCount; - selector.edgeCount = 0; - selector.compoundCount = 0; - var nextQuery = selector[selector.length++] = newQuery(); - return nextQuery; - } - }, { - name: "directedEdge", - separator: true, - regex: tokens.directedEdge, - populate: function populate(selector, query) { - if (selector.currentSubject == null) { - var edgeQuery = newQuery(); - var source = query; - var target = newQuery(); - edgeQuery.checks.push({ - type: Type.DIRECTED_EDGE, - source, - target - }); - replaceLastQuery(selector, query, edgeQuery); - selector.edgeCount++; - return target; - } else { - var srcTgtQ = newQuery(); - var _source = query; - var _target = newQuery(); - srcTgtQ.checks.push({ - type: Type.NODE_SOURCE, - source: _source, - target: _target - }); - replaceLastQuery(selector, query, srcTgtQ); - selector.edgeCount++; - return _target; - } - } - }, { - name: "undirectedEdge", - separator: true, - regex: tokens.undirectedEdge, - populate: function populate(selector, query) { - if (selector.currentSubject == null) { - var edgeQuery = newQuery(); - var source = query; - var target = newQuery(); - edgeQuery.checks.push({ - type: Type.UNDIRECTED_EDGE, - nodes: [source, target] - }); - replaceLastQuery(selector, query, edgeQuery); - selector.edgeCount++; - return target; - } else { - var nhoodQ = newQuery(); - var node = query; - var neighbor = newQuery(); - nhoodQ.checks.push({ - type: Type.NODE_NEIGHBOR, - node, - neighbor - }); - replaceLastQuery(selector, query, nhoodQ); - return neighbor; - } - } - }, { - name: "child", - separator: true, - regex: tokens.child, - populate: function populate(selector, query) { - if (selector.currentSubject == null) { - var parentChildQuery = newQuery(); - var child = newQuery(); - var parent = selector[selector.length - 1]; - parentChildQuery.checks.push({ - type: Type.CHILD, - parent, - child - }); - replaceLastQuery(selector, query, parentChildQuery); - selector.compoundCount++; - return child; - } else if (selector.currentSubject === query) { - var compound = newQuery(); - var left = selector[selector.length - 1]; - var right = newQuery(); - var subject = newQuery(); - var _child = newQuery(); - var _parent = newQuery(); - compound.checks.push({ - type: Type.COMPOUND_SPLIT, - left, - right, - subject - }); - subject.checks = query.checks; - query.checks = [{ - type: Type.TRUE - }]; - _parent.checks.push({ - type: Type.TRUE - }); - right.checks.push({ - type: Type.PARENT, - // type is swapped on right side queries - parent: _parent, - child: _child - // empty for now - }); - replaceLastQuery(selector, left, compound); - selector.currentSubject = subject; - selector.compoundCount++; - return _child; - } else { - var _parent2 = newQuery(); - var _child2 = newQuery(); - var pcQChecks = [{ - type: Type.PARENT, - parent: _parent2, - child: _child2 - }]; - _parent2.checks = query.checks; - query.checks = pcQChecks; - selector.compoundCount++; - return _child2; - } - } - }, { - name: "descendant", - separator: true, - regex: tokens.descendant, - populate: function populate(selector, query) { - if (selector.currentSubject == null) { - var ancChQuery = newQuery(); - var descendant = newQuery(); - var ancestor = selector[selector.length - 1]; - ancChQuery.checks.push({ - type: Type.DESCENDANT, - ancestor, - descendant - }); - replaceLastQuery(selector, query, ancChQuery); - selector.compoundCount++; - return descendant; - } else if (selector.currentSubject === query) { - var compound = newQuery(); - var left = selector[selector.length - 1]; - var right = newQuery(); - var subject = newQuery(); - var _descendant = newQuery(); - var _ancestor = newQuery(); - compound.checks.push({ - type: Type.COMPOUND_SPLIT, - left, - right, - subject - }); - subject.checks = query.checks; - query.checks = [{ - type: Type.TRUE - }]; - _ancestor.checks.push({ - type: Type.TRUE - }); - right.checks.push({ - type: Type.ANCESTOR, - // type is swapped on right side queries - ancestor: _ancestor, - descendant: _descendant - // empty for now - }); - replaceLastQuery(selector, left, compound); - selector.currentSubject = subject; - selector.compoundCount++; - return _descendant; - } else { - var _ancestor2 = newQuery(); - var _descendant2 = newQuery(); - var adQChecks = [{ - type: Type.ANCESTOR, - ancestor: _ancestor2, - descendant: _descendant2 - }]; - _ancestor2.checks = query.checks; - query.checks = adQChecks; - selector.compoundCount++; - return _descendant2; - } - } - }, { - name: "subject", - modifier: true, - regex: tokens.subject, - populate: function populate(selector, query) { - if (selector.currentSubject != null && selector.currentSubject !== query) { - warn("Redefinition of subject in selector `" + selector.toString() + "`"); - return false; - } - selector.currentSubject = query; - var topQ = selector[selector.length - 1]; - var topChk = topQ.checks[0]; - var topType = topChk == null ? null : topChk.type; - if (topType === Type.DIRECTED_EDGE) { - topChk.type = Type.NODE_TARGET; - } else if (topType === Type.UNDIRECTED_EDGE) { - topChk.type = Type.NODE_NEIGHBOR; - topChk.node = topChk.nodes[1]; - topChk.neighbor = topChk.nodes[0]; - topChk.nodes = null; - } - } - }]; - exprs.forEach(function(e) { - return e.regexObj = new RegExp("^" + e.regex); - }); - var consumeExpr = function consumeExpr2(remaining) { - var expr; - var match2; - var name2; - for (var j = 0; j < exprs.length; j++) { - var e = exprs[j]; - var n = e.name; - var m = remaining.match(e.regexObj); - if (m != null) { - match2 = m; - expr = e; - name2 = n; - var consumed = m[0]; - remaining = remaining.substring(consumed.length); - break; - } - } - return { - expr, - match: match2, - name: name2, - remaining - }; - }; - var consumeWhitespace = function consumeWhitespace2(remaining) { - var match2 = remaining.match(/^\s+/); - if (match2) { - var consumed = match2[0]; - remaining = remaining.substring(consumed.length); - } - return remaining; - }; - var parse = function parse2(selector) { - var self2 = this; - var remaining = self2.inputText = selector; - var currentQuery = self2[0] = newQuery(); - self2.length = 1; - remaining = consumeWhitespace(remaining); - for (; ; ) { - var exprInfo = consumeExpr(remaining); - if (exprInfo.expr == null) { - warn("The selector `" + selector + "`is invalid"); - return false; - } else { - var args = exprInfo.match.slice(1); - var ret = exprInfo.expr.populate(self2, currentQuery, args); - if (ret === false) { - return false; - } else if (ret != null) { - currentQuery = ret; - } - } - remaining = exprInfo.remaining; - if (remaining.match(/^\s*$/)) { - break; - } - } - var lastQ = self2[self2.length - 1]; - if (self2.currentSubject != null) { - lastQ.subject = self2.currentSubject; - } - lastQ.edgeCount = self2.edgeCount; - lastQ.compoundCount = self2.compoundCount; - for (var i2 = 0; i2 < self2.length; i2++) { - var q = self2[i2]; - if (q.compoundCount > 0 && q.edgeCount > 0) { - warn("The selector `" + selector + "` is invalid because it uses both a compound selector and an edge selector"); - return false; - } - if (q.edgeCount > 1) { - warn("The selector `" + selector + "` is invalid because it uses multiple edge selectors"); - return false; - } else if (q.edgeCount === 1) { - warn("The selector `" + selector + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes."); - } - } - return true; - }; - var toString = function toString2() { - if (this.toStringCache != null) { - return this.toStringCache; - } - var clean = function clean2(obj) { - if (obj == null) { - return ""; - } else { - return obj; - } - }; - var cleanVal = function cleanVal2(val) { - if (string(val)) { - return '"' + val + '"'; - } else { - return clean(val); - } - }; - var space = function space2(val) { - return " " + val + " "; - }; - var checkToString = function checkToString2(check, subject) { - var type = check.type, value = check.value; - switch (type) { - case Type.GROUP: { - var group = clean(value); - return group.substring(0, group.length - 1); - } - case Type.DATA_COMPARE: { - var field = check.field, operator = check.operator; - return "[" + field + space(clean(operator)) + cleanVal(value) + "]"; - } - case Type.DATA_BOOL: { - var _operator = check.operator, _field = check.field; - return "[" + clean(_operator) + _field + "]"; - } - case Type.DATA_EXIST: { - var _field2 = check.field; - return "[" + _field2 + "]"; - } - case Type.META_COMPARE: { - var _operator2 = check.operator, _field3 = check.field; - return "[[" + _field3 + space(clean(_operator2)) + cleanVal(value) + "]]"; - } - case Type.STATE: { - return value; - } - case Type.ID: { - return "#" + value; - } - case Type.CLASS: { - return "." + value; - } - case Type.PARENT: - case Type.CHILD: { - return queryToString(check.parent, subject) + space(">") + queryToString(check.child, subject); - } - case Type.ANCESTOR: - case Type.DESCENDANT: { - return queryToString(check.ancestor, subject) + " " + queryToString(check.descendant, subject); - } - case Type.COMPOUND_SPLIT: { - var lhs = queryToString(check.left, subject); - var sub = queryToString(check.subject, subject); - var rhs = queryToString(check.right, subject); - return lhs + (lhs.length > 0 ? " " : "") + sub + rhs; - } - case Type.TRUE: { - return ""; - } - } - }; - var queryToString = function queryToString2(query2, subject) { - return query2.checks.reduce(function(str2, chk, i3) { - return str2 + (subject === query2 && i3 === 0 ? "$" : "") + checkToString(chk, subject); - }, ""); - }; - var str = ""; - for (var i2 = 0; i2 < this.length; i2++) { - var query = this[i2]; - str += queryToString(query, query.subject); - if (this.length > 1 && i2 < this.length - 1) { - str += ", "; - } - } - this.toStringCache = str; - return str; - }; - var parse$1 = { - parse, - toString - }; - var valCmp = function valCmp2(fieldVal, operator, value) { - var matches2; - var isFieldStr = string(fieldVal); - var isFieldNum = number$1(fieldVal); - var isValStr = string(value); - var fieldStr, valStr; - var caseInsensitive = false; - var notExpr = false; - var isIneqCmp = false; - if (operator.indexOf("!") >= 0) { - operator = operator.replace("!", ""); - notExpr = true; - } - if (operator.indexOf("@") >= 0) { - operator = operator.replace("@", ""); - caseInsensitive = true; - } - if (isFieldStr || isValStr || caseInsensitive) { - fieldStr = !isFieldStr && !isFieldNum ? "" : "" + fieldVal; - valStr = "" + value; - } - if (caseInsensitive) { - fieldVal = fieldStr = fieldStr.toLowerCase(); - value = valStr = valStr.toLowerCase(); - } - switch (operator) { - case "*=": - matches2 = fieldStr.indexOf(valStr) >= 0; - break; - case "$=": - matches2 = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0; - break; - case "^=": - matches2 = fieldStr.indexOf(valStr) === 0; - break; - case "=": - matches2 = fieldVal === value; - break; - case ">": - isIneqCmp = true; - matches2 = fieldVal > value; - break; - case ">=": - isIneqCmp = true; - matches2 = fieldVal >= value; - break; - case "<": - isIneqCmp = true; - matches2 = fieldVal < value; - break; - case "<=": - isIneqCmp = true; - matches2 = fieldVal <= value; - break; - default: - matches2 = false; - break; - } - if (notExpr && (fieldVal != null || !isIneqCmp)) { - matches2 = !matches2; - } - return matches2; - }; - var boolCmp = function boolCmp2(fieldVal, operator) { - switch (operator) { - case "?": - return fieldVal ? true : false; - case "!": - return fieldVal ? false : true; - case "^": - return fieldVal === void 0; - } - }; - var existCmp = function existCmp2(fieldVal) { - return fieldVal !== void 0; - }; - var data$1 = function data2(ele, field) { - return ele.data(field); - }; - var meta = function meta2(ele, field) { - return ele[field](); - }; - var match = []; - var matches$1 = function matches2(query, ele) { - return query.checks.every(function(chk) { - return match[chk.type](chk, ele); - }); - }; - match[Type.GROUP] = function(check, ele) { - var group = check.value; - return group === "*" || group === ele.group(); - }; - match[Type.STATE] = function(check, ele) { - var stateSelector = check.value; - return stateSelectorMatches(stateSelector, ele); - }; - match[Type.ID] = function(check, ele) { - var id = check.value; - return ele.id() === id; - }; - match[Type.CLASS] = function(check, ele) { - var cls = check.value; - return ele.hasClass(cls); - }; - match[Type.META_COMPARE] = function(check, ele) { - var field = check.field, operator = check.operator, value = check.value; - return valCmp(meta(ele, field), operator, value); - }; - match[Type.DATA_COMPARE] = function(check, ele) { - var field = check.field, operator = check.operator, value = check.value; - return valCmp(data$1(ele, field), operator, value); - }; - match[Type.DATA_BOOL] = function(check, ele) { - var field = check.field, operator = check.operator; - return boolCmp(data$1(ele, field), operator); - }; - match[Type.DATA_EXIST] = function(check, ele) { - var field = check.field; - check.operator; - return existCmp(data$1(ele, field)); - }; - match[Type.UNDIRECTED_EDGE] = function(check, ele) { - var qA = check.nodes[0]; - var qB = check.nodes[1]; - var src = ele.source(); - var tgt = ele.target(); - return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt); - }; - match[Type.NODE_NEIGHBOR] = function(check, ele) { - return matches$1(check.node, ele) && ele.neighborhood().some(function(n) { - return n.isNode() && matches$1(check.neighbor, n); - }); - }; - match[Type.DIRECTED_EDGE] = function(check, ele) { - return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target()); - }; - match[Type.NODE_SOURCE] = function(check, ele) { - return matches$1(check.source, ele) && ele.outgoers().some(function(n) { - return n.isNode() && matches$1(check.target, n); - }); - }; - match[Type.NODE_TARGET] = function(check, ele) { - return matches$1(check.target, ele) && ele.incomers().some(function(n) { - return n.isNode() && matches$1(check.source, n); - }); - }; - match[Type.CHILD] = function(check, ele) { - return matches$1(check.child, ele) && matches$1(check.parent, ele.parent()); - }; - match[Type.PARENT] = function(check, ele) { - return matches$1(check.parent, ele) && ele.children().some(function(c) { - return matches$1(check.child, c); - }); - }; - match[Type.DESCENDANT] = function(check, ele) { - return matches$1(check.descendant, ele) && ele.ancestors().some(function(a) { - return matches$1(check.ancestor, a); - }); - }; - match[Type.ANCESTOR] = function(check, ele) { - return matches$1(check.ancestor, ele) && ele.descendants().some(function(d) { - return matches$1(check.descendant, d); - }); - }; - match[Type.COMPOUND_SPLIT] = function(check, ele) { - return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele); - }; - match[Type.TRUE] = function() { - return true; - }; - match[Type.COLLECTION] = function(check, ele) { - var collection2 = check.value; - return collection2.has(ele); - }; - match[Type.FILTER] = function(check, ele) { - var filter2 = check.value; - return filter2(ele); - }; - var filter = function filter2(collection2) { - var self2 = this; - if (self2.length === 1 && self2[0].checks.length === 1 && self2[0].checks[0].type === Type.ID) { - return collection2.getElementById(self2[0].checks[0].value).collection(); - } - var selectorFunction = function selectorFunction2(element2) { - for (var j = 0; j < self2.length; j++) { - var query = self2[j]; - if (matches$1(query, element2)) { - return true; - } - } - return false; - }; - if (self2.text() == null) { - selectorFunction = function selectorFunction2() { - return true; - }; - } - return collection2.filter(selectorFunction); - }; - var matches = function matches2(ele) { - var self2 = this; - for (var j = 0; j < self2.length; j++) { - var query = self2[j]; - if (matches$1(query, ele)) { - return true; - } - } - return false; - }; - var matching = { - matches, - filter - }; - var Selector = function Selector2(selector) { - this.inputText = selector; - this.currentSubject = null; - this.compoundCount = 0; - this.edgeCount = 0; - this.length = 0; - if (selector == null || string(selector) && selector.match(/^\s*$/)) - ; - else if (elementOrCollection(selector)) { - this.addQuery({ - checks: [{ - type: Type.COLLECTION, - value: selector.collection() - }] - }); - } else if (fn$6(selector)) { - this.addQuery({ - checks: [{ - type: Type.FILTER, - value: selector - }] - }); - } else if (string(selector)) { - if (!this.parse(selector)) { - this.invalid = true; - } - } else { - error("A selector must be created from a string; found "); - } - }; - var selfn = Selector.prototype; - [parse$1, matching].forEach(function(p2) { - return extend(selfn, p2); - }); - selfn.text = function() { - return this.inputText; - }; - selfn.size = function() { - return this.length; - }; - selfn.eq = function(i2) { - return this[i2]; - }; - selfn.sameText = function(otherSel) { - return !this.invalid && !otherSel.invalid && this.text() === otherSel.text(); - }; - selfn.addQuery = function(q) { - this[this.length++] = q; - }; - selfn.selector = selfn.toString; - var elesfn$g = { - allAre: function allAre(selector) { - var selObj = new Selector(selector); - return this.every(function(ele) { - return selObj.matches(ele); - }); - }, - is: function is(selector) { - var selObj = new Selector(selector); - return this.some(function(ele) { - return selObj.matches(ele); - }); - }, - some: function some(fn2, thisArg) { - for (var i2 = 0; i2 < this.length; i2++) { - var ret = !thisArg ? fn2(this[i2], i2, this) : fn2.apply(thisArg, [this[i2], i2, this]); - if (ret) { - return true; - } - } - return false; - }, - every: function every(fn2, thisArg) { - for (var i2 = 0; i2 < this.length; i2++) { - var ret = !thisArg ? fn2(this[i2], i2, this) : fn2.apply(thisArg, [this[i2], i2, this]); - if (!ret) { - return false; - } - } - return true; - }, - same: function same(collection2) { - if (this === collection2) { - return true; - } - collection2 = this.cy().collection(collection2); - var thisLength = this.length; - var collectionLength = collection2.length; - if (thisLength !== collectionLength) { - return false; - } - if (thisLength === 1) { - return this[0] === collection2[0]; - } - return this.every(function(ele) { - return collection2.hasElementWithId(ele.id()); - }); - }, - anySame: function anySame(collection2) { - collection2 = this.cy().collection(collection2); - return this.some(function(ele) { - return collection2.hasElementWithId(ele.id()); - }); - }, - allAreNeighbors: function allAreNeighbors(collection2) { - collection2 = this.cy().collection(collection2); - var nhood = this.neighborhood(); - return collection2.every(function(ele) { - return nhood.hasElementWithId(ele.id()); - }); - }, - contains: function contains(collection2) { - collection2 = this.cy().collection(collection2); - var self2 = this; - return collection2.every(function(ele) { - return self2.hasElementWithId(ele.id()); - }); - } - }; - elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors; - elesfn$g.has = elesfn$g.contains; - elesfn$g.equal = elesfn$g.equals = elesfn$g.same; - var cache = function cache2(fn2, name2) { - return function traversalCache(arg1, arg2, arg3, arg4) { - var selectorOrEles = arg1; - var eles = this; - var key; - if (selectorOrEles == null) { - key = ""; - } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) { - key = selectorOrEles.id(); - } - if (eles.length === 1 && key) { - var _p = eles[0]._private; - var tch = _p.traversalCache = _p.traversalCache || {}; - var ch = tch[name2] = tch[name2] || []; - var hash = hashString(key); - var cacheHit = ch[hash]; - if (cacheHit) { - return cacheHit; - } else { - return ch[hash] = fn2.call(eles, arg1, arg2, arg3, arg4); - } - } else { - return fn2.call(eles, arg1, arg2, arg3, arg4); - } - }; - }; - var elesfn$f = { - parent: function parent(selector) { - var parents = []; - if (this.length === 1) { - var parent2 = this[0]._private.parent; - if (parent2) { - return parent2; - } - } - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var _parent = ele._private.parent; - if (_parent) { - parents.push(_parent); - } - } - return this.spawn(parents, true).filter(selector); - }, - parents: function parents(selector) { - var parents2 = []; - var eles = this.parent(); - while (eles.nonempty()) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - parents2.push(ele); - } - eles = eles.parent(); - } - return this.spawn(parents2, true).filter(selector); - }, - commonAncestors: function commonAncestors(selector) { - var ancestors; - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var parents = ele.parents(); - ancestors = ancestors || parents; - ancestors = ancestors.intersect(parents); - } - return ancestors.filter(selector); - }, - orphans: function orphans(selector) { - return this.stdFilter(function(ele) { - return ele.isOrphan(); - }).filter(selector); - }, - nonorphans: function nonorphans(selector) { - return this.stdFilter(function(ele) { - return ele.isChild(); - }).filter(selector); - }, - children: cache(function(selector) { - var children = []; - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var eleChildren = ele._private.children; - for (var j = 0; j < eleChildren.length; j++) { - children.push(eleChildren[j]); - } - } - return this.spawn(children, true).filter(selector); - }, "children"), - siblings: function siblings(selector) { - return this.parent().children().not(this).filter(selector); - }, - isParent: function isParent() { - var ele = this[0]; - if (ele) { - return ele.isNode() && ele._private.children.length !== 0; - } - }, - isChildless: function isChildless() { - var ele = this[0]; - if (ele) { - return ele.isNode() && ele._private.children.length === 0; - } - }, - isChild: function isChild() { - var ele = this[0]; - if (ele) { - return ele.isNode() && ele._private.parent != null; - } - }, - isOrphan: function isOrphan() { - var ele = this[0]; - if (ele) { - return ele.isNode() && ele._private.parent == null; - } - }, - descendants: function descendants(selector) { - var elements2 = []; - function add(eles) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - elements2.push(ele); - if (ele.children().nonempty()) { - add(ele.children()); - } - } - } - add(this.children()); - return this.spawn(elements2, true).filter(selector); - } - }; - function forEachCompound(eles, fn2, includeSelf, recursiveStep) { - var q = []; - var did = new Set$1(); - var cy = eles.cy(); - var hasCompounds = cy.hasCompoundNodes(); - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - if (includeSelf) { - q.push(ele); - } else if (hasCompounds) { - recursiveStep(q, did, ele); - } - } - while (q.length > 0) { - var _ele = q.shift(); - fn2(_ele); - did.add(_ele.id()); - if (hasCompounds) { - recursiveStep(q, did, _ele); - } - } - return eles; - } - function addChildren(q, did, ele) { - if (ele.isParent()) { - var children = ele._private.children; - for (var i2 = 0; i2 < children.length; i2++) { - var child = children[i2]; - if (!did.has(child.id())) { - q.push(child); - } - } - } - } - elesfn$f.forEachDown = function(fn2) { - var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - return forEachCompound(this, fn2, includeSelf, addChildren); - }; - function addParent(q, did, ele) { - if (ele.isChild()) { - var parent = ele._private.parent; - if (!did.has(parent.id())) { - q.push(parent); - } - } - } - elesfn$f.forEachUp = function(fn2) { - var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - return forEachCompound(this, fn2, includeSelf, addParent); - }; - function addParentAndChildren(q, did, ele) { - addParent(q, did, ele); - addChildren(q, did, ele); - } - elesfn$f.forEachUpAndDown = function(fn2) { - var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - return forEachCompound(this, fn2, includeSelf, addParentAndChildren); - }; - elesfn$f.ancestors = elesfn$f.parents; - var fn$5, elesfn$e; - fn$5 = elesfn$e = { - data: define2.data({ - field: "data", - bindingEvent: "data", - allowBinding: true, - allowSetting: true, - settingEvent: "data", - settingTriggersEvent: true, - triggerFnName: "trigger", - allowGetting: true, - immutableKeys: { - "id": true, - "source": true, - "target": true, - "parent": true - }, - updateStyle: true - }), - removeData: define2.removeData({ - field: "data", - event: "data", - triggerFnName: "trigger", - triggerEvent: true, - immutableKeys: { - "id": true, - "source": true, - "target": true, - "parent": true - }, - updateStyle: true - }), - scratch: define2.data({ - field: "scratch", - bindingEvent: "scratch", - allowBinding: true, - allowSetting: true, - settingEvent: "scratch", - settingTriggersEvent: true, - triggerFnName: "trigger", - allowGetting: true, - updateStyle: true - }), - removeScratch: define2.removeData({ - field: "scratch", - event: "scratch", - triggerFnName: "trigger", - triggerEvent: true, - updateStyle: true - }), - rscratch: define2.data({ - field: "rscratch", - allowBinding: false, - allowSetting: true, - settingTriggersEvent: false, - allowGetting: true - }), - removeRscratch: define2.removeData({ - field: "rscratch", - triggerEvent: false - }), - id: function id() { - var ele = this[0]; - if (ele) { - return ele._private.data.id; - } - } - }; - fn$5.attr = fn$5.data; - fn$5.removeAttr = fn$5.removeData; - var data = elesfn$e; - var elesfn$d = {}; - function defineDegreeFunction(callback) { - return function(includeLoops) { - var self2 = this; - if (includeLoops === void 0) { - includeLoops = true; - } - if (self2.length === 0) { - return; - } - if (self2.isNode() && !self2.removed()) { - var degree = 0; - var node = self2[0]; - var connectedEdges = node._private.edges; - for (var i2 = 0; i2 < connectedEdges.length; i2++) { - var edge = connectedEdges[i2]; - if (!includeLoops && edge.isLoop()) { - continue; - } - degree += callback(node, edge); - } - return degree; - } else { - return; - } - }; - } - extend(elesfn$d, { - degree: defineDegreeFunction(function(node, edge) { - if (edge.source().same(edge.target())) { - return 2; - } else { - return 1; - } - }), - indegree: defineDegreeFunction(function(node, edge) { - if (edge.target().same(node)) { - return 1; - } else { - return 0; - } - }), - outdegree: defineDegreeFunction(function(node, edge) { - if (edge.source().same(node)) { - return 1; - } else { - return 0; - } - }) - }); - function defineDegreeBoundsFunction(degreeFn, callback) { - return function(includeLoops) { - var ret; - var nodes2 = this.nodes(); - for (var i2 = 0; i2 < nodes2.length; i2++) { - var ele = nodes2[i2]; - var degree = ele[degreeFn](includeLoops); - if (degree !== void 0 && (ret === void 0 || callback(degree, ret))) { - ret = degree; - } - } - return ret; - }; - } - extend(elesfn$d, { - minDegree: defineDegreeBoundsFunction("degree", function(degree, min2) { - return degree < min2; - }), - maxDegree: defineDegreeBoundsFunction("degree", function(degree, max2) { - return degree > max2; - }), - minIndegree: defineDegreeBoundsFunction("indegree", function(degree, min2) { - return degree < min2; - }), - maxIndegree: defineDegreeBoundsFunction("indegree", function(degree, max2) { - return degree > max2; - }), - minOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, min2) { - return degree < min2; - }), - maxOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, max2) { - return degree > max2; - }) - }); - extend(elesfn$d, { - totalDegree: function totalDegree(includeLoops) { - var total = 0; - var nodes2 = this.nodes(); - for (var i2 = 0; i2 < nodes2.length; i2++) { - total += nodes2[i2].degree(includeLoops); - } - return total; - } - }); - var fn$4, elesfn$c; - var beforePositionSet = function beforePositionSet2(eles, newPos, silent) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - if (!ele.locked()) { - var oldPos = ele._private.position; - var delta = { - x: newPos.x != null ? newPos.x - oldPos.x : 0, - y: newPos.y != null ? newPos.y - oldPos.y : 0 - }; - if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) { - ele.children().shift(delta, silent); - } - ele.dirtyBoundingBoxCache(); - } - } - }; - var positionDef = { - field: "position", - bindingEvent: "position", - allowBinding: true, - allowSetting: true, - settingEvent: "position", - settingTriggersEvent: true, - triggerFnName: "emitAndNotify", - allowGetting: true, - validKeys: ["x", "y"], - beforeGet: function beforeGet(ele) { - ele.updateCompoundBounds(); - }, - beforeSet: function beforeSet(eles, newPos) { - beforePositionSet(eles, newPos, false); - }, - onSet: function onSet(eles) { - eles.dirtyCompoundBoundsCache(); - }, - canSet: function canSet(ele) { - return !ele.locked(); - } - }; - fn$4 = elesfn$c = { - position: define2.data(positionDef), - // position but no notification to renderer - silentPosition: define2.data(extend({}, positionDef, { - allowBinding: false, - allowSetting: true, - settingTriggersEvent: false, - allowGetting: false, - beforeSet: function beforeSet(eles, newPos) { - beforePositionSet(eles, newPos, true); - }, - onSet: function onSet(eles) { - eles.dirtyCompoundBoundsCache(); - } - })), - positions: function positions(pos, silent) { - if (plainObject(pos)) { - if (silent) { - this.silentPosition(pos); - } else { - this.position(pos); - } - } else if (fn$6(pos)) { - var _fn = pos; - var cy = this.cy(); - cy.startBatch(); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var _pos = void 0; - if (_pos = _fn(ele, i2)) { - if (silent) { - ele.silentPosition(_pos); - } else { - ele.position(_pos); - } - } - } - cy.endBatch(); - } - return this; - }, - silentPositions: function silentPositions(pos) { - return this.positions(pos, true); - }, - shift: function shift(dim, val, silent) { - var delta; - if (plainObject(dim)) { - delta = { - x: number$1(dim.x) ? dim.x : 0, - y: number$1(dim.y) ? dim.y : 0 - }; - silent = val; - } else if (string(dim) && number$1(val)) { - delta = { - x: 0, - y: 0 - }; - delta[dim] = val; - } - if (delta != null) { - var cy = this.cy(); - cy.startBatch(); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) { - continue; - } - var pos = ele.position(); - var newPos = { - x: pos.x + delta.x, - y: pos.y + delta.y - }; - if (silent) { - ele.silentPosition(newPos); - } else { - ele.position(newPos); - } - } - cy.endBatch(); - } - return this; - }, - silentShift: function silentShift(dim, val) { - if (plainObject(dim)) { - this.shift(dim, true); - } else if (string(dim) && number$1(val)) { - this.shift(dim, val, true); - } - return this; - }, - // get/set the rendered (i.e. on screen) positon of the element - renderedPosition: function renderedPosition(dim, val) { - var ele = this[0]; - var cy = this.cy(); - var zoom = cy.zoom(); - var pan = cy.pan(); - var rpos = plainObject(dim) ? dim : void 0; - var setting = rpos !== void 0 || val !== void 0 && string(dim); - if (ele && ele.isNode()) { - if (setting) { - for (var i2 = 0; i2 < this.length; i2++) { - var _ele = this[i2]; - if (val !== void 0) { - _ele.position(dim, (val - pan[dim]) / zoom); - } else if (rpos !== void 0) { - _ele.position(renderedToModelPosition(rpos, zoom, pan)); - } - } - } else { - var pos = ele.position(); - rpos = modelToRenderedPosition(pos, zoom, pan); - if (dim === void 0) { - return rpos; - } else { - return rpos[dim]; - } - } - } else if (!setting) { - return void 0; - } - return this; - }, - // get/set the position relative to the parent - relativePosition: function relativePosition(dim, val) { - var ele = this[0]; - var cy = this.cy(); - var ppos = plainObject(dim) ? dim : void 0; - var setting = ppos !== void 0 || val !== void 0 && string(dim); - var hasCompoundNodes = cy.hasCompoundNodes(); - if (ele && ele.isNode()) { - if (setting) { - for (var i2 = 0; i2 < this.length; i2++) { - var _ele2 = this[i2]; - var parent = hasCompoundNodes ? _ele2.parent() : null; - var hasParent = parent && parent.length > 0; - var relativeToParent = hasParent; - if (hasParent) { - parent = parent[0]; - } - var origin = relativeToParent ? parent.position() : { - x: 0, - y: 0 - }; - if (val !== void 0) { - _ele2.position(dim, val + origin[dim]); - } else if (ppos !== void 0) { - _ele2.position({ - x: ppos.x + origin.x, - y: ppos.y + origin.y - }); - } - } - } else { - var pos = ele.position(); - var _parent = hasCompoundNodes ? ele.parent() : null; - var _hasParent = _parent && _parent.length > 0; - var _relativeToParent = _hasParent; - if (_hasParent) { - _parent = _parent[0]; - } - var _origin = _relativeToParent ? _parent.position() : { - x: 0, - y: 0 - }; - ppos = { - x: pos.x - _origin.x, - y: pos.y - _origin.y - }; - if (dim === void 0) { - return ppos; - } else { - return ppos[dim]; - } - } - } else if (!setting) { - return void 0; - } - return this; - } - }; - fn$4.modelPosition = fn$4.point = fn$4.position; - fn$4.modelPositions = fn$4.points = fn$4.positions; - fn$4.renderedPoint = fn$4.renderedPosition; - fn$4.relativePoint = fn$4.relativePosition; - var position = elesfn$c; - var fn$3, elesfn$b; - fn$3 = elesfn$b = {}; - elesfn$b.renderedBoundingBox = function(options) { - var bb = this.boundingBox(options); - var cy = this.cy(); - var zoom = cy.zoom(); - var pan = cy.pan(); - var x1 = bb.x1 * zoom + pan.x; - var x2 = bb.x2 * zoom + pan.x; - var y1 = bb.y1 * zoom + pan.y; - var y2 = bb.y2 * zoom + pan.y; - return { - x1, - x2, - y1, - y2, - w: x2 - x1, - h: y2 - y1 - }; - }; - elesfn$b.dirtyCompoundBoundsCache = function() { - var silent = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; - var cy = this.cy(); - if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { - return this; - } - this.forEachUp(function(ele) { - if (ele.isParent()) { - var _p = ele._private; - _p.compoundBoundsClean = false; - _p.bbCache = null; - if (!silent) { - ele.emitAndNotify("bounds"); - } - } - }); - return this; - }; - elesfn$b.updateCompoundBounds = function() { - var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; - var cy = this.cy(); - if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { - return this; - } - if (!force && cy.batching()) { - return this; - } - function update2(parent) { - if (!parent.isParent()) { - return; - } - var _p2 = parent._private; - var children = parent.children(); - var includeLabels = parent.pstyle("compound-sizing-wrt-labels").value === "include"; - var min2 = { - width: { - val: parent.pstyle("min-width").pfValue, - left: parent.pstyle("min-width-bias-left"), - right: parent.pstyle("min-width-bias-right") - }, - height: { - val: parent.pstyle("min-height").pfValue, - top: parent.pstyle("min-height-bias-top"), - bottom: parent.pstyle("min-height-bias-bottom") - } - }; - var bb = children.boundingBox({ - includeLabels, - includeOverlays: false, - // updating the compound bounds happens outside of the regular - // cache cycle (i.e. before fired events) - useCache: false - }); - var pos = _p2.position; - if (bb.w === 0 || bb.h === 0) { - bb = { - w: parent.pstyle("width").pfValue, - h: parent.pstyle("height").pfValue - }; - bb.x1 = pos.x - bb.w / 2; - bb.x2 = pos.x + bb.w / 2; - bb.y1 = pos.y - bb.h / 2; - bb.y2 = pos.y + bb.h / 2; - } - function computeBiasValues(propDiff, propBias, propBiasComplement) { - var biasDiff = 0; - var biasComplementDiff = 0; - var biasTotal = propBias + propBiasComplement; - if (propDiff > 0 && biasTotal > 0) { - biasDiff = propBias / biasTotal * propDiff; - biasComplementDiff = propBiasComplement / biasTotal * propDiff; - } - return { - biasDiff, - biasComplementDiff - }; - } - function computePaddingValues(width, height, paddingObject, relativeTo) { - if (paddingObject.units === "%") { - switch (relativeTo) { - case "width": - return width > 0 ? paddingObject.pfValue * width : 0; - case "height": - return height > 0 ? paddingObject.pfValue * height : 0; - case "average": - return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0; - case "min": - return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0; - case "max": - return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0; - default: - return 0; - } - } else if (paddingObject.units === "px") { - return paddingObject.pfValue; - } else { - return 0; - } - } - var leftVal = min2.width.left.value; - if (min2.width.left.units === "px" && min2.width.val > 0) { - leftVal = leftVal * 100 / min2.width.val; - } - var rightVal = min2.width.right.value; - if (min2.width.right.units === "px" && min2.width.val > 0) { - rightVal = rightVal * 100 / min2.width.val; - } - var topVal = min2.height.top.value; - if (min2.height.top.units === "px" && min2.height.val > 0) { - topVal = topVal * 100 / min2.height.val; - } - var bottomVal = min2.height.bottom.value; - if (min2.height.bottom.units === "px" && min2.height.val > 0) { - bottomVal = bottomVal * 100 / min2.height.val; - } - var widthBiasDiffs = computeBiasValues(min2.width.val - bb.w, leftVal, rightVal); - var diffLeft = widthBiasDiffs.biasDiff; - var diffRight = widthBiasDiffs.biasComplementDiff; - var heightBiasDiffs = computeBiasValues(min2.height.val - bb.h, topVal, bottomVal); - var diffTop = heightBiasDiffs.biasDiff; - var diffBottom = heightBiasDiffs.biasComplementDiff; - _p2.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle("padding"), parent.pstyle("padding-relative-to").value); - _p2.autoWidth = Math.max(bb.w, min2.width.val); - pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2; - _p2.autoHeight = Math.max(bb.h, min2.height.val); - pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2; - } - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var _p = ele._private; - if (!_p.compoundBoundsClean || force) { - update2(ele); - if (!cy.batching()) { - _p.compoundBoundsClean = true; - } - } - } - return this; - }; - var noninf = function noninf2(x) { - if (x === Infinity || x === -Infinity) { - return 0; - } - return x; - }; - var updateBounds = function updateBounds2(b, x1, y1, x2, y2) { - if (x2 - x1 === 0 || y2 - y1 === 0) { - return; - } - if (x1 == null || y1 == null || x2 == null || y2 == null) { - return; - } - b.x1 = x1 < b.x1 ? x1 : b.x1; - b.x2 = x2 > b.x2 ? x2 : b.x2; - b.y1 = y1 < b.y1 ? y1 : b.y1; - b.y2 = y2 > b.y2 ? y2 : b.y2; - b.w = b.x2 - b.x1; - b.h = b.y2 - b.y1; - }; - var updateBoundsFromBox = function updateBoundsFromBox2(b, b2) { - if (b2 == null) { - return b; - } - return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2); - }; - var prefixedProperty = function prefixedProperty2(obj, field, prefix) { - return getPrefixedProperty(obj, field, prefix); - }; - var updateBoundsFromArrow = function updateBoundsFromArrow2(bounds2, ele, prefix) { - if (ele.cy().headless()) { - return; - } - var _p = ele._private; - var rstyle = _p.rstyle; - var halfArW = rstyle.arrowWidth / 2; - var arrowType = ele.pstyle(prefix + "-arrow-shape").value; - var x; - var y; - if (arrowType !== "none") { - if (prefix === "source") { - x = rstyle.srcX; - y = rstyle.srcY; - } else if (prefix === "target") { - x = rstyle.tgtX; - y = rstyle.tgtY; - } else { - x = rstyle.midX; - y = rstyle.midY; - } - var bbs = _p.arrowBounds = _p.arrowBounds || {}; - var bb = bbs[prefix] = bbs[prefix] || {}; - bb.x1 = x - halfArW; - bb.y1 = y - halfArW; - bb.x2 = x + halfArW; - bb.y2 = y + halfArW; - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - expandBoundingBox(bb, 1); - updateBounds(bounds2, bb.x1, bb.y1, bb.x2, bb.y2); - } - }; - var updateBoundsFromLabel = function updateBoundsFromLabel2(bounds2, ele, prefix) { - if (ele.cy().headless()) { - return; - } - var prefixDash; - if (prefix) { - prefixDash = prefix + "-"; - } else { - prefixDash = ""; - } - var _p = ele._private; - var rstyle = _p.rstyle; - var label = ele.pstyle(prefixDash + "label").strValue; - if (label) { - var halign = ele.pstyle("text-halign"); - var valign = ele.pstyle("text-valign"); - var labelWidth = prefixedProperty(rstyle, "labelWidth", prefix); - var labelHeight = prefixedProperty(rstyle, "labelHeight", prefix); - var labelX = prefixedProperty(rstyle, "labelX", prefix); - var labelY = prefixedProperty(rstyle, "labelY", prefix); - var marginX = ele.pstyle(prefixDash + "text-margin-x").pfValue; - var marginY = ele.pstyle(prefixDash + "text-margin-y").pfValue; - var isEdge = ele.isEdge(); - var rotation = ele.pstyle(prefixDash + "text-rotation"); - var outlineWidth = ele.pstyle("text-outline-width").pfValue; - var borderWidth = ele.pstyle("text-border-width").pfValue; - var halfBorderWidth = borderWidth / 2; - var padding = ele.pstyle("text-background-padding").pfValue; - var marginOfError = 2; - var lh = labelHeight; - var lw = labelWidth; - var lw_2 = lw / 2; - var lh_2 = lh / 2; - var lx1, lx2, ly1, ly2; - if (isEdge) { - lx1 = labelX - lw_2; - lx2 = labelX + lw_2; - ly1 = labelY - lh_2; - ly2 = labelY + lh_2; - } else { - switch (halign.value) { - case "left": - lx1 = labelX - lw; - lx2 = labelX; - break; - case "center": - lx1 = labelX - lw_2; - lx2 = labelX + lw_2; - break; - case "right": - lx1 = labelX; - lx2 = labelX + lw; - break; - } - switch (valign.value) { - case "top": - ly1 = labelY - lh; - ly2 = labelY; - break; - case "center": - ly1 = labelY - lh_2; - ly2 = labelY + lh_2; - break; - case "bottom": - ly1 = labelY; - ly2 = labelY + lh; - break; - } - } - lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; - lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; - ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; - ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; - var bbPrefix = prefix || "main"; - var bbs = _p.labelBounds; - var bb = bbs[bbPrefix] = bbs[bbPrefix] || {}; - bb.x1 = lx1; - bb.y1 = ly1; - bb.x2 = lx2; - bb.y2 = ly2; - bb.w = lx2 - lx1; - bb.h = ly2 - ly1; - var isAutorotate = isEdge && rotation.strValue === "autorotate"; - var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0; - if (isAutorotate || isPfValue) { - var theta = isAutorotate ? prefixedProperty(_p.rstyle, "labelAngle", prefix) : rotation.pfValue; - var cos2 = Math.cos(theta); - var sin2 = Math.sin(theta); - var xo = (lx1 + lx2) / 2; - var yo = (ly1 + ly2) / 2; - if (!isEdge) { - switch (halign.value) { - case "left": - xo = lx2; - break; - case "right": - xo = lx1; - break; - } - switch (valign.value) { - case "top": - yo = ly2; - break; - case "bottom": - yo = ly1; - break; - } - } - var rotate = function rotate2(x, y) { - x = x - xo; - y = y - yo; - return { - x: x * cos2 - y * sin2 + xo, - y: x * sin2 + y * cos2 + yo - }; - }; - var px1y1 = rotate(lx1, ly1); - var px1y2 = rotate(lx1, ly2); - var px2y1 = rotate(lx2, ly1); - var px2y2 = rotate(lx2, ly2); - lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x); - lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x); - ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y); - ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y); - } - var bbPrefixRot = bbPrefix + "Rot"; - var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {}; - bbRot.x1 = lx1; - bbRot.y1 = ly1; - bbRot.x2 = lx2; - bbRot.y2 = ly2; - bbRot.w = lx2 - lx1; - bbRot.h = ly2 - ly1; - updateBounds(bounds2, lx1, ly1, lx2, ly2); - updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2); - } - return bounds2; - }; - var updateBoundsFromOutline = function updateBoundsFromOutline2(bounds2, ele) { - if (ele.cy().headless()) { - return; - } - var outlineOpacity = ele.pstyle("outline-opacity").value; - var outlineWidth = ele.pstyle("outline-width").value; - if (outlineOpacity > 0 && outlineWidth > 0) { - var outlineOffset = ele.pstyle("outline-offset").value; - var nodeShape = ele.pstyle("shape").value; - var outlineSize = outlineWidth + outlineOffset; - var scaleX = (bounds2.w + outlineSize * 2) / bounds2.w; - var scaleY = (bounds2.h + outlineSize * 2) / bounds2.h; - var xOffset = 0; - var yOffset = 0; - if (["diamond", "pentagon", "round-triangle"].includes(nodeShape)) { - scaleX = (bounds2.w + outlineSize * 2.4) / bounds2.w; - yOffset = -outlineSize / 3.6; - } else if (["concave-hexagon", "rhomboid", "right-rhomboid"].includes(nodeShape)) { - scaleX = (bounds2.w + outlineSize * 2.4) / bounds2.w; - } else if (nodeShape === "star") { - scaleX = (bounds2.w + outlineSize * 2.8) / bounds2.w; - scaleY = (bounds2.h + outlineSize * 2.6) / bounds2.h; - yOffset = -outlineSize / 3.8; - } else if (nodeShape === "triangle") { - scaleX = (bounds2.w + outlineSize * 2.8) / bounds2.w; - scaleY = (bounds2.h + outlineSize * 2.4) / bounds2.h; - yOffset = -outlineSize / 1.4; - } else if (nodeShape === "vee") { - scaleX = (bounds2.w + outlineSize * 4.4) / bounds2.w; - scaleY = (bounds2.h + outlineSize * 3.8) / bounds2.h; - yOffset = -outlineSize * 0.5; - } - var hDelta = bounds2.h * scaleY - bounds2.h; - var wDelta = bounds2.w * scaleX - bounds2.w; - expandBoundingBoxSides(bounds2, [Math.ceil(hDelta / 2), Math.ceil(wDelta / 2)]); - if (xOffset != 0 || yOffset !== 0) { - var oBounds = shiftBoundingBox(bounds2, xOffset, yOffset); - updateBoundingBox(bounds2, oBounds); - } - } - }; - var boundingBoxImpl = function boundingBoxImpl2(ele, options) { - var cy = ele._private.cy; - var styleEnabled = cy.styleEnabled(); - var headless = cy.headless(); - var bounds2 = makeBoundingBox(); - var _p = ele._private; - var isNode = ele.isNode(); - var isEdge = ele.isEdge(); - var ex1, ex2, ey1, ey2; - var x, y; - var rstyle = _p.rstyle; - var manualExpansion = isNode && styleEnabled ? ele.pstyle("bounds-expansion").pfValue : [0]; - var isDisplayed = function isDisplayed2(ele2) { - return ele2.pstyle("display").value !== "none"; - }; - var displayed = !styleEnabled || isDisplayed(ele) && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target())); - if (displayed) { - var overlayOpacity = 0; - var overlayPadding = 0; - if (styleEnabled && options.includeOverlays) { - overlayOpacity = ele.pstyle("overlay-opacity").value; - if (overlayOpacity !== 0) { - overlayPadding = ele.pstyle("overlay-padding").value; - } - } - var underlayOpacity = 0; - var underlayPadding = 0; - if (styleEnabled && options.includeUnderlays) { - underlayOpacity = ele.pstyle("underlay-opacity").value; - if (underlayOpacity !== 0) { - underlayPadding = ele.pstyle("underlay-padding").value; - } - } - var padding = Math.max(overlayPadding, underlayPadding); - var w = 0; - var wHalf = 0; - if (styleEnabled) { - w = ele.pstyle("width").pfValue; - wHalf = w / 2; - } - if (isNode && options.includeNodes) { - var pos = ele.position(); - x = pos.x; - y = pos.y; - var _w = ele.outerWidth(); - var halfW = _w / 2; - var h = ele.outerHeight(); - var halfH = h / 2; - ex1 = x - halfW; - ex2 = x + halfW; - ey1 = y - halfH; - ey2 = y + halfH; - updateBounds(bounds2, ex1, ey1, ex2, ey2); - if (styleEnabled && options.includeOutlines) { - updateBoundsFromOutline(bounds2, ele); - } - } else if (isEdge && options.includeEdges) { - if (styleEnabled && !headless) { - var curveStyle = ele.pstyle("curve-style").strValue; - ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX); - ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX); - ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY); - ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY); - ex1 -= wHalf; - ex2 += wHalf; - ey1 -= wHalf; - ey2 += wHalf; - updateBounds(bounds2, ex1, ey1, ex2, ey2); - if (curveStyle === "haystack") { - var hpts = rstyle.haystackPts; - if (hpts && hpts.length === 2) { - ex1 = hpts[0].x; - ey1 = hpts[0].y; - ex2 = hpts[1].x; - ey2 = hpts[1].y; - if (ex1 > ex2) { - var temp = ex1; - ex1 = ex2; - ex2 = temp; - } - if (ey1 > ey2) { - var _temp = ey1; - ey1 = ey2; - ey2 = _temp; - } - updateBounds(bounds2, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf); - } - } else if (curveStyle === "bezier" || curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "taxi") { - var pts2; - switch (curveStyle) { - case "bezier": - case "unbundled-bezier": - pts2 = rstyle.bezierPts; - break; - case "segments": - case "taxi": - pts2 = rstyle.linePts; - break; - } - if (pts2 != null) { - for (var j = 0; j < pts2.length; j++) { - var pt = pts2[j]; - ex1 = pt.x - wHalf; - ex2 = pt.x + wHalf; - ey1 = pt.y - wHalf; - ey2 = pt.y + wHalf; - updateBounds(bounds2, ex1, ey1, ex2, ey2); - } - } - } - } else { - var n1 = ele.source(); - var n1pos = n1.position(); - var n2 = ele.target(); - var n2pos = n2.position(); - ex1 = n1pos.x; - ex2 = n2pos.x; - ey1 = n1pos.y; - ey2 = n2pos.y; - if (ex1 > ex2) { - var _temp2 = ex1; - ex1 = ex2; - ex2 = _temp2; - } - if (ey1 > ey2) { - var _temp3 = ey1; - ey1 = ey2; - ey2 = _temp3; - } - ex1 -= wHalf; - ex2 += wHalf; - ey1 -= wHalf; - ey2 += wHalf; - updateBounds(bounds2, ex1, ey1, ex2, ey2); - } - } - if (styleEnabled && options.includeEdges && isEdge) { - updateBoundsFromArrow(bounds2, ele, "mid-source"); - updateBoundsFromArrow(bounds2, ele, "mid-target"); - updateBoundsFromArrow(bounds2, ele, "source"); - updateBoundsFromArrow(bounds2, ele, "target"); - } - if (styleEnabled) { - var ghost = ele.pstyle("ghost").value === "yes"; - if (ghost) { - var gx = ele.pstyle("ghost-offset-x").pfValue; - var gy = ele.pstyle("ghost-offset-y").pfValue; - updateBounds(bounds2, bounds2.x1 + gx, bounds2.y1 + gy, bounds2.x2 + gx, bounds2.y2 + gy); - } - } - var bbBody = _p.bodyBounds = _p.bodyBounds || {}; - assignBoundingBox(bbBody, bounds2); - expandBoundingBoxSides(bbBody, manualExpansion); - expandBoundingBox(bbBody, 1); - if (styleEnabled) { - ex1 = bounds2.x1; - ex2 = bounds2.x2; - ey1 = bounds2.y1; - ey2 = bounds2.y2; - updateBounds(bounds2, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding); - } - var bbOverlay = _p.overlayBounds = _p.overlayBounds || {}; - assignBoundingBox(bbOverlay, bounds2); - expandBoundingBoxSides(bbOverlay, manualExpansion); - expandBoundingBox(bbOverlay, 1); - var bbLabels = _p.labelBounds = _p.labelBounds || {}; - if (bbLabels.all != null) { - clearBoundingBox(bbLabels.all); - } else { - bbLabels.all = makeBoundingBox(); - } - if (styleEnabled && options.includeLabels) { - if (options.includeMainLabels) { - updateBoundsFromLabel(bounds2, ele, null); - } - if (isEdge) { - if (options.includeSourceLabels) { - updateBoundsFromLabel(bounds2, ele, "source"); - } - if (options.includeTargetLabels) { - updateBoundsFromLabel(bounds2, ele, "target"); - } - } - } - } - bounds2.x1 = noninf(bounds2.x1); - bounds2.y1 = noninf(bounds2.y1); - bounds2.x2 = noninf(bounds2.x2); - bounds2.y2 = noninf(bounds2.y2); - bounds2.w = noninf(bounds2.x2 - bounds2.x1); - bounds2.h = noninf(bounds2.y2 - bounds2.y1); - if (bounds2.w > 0 && bounds2.h > 0 && displayed) { - expandBoundingBoxSides(bounds2, manualExpansion); - expandBoundingBox(bounds2, 1); - } - return bounds2; - }; - var getKey = function getKey2(opts) { - var i2 = 0; - var tf = function tf2(val) { - return (val ? 1 : 0) << i2++; - }; - var key = 0; - key += tf(opts.incudeNodes); - key += tf(opts.includeEdges); - key += tf(opts.includeLabels); - key += tf(opts.includeMainLabels); - key += tf(opts.includeSourceLabels); - key += tf(opts.includeTargetLabels); - key += tf(opts.includeOverlays); - key += tf(opts.includeOutlines); - return key; - }; - var getBoundingBoxPosKey = function getBoundingBoxPosKey2(ele) { - if (ele.isEdge()) { - var p1 = ele.source().position(); - var p2 = ele.target().position(); - var r = function r2(x) { - return Math.round(x); - }; - return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]); - } else { - return 0; - } - }; - var cachedBoundingBoxImpl = function cachedBoundingBoxImpl2(ele, opts) { - var _p = ele._private; - var bb; - var isEdge = ele.isEdge(); - var key = opts == null ? defBbOptsKey : getKey(opts); - var usingDefOpts = key === defBbOptsKey; - var currPosKey = getBoundingBoxPosKey(ele); - var isPosKeySame = _p.bbCachePosKey === currPosKey; - var useCache = opts.useCache && isPosKeySame; - var isDirty = function isDirty2(ele2) { - return ele2._private.bbCache == null || ele2._private.styleDirty; - }; - var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target()); - if (needRecalc) { - if (!isPosKeySame) { - ele.recalculateRenderedStyle(useCache); - } - bb = boundingBoxImpl(ele, defBbOpts); - _p.bbCache = bb; - _p.bbCachePosKey = currPosKey; - } else { - bb = _p.bbCache; - } - if (!usingDefOpts) { - var isNode = ele.isNode(); - bb = makeBoundingBox(); - if (opts.includeNodes && isNode || opts.includeEdges && !isNode) { - if (opts.includeOverlays) { - updateBoundsFromBox(bb, _p.overlayBounds); - } else { - updateBoundsFromBox(bb, _p.bodyBounds); - } - } - if (opts.includeLabels) { - if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) { - updateBoundsFromBox(bb, _p.labelBounds.all); - } else { - if (opts.includeMainLabels) { - updateBoundsFromBox(bb, _p.labelBounds.mainRot); - } - if (opts.includeSourceLabels) { - updateBoundsFromBox(bb, _p.labelBounds.sourceRot); - } - if (opts.includeTargetLabels) { - updateBoundsFromBox(bb, _p.labelBounds.targetRot); - } - } - } - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - } - return bb; - }; - var defBbOpts = { - includeNodes: true, - includeEdges: true, - includeLabels: true, - includeMainLabels: true, - includeSourceLabels: true, - includeTargetLabels: true, - includeOverlays: true, - includeUnderlays: true, - includeOutlines: true, - useCache: true - }; - var defBbOptsKey = getKey(defBbOpts); - var filledBbOpts = defaults$g(defBbOpts); - elesfn$b.boundingBox = function(options) { - var bounds2; - if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === void 0 || options.useCache === void 0 || options.useCache === true)) { - if (options === void 0) { - options = defBbOpts; - } else { - options = filledBbOpts(options); - } - bounds2 = cachedBoundingBoxImpl(this[0], options); - } else { - bounds2 = makeBoundingBox(); - options = options || defBbOpts; - var opts = filledBbOpts(options); - var eles = this; - var cy = eles.cy(); - var styleEnabled = cy.styleEnabled(); - if (styleEnabled) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var _p = ele._private; - var currPosKey = getBoundingBoxPosKey(ele); - var isPosKeySame = _p.bbCachePosKey === currPosKey; - var useCache = opts.useCache && isPosKeySame && !_p.styleDirty; - ele.recalculateRenderedStyle(useCache); - } - } - this.updateCompoundBounds(!options.useCache); - for (var _i = 0; _i < eles.length; _i++) { - var _ele = eles[_i]; - updateBoundsFromBox(bounds2, cachedBoundingBoxImpl(_ele, opts)); - } - } - bounds2.x1 = noninf(bounds2.x1); - bounds2.y1 = noninf(bounds2.y1); - bounds2.x2 = noninf(bounds2.x2); - bounds2.y2 = noninf(bounds2.y2); - bounds2.w = noninf(bounds2.x2 - bounds2.x1); - bounds2.h = noninf(bounds2.y2 - bounds2.y1); - return bounds2; - }; - elesfn$b.dirtyBoundingBoxCache = function() { - for (var i2 = 0; i2 < this.length; i2++) { - var _p = this[i2]._private; - _p.bbCache = null; - _p.bbCachePosKey = null; - _p.bodyBounds = null; - _p.overlayBounds = null; - _p.labelBounds.all = null; - _p.labelBounds.source = null; - _p.labelBounds.target = null; - _p.labelBounds.main = null; - _p.labelBounds.sourceRot = null; - _p.labelBounds.targetRot = null; - _p.labelBounds.mainRot = null; - _p.arrowBounds.source = null; - _p.arrowBounds.target = null; - _p.arrowBounds["mid-source"] = null; - _p.arrowBounds["mid-target"] = null; - } - this.emitAndNotify("bounds"); - return this; - }; - elesfn$b.boundingBoxAt = function(fn2) { - var nodes2 = this.nodes(); - var cy = this.cy(); - var hasCompoundNodes = cy.hasCompoundNodes(); - var parents = cy.collection(); - if (hasCompoundNodes) { - parents = nodes2.filter(function(node) { - return node.isParent(); - }); - nodes2 = nodes2.not(parents); - } - if (plainObject(fn2)) { - var obj = fn2; - fn2 = function fn3() { - return obj; - }; - } - var storeOldPos = function storeOldPos2(node, i2) { - return node._private.bbAtOldPos = fn2(node, i2); - }; - var getOldPos = function getOldPos2(node) { - return node._private.bbAtOldPos; - }; - cy.startBatch(); - nodes2.forEach(storeOldPos).silentPositions(fn2); - if (hasCompoundNodes) { - parents.dirtyCompoundBoundsCache(); - parents.dirtyBoundingBoxCache(); - parents.updateCompoundBounds(true); - } - var bb = copyBoundingBox(this.boundingBox({ - useCache: false - })); - nodes2.silentPositions(getOldPos); - if (hasCompoundNodes) { - parents.dirtyCompoundBoundsCache(); - parents.dirtyBoundingBoxCache(); - parents.updateCompoundBounds(true); - } - cy.endBatch(); - return bb; - }; - fn$3.boundingbox = fn$3.bb = fn$3.boundingBox; - fn$3.renderedBoundingbox = fn$3.renderedBoundingBox; - var bounds = elesfn$b; - var fn$2, elesfn$a; - fn$2 = elesfn$a = {}; - var defineDimFns = function defineDimFns2(opts) { - opts.uppercaseName = capitalize(opts.name); - opts.autoName = "auto" + opts.uppercaseName; - opts.labelName = "label" + opts.uppercaseName; - opts.outerName = "outer" + opts.uppercaseName; - opts.uppercaseOuterName = capitalize(opts.outerName); - fn$2[opts.name] = function dimImpl() { - var ele = this[0]; - var _p = ele._private; - var cy = _p.cy; - var styleEnabled = cy._private.styleEnabled; - if (ele) { - if (styleEnabled) { - if (ele.isParent()) { - ele.updateCompoundBounds(); - return _p[opts.autoName] || 0; - } - var d = ele.pstyle(opts.name); - switch (d.strValue) { - case "label": - ele.recalculateRenderedStyle(); - return _p.rstyle[opts.labelName] || 0; - default: - return d.pfValue; - } - } else { - return 1; - } - } - }; - fn$2["outer" + opts.uppercaseName] = function outerDimImpl() { - var ele = this[0]; - var _p = ele._private; - var cy = _p.cy; - var styleEnabled = cy._private.styleEnabled; - if (ele) { - if (styleEnabled) { - var dim = ele[opts.name](); - var border = ele.pstyle("border-width").pfValue; - var padding = 2 * ele.padding(); - return dim + border + padding; - } else { - return 1; - } - } - }; - fn$2["rendered" + opts.uppercaseName] = function renderedDimImpl() { - var ele = this[0]; - if (ele) { - var d = ele[opts.name](); - return d * this.cy().zoom(); - } - }; - fn$2["rendered" + opts.uppercaseOuterName] = function renderedOuterDimImpl() { - var ele = this[0]; - if (ele) { - var od = ele[opts.outerName](); - return od * this.cy().zoom(); - } - }; - }; - defineDimFns({ - name: "width" - }); - defineDimFns({ - name: "height" - }); - elesfn$a.padding = function() { - var ele = this[0]; - var _p = ele._private; - if (ele.isParent()) { - ele.updateCompoundBounds(); - if (_p.autoPadding !== void 0) { - return _p.autoPadding; - } else { - return ele.pstyle("padding").pfValue; - } - } else { - return ele.pstyle("padding").pfValue; - } - }; - elesfn$a.paddedHeight = function() { - var ele = this[0]; - return ele.height() + 2 * ele.padding(); - }; - elesfn$a.paddedWidth = function() { - var ele = this[0]; - return ele.width() + 2 * ele.padding(); - }; - var widthHeight = elesfn$a; - var ifEdge = function ifEdge2(ele, getValue2) { - if (ele.isEdge()) { - return getValue2(ele); - } - }; - var ifEdgeRenderedPosition = function ifEdgeRenderedPosition2(ele, getPoint) { - if (ele.isEdge()) { - var cy = ele.cy(); - return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan()); - } - }; - var ifEdgeRenderedPositions = function ifEdgeRenderedPositions2(ele, getPoints) { - if (ele.isEdge()) { - var cy = ele.cy(); - var pan = cy.pan(); - var zoom = cy.zoom(); - return getPoints(ele).map(function(p2) { - return modelToRenderedPosition(p2, zoom, pan); - }); - } - }; - var controlPoints = function controlPoints2(ele) { - return ele.renderer().getControlPoints(ele); - }; - var segmentPoints = function segmentPoints2(ele) { - return ele.renderer().getSegmentPoints(ele); - }; - var sourceEndpoint = function sourceEndpoint2(ele) { - return ele.renderer().getSourceEndpoint(ele); - }; - var targetEndpoint = function targetEndpoint2(ele) { - return ele.renderer().getTargetEndpoint(ele); - }; - var midpoint = function midpoint2(ele) { - return ele.renderer().getEdgeMidpoint(ele); - }; - var pts = { - controlPoints: { - get: controlPoints, - mult: true - }, - segmentPoints: { - get: segmentPoints, - mult: true - }, - sourceEndpoint: { - get: sourceEndpoint - }, - targetEndpoint: { - get: targetEndpoint - }, - midpoint: { - get: midpoint - } - }; - var renderedName = function renderedName2(name2) { - return "rendered" + name2[0].toUpperCase() + name2.substr(1); - }; - var edgePoints = Object.keys(pts).reduce(function(obj, name2) { - var spec = pts[name2]; - var rName = renderedName(name2); - obj[name2] = function() { - return ifEdge(this, spec.get); - }; - if (spec.mult) { - obj[rName] = function() { - return ifEdgeRenderedPositions(this, spec.get); - }; - } else { - obj[rName] = function() { - return ifEdgeRenderedPosition(this, spec.get); - }; - } - return obj; - }, {}); - var dimensions = extend({}, position, bounds, widthHeight, edgePoints); - var Event = function Event2(src, props) { - this.recycle(src, props); - }; - function returnFalse() { - return false; - } - function returnTrue() { - return true; - } - Event.prototype = { - instanceString: function instanceString() { - return "event"; - }, - recycle: function recycle(src, props) { - this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse; - if (src != null && src.preventDefault) { - this.type = src.type; - this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse; - } else if (src != null && src.type) { - props = src; - } else { - this.type = src; - } - if (props != null) { - this.originalEvent = props.originalEvent; - this.type = props.type != null ? props.type : this.type; - this.cy = props.cy; - this.target = props.target; - this.position = props.position; - this.renderedPosition = props.renderedPosition; - this.namespace = props.namespace; - this.layout = props.layout; - } - if (this.cy != null && this.position != null && this.renderedPosition == null) { - var pos = this.position; - var zoom = this.cy.zoom(); - var pan = this.cy.pan(); - this.renderedPosition = { - x: pos.x * zoom + pan.x, - y: pos.y * zoom + pan.y - }; - } - this.timeStamp = src && src.timeStamp || Date.now(); - }, - preventDefault: function preventDefault() { - this.isDefaultPrevented = returnTrue; - var e = this.originalEvent; - if (!e) { - return; - } - if (e.preventDefault) { - e.preventDefault(); - } - }, - stopPropagation: function stopPropagation() { - this.isPropagationStopped = returnTrue; - var e = this.originalEvent; - if (!e) { - return; - } - if (e.stopPropagation) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function stopImmediatePropagation() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse - }; - var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/; - var universalNamespace = ".*"; - var defaults$8 = { - qualifierCompare: function qualifierCompare(q1, q2) { - return q1 === q2; - }, - eventMatches: function eventMatches() { - return true; - }, - addEventFields: function addEventFields() { - }, - callbackContext: function callbackContext(context) { - return context; - }, - beforeEmit: function beforeEmit() { - }, - afterEmit: function afterEmit() { - }, - bubble: function bubble() { - return false; - }, - parent: function parent() { - return null; - }, - context: null - }; - var defaultsKeys = Object.keys(defaults$8); - var emptyOpts = {}; - function Emitter() { - var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyOpts; - var context = arguments.length > 1 ? arguments[1] : void 0; - for (var i2 = 0; i2 < defaultsKeys.length; i2++) { - var key = defaultsKeys[i2]; - this[key] = opts[key] || defaults$8[key]; - } - this.context = context || this.context; - this.listeners = []; - this.emitting = 0; - } - var p = Emitter.prototype; - var forEachEvent = function forEachEvent2(self2, handler, events, qualifier, callback, conf, confOverrides) { - if (fn$6(qualifier)) { - callback = qualifier; - qualifier = null; - } - if (confOverrides) { - if (conf == null) { - conf = confOverrides; - } else { - conf = extend({}, conf, confOverrides); - } - } - var eventList = array(events) ? events : events.split(/\s+/); - for (var i2 = 0; i2 < eventList.length; i2++) { - var evt = eventList[i2]; - if (emptyString(evt)) { - continue; - } - var match2 = evt.match(eventRegex); - if (match2) { - var type = match2[1]; - var namespace = match2[2] ? match2[2] : null; - var ret = handler(self2, evt, type, namespace, qualifier, callback, conf); - if (ret === false) { - break; - } - } - } - }; - var makeEventObj = function makeEventObj2(self2, obj) { - self2.addEventFields(self2.context, obj); - return new Event(obj.type, obj); - }; - var forEachEventObj = function forEachEventObj2(self2, handler, events) { - if (event(events)) { - handler(self2, events); - return; - } else if (plainObject(events)) { - handler(self2, makeEventObj(self2, events)); - return; - } - var eventList = array(events) ? events : events.split(/\s+/); - for (var i2 = 0; i2 < eventList.length; i2++) { - var evt = eventList[i2]; - if (emptyString(evt)) { - continue; - } - var match2 = evt.match(eventRegex); - if (match2) { - var type = match2[1]; - var namespace = match2[2] ? match2[2] : null; - var eventObj = makeEventObj(self2, { - type, - namespace, - target: self2.context - }); - handler(self2, eventObj); - } - } - }; - p.on = p.addListener = function(events, qualifier, callback, conf, confOverrides) { - forEachEvent(this, function(self2, event2, type, namespace, qualifier2, callback2, conf2) { - if (fn$6(callback2)) { - self2.listeners.push({ - event: event2, - // full event string - callback: callback2, - // callback to run - type, - // the event type (e.g. 'click') - namespace, - // the event namespace (e.g. ".foo") - qualifier: qualifier2, - // a restriction on whether to match this emitter - conf: conf2 - // additional configuration - }); - } - }, events, qualifier, callback, conf, confOverrides); - return this; - }; - p.one = function(events, qualifier, callback, conf) { - return this.on(events, qualifier, callback, conf, { - one: true - }); - }; - p.removeListener = p.off = function(events, qualifier, callback, conf) { - var _this = this; - if (this.emitting !== 0) { - this.listeners = copyArray$1(this.listeners); - } - var listeners = this.listeners; - var _loop = function _loop2(i3) { - var listener = listeners[i3]; - forEachEvent(_this, function(self2, event2, type, namespace, qualifier2, callback2) { - if ((listener.type === type || events === "*") && (!namespace && listener.namespace !== ".*" || listener.namespace === namespace) && (!qualifier2 || self2.qualifierCompare(listener.qualifier, qualifier2)) && (!callback2 || listener.callback === callback2)) { - listeners.splice(i3, 1); - return false; - } - }, events, qualifier, callback, conf); - }; - for (var i2 = listeners.length - 1; i2 >= 0; i2--) { - _loop(i2); - } - return this; - }; - p.removeAllListeners = function() { - return this.removeListener("*"); - }; - p.emit = p.trigger = function(events, extraParams, manualCallback) { - var listeners = this.listeners; - var numListenersBeforeEmit = listeners.length; - this.emitting++; - if (!array(extraParams)) { - extraParams = [extraParams]; - } - forEachEventObj(this, function(self2, eventObj) { - if (manualCallback != null) { - listeners = [{ - event: eventObj.event, - type: eventObj.type, - namespace: eventObj.namespace, - callback: manualCallback - }]; - numListenersBeforeEmit = listeners.length; - } - var _loop2 = function _loop22(i3) { - var listener = listeners[i3]; - if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self2.eventMatches(self2.context, listener, eventObj)) { - var args = [eventObj]; - if (extraParams != null) { - push(args, extraParams); - } - self2.beforeEmit(self2.context, listener, eventObj); - if (listener.conf && listener.conf.one) { - self2.listeners = self2.listeners.filter(function(l) { - return l !== listener; - }); - } - var context = self2.callbackContext(self2.context, listener, eventObj); - var ret = listener.callback.apply(context, args); - self2.afterEmit(self2.context, listener, eventObj); - if (ret === false) { - eventObj.stopPropagation(); - eventObj.preventDefault(); - } - } - }; - for (var i2 = 0; i2 < numListenersBeforeEmit; i2++) { - _loop2(i2); - } - if (self2.bubble(self2.context) && !eventObj.isPropagationStopped()) { - self2.parent(self2.context).emit(eventObj, extraParams); - } - }, events); - this.emitting--; - return this; - }; - var emitterOptions$1 = { - qualifierCompare: function qualifierCompare(selector1, selector2) { - if (selector1 == null || selector2 == null) { - return selector1 == null && selector2 == null; - } else { - return selector1.sameText(selector2); - } - }, - eventMatches: function eventMatches(ele, listener, eventObj) { - var selector = listener.qualifier; - if (selector != null) { - return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); - } - return true; - }, - addEventFields: function addEventFields(ele, evt) { - evt.cy = ele.cy(); - evt.target = ele; - }, - callbackContext: function callbackContext(ele, listener, eventObj) { - return listener.qualifier != null ? eventObj.target : ele; - }, - beforeEmit: function beforeEmit(context, listener) { - if (listener.conf && listener.conf.once) { - listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback); - } - }, - bubble: function bubble() { - return true; - }, - parent: function parent(ele) { - return ele.isChild() ? ele.parent() : ele.cy(); - } - }; - var argSelector$1 = function argSelector2(arg) { - if (string(arg)) { - return new Selector(arg); - } else { - return arg; - } - }; - var elesfn$9 = { - createEmitter: function createEmitter() { - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var _p = ele._private; - if (!_p.emitter) { - _p.emitter = new Emitter(emitterOptions$1, ele); - } - } - return this; - }, - emitter: function emitter() { - return this._private.emitter; - }, - on: function on(events, selector, callback) { - var argSel = argSelector$1(selector); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - ele.emitter().on(events, argSel, callback); - } - return this; - }, - removeListener: function removeListener(events, selector, callback) { - var argSel = argSelector$1(selector); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - ele.emitter().removeListener(events, argSel, callback); - } - return this; - }, - removeAllListeners: function removeAllListeners() { - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - ele.emitter().removeAllListeners(); - } - return this; - }, - one: function one(events, selector, callback) { - var argSel = argSelector$1(selector); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - ele.emitter().one(events, argSel, callback); - } - return this; - }, - once: function once(events, selector, callback) { - var argSel = argSelector$1(selector); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - ele.emitter().on(events, argSel, callback, { - once: true, - onceCollection: this - }); - } - }, - emit: function emit(events, extraParams) { - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - ele.emitter().emit(events, extraParams); - } - return this; - }, - emitAndNotify: function emitAndNotify(event2, extraParams) { - if (this.length === 0) { - return; - } - this.cy().notify(event2, this); - this.emit(event2, extraParams); - return this; - } - }; - define2.eventAliasesOn(elesfn$9); - var elesfn$8 = { - nodes: function nodes2(selector) { - return this.filter(function(ele) { - return ele.isNode(); - }).filter(selector); - }, - edges: function edges(selector) { - return this.filter(function(ele) { - return ele.isEdge(); - }).filter(selector); - }, - // internal helper to get nodes and edges as separate collections with single iteration over elements - byGroup: function byGroup() { - var nodes2 = this.spawn(); - var edges = this.spawn(); - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - if (ele.isNode()) { - nodes2.push(ele); - } else { - edges.push(ele); - } - } - return { - nodes: nodes2, - edges - }; - }, - filter: function filter2(_filter, thisArg) { - if (_filter === void 0) { - return this; - } else if (string(_filter) || elementOrCollection(_filter)) { - return new Selector(_filter).filter(this); - } else if (fn$6(_filter)) { - var filterEles = this.spawn(); - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var include = thisArg ? _filter.apply(thisArg, [ele, i2, eles]) : _filter(ele, i2, eles); - if (include) { - filterEles.push(ele); - } - } - return filterEles; - } - return this.spawn(); - }, - not: function not(toRemove) { - if (!toRemove) { - return this; - } else { - if (string(toRemove)) { - toRemove = this.filter(toRemove); - } - var elements2 = this.spawn(); - for (var i2 = 0; i2 < this.length; i2++) { - var element2 = this[i2]; - var remove = toRemove.has(element2); - if (!remove) { - elements2.push(element2); - } - } - return elements2; - } - }, - absoluteComplement: function absoluteComplement() { - var cy = this.cy(); - return cy.mutableElements().not(this); - }, - intersect: function intersect(other) { - if (string(other)) { - var selector = other; - return this.filter(selector); - } - var elements2 = this.spawn(); - var col1 = this; - var col2 = other; - var col1Smaller = this.length < other.length; - var colS = col1Smaller ? col1 : col2; - var colL = col1Smaller ? col2 : col1; - for (var i2 = 0; i2 < colS.length; i2++) { - var ele = colS[i2]; - if (colL.has(ele)) { - elements2.push(ele); - } - } - return elements2; - }, - xor: function xor(other) { - var cy = this._private.cy; - if (string(other)) { - other = cy.$(other); - } - var elements2 = this.spawn(); - var col1 = this; - var col2 = other; - var add = function add2(col, other2) { - for (var i2 = 0; i2 < col.length; i2++) { - var ele = col[i2]; - var id = ele._private.data.id; - var inOther = other2.hasElementWithId(id); - if (!inOther) { - elements2.push(ele); - } - } - }; - add(col1, col2); - add(col2, col1); - return elements2; - }, - diff: function diff(other) { - var cy = this._private.cy; - if (string(other)) { - other = cy.$(other); - } - var left = this.spawn(); - var right = this.spawn(); - var both = this.spawn(); - var col1 = this; - var col2 = other; - var add = function add2(col, other2, retEles) { - for (var i2 = 0; i2 < col.length; i2++) { - var ele = col[i2]; - var id = ele._private.data.id; - var inOther = other2.hasElementWithId(id); - if (inOther) { - both.merge(ele); - } else { - retEles.push(ele); - } - } - }; - add(col1, col2, left); - add(col2, col1, right); - return { - left, - right, - both - }; - }, - add: function add(toAdd) { - var cy = this._private.cy; - if (!toAdd) { - return this; - } - if (string(toAdd)) { - var selector = toAdd; - toAdd = cy.mutableElements().filter(selector); - } - var elements2 = this.spawnSelf(); - for (var i2 = 0; i2 < toAdd.length; i2++) { - var ele = toAdd[i2]; - var add2 = !this.has(ele); - if (add2) { - elements2.push(ele); - } - } - return elements2; - }, - // in place merge on calling collection - merge: function merge(toAdd) { - var _p = this._private; - var cy = _p.cy; - if (!toAdd) { - return this; - } - if (toAdd && string(toAdd)) { - var selector = toAdd; - toAdd = cy.mutableElements().filter(selector); - } - var map = _p.map; - for (var i2 = 0; i2 < toAdd.length; i2++) { - var toAddEle = toAdd[i2]; - var id = toAddEle._private.data.id; - var add = !map.has(id); - if (add) { - var index = this.length++; - this[index] = toAddEle; - map.set(id, { - ele: toAddEle, - index - }); - } - } - return this; - }, - unmergeAt: function unmergeAt(i2) { - var ele = this[i2]; - var id = ele.id(); - var _p = this._private; - var map = _p.map; - this[i2] = void 0; - map["delete"](id); - var unmergedLastEle = i2 === this.length - 1; - if (this.length > 1 && !unmergedLastEle) { - var lastEleI = this.length - 1; - var lastEle = this[lastEleI]; - var lastEleId = lastEle._private.data.id; - this[lastEleI] = void 0; - this[i2] = lastEle; - map.set(lastEleId, { - ele: lastEle, - index: i2 - }); - } - this.length--; - return this; - }, - // remove single ele in place in calling collection - unmergeOne: function unmergeOne(ele) { - ele = ele[0]; - var _p = this._private; - var id = ele._private.data.id; - var map = _p.map; - var entry = map.get(id); - if (!entry) { - return this; - } - var i2 = entry.index; - this.unmergeAt(i2); - return this; - }, - // remove eles in place on calling collection - unmerge: function unmerge(toRemove) { - var cy = this._private.cy; - if (!toRemove) { - return this; - } - if (toRemove && string(toRemove)) { - var selector = toRemove; - toRemove = cy.mutableElements().filter(selector); - } - for (var i2 = 0; i2 < toRemove.length; i2++) { - this.unmergeOne(toRemove[i2]); - } - return this; - }, - unmergeBy: function unmergeBy(toRmFn) { - for (var i2 = this.length - 1; i2 >= 0; i2--) { - var ele = this[i2]; - if (toRmFn(ele)) { - this.unmergeAt(i2); - } - } - return this; - }, - map: function map(mapFn, thisArg) { - var arr = []; - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var ret = thisArg ? mapFn.apply(thisArg, [ele, i2, eles]) : mapFn(ele, i2, eles); - arr.push(ret); - } - return arr; - }, - reduce: function reduce(fn2, initialValue) { - var val = initialValue; - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - val = fn2(val, eles[i2], i2, eles); - } - return val; - }, - max: function max2(valFn, thisArg) { - var max3 = -Infinity; - var maxEle; - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles); - if (val > max3) { - max3 = val; - maxEle = ele; - } - } - return { - value: max3, - ele: maxEle - }; - }, - min: function min2(valFn, thisArg) { - var min3 = Infinity; - var minEle; - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var val = thisArg ? valFn.apply(thisArg, [ele, i2, eles]) : valFn(ele, i2, eles); - if (val < min3) { - min3 = val; - minEle = ele; - } - } - return { - value: min3, - ele: minEle - }; - } - }; - var fn$1 = elesfn$8; - fn$1["u"] = fn$1["|"] = fn$1["+"] = fn$1.union = fn$1.or = fn$1.add; - fn$1["\\"] = fn$1["!"] = fn$1["-"] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not; - fn$1["n"] = fn$1["&"] = fn$1["."] = fn$1.and = fn$1.intersection = fn$1.intersect; - fn$1["^"] = fn$1["(+)"] = fn$1["(-)"] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor; - fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter; - fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement; - var elesfn$7 = { - isNode: function isNode() { - return this.group() === "nodes"; - }, - isEdge: function isEdge() { - return this.group() === "edges"; - }, - isLoop: function isLoop() { - return this.isEdge() && this.source()[0] === this.target()[0]; - }, - isSimple: function isSimple() { - return this.isEdge() && this.source()[0] !== this.target()[0]; - }, - group: function group() { - var ele = this[0]; - if (ele) { - return ele._private.group; - } - } - }; - var zIndexSort = function zIndexSort2(a, b) { - var cy = a.cy(); - var hasCompoundNodes = cy.hasCompoundNodes(); - function getDepth(ele) { - var style = ele.pstyle("z-compound-depth"); - if (style.value === "auto") { - return hasCompoundNodes ? ele.zDepth() : 0; - } else if (style.value === "bottom") { - return -1; - } else if (style.value === "top") { - return MAX_INT$1; - } - return 0; - } - var depthDiff = getDepth(a) - getDepth(b); - if (depthDiff !== 0) { - return depthDiff; - } - function getEleDepth(ele) { - var style = ele.pstyle("z-index-compare"); - if (style.value === "auto") { - return ele.isNode() ? 1 : 0; - } - return 0; - } - var eleDiff = getEleDepth(a) - getEleDepth(b); - if (eleDiff !== 0) { - return eleDiff; - } - var zDiff = a.pstyle("z-index").value - b.pstyle("z-index").value; - if (zDiff !== 0) { - return zDiff; - } - return a.poolIndex() - b.poolIndex(); - }; - var elesfn$6 = { - forEach: function forEach(fn2, thisArg) { - if (fn$6(fn2)) { - var N = this.length; - for (var i2 = 0; i2 < N; i2++) { - var ele = this[i2]; - var ret = thisArg ? fn2.apply(thisArg, [ele, i2, this]) : fn2(ele, i2, this); - if (ret === false) { - break; - } - } - } - return this; - }, - toArray: function toArray() { - var array2 = []; - for (var i2 = 0; i2 < this.length; i2++) { - array2.push(this[i2]); - } - return array2; - }, - slice: function slice(start, end) { - var array2 = []; - var thisSize = this.length; - if (end == null) { - end = thisSize; - } - if (start == null) { - start = 0; - } - if (start < 0) { - start = thisSize + start; - } - if (end < 0) { - end = thisSize + end; - } - for (var i2 = start; i2 >= 0 && i2 < end && i2 < thisSize; i2++) { - array2.push(this[i2]); - } - return this.spawn(array2); - }, - size: function size() { - return this.length; - }, - eq: function eq2(i2) { - return this[i2] || this.spawn(); - }, - first: function first() { - return this[0] || this.spawn(); - }, - last: function last() { - return this[this.length - 1] || this.spawn(); - }, - empty: function empty() { - return this.length === 0; - }, - nonempty: function nonempty() { - return !this.empty(); - }, - sort: function sort(sortFn) { - if (!fn$6(sortFn)) { - return this; - } - var sorted = this.toArray().sort(sortFn); - return this.spawn(sorted); - }, - sortByZIndex: function sortByZIndex() { - return this.sort(zIndexSort); - }, - zDepth: function zDepth() { - var ele = this[0]; - if (!ele) { - return void 0; - } - var _p = ele._private; - var group = _p.group; - if (group === "nodes") { - var depth = _p.data.parent ? ele.parents().size() : 0; - if (!ele.isParent()) { - return MAX_INT$1 - 1; - } - return depth; - } else { - var src = _p.source; - var tgt = _p.target; - var srcDepth = src.zDepth(); - var tgtDepth = tgt.zDepth(); - return Math.max(srcDepth, tgtDepth, 0); - } - } - }; - elesfn$6.each = elesfn$6.forEach; - var defineSymbolIterator = function defineSymbolIterator2() { - var typeofUndef = "undefined"; - var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; - if (isIteratorSupported) { - elesfn$6[Symbol.iterator] = function() { - var _this = this; - var entry = { - value: void 0, - done: false - }; - var i2 = 0; - var length = this.length; - return _defineProperty$1({ - next: function next2() { - if (i2 < length) { - entry.value = _this[i2++]; - } else { - entry.value = void 0; - entry.done = true; - } - return entry; - } - }, Symbol.iterator, function() { - return this; - }); - }; - } - }; - defineSymbolIterator(); - var getLayoutDimensionOptions = defaults$g({ - nodeDimensionsIncludeLabels: false - }); - var elesfn$5 = { - // Calculates and returns node dimensions { x, y } based on options given - layoutDimensions: function layoutDimensions(options) { - options = getLayoutDimensionOptions(options); - var dims; - if (!this.takesUpSpace()) { - dims = { - w: 0, - h: 0 - }; - } else if (options.nodeDimensionsIncludeLabels) { - var bbDim = this.boundingBox(); - dims = { - w: bbDim.w, - h: bbDim.h - }; - } else { - dims = { - w: this.outerWidth(), - h: this.outerHeight() - }; - } - if (dims.w === 0 || dims.h === 0) { - dims.w = dims.h = 1; - } - return dims; - }, - // using standard layout options, apply position function (w/ or w/o animation) - layoutPositions: function layoutPositions(layout2, options, fn2) { - var nodes2 = this.nodes().filter(function(n) { - return !n.isParent(); - }); - var cy = this.cy(); - var layoutEles = options.eles; - var getMemoizeKey = function getMemoizeKey2(node2) { - return node2.id(); - }; - var fnMem = memoize$1(fn2, getMemoizeKey); - layout2.emit({ - type: "layoutstart", - layout: layout2 - }); - layout2.animations = []; - var calculateSpacing = function calculateSpacing2(spacing, nodesBb, pos) { - var center = { - x: nodesBb.x1 + nodesBb.w / 2, - y: nodesBb.y1 + nodesBb.h / 2 - }; - var spacingVector = { - // scale from center of bounding box (not necessarily 0,0) - x: (pos.x - center.x) * spacing, - y: (pos.y - center.y) * spacing - }; - return { - x: center.x + spacingVector.x, - y: center.y + spacingVector.y - }; - }; - var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1; - var spacingBb = function spacingBb2() { - if (!useSpacingFactor) { - return null; - } - var bb2 = makeBoundingBox(); - for (var i3 = 0; i3 < nodes2.length; i3++) { - var node2 = nodes2[i3]; - var pos = fnMem(node2, i3); - expandBoundingBoxByPoint(bb2, pos.x, pos.y); - } - return bb2; - }; - var bb = spacingBb(); - var getFinalPos = memoize$1(function(node2, i3) { - var newPos2 = fnMem(node2, i3); - if (useSpacingFactor) { - var spacing = Math.abs(options.spacingFactor); - newPos2 = calculateSpacing(spacing, bb, newPos2); - } - if (options.transform != null) { - newPos2 = options.transform(node2, newPos2); - } - return newPos2; - }, getMemoizeKey); - if (options.animate) { - for (var i2 = 0; i2 < nodes2.length; i2++) { - var node = nodes2[i2]; - var newPos = getFinalPos(node, i2); - var animateNode = options.animateFilter == null || options.animateFilter(node, i2); - if (animateNode) { - var ani = node.animation({ - position: newPos, - duration: options.animationDuration, - easing: options.animationEasing - }); - layout2.animations.push(ani); - } else { - node.position(newPos); - } - } - if (options.fit) { - var fitAni = cy.animation({ - fit: { - boundingBox: layoutEles.boundingBoxAt(getFinalPos), - padding: options.padding - }, - duration: options.animationDuration, - easing: options.animationEasing - }); - layout2.animations.push(fitAni); - } else if (options.zoom !== void 0 && options.pan !== void 0) { - var zoomPanAni = cy.animation({ - zoom: options.zoom, - pan: options.pan, - duration: options.animationDuration, - easing: options.animationEasing - }); - layout2.animations.push(zoomPanAni); - } - layout2.animations.forEach(function(ani2) { - return ani2.play(); - }); - layout2.one("layoutready", options.ready); - layout2.emit({ - type: "layoutready", - layout: layout2 - }); - Promise$1.all(layout2.animations.map(function(ani2) { - return ani2.promise(); - })).then(function() { - layout2.one("layoutstop", options.stop); - layout2.emit({ - type: "layoutstop", - layout: layout2 - }); - }); - } else { - nodes2.positions(getFinalPos); - if (options.fit) { - cy.fit(options.eles, options.padding); - } - if (options.zoom != null) { - cy.zoom(options.zoom); - } - if (options.pan) { - cy.pan(options.pan); - } - layout2.one("layoutready", options.ready); - layout2.emit({ - type: "layoutready", - layout: layout2 - }); - layout2.one("layoutstop", options.stop); - layout2.emit({ - type: "layoutstop", - layout: layout2 - }); - } - return this; - }, - layout: function layout2(options) { - var cy = this.cy(); - return cy.makeLayout(extend({}, options, { - eles: this - })); - } - }; - elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout; - function styleCache(key, fn2, ele) { - var _p = ele._private; - var cache2 = _p.styleCache = _p.styleCache || []; - var val; - if ((val = cache2[key]) != null) { - return val; - } else { - val = cache2[key] = fn2(ele); - return val; - } - } - function cacheStyleFunction(key, fn2) { - key = hashString(key); - return function cachedStyleFunction(ele) { - return styleCache(key, fn2, ele); - }; - } - function cachePrototypeStyleFunction(key, fn2) { - key = hashString(key); - var selfFn = function selfFn2(ele) { - return fn2.call(ele); - }; - return function cachedPrototypeStyleFunction() { - var ele = this[0]; - if (ele) { - return styleCache(key, selfFn, ele); - } - }; - } - var elesfn$4 = { - recalculateRenderedStyle: function recalculateRenderedStyle(useCache) { - var cy = this.cy(); - var renderer2 = cy.renderer(); - var styleEnabled = cy.styleEnabled(); - if (renderer2 && styleEnabled) { - renderer2.recalculateRenderedStyle(this, useCache); - } - return this; - }, - dirtyStyleCache: function dirtyStyleCache() { - var cy = this.cy(); - var dirty = function dirty2(ele) { - return ele._private.styleCache = null; - }; - if (cy.hasCompoundNodes()) { - var eles; - eles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); - eles.merge(eles.connectedEdges()); - eles.forEach(dirty); - } else { - this.forEach(function(ele) { - dirty(ele); - ele.connectedEdges().forEach(dirty); - }); - } - return this; - }, - // fully updates (recalculates) the style for the elements - updateStyle: function updateStyle(notifyRenderer) { - var cy = this._private.cy; - if (!cy.styleEnabled()) { - return this; - } - if (cy.batching()) { - var bEles = cy._private.batchStyleEles; - bEles.merge(this); - return this; - } - var hasCompounds = cy.hasCompoundNodes(); - var updatedEles = this; - notifyRenderer = notifyRenderer || notifyRenderer === void 0 ? true : false; - if (hasCompounds) { - updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); - } - var changedEles = updatedEles; - if (notifyRenderer) { - changedEles.emitAndNotify("style"); - } else { - changedEles.emit("style"); - } - updatedEles.forEach(function(ele) { - return ele._private.styleDirty = true; - }); - return this; - }, - // private: clears dirty flag and recalculates style - cleanStyle: function cleanStyle() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return; - } - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - if (ele._private.styleDirty) { - ele._private.styleDirty = false; - cy.style().apply(ele); - } - } - }, - // get the internal parsed style object for the specified property - parsedStyle: function parsedStyle(property) { - var includeNonDefault = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var ele = this[0]; - var cy = ele.cy(); - if (!cy.styleEnabled()) { - return; - } - if (ele) { - this.cleanStyle(); - var overriddenStyle = ele._private.style[property]; - if (overriddenStyle != null) { - return overriddenStyle; - } else if (includeNonDefault) { - return cy.style().getDefaultProperty(property); - } else { - return null; - } - } - }, - numericStyle: function numericStyle(property) { - var ele = this[0]; - if (!ele.cy().styleEnabled()) { - return; - } - if (ele) { - var pstyle = ele.pstyle(property); - return pstyle.pfValue !== void 0 ? pstyle.pfValue : pstyle.value; - } - }, - numericStyleUnits: function numericStyleUnits(property) { - var ele = this[0]; - if (!ele.cy().styleEnabled()) { - return; - } - if (ele) { - return ele.pstyle(property).units; - } - }, - // get the specified css property as a rendered value (i.e. on-screen value) - // or get the whole rendered style if no property specified (NB doesn't allow setting) - renderedStyle: function renderedStyle(property) { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return this; - } - var ele = this[0]; - if (ele) { - return cy.style().getRenderedStyle(ele, property); - } - }, - // read the calculated css style of the element or override the style (via a bypass) - style: function style(name2, value) { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return this; - } - var updateTransitions = false; - var style2 = cy.style(); - if (plainObject(name2)) { - var props = name2; - style2.applyBypass(this, props, updateTransitions); - this.emitAndNotify("style"); - } else if (string(name2)) { - if (value === void 0) { - var ele = this[0]; - if (ele) { - return style2.getStylePropertyValue(ele, name2); - } else { - return; - } - } else { - style2.applyBypass(this, name2, value, updateTransitions); - this.emitAndNotify("style"); - } - } else if (name2 === void 0) { - var _ele = this[0]; - if (_ele) { - return style2.getRawStyle(_ele); - } else { - return; - } - } - return this; - }, - removeStyle: function removeStyle(names) { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return this; - } - var updateTransitions = false; - var style = cy.style(); - var eles = this; - if (names === void 0) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - style.removeAllBypasses(ele, updateTransitions); - } - } else { - names = names.split(/\s+/); - for (var _i = 0; _i < eles.length; _i++) { - var _ele2 = eles[_i]; - style.removeBypasses(_ele2, names, updateTransitions); - } - } - this.emitAndNotify("style"); - return this; - }, - show: function show() { - this.css("display", "element"); - return this; - }, - hide: function hide() { - this.css("display", "none"); - return this; - }, - effectiveOpacity: function effectiveOpacity() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return 1; - } - var hasCompoundNodes = cy.hasCompoundNodes(); - var ele = this[0]; - if (ele) { - var _p = ele._private; - var parentOpacity = ele.pstyle("opacity").value; - if (!hasCompoundNodes) { - return parentOpacity; - } - var parents = !_p.data.parent ? null : ele.parents(); - if (parents) { - for (var i2 = 0; i2 < parents.length; i2++) { - var parent = parents[i2]; - var opacity = parent.pstyle("opacity").value; - parentOpacity = opacity * parentOpacity; - } - } - return parentOpacity; - } - }, - transparent: function transparent() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return false; - } - var ele = this[0]; - var hasCompoundNodes = ele.cy().hasCompoundNodes(); - if (ele) { - if (!hasCompoundNodes) { - return ele.pstyle("opacity").value === 0; - } else { - return ele.effectiveOpacity() === 0; - } - } - }, - backgrounding: function backgrounding() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return false; - } - var ele = this[0]; - return ele._private.backgrounding ? true : false; - } - }; - function checkCompound(ele, parentOk) { - var _p = ele._private; - var parents = _p.data.parent ? ele.parents() : null; - if (parents) { - for (var i2 = 0; i2 < parents.length; i2++) { - var parent = parents[i2]; - if (!parentOk(parent)) { - return false; - } - } - } - return true; - } - function defineDerivedStateFunction(specs) { - var ok = specs.ok; - var edgeOkViaNode = specs.edgeOkViaNode || specs.ok; - var parentOk = specs.parentOk || specs.ok; - return function() { - var cy = this.cy(); - if (!cy.styleEnabled()) { - return true; - } - var ele = this[0]; - var hasCompoundNodes = cy.hasCompoundNodes(); - if (ele) { - var _p = ele._private; - if (!ok(ele)) { - return false; - } - if (ele.isNode()) { - return !hasCompoundNodes || checkCompound(ele, parentOk); - } else { - var src = _p.source; - var tgt = _p.target; - return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode))); - } - } - }; - } - var eleTakesUpSpace = cacheStyleFunction("eleTakesUpSpace", function(ele) { - return ele.pstyle("display").value === "element" && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true); - }); - elesfn$4.takesUpSpace = cachePrototypeStyleFunction("takesUpSpace", defineDerivedStateFunction({ - ok: eleTakesUpSpace - })); - var eleInteractive = cacheStyleFunction("eleInteractive", function(ele) { - return ele.pstyle("events").value === "yes" && ele.pstyle("visibility").value === "visible" && eleTakesUpSpace(ele); - }); - var parentInteractive = cacheStyleFunction("parentInteractive", function(parent) { - return parent.pstyle("visibility").value === "visible" && eleTakesUpSpace(parent); - }); - elesfn$4.interactive = cachePrototypeStyleFunction("interactive", defineDerivedStateFunction({ - ok: eleInteractive, - parentOk: parentInteractive, - edgeOkViaNode: eleTakesUpSpace - })); - elesfn$4.noninteractive = function() { - var ele = this[0]; - if (ele) { - return !ele.interactive(); - } - }; - var eleVisible = cacheStyleFunction("eleVisible", function(ele) { - return ele.pstyle("visibility").value === "visible" && ele.pstyle("opacity").pfValue !== 0 && eleTakesUpSpace(ele); - }); - var edgeVisibleViaNode = eleTakesUpSpace; - elesfn$4.visible = cachePrototypeStyleFunction("visible", defineDerivedStateFunction({ - ok: eleVisible, - edgeOkViaNode: edgeVisibleViaNode - })); - elesfn$4.hidden = function() { - var ele = this[0]; - if (ele) { - return !ele.visible(); - } - }; - elesfn$4.isBundledBezier = cachePrototypeStyleFunction("isBundledBezier", function() { - if (!this.cy().styleEnabled()) { - return false; - } - return !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace(); - }); - elesfn$4.bypass = elesfn$4.css = elesfn$4.style; - elesfn$4.renderedCss = elesfn$4.renderedStyle; - elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle; - elesfn$4.pstyle = elesfn$4.parsedStyle; - var elesfn$3 = {}; - function defineSwitchFunction(params) { - return function() { - var args = arguments; - var changedEles = []; - if (args.length === 2) { - var data2 = args[0]; - var handler = args[1]; - this.on(params.event, data2, handler); - } else if (args.length === 1 && fn$6(args[0])) { - var _handler = args[0]; - this.on(params.event, _handler); - } else if (args.length === 0 || args.length === 1 && array(args[0])) { - var addlEvents = args.length === 1 ? args[0] : null; - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var able = !params.ableField || ele._private[params.ableField]; - var changed = ele._private[params.field] != params.value; - if (params.overrideAble) { - var overrideAble = params.overrideAble(ele); - if (overrideAble !== void 0) { - able = overrideAble; - if (!overrideAble) { - return this; - } - } - } - if (able) { - ele._private[params.field] = params.value; - if (changed) { - changedEles.push(ele); - } - } - } - var changedColl = this.spawn(changedEles); - changedColl.updateStyle(); - changedColl.emit(params.event); - if (addlEvents) { - changedColl.emit(addlEvents); - } - } - return this; - }; - } - function defineSwitchSet(params) { - elesfn$3[params.field] = function() { - var ele = this[0]; - if (ele) { - if (params.overrideField) { - var val = params.overrideField(ele); - if (val !== void 0) { - return val; - } - } - return ele._private[params.field]; - } - }; - elesfn$3[params.on] = defineSwitchFunction({ - event: params.on, - field: params.field, - ableField: params.ableField, - overrideAble: params.overrideAble, - value: true - }); - elesfn$3[params.off] = defineSwitchFunction({ - event: params.off, - field: params.field, - ableField: params.ableField, - overrideAble: params.overrideAble, - value: false - }); - } - defineSwitchSet({ - field: "locked", - overrideField: function overrideField(ele) { - return ele.cy().autolock() ? true : void 0; - }, - on: "lock", - off: "unlock" - }); - defineSwitchSet({ - field: "grabbable", - overrideField: function overrideField(ele) { - return ele.cy().autoungrabify() || ele.pannable() ? false : void 0; - }, - on: "grabify", - off: "ungrabify" - }); - defineSwitchSet({ - field: "selected", - ableField: "selectable", - overrideAble: function overrideAble(ele) { - return ele.cy().autounselectify() ? false : void 0; - }, - on: "select", - off: "unselect" - }); - defineSwitchSet({ - field: "selectable", - overrideField: function overrideField(ele) { - return ele.cy().autounselectify() ? false : void 0; - }, - on: "selectify", - off: "unselectify" - }); - elesfn$3.deselect = elesfn$3.unselect; - elesfn$3.grabbed = function() { - var ele = this[0]; - if (ele) { - return ele._private.grabbed; - } - }; - defineSwitchSet({ - field: "active", - on: "activate", - off: "unactivate" - }); - defineSwitchSet({ - field: "pannable", - on: "panify", - off: "unpanify" - }); - elesfn$3.inactive = function() { - var ele = this[0]; - if (ele) { - return !ele._private.active; - } - }; - var elesfn$2 = {}; - var defineDagExtremity = function defineDagExtremity2(params) { - return function dagExtremityImpl(selector) { - var eles = this; - var ret = []; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - if (!ele.isNode()) { - continue; - } - var disqualified = false; - var edges = ele.connectedEdges(); - for (var j = 0; j < edges.length; j++) { - var edge = edges[j]; - var src = edge.source(); - var tgt = edge.target(); - if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) { - disqualified = true; - break; - } - } - if (!disqualified) { - ret.push(ele); - } - } - return this.spawn(ret, true).filter(selector); - }; - }; - var defineDagOneHop = function defineDagOneHop2(params) { - return function(selector) { - var eles = this; - var oEles = []; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - if (!ele.isNode()) { - continue; - } - var edges = ele.connectedEdges(); - for (var j = 0; j < edges.length; j++) { - var edge = edges[j]; - var src = edge.source(); - var tgt = edge.target(); - if (params.outgoing && src === ele) { - oEles.push(edge); - oEles.push(tgt); - } else if (params.incoming && tgt === ele) { - oEles.push(edge); - oEles.push(src); - } - } - } - return this.spawn(oEles, true).filter(selector); - }; - }; - var defineDagAllHops = function defineDagAllHops2(params) { - return function(selector) { - var eles = this; - var sEles = []; - var sElesIds = {}; - for (; ; ) { - var next2 = params.outgoing ? eles.outgoers() : eles.incomers(); - if (next2.length === 0) { - break; - } - var newNext = false; - for (var i2 = 0; i2 < next2.length; i2++) { - var n = next2[i2]; - var nid = n.id(); - if (!sElesIds[nid]) { - sElesIds[nid] = true; - sEles.push(n); - newNext = true; - } - } - if (!newNext) { - break; - } - eles = next2; - } - return this.spawn(sEles, true).filter(selector); - }; - }; - elesfn$2.clearTraversalCache = function() { - for (var i2 = 0; i2 < this.length; i2++) { - this[i2]._private.traversalCache = null; - } - }; - extend(elesfn$2, { - // get the root nodes in the DAG - roots: defineDagExtremity({ - noIncomingEdges: true - }), - // get the leaf nodes in the DAG - leaves: defineDagExtremity({ - noOutgoingEdges: true - }), - // normally called children in graph theory - // these nodes =edges=> outgoing nodes - outgoers: cache(defineDagOneHop({ - outgoing: true - }), "outgoers"), - // aka DAG descendants - successors: defineDagAllHops({ - outgoing: true - }), - // normally called parents in graph theory - // these nodes <=edges= incoming nodes - incomers: cache(defineDagOneHop({ - incoming: true - }), "incomers"), - // aka DAG ancestors - predecessors: defineDagAllHops({ - incoming: true - }) - }); - extend(elesfn$2, { - neighborhood: cache(function(selector) { - var elements2 = []; - var nodes2 = this.nodes(); - for (var i2 = 0; i2 < nodes2.length; i2++) { - var node = nodes2[i2]; - var connectedEdges = node.connectedEdges(); - for (var j = 0; j < connectedEdges.length; j++) { - var edge = connectedEdges[j]; - var src = edge.source(); - var tgt = edge.target(); - var otherNode = node === src ? tgt : src; - if (otherNode.length > 0) { - elements2.push(otherNode[0]); - } - elements2.push(edge[0]); - } - } - return this.spawn(elements2, true).filter(selector); - }, "neighborhood"), - closedNeighborhood: function closedNeighborhood(selector) { - return this.neighborhood().add(this).filter(selector); - }, - openNeighborhood: function openNeighborhood(selector) { - return this.neighborhood(selector); - } - }); - elesfn$2.neighbourhood = elesfn$2.neighborhood; - elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood; - elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood; - extend(elesfn$2, { - source: cache(function sourceImpl(selector) { - var ele = this[0]; - var src; - if (ele) { - src = ele._private.source || ele.cy().collection(); - } - return src && selector ? src.filter(selector) : src; - }, "source"), - target: cache(function targetImpl(selector) { - var ele = this[0]; - var tgt; - if (ele) { - tgt = ele._private.target || ele.cy().collection(); - } - return tgt && selector ? tgt.filter(selector) : tgt; - }, "target"), - sources: defineSourceFunction({ - attr: "source" - }), - targets: defineSourceFunction({ - attr: "target" - }) - }); - function defineSourceFunction(params) { - return function sourceImpl(selector) { - var sources = []; - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var src = ele._private[params.attr]; - if (src) { - sources.push(src); - } - } - return this.spawn(sources, true).filter(selector); - }; - } - extend(elesfn$2, { - edgesWith: cache(defineEdgesWithFunction(), "edgesWith"), - edgesTo: cache(defineEdgesWithFunction({ - thisIsSrc: true - }), "edgesTo") - }); - function defineEdgesWithFunction(params) { - return function edgesWithImpl(otherNodes) { - var elements2 = []; - var cy = this._private.cy; - var p2 = params || {}; - if (string(otherNodes)) { - otherNodes = cy.$(otherNodes); - } - for (var h = 0; h < otherNodes.length; h++) { - var edges = otherNodes[h]._private.edges; - for (var i2 = 0; i2 < edges.length; i2++) { - var edge = edges[i2]; - var edgeData = edge._private.data; - var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target); - var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target); - var edgeConnectsThisAndOther = thisToOther || otherToThis; - if (!edgeConnectsThisAndOther) { - continue; - } - if (p2.thisIsSrc || p2.thisIsTgt) { - if (p2.thisIsSrc && !thisToOther) { - continue; - } - if (p2.thisIsTgt && !otherToThis) { - continue; - } - } - elements2.push(edge); - } - } - return this.spawn(elements2, true); - }; - } - extend(elesfn$2, { - connectedEdges: cache(function(selector) { - var retEles = []; - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var node = eles[i2]; - if (!node.isNode()) { - continue; - } - var edges = node._private.edges; - for (var j = 0; j < edges.length; j++) { - var edge = edges[j]; - retEles.push(edge); - } - } - return this.spawn(retEles, true).filter(selector); - }, "connectedEdges"), - connectedNodes: cache(function(selector) { - var retEles = []; - var eles = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var edge = eles[i2]; - if (!edge.isEdge()) { - continue; - } - retEles.push(edge.source()[0]); - retEles.push(edge.target()[0]); - } - return this.spawn(retEles, true).filter(selector); - }, "connectedNodes"), - parallelEdges: cache(defineParallelEdgesFunction(), "parallelEdges"), - codirectedEdges: cache(defineParallelEdgesFunction({ - codirected: true - }), "codirectedEdges") - }); - function defineParallelEdgesFunction(params) { - var defaults2 = { - codirected: false - }; - params = extend({}, defaults2, params); - return function parallelEdgesImpl(selector) { - var elements2 = []; - var edges = this.edges(); - var p2 = params; - for (var i2 = 0; i2 < edges.length; i2++) { - var edge1 = edges[i2]; - var edge1_p = edge1._private; - var src1 = edge1_p.source; - var srcid1 = src1._private.data.id; - var tgtid1 = edge1_p.data.target; - var srcEdges1 = src1._private.edges; - for (var j = 0; j < srcEdges1.length; j++) { - var edge2 = srcEdges1[j]; - var edge2data = edge2._private.data; - var tgtid2 = edge2data.target; - var srcid2 = edge2data.source; - var codirected = tgtid2 === tgtid1 && srcid2 === srcid1; - var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2; - if (p2.codirected && codirected || !p2.codirected && (codirected || oppdirected)) { - elements2.push(edge2); - } - } - } - return this.spawn(elements2, true).filter(selector); - }; - } - extend(elesfn$2, { - components: function components(root2) { - var self2 = this; - var cy = self2.cy(); - var visited = cy.collection(); - var unvisited = root2 == null ? self2.nodes() : root2.nodes(); - var components2 = []; - if (root2 != null && unvisited.empty()) { - unvisited = root2.sources(); - } - var visitInComponent = function visitInComponent2(node, component) { - visited.merge(node); - unvisited.unmerge(node); - component.merge(node); - }; - if (unvisited.empty()) { - return self2.spawn(); - } - var _loop = function _loop2() { - var cmpt = cy.collection(); - components2.push(cmpt); - var root3 = unvisited[0]; - visitInComponent(root3, cmpt); - self2.bfs({ - directed: false, - roots: root3, - visit: function visit(v) { - return visitInComponent(v, cmpt); - } - }); - cmpt.forEach(function(node) { - node.connectedEdges().forEach(function(e) { - if (self2.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) { - cmpt.merge(e); - } - }); - }); - }; - do { - _loop(); - } while (unvisited.length > 0); - return components2; - }, - component: function component() { - var ele = this[0]; - return ele.cy().mutableElements().components(ele)[0]; - } - }); - elesfn$2.componentsOf = elesfn$2.components; - var Collection = function Collection2(cy, elements2) { - var unique = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false; - var removed = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false; - if (cy === void 0) { - error("A collection must have a reference to the core"); - return; - } - var map = new Map$2(); - var createdElements = false; - if (!elements2) { - elements2 = []; - } else if (elements2.length > 0 && plainObject(elements2[0]) && !element(elements2[0])) { - createdElements = true; - var eles = []; - var elesIds = new Set$1(); - for (var i2 = 0, l = elements2.length; i2 < l; i2++) { - var json = elements2[i2]; - if (json.data == null) { - json.data = {}; - } - var _data = json.data; - if (_data.id == null) { - _data.id = uuid(); - } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) { - continue; - } - var ele = new Element(cy, json, false); - eles.push(ele); - elesIds.add(_data.id); - } - elements2 = eles; - } - this.length = 0; - for (var _i = 0, _l = elements2.length; _i < _l; _i++) { - var element$1 = elements2[_i][0]; - if (element$1 == null) { - continue; - } - var id = element$1._private.data.id; - if (!unique || !map.has(id)) { - if (unique) { - map.set(id, { - index: this.length, - ele: element$1 - }); - } - this[this.length] = element$1; - this.length++; - } - } - this._private = { - eles: this, - cy, - get map() { - if (this.lazyMap == null) { - this.rebuildMap(); - } - return this.lazyMap; - }, - set map(m) { - this.lazyMap = m; - }, - rebuildMap: function rebuildMap() { - var m = this.lazyMap = new Map$2(); - var eles2 = this.eles; - for (var _i2 = 0; _i2 < eles2.length; _i2++) { - var _ele = eles2[_i2]; - m.set(_ele.id(), { - index: _i2, - ele: _ele - }); - } - } - }; - if (unique) { - this._private.map = map; - } - if (createdElements && !removed) { - this.restore(); - } - }; - var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype); - elesfn$1.instanceString = function() { - return "collection"; - }; - elesfn$1.spawn = function(eles, unique) { - return new Collection(this.cy(), eles, unique); - }; - elesfn$1.spawnSelf = function() { - return this.spawn(this); - }; - elesfn$1.cy = function() { - return this._private.cy; - }; - elesfn$1.renderer = function() { - return this._private.cy.renderer(); - }; - elesfn$1.element = function() { - return this[0]; - }; - elesfn$1.collection = function() { - if (collection(this)) { - return this; - } else { - return new Collection(this._private.cy, [this]); - } - }; - elesfn$1.unique = function() { - return new Collection(this._private.cy, this, true); - }; - elesfn$1.hasElementWithId = function(id) { - id = "" + id; - return this._private.map.has(id); - }; - elesfn$1.getElementById = function(id) { - id = "" + id; - var cy = this._private.cy; - var entry = this._private.map.get(id); - return entry ? entry.ele : new Collection(cy); - }; - elesfn$1.$id = elesfn$1.getElementById; - elesfn$1.poolIndex = function() { - var cy = this._private.cy; - var eles = cy._private.elements; - var id = this[0]._private.data.id; - return eles._private.map.get(id).index; - }; - elesfn$1.indexOf = function(ele) { - var id = ele[0]._private.data.id; - return this._private.map.get(id).index; - }; - elesfn$1.indexOfId = function(id) { - id = "" + id; - return this._private.map.get(id).index; - }; - elesfn$1.json = function(obj) { - var ele = this.element(); - var cy = this.cy(); - if (ele == null && obj) { - return this; - } - if (ele == null) { - return void 0; - } - var p2 = ele._private; - if (plainObject(obj)) { - cy.startBatch(); - if (obj.data) { - ele.data(obj.data); - var _data2 = p2.data; - if (ele.isEdge()) { - var move = false; - var spec = {}; - var src = obj.data.source; - var tgt = obj.data.target; - if (src != null && src != _data2.source) { - spec.source = "" + src; - move = true; - } - if (tgt != null && tgt != _data2.target) { - spec.target = "" + tgt; - move = true; - } - if (move) { - ele = ele.move(spec); - } - } else { - var newParentValSpecd = "parent" in obj.data; - var parent = obj.data.parent; - if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) { - if (parent === void 0) { - parent = null; - } - if (parent != null) { - parent = "" + parent; - } - ele = ele.move({ - parent - }); - } - } - } - if (obj.position) { - ele.position(obj.position); - } - var checkSwitch = function checkSwitch2(k, trueFnName, falseFnName) { - var obj_k = obj[k]; - if (obj_k != null && obj_k !== p2[k]) { - if (obj_k) { - ele[trueFnName](); - } else { - ele[falseFnName](); - } - } - }; - checkSwitch("removed", "remove", "restore"); - checkSwitch("selected", "select", "unselect"); - checkSwitch("selectable", "selectify", "unselectify"); - checkSwitch("locked", "lock", "unlock"); - checkSwitch("grabbable", "grabify", "ungrabify"); - checkSwitch("pannable", "panify", "unpanify"); - if (obj.classes != null) { - ele.classes(obj.classes); - } - cy.endBatch(); - return this; - } else if (obj === void 0) { - var json = { - data: copy(p2.data), - position: copy(p2.position), - group: p2.group, - removed: p2.removed, - selected: p2.selected, - selectable: p2.selectable, - locked: p2.locked, - grabbable: p2.grabbable, - pannable: p2.pannable, - classes: null - }; - json.classes = ""; - var i2 = 0; - p2.classes.forEach(function(cls) { - return json.classes += i2++ === 0 ? cls : " " + cls; - }); - return json; - } - }; - elesfn$1.jsons = function() { - var jsons = []; - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var json = ele.json(); - jsons.push(json); - } - return jsons; - }; - elesfn$1.clone = function() { - var cy = this.cy(); - var elesArr = []; - for (var i2 = 0; i2 < this.length; i2++) { - var ele = this[i2]; - var json = ele.json(); - var clone2 = new Element(cy, json, false); - elesArr.push(clone2); - } - return new Collection(cy, elesArr); - }; - elesfn$1.copy = elesfn$1.clone; - elesfn$1.restore = function() { - var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; - var addToPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var self2 = this; - var cy = self2.cy(); - var cy_p = cy._private; - var nodes2 = []; - var edges = []; - var elements2; - for (var _i3 = 0, l = self2.length; _i3 < l; _i3++) { - var ele = self2[_i3]; - if (addToPool && !ele.removed()) { - continue; - } - if (ele.isNode()) { - nodes2.push(ele); - } else { - edges.push(ele); - } - } - elements2 = nodes2.concat(edges); - var i2; - var removeFromElements = function removeFromElements2() { - elements2.splice(i2, 1); - i2--; - }; - for (i2 = 0; i2 < elements2.length; i2++) { - var _ele2 = elements2[i2]; - var _private = _ele2._private; - var _data3 = _private.data; - _ele2.clearTraversalCache(); - if (!addToPool && !_private.removed) - ; - else if (_data3.id === void 0) { - _data3.id = uuid(); - } else if (number$1(_data3.id)) { - _data3.id = "" + _data3.id; - } else if (emptyString(_data3.id) || !string(_data3.id)) { - error("Can not create element with invalid string ID `" + _data3.id + "`"); - removeFromElements(); - continue; - } else if (cy.hasElementWithId(_data3.id)) { - error("Can not create second element with ID `" + _data3.id + "`"); - removeFromElements(); - continue; - } - var id = _data3.id; - if (_ele2.isNode()) { - var pos = _private.position; - if (pos.x == null) { - pos.x = 0; - } - if (pos.y == null) { - pos.y = 0; - } - } - if (_ele2.isEdge()) { - var edge = _ele2; - var fields = ["source", "target"]; - var fieldsLength = fields.length; - var badSourceOrTarget = false; - for (var j = 0; j < fieldsLength; j++) { - var field = fields[j]; - var val = _data3[field]; - if (number$1(val)) { - val = _data3[field] = "" + _data3[field]; - } - if (val == null || val === "") { - error("Can not create edge `" + id + "` with unspecified " + field); - badSourceOrTarget = true; - } else if (!cy.hasElementWithId(val)) { - error("Can not create edge `" + id + "` with nonexistant " + field + " `" + val + "`"); - badSourceOrTarget = true; - } - } - if (badSourceOrTarget) { - removeFromElements(); - continue; - } - var src = cy.getElementById(_data3.source); - var tgt = cy.getElementById(_data3.target); - if (src.same(tgt)) { - src._private.edges.push(edge); - } else { - src._private.edges.push(edge); - tgt._private.edges.push(edge); - } - edge._private.source = src; - edge._private.target = tgt; - } - _private.map = new Map$2(); - _private.map.set(id, { - ele: _ele2, - index: 0 - }); - _private.removed = false; - if (addToPool) { - cy.addToPool(_ele2); - } - } - for (var _i4 = 0; _i4 < nodes2.length; _i4++) { - var node = nodes2[_i4]; - var _data4 = node._private.data; - if (number$1(_data4.parent)) { - _data4.parent = "" + _data4.parent; - } - var parentId = _data4.parent; - var specifiedParent = parentId != null; - if (specifiedParent || node._private.parent) { - var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId); - if (parent.empty()) { - _data4.parent = void 0; - } else if (parent[0].removed()) { - warn("Node added with missing parent, reference to parent removed"); - _data4.parent = void 0; - node._private.parent = null; - } else { - var selfAsParent = false; - var ancestor = parent; - while (!ancestor.empty()) { - if (node.same(ancestor)) { - selfAsParent = true; - _data4.parent = void 0; - break; - } - ancestor = ancestor.parent(); - } - if (!selfAsParent) { - parent[0]._private.children.push(node); - node._private.parent = parent[0]; - cy_p.hasCompoundNodes = true; - } - } - } - } - if (elements2.length > 0) { - var restored = elements2.length === self2.length ? self2 : new Collection(cy, elements2); - for (var _i5 = 0; _i5 < restored.length; _i5++) { - var _ele3 = restored[_i5]; - if (_ele3.isNode()) { - continue; - } - _ele3.parallelEdges().clearTraversalCache(); - _ele3.source().clearTraversalCache(); - _ele3.target().clearTraversalCache(); - } - var toUpdateStyle; - if (cy_p.hasCompoundNodes) { - toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent()); - } else { - toUpdateStyle = restored; - } - toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer); - if (notifyRenderer) { - restored.emitAndNotify("add"); - } else if (addToPool) { - restored.emit("add"); - } - } - return self2; - }; - elesfn$1.removed = function() { - var ele = this[0]; - return ele && ele._private.removed; - }; - elesfn$1.inside = function() { - var ele = this[0]; - return ele && !ele._private.removed; - }; - elesfn$1.remove = function() { - var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; - var removeFromPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var self2 = this; - var elesToRemove = []; - var elesToRemoveIds = {}; - var cy = self2._private.cy; - function addConnectedEdges(node) { - var edges = node._private.edges; - for (var i3 = 0; i3 < edges.length; i3++) { - add(edges[i3]); - } - } - function addChildren2(node) { - var children = node._private.children; - for (var i3 = 0; i3 < children.length; i3++) { - add(children[i3]); - } - } - function add(ele2) { - var alreadyAdded = elesToRemoveIds[ele2.id()]; - if (removeFromPool && ele2.removed() || alreadyAdded) { - return; - } else { - elesToRemoveIds[ele2.id()] = true; - } - if (ele2.isNode()) { - elesToRemove.push(ele2); - addConnectedEdges(ele2); - addChildren2(ele2); - } else { - elesToRemove.unshift(ele2); - } - } - for (var i2 = 0, l = self2.length; i2 < l; i2++) { - var ele = self2[i2]; - add(ele); - } - function removeEdgeRef(node, edge) { - var connectedEdges = node._private.edges; - removeFromArray(connectedEdges, edge); - node.clearTraversalCache(); - } - function removeParallelRef(pllEdge2) { - pllEdge2.clearTraversalCache(); - } - var alteredParents = []; - alteredParents.ids = {}; - function removeChildRef(parent2, ele2) { - ele2 = ele2[0]; - parent2 = parent2[0]; - var children = parent2._private.children; - var pid = parent2.id(); - removeFromArray(children, ele2); - ele2._private.parent = null; - if (!alteredParents.ids[pid]) { - alteredParents.ids[pid] = true; - alteredParents.push(parent2); - } - } - self2.dirtyCompoundBoundsCache(); - if (removeFromPool) { - cy.removeFromPool(elesToRemove); - } - for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) { - var _ele4 = elesToRemove[_i6]; - if (_ele4.isEdge()) { - var src = _ele4.source()[0]; - var tgt = _ele4.target()[0]; - removeEdgeRef(src, _ele4); - removeEdgeRef(tgt, _ele4); - var pllEdges = _ele4.parallelEdges(); - for (var j = 0; j < pllEdges.length; j++) { - var pllEdge = pllEdges[j]; - removeParallelRef(pllEdge); - if (pllEdge.isBundledBezier()) { - pllEdge.dirtyBoundingBoxCache(); - } - } - } else { - var parent = _ele4.parent(); - if (parent.length !== 0) { - removeChildRef(parent, _ele4); - } - } - if (removeFromPool) { - _ele4._private.removed = true; - } - } - var elesStillInside = cy._private.elements; - cy._private.hasCompoundNodes = false; - for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) { - var _ele5 = elesStillInside[_i7]; - if (_ele5.isParent()) { - cy._private.hasCompoundNodes = true; - break; - } - } - var removedElements = new Collection(this.cy(), elesToRemove); - if (removedElements.size() > 0) { - if (notifyRenderer) { - removedElements.emitAndNotify("remove"); - } else if (removeFromPool) { - removedElements.emit("remove"); - } - } - for (var _i8 = 0; _i8 < alteredParents.length; _i8++) { - var _ele6 = alteredParents[_i8]; - if (!removeFromPool || !_ele6.removed()) { - _ele6.updateStyle(); - } - } - return removedElements; - }; - elesfn$1.move = function(struct) { - var cy = this._private.cy; - var eles = this; - var notifyRenderer = false; - var modifyPool = false; - var toString2 = function toString3(id) { - return id == null ? id : "" + id; - }; - if (struct.source !== void 0 || struct.target !== void 0) { - var srcId = toString2(struct.source); - var tgtId = toString2(struct.target); - var srcExists = srcId != null && cy.hasElementWithId(srcId); - var tgtExists = tgtId != null && cy.hasElementWithId(tgtId); - if (srcExists || tgtExists) { - cy.batch(function() { - eles.remove(notifyRenderer, modifyPool); - eles.emitAndNotify("moveout"); - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var _data5 = ele._private.data; - if (ele.isEdge()) { - if (srcExists) { - _data5.source = srcId; - } - if (tgtExists) { - _data5.target = tgtId; - } - } - } - eles.restore(notifyRenderer, modifyPool); - }); - eles.emitAndNotify("move"); - } - } else if (struct.parent !== void 0) { - var parentId = toString2(struct.parent); - var parentExists = parentId === null || cy.hasElementWithId(parentId); - if (parentExists) { - var pidToAssign = parentId === null ? void 0 : parentId; - cy.batch(function() { - var updated = eles.remove(notifyRenderer, modifyPool); - updated.emitAndNotify("moveout"); - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var _data6 = ele._private.data; - if (ele.isNode()) { - _data6.parent = pidToAssign; - } - } - updated.restore(notifyRenderer, modifyPool); - }); - eles.emitAndNotify("move"); - } - } - return this; - }; - [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function(props) { - extend(elesfn$1, props); - }); - var corefn$9 = { - add: function add(opts) { - var elements2; - var cy = this; - if (elementOrCollection(opts)) { - var eles = opts; - if (eles._private.cy === cy) { - elements2 = eles.restore(); - } else { - var jsons = []; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - jsons.push(ele.json()); - } - elements2 = new Collection(cy, jsons); - } - } else if (array(opts)) { - var _jsons = opts; - elements2 = new Collection(cy, _jsons); - } else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) { - var elesByGroup = opts; - var _jsons2 = []; - var grs = ["nodes", "edges"]; - for (var _i = 0, il = grs.length; _i < il; _i++) { - var group = grs[_i]; - var elesArray = elesByGroup[group]; - if (array(elesArray)) { - for (var j = 0, jl = elesArray.length; j < jl; j++) { - var json = extend({ - group - }, elesArray[j]); - _jsons2.push(json); - } - } - } - elements2 = new Collection(cy, _jsons2); - } else { - var _json = opts; - elements2 = new Element(cy, _json).collection(); - } - return elements2; - }, - remove: function remove(collection2) { - if (elementOrCollection(collection2)) - ; - else if (string(collection2)) { - var selector = collection2; - collection2 = this.$(selector); - } - return collection2.remove(); - } - }; - function generateCubicBezier(mX1, mY1, mX2, mY2) { - var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array !== "undefined"; - if (arguments.length !== 4) { - return false; - } - for (var i2 = 0; i2 < 4; ++i2) { - if (typeof arguments[i2] !== "number" || isNaN(arguments[i2]) || !isFinite(arguments[i2])) { - return false; - } - } - mX1 = Math.min(mX1, 1); - mX2 = Math.min(mX2, 1); - mX1 = Math.max(mX1, 0); - mX2 = Math.max(mX2, 0); - var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); - function A(aA1, aA2) { - return 1 - 3 * aA2 + 3 * aA1; - } - function B(aA1, aA2) { - return 3 * aA2 - 6 * aA1; - } - function C(aA1) { - return 3 * aA1; - } - function calcBezier(aT, aA1, aA2) { - return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; - } - function getSlope(aT, aA1, aA2) { - return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1); - } - function newtonRaphsonIterate(aX, aGuessT) { - for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) { - var currentSlope = getSlope(aGuessT, mX1, mX2); - if (currentSlope === 0) { - return aGuessT; - } - var currentX = calcBezier(aGuessT, mX1, mX2) - aX; - aGuessT -= currentX / currentSlope; - } - return aGuessT; - } - function calcSampleValues() { - for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) { - mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2); - } - } - function binarySubdivide(aX, aA, aB) { - var currentX, currentT, i3 = 0; - do { - currentT = aA + (aB - aA) / 2; - currentX = calcBezier(currentT, mX1, mX2) - aX; - if (currentX > 0) { - aB = currentT; - } else { - aA = currentT; - } - } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i3 < SUBDIVISION_MAX_ITERATIONS); - return currentT; - } - function getTForX(aX) { - var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1; - for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) { - intervalStart += kSampleStepSize; - } - --currentSample; - var dist2 = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), guessForT = intervalStart + dist2 * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2); - if (initialSlope >= NEWTON_MIN_SLOPE) { - return newtonRaphsonIterate(aX, guessForT); - } else if (initialSlope === 0) { - return guessForT; - } else { - return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); - } - } - var _precomputed = false; - function precompute() { - _precomputed = true; - if (mX1 !== mY1 || mX2 !== mY2) { - calcSampleValues(); - } - } - var f = function f2(aX) { - if (!_precomputed) { - precompute(); - } - if (mX1 === mY1 && mX2 === mY2) { - return aX; - } - if (aX === 0) { - return 0; - } - if (aX === 1) { - return 1; - } - return calcBezier(getTForX(aX), mY1, mY2); - }; - f.getControlPoints = function() { - return [{ - x: mX1, - y: mY1 - }, { - x: mX2, - y: mY2 - }]; - }; - var str = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")"; - f.toString = function() { - return str; - }; - return f; - } - var generateSpringRK4 = /* @__PURE__ */ function() { - function springAccelerationForState(state) { - return -state.tension * state.x - state.friction * state.v; - } - function springEvaluateStateWithDerivative(initialState, dt, derivative) { - var state = { - x: initialState.x + derivative.dx * dt, - v: initialState.v + derivative.dv * dt, - tension: initialState.tension, - friction: initialState.friction - }; - return { - dx: state.v, - dv: springAccelerationForState(state) - }; - } - function springIntegrateState(state, dt) { - var a = { - dx: state.v, - dv: springAccelerationForState(state) - }, b = springEvaluateStateWithDerivative(state, dt * 0.5, a), c = springEvaluateStateWithDerivative(state, dt * 0.5, b), d = springEvaluateStateWithDerivative(state, dt, c), dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c.dx) + d.dx), dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c.dv) + d.dv); - state.x = state.x + dxdt * dt; - state.v = state.v + dvdt * dt; - return state; - } - return function springRK4Factory(tension, friction, duration) { - var initState = { - x: -1, - v: 0, - tension: null, - friction: null - }, path = [0], time_lapsed = 0, tolerance = 1 / 1e4, DT = 16 / 1e3, have_duration, dt, last_state; - tension = parseFloat(tension) || 500; - friction = parseFloat(friction) || 20; - duration = duration || null; - initState.tension = tension; - initState.friction = friction; - have_duration = duration !== null; - if (have_duration) { - time_lapsed = springRK4Factory(tension, friction); - dt = time_lapsed / duration * DT; - } else { - dt = DT; - } - for (; ; ) { - last_state = springIntegrateState(last_state || initState, dt); - path.push(1 + last_state.x); - time_lapsed += 16; - if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) { - break; - } - } - return !have_duration ? time_lapsed : function(percentComplete) { - return path[percentComplete * (path.length - 1) | 0]; - }; - }; - }(); - var cubicBezier = function cubicBezier2(t1, p1, t2, p2) { - var bezier = generateCubicBezier(t1, p1, t2, p2); - return function(start, end, percent) { - return start + (end - start) * bezier(percent); - }; - }; - var easings = { - "linear": function linear(start, end, percent) { - return start + (end - start) * percent; - }, - // default easings - "ease": cubicBezier(0.25, 0.1, 0.25, 1), - "ease-in": cubicBezier(0.42, 0, 1, 1), - "ease-out": cubicBezier(0, 0, 0.58, 1), - "ease-in-out": cubicBezier(0.42, 0, 0.58, 1), - // sine - "ease-in-sine": cubicBezier(0.47, 0, 0.745, 0.715), - "ease-out-sine": cubicBezier(0.39, 0.575, 0.565, 1), - "ease-in-out-sine": cubicBezier(0.445, 0.05, 0.55, 0.95), - // quad - "ease-in-quad": cubicBezier(0.55, 0.085, 0.68, 0.53), - "ease-out-quad": cubicBezier(0.25, 0.46, 0.45, 0.94), - "ease-in-out-quad": cubicBezier(0.455, 0.03, 0.515, 0.955), - // cubic - "ease-in-cubic": cubicBezier(0.55, 0.055, 0.675, 0.19), - "ease-out-cubic": cubicBezier(0.215, 0.61, 0.355, 1), - "ease-in-out-cubic": cubicBezier(0.645, 0.045, 0.355, 1), - // quart - "ease-in-quart": cubicBezier(0.895, 0.03, 0.685, 0.22), - "ease-out-quart": cubicBezier(0.165, 0.84, 0.44, 1), - "ease-in-out-quart": cubicBezier(0.77, 0, 0.175, 1), - // quint - "ease-in-quint": cubicBezier(0.755, 0.05, 0.855, 0.06), - "ease-out-quint": cubicBezier(0.23, 1, 0.32, 1), - "ease-in-out-quint": cubicBezier(0.86, 0, 0.07, 1), - // expo - "ease-in-expo": cubicBezier(0.95, 0.05, 0.795, 0.035), - "ease-out-expo": cubicBezier(0.19, 1, 0.22, 1), - "ease-in-out-expo": cubicBezier(1, 0, 0, 1), - // circ - "ease-in-circ": cubicBezier(0.6, 0.04, 0.98, 0.335), - "ease-out-circ": cubicBezier(0.075, 0.82, 0.165, 1), - "ease-in-out-circ": cubicBezier(0.785, 0.135, 0.15, 0.86), - // user param easings... - "spring": function spring(tension, friction, duration) { - if (duration === 0) { - return easings.linear; - } - var spring2 = generateSpringRK4(tension, friction, duration); - return function(start, end, percent) { - return start + (end - start) * spring2(percent); - }; - }, - "cubic-bezier": cubicBezier - }; - function getEasedValue(type, start, end, percent, easingFn) { - if (percent === 1) { - return end; - } - if (start === end) { - return end; - } - var val = easingFn(start, end, percent); - if (type == null) { - return val; - } - if (type.roundValue || type.color) { - val = Math.round(val); - } - if (type.min !== void 0) { - val = Math.max(val, type.min); - } - if (type.max !== void 0) { - val = Math.min(val, type.max); - } - return val; - } - function getValue(prop, spec) { - if (prop.pfValue != null || prop.value != null) { - if (prop.pfValue != null && (spec == null || spec.type.units !== "%")) { - return prop.pfValue; - } else { - return prop.value; - } - } else { - return prop; - } - } - function ease(startProp, endProp, percent, easingFn, propSpec) { - var type = propSpec != null ? propSpec.type : null; - if (percent < 0) { - percent = 0; - } else if (percent > 1) { - percent = 1; - } - var start = getValue(startProp, propSpec); - var end = getValue(endProp, propSpec); - if (number$1(start) && number$1(end)) { - return getEasedValue(type, start, end, percent, easingFn); - } else if (array(start) && array(end)) { - var easedArr = []; - for (var i2 = 0; i2 < end.length; i2++) { - var si = start[i2]; - var ei = end[i2]; - if (si != null && ei != null) { - var val = getEasedValue(type, si, ei, percent, easingFn); - easedArr.push(val); - } else { - easedArr.push(ei); - } - } - return easedArr; - } - return void 0; - } - function step$1(self2, ani, now2, isCore) { - var isEles = !isCore; - var _p = self2._private; - var ani_p = ani._private; - var pEasing = ani_p.easing; - var startTime = ani_p.startTime; - var cy = isCore ? self2 : self2.cy(); - var style = cy.style(); - if (!ani_p.easingImpl) { - if (pEasing == null) { - ani_p.easingImpl = easings["linear"]; - } else { - var easingVals; - if (string(pEasing)) { - var easingProp = style.parse("transition-timing-function", pEasing); - easingVals = easingProp.value; - } else { - easingVals = pEasing; - } - var name2, args; - if (string(easingVals)) { - name2 = easingVals; - args = []; - } else { - name2 = easingVals[1]; - args = easingVals.slice(2).map(function(n) { - return +n; - }); - } - if (args.length > 0) { - if (name2 === "spring") { - args.push(ani_p.duration); - } - ani_p.easingImpl = easings[name2].apply(null, args); - } else { - ani_p.easingImpl = easings[name2]; - } - } - } - var easing = ani_p.easingImpl; - var percent; - if (ani_p.duration === 0) { - percent = 1; - } else { - percent = (now2 - startTime) / ani_p.duration; - } - if (ani_p.applying) { - percent = ani_p.progress; - } - if (percent < 0) { - percent = 0; - } else if (percent > 1) { - percent = 1; - } - if (ani_p.delay == null) { - var startPos = ani_p.startPosition; - var endPos = ani_p.position; - if (endPos && isEles && !self2.locked()) { - var newPos = {}; - if (valid(startPos.x, endPos.x)) { - newPos.x = ease(startPos.x, endPos.x, percent, easing); - } - if (valid(startPos.y, endPos.y)) { - newPos.y = ease(startPos.y, endPos.y, percent, easing); - } - self2.position(newPos); - } - var startPan = ani_p.startPan; - var endPan = ani_p.pan; - var pan = _p.pan; - var animatingPan = endPan != null && isCore; - if (animatingPan) { - if (valid(startPan.x, endPan.x)) { - pan.x = ease(startPan.x, endPan.x, percent, easing); - } - if (valid(startPan.y, endPan.y)) { - pan.y = ease(startPan.y, endPan.y, percent, easing); - } - self2.emit("pan"); - } - var startZoom = ani_p.startZoom; - var endZoom = ani_p.zoom; - var animatingZoom = endZoom != null && isCore; - if (animatingZoom) { - if (valid(startZoom, endZoom)) { - _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom); - } - self2.emit("zoom"); - } - if (animatingPan || animatingZoom) { - self2.emit("viewport"); - } - var props = ani_p.style; - if (props && props.length > 0 && isEles) { - for (var i2 = 0; i2 < props.length; i2++) { - var prop = props[i2]; - var _name = prop.name; - var end = prop; - var start = ani_p.startStyle[_name]; - var propSpec = style.properties[start.name]; - var easedVal = ease(start, end, percent, easing, propSpec); - style.overrideBypass(self2, _name, easedVal); - } - self2.emit("style"); - } - } - ani_p.progress = percent; - return percent; - } - function valid(start, end) { - if (start == null || end == null) { - return false; - } - if (number$1(start) && number$1(end)) { - return true; - } else if (start && end) { - return true; - } - return false; - } - function startAnimation(self2, ani, now2, isCore) { - var ani_p = ani._private; - ani_p.started = true; - ani_p.startTime = now2 - ani_p.progress * ani_p.duration; - } - function stepAll(now2, cy) { - var eles = cy._private.aniEles; - var doneEles = []; - function stepOne(ele2, isCore) { - var _p = ele2._private; - var current = _p.animation.current; - var queue = _p.animation.queue; - var ranAnis = false; - if (current.length === 0) { - var next2 = queue.shift(); - if (next2) { - current.push(next2); - } - } - var callbacks = function callbacks2(_callbacks) { - for (var j = _callbacks.length - 1; j >= 0; j--) { - var cb = _callbacks[j]; - cb(); - } - _callbacks.splice(0, _callbacks.length); - }; - for (var i2 = current.length - 1; i2 >= 0; i2--) { - var ani = current[i2]; - var ani_p = ani._private; - if (ani_p.stopped) { - current.splice(i2, 1); - ani_p.hooked = false; - ani_p.playing = false; - ani_p.started = false; - callbacks(ani_p.frames); - continue; - } - if (!ani_p.playing && !ani_p.applying) { - continue; - } - if (ani_p.playing && ani_p.applying) { - ani_p.applying = false; - } - if (!ani_p.started) { - startAnimation(ele2, ani, now2); - } - step$1(ele2, ani, now2, isCore); - if (ani_p.applying) { - ani_p.applying = false; - } - callbacks(ani_p.frames); - if (ani_p.step != null) { - ani_p.step(now2); - } - if (ani.completed()) { - current.splice(i2, 1); - ani_p.hooked = false; - ani_p.playing = false; - ani_p.started = false; - callbacks(ani_p.completes); - } - ranAnis = true; - } - if (!isCore && current.length === 0 && queue.length === 0) { - doneEles.push(ele2); - } - return ranAnis; - } - var ranEleAni = false; - for (var e = 0; e < eles.length; e++) { - var ele = eles[e]; - var handledThisEle = stepOne(ele); - ranEleAni = ranEleAni || handledThisEle; - } - var ranCoreAni = stepOne(cy, true); - if (ranEleAni || ranCoreAni) { - if (eles.length > 0) { - cy.notify("draw", eles); - } else { - cy.notify("draw"); - } - } - eles.unmerge(doneEles); - cy.emit("step"); - } - var corefn$8 = { - // pull in animation functions - animate: define2.animate(), - animation: define2.animation(), - animated: define2.animated(), - clearQueue: define2.clearQueue(), - delay: define2.delay(), - delayAnimation: define2.delayAnimation(), - stop: define2.stop(), - addToAnimationPool: function addToAnimationPool(eles) { - var cy = this; - if (!cy.styleEnabled()) { - return; - } - cy._private.aniEles.merge(eles); - }, - stopAnimationLoop: function stopAnimationLoop() { - this._private.animationsRunning = false; - }, - startAnimationLoop: function startAnimationLoop() { - var cy = this; - cy._private.animationsRunning = true; - if (!cy.styleEnabled()) { - return; - } - function headlessStep() { - if (!cy._private.animationsRunning) { - return; - } - requestAnimationFrame2(function animationStep(now2) { - stepAll(now2, cy); - headlessStep(); - }); - } - var renderer2 = cy.renderer(); - if (renderer2 && renderer2.beforeRender) { - renderer2.beforeRender(function rendererAnimationStep(willDraw, now2) { - stepAll(now2, cy); - }, renderer2.beforeRenderPriorities.animations); - } else { - headlessStep(); - } - } - }; - var emitterOptions = { - qualifierCompare: function qualifierCompare(selector1, selector2) { - if (selector1 == null || selector2 == null) { - return selector1 == null && selector2 == null; - } else { - return selector1.sameText(selector2); - } - }, - eventMatches: function eventMatches(cy, listener, eventObj) { - var selector = listener.qualifier; - if (selector != null) { - return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); - } - return true; - }, - addEventFields: function addEventFields(cy, evt) { - evt.cy = cy; - evt.target = cy; - }, - callbackContext: function callbackContext(cy, listener, eventObj) { - return listener.qualifier != null ? eventObj.target : cy; - } - }; - var argSelector = function argSelector2(arg) { - if (string(arg)) { - return new Selector(arg); - } else { - return arg; - } - }; - var elesfn = { - createEmitter: function createEmitter() { - var _p = this._private; - if (!_p.emitter) { - _p.emitter = new Emitter(emitterOptions, this); - } - return this; - }, - emitter: function emitter() { - return this._private.emitter; - }, - on: function on(events, selector, callback) { - this.emitter().on(events, argSelector(selector), callback); - return this; - }, - removeListener: function removeListener(events, selector, callback) { - this.emitter().removeListener(events, argSelector(selector), callback); - return this; - }, - removeAllListeners: function removeAllListeners() { - this.emitter().removeAllListeners(); - return this; - }, - one: function one(events, selector, callback) { - this.emitter().one(events, argSelector(selector), callback); - return this; - }, - once: function once(events, selector, callback) { - this.emitter().one(events, argSelector(selector), callback); - return this; - }, - emit: function emit(events, extraParams) { - this.emitter().emit(events, extraParams); - return this; - }, - emitAndNotify: function emitAndNotify(event2, eles) { - this.emit(event2); - this.notify(event2, eles); - return this; - } - }; - define2.eventAliasesOn(elesfn); - var corefn$7 = { - png: function png(options) { - var renderer2 = this._private.renderer; - options = options || {}; - return renderer2.png(options); - }, - jpg: function jpg(options) { - var renderer2 = this._private.renderer; - options = options || {}; - options.bg = options.bg || "#fff"; - return renderer2.jpg(options); - } - }; - corefn$7.jpeg = corefn$7.jpg; - var corefn$6 = { - layout: function layout2(options) { - var cy = this; - if (options == null) { - error("Layout options must be specified to make a layout"); - return; - } - if (options.name == null) { - error("A `name` must be specified to make a layout"); - return; - } - var name2 = options.name; - var Layout2 = cy.extension("layout", name2); - if (Layout2 == null) { - error("No such layout `" + name2 + "` found. Did you forget to import it and `cytoscape.use()` it?"); - return; - } - var eles; - if (string(options.eles)) { - eles = cy.$(options.eles); - } else { - eles = options.eles != null ? options.eles : cy.$(); - } - var layout3 = new Layout2(extend({}, options, { - cy, - eles - })); - return layout3; - } - }; - corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout; - var corefn$5 = { - notify: function notify(eventName, eventEles) { - var _p = this._private; - if (this.batching()) { - _p.batchNotifications = _p.batchNotifications || {}; - var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection(); - if (eventEles != null) { - eles.merge(eventEles); - } - return; - } - if (!_p.notificationsEnabled) { - return; - } - var renderer2 = this.renderer(); - if (this.destroyed() || !renderer2) { - return; - } - renderer2.notify(eventName, eventEles); - }, - notifications: function notifications(bool) { - var p2 = this._private; - if (bool === void 0) { - return p2.notificationsEnabled; - } else { - p2.notificationsEnabled = bool ? true : false; - } - return this; - }, - noNotifications: function noNotifications(callback) { - this.notifications(false); - callback(); - this.notifications(true); - }, - batching: function batching() { - return this._private.batchCount > 0; - }, - startBatch: function startBatch() { - var _p = this._private; - if (_p.batchCount == null) { - _p.batchCount = 0; - } - if (_p.batchCount === 0) { - _p.batchStyleEles = this.collection(); - _p.batchNotifications = {}; - } - _p.batchCount++; - return this; - }, - endBatch: function endBatch() { - var _p = this._private; - if (_p.batchCount === 0) { - return this; - } - _p.batchCount--; - if (_p.batchCount === 0) { - _p.batchStyleEles.updateStyle(); - var renderer2 = this.renderer(); - Object.keys(_p.batchNotifications).forEach(function(eventName) { - var eles = _p.batchNotifications[eventName]; - if (eles.empty()) { - renderer2.notify(eventName); - } else { - renderer2.notify(eventName, eles); - } - }); - } - return this; - }, - batch: function batch(callback) { - this.startBatch(); - callback(); - this.endBatch(); - return this; - }, - // for backwards compatibility - batchData: function batchData(map) { - var cy = this; - return this.batch(function() { - var ids = Object.keys(map); - for (var i2 = 0; i2 < ids.length; i2++) { - var id = ids[i2]; - var data2 = map[id]; - var ele = cy.getElementById(id); - ele.data(data2); - } - }); - } - }; - var rendererDefaults = defaults$g({ - hideEdgesOnViewport: false, - textureOnViewport: false, - motionBlur: false, - motionBlurOpacity: 0.05, - pixelRatio: void 0, - desktopTapThreshold: 4, - touchTapThreshold: 8, - wheelSensitivity: 1, - debug: false, - showFps: false - }); - var corefn$4 = { - renderTo: function renderTo(context, zoom, pan, pxRatio) { - var r = this._private.renderer; - r.renderTo(context, zoom, pan, pxRatio); - return this; - }, - renderer: function renderer2() { - return this._private.renderer; - }, - forceRender: function forceRender() { - this.notify("draw"); - return this; - }, - resize: function resize() { - this.invalidateSize(); - this.emitAndNotify("resize"); - return this; - }, - initRenderer: function initRenderer(options) { - var cy = this; - var RendererProto = cy.extension("renderer", options.name); - if (RendererProto == null) { - error("Can not initialise: No such renderer `".concat(options.name, "` found. Did you forget to import it and `cytoscape.use()` it?")); - return; - } - if (options.wheelSensitivity !== void 0) { - warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine."); - } - var rOpts = rendererDefaults(options); - rOpts.cy = cy; - cy._private.renderer = new RendererProto(rOpts); - this.notify("init"); - }, - destroyRenderer: function destroyRenderer() { - var cy = this; - cy.notify("destroy"); - var domEle = cy.container(); - if (domEle) { - domEle._cyreg = null; - while (domEle.childNodes.length > 0) { - domEle.removeChild(domEle.childNodes[0]); - } - } - cy._private.renderer = null; - cy.mutableElements().forEach(function(ele) { - var _p = ele._private; - _p.rscratch = {}; - _p.rstyle = {}; - _p.animation.current = []; - _p.animation.queue = []; - }); - }, - onRender: function onRender(fn2) { - return this.on("render", fn2); - }, - offRender: function offRender(fn2) { - return this.off("render", fn2); - } - }; - corefn$4.invalidateDimensions = corefn$4.resize; - var corefn$3 = { - // get a collection - // - empty collection on no args - // - collection of elements in the graph on selector arg - // - guarantee a returned collection when elements or collection specified - collection: function collection2(eles, opts) { - if (string(eles)) { - return this.$(eles); - } else if (elementOrCollection(eles)) { - return eles.collection(); - } else if (array(eles)) { - if (!opts) { - opts = {}; - } - return new Collection(this, eles, opts.unique, opts.removed); - } - return new Collection(this); - }, - nodes: function nodes2(selector) { - var nodes3 = this.$(function(ele) { - return ele.isNode(); - }); - if (selector) { - return nodes3.filter(selector); - } - return nodes3; - }, - edges: function edges(selector) { - var edges2 = this.$(function(ele) { - return ele.isEdge(); - }); - if (selector) { - return edges2.filter(selector); - } - return edges2; - }, - // search the graph like jQuery - $: function $(selector) { - var eles = this._private.elements; - if (selector) { - return eles.filter(selector); - } else { - return eles.spawnSelf(); - } - }, - mutableElements: function mutableElements() { - return this._private.elements; - } - }; - corefn$3.elements = corefn$3.filter = corefn$3.$; - var styfn$8 = {}; - var TRUE = "t"; - var FALSE = "f"; - styfn$8.apply = function(eles) { - var self2 = this; - var _p = self2._private; - var cy = _p.cy; - var updatedEles = cy.collection(); - for (var ie = 0; ie < eles.length; ie++) { - var ele = eles[ie]; - var cxtMeta = self2.getContextMeta(ele); - if (cxtMeta.empty) { - continue; - } - var cxtStyle = self2.getContextStyle(cxtMeta); - var app = self2.applyContextStyle(cxtMeta, cxtStyle, ele); - if (ele._private.appliedInitStyle) { - self2.updateTransitions(ele, app.diffProps); - } else { - ele._private.appliedInitStyle = true; - } - var hintsDiff = self2.updateStyleHints(ele); - if (hintsDiff) { - updatedEles.push(ele); - } - } - return updatedEles; - }; - styfn$8.getPropertiesDiff = function(oldCxtKey, newCxtKey) { - var self2 = this; - var cache2 = self2._private.propDiffs = self2._private.propDiffs || {}; - var dualCxtKey = oldCxtKey + "-" + newCxtKey; - var cachedVal = cache2[dualCxtKey]; - if (cachedVal) { - return cachedVal; - } - var diffProps = []; - var addedProp = {}; - for (var i2 = 0; i2 < self2.length; i2++) { - var cxt = self2[i2]; - var oldHasCxt = oldCxtKey[i2] === TRUE; - var newHasCxt = newCxtKey[i2] === TRUE; - var cxtHasDiffed = oldHasCxt !== newHasCxt; - var cxtHasMappedProps = cxt.mappedProperties.length > 0; - if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) { - var props = void 0; - if (cxtHasDiffed && cxtHasMappedProps) { - props = cxt.properties; - } else if (cxtHasDiffed) { - props = cxt.properties; - } else if (cxtHasMappedProps) { - props = cxt.mappedProperties; - } - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - var name2 = prop.name; - var laterCxtOverrides = false; - for (var k = i2 + 1; k < self2.length; k++) { - var laterCxt = self2[k]; - var hasLaterCxt = newCxtKey[k] === TRUE; - if (!hasLaterCxt) { - continue; - } - laterCxtOverrides = laterCxt.properties[prop.name] != null; - if (laterCxtOverrides) { - break; - } - } - if (!addedProp[name2] && !laterCxtOverrides) { - addedProp[name2] = true; - diffProps.push(name2); - } - } - } - } - cache2[dualCxtKey] = diffProps; - return diffProps; - }; - styfn$8.getContextMeta = function(ele) { - var self2 = this; - var cxtKey = ""; - var diffProps; - var prevKey = ele._private.styleCxtKey || ""; - for (var i2 = 0; i2 < self2.length; i2++) { - var context = self2[i2]; - var contextSelectorMatches = context.selector && context.selector.matches(ele); - if (contextSelectorMatches) { - cxtKey += TRUE; - } else { - cxtKey += FALSE; - } - } - diffProps = self2.getPropertiesDiff(prevKey, cxtKey); - ele._private.styleCxtKey = cxtKey; - return { - key: cxtKey, - diffPropNames: diffProps, - empty: diffProps.length === 0 - }; - }; - styfn$8.getContextStyle = function(cxtMeta) { - var cxtKey = cxtMeta.key; - var self2 = this; - var cxtStyles = this._private.contextStyles = this._private.contextStyles || {}; - if (cxtStyles[cxtKey]) { - return cxtStyles[cxtKey]; - } - var style = { - _private: { - key: cxtKey - } - }; - for (var i2 = 0; i2 < self2.length; i2++) { - var cxt = self2[i2]; - var hasCxt = cxtKey[i2] === TRUE; - if (!hasCxt) { - continue; - } - for (var j = 0; j < cxt.properties.length; j++) { - var prop = cxt.properties[j]; - style[prop.name] = prop; - } - } - cxtStyles[cxtKey] = style; - return style; - }; - styfn$8.applyContextStyle = function(cxtMeta, cxtStyle, ele) { - var self2 = this; - var diffProps = cxtMeta.diffPropNames; - var retDiffProps = {}; - var types = self2.types; - for (var i2 = 0; i2 < diffProps.length; i2++) { - var diffPropName = diffProps[i2]; - var cxtProp = cxtStyle[diffPropName]; - var eleProp = ele.pstyle(diffPropName); - if (!cxtProp) { - if (!eleProp) { - continue; - } else if (eleProp.bypass) { - cxtProp = { - name: diffPropName, - deleteBypassed: true - }; - } else { - cxtProp = { - name: diffPropName, - "delete": true - }; - } - } - if (eleProp === cxtProp) { - continue; - } - if (cxtProp.mapped === types.fn && eleProp != null && eleProp.mapping != null && eleProp.mapping.value === cxtProp.value) { - var mapping = eleProp.mapping; - var fnValue = mapping.fnValue = cxtProp.value(ele); - if (fnValue === mapping.prevFnValue) { - continue; - } - } - var retDiffProp = retDiffProps[diffPropName] = { - prev: eleProp - }; - self2.applyParsedProperty(ele, cxtProp); - retDiffProp.next = ele.pstyle(diffPropName); - if (retDiffProp.next && retDiffProp.next.bypass) { - retDiffProp.next = retDiffProp.next.bypassed; - } - } - return { - diffProps: retDiffProps - }; - }; - styfn$8.updateStyleHints = function(ele) { - var _p = ele._private; - var self2 = this; - var propNames = self2.propertyGroupNames; - var propGrKeys = self2.propertyGroupKeys; - var propHash = function propHash2(ele2, propNames2, seedKey) { - return self2.getPropertiesHash(ele2, propNames2, seedKey); - }; - var oldStyleKey = _p.styleKey; - if (ele.removed()) { - return false; - } - var isNode = _p.group === "nodes"; - var overriddenStyles = ele._private.style; - propNames = Object.keys(overriddenStyles); - for (var i2 = 0; i2 < propGrKeys.length; i2++) { - var grKey = propGrKeys[i2]; - _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; - } - var updateGrKey1 = function updateGrKey12(val, grKey2) { - return _p.styleKeys[grKey2][0] = hashInt(val, _p.styleKeys[grKey2][0]); - }; - var updateGrKey2 = function updateGrKey22(val, grKey2) { - return _p.styleKeys[grKey2][1] = hashIntAlt(val, _p.styleKeys[grKey2][1]); - }; - var updateGrKey = function updateGrKey3(val, grKey2) { - updateGrKey1(val, grKey2); - updateGrKey2(val, grKey2); - }; - var updateGrKeyWStr = function updateGrKeyWStr2(strVal, grKey2) { - for (var j = 0; j < strVal.length; j++) { - var ch = strVal.charCodeAt(j); - updateGrKey1(ch, grKey2); - updateGrKey2(ch, grKey2); - } - }; - var N = 2e9; - var cleanNum = function cleanNum2(val) { - return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val; - }; - for (var _i = 0; _i < propNames.length; _i++) { - var name2 = propNames[_i]; - var parsedProp = overriddenStyles[name2]; - if (parsedProp == null) { - continue; - } - var propInfo = this.properties[name2]; - var type = propInfo.type; - var _grKey = propInfo.groupKey; - var normalizedNumberVal = void 0; - if (propInfo.hashOverride != null) { - normalizedNumberVal = propInfo.hashOverride(ele, parsedProp); - } else if (parsedProp.pfValue != null) { - normalizedNumberVal = parsedProp.pfValue; - } - var numberVal = propInfo.enums == null ? parsedProp.value : null; - var haveNormNum = normalizedNumberVal != null; - var haveUnitedNum = numberVal != null; - var haveNum = haveNormNum || haveUnitedNum; - var units = parsedProp.units; - if (type.number && haveNum && !type.multiple) { - var v = haveNormNum ? normalizedNumberVal : numberVal; - updateGrKey(cleanNum(v), _grKey); - if (!haveNormNum && units != null) { - updateGrKeyWStr(units, _grKey); - } - } else { - updateGrKeyWStr(parsedProp.strValue, _grKey); - } - } - var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; - for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) { - var _grKey2 = propGrKeys[_i2]; - var grHash = _p.styleKeys[_grKey2]; - hash[0] = hashInt(grHash[0], hash[0]); - hash[1] = hashIntAlt(grHash[1], hash[1]); - } - _p.styleKey = combineHashes(hash[0], hash[1]); - var sk = _p.styleKeys; - _p.labelDimsKey = combineHashesArray(sk.labelDimensions); - var labelKeys = propHash(ele, ["label"], sk.labelDimensions); - _p.labelKey = combineHashesArray(labelKeys); - _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys)); - if (!isNode) { - var sourceLabelKeys = propHash(ele, ["source-label"], sk.labelDimensions); - _p.sourceLabelKey = combineHashesArray(sourceLabelKeys); - _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys)); - var targetLabelKeys = propHash(ele, ["target-label"], sk.labelDimensions); - _p.targetLabelKey = combineHashesArray(targetLabelKeys); - _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys)); - } - if (isNode) { - var _p$styleKeys = _p.styleKeys, nodeBody = _p$styleKeys.nodeBody, nodeBorder = _p$styleKeys.nodeBorder, nodeOutline = _p$styleKeys.nodeOutline, backgroundImage = _p$styleKeys.backgroundImage, compound = _p$styleKeys.compound, pie = _p$styleKeys.pie; - var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie].filter(function(k) { - return k != null; - }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]); - _p.nodeKey = combineHashesArray(nodeKeys); - _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT; - } - return oldStyleKey !== _p.styleKey; - }; - styfn$8.clearStyleHints = function(ele) { - var _p = ele._private; - _p.styleCxtKey = ""; - _p.styleKeys = {}; - _p.styleKey = null; - _p.labelKey = null; - _p.labelStyleKey = null; - _p.sourceLabelKey = null; - _p.sourceLabelStyleKey = null; - _p.targetLabelKey = null; - _p.targetLabelStyleKey = null; - _p.nodeKey = null; - _p.hasPie = null; - }; - styfn$8.applyParsedProperty = function(ele, parsedProp) { - var self2 = this; - var prop = parsedProp; - var style = ele._private.style; - var flatProp; - var types = self2.types; - var type = self2.properties[prop.name].type; - var propIsBypass = prop.bypass; - var origProp = style[prop.name]; - var origPropIsBypass = origProp && origProp.bypass; - var _p = ele._private; - var flatPropMapping = "mapping"; - var getVal = function getVal2(p2) { - if (p2 == null) { - return null; - } else if (p2.pfValue != null) { - return p2.pfValue; - } else { - return p2.value; - } - }; - var checkTriggers = function checkTriggers2() { - var fromVal = getVal(origProp); - var toVal = getVal(prop); - self2.checkTriggers(ele, prop.name, fromVal, toVal); - }; - if (parsedProp.name === "curve-style" && ele.isEdge() && // loops must be bundled beziers - (parsedProp.value !== "bezier" && ele.isLoop() || // edges connected to compound nodes can not be haystacks - parsedProp.value === "haystack" && (ele.source().isParent() || ele.target().isParent()))) { - prop = parsedProp = this.parse(parsedProp.name, "bezier", propIsBypass); - } - if (prop["delete"]) { - style[prop.name] = void 0; - checkTriggers(); - return true; - } - if (prop.deleteBypassed) { - if (!origProp) { - checkTriggers(); - return true; - } else if (origProp.bypass) { - origProp.bypassed = void 0; - checkTriggers(); - return true; - } else { - return false; - } - } - if (prop.deleteBypass) { - if (!origProp) { - checkTriggers(); - return true; - } else if (origProp.bypass) { - style[prop.name] = origProp.bypassed; - checkTriggers(); - return true; - } else { - return false; - } - } - var printMappingErr = function printMappingErr2() { - warn("Do not assign mappings to elements without corresponding data (i.e. ele `" + ele.id() + "` has no mapping for property `" + prop.name + "` with data field `" + prop.field + "`); try a `[" + prop.field + "]` selector to limit scope to elements with `" + prop.field + "` defined"); - }; - switch (prop.mapped) { - case types.mapData: { - var fields = prop.field.split("."); - var fieldVal = _p.data; - for (var i2 = 0; i2 < fields.length && fieldVal; i2++) { - var field = fields[i2]; - fieldVal = fieldVal[field]; - } - if (fieldVal == null) { - printMappingErr(); - return false; - } - var percent; - if (!number$1(fieldVal)) { - warn("Do not use continuous mappers without specifying numeric data (i.e. `" + prop.field + ": " + fieldVal + "` for `" + ele.id() + "` is non-numeric)"); - return false; - } else { - var fieldWidth = prop.fieldMax - prop.fieldMin; - if (fieldWidth === 0) { - percent = 0; - } else { - percent = (fieldVal - prop.fieldMin) / fieldWidth; - } - } - if (percent < 0) { - percent = 0; - } else if (percent > 1) { - percent = 1; - } - if (type.color) { - var r1 = prop.valueMin[0]; - var r2 = prop.valueMax[0]; - var g1 = prop.valueMin[1]; - var g2 = prop.valueMax[1]; - var b1 = prop.valueMin[2]; - var b2 = prop.valueMax[2]; - var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3]; - var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3]; - var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)]; - flatProp = { - // colours are simple, so just create the flat property instead of expensive string parsing - bypass: prop.bypass, - // we're a bypass if the mapping property is a bypass - name: prop.name, - value: clr, - strValue: "rgb(" + clr[0] + ", " + clr[1] + ", " + clr[2] + ")" - }; - } else if (type.number) { - var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent; - flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping); - } else { - return false; - } - if (!flatProp) { - printMappingErr(); - return false; - } - flatProp.mapping = prop; - prop = flatProp; - break; - } - case types.data: { - var _fields = prop.field.split("."); - var _fieldVal = _p.data; - for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) { - var _field = _fields[_i3]; - _fieldVal = _fieldVal[_field]; - } - if (_fieldVal != null) { - flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping); - } - if (!flatProp) { - printMappingErr(); - return false; - } - flatProp.mapping = prop; - prop = flatProp; - break; - } - case types.fn: { - var fn2 = prop.value; - var fnRetVal = prop.fnValue != null ? prop.fnValue : fn2(ele); - prop.prevFnValue = fnRetVal; - if (fnRetVal == null) { - warn("Custom function mappers may not return null (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is null)"); - return false; - } - flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping); - if (!flatProp) { - warn("Custom function mappers may not return invalid values for the property type (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is invalid)"); - return false; - } - flatProp.mapping = copy(prop); - prop = flatProp; - break; - } - case void 0: - break; - default: - return false; - } - if (propIsBypass) { - if (origPropIsBypass) { - prop.bypassed = origProp.bypassed; - } else { - prop.bypassed = origProp; - } - style[prop.name] = prop; - } else { - if (origPropIsBypass) { - origProp.bypassed = prop; - } else { - style[prop.name] = prop; - } - } - checkTriggers(); - return true; - }; - styfn$8.cleanElements = function(eles, keepBypasses) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - this.clearStyleHints(ele); - ele.dirtyCompoundBoundsCache(); - ele.dirtyBoundingBoxCache(); - if (!keepBypasses) { - ele._private.style = {}; - } else { - var style = ele._private.style; - var propNames = Object.keys(style); - for (var j = 0; j < propNames.length; j++) { - var propName = propNames[j]; - var eleProp = style[propName]; - if (eleProp != null) { - if (eleProp.bypass) { - eleProp.bypassed = null; - } else { - style[propName] = null; - } - } - } - } - } - }; - styfn$8.update = function() { - var cy = this._private.cy; - var eles = cy.mutableElements(); - eles.updateStyle(); - }; - styfn$8.updateTransitions = function(ele, diffProps) { - var self2 = this; - var _p = ele._private; - var props = ele.pstyle("transition-property").value; - var duration = ele.pstyle("transition-duration").pfValue; - var delay = ele.pstyle("transition-delay").pfValue; - if (props.length > 0 && duration > 0) { - var style = {}; - var anyPrev = false; - for (var i2 = 0; i2 < props.length; i2++) { - var prop = props[i2]; - var styProp = ele.pstyle(prop); - var diffProp = diffProps[prop]; - if (!diffProp) { - continue; - } - var prevProp = diffProp.prev; - var fromProp = prevProp; - var toProp = diffProp.next != null ? diffProp.next : styProp; - var diff = false; - var initVal = void 0; - var initDt = 1e-6; - if (!fromProp) { - continue; - } - if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) { - diff = toProp.pfValue - fromProp.pfValue; - initVal = fromProp.pfValue + initDt * diff; - } else if (number$1(fromProp.value) && number$1(toProp.value)) { - diff = toProp.value - fromProp.value; - initVal = fromProp.value + initDt * diff; - } else if (array(fromProp.value) && array(toProp.value)) { - diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2]; - initVal = fromProp.strValue; - } - if (diff) { - style[prop] = toProp.strValue; - this.applyBypass(ele, prop, initVal); - anyPrev = true; - } - } - if (!anyPrev) { - return; - } - _p.transitioning = true; - new Promise$1(function(resolve2) { - if (delay > 0) { - ele.delayAnimation(delay).play().promise().then(resolve2); - } else { - resolve2(); - } - }).then(function() { - return ele.animation({ - style, - duration, - easing: ele.pstyle("transition-timing-function").value, - queue: false - }).play().promise(); - }).then(function() { - self2.removeBypasses(ele, props); - ele.emitAndNotify("style"); - _p.transitioning = false; - }); - } else if (_p.transitioning) { - this.removeBypasses(ele, props); - ele.emitAndNotify("style"); - _p.transitioning = false; - } - }; - styfn$8.checkTrigger = function(ele, name2, fromValue, toValue, getTrigger, onTrigger) { - var prop = this.properties[name2]; - var triggerCheck = getTrigger(prop); - if (triggerCheck != null && triggerCheck(fromValue, toValue)) { - onTrigger(prop); - } - }; - styfn$8.checkZOrderTrigger = function(ele, name2, fromValue, toValue) { - var _this = this; - this.checkTrigger(ele, name2, fromValue, toValue, function(prop) { - return prop.triggersZOrder; - }, function() { - _this._private.cy.notify("zorder", ele); - }); - }; - styfn$8.checkBoundsTrigger = function(ele, name2, fromValue, toValue) { - this.checkTrigger(ele, name2, fromValue, toValue, function(prop) { - return prop.triggersBounds; - }, function(prop) { - ele.dirtyCompoundBoundsCache(); - ele.dirtyBoundingBoxCache(); - if ( - // only for beziers -- so performance of other edges isn't affected - prop.triggersBoundsOfParallelBeziers && name2 === "curve-style" && (fromValue === "bezier" || toValue === "bezier") - ) { - ele.parallelEdges().forEach(function(pllEdge) { - if (pllEdge.isBundledBezier()) { - pllEdge.dirtyBoundingBoxCache(); - } - }); - } - if (prop.triggersBoundsOfConnectedEdges && name2 === "display" && (fromValue === "none" || toValue === "none")) { - ele.connectedEdges().forEach(function(edge) { - edge.dirtyBoundingBoxCache(); - }); - } - }); - }; - styfn$8.checkTriggers = function(ele, name2, fromValue, toValue) { - ele.dirtyStyleCache(); - this.checkZOrderTrigger(ele, name2, fromValue, toValue); - this.checkBoundsTrigger(ele, name2, fromValue, toValue); - }; - var styfn$7 = {}; - styfn$7.applyBypass = function(eles, name2, value, updateTransitions) { - var self2 = this; - var props = []; - var isBypass = true; - if (name2 === "*" || name2 === "**") { - if (value !== void 0) { - for (var i2 = 0; i2 < self2.properties.length; i2++) { - var prop = self2.properties[i2]; - var _name = prop.name; - var parsedProp = this.parse(_name, value, true); - if (parsedProp) { - props.push(parsedProp); - } - } - } - } else if (string(name2)) { - var _parsedProp = this.parse(name2, value, true); - if (_parsedProp) { - props.push(_parsedProp); - } - } else if (plainObject(name2)) { - var specifiedProps = name2; - updateTransitions = value; - var names = Object.keys(specifiedProps); - for (var _i = 0; _i < names.length; _i++) { - var _name2 = names[_i]; - var _value = specifiedProps[_name2]; - if (_value === void 0) { - _value = specifiedProps[dash2camel(_name2)]; - } - if (_value !== void 0) { - var _parsedProp2 = this.parse(_name2, _value, true); - if (_parsedProp2) { - props.push(_parsedProp2); - } - } - } - } else { - return false; - } - if (props.length === 0) { - return false; - } - var ret = false; - for (var _i2 = 0; _i2 < eles.length; _i2++) { - var ele = eles[_i2]; - var diffProps = {}; - var diffProp = void 0; - for (var j = 0; j < props.length; j++) { - var _prop = props[j]; - if (updateTransitions) { - var prevProp = ele.pstyle(_prop.name); - diffProp = diffProps[_prop.name] = { - prev: prevProp - }; - } - ret = this.applyParsedProperty(ele, copy(_prop)) || ret; - if (updateTransitions) { - diffProp.next = ele.pstyle(_prop.name); - } - } - if (ret) { - this.updateStyleHints(ele); - } - if (updateTransitions) { - this.updateTransitions(ele, diffProps, isBypass); - } - } - return ret; - }; - styfn$7.overrideBypass = function(eles, name2, value) { - name2 = camel2dash(name2); - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var prop = ele._private.style[name2]; - var type = this.properties[name2].type; - var isColor = type.color; - var isMulti = type.mutiple; - var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value; - if (!prop || !prop.bypass) { - this.applyBypass(ele, name2, value); - } else { - prop.value = value; - if (prop.pfValue != null) { - prop.pfValue = value; - } - if (isColor) { - prop.strValue = "rgb(" + value.join(",") + ")"; - } else if (isMulti) { - prop.strValue = value.join(" "); - } else { - prop.strValue = "" + value; - } - this.updateStyleHints(ele); - } - this.checkTriggers(ele, name2, oldValue, value); - } - }; - styfn$7.removeAllBypasses = function(eles, updateTransitions) { - return this.removeBypasses(eles, this.propertyNames, updateTransitions); - }; - styfn$7.removeBypasses = function(eles, props, updateTransitions) { - var isBypass = true; - for (var j = 0; j < eles.length; j++) { - var ele = eles[j]; - var diffProps = {}; - for (var i2 = 0; i2 < props.length; i2++) { - var name2 = props[i2]; - var prop = this.properties[name2]; - var prevProp = ele.pstyle(prop.name); - if (!prevProp || !prevProp.bypass) { - continue; - } - var value = ""; - var parsedProp = this.parse(name2, value, true); - var diffProp = diffProps[prop.name] = { - prev: prevProp - }; - this.applyParsedProperty(ele, parsedProp); - diffProp.next = ele.pstyle(prop.name); - } - this.updateStyleHints(ele); - if (updateTransitions) { - this.updateTransitions(ele, diffProps, isBypass); - } - } - }; - var styfn$6 = {}; - styfn$6.getEmSizeInPixels = function() { - var px = this.containerCss("font-size"); - if (px != null) { - return parseFloat(px); - } else { - return 1; - } - }; - styfn$6.containerCss = function(propName) { - var cy = this._private.cy; - var domElement2 = cy.container(); - var containerWindow = cy.window(); - if (containerWindow && domElement2 && containerWindow.getComputedStyle) { - return containerWindow.getComputedStyle(domElement2).getPropertyValue(propName); - } - }; - var styfn$5 = {}; - styfn$5.getRenderedStyle = function(ele, prop) { - if (prop) { - return this.getStylePropertyValue(ele, prop, true); - } else { - return this.getRawStyle(ele, true); - } - }; - styfn$5.getRawStyle = function(ele, isRenderedVal) { - var self2 = this; - ele = ele[0]; - if (ele) { - var rstyle = {}; - for (var i2 = 0; i2 < self2.properties.length; i2++) { - var prop = self2.properties[i2]; - var val = self2.getStylePropertyValue(ele, prop.name, isRenderedVal); - if (val != null) { - rstyle[prop.name] = val; - rstyle[dash2camel(prop.name)] = val; - } - } - return rstyle; - } - }; - styfn$5.getIndexedStyle = function(ele, property, subproperty, index) { - var pstyle = ele.pstyle(property)[subproperty][index]; - return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0]; - }; - styfn$5.getStylePropertyValue = function(ele, propName, isRenderedVal) { - var self2 = this; - ele = ele[0]; - if (ele) { - var prop = self2.properties[propName]; - if (prop.alias) { - prop = prop.pointsTo; - } - var type = prop.type; - var styleProp = ele.pstyle(prop.name); - if (styleProp) { - var value = styleProp.value, units = styleProp.units, strValue = styleProp.strValue; - if (isRenderedVal && type.number && value != null && number$1(value)) { - var zoom = ele.cy().zoom(); - var getRenderedValue = function getRenderedValue2(val) { - return val * zoom; - }; - var getValueStringWithUnits = function getValueStringWithUnits2(val, units2) { - return getRenderedValue(val) + units2; - }; - var isArrayValue = array(value); - var haveUnits = isArrayValue ? units.every(function(u) { - return u != null; - }) : units != null; - if (haveUnits) { - if (isArrayValue) { - return value.map(function(v, i2) { - return getValueStringWithUnits(v, units[i2]); - }).join(" "); - } else { - return getValueStringWithUnits(value, units); - } - } else { - if (isArrayValue) { - return value.map(function(v) { - return string(v) ? v : "" + getRenderedValue(v); - }).join(" "); - } else { - return "" + getRenderedValue(value); - } - } - } else if (strValue != null) { - return strValue; - } - } - return null; - } - }; - styfn$5.getAnimationStartStyle = function(ele, aniProps) { - var rstyle = {}; - for (var i2 = 0; i2 < aniProps.length; i2++) { - var aniProp = aniProps[i2]; - var name2 = aniProp.name; - var styleProp = ele.pstyle(name2); - if (styleProp !== void 0) { - if (plainObject(styleProp)) { - styleProp = this.parse(name2, styleProp.strValue); - } else { - styleProp = this.parse(name2, styleProp); - } - } - if (styleProp) { - rstyle[name2] = styleProp; - } - } - return rstyle; - }; - styfn$5.getPropsList = function(propsObj) { - var self2 = this; - var rstyle = []; - var style = propsObj; - var props = self2.properties; - if (style) { - var names = Object.keys(style); - for (var i2 = 0; i2 < names.length; i2++) { - var name2 = names[i2]; - var val = style[name2]; - var prop = props[name2] || props[camel2dash(name2)]; - var styleProp = this.parse(prop.name, val); - if (styleProp) { - rstyle.push(styleProp); - } - } - } - return rstyle; - }; - styfn$5.getNonDefaultPropertiesHash = function(ele, propNames, seed) { - var hash = seed.slice(); - var name2, val, strVal, chVal; - var i2, j; - for (i2 = 0; i2 < propNames.length; i2++) { - name2 = propNames[i2]; - val = ele.pstyle(name2, false); - if (val == null) { - continue; - } else if (val.pfValue != null) { - hash[0] = hashInt(chVal, hash[0]); - hash[1] = hashIntAlt(chVal, hash[1]); - } else { - strVal = val.strValue; - for (j = 0; j < strVal.length; j++) { - chVal = strVal.charCodeAt(j); - hash[0] = hashInt(chVal, hash[0]); - hash[1] = hashIntAlt(chVal, hash[1]); - } - } - } - return hash; - }; - styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash; - var styfn$4 = {}; - styfn$4.appendFromJson = function(json) { - var style = this; - for (var i2 = 0; i2 < json.length; i2++) { - var context = json[i2]; - var selector = context.selector; - var props = context.style || context.css; - var names = Object.keys(props); - style.selector(selector); - for (var j = 0; j < names.length; j++) { - var name2 = names[j]; - var value = props[name2]; - style.css(name2, value); - } - } - return style; - }; - styfn$4.fromJson = function(json) { - var style = this; - style.resetToDefault(); - style.appendFromJson(json); - return style; - }; - styfn$4.json = function() { - var json = []; - for (var i2 = this.defaultLength; i2 < this.length; i2++) { - var cxt = this[i2]; - var selector = cxt.selector; - var props = cxt.properties; - var css = {}; - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - css[prop.name] = prop.strValue; - } - json.push({ - selector: !selector ? "core" : selector.toString(), - style: css - }); - } - return json; - }; - var styfn$3 = {}; - styfn$3.appendFromString = function(string2) { - var self2 = this; - var style = this; - var remaining = "" + string2; - var selAndBlockStr; - var blockRem; - var propAndValStr; - remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, ""); - function removeSelAndBlockFromRemaining() { - if (remaining.length > selAndBlockStr.length) { - remaining = remaining.substr(selAndBlockStr.length); - } else { - remaining = ""; - } - } - function removePropAndValFromRem() { - if (blockRem.length > propAndValStr.length) { - blockRem = blockRem.substr(propAndValStr.length); - } else { - blockRem = ""; - } - } - for (; ; ) { - var nothingLeftToParse = remaining.match(/^\s*$/); - if (nothingLeftToParse) { - break; - } - var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/); - if (!selAndBlock) { - warn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + remaining); - break; - } - selAndBlockStr = selAndBlock[0]; - var selectorStr = selAndBlock[1]; - if (selectorStr !== "core") { - var selector = new Selector(selectorStr); - if (selector.invalid) { - warn("Skipping parsing of block: Invalid selector found in string stylesheet: " + selectorStr); - removeSelAndBlockFromRemaining(); - continue; - } - } - var blockStr = selAndBlock[2]; - var invalidBlock = false; - blockRem = blockStr; - var props = []; - for (; ; ) { - var _nothingLeftToParse = blockRem.match(/^\s*$/); - if (_nothingLeftToParse) { - break; - } - var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/); - if (!propAndVal) { - warn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + blockStr); - invalidBlock = true; - break; - } - propAndValStr = propAndVal[0]; - var propStr = propAndVal[1]; - var valStr = propAndVal[2]; - var prop = self2.properties[propStr]; - if (!prop) { - warn("Skipping property: Invalid property name in: " + propAndValStr); - removePropAndValFromRem(); - continue; - } - var parsedProp = style.parse(propStr, valStr); - if (!parsedProp) { - warn("Skipping property: Invalid property definition in: " + propAndValStr); - removePropAndValFromRem(); - continue; - } - props.push({ - name: propStr, - val: valStr - }); - removePropAndValFromRem(); - } - if (invalidBlock) { - removeSelAndBlockFromRemaining(); - break; - } - style.selector(selectorStr); - for (var i2 = 0; i2 < props.length; i2++) { - var _prop = props[i2]; - style.css(_prop.name, _prop.val); - } - removeSelAndBlockFromRemaining(); - } - return style; - }; - styfn$3.fromString = function(string2) { - var style = this; - style.resetToDefault(); - style.appendFromString(string2); - return style; - }; - var styfn$2 = {}; - (function() { - var number$12 = number; - var rgba2 = rgbaNoBackRefs; - var hsla2 = hslaNoBackRefs; - var hex3$1 = hex3; - var hex6$1 = hex6; - var data2 = function data3(prefix) { - return "^" + prefix + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"; - }; - var mapData = function mapData2(prefix) { - var mapArg = number$12 + "|\\w+|" + rgba2 + "|" + hsla2 + "|" + hex3$1 + "|" + hex6$1; - return "^" + prefix + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + number$12 + ")\\s*\\,\\s*(" + number$12 + ")\\s*,\\s*(" + mapArg + ")\\s*\\,\\s*(" + mapArg + ")\\)$"; - }; - var urlRegexes = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"]; - styfn$2.types = { - time: { - number: true, - min: 0, - units: "s|ms", - implicitUnits: "ms" - }, - percent: { - number: true, - min: 0, - max: 100, - units: "%", - implicitUnits: "%" - }, - percentages: { - number: true, - min: 0, - max: 100, - units: "%", - implicitUnits: "%", - multiple: true - }, - zeroOneNumber: { - number: true, - min: 0, - max: 1, - unitless: true - }, - zeroOneNumbers: { - number: true, - min: 0, - max: 1, - unitless: true, - multiple: true - }, - nOneOneNumber: { - number: true, - min: -1, - max: 1, - unitless: true - }, - nonNegativeInt: { - number: true, - min: 0, - integer: true, - unitless: true - }, - nonNegativeNumber: { - number: true, - min: 0, - unitless: true - }, - position: { - enums: ["parent", "origin"] - }, - nodeSize: { - number: true, - min: 0, - enums: ["label"] - }, - number: { - number: true, - unitless: true - }, - numbers: { - number: true, - unitless: true, - multiple: true - }, - positiveNumber: { - number: true, - unitless: true, - min: 0, - strictMin: true - }, - size: { - number: true, - min: 0 - }, - bidirectionalSize: { - number: true - }, - // allows negative - bidirectionalSizeMaybePercent: { - number: true, - allowPercent: true - }, - // allows negative - bidirectionalSizes: { - number: true, - multiple: true - }, - // allows negative - sizeMaybePercent: { - number: true, - min: 0, - allowPercent: true - }, - axisDirection: { - enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"] - }, - paddingRelativeTo: { - enums: ["width", "height", "average", "min", "max"] - }, - bgWH: { - number: true, - min: 0, - allowPercent: true, - enums: ["auto"], - multiple: true - }, - bgPos: { - number: true, - allowPercent: true, - multiple: true - }, - bgRelativeTo: { - enums: ["inner", "include-padding"], - multiple: true - }, - bgRepeat: { - enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"], - multiple: true - }, - bgFit: { - enums: ["none", "contain", "cover"], - multiple: true - }, - bgCrossOrigin: { - enums: ["anonymous", "use-credentials", "null"], - multiple: true - }, - bgClip: { - enums: ["none", "node"], - multiple: true - }, - bgContainment: { - enums: ["inside", "over"], - multiple: true - }, - color: { - color: true - }, - colors: { - color: true, - multiple: true - }, - fill: { - enums: ["solid", "linear-gradient", "radial-gradient"] - }, - bool: { - enums: ["yes", "no"] - }, - bools: { - enums: ["yes", "no"], - multiple: true - }, - lineStyle: { - enums: ["solid", "dotted", "dashed"] - }, - lineCap: { - enums: ["butt", "round", "square"] - }, - borderStyle: { - enums: ["solid", "dotted", "dashed", "double"] - }, - curveStyle: { - enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"] - }, - fontFamily: { - regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$' - }, - fontStyle: { - enums: ["italic", "normal", "oblique"] - }, - fontWeight: { - enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900] - }, - textDecoration: { - enums: ["none", "underline", "overline", "line-through"] - }, - textTransform: { - enums: ["none", "uppercase", "lowercase"] - }, - textWrap: { - enums: ["none", "wrap", "ellipsis"] - }, - textOverflowWrap: { - enums: ["whitespace", "anywhere"] - }, - textBackgroundShape: { - enums: ["rectangle", "roundrectangle", "round-rectangle"] - }, - nodeShape: { - enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "right-rhomboid", "polygon"] - }, - overlayShape: { - enums: ["roundrectangle", "round-rectangle", "ellipse"] - }, - compoundIncludeLabels: { - enums: ["include", "exclude"] - }, - arrowShape: { - enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"] - }, - arrowFill: { - enums: ["filled", "hollow"] - }, - arrowWidth: { - number: true, - units: "%|px|em", - implicitUnits: "px", - enums: ["match-line"] - }, - display: { - enums: ["element", "none"] - }, - visibility: { - enums: ["hidden", "visible"] - }, - zCompoundDepth: { - enums: ["bottom", "orphan", "auto", "top"] - }, - zIndexCompare: { - enums: ["auto", "manual"] - }, - valign: { - enums: ["top", "center", "bottom"] - }, - halign: { - enums: ["left", "center", "right"] - }, - justification: { - enums: ["left", "center", "right", "auto"] - }, - text: { - string: true - }, - data: { - mapping: true, - regex: data2("data") - }, - layoutData: { - mapping: true, - regex: data2("layoutData") - }, - scratch: { - mapping: true, - regex: data2("scratch") - }, - mapData: { - mapping: true, - regex: mapData("mapData") - }, - mapLayoutData: { - mapping: true, - regex: mapData("mapLayoutData") - }, - mapScratch: { - mapping: true, - regex: mapData("mapScratch") - }, - fn: { - mapping: true, - fn: true - }, - url: { - regexes: urlRegexes, - singleRegexMatchValue: true - }, - urls: { - regexes: urlRegexes, - singleRegexMatchValue: true, - multiple: true - }, - propList: { - propList: true - }, - angle: { - number: true, - units: "deg|rad", - implicitUnits: "rad" - }, - textRotation: { - number: true, - units: "deg|rad", - implicitUnits: "rad", - enums: ["none", "autorotate"] - }, - polygonPointList: { - number: true, - multiple: true, - evenMultiple: true, - min: -1, - max: 1, - unitless: true - }, - edgeDistances: { - enums: ["intersection", "node-position", "endpoints"] - }, - edgeEndpoint: { - number: true, - multiple: true, - units: "%|px|em|deg|rad", - implicitUnits: "px", - enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"], - singleEnum: true, - validate: function validate(valArr, unitsArr) { - switch (valArr.length) { - case 2: - return unitsArr[0] !== "deg" && unitsArr[0] !== "rad" && unitsArr[1] !== "deg" && unitsArr[1] !== "rad"; - case 1: - return string(valArr[0]) || unitsArr[0] === "deg" || unitsArr[0] === "rad"; - default: - return false; - } - } - }, - easing: { - regexes: ["^(spring)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*,\\s*(" + number$12 + ")\\s*\\)$"], - enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"] - }, - gradientDirection: { - enums: [ - "to-bottom", - "to-top", - "to-left", - "to-right", - "to-bottom-right", - "to-bottom-left", - "to-top-right", - "to-top-left", - "to-right-bottom", - "to-left-bottom", - "to-right-top", - "to-left-top" - // different order - ] - }, - boundsExpansion: { - number: true, - multiple: true, - min: 0, - validate: function validate(valArr) { - var length = valArr.length; - return length === 1 || length === 2 || length === 4; - } - } - }; - var diff = { - zeroNonZero: function zeroNonZero(val1, val2) { - if ((val1 == null || val2 == null) && val1 !== val2) { - return true; - } - if (val1 == 0 && val2 != 0) { - return true; - } else if (val1 != 0 && val2 == 0) { - return true; - } else { - return false; - } - }, - any: function any(val1, val2) { - return val1 != val2; - }, - emptyNonEmpty: function emptyNonEmpty(str1, str2) { - var empty1 = emptyString(str1); - var empty2 = emptyString(str2); - return empty1 && !empty2 || !empty1 && empty2; - } - }; - var t = styfn$2.types; - var mainLabel = [{ - name: "label", - type: t.text, - triggersBounds: diff.any, - triggersZOrder: diff.emptyNonEmpty - }, { - name: "text-rotation", - type: t.textRotation, - triggersBounds: diff.any - }, { - name: "text-margin-x", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "text-margin-y", - type: t.bidirectionalSize, - triggersBounds: diff.any - }]; - var sourceLabel = [{ - name: "source-label", - type: t.text, - triggersBounds: diff.any - }, { - name: "source-text-rotation", - type: t.textRotation, - triggersBounds: diff.any - }, { - name: "source-text-margin-x", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "source-text-margin-y", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "source-text-offset", - type: t.size, - triggersBounds: diff.any - }]; - var targetLabel = [{ - name: "target-label", - type: t.text, - triggersBounds: diff.any - }, { - name: "target-text-rotation", - type: t.textRotation, - triggersBounds: diff.any - }, { - name: "target-text-margin-x", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "target-text-margin-y", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "target-text-offset", - type: t.size, - triggersBounds: diff.any - }]; - var labelDimensions = [{ - name: "font-family", - type: t.fontFamily, - triggersBounds: diff.any - }, { - name: "font-style", - type: t.fontStyle, - triggersBounds: diff.any - }, { - name: "font-weight", - type: t.fontWeight, - triggersBounds: diff.any - }, { - name: "font-size", - type: t.size, - triggersBounds: diff.any - }, { - name: "text-transform", - type: t.textTransform, - triggersBounds: diff.any - }, { - name: "text-wrap", - type: t.textWrap, - triggersBounds: diff.any - }, { - name: "text-overflow-wrap", - type: t.textOverflowWrap, - triggersBounds: diff.any - }, { - name: "text-max-width", - type: t.size, - triggersBounds: diff.any - }, { - name: "text-outline-width", - type: t.size, - triggersBounds: diff.any - }, { - name: "line-height", - type: t.positiveNumber, - triggersBounds: diff.any - }]; - var commonLabel = [{ - name: "text-valign", - type: t.valign, - triggersBounds: diff.any - }, { - name: "text-halign", - type: t.halign, - triggersBounds: diff.any - }, { - name: "color", - type: t.color - }, { - name: "text-outline-color", - type: t.color - }, { - name: "text-outline-opacity", - type: t.zeroOneNumber - }, { - name: "text-background-color", - type: t.color - }, { - name: "text-background-opacity", - type: t.zeroOneNumber - }, { - name: "text-background-padding", - type: t.size, - triggersBounds: diff.any - }, { - name: "text-border-opacity", - type: t.zeroOneNumber - }, { - name: "text-border-color", - type: t.color - }, { - name: "text-border-width", - type: t.size, - triggersBounds: diff.any - }, { - name: "text-border-style", - type: t.borderStyle, - triggersBounds: diff.any - }, { - name: "text-background-shape", - type: t.textBackgroundShape, - triggersBounds: diff.any - }, { - name: "text-justification", - type: t.justification - }]; - var behavior = [{ - name: "events", - type: t.bool, - triggersZOrder: diff.any - }, { - name: "text-events", - type: t.bool, - triggersZOrder: diff.any - }]; - var visibility = [{ - name: "display", - type: t.display, - triggersZOrder: diff.any, - triggersBounds: diff.any, - triggersBoundsOfConnectedEdges: true - }, { - name: "visibility", - type: t.visibility, - triggersZOrder: diff.any - }, { - name: "opacity", - type: t.zeroOneNumber, - triggersZOrder: diff.zeroNonZero - }, { - name: "text-opacity", - type: t.zeroOneNumber - }, { - name: "min-zoomed-font-size", - type: t.size - }, { - name: "z-compound-depth", - type: t.zCompoundDepth, - triggersZOrder: diff.any - }, { - name: "z-index-compare", - type: t.zIndexCompare, - triggersZOrder: diff.any - }, { - name: "z-index", - type: t.number, - triggersZOrder: diff.any - }]; - var overlay = [{ - name: "overlay-padding", - type: t.size, - triggersBounds: diff.any - }, { - name: "overlay-color", - type: t.color - }, { - name: "overlay-opacity", - type: t.zeroOneNumber, - triggersBounds: diff.zeroNonZero - }, { - name: "overlay-shape", - type: t.overlayShape, - triggersBounds: diff.any - }]; - var underlay = [{ - name: "underlay-padding", - type: t.size, - triggersBounds: diff.any - }, { - name: "underlay-color", - type: t.color - }, { - name: "underlay-opacity", - type: t.zeroOneNumber, - triggersBounds: diff.zeroNonZero - }, { - name: "underlay-shape", - type: t.overlayShape, - triggersBounds: diff.any - }]; - var transition = [{ - name: "transition-property", - type: t.propList - }, { - name: "transition-duration", - type: t.time - }, { - name: "transition-delay", - type: t.time - }, { - name: "transition-timing-function", - type: t.easing - }]; - var nodeSizeHashOverride = function nodeSizeHashOverride2(ele, parsedProp) { - if (parsedProp.value === "label") { - return -ele.poolIndex(); - } else { - return parsedProp.pfValue; - } - }; - var nodeBody = [{ - name: "height", - type: t.nodeSize, - triggersBounds: diff.any, - hashOverride: nodeSizeHashOverride - }, { - name: "width", - type: t.nodeSize, - triggersBounds: diff.any, - hashOverride: nodeSizeHashOverride - }, { - name: "shape", - type: t.nodeShape, - triggersBounds: diff.any - }, { - name: "shape-polygon-points", - type: t.polygonPointList, - triggersBounds: diff.any - }, { - name: "background-color", - type: t.color - }, { - name: "background-fill", - type: t.fill - }, { - name: "background-opacity", - type: t.zeroOneNumber - }, { - name: "background-blacken", - type: t.nOneOneNumber - }, { - name: "background-gradient-stop-colors", - type: t.colors - }, { - name: "background-gradient-stop-positions", - type: t.percentages - }, { - name: "background-gradient-direction", - type: t.gradientDirection - }, { - name: "padding", - type: t.sizeMaybePercent, - triggersBounds: diff.any - }, { - name: "padding-relative-to", - type: t.paddingRelativeTo, - triggersBounds: diff.any - }, { - name: "bounds-expansion", - type: t.boundsExpansion, - triggersBounds: diff.any - }]; - var nodeBorder = [{ - name: "border-color", - type: t.color - }, { - name: "border-opacity", - type: t.zeroOneNumber - }, { - name: "border-width", - type: t.size, - triggersBounds: diff.any - }, { - name: "border-style", - type: t.borderStyle - }]; - var nodeOutline = [{ - name: "outline-color", - type: t.color - }, { - name: "outline-opacity", - type: t.zeroOneNumber - }, { - name: "outline-width", - type: t.size, - triggersBounds: diff.any - }, { - name: "outline-style", - type: t.borderStyle - }, { - name: "outline-offset", - type: t.size, - triggersBounds: diff.any - }]; - var backgroundImage = [{ - name: "background-image", - type: t.urls - }, { - name: "background-image-crossorigin", - type: t.bgCrossOrigin - }, { - name: "background-image-opacity", - type: t.zeroOneNumbers - }, { - name: "background-image-containment", - type: t.bgContainment - }, { - name: "background-image-smoothing", - type: t.bools - }, { - name: "background-position-x", - type: t.bgPos - }, { - name: "background-position-y", - type: t.bgPos - }, { - name: "background-width-relative-to", - type: t.bgRelativeTo - }, { - name: "background-height-relative-to", - type: t.bgRelativeTo - }, { - name: "background-repeat", - type: t.bgRepeat - }, { - name: "background-fit", - type: t.bgFit - }, { - name: "background-clip", - type: t.bgClip - }, { - name: "background-width", - type: t.bgWH - }, { - name: "background-height", - type: t.bgWH - }, { - name: "background-offset-x", - type: t.bgPos - }, { - name: "background-offset-y", - type: t.bgPos - }]; - var compound = [{ - name: "position", - type: t.position, - triggersBounds: diff.any - }, { - name: "compound-sizing-wrt-labels", - type: t.compoundIncludeLabels, - triggersBounds: diff.any - }, { - name: "min-width", - type: t.size, - triggersBounds: diff.any - }, { - name: "min-width-bias-left", - type: t.sizeMaybePercent, - triggersBounds: diff.any - }, { - name: "min-width-bias-right", - type: t.sizeMaybePercent, - triggersBounds: diff.any - }, { - name: "min-height", - type: t.size, - triggersBounds: diff.any - }, { - name: "min-height-bias-top", - type: t.sizeMaybePercent, - triggersBounds: diff.any - }, { - name: "min-height-bias-bottom", - type: t.sizeMaybePercent, - triggersBounds: diff.any - }]; - var edgeLine = [{ - name: "line-style", - type: t.lineStyle - }, { - name: "line-color", - type: t.color - }, { - name: "line-fill", - type: t.fill - }, { - name: "line-cap", - type: t.lineCap - }, { - name: "line-opacity", - type: t.zeroOneNumber - }, { - name: "line-dash-pattern", - type: t.numbers - }, { - name: "line-dash-offset", - type: t.number - }, { - name: "line-gradient-stop-colors", - type: t.colors - }, { - name: "line-gradient-stop-positions", - type: t.percentages - }, { - name: "curve-style", - type: t.curveStyle, - triggersBounds: diff.any, - triggersBoundsOfParallelBeziers: true - }, { - name: "haystack-radius", - type: t.zeroOneNumber, - triggersBounds: diff.any - }, { - name: "source-endpoint", - type: t.edgeEndpoint, - triggersBounds: diff.any - }, { - name: "target-endpoint", - type: t.edgeEndpoint, - triggersBounds: diff.any - }, { - name: "control-point-step-size", - type: t.size, - triggersBounds: diff.any - }, { - name: "control-point-distances", - type: t.bidirectionalSizes, - triggersBounds: diff.any - }, { - name: "control-point-weights", - type: t.numbers, - triggersBounds: diff.any - }, { - name: "segment-distances", - type: t.bidirectionalSizes, - triggersBounds: diff.any - }, { - name: "segment-weights", - type: t.numbers, - triggersBounds: diff.any - }, { - name: "taxi-turn", - type: t.bidirectionalSizeMaybePercent, - triggersBounds: diff.any - }, { - name: "taxi-turn-min-distance", - type: t.size, - triggersBounds: diff.any - }, { - name: "taxi-direction", - type: t.axisDirection, - triggersBounds: diff.any - }, { - name: "edge-distances", - type: t.edgeDistances, - triggersBounds: diff.any - }, { - name: "arrow-scale", - type: t.positiveNumber, - triggersBounds: diff.any - }, { - name: "loop-direction", - type: t.angle, - triggersBounds: diff.any - }, { - name: "loop-sweep", - type: t.angle, - triggersBounds: diff.any - }, { - name: "source-distance-from-node", - type: t.size, - triggersBounds: diff.any - }, { - name: "target-distance-from-node", - type: t.size, - triggersBounds: diff.any - }]; - var ghost = [{ - name: "ghost", - type: t.bool, - triggersBounds: diff.any - }, { - name: "ghost-offset-x", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "ghost-offset-y", - type: t.bidirectionalSize, - triggersBounds: diff.any - }, { - name: "ghost-opacity", - type: t.zeroOneNumber - }]; - var core2 = [{ - name: "selection-box-color", - type: t.color - }, { - name: "selection-box-opacity", - type: t.zeroOneNumber - }, { - name: "selection-box-border-color", - type: t.color - }, { - name: "selection-box-border-width", - type: t.size - }, { - name: "active-bg-color", - type: t.color - }, { - name: "active-bg-opacity", - type: t.zeroOneNumber - }, { - name: "active-bg-size", - type: t.size - }, { - name: "outside-texture-bg-color", - type: t.color - }, { - name: "outside-texture-bg-opacity", - type: t.zeroOneNumber - }]; - var pie = []; - styfn$2.pieBackgroundN = 16; - pie.push({ - name: "pie-size", - type: t.sizeMaybePercent - }); - for (var i2 = 1; i2 <= styfn$2.pieBackgroundN; i2++) { - pie.push({ - name: "pie-" + i2 + "-background-color", - type: t.color - }); - pie.push({ - name: "pie-" + i2 + "-background-size", - type: t.percent - }); - pie.push({ - name: "pie-" + i2 + "-background-opacity", - type: t.zeroOneNumber - }); - } - var edgeArrow = []; - var arrowPrefixes = styfn$2.arrowPrefixes = ["source", "mid-source", "target", "mid-target"]; - [{ - name: "arrow-shape", - type: t.arrowShape, - triggersBounds: diff.any - }, { - name: "arrow-color", - type: t.color - }, { - name: "arrow-fill", - type: t.arrowFill - }, { - name: "arrow-width", - type: t.arrowWidth - }].forEach(function(prop2) { - arrowPrefixes.forEach(function(prefix) { - var name2 = prefix + "-" + prop2.name; - var type = prop2.type, triggersBounds = prop2.triggersBounds; - edgeArrow.push({ - name: name2, - type, - triggersBounds - }); - }); - }, {}); - var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie, compound, edgeLine, edgeArrow, core2); - var propGroups = styfn$2.propertyGroups = { - // common to all eles - behavior, - transition, - visibility, - overlay, - underlay, - ghost, - // labels - commonLabel, - labelDimensions, - mainLabel, - sourceLabel, - targetLabel, - // node props - nodeBody, - nodeBorder, - nodeOutline, - backgroundImage, - pie, - compound, - // edge props - edgeLine, - edgeArrow, - core: core2 - }; - var propGroupNames = styfn$2.propertyGroupNames = {}; - var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups); - propGroupKeys.forEach(function(key) { - propGroupNames[key] = propGroups[key].map(function(prop2) { - return prop2.name; - }); - propGroups[key].forEach(function(prop2) { - return prop2.groupKey = key; - }); - }); - var aliases = styfn$2.aliases = [{ - name: "content", - pointsTo: "label" - }, { - name: "control-point-distance", - pointsTo: "control-point-distances" - }, { - name: "control-point-weight", - pointsTo: "control-point-weights" - }, { - name: "edge-text-rotation", - pointsTo: "text-rotation" - }, { - name: "padding-left", - pointsTo: "padding" - }, { - name: "padding-right", - pointsTo: "padding" - }, { - name: "padding-top", - pointsTo: "padding" - }, { - name: "padding-bottom", - pointsTo: "padding" - }]; - styfn$2.propertyNames = props.map(function(p2) { - return p2.name; - }); - for (var _i = 0; _i < props.length; _i++) { - var prop = props[_i]; - props[prop.name] = prop; - } - for (var _i2 = 0; _i2 < aliases.length; _i2++) { - var alias = aliases[_i2]; - var pointsToProp = props[alias.pointsTo]; - var aliasProp = { - name: alias.name, - alias: true, - pointsTo: pointsToProp - }; - props.push(aliasProp); - props[alias.name] = aliasProp; - } - })(); - styfn$2.getDefaultProperty = function(name2) { - return this.getDefaultProperties()[name2]; - }; - styfn$2.getDefaultProperties = function() { - var _p = this._private; - if (_p.defaultProperties != null) { - return _p.defaultProperties; - } - var rawProps = extend({ - // core props - "selection-box-color": "#ddd", - "selection-box-opacity": 0.65, - "selection-box-border-color": "#aaa", - "selection-box-border-width": 1, - "active-bg-color": "black", - "active-bg-opacity": 0.15, - "active-bg-size": 30, - "outside-texture-bg-color": "#000", - "outside-texture-bg-opacity": 0.125, - // common node/edge props - "events": "yes", - "text-events": "no", - "text-valign": "top", - "text-halign": "center", - "text-justification": "auto", - "line-height": 1, - "color": "#000", - "text-outline-color": "#000", - "text-outline-width": 0, - "text-outline-opacity": 1, - "text-opacity": 1, - "text-decoration": "none", - "text-transform": "none", - "text-wrap": "none", - "text-overflow-wrap": "whitespace", - "text-max-width": 9999, - "text-background-color": "#000", - "text-background-opacity": 0, - "text-background-shape": "rectangle", - "text-background-padding": 0, - "text-border-opacity": 0, - "text-border-width": 0, - "text-border-style": "solid", - "text-border-color": "#000", - "font-family": "Helvetica Neue, Helvetica, sans-serif", - "font-style": "normal", - "font-weight": "normal", - "font-size": 16, - "min-zoomed-font-size": 0, - "text-rotation": "none", - "source-text-rotation": "none", - "target-text-rotation": "none", - "visibility": "visible", - "display": "element", - "opacity": 1, - "z-compound-depth": "auto", - "z-index-compare": "auto", - "z-index": 0, - "label": "", - "text-margin-x": 0, - "text-margin-y": 0, - "source-label": "", - "source-text-offset": 0, - "source-text-margin-x": 0, - "source-text-margin-y": 0, - "target-label": "", - "target-text-offset": 0, - "target-text-margin-x": 0, - "target-text-margin-y": 0, - "overlay-opacity": 0, - "overlay-color": "#000", - "overlay-padding": 10, - "overlay-shape": "round-rectangle", - "underlay-opacity": 0, - "underlay-color": "#000", - "underlay-padding": 10, - "underlay-shape": "round-rectangle", - "transition-property": "none", - "transition-duration": 0, - "transition-delay": 0, - "transition-timing-function": "linear", - // node props - "background-blacken": 0, - "background-color": "#999", - "background-fill": "solid", - "background-opacity": 1, - "background-image": "none", - "background-image-crossorigin": "anonymous", - "background-image-opacity": 1, - "background-image-containment": "inside", - "background-image-smoothing": "yes", - "background-position-x": "50%", - "background-position-y": "50%", - "background-offset-x": 0, - "background-offset-y": 0, - "background-width-relative-to": "include-padding", - "background-height-relative-to": "include-padding", - "background-repeat": "no-repeat", - "background-fit": "none", - "background-clip": "node", - "background-width": "auto", - "background-height": "auto", - "border-color": "#000", - "border-opacity": 1, - "border-width": 0, - "border-style": "solid", - "outline-color": "#999", - "outline-opacity": 1, - "outline-width": 0, - "outline-offset": 0, - "outline-style": "solid", - "height": 30, - "width": 30, - "shape": "ellipse", - "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1", - "bounds-expansion": 0, - // node gradient - "background-gradient-direction": "to-bottom", - "background-gradient-stop-colors": "#999", - "background-gradient-stop-positions": "0%", - // ghost props - "ghost": "no", - "ghost-offset-y": 0, - "ghost-offset-x": 0, - "ghost-opacity": 0, - // compound props - "padding": 0, - "padding-relative-to": "width", - "position": "origin", - "compound-sizing-wrt-labels": "include", - "min-width": 0, - "min-width-bias-left": 0, - "min-width-bias-right": 0, - "min-height": 0, - "min-height-bias-top": 0, - "min-height-bias-bottom": 0 - }, { - // node pie bg - "pie-size": "100%" - }, [{ - name: "pie-{{i}}-background-color", - value: "black" - }, { - name: "pie-{{i}}-background-size", - value: "0%" - }, { - name: "pie-{{i}}-background-opacity", - value: 1 - }].reduce(function(css, prop2) { - for (var i3 = 1; i3 <= styfn$2.pieBackgroundN; i3++) { - var name3 = prop2.name.replace("{{i}}", i3); - var val2 = prop2.value; - css[name3] = val2; - } - return css; - }, {}), { - // edge props - "line-style": "solid", - "line-color": "#999", - "line-fill": "solid", - "line-cap": "butt", - "line-opacity": 1, - "line-gradient-stop-colors": "#999", - "line-gradient-stop-positions": "0%", - "control-point-step-size": 40, - "control-point-weights": 0.5, - "segment-weights": 0.5, - "segment-distances": 20, - "taxi-turn": "50%", - "taxi-turn-min-distance": 10, - "taxi-direction": "auto", - "edge-distances": "intersection", - "curve-style": "haystack", - "haystack-radius": 0, - "arrow-scale": 1, - "loop-direction": "-45deg", - "loop-sweep": "-90deg", - "source-distance-from-node": 0, - "target-distance-from-node": 0, - "source-endpoint": "outside-to-node", - "target-endpoint": "outside-to-node", - "line-dash-pattern": [6, 3], - "line-dash-offset": 0 - }, [{ - name: "arrow-shape", - value: "none" - }, { - name: "arrow-color", - value: "#999" - }, { - name: "arrow-fill", - value: "filled" - }, { - name: "arrow-width", - value: 1 - }].reduce(function(css, prop2) { - styfn$2.arrowPrefixes.forEach(function(prefix) { - var name3 = prefix + "-" + prop2.name; - var val2 = prop2.value; - css[name3] = val2; - }); - return css; - }, {})); - var parsedProps = {}; - for (var i2 = 0; i2 < this.properties.length; i2++) { - var prop = this.properties[i2]; - if (prop.pointsTo) { - continue; - } - var name2 = prop.name; - var val = rawProps[name2]; - var parsedProp = this.parse(name2, val); - parsedProps[name2] = parsedProp; - } - _p.defaultProperties = parsedProps; - return _p.defaultProperties; - }; - styfn$2.addDefaultStylesheet = function() { - this.selector(":parent").css({ - "shape": "rectangle", - "padding": 10, - "background-color": "#eee", - "border-color": "#ccc", - "border-width": 1 - }).selector("edge").css({ - "width": 3 - }).selector(":loop").css({ - "curve-style": "bezier" - }).selector("edge:compound").css({ - "curve-style": "bezier", - "source-endpoint": "outside-to-line", - "target-endpoint": "outside-to-line" - }).selector(":selected").css({ - "background-color": "#0169D9", - "line-color": "#0169D9", - "source-arrow-color": "#0169D9", - "target-arrow-color": "#0169D9", - "mid-source-arrow-color": "#0169D9", - "mid-target-arrow-color": "#0169D9" - }).selector(":parent:selected").css({ - "background-color": "#CCE1F9", - "border-color": "#aec8e5" - }).selector(":active").css({ - "overlay-color": "black", - "overlay-padding": 10, - "overlay-opacity": 0.25 - }); - this.defaultLength = this.length; - }; - var styfn$1 = {}; - styfn$1.parse = function(name2, value, propIsBypass, propIsFlat) { - var self2 = this; - if (fn$6(value)) { - return self2.parseImplWarn(name2, value, propIsBypass, propIsFlat); - } - var flatKey = propIsFlat === "mapping" || propIsFlat === true || propIsFlat === false || propIsFlat == null ? "dontcare" : propIsFlat; - var bypassKey = propIsBypass ? "t" : "f"; - var valueKey = "" + value; - var argHash = hashStrings(name2, valueKey, bypassKey, flatKey); - var propCache = self2.propCache = self2.propCache || []; - var ret; - if (!(ret = propCache[argHash])) { - ret = propCache[argHash] = self2.parseImplWarn(name2, value, propIsBypass, propIsFlat); - } - if (propIsBypass || propIsFlat === "mapping") { - ret = copy(ret); - if (ret) { - ret.value = copy(ret.value); - } - } - return ret; - }; - styfn$1.parseImplWarn = function(name2, value, propIsBypass, propIsFlat) { - var prop = this.parseImpl(name2, value, propIsBypass, propIsFlat); - if (!prop && value != null) { - warn("The style property `".concat(name2, ": ").concat(value, "` is invalid")); - } - if (prop && (prop.name === "width" || prop.name === "height") && value === "label") { - warn("The style value of `label` is deprecated for `" + prop.name + "`"); - } - return prop; - }; - styfn$1.parseImpl = function(name2, value, propIsBypass, propIsFlat) { - var self2 = this; - name2 = camel2dash(name2); - var property = self2.properties[name2]; - var passedValue = value; - var types = self2.types; - if (!property) { - return null; - } - if (value === void 0) { - return null; - } - if (property.alias) { - property = property.pointsTo; - name2 = property.name; - } - var valueIsString = string(value); - if (valueIsString) { - value = value.trim(); - } - var type = property.type; - if (!type) { - return null; - } - if (propIsBypass && (value === "" || value === null)) { - return { - name: name2, - value, - bypass: true, - deleteBypass: true - }; - } - if (fn$6(value)) { - return { - name: name2, - value, - strValue: "fn", - mapped: types.fn, - bypass: propIsBypass - }; - } - var data2, mapData; - if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== "a") - ; - else if (value.length >= 7 && value[0] === "d" && (data2 = new RegExp(types.data.regex).exec(value))) { - if (propIsBypass) { - return false; - } - var mapped = types.data; - return { - name: name2, - value: data2, - strValue: "" + value, - mapped, - field: data2[1], - bypass: propIsBypass - }; - } else if (value.length >= 10 && value[0] === "m" && (mapData = new RegExp(types.mapData.regex).exec(value))) { - if (propIsBypass) { - return false; - } - if (type.multiple) { - return false; - } - var _mapped = types.mapData; - if (!(type.color || type.number)) { - return false; - } - var valueMin = this.parse(name2, mapData[4]); - if (!valueMin || valueMin.mapped) { - return false; - } - var valueMax = this.parse(name2, mapData[5]); - if (!valueMax || valueMax.mapped) { - return false; - } - if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) { - warn("`" + name2 + ": " + value + "` is not a valid mapper because the output range is zero; converting to `" + name2 + ": " + valueMin.strValue + "`"); - return this.parse(name2, valueMin.strValue); - } else if (type.color) { - var c1 = valueMin.value; - var c2 = valueMax.value; - var same = c1[0] === c2[0] && c1[1] === c2[1] && c1[2] === c2[2] && // optional alpha - (c1[3] === c2[3] || (c1[3] == null || c1[3] === 1) && (c2[3] == null || c2[3] === 1)); - if (same) { - return false; - } - } - return { - name: name2, - value: mapData, - strValue: "" + value, - mapped: _mapped, - field: mapData[1], - fieldMin: parseFloat(mapData[2]), - // min & max are numeric - fieldMax: parseFloat(mapData[3]), - valueMin: valueMin.value, - valueMax: valueMax.value, - bypass: propIsBypass - }; - } - if (type.multiple && propIsFlat !== "multiple") { - var vals; - if (valueIsString) { - vals = value.split(/\s+/); - } else if (array(value)) { - vals = value; - } else { - vals = [value]; - } - if (type.evenMultiple && vals.length % 2 !== 0) { - return null; - } - var valArr = []; - var unitsArr = []; - var pfValArr = []; - var strVal = ""; - var hasEnum = false; - for (var i2 = 0; i2 < vals.length; i2++) { - var p2 = self2.parse(name2, vals[i2], propIsBypass, "multiple"); - hasEnum = hasEnum || string(p2.value); - valArr.push(p2.value); - pfValArr.push(p2.pfValue != null ? p2.pfValue : p2.value); - unitsArr.push(p2.units); - strVal += (i2 > 0 ? " " : "") + p2.strValue; - } - if (type.validate && !type.validate(valArr, unitsArr)) { - return null; - } - if (type.singleEnum && hasEnum) { - if (valArr.length === 1 && string(valArr[0])) { - return { - name: name2, - value: valArr[0], - strValue: valArr[0], - bypass: propIsBypass - }; - } else { - return null; - } - } - return { - name: name2, - value: valArr, - pfValue: pfValArr, - strValue: strVal, - bypass: propIsBypass, - units: unitsArr - }; - } - var checkEnums = function checkEnums2() { - for (var _i = 0; _i < type.enums.length; _i++) { - var en = type.enums[_i]; - if (en === value) { - return { - name: name2, - value, - strValue: "" + value, - bypass: propIsBypass - }; - } - } - return null; - }; - if (type.number) { - var units; - var implicitUnits = "px"; - if (type.units) { - units = type.units; - } - if (type.implicitUnits) { - implicitUnits = type.implicitUnits; - } - if (!type.unitless) { - if (valueIsString) { - var unitsRegex = "px|em" + (type.allowPercent ? "|\\%" : ""); - if (units) { - unitsRegex = units; - } - var match2 = value.match("^(" + number + ")(" + unitsRegex + ")?$"); - if (match2) { - value = match2[1]; - units = match2[2] || implicitUnits; - } - } else if (!units || type.implicitUnits) { - units = implicitUnits; - } - } - value = parseFloat(value); - if (isNaN(value) && type.enums === void 0) { - return null; - } - if (isNaN(value) && type.enums !== void 0) { - value = passedValue; - return checkEnums(); - } - if (type.integer && !integer(value)) { - return null; - } - if (type.min !== void 0 && (value < type.min || type.strictMin && value === type.min) || type.max !== void 0 && (value > type.max || type.strictMax && value === type.max)) { - return null; - } - var ret = { - name: name2, - value, - strValue: "" + value + (units ? units : ""), - units, - bypass: propIsBypass - }; - if (type.unitless || units !== "px" && units !== "em") { - ret.pfValue = value; - } else { - ret.pfValue = units === "px" || !units ? value : this.getEmSizeInPixels() * value; - } - if (units === "ms" || units === "s") { - ret.pfValue = units === "ms" ? value : 1e3 * value; - } - if (units === "deg" || units === "rad") { - ret.pfValue = units === "rad" ? value : deg2rad(value); - } - if (units === "%") { - ret.pfValue = value / 100; - } - return ret; - } else if (type.propList) { - var props = []; - var propsStr = "" + value; - if (propsStr === "none") - ; - else { - var propsSplit = propsStr.split(/\s*,\s*|\s+/); - for (var _i2 = 0; _i2 < propsSplit.length; _i2++) { - var propName = propsSplit[_i2].trim(); - if (self2.properties[propName]) { - props.push(propName); - } else { - warn("`" + propName + "` is not a valid property name"); - } - } - if (props.length === 0) { - return null; - } - } - return { - name: name2, - value: props, - strValue: props.length === 0 ? "none" : props.join(" "), - bypass: propIsBypass - }; - } else if (type.color) { - var tuple = color2tuple(value); - if (!tuple) { - return null; - } - return { - name: name2, - value: tuple, - pfValue: tuple, - strValue: "rgb(" + tuple[0] + "," + tuple[1] + "," + tuple[2] + ")", - // n.b. no spaces b/c of multiple support - bypass: propIsBypass - }; - } else if (type.regex || type.regexes) { - if (type.enums) { - var enumProp = checkEnums(); - if (enumProp) { - return enumProp; - } - } - var regexes = type.regexes ? type.regexes : [type.regex]; - for (var _i3 = 0; _i3 < regexes.length; _i3++) { - var regex = new RegExp(regexes[_i3]); - var m = regex.exec(value); - if (m) { - return { - name: name2, - value: type.singleRegexMatchValue ? m[1] : m, - strValue: "" + value, - bypass: propIsBypass - }; - } - } - return null; - } else if (type.string) { - return { - name: name2, - value: "" + value, - strValue: "" + value, - bypass: propIsBypass - }; - } else if (type.enums) { - return checkEnums(); - } else { - return null; - } - }; - var Style = function Style2(cy) { - if (!(this instanceof Style2)) { - return new Style2(cy); - } - if (!core(cy)) { - error("A style must have a core reference"); - return; - } - this._private = { - cy, - coreStyle: {} - }; - this.length = 0; - this.resetToDefault(); - }; - var styfn = Style.prototype; - styfn.instanceString = function() { - return "style"; - }; - styfn.clear = function() { - var _p = this._private; - var cy = _p.cy; - var eles = cy.elements(); - for (var i2 = 0; i2 < this.length; i2++) { - this[i2] = void 0; - } - this.length = 0; - _p.contextStyles = {}; - _p.propDiffs = {}; - this.cleanElements(eles, true); - eles.forEach(function(ele) { - var ele_p = ele[0]._private; - ele_p.styleDirty = true; - ele_p.appliedInitStyle = false; - }); - return this; - }; - styfn.resetToDefault = function() { - this.clear(); - this.addDefaultStylesheet(); - return this; - }; - styfn.core = function(propName) { - return this._private.coreStyle[propName] || this.getDefaultProperty(propName); - }; - styfn.selector = function(selectorStr) { - var selector = selectorStr === "core" ? null : new Selector(selectorStr); - var i2 = this.length++; - this[i2] = { - selector, - properties: [], - mappedProperties: [], - index: i2 - }; - return this; - }; - styfn.css = function() { - var self2 = this; - var args = arguments; - if (args.length === 1) { - var map = args[0]; - for (var i2 = 0; i2 < self2.properties.length; i2++) { - var prop = self2.properties[i2]; - var mapVal = map[prop.name]; - if (mapVal === void 0) { - mapVal = map[dash2camel(prop.name)]; - } - if (mapVal !== void 0) { - this.cssRule(prop.name, mapVal); - } - } - } else if (args.length === 2) { - this.cssRule(args[0], args[1]); - } - return this; - }; - styfn.style = styfn.css; - styfn.cssRule = function(name2, value) { - var property = this.parse(name2, value); - if (property) { - var i2 = this.length - 1; - this[i2].properties.push(property); - this[i2].properties[property.name] = property; - if (property.name.match(/pie-(\d+)-background-size/) && property.value) { - this._private.hasPie = true; - } - if (property.mapped) { - this[i2].mappedProperties.push(property); - } - var currentSelectorIsCore = !this[i2].selector; - if (currentSelectorIsCore) { - this._private.coreStyle[property.name] = property; - } - } - return this; - }; - styfn.append = function(style) { - if (stylesheet(style)) { - style.appendToStyle(this); - } else if (array(style)) { - this.appendFromJson(style); - } else if (string(style)) { - this.appendFromString(style); - } - return this; - }; - Style.fromJson = function(cy, json) { - var style = new Style(cy); - style.fromJson(json); - return style; - }; - Style.fromString = function(cy, string2) { - return new Style(cy).fromString(string2); - }; - [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function(props) { - extend(styfn, props); - }); - Style.types = styfn.types; - Style.properties = styfn.properties; - Style.propertyGroups = styfn.propertyGroups; - Style.propertyGroupNames = styfn.propertyGroupNames; - Style.propertyGroupKeys = styfn.propertyGroupKeys; - var corefn$2 = { - style: function style(newStyle) { - if (newStyle) { - var s = this.setStyle(newStyle); - s.update(); - } - return this._private.style; - }, - setStyle: function setStyle(style) { - var _p = this._private; - if (stylesheet(style)) { - _p.style = style.generateStyle(this); - } else if (array(style)) { - _p.style = Style.fromJson(this, style); - } else if (string(style)) { - _p.style = Style.fromString(this, style); - } else { - _p.style = Style(this); - } - return _p.style; - }, - // e.g. cy.data() changed => recalc ele mappers - updateStyle: function updateStyle() { - this.mutableElements().updateStyle(); - } - }; - var defaultSelectionType = "single"; - var corefn$1 = { - autolock: function autolock(bool) { - if (bool !== void 0) { - this._private.autolock = bool ? true : false; - } else { - return this._private.autolock; - } - return this; - }, - autoungrabify: function autoungrabify(bool) { - if (bool !== void 0) { - this._private.autoungrabify = bool ? true : false; - } else { - return this._private.autoungrabify; - } - return this; - }, - autounselectify: function autounselectify(bool) { - if (bool !== void 0) { - this._private.autounselectify = bool ? true : false; - } else { - return this._private.autounselectify; - } - return this; - }, - selectionType: function selectionType(selType) { - var _p = this._private; - if (_p.selectionType == null) { - _p.selectionType = defaultSelectionType; - } - if (selType !== void 0) { - if (selType === "additive" || selType === "single") { - _p.selectionType = selType; - } - } else { - return _p.selectionType; - } - return this; - }, - panningEnabled: function panningEnabled(bool) { - if (bool !== void 0) { - this._private.panningEnabled = bool ? true : false; - } else { - return this._private.panningEnabled; - } - return this; - }, - userPanningEnabled: function userPanningEnabled(bool) { - if (bool !== void 0) { - this._private.userPanningEnabled = bool ? true : false; - } else { - return this._private.userPanningEnabled; - } - return this; - }, - zoomingEnabled: function zoomingEnabled(bool) { - if (bool !== void 0) { - this._private.zoomingEnabled = bool ? true : false; - } else { - return this._private.zoomingEnabled; - } - return this; - }, - userZoomingEnabled: function userZoomingEnabled(bool) { - if (bool !== void 0) { - this._private.userZoomingEnabled = bool ? true : false; - } else { - return this._private.userZoomingEnabled; - } - return this; - }, - boxSelectionEnabled: function boxSelectionEnabled(bool) { - if (bool !== void 0) { - this._private.boxSelectionEnabled = bool ? true : false; - } else { - return this._private.boxSelectionEnabled; - } - return this; - }, - pan: function pan() { - var args = arguments; - var pan2 = this._private.pan; - var dim, val, dims, x, y; - switch (args.length) { - case 0: - return pan2; - case 1: - if (string(args[0])) { - dim = args[0]; - return pan2[dim]; - } else if (plainObject(args[0])) { - if (!this._private.panningEnabled) { - return this; - } - dims = args[0]; - x = dims.x; - y = dims.y; - if (number$1(x)) { - pan2.x = x; - } - if (number$1(y)) { - pan2.y = y; - } - this.emit("pan viewport"); - } - break; - case 2: - if (!this._private.panningEnabled) { - return this; - } - dim = args[0]; - val = args[1]; - if ((dim === "x" || dim === "y") && number$1(val)) { - pan2[dim] = val; - } - this.emit("pan viewport"); - break; - } - this.notify("viewport"); - return this; - }, - panBy: function panBy(arg0, arg1) { - var args = arguments; - var pan = this._private.pan; - var dim, val, dims, x, y; - if (!this._private.panningEnabled) { - return this; - } - switch (args.length) { - case 1: - if (plainObject(arg0)) { - dims = args[0]; - x = dims.x; - y = dims.y; - if (number$1(x)) { - pan.x += x; - } - if (number$1(y)) { - pan.y += y; - } - this.emit("pan viewport"); - } - break; - case 2: - dim = arg0; - val = arg1; - if ((dim === "x" || dim === "y") && number$1(val)) { - pan[dim] += val; - } - this.emit("pan viewport"); - break; - } - this.notify("viewport"); - return this; - }, - fit: function fit(elements2, padding) { - var viewportState = this.getFitViewport(elements2, padding); - if (viewportState) { - var _p = this._private; - _p.zoom = viewportState.zoom; - _p.pan = viewportState.pan; - this.emit("pan zoom viewport"); - this.notify("viewport"); - } - return this; - }, - getFitViewport: function getFitViewport(elements2, padding) { - if (number$1(elements2) && padding === void 0) { - padding = elements2; - elements2 = void 0; - } - if (!this._private.panningEnabled || !this._private.zoomingEnabled) { - return; - } - var bb; - if (string(elements2)) { - var sel = elements2; - elements2 = this.$(sel); - } else if (boundingBox(elements2)) { - var bbe = elements2; - bb = { - x1: bbe.x1, - y1: bbe.y1, - x2: bbe.x2, - y2: bbe.y2 - }; - bb.w = bb.x2 - bb.x1; - bb.h = bb.y2 - bb.y1; - } else if (!elementOrCollection(elements2)) { - elements2 = this.mutableElements(); - } - if (elementOrCollection(elements2) && elements2.empty()) { - return; - } - bb = bb || elements2.boundingBox(); - var w = this.width(); - var h = this.height(); - var zoom; - padding = number$1(padding) ? padding : 0; - if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) { - zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h); - zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom; - zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom; - var pan = { - // now pan to middle - x: (w - zoom * (bb.x1 + bb.x2)) / 2, - y: (h - zoom * (bb.y1 + bb.y2)) / 2 - }; - return { - zoom, - pan - }; - } - return; - }, - zoomRange: function zoomRange(min2, max2) { - var _p = this._private; - if (max2 == null) { - var opts = min2; - min2 = opts.min; - max2 = opts.max; - } - if (number$1(min2) && number$1(max2) && min2 <= max2) { - _p.minZoom = min2; - _p.maxZoom = max2; - } else if (number$1(min2) && max2 === void 0 && min2 <= _p.maxZoom) { - _p.minZoom = min2; - } else if (number$1(max2) && min2 === void 0 && max2 >= _p.minZoom) { - _p.maxZoom = max2; - } - return this; - }, - minZoom: function minZoom(zoom) { - if (zoom === void 0) { - return this._private.minZoom; - } else { - return this.zoomRange({ - min: zoom - }); - } - }, - maxZoom: function maxZoom2(zoom) { - if (zoom === void 0) { - return this._private.maxZoom; - } else { - return this.zoomRange({ - max: zoom - }); - } - }, - getZoomedViewport: function getZoomedViewport(params) { - var _p = this._private; - var currentPan = _p.pan; - var currentZoom = _p.zoom; - var pos; - var zoom; - var bail = false; - if (!_p.zoomingEnabled) { - bail = true; - } - if (number$1(params)) { - zoom = params; - } else if (plainObject(params)) { - zoom = params.level; - if (params.position != null) { - pos = modelToRenderedPosition(params.position, currentZoom, currentPan); - } else if (params.renderedPosition != null) { - pos = params.renderedPosition; - } - if (pos != null && !_p.panningEnabled) { - bail = true; - } - } - zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom; - zoom = zoom < _p.minZoom ? _p.minZoom : zoom; - if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) { - return null; - } - if (pos != null) { - var pan1 = currentPan; - var zoom1 = currentZoom; - var zoom2 = zoom; - var pan2 = { - x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x, - y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y - }; - return { - zoomed: true, - panned: true, - zoom: zoom2, - pan: pan2 - }; - } else { - return { - zoomed: true, - panned: false, - zoom, - pan: currentPan - }; - } - }, - zoom: function zoom(params) { - if (params === void 0) { - return this._private.zoom; - } else { - var vp = this.getZoomedViewport(params); - var _p = this._private; - if (vp == null || !vp.zoomed) { - return this; - } - _p.zoom = vp.zoom; - if (vp.panned) { - _p.pan.x = vp.pan.x; - _p.pan.y = vp.pan.y; - } - this.emit("zoom" + (vp.panned ? " pan" : "") + " viewport"); - this.notify("viewport"); - return this; - } - }, - viewport: function viewport(opts) { - var _p = this._private; - var zoomDefd = true; - var panDefd = true; - var events = []; - var zoomFailed = false; - var panFailed = false; - if (!opts) { - return this; - } - if (!number$1(opts.zoom)) { - zoomDefd = false; - } - if (!plainObject(opts.pan)) { - panDefd = false; - } - if (!zoomDefd && !panDefd) { - return this; - } - if (zoomDefd) { - var z = opts.zoom; - if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) { - zoomFailed = true; - } else { - _p.zoom = z; - events.push("zoom"); - } - } - if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) { - var p2 = opts.pan; - if (number$1(p2.x)) { - _p.pan.x = p2.x; - panFailed = false; - } - if (number$1(p2.y)) { - _p.pan.y = p2.y; - panFailed = false; - } - if (!panFailed) { - events.push("pan"); - } - } - if (events.length > 0) { - events.push("viewport"); - this.emit(events.join(" ")); - this.notify("viewport"); - } - return this; - }, - center: function center(elements2) { - var pan = this.getCenterPan(elements2); - if (pan) { - this._private.pan = pan; - this.emit("pan viewport"); - this.notify("viewport"); - } - return this; - }, - getCenterPan: function getCenterPan(elements2, zoom) { - if (!this._private.panningEnabled) { - return; - } - if (string(elements2)) { - var selector = elements2; - elements2 = this.mutableElements().filter(selector); - } else if (!elementOrCollection(elements2)) { - elements2 = this.mutableElements(); - } - if (elements2.length === 0) { - return; - } - var bb = elements2.boundingBox(); - var w = this.width(); - var h = this.height(); - zoom = zoom === void 0 ? this._private.zoom : zoom; - var pan = { - // middle - x: (w - zoom * (bb.x1 + bb.x2)) / 2, - y: (h - zoom * (bb.y1 + bb.y2)) / 2 - }; - return pan; - }, - reset: function reset() { - if (!this._private.panningEnabled || !this._private.zoomingEnabled) { - return this; - } - this.viewport({ - pan: { - x: 0, - y: 0 - }, - zoom: 1 - }); - return this; - }, - invalidateSize: function invalidateSize() { - this._private.sizeCache = null; - }, - size: function size() { - var _p = this._private; - var container = _p.container; - var cy = this; - return _p.sizeCache = _p.sizeCache || (container ? function() { - var style = cy.window().getComputedStyle(container); - var val = function val2(name2) { - return parseFloat(style.getPropertyValue(name2)); - }; - return { - width: container.clientWidth - val("padding-left") - val("padding-right"), - height: container.clientHeight - val("padding-top") - val("padding-bottom") - }; - }() : { - // fallback if no container (not 0 b/c can be used for dividing etc) - width: 1, - height: 1 - }); - }, - width: function width() { - return this.size().width; - }, - height: function height() { - return this.size().height; - }, - extent: function extent() { - var pan = this._private.pan; - var zoom = this._private.zoom; - var rb = this.renderedExtent(); - var b = { - x1: (rb.x1 - pan.x) / zoom, - x2: (rb.x2 - pan.x) / zoom, - y1: (rb.y1 - pan.y) / zoom, - y2: (rb.y2 - pan.y) / zoom - }; - b.w = b.x2 - b.x1; - b.h = b.y2 - b.y1; - return b; - }, - renderedExtent: function renderedExtent() { - var width = this.width(); - var height = this.height(); - return { - x1: 0, - y1: 0, - x2: width, - y2: height, - w: width, - h: height - }; - }, - multiClickDebounceTime: function multiClickDebounceTime(_int) { - if (_int) - this._private.multiClickDebounceTime = _int; - else - return this._private.multiClickDebounceTime; - return this; - } - }; - corefn$1.centre = corefn$1.center; - corefn$1.autolockNodes = corefn$1.autolock; - corefn$1.autoungrabifyNodes = corefn$1.autoungrabify; - var fn = { - data: define2.data({ - field: "data", - bindingEvent: "data", - allowBinding: true, - allowSetting: true, - settingEvent: "data", - settingTriggersEvent: true, - triggerFnName: "trigger", - allowGetting: true, - updateStyle: true - }), - removeData: define2.removeData({ - field: "data", - event: "data", - triggerFnName: "trigger", - triggerEvent: true, - updateStyle: true - }), - scratch: define2.data({ - field: "scratch", - bindingEvent: "scratch", - allowBinding: true, - allowSetting: true, - settingEvent: "scratch", - settingTriggersEvent: true, - triggerFnName: "trigger", - allowGetting: true, - updateStyle: true - }), - removeScratch: define2.removeData({ - field: "scratch", - event: "scratch", - triggerFnName: "trigger", - triggerEvent: true, - updateStyle: true - }) - }; - fn.attr = fn.data; - fn.removeAttr = fn.removeData; - var Core = function Core2(opts) { - var cy = this; - opts = extend({}, opts); - var container = opts.container; - if (container && !htmlElement(container) && htmlElement(container[0])) { - container = container[0]; - } - var reg = container ? container._cyreg : null; - reg = reg || {}; - if (reg && reg.cy) { - reg.cy.destroy(); - reg = {}; - } - var readies = reg.readies = reg.readies || []; - if (container) { - container._cyreg = reg; - } - reg.cy = cy; - var head = _window !== void 0 && container !== void 0 && !opts.headless; - var options = opts; - options.layout = extend({ - name: head ? "grid" : "null" - }, options.layout); - options.renderer = extend({ - name: head ? "canvas" : "null" - }, options.renderer); - var defVal = function defVal2(def, val, altVal) { - if (val !== void 0) { - return val; - } else if (altVal !== void 0) { - return altVal; - } else { - return def; - } - }; - var _p = this._private = { - container, - // html dom ele container - ready: false, - // whether ready has been triggered - options, - // cached options - elements: new Collection(this), - // elements in the graph - listeners: [], - // list of listeners - aniEles: new Collection(this), - // elements being animated - data: options.data || {}, - // data for the core - scratch: {}, - // scratch object for core - layout: null, - renderer: null, - destroyed: false, - // whether destroy was called - notificationsEnabled: true, - // whether notifications are sent to the renderer - minZoom: 1e-50, - maxZoom: 1e50, - zoomingEnabled: defVal(true, options.zoomingEnabled), - userZoomingEnabled: defVal(true, options.userZoomingEnabled), - panningEnabled: defVal(true, options.panningEnabled), - userPanningEnabled: defVal(true, options.userPanningEnabled), - boxSelectionEnabled: defVal(true, options.boxSelectionEnabled), - autolock: defVal(false, options.autolock, options.autolockNodes), - autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes), - autounselectify: defVal(false, options.autounselectify), - styleEnabled: options.styleEnabled === void 0 ? head : options.styleEnabled, - zoom: number$1(options.zoom) ? options.zoom : 1, - pan: { - x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0, - y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0 - }, - animation: { - // object for currently-running animations - current: [], - queue: [] - }, - hasCompoundNodes: false, - multiClickDebounceTime: defVal(250, options.multiClickDebounceTime) - }; - this.createEmitter(); - this.selectionType(options.selectionType); - this.zoomRange({ - min: options.minZoom, - max: options.maxZoom - }); - var loadExtData = function loadExtData2(extData, next2) { - var anyIsPromise = extData.some(promise); - if (anyIsPromise) { - return Promise$1.all(extData).then(next2); - } else { - next2(extData); - } - }; - if (_p.styleEnabled) { - cy.setStyle([]); - } - var rendererOptions = extend({}, options, options.renderer); - cy.initRenderer(rendererOptions); - var setElesAndLayout = function setElesAndLayout2(elements2, onload, ondone) { - cy.notifications(false); - var oldEles = cy.mutableElements(); - if (oldEles.length > 0) { - oldEles.remove(); - } - if (elements2 != null) { - if (plainObject(elements2) || array(elements2)) { - cy.add(elements2); - } - } - cy.one("layoutready", function(e) { - cy.notifications(true); - cy.emit(e); - cy.one("load", onload); - cy.emitAndNotify("load"); - }).one("layoutstop", function() { - cy.one("done", ondone); - cy.emit("done"); - }); - var layoutOpts = extend({}, cy._private.options.layout); - layoutOpts.eles = cy.elements(); - cy.layout(layoutOpts).run(); - }; - loadExtData([options.style, options.elements], function(thens) { - var initStyle = thens[0]; - var initEles = thens[1]; - if (_p.styleEnabled) { - cy.style().append(initStyle); - } - setElesAndLayout(initEles, function() { - cy.startAnimationLoop(); - _p.ready = true; - if (fn$6(options.ready)) { - cy.on("ready", options.ready); - } - for (var i2 = 0; i2 < readies.length; i2++) { - var fn2 = readies[i2]; - cy.on("ready", fn2); - } - if (reg) { - reg.readies = []; - } - cy.emit("ready"); - }, options.done); - }); - }; - var corefn = Core.prototype; - extend(corefn, { - instanceString: function instanceString() { - return "core"; - }, - isReady: function isReady() { - return this._private.ready; - }, - destroyed: function destroyed() { - return this._private.destroyed; - }, - ready: function ready(fn2) { - if (this.isReady()) { - this.emitter().emit("ready", [], fn2); - } else { - this.on("ready", fn2); - } - return this; - }, - destroy: function destroy() { - var cy = this; - if (cy.destroyed()) - return; - cy.stopAnimationLoop(); - cy.destroyRenderer(); - this.emit("destroy"); - cy._private.destroyed = true; - return cy; - }, - hasElementWithId: function hasElementWithId(id) { - return this._private.elements.hasElementWithId(id); - }, - getElementById: function getElementById2(id) { - return this._private.elements.getElementById(id); - }, - hasCompoundNodes: function hasCompoundNodes() { - return this._private.hasCompoundNodes; - }, - headless: function headless() { - return this._private.renderer.isHeadless(); - }, - styleEnabled: function styleEnabled() { - return this._private.styleEnabled; - }, - addToPool: function addToPool(eles) { - this._private.elements.merge(eles); - return this; - }, - removeFromPool: function removeFromPool(eles) { - this._private.elements.unmerge(eles); - return this; - }, - container: function container() { - return this._private.container || null; - }, - window: function window2() { - var container = this._private.container; - if (container == null) - return _window; - var ownerDocument = this._private.container.ownerDocument; - if (ownerDocument === void 0 || ownerDocument == null) { - return _window; - } - return ownerDocument.defaultView || _window; - }, - mount: function mount(container) { - if (container == null) { - return; - } - var cy = this; - var _p = cy._private; - var options = _p.options; - if (!htmlElement(container) && htmlElement(container[0])) { - container = container[0]; - } - cy.stopAnimationLoop(); - cy.destroyRenderer(); - _p.container = container; - _p.styleEnabled = true; - cy.invalidateSize(); - cy.initRenderer(extend({}, options, options.renderer, { - // allow custom renderer name to be re-used, otherwise use canvas - name: options.renderer.name === "null" ? "canvas" : options.renderer.name - })); - cy.startAnimationLoop(); - cy.style(options.style); - cy.emit("mount"); - return cy; - }, - unmount: function unmount() { - var cy = this; - cy.stopAnimationLoop(); - cy.destroyRenderer(); - cy.initRenderer({ - name: "null" - }); - cy.emit("unmount"); - return cy; - }, - options: function options() { - return copy(this._private.options); - }, - json: function json(obj) { - var cy = this; - var _p = cy._private; - var eles = cy.mutableElements(); - var getFreshRef = function getFreshRef2(ele) { - return cy.getElementById(ele.id()); - }; - if (plainObject(obj)) { - cy.startBatch(); - if (obj.elements) { - var idInJson = {}; - var updateEles = function updateEles2(jsons, gr2) { - var toAdd = []; - var toMod = []; - for (var i3 = 0; i3 < jsons.length; i3++) { - var json3 = jsons[i3]; - if (!json3.data.id) { - warn("cy.json() cannot handle elements without an ID attribute"); - continue; - } - var id = "" + json3.data.id; - var ele = cy.getElementById(id); - idInJson[id] = true; - if (ele.length !== 0) { - toMod.push({ - ele, - json: json3 - }); - } else { - if (gr2) { - json3.group = gr2; - toAdd.push(json3); - } else { - toAdd.push(json3); - } - } - } - cy.add(toAdd); - for (var _i = 0; _i < toMod.length; _i++) { - var _toMod$_i = toMod[_i], _ele = _toMod$_i.ele, _json = _toMod$_i.json; - _ele.json(_json); - } - }; - if (array(obj.elements)) { - updateEles(obj.elements); - } else { - var grs = ["nodes", "edges"]; - for (var i2 = 0; i2 < grs.length; i2++) { - var gr = grs[i2]; - var elements2 = obj.elements[gr]; - if (array(elements2)) { - updateEles(elements2, gr); - } - } - } - var parentsToRemove = cy.collection(); - eles.filter(function(ele) { - return !idInJson[ele.id()]; - }).forEach(function(ele) { - if (ele.isParent()) { - parentsToRemove.merge(ele); - } else { - ele.remove(); - } - }); - parentsToRemove.forEach(function(ele) { - return ele.children().move({ - parent: null - }); - }); - parentsToRemove.forEach(function(ele) { - return getFreshRef(ele).remove(); - }); - } - if (obj.style) { - cy.style(obj.style); - } - if (obj.zoom != null && obj.zoom !== _p.zoom) { - cy.zoom(obj.zoom); - } - if (obj.pan) { - if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) { - cy.pan(obj.pan); - } - } - if (obj.data) { - cy.data(obj.data); - } - var fields = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"]; - for (var _i2 = 0; _i2 < fields.length; _i2++) { - var f = fields[_i2]; - if (obj[f] != null) { - cy[f](obj[f]); - } - } - cy.endBatch(); - return this; - } else { - var flat = !!obj; - var json2 = {}; - if (flat) { - json2.elements = this.elements().map(function(ele) { - return ele.json(); - }); - } else { - json2.elements = {}; - eles.forEach(function(ele) { - var group = ele.group(); - if (!json2.elements[group]) { - json2.elements[group] = []; - } - json2.elements[group].push(ele.json()); - }); - } - if (this._private.styleEnabled) { - json2.style = cy.style().json(); - } - json2.data = copy(cy.data()); - var options = _p.options; - json2.zoomingEnabled = _p.zoomingEnabled; - json2.userZoomingEnabled = _p.userZoomingEnabled; - json2.zoom = _p.zoom; - json2.minZoom = _p.minZoom; - json2.maxZoom = _p.maxZoom; - json2.panningEnabled = _p.panningEnabled; - json2.userPanningEnabled = _p.userPanningEnabled; - json2.pan = copy(_p.pan); - json2.boxSelectionEnabled = _p.boxSelectionEnabled; - json2.renderer = copy(options.renderer); - json2.hideEdgesOnViewport = options.hideEdgesOnViewport; - json2.textureOnViewport = options.textureOnViewport; - json2.wheelSensitivity = options.wheelSensitivity; - json2.motionBlur = options.motionBlur; - json2.multiClickDebounceTime = options.multiClickDebounceTime; - return json2; - } - } - }); - corefn.$id = corefn.getElementById; - [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function(props) { - extend(corefn, props); - }); - var defaults$7 = { - fit: true, - // whether to fit the viewport to the graph - directed: false, - // whether the tree is directed downwards (or edges can point in any direction if false) - padding: 30, - // padding on fit - circle: false, - // put depths in concentric circles if true, put depths top down if false - grid: false, - // whether to create an even grid into which the DAG is placed (circle:false only) - spacingFactor: 1.75, - // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap) - boundingBox: void 0, - // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, - // prevents node overlap, may overflow boundingBox if not enough space - nodeDimensionsIncludeLabels: false, - // Excludes the label when calculating node bounding boxes for the layout algorithm - roots: void 0, - // the roots of the trees - depthSort: void 0, - // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') } - animate: false, - // whether to transition the node positions - animationDuration: 500, - // duration of animation in ms if enabled - animationEasing: void 0, - // easing of animation if enabled, - animateFilter: function animateFilter(node, i2) { - return true; - }, - // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: void 0, - // callback on layoutready - stop: void 0, - // callback on layoutstop - transform: function transform(node, position2) { - return position2; - } - // transform a given node position. Useful for changing flow direction in discrete layouts - }; - var deprecatedOptionDefaults = { - maximal: false, - // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also - acyclic: false - // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops - }; - var getInfo = function getInfo2(ele) { - return ele.scratch("breadthfirst"); - }; - var setInfo = function setInfo2(ele, obj) { - return ele.scratch("breadthfirst", obj); - }; - function BreadthFirstLayout(options) { - this.options = extend({}, defaults$7, deprecatedOptionDefaults, options); - } - BreadthFirstLayout.prototype.run = function() { - var params = this.options; - var options = params; - var cy = params.cy; - var eles = options.eles; - var nodes2 = eles.nodes().filter(function(n2) { - return !n2.isParent(); - }); - var graph = eles; - var directed = options.directed; - var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; - var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, - y1: 0, - w: cy.width(), - h: cy.height() - }); - var roots; - if (elementOrCollection(options.roots)) { - roots = options.roots; - } else if (array(options.roots)) { - var rootsArray = []; - for (var i2 = 0; i2 < options.roots.length; i2++) { - var id = options.roots[i2]; - var ele = cy.getElementById(id); - rootsArray.push(ele); - } - roots = cy.collection(rootsArray); - } else if (string(options.roots)) { - roots = cy.$(options.roots); - } else { - if (directed) { - roots = nodes2.roots(); - } else { - var components = eles.components(); - roots = cy.collection(); - var _loop = function _loop2(_i3) { - var comp = components[_i3]; - var maxDegree = comp.maxDegree(false); - var compRoots = comp.filter(function(ele2) { - return ele2.degree(false) === maxDegree; - }); - roots = roots.add(compRoots); - }; - for (var _i = 0; _i < components.length; _i++) { - _loop(_i); - } - } - } - var depths = []; - var foundByBfs = {}; - var addToDepth = function addToDepth2(ele2, d) { - if (depths[d] == null) { - depths[d] = []; - } - var i3 = depths[d].length; - depths[d].push(ele2); - setInfo(ele2, { - index: i3, - depth: d - }); - }; - var changeDepth = function changeDepth2(ele2, newDepth) { - var _getInfo = getInfo(ele2), depth = _getInfo.depth, index = _getInfo.index; - depths[depth][index] = null; - addToDepth(ele2, newDepth); - }; - graph.bfs({ - roots, - directed: options.directed, - visit: function visit(node, edge, pNode, i3, depth) { - var ele2 = node[0]; - var id2 = ele2.id(); - addToDepth(ele2, depth); - foundByBfs[id2] = true; - } - }); - var orphanNodes = []; - for (var _i2 = 0; _i2 < nodes2.length; _i2++) { - var _ele = nodes2[_i2]; - if (foundByBfs[_ele.id()]) { - continue; - } else { - orphanNodes.push(_ele); - } - } - var assignDepthsAt = function assignDepthsAt2(i3) { - var eles2 = depths[i3]; - for (var j = 0; j < eles2.length; j++) { - var _ele2 = eles2[j]; - if (_ele2 == null) { - eles2.splice(j, 1); - j--; - continue; - } - setInfo(_ele2, { - depth: i3, - index: j - }); - } - }; - var assignDepths = function assignDepths2() { - for (var _i3 = 0; _i3 < depths.length; _i3++) { - assignDepthsAt(_i3); - } - }; - var adjustMaximally = function adjustMaximally2(ele2, shifted2) { - var eInfo = getInfo(ele2); - var incomers = ele2.incomers().filter(function(el) { - return el.isNode() && eles.has(el); - }); - var maxDepth = -1; - var id2 = ele2.id(); - for (var k = 0; k < incomers.length; k++) { - var incmr = incomers[k]; - var iInfo = getInfo(incmr); - maxDepth = Math.max(maxDepth, iInfo.depth); - } - if (eInfo.depth <= maxDepth) { - if (!options.acyclic && shifted2[id2]) { - return null; - } - var newDepth = maxDepth + 1; - changeDepth(ele2, newDepth); - shifted2[id2] = newDepth; - return true; - } - return false; - }; - if (directed && maximal) { - var Q = []; - var shifted = {}; - var enqueue = function enqueue2(n2) { - return Q.push(n2); - }; - var dequeue = function dequeue2() { - return Q.shift(); - }; - nodes2.forEach(function(n2) { - return Q.push(n2); - }); - while (Q.length > 0) { - var _ele3 = dequeue(); - var didShift = adjustMaximally(_ele3, shifted); - if (didShift) { - _ele3.outgoers().filter(function(el) { - return el.isNode() && eles.has(el); - }).forEach(enqueue); - } else if (didShift === null) { - warn("Detected double maximal shift for node `" + _ele3.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs."); - break; - } - } - } - assignDepths(); - var minDistance = 0; - if (options.avoidOverlap) { - for (var _i4 = 0; _i4 < nodes2.length; _i4++) { - var n = nodes2[_i4]; - var nbb = n.layoutDimensions(options); - var w = nbb.w; - var h = nbb.h; - minDistance = Math.max(minDistance, w, h); - } - } - var cachedWeightedPercent = {}; - var getWeightedPercent = function getWeightedPercent2(ele2) { - if (cachedWeightedPercent[ele2.id()]) { - return cachedWeightedPercent[ele2.id()]; - } - var eleDepth = getInfo(ele2).depth; - var neighbors = ele2.neighborhood(); - var percent = 0; - var samples = 0; - for (var _i5 = 0; _i5 < neighbors.length; _i5++) { - var neighbor = neighbors[_i5]; - if (neighbor.isEdge() || neighbor.isParent() || !nodes2.has(neighbor)) { - continue; - } - var bf = getInfo(neighbor); - if (bf == null) { - continue; - } - var index = bf.index; - var depth = bf.depth; - if (index == null || depth == null) { - continue; - } - var nDepth = depths[depth].length; - if (depth < eleDepth) { - percent += index / nDepth; - samples++; - } - } - samples = Math.max(1, samples); - percent = percent / samples; - if (samples === 0) { - percent = 0; - } - cachedWeightedPercent[ele2.id()] = percent; - return percent; - }; - var sortFn = function sortFn2(a, b) { - var apct = getWeightedPercent(a); - var bpct = getWeightedPercent(b); - var diff = apct - bpct; - if (diff === 0) { - return ascending(a.id(), b.id()); - } else { - return diff; - } - }; - if (options.depthSort !== void 0) { - sortFn = options.depthSort; - } - for (var _i6 = 0; _i6 < depths.length; _i6++) { - depths[_i6].sort(sortFn); - assignDepthsAt(_i6); - } - var orphanDepth = []; - for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) { - orphanDepth.push(orphanNodes[_i7]); - } - depths.unshift(orphanDepth); - assignDepths(); - var biggestDepthSize = 0; - for (var _i8 = 0; _i8 < depths.length; _i8++) { - biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize); - } - var center = { - x: bb.x1 + bb.w / 2, - y: bb.x1 + bb.h / 2 - }; - var maxDepthSize = depths.reduce(function(max2, eles2) { - return Math.max(max2, eles2.length); - }, 0); - var getPosition = function getPosition2(ele2) { - var _getInfo2 = getInfo(ele2), depth = _getInfo2.depth, index = _getInfo2.index; - var depthSize = depths[depth].length; - var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance); - var distanceY = Math.max(bb.h / (depths.length + 1), minDistance); - var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length); - radiusStepSize = Math.max(radiusStepSize, minDistance); - if (!options.circle) { - var epos = { - x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX, - y: (depth + 1) * distanceY - }; - return epos; - } else { - var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0); - var theta = 2 * Math.PI / depths[depth].length * index; - if (depth === 0 && depths[0].length === 1) { - radius = 1; - } - return { - x: center.x + radius * Math.cos(theta), - y: center.y + radius * Math.sin(theta) - }; - } - }; - eles.nodes().layoutPositions(this, options, getPosition); - return this; - }; - var defaults$6 = { - fit: true, - // whether to fit the viewport to the graph - padding: 30, - // the padding on fit - boundingBox: void 0, - // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, - // prevents node overlap, may overflow boundingBox and radius if not enough space - nodeDimensionsIncludeLabels: false, - // Excludes the label when calculating node bounding boxes for the layout algorithm - spacingFactor: void 0, - // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - radius: void 0, - // the radius of the circle - startAngle: 3 / 2 * Math.PI, - // where nodes start in radians - sweep: void 0, - // how many radians should be between the first and last node (defaults to full circle) - clockwise: true, - // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) - sort: void 0, - // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } - animate: false, - // whether to transition the node positions - animationDuration: 500, - // duration of animation in ms if enabled - animationEasing: void 0, - // easing of animation if enabled - animateFilter: function animateFilter(node, i2) { - return true; - }, - // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: void 0, - // callback on layoutready - stop: void 0, - // callback on layoutstop - transform: function transform(node, position2) { - return position2; - } - // transform a given node position. Useful for changing flow direction in discrete layouts - }; - function CircleLayout(options) { - this.options = extend({}, defaults$6, options); - } - CircleLayout.prototype.run = function() { - var params = this.options; - var options = params; - var cy = params.cy; - var eles = options.eles; - var clockwise = options.counterclockwise !== void 0 ? !options.counterclockwise : options.clockwise; - var nodes2 = eles.nodes().not(":parent"); - if (options.sort) { - nodes2 = nodes2.sort(options.sort); - } - var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, - y1: 0, - w: cy.width(), - h: cy.height() - }); - var center = { - x: bb.x1 + bb.w / 2, - y: bb.y1 + bb.h / 2 - }; - var sweep = options.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / nodes2.length : options.sweep; - var dTheta = sweep / Math.max(1, nodes2.length - 1); - var r; - var minDistance = 0; - for (var i2 = 0; i2 < nodes2.length; i2++) { - var n = nodes2[i2]; - var nbb = n.layoutDimensions(options); - var w = nbb.w; - var h = nbb.h; - minDistance = Math.max(minDistance, w, h); - } - if (number$1(options.radius)) { - r = options.radius; - } else if (nodes2.length <= 1) { - r = 0; - } else { - r = Math.min(bb.h, bb.w) / 2 - minDistance; - } - if (nodes2.length > 1 && options.avoidOverlap) { - minDistance *= 1.75; - var dcos = Math.cos(dTheta) - Math.cos(0); - var dsin = Math.sin(dTheta) - Math.sin(0); - var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); - r = Math.max(rMin, r); - } - var getPos = function getPos2(ele, i3) { - var theta = options.startAngle + i3 * dTheta * (clockwise ? 1 : -1); - var rx = r * Math.cos(theta); - var ry = r * Math.sin(theta); - var pos = { - x: center.x + rx, - y: center.y + ry - }; - return pos; - }; - eles.nodes().layoutPositions(this, options, getPos); - return this; - }; - var defaults$5 = { - fit: true, - // whether to fit the viewport to the graph - padding: 30, - // the padding on fit - startAngle: 3 / 2 * Math.PI, - // where nodes start in radians - sweep: void 0, - // how many radians should be between the first and last node (defaults to full circle) - clockwise: true, - // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) - equidistant: false, - // whether levels have an equal radial distance betwen them, may cause bounding box overflow - minNodeSpacing: 10, - // min spacing between outside of nodes (used for radius adjustment) - boundingBox: void 0, - // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, - // prevents node overlap, may overflow boundingBox if not enough space - nodeDimensionsIncludeLabels: false, - // Excludes the label when calculating node bounding boxes for the layout algorithm - height: void 0, - // height of layout area (overrides container height) - width: void 0, - // width of layout area (overrides container width) - spacingFactor: void 0, - // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - concentric: function concentric(node) { - return node.degree(); - }, - levelWidth: function levelWidth(nodes2) { - return nodes2.maxDegree() / 4; - }, - animate: false, - // whether to transition the node positions - animationDuration: 500, - // duration of animation in ms if enabled - animationEasing: void 0, - // easing of animation if enabled - animateFilter: function animateFilter(node, i2) { - return true; - }, - // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: void 0, - // callback on layoutready - stop: void 0, - // callback on layoutstop - transform: function transform(node, position2) { - return position2; - } - // transform a given node position. Useful for changing flow direction in discrete layouts - }; - function ConcentricLayout(options) { - this.options = extend({}, defaults$5, options); - } - ConcentricLayout.prototype.run = function() { - var params = this.options; - var options = params; - var clockwise = options.counterclockwise !== void 0 ? !options.counterclockwise : options.clockwise; - var cy = params.cy; - var eles = options.eles; - var nodes2 = eles.nodes().not(":parent"); - var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, - y1: 0, - w: cy.width(), - h: cy.height() - }); - var center = { - x: bb.x1 + bb.w / 2, - y: bb.y1 + bb.h / 2 - }; - var nodeValues = []; - var maxNodeSize = 0; - for (var i2 = 0; i2 < nodes2.length; i2++) { - var node = nodes2[i2]; - var value = void 0; - value = options.concentric(node); - nodeValues.push({ - value, - node - }); - node._private.scratch.concentric = value; - } - nodes2.updateStyle(); - for (var _i = 0; _i < nodes2.length; _i++) { - var _node = nodes2[_i]; - var nbb = _node.layoutDimensions(options); - maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h); - } - nodeValues.sort(function(a, b) { - return b.value - a.value; - }); - var levelWidth = options.levelWidth(nodes2); - var levels = [[]]; - var currentLevel = levels[0]; - for (var _i2 = 0; _i2 < nodeValues.length; _i2++) { - var val = nodeValues[_i2]; - if (currentLevel.length > 0) { - var diff = Math.abs(currentLevel[0].value - val.value); - if (diff >= levelWidth) { - currentLevel = []; - levels.push(currentLevel); - } - } - currentLevel.push(val); - } - var minDist = maxNodeSize + options.minNodeSpacing; - if (!options.avoidOverlap) { - var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1; - var maxR = Math.min(bb.w, bb.h) / 2 - minDist; - var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0); - minDist = Math.min(minDist, rStep); - } - var r = 0; - for (var _i3 = 0; _i3 < levels.length; _i3++) { - var level = levels[_i3]; - var sweep = options.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep; - var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1); - if (level.length > 1 && options.avoidOverlap) { - var dcos = Math.cos(dTheta) - Math.cos(0); - var dsin = Math.sin(dTheta) - Math.sin(0); - var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); - r = Math.max(rMin, r); - } - level.r = r; - r += minDist; - } - if (options.equidistant) { - var rDeltaMax = 0; - var _r = 0; - for (var _i4 = 0; _i4 < levels.length; _i4++) { - var _level = levels[_i4]; - var rDelta = _level.r - _r; - rDeltaMax = Math.max(rDeltaMax, rDelta); - } - _r = 0; - for (var _i5 = 0; _i5 < levels.length; _i5++) { - var _level2 = levels[_i5]; - if (_i5 === 0) { - _r = _level2.r; - } - _level2.r = _r; - _r += rDeltaMax; - } - } - var pos = {}; - for (var _i6 = 0; _i6 < levels.length; _i6++) { - var _level3 = levels[_i6]; - var _dTheta = _level3.dTheta; - var _r2 = _level3.r; - for (var j = 0; j < _level3.length; j++) { - var _val = _level3[j]; - var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j; - var p2 = { - x: center.x + _r2 * Math.cos(theta), - y: center.y + _r2 * Math.sin(theta) - }; - pos[_val.node.id()] = p2; - } - } - eles.nodes().layoutPositions(this, options, function(ele) { - var id = ele.id(); - return pos[id]; - }); - return this; - }; - var DEBUG; - var defaults$4 = { - // Called on `layoutready` - ready: function ready() { - }, - // Called on `layoutstop` - stop: function stop() { - }, - // Whether to animate while running the layout - // true : Animate continuously as the layout is running - // false : Just show the end result - // 'end' : Animate with the end result, from the initial positions to the end positions - animate: true, - // Easing of the animation for animate:'end' - animationEasing: void 0, - // The duration of the animation for animate:'end' - animationDuration: void 0, - // A function that determines whether the node should be animated - // All nodes animated by default on animate enabled - // Non-animated nodes are positioned immediately when the layout starts - animateFilter: function animateFilter(node, i2) { - return true; - }, - // The layout animates only after this many milliseconds for animate:true - // (prevents flashing on fast runs) - animationThreshold: 250, - // Number of iterations between consecutive screen positions update - refresh: 20, - // Whether to fit the network view after when done - fit: true, - // Padding on fit - padding: 30, - // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - boundingBox: void 0, - // Excludes the label when calculating node bounding boxes for the layout algorithm - nodeDimensionsIncludeLabels: false, - // Randomize the initial positions of the nodes (true) or use existing positions (false) - randomize: false, - // Extra spacing between components in non-compound graphs - componentSpacing: 40, - // Node repulsion (non overlapping) multiplier - nodeRepulsion: function nodeRepulsion2(node) { - return 2048; - }, - // Node repulsion (overlapping) multiplier - nodeOverlap: 4, - // Ideal edge (non nested) length - idealEdgeLength: function idealEdgeLength(edge) { - return 32; - }, - // Divisor to compute edge forces - edgeElasticity: function edgeElasticity(edge) { - return 32; - }, - // Nesting factor (multiplier) to compute ideal edge length for nested edges - nestingFactor: 1.2, - // Gravity force (constant) - gravity: 1, - // Maximum number of iterations to perform - numIter: 1e3, - // Initial temperature (maximum node displacement) - initialTemp: 1e3, - // Cooling factor (how the temperature is reduced between consecutive iterations - coolingFactor: 0.99, - // Lower temperature threshold (below this point the layout will end) - minTemp: 1 - }; - function CoseLayout(options) { - this.options = extend({}, defaults$4, options); - this.options.layout = this; - var nodes2 = this.options.eles.nodes(); - var edges = this.options.eles.edges(); - var notEdges = edges.filter(function(e) { - var sourceId = e.source().data("id"); - var targetId = e.target().data("id"); - var hasSource = nodes2.some(function(n) { - return n.data("id") === sourceId; - }); - var hasTarget = nodes2.some(function(n) { - return n.data("id") === targetId; - }); - return !hasSource || !hasTarget; - }); - this.options.eles = this.options.eles.not(notEdges); - } - CoseLayout.prototype.run = function() { - var options = this.options; - var cy = options.cy; - var layout2 = this; - layout2.stopped = false; - if (options.animate === true || options.animate === false) { - layout2.emit({ - type: "layoutstart", - layout: layout2 - }); - } - if (true === options.debug) { - DEBUG = true; - } else { - DEBUG = false; - } - var layoutInfo = createLayoutInfo(cy, layout2, options); - if (DEBUG) { - printLayoutInfo(layoutInfo); - } - if (options.randomize) { - randomizePositions(layoutInfo); - } - var startTime = performanceNow(); - var refresh = function refresh2() { - refreshPositions(layoutInfo, cy, options); - if (true === options.fit) { - cy.fit(options.padding); - } - }; - var mainLoop = function mainLoop2(i3) { - if (layout2.stopped || i3 >= options.numIter) { - return false; - } - step(layoutInfo, options); - layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor; - if (layoutInfo.temperature < options.minTemp) { - return false; - } - return true; - }; - var done = function done2() { - if (options.animate === true || options.animate === false) { - refresh(); - layout2.one("layoutstop", options.stop); - layout2.emit({ - type: "layoutstop", - layout: layout2 - }); - } else { - var nodes2 = options.eles.nodes(); - var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes2); - nodes2.layoutPositions(layout2, options, getScaledPos); - } - }; - var i2 = 0; - var loopRet = true; - if (options.animate === true) { - var frame = function frame2() { - var f = 0; - while (loopRet && f < options.refresh) { - loopRet = mainLoop(i2); - i2++; - f++; - } - if (!loopRet) { - separateComponents(layoutInfo, options); - done(); - } else { - var now2 = performanceNow(); - if (now2 - startTime >= options.animationThreshold) { - refresh(); - } - requestAnimationFrame2(frame2); - } - }; - frame(); - } else { - while (loopRet) { - loopRet = mainLoop(i2); - i2++; - } - separateComponents(layoutInfo, options); - done(); - } - return this; - }; - CoseLayout.prototype.stop = function() { - this.stopped = true; - if (this.thread) { - this.thread.stop(); - } - this.emit("layoutstop"); - return this; - }; - CoseLayout.prototype.destroy = function() { - if (this.thread) { - this.thread.stop(); - } - return this; - }; - var createLayoutInfo = function createLayoutInfo2(cy, layout2, options) { - var edges = options.eles.edges(); - var nodes2 = options.eles.nodes(); - var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, - y1: 0, - w: cy.width(), - h: cy.height() - }); - var layoutInfo = { - isCompound: cy.hasCompoundNodes(), - layoutNodes: [], - idToIndex: {}, - nodeSize: nodes2.size(), - graphSet: [], - indexToGraph: [], - layoutEdges: [], - edgeSize: edges.size(), - temperature: options.initialTemp, - clientWidth: bb.w, - clientHeight: bb.h, - boundingBox: bb - }; - var components = options.eles.components(); - var id2cmptId = {}; - for (var i2 = 0; i2 < components.length; i2++) { - var component = components[i2]; - for (var j = 0; j < component.length; j++) { - var node = component[j]; - id2cmptId[node.id()] = i2; - } - } - for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { - var n = nodes2[i2]; - var nbb = n.layoutDimensions(options); - var tempNode = {}; - tempNode.isLocked = n.locked(); - tempNode.id = n.data("id"); - tempNode.parentId = n.data("parent"); - tempNode.cmptId = id2cmptId[n.id()]; - tempNode.children = []; - tempNode.positionX = n.position("x"); - tempNode.positionY = n.position("y"); - tempNode.offsetX = 0; - tempNode.offsetY = 0; - tempNode.height = nbb.w; - tempNode.width = nbb.h; - tempNode.maxX = tempNode.positionX + tempNode.width / 2; - tempNode.minX = tempNode.positionX - tempNode.width / 2; - tempNode.maxY = tempNode.positionY + tempNode.height / 2; - tempNode.minY = tempNode.positionY - tempNode.height / 2; - tempNode.padLeft = parseFloat(n.style("padding")); - tempNode.padRight = parseFloat(n.style("padding")); - tempNode.padTop = parseFloat(n.style("padding")); - tempNode.padBottom = parseFloat(n.style("padding")); - tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion; - layoutInfo.layoutNodes.push(tempNode); - layoutInfo.idToIndex[tempNode.id] = i2; - } - var queue = []; - var start = 0; - var end = -1; - var tempGraph = []; - for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { - var n = layoutInfo.layoutNodes[i2]; - var p_id = n.parentId; - if (null != p_id) { - layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id); - } else { - queue[++end] = n.id; - tempGraph.push(n.id); - } - } - layoutInfo.graphSet.push(tempGraph); - while (start <= end) { - var node_id = queue[start++]; - var node_ix = layoutInfo.idToIndex[node_id]; - var node = layoutInfo.layoutNodes[node_ix]; - var children = node.children; - if (children.length > 0) { - layoutInfo.graphSet.push(children); - for (var i2 = 0; i2 < children.length; i2++) { - queue[++end] = children[i2]; - } - } - } - for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) { - var graph = layoutInfo.graphSet[i2]; - for (var j = 0; j < graph.length; j++) { - var index = layoutInfo.idToIndex[graph[j]]; - layoutInfo.indexToGraph[index] = i2; - } - } - for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) { - var e = edges[i2]; - var tempEdge = {}; - tempEdge.id = e.data("id"); - tempEdge.sourceId = e.data("source"); - tempEdge.targetId = e.data("target"); - var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength; - var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity; - var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId]; - var targetIx = layoutInfo.idToIndex[tempEdge.targetId]; - var sourceGraph = layoutInfo.indexToGraph[sourceIx]; - var targetGraph = layoutInfo.indexToGraph[targetIx]; - if (sourceGraph != targetGraph) { - var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo); - var lcaGraph = layoutInfo.graphSet[lca]; - var depth = 0; - var tempNode = layoutInfo.layoutNodes[sourceIx]; - while (-1 === lcaGraph.indexOf(tempNode.id)) { - tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; - depth++; - } - tempNode = layoutInfo.layoutNodes[targetIx]; - while (-1 === lcaGraph.indexOf(tempNode.id)) { - tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; - depth++; - } - idealLength *= depth * options.nestingFactor; - } - tempEdge.idealLength = idealLength; - tempEdge.elasticity = elasticity; - layoutInfo.layoutEdges.push(tempEdge); - } - return layoutInfo; - }; - var findLCA = function findLCA2(node1, node2, layoutInfo) { - var res = findLCA_aux(node1, node2, 0, layoutInfo); - if (2 > res.count) { - return 0; - } else { - return res.graph; - } - }; - var findLCA_aux = function findLCA_aux2(node1, node2, graphIx, layoutInfo) { - var graph = layoutInfo.graphSet[graphIx]; - if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) { - return { - count: 2, - graph: graphIx - }; - } - var c = 0; - for (var i2 = 0; i2 < graph.length; i2++) { - var nodeId = graph[i2]; - var nodeIx = layoutInfo.idToIndex[nodeId]; - var children = layoutInfo.layoutNodes[nodeIx].children; - if (0 === children.length) { - continue; - } - var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]]; - var result = findLCA_aux2(node1, node2, childGraphIx, layoutInfo); - if (0 === result.count) { - continue; - } else if (1 === result.count) { - c++; - if (2 === c) { - break; - } - } else { - return result; - } - } - return { - count: c, - graph: graphIx - }; - }; - var printLayoutInfo; - var randomizePositions = function randomizePositions2(layoutInfo, cy) { - var width = layoutInfo.clientWidth; - var height = layoutInfo.clientHeight; - for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { - var n = layoutInfo.layoutNodes[i2]; - if (0 === n.children.length && !n.isLocked) { - n.positionX = Math.random() * width; - n.positionY = Math.random() * height; - } - } - }; - var getScaleInBoundsFn = function getScaleInBoundsFn2(layoutInfo, options, nodes2) { - var bb = layoutInfo.boundingBox; - var coseBB = { - x1: Infinity, - x2: -Infinity, - y1: Infinity, - y2: -Infinity - }; - if (options.boundingBox) { - nodes2.forEach(function(node) { - var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data("id")]]; - coseBB.x1 = Math.min(coseBB.x1, lnode.positionX); - coseBB.x2 = Math.max(coseBB.x2, lnode.positionX); - coseBB.y1 = Math.min(coseBB.y1, lnode.positionY); - coseBB.y2 = Math.max(coseBB.y2, lnode.positionY); - }); - coseBB.w = coseBB.x2 - coseBB.x1; - coseBB.h = coseBB.y2 - coseBB.y1; - } - return function(ele, i2) { - var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data("id")]]; - if (options.boundingBox) { - var pctX = (lnode.positionX - coseBB.x1) / coseBB.w; - var pctY = (lnode.positionY - coseBB.y1) / coseBB.h; - return { - x: bb.x1 + pctX * bb.w, - y: bb.y1 + pctY * bb.h - }; - } else { - return { - x: lnode.positionX, - y: lnode.positionY - }; - } - }; - }; - var refreshPositions = function refreshPositions2(layoutInfo, cy, options) { - var layout2 = options.layout; - var nodes2 = options.eles.nodes(); - var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes2); - nodes2.positions(getScaledPos); - if (true !== layoutInfo.ready) { - layoutInfo.ready = true; - layout2.one("layoutready", options.ready); - layout2.emit({ - type: "layoutready", - layout: this - }); - } - }; - var step = function step2(layoutInfo, options, _step) { - calculateNodeForces(layoutInfo, options); - calculateEdgeForces(layoutInfo); - calculateGravityForces(layoutInfo, options); - propagateForces(layoutInfo); - updatePositions(layoutInfo); - }; - var calculateNodeForces = function calculateNodeForces2(layoutInfo, options) { - for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) { - var graph = layoutInfo.graphSet[i2]; - var numNodes = graph.length; - for (var j = 0; j < numNodes; j++) { - var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; - for (var k = j + 1; k < numNodes; k++) { - var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]]; - nodeRepulsion(node1, node2, layoutInfo, options); - } - } - } - }; - var randomDistance = function randomDistance2(max2) { - return -max2 + 2 * max2 * Math.random(); - }; - var nodeRepulsion = function nodeRepulsion2(node1, node2, layoutInfo, options) { - var cmptId1 = node1.cmptId; - var cmptId2 = node2.cmptId; - if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) { - return; - } - var directionX = node2.positionX - node1.positionX; - var directionY = node2.positionY - node1.positionY; - var maxRandDist = 1; - if (0 === directionX && 0 === directionY) { - directionX = randomDistance(maxRandDist); - directionY = randomDistance(maxRandDist); - } - var overlap = nodesOverlap(node1, node2, directionX, directionY); - if (overlap > 0) { - var force = options.nodeOverlap * overlap; - var distance = Math.sqrt(directionX * directionX + directionY * directionY); - var forceX = force * directionX / distance; - var forceY = force * directionY / distance; - } else { - var point1 = findClippingPoint(node1, directionX, directionY); - var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY); - var distanceX = point2.x - point1.x; - var distanceY = point2.y - point1.y; - var distanceSqr = distanceX * distanceX + distanceY * distanceY; - var distance = Math.sqrt(distanceSqr); - var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr; - var forceX = force * distanceX / distance; - var forceY = force * distanceY / distance; - } - if (!node1.isLocked) { - node1.offsetX -= forceX; - node1.offsetY -= forceY; - } - if (!node2.isLocked) { - node2.offsetX += forceX; - node2.offsetY += forceY; - } - return; - }; - var nodesOverlap = function nodesOverlap2(node1, node2, dX, dY) { - if (dX > 0) { - var overlapX = node1.maxX - node2.minX; - } else { - var overlapX = node2.maxX - node1.minX; - } - if (dY > 0) { - var overlapY = node1.maxY - node2.minY; - } else { - var overlapY = node2.maxY - node1.minY; - } - if (overlapX >= 0 && overlapY >= 0) { - return Math.sqrt(overlapX * overlapX + overlapY * overlapY); - } else { - return 0; - } - }; - var findClippingPoint = function findClippingPoint2(node, dX, dY) { - var X = node.positionX; - var Y = node.positionY; - var H = node.height || 1; - var W = node.width || 1; - var dirSlope = dY / dX; - var nodeSlope = H / W; - var res = {}; - if (0 === dX && 0 < dY) { - res.x = X; - res.y = Y + H / 2; - return res; - } - if (0 === dX && 0 > dY) { - res.x = X; - res.y = Y + H / 2; - return res; - } - if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { - res.x = X + W / 2; - res.y = Y + W * dY / 2 / dX; - return res; - } - if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { - res.x = X - W / 2; - res.y = Y - W * dY / 2 / dX; - return res; - } - if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { - res.x = X + H * dX / 2 / dY; - res.y = Y + H / 2; - return res; - } - if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { - res.x = X - H * dX / 2 / dY; - res.y = Y - H / 2; - return res; - } - return res; - }; - var calculateEdgeForces = function calculateEdgeForces2(layoutInfo, options) { - for (var i2 = 0; i2 < layoutInfo.edgeSize; i2++) { - var edge = layoutInfo.layoutEdges[i2]; - var sourceIx = layoutInfo.idToIndex[edge.sourceId]; - var source = layoutInfo.layoutNodes[sourceIx]; - var targetIx = layoutInfo.idToIndex[edge.targetId]; - var target = layoutInfo.layoutNodes[targetIx]; - var directionX = target.positionX - source.positionX; - var directionY = target.positionY - source.positionY; - if (0 === directionX && 0 === directionY) { - continue; - } - var point1 = findClippingPoint(source, directionX, directionY); - var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY); - var lx = point2.x - point1.x; - var ly = point2.y - point1.y; - var l = Math.sqrt(lx * lx + ly * ly); - var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity; - if (0 !== l) { - var forceX = force * lx / l; - var forceY = force * ly / l; - } else { - var forceX = 0; - var forceY = 0; - } - if (!source.isLocked) { - source.offsetX += forceX; - source.offsetY += forceY; - } - if (!target.isLocked) { - target.offsetX -= forceX; - target.offsetY -= forceY; - } - } - }; - var calculateGravityForces = function calculateGravityForces2(layoutInfo, options) { - if (options.gravity === 0) { - return; - } - var distThreshold = 1; - for (var i2 = 0; i2 < layoutInfo.graphSet.length; i2++) { - var graph = layoutInfo.graphSet[i2]; - var numNodes = graph.length; - if (0 === i2) { - var centerX = layoutInfo.clientHeight / 2; - var centerY = layoutInfo.clientWidth / 2; - } else { - var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]]; - var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]]; - var centerX = parent.positionX; - var centerY = parent.positionY; - } - for (var j = 0; j < numNodes; j++) { - var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; - if (node.isLocked) { - continue; - } - var dx = centerX - node.positionX; - var dy = centerY - node.positionY; - var d = Math.sqrt(dx * dx + dy * dy); - if (d > distThreshold) { - var fx = options.gravity * dx / d; - var fy = options.gravity * dy / d; - node.offsetX += fx; - node.offsetY += fy; - } - } - } - }; - var propagateForces = function propagateForces2(layoutInfo, options) { - var queue = []; - var start = 0; - var end = -1; - queue.push.apply(queue, layoutInfo.graphSet[0]); - end += layoutInfo.graphSet[0].length; - while (start <= end) { - var nodeId = queue[start++]; - var nodeIndex = layoutInfo.idToIndex[nodeId]; - var node = layoutInfo.layoutNodes[nodeIndex]; - var children = node.children; - if (0 < children.length && !node.isLocked) { - var offX = node.offsetX; - var offY = node.offsetY; - for (var i2 = 0; i2 < children.length; i2++) { - var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i2]]]; - childNode.offsetX += offX; - childNode.offsetY += offY; - queue[++end] = children[i2]; - } - node.offsetX = 0; - node.offsetY = 0; - } - } - }; - var updatePositions = function updatePositions2(layoutInfo, options) { - for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { - var n = layoutInfo.layoutNodes[i2]; - if (0 < n.children.length) { - n.maxX = void 0; - n.minX = void 0; - n.maxY = void 0; - n.minY = void 0; - } - } - for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { - var n = layoutInfo.layoutNodes[i2]; - if (0 < n.children.length || n.isLocked) { - continue; - } - var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature); - n.positionX += tempForce.x; - n.positionY += tempForce.y; - n.offsetX = 0; - n.offsetY = 0; - n.minX = n.positionX - n.width; - n.maxX = n.positionX + n.width; - n.minY = n.positionY - n.height; - n.maxY = n.positionY + n.height; - updateAncestryBoundaries(n, layoutInfo); - } - for (var i2 = 0; i2 < layoutInfo.nodeSize; i2++) { - var n = layoutInfo.layoutNodes[i2]; - if (0 < n.children.length && !n.isLocked) { - n.positionX = (n.maxX + n.minX) / 2; - n.positionY = (n.maxY + n.minY) / 2; - n.width = n.maxX - n.minX; - n.height = n.maxY - n.minY; - } - } - }; - var limitForce = function limitForce2(forceX, forceY, max2) { - var force = Math.sqrt(forceX * forceX + forceY * forceY); - if (force > max2) { - var res = { - x: max2 * forceX / force, - y: max2 * forceY / force - }; - } else { - var res = { - x: forceX, - y: forceY - }; - } - return res; - }; - var updateAncestryBoundaries = function updateAncestryBoundaries2(node, layoutInfo) { - var parentId = node.parentId; - if (null == parentId) { - return; - } - var p2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]]; - var flag = false; - if (null == p2.maxX || node.maxX + p2.padRight > p2.maxX) { - p2.maxX = node.maxX + p2.padRight; - flag = true; - } - if (null == p2.minX || node.minX - p2.padLeft < p2.minX) { - p2.minX = node.minX - p2.padLeft; - flag = true; - } - if (null == p2.maxY || node.maxY + p2.padBottom > p2.maxY) { - p2.maxY = node.maxY + p2.padBottom; - flag = true; - } - if (null == p2.minY || node.minY - p2.padTop < p2.minY) { - p2.minY = node.minY - p2.padTop; - flag = true; - } - if (flag) { - return updateAncestryBoundaries2(p2, layoutInfo); - } - return; - }; - var separateComponents = function separateComponents2(layoutInfo, options) { - var nodes2 = layoutInfo.layoutNodes; - var components = []; - for (var i2 = 0; i2 < nodes2.length; i2++) { - var node = nodes2[i2]; - var cid = node.cmptId; - var component = components[cid] = components[cid] || []; - component.push(node); - } - var totalA = 0; - for (var i2 = 0; i2 < components.length; i2++) { - var c = components[i2]; - if (!c) { - continue; - } - c.x1 = Infinity; - c.x2 = -Infinity; - c.y1 = Infinity; - c.y2 = -Infinity; - for (var j = 0; j < c.length; j++) { - var n = c[j]; - c.x1 = Math.min(c.x1, n.positionX - n.width / 2); - c.x2 = Math.max(c.x2, n.positionX + n.width / 2); - c.y1 = Math.min(c.y1, n.positionY - n.height / 2); - c.y2 = Math.max(c.y2, n.positionY + n.height / 2); - } - c.w = c.x2 - c.x1; - c.h = c.y2 - c.y1; - totalA += c.w * c.h; - } - components.sort(function(c1, c2) { - return c2.w * c2.h - c1.w * c1.h; - }); - var x = 0; - var y = 0; - var usedW = 0; - var rowH = 0; - var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight; - for (var i2 = 0; i2 < components.length; i2++) { - var c = components[i2]; - if (!c) { - continue; - } - for (var j = 0; j < c.length; j++) { - var n = c[j]; - if (!n.isLocked) { - n.positionX += x - c.x1; - n.positionY += y - c.y1; - } - } - x += c.w + options.componentSpacing; - usedW += c.w + options.componentSpacing; - rowH = Math.max(rowH, c.h); - if (usedW > maxRowW) { - y += rowH + options.componentSpacing; - x = 0; - usedW = 0; - rowH = 0; - } - } - }; - var defaults$3 = { - fit: true, - // whether to fit the viewport to the graph - padding: 30, - // padding used on fit - boundingBox: void 0, - // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - avoidOverlap: true, - // prevents node overlap, may overflow boundingBox if not enough space - avoidOverlapPadding: 10, - // extra spacing around nodes when avoidOverlap: true - nodeDimensionsIncludeLabels: false, - // Excludes the label when calculating node bounding boxes for the layout algorithm - spacingFactor: void 0, - // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - condense: false, - // uses all available space on false, uses minimal space on true - rows: void 0, - // force num of rows in the grid - cols: void 0, - // force num of columns in the grid - position: function position2(node) { - }, - // returns { row, col } for element - sort: void 0, - // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } - animate: false, - // whether to transition the node positions - animationDuration: 500, - // duration of animation in ms if enabled - animationEasing: void 0, - // easing of animation if enabled - animateFilter: function animateFilter(node, i2) { - return true; - }, - // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: void 0, - // callback on layoutready - stop: void 0, - // callback on layoutstop - transform: function transform(node, position2) { - return position2; - } - // transform a given node position. Useful for changing flow direction in discrete layouts - }; - function GridLayout(options) { - this.options = extend({}, defaults$3, options); - } - GridLayout.prototype.run = function() { - var params = this.options; - var options = params; - var cy = params.cy; - var eles = options.eles; - var nodes2 = eles.nodes().not(":parent"); - if (options.sort) { - nodes2 = nodes2.sort(options.sort); - } - var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, - y1: 0, - w: cy.width(), - h: cy.height() - }); - if (bb.h === 0 || bb.w === 0) { - eles.nodes().layoutPositions(this, options, function(ele) { - return { - x: bb.x1, - y: bb.y1 - }; - }); - } else { - var cells = nodes2.size(); - var splits = Math.sqrt(cells * bb.h / bb.w); - var rows = Math.round(splits); - var cols = Math.round(bb.w / bb.h * splits); - var small = function small2(val) { - if (val == null) { - return Math.min(rows, cols); - } else { - var min2 = Math.min(rows, cols); - if (min2 == rows) { - rows = val; - } else { - cols = val; - } - } - }; - var large = function large2(val) { - if (val == null) { - return Math.max(rows, cols); - } else { - var max2 = Math.max(rows, cols); - if (max2 == rows) { - rows = val; - } else { - cols = val; - } - } - }; - var oRows = options.rows; - var oCols = options.cols != null ? options.cols : options.columns; - if (oRows != null && oCols != null) { - rows = oRows; - cols = oCols; - } else if (oRows != null && oCols == null) { - rows = oRows; - cols = Math.ceil(cells / rows); - } else if (oRows == null && oCols != null) { - cols = oCols; - rows = Math.ceil(cells / cols); - } else if (cols * rows > cells) { - var sm = small(); - var lg = large(); - if ((sm - 1) * lg >= cells) { - small(sm - 1); - } else if ((lg - 1) * sm >= cells) { - large(lg - 1); - } - } else { - while (cols * rows < cells) { - var _sm = small(); - var _lg = large(); - if ((_lg + 1) * _sm >= cells) { - large(_lg + 1); - } else { - small(_sm + 1); - } - } - } - var cellWidth = bb.w / cols; - var cellHeight = bb.h / rows; - if (options.condense) { - cellWidth = 0; - cellHeight = 0; - } - if (options.avoidOverlap) { - for (var i2 = 0; i2 < nodes2.length; i2++) { - var node = nodes2[i2]; - var pos = node._private.position; - if (pos.x == null || pos.y == null) { - pos.x = 0; - pos.y = 0; - } - var nbb = node.layoutDimensions(options); - var p2 = options.avoidOverlapPadding; - var w = nbb.w + p2; - var h = nbb.h + p2; - cellWidth = Math.max(cellWidth, w); - cellHeight = Math.max(cellHeight, h); - } - } - var cellUsed = {}; - var used = function used2(row2, col2) { - return cellUsed["c-" + row2 + "-" + col2] ? true : false; - }; - var use = function use2(row2, col2) { - cellUsed["c-" + row2 + "-" + col2] = true; - }; - var row = 0; - var col = 0; - var moveToNextCell = function moveToNextCell2() { - col++; - if (col >= cols) { - col = 0; - row++; - } - }; - var id2manPos = {}; - for (var _i = 0; _i < nodes2.length; _i++) { - var _node = nodes2[_i]; - var rcPos = options.position(_node); - if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) { - var _pos = { - row: rcPos.row, - col: rcPos.col - }; - if (_pos.col === void 0) { - _pos.col = 0; - while (used(_pos.row, _pos.col)) { - _pos.col++; - } - } else if (_pos.row === void 0) { - _pos.row = 0; - while (used(_pos.row, _pos.col)) { - _pos.row++; - } - } - id2manPos[_node.id()] = _pos; - use(_pos.row, _pos.col); - } - } - var getPos = function getPos2(element2, i3) { - var x, y; - if (element2.locked() || element2.isParent()) { - return false; - } - var rcPos2 = id2manPos[element2.id()]; - if (rcPos2) { - x = rcPos2.col * cellWidth + cellWidth / 2 + bb.x1; - y = rcPos2.row * cellHeight + cellHeight / 2 + bb.y1; - } else { - while (used(row, col)) { - moveToNextCell(); - } - x = col * cellWidth + cellWidth / 2 + bb.x1; - y = row * cellHeight + cellHeight / 2 + bb.y1; - use(row, col); - moveToNextCell(); - } - return { - x, - y - }; - }; - nodes2.layoutPositions(this, options, getPos); - } - return this; - }; - var defaults$2 = { - ready: function ready() { - }, - // on layoutready - stop: function stop() { - } - // on layoutstop - }; - function NullLayout(options) { - this.options = extend({}, defaults$2, options); - } - NullLayout.prototype.run = function() { - var options = this.options; - var eles = options.eles; - var layout2 = this; - options.cy; - layout2.emit("layoutstart"); - eles.nodes().positions(function() { - return { - x: 0, - y: 0 - }; - }); - layout2.one("layoutready", options.ready); - layout2.emit("layoutready"); - layout2.one("layoutstop", options.stop); - layout2.emit("layoutstop"); - return this; - }; - NullLayout.prototype.stop = function() { - return this; - }; - var defaults$1 = { - positions: void 0, - // map of (node id) => (position obj); or function(node){ return somPos; } - zoom: void 0, - // the zoom level to set (prob want fit = false if set) - pan: void 0, - // the pan level to set (prob want fit = false if set) - fit: true, - // whether to fit to viewport - padding: 30, - // padding on fit - spacingFactor: void 0, - // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up - animate: false, - // whether to transition the node positions - animationDuration: 500, - // duration of animation in ms if enabled - animationEasing: void 0, - // easing of animation if enabled - animateFilter: function animateFilter(node, i2) { - return true; - }, - // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: void 0, - // callback on layoutready - stop: void 0, - // callback on layoutstop - transform: function transform(node, position2) { - return position2; - } - // transform a given node position. Useful for changing flow direction in discrete layouts - }; - function PresetLayout(options) { - this.options = extend({}, defaults$1, options); - } - PresetLayout.prototype.run = function() { - var options = this.options; - var eles = options.eles; - var nodes2 = eles.nodes(); - var posIsFn = fn$6(options.positions); - function getPosition(node) { - if (options.positions == null) { - return copyPosition(node.position()); - } - if (posIsFn) { - return options.positions(node); - } - var pos = options.positions[node._private.data.id]; - if (pos == null) { - return null; - } - return pos; - } - nodes2.layoutPositions(this, options, function(node, i2) { - var position2 = getPosition(node); - if (node.locked() || position2 == null) { - return false; - } - return position2; - }); - return this; - }; - var defaults = { - fit: true, - // whether to fit to viewport - padding: 30, - // fit padding - boundingBox: void 0, - // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } - animate: false, - // whether to transition the node positions - animationDuration: 500, - // duration of animation in ms if enabled - animationEasing: void 0, - // easing of animation if enabled - animateFilter: function animateFilter(node, i2) { - return true; - }, - // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts - ready: void 0, - // callback on layoutready - stop: void 0, - // callback on layoutstop - transform: function transform(node, position2) { - return position2; - } - // transform a given node position. Useful for changing flow direction in discrete layouts - }; - function RandomLayout(options) { - this.options = extend({}, defaults, options); - } - RandomLayout.prototype.run = function() { - var options = this.options; - var cy = options.cy; - var eles = options.eles; - var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { - x1: 0, - y1: 0, - w: cy.width(), - h: cy.height() - }); - var getPos = function getPos2(node, i2) { - return { - x: bb.x1 + Math.round(Math.random() * bb.w), - y: bb.y1 + Math.round(Math.random() * bb.h) - }; - }; - eles.nodes().layoutPositions(this, options, getPos); - return this; - }; - var layout = [{ - name: "breadthfirst", - impl: BreadthFirstLayout - }, { - name: "circle", - impl: CircleLayout - }, { - name: "concentric", - impl: ConcentricLayout - }, { - name: "cose", - impl: CoseLayout - }, { - name: "grid", - impl: GridLayout - }, { - name: "null", - impl: NullLayout - }, { - name: "preset", - impl: PresetLayout - }, { - name: "random", - impl: RandomLayout - }]; - function NullRenderer(options) { - this.options = options; - this.notifications = 0; - } - var noop = function noop2() { - }; - var throwImgErr = function throwImgErr2() { - throw new Error("A headless instance can not render images"); - }; - NullRenderer.prototype = { - recalculateRenderedStyle: noop, - notify: function notify() { - this.notifications++; - }, - init: noop, - isHeadless: function isHeadless() { - return true; - }, - png: throwImgErr, - jpg: throwImgErr - }; - var BRp$f = {}; - BRp$f.arrowShapeWidth = 0.3; - BRp$f.registerArrowShapes = function() { - var arrowShapes = this.arrowShapes = {}; - var renderer2 = this; - var bbCollide = function bbCollide2(x, y, size, angle, translation, edgeWidth, padding) { - var x1 = translation.x - size / 2 - padding; - var x2 = translation.x + size / 2 + padding; - var y1 = translation.y - size / 2 - padding; - var y2 = translation.y + size / 2 + padding; - var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2; - return inside; - }; - var transform = function transform2(x, y, size, angle, translation) { - var xRotated = x * Math.cos(angle) - y * Math.sin(angle); - var yRotated = x * Math.sin(angle) + y * Math.cos(angle); - var xScaled = xRotated * size; - var yScaled = yRotated * size; - var xTranslated = xScaled + translation.x; - var yTranslated = yScaled + translation.y; - return { - x: xTranslated, - y: yTranslated - }; - }; - var transformPoints = function transformPoints2(pts2, size, angle, translation) { - var retPts = []; - for (var i2 = 0; i2 < pts2.length; i2 += 2) { - var x = pts2[i2]; - var y = pts2[i2 + 1]; - retPts.push(transform(x, y, size, angle, translation)); - } - return retPts; - }; - var pointsToArr = function pointsToArr2(pts2) { - var ret = []; - for (var i2 = 0; i2 < pts2.length; i2++) { - var p2 = pts2[i2]; - ret.push(p2.x, p2.y); - } - return ret; - }; - var standardGap = function standardGap2(edge) { - return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").pfValue * 2; - }; - var defineArrowShape = function defineArrowShape2(name2, defn) { - if (string(defn)) { - defn = arrowShapes[defn]; - } - arrowShapes[name2] = extend({ - name: name2, - points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3], - collide: function collide(x, y, size, angle, translation, padding) { - var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - var inside = pointInsidePolygonPoints(x, y, points); - return inside; - }, - roughCollide: bbCollide, - draw: function draw2(context, size, angle, translation) { - var points = transformPoints(this.points, size, angle, translation); - renderer2.arrowShapeImpl("polygon")(context, points); - }, - spacing: function spacing(edge) { - return 0; - }, - gap: standardGap - }, defn); - }; - defineArrowShape("none", { - collide: falsify, - roughCollide: falsify, - draw: noop$1, - spacing: zeroify, - gap: zeroify - }); - defineArrowShape("triangle", { - points: [-0.15, -0.3, 0, 0, 0.15, -0.3] - }); - defineArrowShape("arrow", "triangle"); - defineArrowShape("triangle-backcurve", { - points: arrowShapes["triangle"].points, - controlPoint: [0, -0.15], - roughCollide: bbCollide, - draw: function draw2(context, size, angle, translation, edgeWidth) { - var ptsTrans = transformPoints(this.points, size, angle, translation); - var ctrlPt = this.controlPoint; - var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation); - renderer2.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans); - }, - gap: function gap(edge) { - return standardGap(edge) * 0.8; - } - }); - defineArrowShape("triangle-tee", { - points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], - pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4], - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation)); - var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); - return inside; - }, - draw: function draw2(context, size, angle, translation, edgeWidth) { - var triPts = transformPoints(this.points, size, angle, translation); - var teePts = transformPoints(this.pointsTee, size, angle, translation); - renderer2.arrowShapeImpl(this.name)(context, triPts, teePts); - } - }); - defineArrowShape("circle-triangle", { - radius: 0.15, - pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15], - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var t = translation; - var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); - var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - return pointInsidePolygonPoints(x, y, triPts) || circleInside; - }, - draw: function draw2(context, size, angle, translation, edgeWidth) { - var triPts = transformPoints(this.pointsTr, size, angle, translation); - renderer2.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size); - }, - spacing: function spacing(edge) { - return renderer2.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius; - } - }); - defineArrowShape("triangle-cross", { - points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], - baseCrossLinePts: [ - -0.15, - -0.4, - // first half of the rectangle - -0.15, - -0.4, - 0.15, - -0.4, - // second half of the rectangle - 0.15, - -0.4 - ], - crossLinePts: function crossLinePts(size, edgeWidth) { - var p2 = this.baseCrossLinePts.slice(); - var shiftFactor = edgeWidth / size; - var y0 = 3; - var y1 = 5; - p2[y0] = p2[y0] - shiftFactor; - p2[y1] = p2[y1] - shiftFactor; - return p2; - }, - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); - var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation)); - var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); - return inside; - }, - draw: function draw2(context, size, angle, translation, edgeWidth) { - var triPts = transformPoints(this.points, size, angle, translation); - var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation); - renderer2.arrowShapeImpl(this.name)(context, triPts, crossLinePts); - } - }); - defineArrowShape("vee", { - points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15], - gap: function gap(edge) { - return standardGap(edge) * 0.525; - } - }); - defineArrowShape("circle", { - radius: 0.15, - collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { - var t = translation; - var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); - return inside; - }, - draw: function draw2(context, size, angle, translation, edgeWidth) { - renderer2.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size); - }, - spacing: function spacing(edge) { - return renderer2.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius; - } - }); - defineArrowShape("tee", { - points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0], - spacing: function spacing(edge) { - return 1; - }, - gap: function gap(edge) { - return 1; - } - }); - defineArrowShape("square", { - points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3] - }); - defineArrowShape("diamond", { - points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0], - gap: function gap(edge) { - return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value; - } - }); - defineArrowShape("chevron", { - points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15], - gap: function gap(edge) { - return 0.95 * edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value; - } - }); - }; - var BRp$e = {}; - BRp$e.projectIntoViewport = function(clientX, clientY) { - var cy = this.cy; - var offsets = this.findContainerClientCoords(); - var offsetLeft = offsets[0]; - var offsetTop = offsets[1]; - var scale = offsets[4]; - var pan = cy.pan(); - var zoom = cy.zoom(); - var x = ((clientX - offsetLeft) / scale - pan.x) / zoom; - var y = ((clientY - offsetTop) / scale - pan.y) / zoom; - return [x, y]; - }; - BRp$e.findContainerClientCoords = function() { - if (this.containerBB) { - return this.containerBB; - } - var container = this.container; - var rect = container.getBoundingClientRect(); - var style = this.cy.window().getComputedStyle(container); - var styleValue = function styleValue2(name2) { - return parseFloat(style.getPropertyValue(name2)); - }; - var padding = { - left: styleValue("padding-left"), - right: styleValue("padding-right"), - top: styleValue("padding-top"), - bottom: styleValue("padding-bottom") - }; - var border = { - left: styleValue("border-left-width"), - right: styleValue("border-right-width"), - top: styleValue("border-top-width"), - bottom: styleValue("border-bottom-width") - }; - var clientWidth = container.clientWidth; - var clientHeight = container.clientHeight; - var paddingHor = padding.left + padding.right; - var paddingVer = padding.top + padding.bottom; - var borderHor = border.left + border.right; - var scale = rect.width / (clientWidth + borderHor); - var unscaledW = clientWidth - paddingHor; - var unscaledH = clientHeight - paddingVer; - var left = rect.left + padding.left + border.left; - var top = rect.top + padding.top + border.top; - return this.containerBB = [left, top, unscaledW, unscaledH, scale]; - }; - BRp$e.invalidateContainerClientCoordsCache = function() { - this.containerBB = null; - }; - BRp$e.findNearestElement = function(x, y, interactiveElementsOnly, isTouch) { - return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0]; - }; - BRp$e.findNearestElements = function(x, y, interactiveElementsOnly, isTouch) { - var self2 = this; - var r = this; - var eles = r.getCachedZSortedEles(); - var near = []; - var zoom = r.cy.zoom(); - var hasCompounds = r.cy.hasCompoundNodes(); - var edgeThreshold = (isTouch ? 24 : 8) / zoom; - var nodeThreshold = (isTouch ? 8 : 2) / zoom; - var labelThreshold = (isTouch ? 8 : 2) / zoom; - var minSqDist = Infinity; - var nearEdge; - var nearNode; - if (interactiveElementsOnly) { - eles = eles.interactive; - } - function addEle(ele2, sqDist) { - if (ele2.isNode()) { - if (nearNode) { - return; - } else { - nearNode = ele2; - near.push(ele2); - } - } - if (ele2.isEdge() && (sqDist == null || sqDist < minSqDist)) { - if (nearEdge) { - if (nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value && nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value) { - for (var i3 = 0; i3 < near.length; i3++) { - if (near[i3].isEdge()) { - near[i3] = ele2; - nearEdge = ele2; - minSqDist = sqDist != null ? sqDist : minSqDist; - break; - } - } - } - } else { - near.push(ele2); - nearEdge = ele2; - minSqDist = sqDist != null ? sqDist : minSqDist; - } - } - } - function checkNode(node) { - var width = node.outerWidth() + 2 * nodeThreshold; - var height = node.outerHeight() + 2 * nodeThreshold; - var hw = width / 2; - var hh = height / 2; - var pos = node.position(); - if (pos.x - hw <= x && x <= pos.x + hw && pos.y - hh <= y && y <= pos.y + hh) { - var shape = r.nodeShapes[self2.getNodeShape(node)]; - if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) { - addEle(node, 0); - return true; - } - } - } - function checkEdge(edge) { - var _p = edge._private; - var rs = _p.rscratch; - var styleWidth = edge.pstyle("width").pfValue; - var scale = edge.pstyle("arrow-scale").value; - var width = styleWidth / 2 + edgeThreshold; - var widthSq = width * width; - var width2 = width * 2; - var src = _p.source; - var tgt = _p.target; - var sqDist; - if (rs.edgeType === "segments" || rs.edgeType === "straight" || rs.edgeType === "haystack") { - var pts2 = rs.allpts; - for (var i3 = 0; i3 + 3 < pts2.length; i3 += 2) { - if (inLineVicinity(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3]))) { - addEle(edge, sqDist); - return true; - } - } - } else if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound") { - var pts2 = rs.allpts; - for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) { - if (inBezierVicinity(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3], pts2[i3 + 4], pts2[i3 + 5]))) { - addEle(edge, sqDist); - return true; - } - } - } - var src = src || _p.source; - var tgt = tgt || _p.target; - var arSize = self2.getArrowWidth(styleWidth, scale); - var arrows = [{ - name: "source", - x: rs.arrowStartX, - y: rs.arrowStartY, - angle: rs.srcArrowAngle - }, { - name: "target", - x: rs.arrowEndX, - y: rs.arrowEndY, - angle: rs.tgtArrowAngle - }, { - name: "mid-source", - x: rs.midX, - y: rs.midY, - angle: rs.midsrcArrowAngle - }, { - name: "mid-target", - x: rs.midX, - y: rs.midY, - angle: rs.midtgtArrowAngle - }]; - for (var i3 = 0; i3 < arrows.length; i3++) { - var ar = arrows[i3]; - var shape = r.arrowShapes[edge.pstyle(ar.name + "-arrow-shape").value]; - var edgeWidth = edge.pstyle("width").pfValue; - if (shape.roughCollide(x, y, arSize, ar.angle, { - x: ar.x, - y: ar.y - }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, { - x: ar.x, - y: ar.y - }, edgeWidth, edgeThreshold)) { - addEle(edge); - return true; - } - } - if (hasCompounds && near.length > 0) { - checkNode(src); - checkNode(tgt); - } - } - function preprop(obj, name2, pre) { - return getPrefixedProperty(obj, name2, pre); - } - function checkLabel(ele2, prefix) { - var _p = ele2._private; - var th = labelThreshold; - var prefixDash; - if (prefix) { - prefixDash = prefix + "-"; - } else { - prefixDash = ""; - } - ele2.boundingBox(); - var bb = _p.labelBounds[prefix || "main"]; - var text = ele2.pstyle(prefixDash + "label").value; - var eventsEnabled = ele2.pstyle("text-events").strValue === "yes"; - if (!eventsEnabled || !text) { - return; - } - var lx = preprop(_p.rscratch, "labelX", prefix); - var ly = preprop(_p.rscratch, "labelY", prefix); - var theta = preprop(_p.rscratch, "labelAngle", prefix); - var ox = ele2.pstyle(prefixDash + "text-margin-x").pfValue; - var oy = ele2.pstyle(prefixDash + "text-margin-y").pfValue; - var lx1 = bb.x1 - th - ox; - var lx2 = bb.x2 + th - ox; - var ly1 = bb.y1 - th - oy; - var ly2 = bb.y2 + th - oy; - if (theta) { - var cos2 = Math.cos(theta); - var sin2 = Math.sin(theta); - var rotate = function rotate2(x2, y2) { - x2 = x2 - lx; - y2 = y2 - ly; - return { - x: x2 * cos2 - y2 * sin2 + lx, - y: x2 * sin2 + y2 * cos2 + ly - }; - }; - var px1y1 = rotate(lx1, ly1); - var px1y2 = rotate(lx1, ly2); - var px2y1 = rotate(lx2, ly1); - var px2y2 = rotate(lx2, ly2); - var points = [ - // with the margin added after the rotation is applied - px1y1.x + ox, - px1y1.y + oy, - px2y1.x + ox, - px2y1.y + oy, - px2y2.x + ox, - px2y2.y + oy, - px1y2.x + ox, - px1y2.y + oy - ]; - if (pointInsidePolygonPoints(x, y, points)) { - addEle(ele2); - return true; - } - } else { - if (inBoundingBox(bb, x, y)) { - addEle(ele2); - return true; - } - } - } - for (var i2 = eles.length - 1; i2 >= 0; i2--) { - var ele = eles[i2]; - if (ele.isNode()) { - checkNode(ele) || checkLabel(ele); - } else { - checkEdge(ele) || checkLabel(ele) || checkLabel(ele, "source") || checkLabel(ele, "target"); - } - } - return near; - }; - BRp$e.getAllInBox = function(x1, y1, x2, y2) { - var eles = this.getCachedZSortedEles().interactive; - var box = []; - var x1c = Math.min(x1, x2); - var x2c = Math.max(x1, x2); - var y1c = Math.min(y1, y2); - var y2c = Math.max(y1, y2); - x1 = x1c; - x2 = x2c; - y1 = y1c; - y2 = y2c; - var boxBb = makeBoundingBox({ - x1, - y1, - x2, - y2 - }); - for (var e = 0; e < eles.length; e++) { - var ele = eles[e]; - if (ele.isNode()) { - var node = ele; - var nodeBb = node.boundingBox({ - includeNodes: true, - includeEdges: false, - includeLabels: false - }); - if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) { - box.push(node); - } - } else { - var edge = ele; - var _p = edge._private; - var rs = _p.rscratch; - if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) { - continue; - } - if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) { - continue; - } - if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound" || rs.edgeType === "segments" || rs.edgeType === "haystack") { - var pts2 = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts; - var allInside = true; - for (var i2 = 0; i2 < pts2.length; i2++) { - if (!pointInBoundingBox(boxBb, pts2[i2])) { - allInside = false; - break; - } - } - if (allInside) { - box.push(edge); - } - } else if (rs.edgeType === "haystack" || rs.edgeType === "straight") { - box.push(edge); - } - } - } - return box; - }; - var BRp$d = {}; - BRp$d.calculateArrowAngles = function(edge) { - var rs = edge._private.rscratch; - var isHaystack = rs.edgeType === "haystack"; - var isBezier = rs.edgeType === "bezier"; - var isMultibezier = rs.edgeType === "multibezier"; - var isSegments = rs.edgeType === "segments"; - var isCompound = rs.edgeType === "compound"; - var isSelf = rs.edgeType === "self"; - var dispX, dispY; - var startX, startY, endX, endY, midX, midY; - if (isHaystack) { - startX = rs.haystackPts[0]; - startY = rs.haystackPts[1]; - endX = rs.haystackPts[2]; - endY = rs.haystackPts[3]; - } else { - startX = rs.arrowStartX; - startY = rs.arrowStartY; - endX = rs.arrowEndX; - endY = rs.arrowEndY; - } - midX = rs.midX; - midY = rs.midY; - if (isSegments) { - dispX = startX - rs.segpts[0]; - dispY = startY - rs.segpts[1]; - } else if (isMultibezier || isCompound || isSelf || isBezier) { - var pts2 = rs.allpts; - var bX = qbezierAt(pts2[0], pts2[2], pts2[4], 0.1); - var bY = qbezierAt(pts2[1], pts2[3], pts2[5], 0.1); - dispX = startX - bX; - dispY = startY - bY; - } else { - dispX = startX - midX; - dispY = startY - midY; - } - rs.srcArrowAngle = getAngleFromDisp(dispX, dispY); - var midX = rs.midX; - var midY = rs.midY; - if (isHaystack) { - midX = (startX + endX) / 2; - midY = (startY + endY) / 2; - } - dispX = endX - startX; - dispY = endY - startY; - if (isSegments) { - var pts2 = rs.allpts; - if (pts2.length / 2 % 2 === 0) { - var i2 = pts2.length / 2; - var i1 = i2 - 2; - dispX = pts2[i2] - pts2[i1]; - dispY = pts2[i2 + 1] - pts2[i1 + 1]; - } else { - var i2 = pts2.length / 2 - 1; - var i1 = i2 - 2; - var i3 = i2 + 2; - dispX = pts2[i2] - pts2[i1]; - dispY = pts2[i2 + 1] - pts2[i1 + 1]; - } - } else if (isMultibezier || isCompound || isSelf) { - var pts2 = rs.allpts; - var cpts = rs.ctrlpts; - var bp0x, bp0y; - var bp1x, bp1y; - if (cpts.length / 2 % 2 === 0) { - var p0 = pts2.length / 2 - 1; - var ic = p0 + 2; - var p1 = ic + 2; - bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0); - bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0); - bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 1e-4); - bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 1e-4); - } else { - var ic = pts2.length / 2 - 1; - var p0 = ic - 2; - var p1 = ic + 2; - bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.4999); - bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.4999); - bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.5); - bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.5); - } - dispX = bp1x - bp0x; - dispY = bp1y - bp0y; - } - rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY); - rs.midDispX = dispX; - rs.midDispY = dispY; - dispX *= -1; - dispY *= -1; - if (isSegments) { - var pts2 = rs.allpts; - if (pts2.length / 2 % 2 === 0) - ; - else { - var i2 = pts2.length / 2 - 1; - var i3 = i2 + 2; - dispX = -(pts2[i3] - pts2[i2]); - dispY = -(pts2[i3 + 1] - pts2[i2 + 1]); - } - } - rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY); - if (isSegments) { - dispX = endX - rs.segpts[rs.segpts.length - 2]; - dispY = endY - rs.segpts[rs.segpts.length - 1]; - } else if (isMultibezier || isCompound || isSelf || isBezier) { - var pts2 = rs.allpts; - var l = pts2.length; - var bX = qbezierAt(pts2[l - 6], pts2[l - 4], pts2[l - 2], 0.9); - var bY = qbezierAt(pts2[l - 5], pts2[l - 3], pts2[l - 1], 0.9); - dispX = endX - bX; - dispY = endY - bY; - } else { - dispX = endX - midX; - dispY = endY - midY; - } - rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY); - }; - BRp$d.getArrowWidth = BRp$d.getArrowHeight = function(edgeWidth, scale) { - var cache2 = this.arrowWidthCache = this.arrowWidthCache || {}; - var cachedVal = cache2[edgeWidth + ", " + scale]; - if (cachedVal) { - return cachedVal; - } - cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale; - cache2[edgeWidth + ", " + scale] = cachedVal; - return cachedVal; - }; - var BRp$c = {}; - BRp$c.findMidptPtsEtc = function(edge, pairInfo) { - var posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts, vectorNormInverse = pairInfo.vectorNormInverse; - var midptPts; - var srcManEndpt = edge.pstyle("source-endpoint"); - var tgtManEndpt = edge.pstyle("target-endpoint"); - var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null; - var recalcVectorNormInverse = function recalcVectorNormInverse2(x12, y12, x22, y22) { - var dy = y22 - y12; - var dx = x22 - x12; - var l = Math.sqrt(dx * dx + dy * dy); - return { - x: -dy / l, - y: dx / l - }; - }; - var edgeDistances = edge.pstyle("edge-distances").value; - switch (edgeDistances) { - case "node-position": - midptPts = posPts; - break; - case "intersection": - midptPts = intersectionPts; - break; - case "endpoints": { - if (haveManualEndPts) { - var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt), _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2), x1 = _this$manualEndptToPx2[0], y1 = _this$manualEndptToPx2[1]; - var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt), _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2), x2 = _this$manualEndptToPx4[0], y2 = _this$manualEndptToPx4[1]; - var endPts = { - x1, - y1, - x2, - y2 - }; - vectorNormInverse = recalcVectorNormInverse(x1, y1, x2, y2); - midptPts = endPts; - } else { - warn("Edge ".concat(edge.id(), " has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")); - midptPts = intersectionPts; - } - break; - } - } - return { - midptPts, - vectorNormInverse - }; - }; - BRp$c.findHaystackPoints = function(edges) { - for (var i2 = 0; i2 < edges.length; i2++) { - var edge = edges[i2]; - var _p = edge._private; - var rs = _p.rscratch; - if (!rs.haystack) { - var angle = Math.random() * 2 * Math.PI; - rs.source = { - x: Math.cos(angle), - y: Math.sin(angle) - }; - angle = Math.random() * 2 * Math.PI; - rs.target = { - x: Math.cos(angle), - y: Math.sin(angle) - }; - } - var src = _p.source; - var tgt = _p.target; - var srcPos = src.position(); - var tgtPos = tgt.position(); - var srcW = src.width(); - var tgtW = tgt.width(); - var srcH = src.height(); - var tgtH = tgt.height(); - var radius = edge.pstyle("haystack-radius").value; - var halfRadius = radius / 2; - rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y]; - rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2; - rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2; - rs.edgeType = "haystack"; - rs.haystack = true; - this.storeEdgeProjections(edge); - this.calculateArrowAngles(edge); - this.recalculateEdgeLabelProjections(edge); - this.calculateLabelAngles(edge); - } - }; - BRp$c.findSegmentsPoints = function(edge, pairInfo) { - var rs = edge._private.rscratch; - var segmentWs = edge.pstyle("segment-weights"); - var segmentDs = edge.pstyle("segment-distances"); - var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length); - rs.edgeType = "segments"; - rs.segpts = []; - for (var s = 0; s < segmentsN; s++) { - var w = segmentWs.pfValue[s]; - var d = segmentDs.pfValue[s]; - var w1 = 1 - w; - var w2 = w; - var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo), midptPts = _this$findMidptPtsEtc.midptPts, vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse; - var adjustedMidpt = { - x: midptPts.x1 * w1 + midptPts.x2 * w2, - y: midptPts.y1 * w1 + midptPts.y2 * w2 - }; - rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d); - } - }; - BRp$c.findLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) { - var rs = edge._private.rscratch; - var dirCounts = pairInfo.dirCounts, srcPos = pairInfo.srcPos; - var ctrlptDists = edge.pstyle("control-point-distances"); - var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0; - var loopDir = edge.pstyle("loop-direction").pfValue; - var loopSwp = edge.pstyle("loop-sweep").pfValue; - var stepSize = edge.pstyle("control-point-step-size").pfValue; - rs.edgeType = "self"; - var j = i2; - var loopDist = stepSize; - if (edgeIsUnbundled) { - j = 0; - loopDist = ctrlptDist; - } - var loopAngle = loopDir - Math.PI / 2; - var outAngle = loopAngle - loopSwp / 2; - var inAngle = loopAngle + loopSwp / 2; - var dc = String(loopDir + "_" + loopSwp); - j = dirCounts[dc] === void 0 ? dirCounts[dc] = 0 : ++dirCounts[dc]; - rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)]; - }; - BRp$c.findCompoundLoopPoints = function(edge, pairInfo, i2, edgeIsUnbundled) { - var rs = edge._private.rscratch; - rs.edgeType = "compound"; - var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH; - var stepSize = edge.pstyle("control-point-step-size").pfValue; - var ctrlptDists = edge.pstyle("control-point-distances"); - var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0; - var j = i2; - var loopDist = stepSize; - if (edgeIsUnbundled) { - j = 0; - loopDist = ctrlptDist; - } - var loopW = 50; - var loopaPos = { - x: srcPos.x - srcW / 2, - y: srcPos.y - srcH / 2 - }; - var loopbPos = { - x: tgtPos.x - tgtW / 2, - y: tgtPos.y - tgtH / 2 - }; - var loopPos = { - x: Math.min(loopaPos.x, loopbPos.x), - y: Math.min(loopaPos.y, loopbPos.y) - }; - var minCompoundStretch = 0.5; - var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01)); - var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01)); - rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y]; - }; - BRp$c.findStraightEdgePoints = function(edge) { - edge._private.rscratch.edgeType = "straight"; - }; - BRp$c.findBezierPoints = function(edge, pairInfo, i2, edgeIsUnbundled, edgeIsSwapped) { - var rs = edge._private.rscratch; - var stepSize = edge.pstyle("control-point-step-size").pfValue; - var ctrlptDists = edge.pstyle("control-point-distances"); - var ctrlptWs = edge.pstyle("control-point-weights"); - var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1; - var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0; - var ctrlptWeight = ctrlptWs.value[0]; - var multi = edgeIsUnbundled; - rs.edgeType = multi ? "multibezier" : "bezier"; - rs.ctrlpts = []; - for (var b = 0; b < bezierN; b++) { - var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i2) * stepSize * (edgeIsSwapped ? -1 : 1); - var manctrlptDist = void 0; - var sign = signum(normctrlptDist); - if (multi) { - ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; - ctrlptWeight = ctrlptWs.value[b]; - } - if (edgeIsUnbundled) { - manctrlptDist = ctrlptDist; - } else { - manctrlptDist = ctrlptDist !== void 0 ? sign * ctrlptDist : void 0; - } - var distanceFromMidpoint = manctrlptDist !== void 0 ? manctrlptDist : normctrlptDist; - var w1 = 1 - ctrlptWeight; - var w2 = ctrlptWeight; - var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo), midptPts = _this$findMidptPtsEtc2.midptPts, vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse; - var adjustedMidpt = { - x: midptPts.x1 * w1 + midptPts.x2 * w2, - y: midptPts.y1 * w1 + midptPts.y2 * w2 - }; - rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint); - } - }; - BRp$c.findTaxiPoints = function(edge, pairInfo) { - var rs = edge._private.rscratch; - rs.edgeType = "segments"; - var VERTICAL = "vertical"; - var HORIZONTAL = "horizontal"; - var LEFTWARD = "leftward"; - var RIGHTWARD = "rightward"; - var DOWNWARD = "downward"; - var UPWARD = "upward"; - var AUTO = "auto"; - var posPts = pairInfo.posPts, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH; - var edgeDistances = edge.pstyle("edge-distances").value; - var dIncludesNodeBody = edgeDistances !== "node-position"; - var taxiDir = edge.pstyle("taxi-direction").value; - var rawTaxiDir = taxiDir; - var taxiTurn = edge.pstyle("taxi-turn"); - var turnIsPercent = taxiTurn.units === "%"; - var taxiTurnPfVal = taxiTurn.pfValue; - var turnIsNegative = taxiTurnPfVal < 0; - var minD = edge.pstyle("taxi-turn-min-distance").pfValue; - var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0; - var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0; - var pdx = posPts.x2 - posPts.x1; - var pdy = posPts.y2 - posPts.y1; - var subDWH = function subDWH2(dxy, dwh) { - if (dxy > 0) { - return Math.max(dxy - dwh, 0); - } else { - return Math.min(dxy + dwh, 0); - } - }; - var dx = subDWH(pdx, dw); - var dy = subDWH(pdy, dh); - var isExplicitDir = false; - if (rawTaxiDir === AUTO) { - taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL; - } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) { - taxiDir = VERTICAL; - isExplicitDir = true; - } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) { - taxiDir = HORIZONTAL; - isExplicitDir = true; - } - var isVert = taxiDir === VERTICAL; - var l = isVert ? dy : dx; - var pl = isVert ? pdy : pdx; - var sgnL = signum(pl); - var forcedDir = false; - if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) { - sgnL *= -1; - l = sgnL * Math.abs(l); - forcedDir = true; - } - var d; - if (turnIsPercent) { - var p2 = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal; - d = p2 * l; - } else { - var k = taxiTurnPfVal < 0 ? l : 0; - d = k + taxiTurnPfVal * sgnL; - } - var getIsTooClose = function getIsTooClose2(d2) { - return Math.abs(d2) < minD || Math.abs(d2) >= Math.abs(l); - }; - var isTooCloseSrc = getIsTooClose(d); - var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d)); - var isTooClose = isTooCloseSrc || isTooCloseTgt; - if (isTooClose && !forcedDir) { - if (isVert) { - var lShapeInsideSrc = Math.abs(pl) <= srcH / 2; - var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2; - if (lShapeInsideSrc) { - var x = (posPts.x1 + posPts.x2) / 2; - var y1 = posPts.y1, y2 = posPts.y2; - rs.segpts = [x, y1, x, y2]; - } else if (lShapeInsideTgt) { - var y = (posPts.y1 + posPts.y2) / 2; - var x1 = posPts.x1, x2 = posPts.x2; - rs.segpts = [x1, y, x2, y]; - } else { - rs.segpts = [posPts.x1, posPts.y2]; - } - } else { - var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2; - var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2; - if (_lShapeInsideSrc) { - var _y = (posPts.y1 + posPts.y2) / 2; - var _x = posPts.x1, _x2 = posPts.x2; - rs.segpts = [_x, _y, _x2, _y]; - } else if (_lShapeInsideTgt) { - var _x3 = (posPts.x1 + posPts.x2) / 2; - var _y2 = posPts.y1, _y3 = posPts.y2; - rs.segpts = [_x3, _y2, _x3, _y3]; - } else { - rs.segpts = [posPts.x2, posPts.y1]; - } - } - } else { - if (isVert) { - var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0); - var _x4 = posPts.x1, _x5 = posPts.x2; - rs.segpts = [_x4, _y4, _x5, _y4]; - } else { - var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0); - var _y5 = posPts.y1, _y6 = posPts.y2; - rs.segpts = [_x6, _y5, _x6, _y6]; - } - } - }; - BRp$c.tryToCorrectInvalidPoints = function(edge, pairInfo) { - var rs = edge._private.rscratch; - if (rs.edgeType === "bezier") { - var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH, srcShape = pairInfo.srcShape, tgtShape = pairInfo.tgtShape; - var badStart = !number$1(rs.startX) || !number$1(rs.startY); - var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY); - var badEnd = !number$1(rs.endX) || !number$1(rs.endY); - var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY); - var minCpADistFactor = 3; - var arrowW = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth; - var minCpADist = minCpADistFactor * arrowW; - var startACpDist = dist({ - x: rs.ctrlpts[0], - y: rs.ctrlpts[1] - }, { - x: rs.startX, - y: rs.startY - }); - var closeStartACp = startACpDist < minCpADist; - var endACpDist = dist({ - x: rs.ctrlpts[0], - y: rs.ctrlpts[1] - }, { - x: rs.endX, - y: rs.endY - }); - var closeEndACp = endACpDist < minCpADist; - var overlapping = false; - if (badStart || badAStart || closeStartACp) { - overlapping = true; - var cpD = { - // delta - x: rs.ctrlpts[0] - srcPos.x, - y: rs.ctrlpts[1] - srcPos.y - }; - var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); - var cpM = { - // normalised delta - x: cpD.x / cpL, - y: cpD.y / cpL - }; - var radius = Math.max(srcW, srcH); - var cpProj = { - // *2 radius guarantees outside shape - x: rs.ctrlpts[0] + cpM.x * 2 * radius, - y: rs.ctrlpts[1] + cpM.y * 2 * radius - }; - var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0); - if (closeStartACp) { - rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist); - rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist); - } else { - rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist; - rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist; - } - } - if (badEnd || badAEnd || closeEndACp) { - overlapping = true; - var _cpD = { - // delta - x: rs.ctrlpts[0] - tgtPos.x, - y: rs.ctrlpts[1] - tgtPos.y - }; - var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); - var _cpM = { - // normalised delta - x: _cpD.x / _cpL, - y: _cpD.y / _cpL - }; - var _radius = Math.max(srcW, srcH); - var _cpProj = { - // *2 radius guarantees outside shape - x: rs.ctrlpts[0] + _cpM.x * 2 * _radius, - y: rs.ctrlpts[1] + _cpM.y * 2 * _radius - }; - var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0); - if (closeEndACp) { - rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist); - rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist); - } else { - rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist; - rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist; - } - } - if (overlapping) { - this.findEndpoints(edge); - } - } - }; - BRp$c.storeAllpts = function(edge) { - var rs = edge._private.rscratch; - if (rs.edgeType === "multibezier" || rs.edgeType === "bezier" || rs.edgeType === "self" || rs.edgeType === "compound") { - rs.allpts = []; - rs.allpts.push(rs.startX, rs.startY); - for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) { - rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]); - if (b + 3 < rs.ctrlpts.length) { - rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2); - } - } - rs.allpts.push(rs.endX, rs.endY); - var m, mt; - if (rs.ctrlpts.length / 2 % 2 === 0) { - m = rs.allpts.length / 2 - 1; - rs.midX = rs.allpts[m]; - rs.midY = rs.allpts[m + 1]; - } else { - m = rs.allpts.length / 2 - 3; - mt = 0.5; - rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt); - rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt); - } - } else if (rs.edgeType === "straight") { - rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY]; - rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4; - rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4; - } else if (rs.edgeType === "segments") { - rs.allpts = []; - rs.allpts.push(rs.startX, rs.startY); - rs.allpts.push.apply(rs.allpts, rs.segpts); - rs.allpts.push(rs.endX, rs.endY); - if (rs.segpts.length % 4 === 0) { - var i2 = rs.segpts.length / 2; - var i1 = i2 - 2; - rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2; - rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2; - } else { - var _i = rs.segpts.length / 2 - 1; - rs.midX = rs.segpts[_i]; - rs.midY = rs.segpts[_i + 1]; - } - } - }; - BRp$c.checkForInvalidEdgeWarning = function(edge) { - var rs = edge[0]._private.rscratch; - if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) { - rs.loggedErr = false; - } else { - if (!rs.loggedErr) { - rs.loggedErr = true; - warn("Edge `" + edge.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."); - } - } - }; - BRp$c.findEdgeControlPoints = function(edges) { - var _this = this; - if (!edges || edges.length === 0) { - return; - } - var r = this; - var cy = r.cy; - var hasCompounds = cy.hasCompoundNodes(); - var hashTable = { - map: new Map$2(), - get: function get2(pairId2) { - var map2 = this.map.get(pairId2[0]); - if (map2 != null) { - return map2.get(pairId2[1]); - } else { - return null; - } - }, - set: function set2(pairId2, val) { - var map2 = this.map.get(pairId2[0]); - if (map2 == null) { - map2 = new Map$2(); - this.map.set(pairId2[0], map2); - } - map2.set(pairId2[1], val); - } - }; - var pairIds = []; - var haystackEdges = []; - for (var i2 = 0; i2 < edges.length; i2++) { - var edge = edges[i2]; - var _p = edge._private; - var curveStyle = edge.pstyle("curve-style").value; - if (edge.removed() || !edge.takesUpSpace()) { - continue; - } - if (curveStyle === "haystack") { - haystackEdges.push(edge); - continue; - } - var edgeIsUnbundled = curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "straight" || curveStyle === "straight-triangle" || curveStyle === "taxi"; - var edgeIsBezier = curveStyle === "unbundled-bezier" || curveStyle === "bezier"; - var src = _p.source; - var tgt = _p.target; - var srcIndex = src.poolIndex(); - var tgtIndex = tgt.poolIndex(); - var pairId = [srcIndex, tgtIndex].sort(); - var tableEntry = hashTable.get(pairId); - if (tableEntry == null) { - tableEntry = { - eles: [] - }; - hashTable.set(pairId, tableEntry); - pairIds.push(pairId); - } - tableEntry.eles.push(edge); - if (edgeIsUnbundled) { - tableEntry.hasUnbundled = true; - } - if (edgeIsBezier) { - tableEntry.hasBezier = true; - } - } - var _loop = function _loop2(p3) { - var pairId2 = pairIds[p3]; - var pairInfo = hashTable.get(pairId2); - var swappedpairInfo = void 0; - if (!pairInfo.hasUnbundled) { - var pllEdges = pairInfo.eles[0].parallelEdges().filter(function(e) { - return e.isBundledBezier(); - }); - clearArray(pairInfo.eles); - pllEdges.forEach(function(edge2) { - return pairInfo.eles.push(edge2); - }); - pairInfo.eles.sort(function(edge1, edge2) { - return edge1.poolIndex() - edge2.poolIndex(); - }); - } - var firstEdge = pairInfo.eles[0]; - var src2 = firstEdge.source(); - var tgt2 = firstEdge.target(); - if (src2.poolIndex() > tgt2.poolIndex()) { - var temp = src2; - src2 = tgt2; - tgt2 = temp; - } - var srcPos = pairInfo.srcPos = src2.position(); - var tgtPos = pairInfo.tgtPos = tgt2.position(); - var srcW = pairInfo.srcW = src2.outerWidth(); - var srcH = pairInfo.srcH = src2.outerHeight(); - var tgtW = pairInfo.tgtW = tgt2.outerWidth(); - var tgtH = pairInfo.tgtH = tgt2.outerHeight(); - var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src2)]; - var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt2)]; - pairInfo.dirCounts = { - "north": 0, - "west": 0, - "south": 0, - "east": 0, - "northwest": 0, - "southwest": 0, - "northeast": 0, - "southeast": 0 - }; - for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) { - var _edge = pairInfo.eles[_i2]; - var rs = _edge[0]._private.rscratch; - var _curveStyle = _edge.pstyle("curve-style").value; - var _edgeIsUnbundled = _curveStyle === "unbundled-bezier" || _curveStyle === "segments" || _curveStyle === "taxi"; - var edgeIsSwapped = !src2.same(_edge.source()); - if (!pairInfo.calculatedIntersection && src2 !== tgt2 && (pairInfo.hasBezier || pairInfo.hasUnbundled)) { - pairInfo.calculatedIntersection = true; - var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0); - var srcIntn = pairInfo.srcIntn = srcOutside; - var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0); - var tgtIntn = pairInfo.tgtIntn = tgtOutside; - var intersectionPts = pairInfo.intersectionPts = { - x1: srcOutside[0], - x2: tgtOutside[0], - y1: srcOutside[1], - y2: tgtOutside[1] - }; - var posPts = pairInfo.posPts = { - x1: srcPos.x, - x2: tgtPos.x, - y1: srcPos.y, - y2: tgtPos.y - }; - var dy = tgtOutside[1] - srcOutside[1]; - var dx = tgtOutside[0] - srcOutside[0]; - var l = Math.sqrt(dx * dx + dy * dy); - var vector = pairInfo.vector = { - x: dx, - y: dy - }; - var vectorNorm = pairInfo.vectorNorm = { - x: vector.x / l, - y: vector.y / l - }; - var vectorNormInverse = { - x: -vectorNorm.y, - y: vectorNorm.x - }; - pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y); - pairInfo.vectorNormInverse = vectorNormInverse; - swappedpairInfo = { - nodesOverlap: pairInfo.nodesOverlap, - dirCounts: pairInfo.dirCounts, - calculatedIntersection: true, - hasBezier: pairInfo.hasBezier, - hasUnbundled: pairInfo.hasUnbundled, - eles: pairInfo.eles, - srcPos: tgtPos, - tgtPos: srcPos, - srcW: tgtW, - srcH: tgtH, - tgtW: srcW, - tgtH: srcH, - srcIntn: tgtIntn, - tgtIntn: srcIntn, - srcShape: tgtShape, - tgtShape: srcShape, - posPts: { - x1: posPts.x2, - y1: posPts.y2, - x2: posPts.x1, - y2: posPts.y1 - }, - intersectionPts: { - x1: intersectionPts.x2, - y1: intersectionPts.y2, - x2: intersectionPts.x1, - y2: intersectionPts.y1 - }, - vector: { - x: -vector.x, - y: -vector.y - }, - vectorNorm: { - x: -vectorNorm.x, - y: -vectorNorm.y - }, - vectorNormInverse: { - x: -vectorNormInverse.x, - y: -vectorNormInverse.y - } - }; - } - var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo; - rs.nodesOverlap = passedPairInfo.nodesOverlap; - rs.srcIntn = passedPairInfo.srcIntn; - rs.tgtIntn = passedPairInfo.tgtIntn; - if (hasCompounds && (src2.isParent() || src2.isChild() || tgt2.isParent() || tgt2.isChild()) && (src2.parents().anySame(tgt2) || tgt2.parents().anySame(src2) || src2.same(tgt2) && src2.isParent())) { - _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); - } else if (src2 === tgt2) { - _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); - } else if (_curveStyle === "segments") { - _this.findSegmentsPoints(_edge, passedPairInfo); - } else if (_curveStyle === "taxi") { - _this.findTaxiPoints(_edge, passedPairInfo); - } else if (_curveStyle === "straight" || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) { - _this.findStraightEdgePoints(_edge); - } else { - _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped); - } - _this.findEndpoints(_edge); - _this.tryToCorrectInvalidPoints(_edge, passedPairInfo); - _this.checkForInvalidEdgeWarning(_edge); - _this.storeAllpts(_edge); - _this.storeEdgeProjections(_edge); - _this.calculateArrowAngles(_edge); - _this.recalculateEdgeLabelProjections(_edge); - _this.calculateLabelAngles(_edge); - } - }; - for (var p2 = 0; p2 < pairIds.length; p2++) { - _loop(p2); - } - this.findHaystackPoints(haystackEdges); - }; - function getPts(pts2) { - var retPts = []; - if (pts2 == null) { - return; - } - for (var i2 = 0; i2 < pts2.length; i2 += 2) { - var x = pts2[i2]; - var y = pts2[i2 + 1]; - retPts.push({ - x, - y - }); - } - return retPts; - } - BRp$c.getSegmentPoints = function(edge) { - var rs = edge[0]._private.rscratch; - var type = rs.edgeType; - if (type === "segments") { - this.recalculateRenderedStyle(edge); - return getPts(rs.segpts); - } - }; - BRp$c.getControlPoints = function(edge) { - var rs = edge[0]._private.rscratch; - var type = rs.edgeType; - if (type === "bezier" || type === "multibezier" || type === "self" || type === "compound") { - this.recalculateRenderedStyle(edge); - return getPts(rs.ctrlpts); - } - }; - BRp$c.getEdgeMidpoint = function(edge) { - var rs = edge[0]._private.rscratch; - this.recalculateRenderedStyle(edge); - return { - x: rs.midX, - y: rs.midY - }; - }; - var BRp$b = {}; - BRp$b.manualEndptToPx = function(node, prop) { - var r = this; - var npos = node.position(); - var w = node.outerWidth(); - var h = node.outerHeight(); - if (prop.value.length === 2) { - var p2 = [prop.pfValue[0], prop.pfValue[1]]; - if (prop.units[0] === "%") { - p2[0] = p2[0] * w; - } - if (prop.units[1] === "%") { - p2[1] = p2[1] * h; - } - p2[0] += npos.x; - p2[1] += npos.y; - return p2; - } else { - var angle = prop.pfValue[0]; - angle = -Math.PI / 2 + angle; - var l = 2 * Math.max(w, h); - var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l]; - return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0); - } - }; - BRp$b.findEndpoints = function(edge) { - var r = this; - var intersect; - var source = edge.source()[0]; - var target = edge.target()[0]; - var srcPos = source.position(); - var tgtPos = target.position(); - var tgtArShape = edge.pstyle("target-arrow-shape").value; - var srcArShape = edge.pstyle("source-arrow-shape").value; - var tgtDist = edge.pstyle("target-distance-from-node").pfValue; - var srcDist = edge.pstyle("source-distance-from-node").pfValue; - var curveStyle = edge.pstyle("curve-style").value; - var rs = edge._private.rscratch; - var et = rs.edgeType; - var taxi = curveStyle === "taxi"; - var self2 = et === "self" || et === "compound"; - var bezier = et === "bezier" || et === "multibezier" || self2; - var multi = et !== "bezier"; - var lines = et === "straight" || et === "segments"; - var segments = et === "segments"; - var hasEndpts = bezier || multi || lines; - var overrideEndpts = self2 || taxi; - var srcManEndpt = edge.pstyle("source-endpoint"); - var srcManEndptVal = overrideEndpts ? "outside-to-node" : srcManEndpt.value; - var tgtManEndpt = edge.pstyle("target-endpoint"); - var tgtManEndptVal = overrideEndpts ? "outside-to-node" : tgtManEndpt.value; - rs.srcManEndpt = srcManEndpt; - rs.tgtManEndpt = tgtManEndpt; - var p1; - var p2; - var p1_i; - var p2_i; - if (bezier) { - var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]]; - var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart; - p1 = cpEnd; - p2 = cpStart; - } else if (lines) { - var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2); - var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2); - p1 = tgtArrowFromPt; - p2 = srcArrowFromPt; - } - if (tgtManEndptVal === "inside-to-node") { - intersect = [tgtPos.x, tgtPos.y]; - } else if (tgtManEndpt.units) { - intersect = this.manualEndptToPx(target, tgtManEndpt); - } else if (tgtManEndptVal === "outside-to-line") { - intersect = rs.tgtIntn; - } else { - if (tgtManEndptVal === "outside-to-node" || tgtManEndptVal === "outside-to-node-or-label") { - p1_i = p1; - } else if (tgtManEndptVal === "outside-to-line" || tgtManEndptVal === "outside-to-line-or-label") { - p1_i = [srcPos.x, srcPos.y]; - } - intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0); - if (tgtManEndptVal === "outside-to-node-or-label" || tgtManEndptVal === "outside-to-line-or-label") { - var trs = target._private.rscratch; - var lw = trs.labelWidth; - var lh = trs.labelHeight; - var lx = trs.labelX; - var ly = trs.labelY; - var lw2 = lw / 2; - var lh2 = lh / 2; - var va = target.pstyle("text-valign").value; - if (va === "top") { - ly -= lh2; - } else if (va === "bottom") { - ly += lh2; - } - var ha = target.pstyle("text-halign").value; - if (ha === "left") { - lx -= lw2; - } else if (ha === "right") { - lx += lw2; - } - var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y); - if (labelIntersect.length > 0) { - var refPt = srcPos; - var intSqdist = sqdist(refPt, array2point(intersect)); - var labIntSqdist = sqdist(refPt, array2point(labelIntersect)); - var minSqDist = intSqdist; - if (labIntSqdist < intSqdist) { - intersect = labelIntersect; - minSqDist = labIntSqdist; - } - if (labelIntersect.length > 2) { - var labInt2SqDist = sqdist(refPt, { - x: labelIntersect[2], - y: labelIntersect[3] - }); - if (labInt2SqDist < minSqDist) { - intersect = [labelIntersect[2], labelIntersect[3]]; - } - } - } - } - } - var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist); - var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist); - rs.endX = edgeEnd[0]; - rs.endY = edgeEnd[1]; - rs.arrowEndX = arrowEnd[0]; - rs.arrowEndY = arrowEnd[1]; - if (srcManEndptVal === "inside-to-node") { - intersect = [srcPos.x, srcPos.y]; - } else if (srcManEndpt.units) { - intersect = this.manualEndptToPx(source, srcManEndpt); - } else if (srcManEndptVal === "outside-to-line") { - intersect = rs.srcIntn; - } else { - if (srcManEndptVal === "outside-to-node" || srcManEndptVal === "outside-to-node-or-label") { - p2_i = p2; - } else if (srcManEndptVal === "outside-to-line" || srcManEndptVal === "outside-to-line-or-label") { - p2_i = [tgtPos.x, tgtPos.y]; - } - intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0); - if (srcManEndptVal === "outside-to-node-or-label" || srcManEndptVal === "outside-to-line-or-label") { - var srs = source._private.rscratch; - var _lw = srs.labelWidth; - var _lh = srs.labelHeight; - var _lx = srs.labelX; - var _ly = srs.labelY; - var _lw2 = _lw / 2; - var _lh2 = _lh / 2; - var _va = source.pstyle("text-valign").value; - if (_va === "top") { - _ly -= _lh2; - } else if (_va === "bottom") { - _ly += _lh2; - } - var _ha = source.pstyle("text-halign").value; - if (_ha === "left") { - _lx -= _lw2; - } else if (_ha === "right") { - _lx += _lw2; - } - var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y); - if (_labelIntersect.length > 0) { - var _refPt = tgtPos; - var _intSqdist = sqdist(_refPt, array2point(intersect)); - var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect)); - var _minSqDist = _intSqdist; - if (_labIntSqdist < _intSqdist) { - intersect = [_labelIntersect[0], _labelIntersect[1]]; - _minSqDist = _labIntSqdist; - } - if (_labelIntersect.length > 2) { - var _labInt2SqDist = sqdist(_refPt, { - x: _labelIntersect[2], - y: _labelIntersect[3] - }); - if (_labInt2SqDist < _minSqDist) { - intersect = [_labelIntersect[2], _labelIntersect[3]]; - } - } - } - } - } - var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist); - var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist); - rs.startX = edgeStart[0]; - rs.startY = edgeStart[1]; - rs.arrowStartX = arrowStart[0]; - rs.arrowStartY = arrowStart[1]; - if (hasEndpts) { - if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) { - rs.badLine = true; - } else { - rs.badLine = false; - } - } - }; - BRp$b.getSourceEndpoint = function(edge) { - var rs = edge[0]._private.rscratch; - this.recalculateRenderedStyle(edge); - switch (rs.edgeType) { - case "haystack": - return { - x: rs.haystackPts[0], - y: rs.haystackPts[1] - }; - default: - return { - x: rs.arrowStartX, - y: rs.arrowStartY - }; - } - }; - BRp$b.getTargetEndpoint = function(edge) { - var rs = edge[0]._private.rscratch; - this.recalculateRenderedStyle(edge); - switch (rs.edgeType) { - case "haystack": - return { - x: rs.haystackPts[2], - y: rs.haystackPts[3] - }; - default: - return { - x: rs.arrowEndX, - y: rs.arrowEndY - }; - } - }; - var BRp$a = {}; - function pushBezierPts(r, edge, pts2) { - var qbezierAt$1 = function qbezierAt$12(p1, p22, p3, t) { - return qbezierAt(p1, p22, p3, t); - }; - var _p = edge._private; - var bpts = _p.rstyle.bezierPts; - for (var i2 = 0; i2 < r.bezierProjPcts.length; i2++) { - var p2 = r.bezierProjPcts[i2]; - bpts.push({ - x: qbezierAt$1(pts2[0], pts2[2], pts2[4], p2), - y: qbezierAt$1(pts2[1], pts2[3], pts2[5], p2) - }); - } - } - BRp$a.storeEdgeProjections = function(edge) { - var _p = edge._private; - var rs = _p.rscratch; - var et = rs.edgeType; - _p.rstyle.bezierPts = null; - _p.rstyle.linePts = null; - _p.rstyle.haystackPts = null; - if (et === "multibezier" || et === "bezier" || et === "self" || et === "compound") { - _p.rstyle.bezierPts = []; - for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) { - pushBezierPts(this, edge, rs.allpts.slice(i2, i2 + 6)); - } - } else if (et === "segments") { - var lpts = _p.rstyle.linePts = []; - for (var i2 = 0; i2 + 1 < rs.allpts.length; i2 += 2) { - lpts.push({ - x: rs.allpts[i2], - y: rs.allpts[i2 + 1] - }); - } - } else if (et === "haystack") { - var hpts = rs.haystackPts; - _p.rstyle.haystackPts = [{ - x: hpts[0], - y: hpts[1] - }, { - x: hpts[2], - y: hpts[3] - }]; - } - _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth; - }; - BRp$a.recalculateEdgeProjections = function(edges) { - this.findEdgeControlPoints(edges); - }; - var BRp$9 = {}; - BRp$9.recalculateNodeLabelProjection = function(node) { - var content = node.pstyle("label").strValue; - if (emptyString(content)) { - return; - } - var textX, textY; - var _p = node._private; - var nodeWidth = node.width(); - var nodeHeight = node.height(); - var padding = node.padding(); - var nodePos = node.position(); - var textHalign = node.pstyle("text-halign").strValue; - var textValign = node.pstyle("text-valign").strValue; - var rs = _p.rscratch; - var rstyle = _p.rstyle; - switch (textHalign) { - case "left": - textX = nodePos.x - nodeWidth / 2 - padding; - break; - case "right": - textX = nodePos.x + nodeWidth / 2 + padding; - break; - default: - textX = nodePos.x; - } - switch (textValign) { - case "top": - textY = nodePos.y - nodeHeight / 2 - padding; - break; - case "bottom": - textY = nodePos.y + nodeHeight / 2 + padding; - break; - default: - textY = nodePos.y; - } - rs.labelX = textX; - rs.labelY = textY; - rstyle.labelX = textX; - rstyle.labelY = textY; - this.calculateLabelAngles(node); - this.applyLabelDimensions(node); - }; - var lineAngleFromDelta = function lineAngleFromDelta2(dx, dy) { - var angle = Math.atan(dy / dx); - if (dx === 0 && angle < 0) { - angle = angle * -1; - } - return angle; - }; - var lineAngle = function lineAngle2(p0, p1) { - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - return lineAngleFromDelta(dx, dy); - }; - var bezierAngle = function bezierAngle2(p0, p1, p2, t) { - var t0 = bound(0, t - 1e-3, 1); - var t1 = bound(0, t + 1e-3, 1); - var lp0 = qbezierPtAt(p0, p1, p2, t0); - var lp1 = qbezierPtAt(p0, p1, p2, t1); - return lineAngle(lp0, lp1); - }; - BRp$9.recalculateEdgeLabelProjections = function(edge) { - var p2; - var _p = edge._private; - var rs = _p.rscratch; - var r = this; - var content = { - mid: edge.pstyle("label").strValue, - source: edge.pstyle("source-label").strValue, - target: edge.pstyle("target-label").strValue - }; - if (content.mid || content.source || content.target) - ; - else { - return; - } - p2 = { - x: rs.midX, - y: rs.midY - }; - var setRs = function setRs2(propName, prefix, value) { - setPrefixedProperty(_p.rscratch, propName, prefix, value); - setPrefixedProperty(_p.rstyle, propName, prefix, value); - }; - setRs("labelX", null, p2.x); - setRs("labelY", null, p2.y); - var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY); - setRs("labelAutoAngle", null, midAngle); - var createControlPointInfo = function createControlPointInfo2() { - if (createControlPointInfo2.cache) { - return createControlPointInfo2.cache; - } - var ctrlpts = []; - for (var i2 = 0; i2 + 5 < rs.allpts.length; i2 += 4) { - var p0 = { - x: rs.allpts[i2], - y: rs.allpts[i2 + 1] - }; - var p1 = { - x: rs.allpts[i2 + 2], - y: rs.allpts[i2 + 3] - }; - var p22 = { - x: rs.allpts[i2 + 4], - y: rs.allpts[i2 + 5] - }; - ctrlpts.push({ - p0, - p1, - p2: p22, - startDist: 0, - length: 0, - segments: [] - }); - } - var bpts = _p.rstyle.bezierPts; - var nProjs = r.bezierProjPcts.length; - function addSegment(cp2, p02, p12, t0, t1) { - var length = dist(p02, p12); - var prevSegment = cp2.segments[cp2.segments.length - 1]; - var segment = { - p0: p02, - p1: p12, - t0, - t1, - startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0, - length - }; - cp2.segments.push(segment); - cp2.length += length; - } - for (var _i = 0; _i < ctrlpts.length; _i++) { - var cp = ctrlpts[_i]; - var prevCp = ctrlpts[_i - 1]; - if (prevCp) { - cp.startDist = prevCp.startDist + prevCp.length; - } - addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); - for (var j = 0; j < nProjs - 1; j++) { - addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]); - } - addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); - } - return createControlPointInfo2.cache = ctrlpts; - }; - var calculateEndProjection = function calculateEndProjection2(prefix) { - var angle; - var isSrc = prefix === "source"; - if (!content[prefix]) { - return; - } - var offset = edge.pstyle(prefix + "-text-offset").pfValue; - switch (rs.edgeType) { - case "self": - case "compound": - case "bezier": - case "multibezier": { - var cps = createControlPointInfo(); - var selected; - var startDist = 0; - var totalDist = 0; - for (var i2 = 0; i2 < cps.length; i2++) { - var _cp = cps[isSrc ? i2 : cps.length - 1 - i2]; - for (var j = 0; j < _cp.segments.length; j++) { - var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j]; - var lastSeg = i2 === cps.length - 1 && j === _cp.segments.length - 1; - startDist = totalDist; - totalDist += _seg.length; - if (totalDist >= offset || lastSeg) { - selected = { - cp: _cp, - segment: _seg - }; - break; - } - } - if (selected) { - break; - } - } - var cp = selected.cp; - var seg = selected.segment; - var tSegment = (offset - startDist) / seg.length; - var segDt = seg.t1 - seg.t0; - var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment; - t = bound(0, t, 1); - p2 = qbezierPtAt(cp.p0, cp.p1, cp.p2, t); - angle = bezierAngle(cp.p0, cp.p1, cp.p2, t); - break; - } - case "straight": - case "segments": - case "haystack": { - var d = 0, di, d0; - var p0, p1; - var l = rs.allpts.length; - for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) { - if (isSrc) { - p0 = { - x: rs.allpts[_i2], - y: rs.allpts[_i2 + 1] - }; - p1 = { - x: rs.allpts[_i2 + 2], - y: rs.allpts[_i2 + 3] - }; - } else { - p0 = { - x: rs.allpts[l - 2 - _i2], - y: rs.allpts[l - 1 - _i2] - }; - p1 = { - x: rs.allpts[l - 4 - _i2], - y: rs.allpts[l - 3 - _i2] - }; - } - di = dist(p0, p1); - d0 = d; - d += di; - if (d >= offset) { - break; - } - } - var pD = offset - d0; - var _t = pD / di; - _t = bound(0, _t, 1); - p2 = lineAt(p0, p1, _t); - angle = lineAngle(p0, p1); - break; - } - } - setRs("labelX", prefix, p2.x); - setRs("labelY", prefix, p2.y); - setRs("labelAutoAngle", prefix, angle); - }; - calculateEndProjection("source"); - calculateEndProjection("target"); - this.applyLabelDimensions(edge); - }; - BRp$9.applyLabelDimensions = function(ele) { - this.applyPrefixedLabelDimensions(ele); - if (ele.isEdge()) { - this.applyPrefixedLabelDimensions(ele, "source"); - this.applyPrefixedLabelDimensions(ele, "target"); - } - }; - BRp$9.applyPrefixedLabelDimensions = function(ele, prefix) { - var _p = ele._private; - var text = this.getLabelText(ele, prefix); - var labelDims = this.calculateLabelDimensions(ele, text); - var lineHeight = ele.pstyle("line-height").pfValue; - var textWrap = ele.pstyle("text-wrap").strValue; - var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || []; - var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1); - var normPerLineHeight = labelDims.height / numLines; - var labelLineHeight = normPerLineHeight * lineHeight; - var width = labelDims.width; - var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight; - setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width); - setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width); - setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height); - setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height); - setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight); - }; - BRp$9.getLabelText = function(ele, prefix) { - var _p = ele._private; - var pfd = prefix ? prefix + "-" : ""; - var text = ele.pstyle(pfd + "label").strValue; - var textTransform = ele.pstyle("text-transform").value; - var rscratch = function rscratch2(propName, value) { - if (value) { - setPrefixedProperty(_p.rscratch, propName, prefix, value); - return value; - } else { - return getPrefixedProperty(_p.rscratch, propName, prefix); - } - }; - if (!text) { - return ""; - } - if (textTransform == "none") - ; - else if (textTransform == "uppercase") { - text = text.toUpperCase(); - } else if (textTransform == "lowercase") { - text = text.toLowerCase(); - } - var wrapStyle = ele.pstyle("text-wrap").value; - if (wrapStyle === "wrap") { - var labelKey = rscratch("labelKey"); - if (labelKey != null && rscratch("labelWrapKey") === labelKey) { - return rscratch("labelWrapCachedText"); - } - var zwsp = "​"; - var lines = text.split("\n"); - var maxW = ele.pstyle("text-max-width").pfValue; - var overflow = ele.pstyle("text-overflow-wrap").value; - var overflowAny = overflow === "anywhere"; - var wrappedLines = []; - var wordsRegex = /[\s\u200b]+/; - var wordSeparator = overflowAny ? "" : " "; - for (var l = 0; l < lines.length; l++) { - var line = lines[l]; - var lineDims = this.calculateLabelDimensions(ele, line); - var lineW = lineDims.width; - if (overflowAny) { - var processedLine = line.split("").join(zwsp); - line = processedLine; - } - if (lineW > maxW) { - var words = line.split(wordsRegex); - var subline = ""; - for (var w = 0; w < words.length; w++) { - var word = words[w]; - var testLine = subline.length === 0 ? word : subline + wordSeparator + word; - var testDims = this.calculateLabelDimensions(ele, testLine); - var testW = testDims.width; - if (testW <= maxW) { - subline += word + wordSeparator; - } else { - if (subline) { - wrappedLines.push(subline); - } - subline = word + wordSeparator; - } - } - if (!subline.match(/^[\s\u200b]+$/)) { - wrappedLines.push(subline); - } - } else { - wrappedLines.push(line); - } - } - rscratch("labelWrapCachedLines", wrappedLines); - text = rscratch("labelWrapCachedText", wrappedLines.join("\n")); - rscratch("labelWrapKey", labelKey); - } else if (wrapStyle === "ellipsis") { - var _maxW = ele.pstyle("text-max-width").pfValue; - var ellipsized = ""; - var ellipsis = "…"; - var incLastCh = false; - if (this.calculateLabelDimensions(ele, text).width < _maxW) { - return text; - } - for (var i2 = 0; i2 < text.length; i2++) { - var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i2] + ellipsis).width; - if (widthWithNextCh > _maxW) { - break; - } - ellipsized += text[i2]; - if (i2 === text.length - 1) { - incLastCh = true; - } - } - if (!incLastCh) { - ellipsized += ellipsis; - } - return ellipsized; - } - return text; - }; - BRp$9.getLabelJustification = function(ele) { - var justification = ele.pstyle("text-justification").strValue; - var textHalign = ele.pstyle("text-halign").strValue; - if (justification === "auto") { - if (ele.isNode()) { - switch (textHalign) { - case "left": - return "right"; - case "right": - return "left"; - default: - return "center"; - } - } else { - return "center"; - } - } else { - return justification; - } - }; - BRp$9.calculateLabelDimensions = function(ele, text) { - var r = this; - var cacheKey = hashString(text, ele._private.labelDimsKey); - var cache2 = r.labelDimCache || (r.labelDimCache = []); - var existingVal = cache2[cacheKey]; - if (existingVal != null) { - return existingVal; - } - var padding = 0; - var fStyle = ele.pstyle("font-style").strValue; - var size = ele.pstyle("font-size").pfValue; - var family = ele.pstyle("font-family").strValue; - var weight = ele.pstyle("font-weight").strValue; - var canvas = this.labelCalcCanvas; - var c2d = this.labelCalcCanvasContext; - if (!canvas) { - canvas = this.labelCalcCanvas = document.createElement("canvas"); - c2d = this.labelCalcCanvasContext = canvas.getContext("2d"); - var ds = canvas.style; - ds.position = "absolute"; - ds.left = "-9999px"; - ds.top = "-9999px"; - ds.zIndex = "-1"; - ds.visibility = "hidden"; - ds.pointerEvents = "none"; - } - c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size, "px ").concat(family); - var width = 0; - var height = 0; - var lines = text.split("\n"); - for (var i2 = 0; i2 < lines.length; i2++) { - var line = lines[i2]; - var metrics = c2d.measureText(line); - var w = Math.ceil(metrics.width); - var h = size; - width = Math.max(w, width); - height += h; - } - width += padding; - height += padding; - return cache2[cacheKey] = { - width, - height - }; - }; - BRp$9.calculateLabelAngle = function(ele, prefix) { - var _p = ele._private; - var rs = _p.rscratch; - var isEdge = ele.isEdge(); - var prefixDash = prefix ? prefix + "-" : ""; - var rot = ele.pstyle(prefixDash + "text-rotation"); - var rotStr = rot.strValue; - if (rotStr === "none") { - return 0; - } else if (isEdge && rotStr === "autorotate") { - return rs.labelAutoAngle; - } else if (rotStr === "autorotate") { - return 0; - } else { - return rot.pfValue; - } - }; - BRp$9.calculateLabelAngles = function(ele) { - var r = this; - var isEdge = ele.isEdge(); - var _p = ele._private; - var rs = _p.rscratch; - rs.labelAngle = r.calculateLabelAngle(ele); - if (isEdge) { - rs.sourceLabelAngle = r.calculateLabelAngle(ele, "source"); - rs.targetLabelAngle = r.calculateLabelAngle(ele, "target"); - } - }; - var BRp$8 = {}; - var TOO_SMALL_CUT_RECT = 28; - var warnedCutRect = false; - BRp$8.getNodeShape = function(node) { - var r = this; - var shape = node.pstyle("shape").value; - if (shape === "cutrectangle" && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) { - if (!warnedCutRect) { - warn("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"); - warnedCutRect = true; - } - return "rectangle"; - } - if (node.isParent()) { - if (shape === "rectangle" || shape === "roundrectangle" || shape === "round-rectangle" || shape === "cutrectangle" || shape === "cut-rectangle" || shape === "barrel") { - return shape; - } else { - return "rectangle"; - } - } - if (shape === "polygon") { - var points = node.pstyle("shape-polygon-points").value; - return r.nodeShapes.makePolygon(points).name; - } - return shape; - }; - var BRp$7 = {}; - BRp$7.registerCalculationListeners = function() { - var cy = this.cy; - var elesToUpdate = cy.collection(); - var r = this; - var enqueue = function enqueue2(eles) { - var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - elesToUpdate.merge(eles); - if (dirtyStyleCaches) { - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var _p = ele._private; - var rstyle = _p.rstyle; - rstyle.clean = false; - rstyle.cleanConnected = false; - } - } - }; - r.binder(cy).on("bounds.* dirty.*", function onDirtyBounds(e) { - var ele = e.target; - enqueue(ele); - }).on("style.* background.*", function onDirtyStyle(e) { - var ele = e.target; - enqueue(ele, false); - }); - var updateEleCalcs = function updateEleCalcs2(willDraw) { - if (willDraw) { - var fns = r.onUpdateEleCalcsFns; - elesToUpdate.cleanStyle(); - for (var i2 = 0; i2 < elesToUpdate.length; i2++) { - var ele = elesToUpdate[i2]; - var rstyle = ele._private.rstyle; - if (ele.isNode() && !rstyle.cleanConnected) { - enqueue(ele.connectedEdges()); - rstyle.cleanConnected = true; - } - } - if (fns) { - for (var _i = 0; _i < fns.length; _i++) { - var fn2 = fns[_i]; - fn2(willDraw, elesToUpdate); - } - } - r.recalculateRenderedStyle(elesToUpdate); - elesToUpdate = cy.collection(); - } - }; - r.flushRenderedStyleQueue = function() { - updateEleCalcs(true); - }; - r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs); - }; - BRp$7.onUpdateEleCalcs = function(fn2) { - var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || []; - fns.push(fn2); - }; - BRp$7.recalculateRenderedStyle = function(eles, useCache) { - var isCleanConnected = function isCleanConnected2(ele2) { - return ele2._private.rstyle.cleanConnected; - }; - var edges = []; - var nodes2 = []; - if (this.destroyed) { - return; - } - if (useCache === void 0) { - useCache = true; - } - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var _p = ele._private; - var rstyle = _p.rstyle; - if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) { - rstyle.clean = false; - } - if (useCache && rstyle.clean || ele.removed()) { - continue; - } - if (ele.pstyle("display").value === "none") { - continue; - } - if (_p.group === "nodes") { - nodes2.push(ele); - } else { - edges.push(ele); - } - rstyle.clean = true; - } - for (var _i2 = 0; _i2 < nodes2.length; _i2++) { - var _ele = nodes2[_i2]; - var _p2 = _ele._private; - var _rstyle = _p2.rstyle; - var pos = _ele.position(); - this.recalculateNodeLabelProjection(_ele); - _rstyle.nodeX = pos.x; - _rstyle.nodeY = pos.y; - _rstyle.nodeW = _ele.pstyle("width").pfValue; - _rstyle.nodeH = _ele.pstyle("height").pfValue; - } - this.recalculateEdgeProjections(edges); - for (var _i3 = 0; _i3 < edges.length; _i3++) { - var _ele2 = edges[_i3]; - var _p3 = _ele2._private; - var _rstyle2 = _p3.rstyle; - var rs = _p3.rscratch; - _rstyle2.srcX = rs.arrowStartX; - _rstyle2.srcY = rs.arrowStartY; - _rstyle2.tgtX = rs.arrowEndX; - _rstyle2.tgtY = rs.arrowEndY; - _rstyle2.midX = rs.midX; - _rstyle2.midY = rs.midY; - _rstyle2.labelAngle = rs.labelAngle; - _rstyle2.sourceLabelAngle = rs.sourceLabelAngle; - _rstyle2.targetLabelAngle = rs.targetLabelAngle; - } - }; - var BRp$6 = {}; - BRp$6.updateCachedGrabbedEles = function() { - var eles = this.cachedZSortedEles; - if (!eles) { - return; - } - eles.drag = []; - eles.nondrag = []; - var grabTargets = []; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var rs = ele._private.rscratch; - if (ele.grabbed() && !ele.isParent()) { - grabTargets.push(ele); - } else if (rs.inDragLayer) { - eles.drag.push(ele); - } else { - eles.nondrag.push(ele); - } - } - for (var i2 = 0; i2 < grabTargets.length; i2++) { - var ele = grabTargets[i2]; - eles.drag.push(ele); - } - }; - BRp$6.invalidateCachedZSortedEles = function() { - this.cachedZSortedEles = null; - }; - BRp$6.getCachedZSortedEles = function(forceRecalc) { - if (forceRecalc || !this.cachedZSortedEles) { - var eles = this.cy.mutableElements().toArray(); - eles.sort(zIndexSort); - eles.interactive = eles.filter(function(ele) { - return ele.interactive(); - }); - this.cachedZSortedEles = eles; - this.updateCachedGrabbedEles(); - } else { - eles = this.cachedZSortedEles; - } - return eles; - }; - var BRp$5 = {}; - [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function(props) { - extend(BRp$5, props); - }); - var BRp$4 = {}; - BRp$4.getCachedImage = function(url, crossOrigin, onLoad) { - var r = this; - var imageCache = r.imageCache = r.imageCache || {}; - var cache2 = imageCache[url]; - if (cache2) { - if (!cache2.image.complete) { - cache2.image.addEventListener("load", onLoad); - } - return cache2.image; - } else { - cache2 = imageCache[url] = imageCache[url] || {}; - var image = cache2.image = new Image(); - image.addEventListener("load", onLoad); - image.addEventListener("error", function() { - image.error = true; - }); - var dataUriPrefix = "data:"; - var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix; - if (!isDataUri) { - crossOrigin = crossOrigin === "null" ? null : crossOrigin; - image.crossOrigin = crossOrigin; - } - image.src = url; - return image; - } - }; - var BRp$3 = {}; - BRp$3.registerBinding = function(target, event2, handler, useCapture) { - var args = Array.prototype.slice.apply(arguments, [1]); - var b = this.binder(target); - return b.on.apply(b, args); - }; - BRp$3.binder = function(tgt) { - var r = this; - var containerWindow = r.cy.window(); - var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt); - if (r.supportsPassiveEvents == null) { - var supportsPassive = false; - try { - var opts = Object.defineProperty({}, "passive", { - get: function get2() { - supportsPassive = true; - return true; - } - }); - containerWindow.addEventListener("test", null, opts); - } catch (err) { - } - r.supportsPassiveEvents = supportsPassive; - } - var on = function on2(event2, handler, useCapture) { - var args = Array.prototype.slice.call(arguments); - if (tgtIsDom && r.supportsPassiveEvents) { - args[2] = { - capture: useCapture != null ? useCapture : false, - passive: false, - once: false - }; - } - r.bindings.push({ - target: tgt, - args - }); - (tgt.addEventListener || tgt.on).apply(tgt, args); - return this; - }; - return { - on, - addEventListener: on, - addListener: on, - bind: on - }; - }; - BRp$3.nodeIsDraggable = function(node) { - return node && node.isNode() && !node.locked() && node.grabbable(); - }; - BRp$3.nodeIsGrabbable = function(node) { - return this.nodeIsDraggable(node) && node.interactive(); - }; - BRp$3.load = function() { - var r = this; - var containerWindow = r.cy.window(); - var isSelected = function isSelected2(ele) { - return ele.selected(); - }; - var triggerEvents = function triggerEvents2(target, names, e, position2) { - if (target == null) { - target = r.cy; - } - for (var i2 = 0; i2 < names.length; i2++) { - var name2 = names[i2]; - target.emit({ - originalEvent: e, - type: name2, - position: position2 - }); - } - }; - var isMultSelKeyDown = function isMultSelKeyDown2(e) { - return e.shiftKey || e.metaKey || e.ctrlKey; - }; - var allowPanningPassthrough = function allowPanningPassthrough2(down, downs) { - var allowPassthrough = true; - if (r.cy.hasCompoundNodes() && down && down.pannable()) { - for (var i2 = 0; downs && i2 < downs.length; i2++) { - var down = downs[i2]; - if (down.isNode() && down.isParent() && !down.pannable()) { - allowPassthrough = false; - break; - } - } - } else { - allowPassthrough = true; - } - return allowPassthrough; - }; - var setGrabbed = function setGrabbed2(ele) { - ele[0]._private.grabbed = true; - }; - var setFreed = function setFreed2(ele) { - ele[0]._private.grabbed = false; - }; - var setInDragLayer = function setInDragLayer2(ele) { - ele[0]._private.rscratch.inDragLayer = true; - }; - var setOutDragLayer = function setOutDragLayer2(ele) { - ele[0]._private.rscratch.inDragLayer = false; - }; - var setGrabTarget = function setGrabTarget2(ele) { - ele[0]._private.rscratch.isGrabTarget = true; - }; - var removeGrabTarget = function removeGrabTarget2(ele) { - ele[0]._private.rscratch.isGrabTarget = false; - }; - var addToDragList = function addToDragList2(ele, opts) { - var list = opts.addToList; - var listHasEle = list.has(ele); - if (!listHasEle && ele.grabbable() && !ele.locked()) { - list.merge(ele); - setGrabbed(ele); - } - }; - var addDescendantsToDrag = function addDescendantsToDrag2(node, opts) { - if (!node.cy().hasCompoundNodes()) { - return; - } - if (opts.inDragLayer == null && opts.addToList == null) { - return; - } - var innerNodes = node.descendants(); - if (opts.inDragLayer) { - innerNodes.forEach(setInDragLayer); - innerNodes.connectedEdges().forEach(setInDragLayer); - } - if (opts.addToList) { - addToDragList(innerNodes, opts); - } - }; - var addNodesToDrag = function addNodesToDrag2(nodes2, opts) { - opts = opts || {}; - var hasCompoundNodes = nodes2.cy().hasCompoundNodes(); - if (opts.inDragLayer) { - nodes2.forEach(setInDragLayer); - nodes2.neighborhood().stdFilter(function(ele) { - return !hasCompoundNodes || ele.isEdge(); - }).forEach(setInDragLayer); - } - if (opts.addToList) { - nodes2.forEach(function(ele) { - addToDragList(ele, opts); - }); - } - addDescendantsToDrag(nodes2, opts); - updateAncestorsInDragLayer(nodes2, { - inDragLayer: opts.inDragLayer - }); - r.updateCachedGrabbedEles(); - }; - var addNodeToDrag = addNodesToDrag; - var freeDraggedElements = function freeDraggedElements2(grabbedEles) { - if (!grabbedEles) { - return; - } - r.getCachedZSortedEles().forEach(function(ele) { - setFreed(ele); - setOutDragLayer(ele); - removeGrabTarget(ele); - }); - r.updateCachedGrabbedEles(); - }; - var updateAncestorsInDragLayer = function updateAncestorsInDragLayer2(node, opts) { - if (opts.inDragLayer == null && opts.addToList == null) { - return; - } - if (!node.cy().hasCompoundNodes()) { - return; - } - var parent = node.ancestors().orphans(); - if (parent.same(node)) { - return; - } - var nodes2 = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants()); - var edges = nodes2.connectedEdges(); - if (opts.inDragLayer) { - edges.forEach(setInDragLayer); - nodes2.forEach(setInDragLayer); - } - if (opts.addToList) { - nodes2.forEach(function(ele) { - addToDragList(ele, opts); - }); - } - }; - var blurActiveDomElement = function blurActiveDomElement2() { - if (document.activeElement != null && document.activeElement.blur != null) { - document.activeElement.blur(); - } - }; - var haveMutationsApi = typeof MutationObserver !== "undefined"; - var haveResizeObserverApi = typeof ResizeObserver !== "undefined"; - if (haveMutationsApi) { - r.removeObserver = new MutationObserver(function(mutns) { - for (var i2 = 0; i2 < mutns.length; i2++) { - var mutn = mutns[i2]; - var rNodes = mutn.removedNodes; - if (rNodes) { - for (var j = 0; j < rNodes.length; j++) { - var rNode = rNodes[j]; - if (rNode === r.container) { - r.destroy(); - break; - } - } - } - } - }); - if (r.container.parentNode) { - r.removeObserver.observe(r.container.parentNode, { - childList: true - }); - } - } else { - r.registerBinding(r.container, "DOMNodeRemoved", function(e) { - r.destroy(); - }); - } - var onResize = debounce_1(function() { - r.cy.resize(); - }, 100); - if (haveMutationsApi) { - r.styleObserver = new MutationObserver(onResize); - r.styleObserver.observe(r.container, { - attributes: true - }); - } - r.registerBinding(containerWindow, "resize", onResize); - if (haveResizeObserverApi) { - r.resizeObserver = new ResizeObserver(onResize); - r.resizeObserver.observe(r.container); - } - var forEachUp = function forEachUp2(domEle, fn2) { - while (domEle != null) { - fn2(domEle); - domEle = domEle.parentNode; - } - }; - var invalidateCoords = function invalidateCoords2() { - r.invalidateContainerClientCoordsCache(); - }; - forEachUp(r.container, function(domEle) { - r.registerBinding(domEle, "transitionend", invalidateCoords); - r.registerBinding(domEle, "animationend", invalidateCoords); - r.registerBinding(domEle, "scroll", invalidateCoords); - }); - r.registerBinding(r.container, "contextmenu", function(e) { - e.preventDefault(); - }); - var inBoxSelection = function inBoxSelection2() { - return r.selection[4] !== 0; - }; - var eventInContainer = function eventInContainer2(e) { - var containerPageCoords = r.findContainerClientCoords(); - var x = containerPageCoords[0]; - var y = containerPageCoords[1]; - var width = containerPageCoords[2]; - var height = containerPageCoords[3]; - var positions = e.touches ? e.touches : [e]; - var atLeastOnePosInside = false; - for (var i2 = 0; i2 < positions.length; i2++) { - var p2 = positions[i2]; - if (x <= p2.clientX && p2.clientX <= x + width && y <= p2.clientY && p2.clientY <= y + height) { - atLeastOnePosInside = true; - break; - } - } - if (!atLeastOnePosInside) { - return false; - } - var container = r.container; - var target = e.target; - var tParent = target.parentNode; - var containerIsTarget = false; - while (tParent) { - if (tParent === container) { - containerIsTarget = true; - break; - } - tParent = tParent.parentNode; - } - if (!containerIsTarget) { - return false; - } - return true; - }; - r.registerBinding(r.container, "mousedown", function mousedownHandler(e) { - if (!eventInContainer(e)) { - return; - } - e.preventDefault(); - blurActiveDomElement(); - r.hoverData.capture = true; - r.hoverData.which = e.which; - var cy = r.cy; - var gpos = [e.clientX, e.clientY]; - var pos = r.projectIntoViewport(gpos[0], gpos[1]); - var select = r.selection; - var nears = r.findNearestElements(pos[0], pos[1], true, false); - var near = nears[0]; - var draggedElements = r.dragData.possibleDragElements; - r.hoverData.mdownPos = pos; - r.hoverData.mdownGPos = gpos; - var checkForTaphold = function checkForTaphold2() { - r.hoverData.tapholdCancelled = false; - clearTimeout(r.hoverData.tapholdTimeout); - r.hoverData.tapholdTimeout = setTimeout(function() { - if (r.hoverData.tapholdCancelled) { - return; - } else { - var ele = r.hoverData.down; - if (ele) { - ele.emit({ - originalEvent: e, - type: "taphold", - position: { - x: pos[0], - y: pos[1] - } - }); - } else { - cy.emit({ - originalEvent: e, - type: "taphold", - position: { - x: pos[0], - y: pos[1] - } - }); - } - } - }, r.tapholdDuration); - }; - if (e.which == 3) { - r.hoverData.cxtStarted = true; - var cxtEvt = { - originalEvent: e, - type: "cxttapstart", - position: { - x: pos[0], - y: pos[1] - } - }; - if (near) { - near.activate(); - near.emit(cxtEvt); - r.hoverData.down = near; - } else { - cy.emit(cxtEvt); - } - r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(); - r.hoverData.cxtDragged = false; - } else if (e.which == 1) { - if (near) { - near.activate(); - } - { - if (near != null) { - if (r.nodeIsGrabbable(near)) { - var makeEvent = function makeEvent2(type) { - return { - originalEvent: e, - type, - position: { - x: pos[0], - y: pos[1] - } - }; - }; - var triggerGrab = function triggerGrab2(ele) { - ele.emit(makeEvent("grab")); - }; - setGrabTarget(near); - if (!near.selected()) { - draggedElements = r.dragData.possibleDragElements = cy.collection(); - addNodeToDrag(near, { - addToList: draggedElements - }); - near.emit(makeEvent("grabon")).emit(makeEvent("grab")); - } else { - draggedElements = r.dragData.possibleDragElements = cy.collection(); - var selectedNodes = cy.$(function(ele) { - return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele); - }); - addNodesToDrag(selectedNodes, { - addToList: draggedElements - }); - near.emit(makeEvent("grabon")); - selectedNodes.forEach(triggerGrab); - } - r.redrawHint("eles", true); - r.redrawHint("drag", true); - } - } - r.hoverData.down = near; - r.hoverData.downs = nears; - r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime(); - } - triggerEvents(near, ["mousedown", "tapstart", "vmousedown"], e, { - x: pos[0], - y: pos[1] - }); - if (near == null) { - select[4] = 1; - r.data.bgActivePosistion = { - x: pos[0], - y: pos[1] - }; - r.redrawHint("select", true); - r.redraw(); - } else if (near.pannable()) { - select[4] = 1; - } - checkForTaphold(); - } - select[0] = select[2] = pos[0]; - select[1] = select[3] = pos[1]; - }, false); - r.registerBinding(containerWindow, "mousemove", function mousemoveHandler(e) { - var capture = r.hoverData.capture; - if (!capture && !eventInContainer(e)) { - return; - } - var preventDefault = false; - var cy = r.cy; - var zoom = cy.zoom(); - var gpos = [e.clientX, e.clientY]; - var pos = r.projectIntoViewport(gpos[0], gpos[1]); - var mdownPos = r.hoverData.mdownPos; - var mdownGPos = r.hoverData.mdownGPos; - var select = r.selection; - var near = null; - if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) { - near = r.findNearestElement(pos[0], pos[1], true, false); - } - var last = r.hoverData.last; - var down = r.hoverData.down; - var disp = [pos[0] - select[2], pos[1] - select[3]]; - var draggedElements = r.dragData.possibleDragElements; - var isOverThresholdDrag; - if (mdownGPos) { - var dx = gpos[0] - mdownGPos[0]; - var dx2 = dx * dx; - var dy = gpos[1] - mdownGPos[1]; - var dy2 = dy * dy; - var dist2 = dx2 + dy2; - r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2; - } - var multSelKeyDown = isMultSelKeyDown(e); - if (isOverThresholdDrag) { - r.hoverData.tapholdCancelled = true; - } - var updateDragDelta = function updateDragDelta2() { - var dragDelta2 = r.hoverData.dragDelta = r.hoverData.dragDelta || []; - if (dragDelta2.length === 0) { - dragDelta2.push(disp[0]); - dragDelta2.push(disp[1]); - } else { - dragDelta2[0] += disp[0]; - dragDelta2[1] += disp[1]; - } - }; - preventDefault = true; - triggerEvents(near, ["mousemove", "vmousemove", "tapdrag"], e, { - x: pos[0], - y: pos[1] - }); - var goIntoBoxMode = function goIntoBoxMode2() { - r.data.bgActivePosistion = void 0; - if (!r.hoverData.selecting) { - cy.emit({ - originalEvent: e, - type: "boxstart", - position: { - x: pos[0], - y: pos[1] - } - }); - } - select[4] = 1; - r.hoverData.selecting = true; - r.redrawHint("select", true); - r.redraw(); - }; - if (r.hoverData.which === 3) { - if (isOverThresholdDrag) { - var cxtEvt = { - originalEvent: e, - type: "cxtdrag", - position: { - x: pos[0], - y: pos[1] - } - }; - if (down) { - down.emit(cxtEvt); - } else { - cy.emit(cxtEvt); - } - r.hoverData.cxtDragged = true; - if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) { - if (r.hoverData.cxtOver) { - r.hoverData.cxtOver.emit({ - originalEvent: e, - type: "cxtdragout", - position: { - x: pos[0], - y: pos[1] - } - }); - } - r.hoverData.cxtOver = near; - if (near) { - near.emit({ - originalEvent: e, - type: "cxtdragover", - position: { - x: pos[0], - y: pos[1] - } - }); - } - } - } - } else if (r.hoverData.dragging) { - preventDefault = true; - if (cy.panningEnabled() && cy.userPanningEnabled()) { - var deltaP; - if (r.hoverData.justStartedPan) { - var mdPos = r.hoverData.mdownPos; - deltaP = { - x: (pos[0] - mdPos[0]) * zoom, - y: (pos[1] - mdPos[1]) * zoom - }; - r.hoverData.justStartedPan = false; - } else { - deltaP = { - x: disp[0] * zoom, - y: disp[1] * zoom - }; - } - cy.panBy(deltaP); - cy.emit("dragpan"); - r.hoverData.dragged = true; - } - pos = r.projectIntoViewport(e.clientX, e.clientY); - } else if (select[4] == 1 && (down == null || down.pannable())) { - if (isOverThresholdDrag) { - if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) { - goIntoBoxMode(); - } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) { - var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs); - if (allowPassthrough) { - r.hoverData.dragging = true; - r.hoverData.justStartedPan = true; - select[4] = 0; - r.data.bgActivePosistion = array2point(mdownPos); - r.redrawHint("select", true); - r.redraw(); - } - } - if (down && down.pannable() && down.active()) { - down.unactivate(); - } - } - } else { - if (down && down.pannable() && down.active()) { - down.unactivate(); - } - if ((!down || !down.grabbed()) && near != last) { - if (last) { - triggerEvents(last, ["mouseout", "tapdragout"], e, { - x: pos[0], - y: pos[1] - }); - } - if (near) { - triggerEvents(near, ["mouseover", "tapdragover"], e, { - x: pos[0], - y: pos[1] - }); - } - r.hoverData.last = near; - } - if (down) { - if (isOverThresholdDrag) { - if (cy.boxSelectionEnabled() && multSelKeyDown) { - if (down && down.grabbed()) { - freeDraggedElements(draggedElements); - down.emit("freeon"); - draggedElements.emit("free"); - if (r.dragData.didDrag) { - down.emit("dragfreeon"); - draggedElements.emit("dragfree"); - } - } - goIntoBoxMode(); - } else if (down && down.grabbed() && r.nodeIsDraggable(down)) { - var justStartedDrag = !r.dragData.didDrag; - if (justStartedDrag) { - r.redrawHint("eles", true); - } - r.dragData.didDrag = true; - if (!r.hoverData.draggingEles) { - addNodesToDrag(draggedElements, { - inDragLayer: true - }); - } - var totalShift = { - x: 0, - y: 0 - }; - if (number$1(disp[0]) && number$1(disp[1])) { - totalShift.x += disp[0]; - totalShift.y += disp[1]; - if (justStartedDrag) { - var dragDelta = r.hoverData.dragDelta; - if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { - totalShift.x += dragDelta[0]; - totalShift.y += dragDelta[1]; - } - } - } - r.hoverData.draggingEles = true; - draggedElements.silentShift(totalShift).emit("position drag"); - r.redrawHint("drag", true); - r.redraw(); - } - } else { - updateDragDelta(); - } - } - preventDefault = true; - } - select[2] = pos[0]; - select[3] = pos[1]; - if (preventDefault) { - if (e.stopPropagation) - e.stopPropagation(); - if (e.preventDefault) - e.preventDefault(); - return false; - } - }, false); - var clickTimeout, didDoubleClick, prevClickTimeStamp; - r.registerBinding(containerWindow, "mouseup", function mouseupHandler(e) { - var capture = r.hoverData.capture; - if (!capture) { - return; - } - r.hoverData.capture = false; - var cy = r.cy; - var pos = r.projectIntoViewport(e.clientX, e.clientY); - var select = r.selection; - var near = r.findNearestElement(pos[0], pos[1], true, false); - var draggedElements = r.dragData.possibleDragElements; - var down = r.hoverData.down; - var multSelKeyDown = isMultSelKeyDown(e); - if (r.data.bgActivePosistion) { - r.redrawHint("select", true); - r.redraw(); - } - r.hoverData.tapholdCancelled = true; - r.data.bgActivePosistion = void 0; - if (down) { - down.unactivate(); - } - if (r.hoverData.which === 3) { - var cxtEvt = { - originalEvent: e, - type: "cxttapend", - position: { - x: pos[0], - y: pos[1] - } - }; - if (down) { - down.emit(cxtEvt); - } else { - cy.emit(cxtEvt); - } - if (!r.hoverData.cxtDragged) { - var cxtTap = { - originalEvent: e, - type: "cxttap", - position: { - x: pos[0], - y: pos[1] - } - }; - if (down) { - down.emit(cxtTap); - } else { - cy.emit(cxtTap); - } - } - r.hoverData.cxtDragged = false; - r.hoverData.which = null; - } else if (r.hoverData.which === 1) { - triggerEvents(near, ["mouseup", "tapend", "vmouseup"], e, { - x: pos[0], - y: pos[1] - }); - if (!r.dragData.didDrag && // didn't move a node around - !r.hoverData.dragged && // didn't pan - !r.hoverData.selecting && // not box selection - !r.hoverData.isOverThresholdDrag) { - triggerEvents(down, ["click", "tap", "vclick"], e, { - x: pos[0], - y: pos[1] - }); - didDoubleClick = false; - if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) { - clickTimeout && clearTimeout(clickTimeout); - didDoubleClick = true; - prevClickTimeStamp = null; - triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, { - x: pos[0], - y: pos[1] - }); - } else { - clickTimeout = setTimeout(function() { - if (didDoubleClick) - return; - triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, { - x: pos[0], - y: pos[1] - }); - }, cy.multiClickDebounceTime()); - prevClickTimeStamp = e.timeStamp; - } - } - if (down == null && !r.dragData.didDrag && !r.hoverData.selecting && !r.hoverData.dragged && !isMultSelKeyDown(e)) { - cy.$(isSelected).unselect(["tapunselect"]); - if (draggedElements.length > 0) { - r.redrawHint("eles", true); - } - r.dragData.possibleDragElements = draggedElements = cy.collection(); - } - if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) { - if (near != null && near._private.selectable) { - if (r.hoverData.dragging) - ; - else if (cy.selectionType() === "additive" || multSelKeyDown) { - if (near.selected()) { - near.unselect(["tapunselect"]); - } else { - near.select(["tapselect"]); - } - } else { - if (!multSelKeyDown) { - cy.$(isSelected).unmerge(near).unselect(["tapunselect"]); - near.select(["tapselect"]); - } - } - r.redrawHint("eles", true); - } - } - if (r.hoverData.selecting) { - var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); - r.redrawHint("select", true); - if (box.length > 0) { - r.redrawHint("eles", true); - } - cy.emit({ - type: "boxend", - originalEvent: e, - position: { - x: pos[0], - y: pos[1] - } - }); - var eleWouldBeSelected = function eleWouldBeSelected2(ele) { - return ele.selectable() && !ele.selected(); - }; - if (cy.selectionType() === "additive") { - box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect"); - } else { - if (!multSelKeyDown) { - cy.$(isSelected).unmerge(box).unselect(); - } - box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect"); - } - r.redraw(); - } - if (r.hoverData.dragging) { - r.hoverData.dragging = false; - r.redrawHint("select", true); - r.redrawHint("eles", true); - r.redraw(); - } - if (!select[4]) { - r.redrawHint("drag", true); - r.redrawHint("eles", true); - var downWasGrabbed = down && down.grabbed(); - freeDraggedElements(draggedElements); - if (downWasGrabbed) { - down.emit("freeon"); - draggedElements.emit("free"); - if (r.dragData.didDrag) { - down.emit("dragfreeon"); - draggedElements.emit("dragfree"); - } - } - } - } - select[4] = 0; - r.hoverData.down = null; - r.hoverData.cxtStarted = false; - r.hoverData.draggingEles = false; - r.hoverData.selecting = false; - r.hoverData.isOverThresholdDrag = false; - r.dragData.didDrag = false; - r.hoverData.dragged = false; - r.hoverData.dragDelta = []; - r.hoverData.mdownPos = null; - r.hoverData.mdownGPos = null; - }, false); - var wheelHandler = function wheelHandler2(e) { - if (r.scrollingPage) { - return; - } - var cy = r.cy; - var zoom = cy.zoom(); - var pan = cy.pan(); - var pos = r.projectIntoViewport(e.clientX, e.clientY); - var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y]; - if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) { - e.preventDefault(); - return; - } - if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) { - e.preventDefault(); - r.data.wheelZooming = true; - clearTimeout(r.data.wheelTimeout); - r.data.wheelTimeout = setTimeout(function() { - r.data.wheelZooming = false; - r.redrawHint("eles", true); - r.redraw(); - }, 150); - var diff; - if (e.deltaY != null) { - diff = e.deltaY / -250; - } else if (e.wheelDeltaY != null) { - diff = e.wheelDeltaY / 1e3; - } else { - diff = e.wheelDelta / 1e3; - } - diff = diff * r.wheelSensitivity; - var needsWheelFix = e.deltaMode === 1; - if (needsWheelFix) { - diff *= 33; - } - var newZoom = cy.zoom() * Math.pow(10, diff); - if (e.type === "gesturechange") { - newZoom = r.gestureStartZoom * e.scale; - } - cy.zoom({ - level: newZoom, - renderedPosition: { - x: rpos[0], - y: rpos[1] - } - }); - cy.emit(e.type === "gesturechange" ? "pinchzoom" : "scrollzoom"); - } - }; - r.registerBinding(r.container, "wheel", wheelHandler, true); - r.registerBinding(containerWindow, "scroll", function scrollHandler(e) { - r.scrollingPage = true; - clearTimeout(r.scrollingPageTimeout); - r.scrollingPageTimeout = setTimeout(function() { - r.scrollingPage = false; - }, 250); - }, true); - r.registerBinding(r.container, "gesturestart", function gestureStartHandler(e) { - r.gestureStartZoom = r.cy.zoom(); - if (!r.hasTouchStarted) { - e.preventDefault(); - } - }, true); - r.registerBinding(r.container, "gesturechange", function(e) { - if (!r.hasTouchStarted) { - wheelHandler(e); - } - }, true); - r.registerBinding(r.container, "mouseout", function mouseOutHandler(e) { - var pos = r.projectIntoViewport(e.clientX, e.clientY); - r.cy.emit({ - originalEvent: e, - type: "mouseout", - position: { - x: pos[0], - y: pos[1] - } - }); - }, false); - r.registerBinding(r.container, "mouseover", function mouseOverHandler(e) { - var pos = r.projectIntoViewport(e.clientX, e.clientY); - r.cy.emit({ - originalEvent: e, - type: "mouseover", - position: { - x: pos[0], - y: pos[1] - } - }); - }, false); - var f1x1, f1y1, f2x1, f2y1; - var distance1, distance1Sq; - var center1, modelCenter1; - var offsetLeft, offsetTop; - var containerWidth, containerHeight; - var twoFingersStartInside; - var distance = function distance2(x1, y1, x2, y2) { - return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); - }; - var distanceSq = function distanceSq2(x1, y1, x2, y2) { - return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); - }; - var touchstartHandler; - r.registerBinding(r.container, "touchstart", touchstartHandler = function touchstartHandler2(e) { - r.hasTouchStarted = true; - if (!eventInContainer(e)) { - return; - } - blurActiveDomElement(); - r.touchData.capture = true; - r.data.bgActivePosistion = void 0; - var cy = r.cy; - var now2 = r.touchData.now; - var earlier = r.touchData.earlier; - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); - now2[0] = pos[0]; - now2[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); - now2[2] = pos[0]; - now2[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); - now2[4] = pos[0]; - now2[5] = pos[1]; - } - if (e.touches[1]) { - r.touchData.singleTouchMoved = true; - freeDraggedElements(r.dragData.touchDragEles); - var offsets = r.findContainerClientCoords(); - offsetLeft = offsets[0]; - offsetTop = offsets[1]; - containerWidth = offsets[2]; - containerHeight = offsets[3]; - f1x1 = e.touches[0].clientX - offsetLeft; - f1y1 = e.touches[0].clientY - offsetTop; - f2x1 = e.touches[1].clientX - offsetLeft; - f2y1 = e.touches[1].clientY - offsetTop; - twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight; - var pan = cy.pan(); - var zoom = cy.zoom(); - distance1 = distance(f1x1, f1y1, f2x1, f2y1); - distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1); - center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2]; - modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom]; - var cxtDistThreshold = 200; - var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold; - if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) { - var near1 = r.findNearestElement(now2[0], now2[1], true, true); - var near2 = r.findNearestElement(now2[2], now2[3], true, true); - if (near1 && near1.isNode()) { - near1.activate().emit({ - originalEvent: e, - type: "cxttapstart", - position: { - x: now2[0], - y: now2[1] - } - }); - r.touchData.start = near1; - } else if (near2 && near2.isNode()) { - near2.activate().emit({ - originalEvent: e, - type: "cxttapstart", - position: { - x: now2[0], - y: now2[1] - } - }); - r.touchData.start = near2; - } else { - cy.emit({ - originalEvent: e, - type: "cxttapstart", - position: { - x: now2[0], - y: now2[1] - } - }); - } - if (r.touchData.start) { - r.touchData.start._private.grabbed = false; - } - r.touchData.cxt = true; - r.touchData.cxtDragged = false; - r.data.bgActivePosistion = void 0; - r.redraw(); - return; - } - } - if (e.touches[2]) { - if (cy.boxSelectionEnabled()) { - e.preventDefault(); - } - } else if (e.touches[1]) - ; - else if (e.touches[0]) { - var nears = r.findNearestElements(now2[0], now2[1], true, true); - var near = nears[0]; - if (near != null) { - near.activate(); - r.touchData.start = near; - r.touchData.starts = nears; - if (r.nodeIsGrabbable(near)) { - var draggedEles = r.dragData.touchDragEles = cy.collection(); - var selectedNodes = null; - r.redrawHint("eles", true); - r.redrawHint("drag", true); - if (near.selected()) { - selectedNodes = cy.$(function(ele) { - return ele.selected() && r.nodeIsGrabbable(ele); - }); - addNodesToDrag(selectedNodes, { - addToList: draggedEles - }); - } else { - addNodeToDrag(near, { - addToList: draggedEles - }); - } - setGrabTarget(near); - var makeEvent = function makeEvent2(type) { - return { - originalEvent: e, - type, - position: { - x: now2[0], - y: now2[1] - } - }; - }; - near.emit(makeEvent("grabon")); - if (selectedNodes) { - selectedNodes.forEach(function(n) { - n.emit(makeEvent("grab")); - }); - } else { - near.emit(makeEvent("grab")); - } - } - } - triggerEvents(near, ["touchstart", "tapstart", "vmousedown"], e, { - x: now2[0], - y: now2[1] - }); - if (near == null) { - r.data.bgActivePosistion = { - x: pos[0], - y: pos[1] - }; - r.redrawHint("select", true); - r.redraw(); - } - r.touchData.singleTouchMoved = false; - r.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date(); - clearTimeout(r.touchData.tapholdTimeout); - r.touchData.tapholdTimeout = setTimeout(function() { - if (r.touchData.singleTouchMoved === false && !r.pinching && !r.touchData.selecting) { - triggerEvents(r.touchData.start, ["taphold"], e, { - x: now2[0], - y: now2[1] - }); - } - }, r.tapholdDuration); - } - if (e.touches.length >= 1) { - var sPos = r.touchData.startPosition = [null, null, null, null, null, null]; - for (var i2 = 0; i2 < now2.length; i2++) { - sPos[i2] = earlier[i2] = now2[i2]; - } - var touch0 = e.touches[0]; - r.touchData.startGPosition = [touch0.clientX, touch0.clientY]; - } - }, false); - var touchmoveHandler; - r.registerBinding(window, "touchmove", touchmoveHandler = function touchmoveHandler2(e) { - var capture = r.touchData.capture; - if (!capture && !eventInContainer(e)) { - return; - } - var select = r.selection; - var cy = r.cy; - var now2 = r.touchData.now; - var earlier = r.touchData.earlier; - var zoom = cy.zoom(); - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); - now2[0] = pos[0]; - now2[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); - now2[2] = pos[0]; - now2[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); - now2[4] = pos[0]; - now2[5] = pos[1]; - } - var startGPos = r.touchData.startGPosition; - var isOverThresholdDrag; - if (capture && e.touches[0] && startGPos) { - var disp = []; - for (var j = 0; j < now2.length; j++) { - disp[j] = now2[j] - earlier[j]; - } - var dx = e.touches[0].clientX - startGPos[0]; - var dx2 = dx * dx; - var dy = e.touches[0].clientY - startGPos[1]; - var dy2 = dy * dy; - var dist2 = dx2 + dy2; - isOverThresholdDrag = dist2 >= r.touchTapThreshold2; - } - if (capture && r.touchData.cxt) { - e.preventDefault(); - var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop; - var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop; - var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2); - var factorSq = distance2Sq / distance1Sq; - var distThreshold = 150; - var distThresholdSq = distThreshold * distThreshold; - var factorThreshold = 1.5; - var factorThresholdSq = factorThreshold * factorThreshold; - if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) { - r.touchData.cxt = false; - r.data.bgActivePosistion = void 0; - r.redrawHint("select", true); - var cxtEvt = { - originalEvent: e, - type: "cxttapend", - position: { - x: now2[0], - y: now2[1] - } - }; - if (r.touchData.start) { - r.touchData.start.unactivate().emit(cxtEvt); - r.touchData.start = null; - } else { - cy.emit(cxtEvt); - } - } - } - if (capture && r.touchData.cxt) { - var cxtEvt = { - originalEvent: e, - type: "cxtdrag", - position: { - x: now2[0], - y: now2[1] - } - }; - r.data.bgActivePosistion = void 0; - r.redrawHint("select", true); - if (r.touchData.start) { - r.touchData.start.emit(cxtEvt); - } else { - cy.emit(cxtEvt); - } - if (r.touchData.start) { - r.touchData.start._private.grabbed = false; - } - r.touchData.cxtDragged = true; - var near = r.findNearestElement(now2[0], now2[1], true, true); - if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) { - if (r.touchData.cxtOver) { - r.touchData.cxtOver.emit({ - originalEvent: e, - type: "cxtdragout", - position: { - x: now2[0], - y: now2[1] - } - }); - } - r.touchData.cxtOver = near; - if (near) { - near.emit({ - originalEvent: e, - type: "cxtdragover", - position: { - x: now2[0], - y: now2[1] - } - }); - } - } - } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) { - e.preventDefault(); - r.data.bgActivePosistion = void 0; - this.lastThreeTouch = +/* @__PURE__ */ new Date(); - if (!r.touchData.selecting) { - cy.emit({ - originalEvent: e, - type: "boxstart", - position: { - x: now2[0], - y: now2[1] - } - }); - } - r.touchData.selecting = true; - r.touchData.didSelect = true; - select[4] = 1; - if (!select || select.length === 0 || select[0] === void 0) { - select[0] = (now2[0] + now2[2] + now2[4]) / 3; - select[1] = (now2[1] + now2[3] + now2[5]) / 3; - select[2] = (now2[0] + now2[2] + now2[4]) / 3 + 1; - select[3] = (now2[1] + now2[3] + now2[5]) / 3 + 1; - } else { - select[2] = (now2[0] + now2[2] + now2[4]) / 3; - select[3] = (now2[1] + now2[3] + now2[5]) / 3; - } - r.redrawHint("select", true); - r.redraw(); - } else if (capture && e.touches[1] && !r.touchData.didSelect && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) { - e.preventDefault(); - r.data.bgActivePosistion = void 0; - r.redrawHint("select", true); - var draggedEles = r.dragData.touchDragEles; - if (draggedEles) { - r.redrawHint("drag", true); - for (var i2 = 0; i2 < draggedEles.length; i2++) { - var de_p = draggedEles[i2]._private; - de_p.grabbed = false; - de_p.rscratch.inDragLayer = false; - } - } - var _start = r.touchData.start; - var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop; - var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop; - var distance2 = distance(f1x2, f1y2, f2x2, f2y2); - var factor = distance2 / distance1; - if (twoFingersStartInside) { - var df1x = f1x2 - f1x1; - var df1y = f1y2 - f1y1; - var df2x = f2x2 - f2x1; - var df2y = f2y2 - f2y1; - var tx = (df1x + df2x) / 2; - var ty = (df1y + df2y) / 2; - var zoom1 = cy.zoom(); - var zoom2 = zoom1 * factor; - var pan1 = cy.pan(); - var ctrx = modelCenter1[0] * zoom1 + pan1.x; - var ctry = modelCenter1[1] * zoom1 + pan1.y; - var pan2 = { - x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx, - y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry - }; - if (_start && _start.active()) { - var draggedEles = r.dragData.touchDragEles; - freeDraggedElements(draggedEles); - r.redrawHint("drag", true); - r.redrawHint("eles", true); - _start.unactivate().emit("freeon"); - draggedEles.emit("free"); - if (r.dragData.didDrag) { - _start.emit("dragfreeon"); - draggedEles.emit("dragfree"); - } - } - cy.viewport({ - zoom: zoom2, - pan: pan2, - cancelOnFailedZoom: true - }); - cy.emit("pinchzoom"); - distance1 = distance2; - f1x1 = f1x2; - f1y1 = f1y2; - f2x1 = f2x2; - f2y1 = f2y2; - r.pinching = true; - } - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); - now2[0] = pos[0]; - now2[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); - now2[2] = pos[0]; - now2[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); - now2[4] = pos[0]; - now2[5] = pos[1]; - } - } else if (e.touches[0] && !r.touchData.didSelect) { - var start = r.touchData.start; - var last = r.touchData.last; - var near; - if (!r.hoverData.draggingEles && !r.swipePanning) { - near = r.findNearestElement(now2[0], now2[1], true, true); - } - if (capture && start != null) { - e.preventDefault(); - } - if (capture && start != null && r.nodeIsDraggable(start)) { - if (isOverThresholdDrag) { - var draggedEles = r.dragData.touchDragEles; - var justStartedDrag = !r.dragData.didDrag; - if (justStartedDrag) { - addNodesToDrag(draggedEles, { - inDragLayer: true - }); - } - r.dragData.didDrag = true; - var totalShift = { - x: 0, - y: 0 - }; - if (number$1(disp[0]) && number$1(disp[1])) { - totalShift.x += disp[0]; - totalShift.y += disp[1]; - if (justStartedDrag) { - r.redrawHint("eles", true); - var dragDelta = r.touchData.dragDelta; - if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { - totalShift.x += dragDelta[0]; - totalShift.y += dragDelta[1]; - } - } - } - r.hoverData.draggingEles = true; - draggedEles.silentShift(totalShift).emit("position drag"); - r.redrawHint("drag", true); - if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) { - r.redrawHint("eles", true); - } - r.redraw(); - } else { - var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || []; - if (dragDelta.length === 0) { - dragDelta.push(disp[0]); - dragDelta.push(disp[1]); - } else { - dragDelta[0] += disp[0]; - dragDelta[1] += disp[1]; - } - } - } - { - triggerEvents(start || near, ["touchmove", "tapdrag", "vmousemove"], e, { - x: now2[0], - y: now2[1] - }); - if ((!start || !start.grabbed()) && near != last) { - if (last) { - last.emit({ - originalEvent: e, - type: "tapdragout", - position: { - x: now2[0], - y: now2[1] - } - }); - } - if (near) { - near.emit({ - originalEvent: e, - type: "tapdragover", - position: { - x: now2[0], - y: now2[1] - } - }); - } - } - r.touchData.last = near; - } - if (capture) { - for (var i2 = 0; i2 < now2.length; i2++) { - if (now2[i2] && r.touchData.startPosition[i2] && isOverThresholdDrag) { - r.touchData.singleTouchMoved = true; - } - } - } - if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) { - var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts); - if (allowPassthrough) { - e.preventDefault(); - if (!r.data.bgActivePosistion) { - r.data.bgActivePosistion = array2point(r.touchData.startPosition); - } - if (r.swipePanning) { - cy.panBy({ - x: disp[0] * zoom, - y: disp[1] * zoom - }); - cy.emit("dragpan"); - } else if (isOverThresholdDrag) { - r.swipePanning = true; - cy.panBy({ - x: dx * zoom, - y: dy * zoom - }); - cy.emit("dragpan"); - if (start) { - start.unactivate(); - r.redrawHint("select", true); - r.touchData.start = null; - } - } - } - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); - now2[0] = pos[0]; - now2[1] = pos[1]; - } - } - for (var j = 0; j < now2.length; j++) { - earlier[j] = now2[j]; - } - if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) { - r.data.bgActivePosistion = void 0; - r.redrawHint("select", true); - r.redraw(); - } - }, false); - var touchcancelHandler; - r.registerBinding(containerWindow, "touchcancel", touchcancelHandler = function touchcancelHandler2(e) { - var start = r.touchData.start; - r.touchData.capture = false; - if (start) { - start.unactivate(); - } - }); - var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp; - r.registerBinding(containerWindow, "touchend", touchendHandler = function touchendHandler2(e) { - var start = r.touchData.start; - var capture = r.touchData.capture; - if (capture) { - if (e.touches.length === 0) { - r.touchData.capture = false; - } - e.preventDefault(); - } else { - return; - } - var select = r.selection; - r.swipePanning = false; - r.hoverData.draggingEles = false; - var cy = r.cy; - var zoom = cy.zoom(); - var now2 = r.touchData.now; - var earlier = r.touchData.earlier; - if (e.touches[0]) { - var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); - now2[0] = pos[0]; - now2[1] = pos[1]; - } - if (e.touches[1]) { - var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); - now2[2] = pos[0]; - now2[3] = pos[1]; - } - if (e.touches[2]) { - var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); - now2[4] = pos[0]; - now2[5] = pos[1]; - } - if (start) { - start.unactivate(); - } - var ctxTapend; - if (r.touchData.cxt) { - ctxTapend = { - originalEvent: e, - type: "cxttapend", - position: { - x: now2[0], - y: now2[1] - } - }; - if (start) { - start.emit(ctxTapend); - } else { - cy.emit(ctxTapend); - } - if (!r.touchData.cxtDragged) { - var ctxTap = { - originalEvent: e, - type: "cxttap", - position: { - x: now2[0], - y: now2[1] - } - }; - if (start) { - start.emit(ctxTap); - } else { - cy.emit(ctxTap); - } - } - if (r.touchData.start) { - r.touchData.start._private.grabbed = false; - } - r.touchData.cxt = false; - r.touchData.start = null; - r.redraw(); - return; - } - if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) { - r.touchData.selecting = false; - var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); - select[0] = void 0; - select[1] = void 0; - select[2] = void 0; - select[3] = void 0; - select[4] = 0; - r.redrawHint("select", true); - cy.emit({ - type: "boxend", - originalEvent: e, - position: { - x: now2[0], - y: now2[1] - } - }); - var eleWouldBeSelected = function eleWouldBeSelected2(ele) { - return ele.selectable() && !ele.selected(); - }; - box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect"); - if (box.nonempty()) { - r.redrawHint("eles", true); - } - r.redraw(); - } - if (start != null) { - start.unactivate(); - } - if (e.touches[2]) { - r.data.bgActivePosistion = void 0; - r.redrawHint("select", true); - } else if (e.touches[1]) - ; - else if (e.touches[0]) - ; - else if (!e.touches[0]) { - r.data.bgActivePosistion = void 0; - r.redrawHint("select", true); - var draggedEles = r.dragData.touchDragEles; - if (start != null) { - var startWasGrabbed = start._private.grabbed; - freeDraggedElements(draggedEles); - r.redrawHint("drag", true); - r.redrawHint("eles", true); - if (startWasGrabbed) { - start.emit("freeon"); - draggedEles.emit("free"); - if (r.dragData.didDrag) { - start.emit("dragfreeon"); - draggedEles.emit("dragfree"); - } - } - triggerEvents(start, ["touchend", "tapend", "vmouseup", "tapdragout"], e, { - x: now2[0], - y: now2[1] - }); - start.unactivate(); - r.touchData.start = null; - } else { - var near = r.findNearestElement(now2[0], now2[1], true, true); - triggerEvents(near, ["touchend", "tapend", "vmouseup", "tapdragout"], e, { - x: now2[0], - y: now2[1] - }); - } - var dx = r.touchData.startPosition[0] - now2[0]; - var dx2 = dx * dx; - var dy = r.touchData.startPosition[1] - now2[1]; - var dy2 = dy * dy; - var dist2 = dx2 + dy2; - var rdist2 = dist2 * zoom * zoom; - if (!r.touchData.singleTouchMoved) { - if (!start) { - cy.$(":selected").unselect(["tapunselect"]); - } - triggerEvents(start, ["tap", "vclick"], e, { - x: now2[0], - y: now2[1] - }); - didDoubleTouch = false; - if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) { - touchTimeout && clearTimeout(touchTimeout); - didDoubleTouch = true; - prevTouchTimeStamp = null; - triggerEvents(start, ["dbltap", "vdblclick"], e, { - x: now2[0], - y: now2[1] - }); - } else { - touchTimeout = setTimeout(function() { - if (didDoubleTouch) - return; - triggerEvents(start, ["onetap", "voneclick"], e, { - x: now2[0], - y: now2[1] - }); - }, cy.multiClickDebounceTime()); - prevTouchTimeStamp = e.timeStamp; - } - } - if (start != null && !r.dragData.didDrag && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching) { - if (cy.selectionType() === "single") { - cy.$(isSelected).unmerge(start).unselect(["tapunselect"]); - start.select(["tapselect"]); - } else { - if (start.selected()) { - start.unselect(["tapunselect"]); - } else { - start.select(["tapselect"]); - } - } - r.redrawHint("eles", true); - } - r.touchData.singleTouchMoved = true; - } - for (var j = 0; j < now2.length; j++) { - earlier[j] = now2[j]; - } - r.dragData.didDrag = false; - if (e.touches.length === 0) { - r.touchData.dragDelta = []; - r.touchData.startPosition = [null, null, null, null, null, null]; - r.touchData.startGPosition = null; - r.touchData.didSelect = false; - } - if (e.touches.length < 2) { - if (e.touches.length === 1) { - r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY]; - } - r.pinching = false; - r.redrawHint("eles", true); - r.redraw(); - } - }, false); - if (typeof TouchEvent === "undefined") { - var pointers = []; - var makeTouch = function makeTouch2(e) { - return { - clientX: e.clientX, - clientY: e.clientY, - force: 1, - identifier: e.pointerId, - pageX: e.pageX, - pageY: e.pageY, - radiusX: e.width / 2, - radiusY: e.height / 2, - screenX: e.screenX, - screenY: e.screenY, - target: e.target - }; - }; - var makePointer = function makePointer2(e) { - return { - event: e, - touch: makeTouch(e) - }; - }; - var addPointer = function addPointer2(e) { - pointers.push(makePointer(e)); - }; - var removePointer = function removePointer2(e) { - for (var i2 = 0; i2 < pointers.length; i2++) { - var p2 = pointers[i2]; - if (p2.event.pointerId === e.pointerId) { - pointers.splice(i2, 1); - return; - } - } - }; - var updatePointer = function updatePointer2(e) { - var p2 = pointers.filter(function(p3) { - return p3.event.pointerId === e.pointerId; - })[0]; - p2.event = e; - p2.touch = makeTouch(e); - }; - var addTouchesToEvent = function addTouchesToEvent2(e) { - e.touches = pointers.map(function(p2) { - return p2.touch; - }); - }; - var pointerIsMouse = function pointerIsMouse2(e) { - return e.pointerType === "mouse" || e.pointerType === 4; - }; - r.registerBinding(r.container, "pointerdown", function(e) { - if (pointerIsMouse(e)) { - return; - } - e.preventDefault(); - addPointer(e); - addTouchesToEvent(e); - touchstartHandler(e); - }); - r.registerBinding(r.container, "pointerup", function(e) { - if (pointerIsMouse(e)) { - return; - } - removePointer(e); - addTouchesToEvent(e); - touchendHandler(e); - }); - r.registerBinding(r.container, "pointercancel", function(e) { - if (pointerIsMouse(e)) { - return; - } - removePointer(e); - addTouchesToEvent(e); - touchcancelHandler(e); - }); - r.registerBinding(r.container, "pointermove", function(e) { - if (pointerIsMouse(e)) { - return; - } - e.preventDefault(); - updatePointer(e); - addTouchesToEvent(e); - touchmoveHandler(e); - }); - } - }; - var BRp$2 = {}; - BRp$2.generatePolygon = function(name2, points) { - return this.nodeShapes[name2] = { - renderer: this, - name: name2, - points, - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl("polygon", context, centerX, centerY, width, height, this.points); - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding); - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding); - } - }; - }; - BRp$2.generateEllipse = function() { - return this.nodeShapes["ellipse"] = { - renderer: this, - name: "ellipse", - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding); - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - return checkInEllipse(x, y, width, height, centerX, centerY, padding); - } - }; - }; - BRp$2.generateRoundPolygon = function(name2, points) { - var allPoints = new Array(points.length * 2); - for (var i2 = 0; i2 < points.length / 2; i2++) { - var sourceIndex = i2 * 2; - var destIndex = void 0; - if (i2 < points.length / 2 - 1) { - destIndex = (i2 + 1) * 2; - } else { - destIndex = 0; - } - allPoints[i2 * 4] = points[sourceIndex]; - allPoints[i2 * 4 + 1] = points[sourceIndex + 1]; - var xDest = points[destIndex] - points[sourceIndex]; - var yDest = points[destIndex + 1] - points[sourceIndex + 1]; - var norm = Math.sqrt(xDest * xDest + yDest * yDest); - allPoints[i2 * 4 + 2] = xDest / norm; - allPoints[i2 * 4 + 3] = yDest / norm; - } - return this.nodeShapes[name2] = { - renderer: this, - name: name2, - points: allPoints, - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl("round-polygon", context, centerX, centerY, width, height, this.points); - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height); - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height); - } - }; - }; - BRp$2.generateRoundRectangle = function() { - return this.nodeShapes["round-rectangle"] = this.nodeShapes["roundrectangle"] = { - renderer: this, - name: "round-rectangle", - points: generateUnitNgonPointsFitToSquare(4, 0), - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - var cornerRadius = getRoundRectangleRadius(width, height); - var diam = cornerRadius * 2; - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { - return true; - } - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { - return true; - } - if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) { - return true; - } - if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) { - return true; - } - if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - return true; - } - if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - return true; - } - return false; - } - }; - }; - BRp$2.generateCutRectangle = function() { - return this.nodeShapes["cut-rectangle"] = this.nodeShapes["cutrectangle"] = { - renderer: this, - name: "cut-rectangle", - cornerLength: getCutRectangleCornerLength(), - points: generateUnitNgonPointsFitToSquare(4, 0), - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) { - var cl = this.cornerLength; - var hh = height / 2; - var hw = width / 2; - var xBegin = centerX - hw; - var xEnd = centerX + hw; - var yBegin = centerY - hh; - var yEnd = centerY + hh; - return { - topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl], - topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl], - bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl], - bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl] - }; - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); - var pts2 = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]); - return polygonIntersectLine(x, y, pts2, nodeX, nodeY); - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) { - return true; - } - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) { - return true; - } - var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY); - return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft); - } - }; - }; - BRp$2.generateBarrel = function() { - return this.nodeShapes["barrel"] = { - renderer: this, - name: "barrel", - points: generateUnitNgonPointsFitToSquare(4, 0), - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - var t0 = 0.15; - var t1 = 0.5; - var t2 = 0.85; - var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); - var approximateBarrelCurvePts = function approximateBarrelCurvePts2(pts3) { - var m0 = qbezierPtAt({ - x: pts3[0], - y: pts3[1] - }, { - x: pts3[2], - y: pts3[3] - }, { - x: pts3[4], - y: pts3[5] - }, t0); - var m1 = qbezierPtAt({ - x: pts3[0], - y: pts3[1] - }, { - x: pts3[2], - y: pts3[3] - }, { - x: pts3[4], - y: pts3[5] - }, t1); - var m2 = qbezierPtAt({ - x: pts3[0], - y: pts3[1] - }, { - x: pts3[2], - y: pts3[3] - }, { - x: pts3[4], - y: pts3[5] - }, t2); - return [pts3[0], pts3[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts3[4], pts3[5]]; - }; - var pts2 = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft)); - return polygonIntersectLine(x, y, pts2, nodeX, nodeY); - }, - generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) { - var hh = height / 2; - var hw = width / 2; - var xBegin = centerX - hw; - var xEnd = centerX + hw; - var yBegin = centerY - hh; - var yEnd = centerY + hh; - var curveConstants = getBarrelCurveConstants(width, height); - var hOffset = curveConstants.heightOffset; - var wOffset = curveConstants.widthOffset; - var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width; - var pts2 = { - topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin], - topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset], - bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd], - bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset] - }; - pts2.topLeft.isTop = true; - pts2.topRight.isTop = true; - pts2.bottomLeft.isBottom = true; - pts2.bottomRight.isBottom = true; - return pts2; - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - var curveConstants = getBarrelCurveConstants(width, height); - var hOffset = curveConstants.heightOffset; - var wOffset = curveConstants.widthOffset; - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) { - return true; - } - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) { - return true; - } - var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY); - var getCurveT = function getCurveT2(x2, y3, curvePts) { - var x0 = curvePts[4]; - var x1 = curvePts[2]; - var x22 = curvePts[0]; - var y02 = curvePts[5]; - var y22 = curvePts[1]; - var xMin = Math.min(x0, x22); - var xMax = Math.max(x0, x22); - var yMin = Math.min(y02, y22); - var yMax = Math.max(y02, y22); - if (xMin <= x2 && x2 <= xMax && yMin <= y3 && y3 <= yMax) { - var coeff = bezierPtsToQuadCoeff(x0, x1, x22); - var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x2); - var validRoots = roots.filter(function(r) { - return 0 <= r && r <= 1; - }); - if (validRoots.length > 0) { - return validRoots[0]; - } - } - return null; - }; - var curveRegions = Object.keys(barrelCurvePts); - for (var i2 = 0; i2 < curveRegions.length; i2++) { - var corner = curveRegions[i2]; - var cornerPts = barrelCurvePts[corner]; - var t = getCurveT(x, y, cornerPts); - if (t == null) { - continue; - } - var y0 = cornerPts[5]; - var y1 = cornerPts[3]; - var y2 = cornerPts[1]; - var bezY = qbezierAt(y0, y1, y2, t); - if (cornerPts.isTop && bezY <= y) { - return true; - } - if (cornerPts.isBottom && y <= bezY) { - return true; - } - } - return false; - } - }; - }; - BRp$2.generateBottomRoundrectangle = function() { - return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes["bottomroundrectangle"] = { - renderer: this, - name: "bottom-round-rectangle", - points: generateUnitNgonPointsFitToSquare(4, 0), - draw: function draw2(context, centerX, centerY, width, height) { - this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); - }, - intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { - var topStartX = nodeX - (width / 2 + padding); - var topStartY = nodeY - (height / 2 + padding); - var topEndY = topStartY; - var topEndX = nodeX + (width / 2 + padding); - var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); - if (topIntersections.length > 0) { - return topIntersections; - } - return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); - }, - checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { - var cornerRadius = getRoundRectangleRadius(width, height); - var diam = 2 * cornerRadius; - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { - return true; - } - if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { - return true; - } - var outerWidth = width / 2 + 2 * padding; - var outerHeight = height / 2 + 2 * padding; - var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight]; - if (pointInsidePolygonPoints(x, y, points)) { - return true; - } - if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - return true; - } - if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { - return true; - } - return false; - } - }; - }; - BRp$2.registerNodeShapes = function() { - var nodeShapes = this.nodeShapes = {}; - var renderer2 = this; - this.generateEllipse(); - this.generatePolygon("triangle", generateUnitNgonPointsFitToSquare(3, 0)); - this.generateRoundPolygon("round-triangle", generateUnitNgonPointsFitToSquare(3, 0)); - this.generatePolygon("rectangle", generateUnitNgonPointsFitToSquare(4, 0)); - nodeShapes["square"] = nodeShapes["rectangle"]; - this.generateRoundRectangle(); - this.generateCutRectangle(); - this.generateBarrel(); - this.generateBottomRoundrectangle(); - { - var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0]; - this.generatePolygon("diamond", diamondPoints); - this.generateRoundPolygon("round-diamond", diamondPoints); - } - this.generatePolygon("pentagon", generateUnitNgonPointsFitToSquare(5, 0)); - this.generateRoundPolygon("round-pentagon", generateUnitNgonPointsFitToSquare(5, 0)); - this.generatePolygon("hexagon", generateUnitNgonPointsFitToSquare(6, 0)); - this.generateRoundPolygon("round-hexagon", generateUnitNgonPointsFitToSquare(6, 0)); - this.generatePolygon("heptagon", generateUnitNgonPointsFitToSquare(7, 0)); - this.generateRoundPolygon("round-heptagon", generateUnitNgonPointsFitToSquare(7, 0)); - this.generatePolygon("octagon", generateUnitNgonPointsFitToSquare(8, 0)); - this.generateRoundPolygon("round-octagon", generateUnitNgonPointsFitToSquare(8, 0)); - var star5Points = new Array(20); - { - var outerPoints = generateUnitNgonPoints(5, 0); - var innerPoints = generateUnitNgonPoints(5, Math.PI / 5); - var innerRadius = 0.5 * (3 - Math.sqrt(5)); - innerRadius *= 1.57; - for (var i2 = 0; i2 < innerPoints.length / 2; i2++) { - innerPoints[i2 * 2] *= innerRadius; - innerPoints[i2 * 2 + 1] *= innerRadius; - } - for (var i2 = 0; i2 < 20 / 4; i2++) { - star5Points[i2 * 4] = outerPoints[i2 * 2]; - star5Points[i2 * 4 + 1] = outerPoints[i2 * 2 + 1]; - star5Points[i2 * 4 + 2] = innerPoints[i2 * 2]; - star5Points[i2 * 4 + 3] = innerPoints[i2 * 2 + 1]; - } - } - star5Points = fitPolygonToSquare(star5Points); - this.generatePolygon("star", star5Points); - this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]); - this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]); - this.generatePolygon("right-rhomboid", [-0.333, -1, 1, -1, 0.333, 1, -1, 1]); - this.nodeShapes["concavehexagon"] = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]); - { - var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1]; - this.generatePolygon("tag", tagPoints); - this.generateRoundPolygon("round-tag", tagPoints); - } - nodeShapes.makePolygon = function(points) { - var key = points.join("$"); - var name2 = "polygon-" + key; - var shape; - if (shape = this[name2]) { - return shape; - } - return renderer2.generatePolygon(name2, points); - }; - }; - var BRp$1 = {}; - BRp$1.timeToRender = function() { - return this.redrawTotalTime / this.redrawCount; - }; - BRp$1.redraw = function(options) { - options = options || staticEmptyObject(); - var r = this; - if (r.averageRedrawTime === void 0) { - r.averageRedrawTime = 0; - } - if (r.lastRedrawTime === void 0) { - r.lastRedrawTime = 0; - } - if (r.lastDrawTime === void 0) { - r.lastDrawTime = 0; - } - r.requestedFrame = true; - r.renderOptions = options; - }; - BRp$1.beforeRender = function(fn2, priority) { - if (this.destroyed) { - return; - } - if (priority == null) { - error("Priority is not optional for beforeRender"); - } - var cbs = this.beforeRenderCallbacks; - cbs.push({ - fn: fn2, - priority - }); - cbs.sort(function(a, b) { - return b.priority - a.priority; - }); - }; - var beforeRenderCallbacks = function beforeRenderCallbacks2(r, willDraw, startTime) { - var cbs = r.beforeRenderCallbacks; - for (var i2 = 0; i2 < cbs.length; i2++) { - cbs[i2].fn(willDraw, startTime); - } - }; - BRp$1.startRenderLoop = function() { - var r = this; - var cy = r.cy; - if (r.renderLoopStarted) { - return; - } else { - r.renderLoopStarted = true; - } - var renderFn = function renderFn2(requestTime) { - if (r.destroyed) { - return; - } - if (cy.batching()) - ; - else if (r.requestedFrame && !r.skipFrame) { - beforeRenderCallbacks(r, true, requestTime); - var startTime = performanceNow(); - r.render(r.renderOptions); - var endTime = r.lastDrawTime = performanceNow(); - if (r.averageRedrawTime === void 0) { - r.averageRedrawTime = endTime - startTime; - } - if (r.redrawCount === void 0) { - r.redrawCount = 0; - } - r.redrawCount++; - if (r.redrawTotalTime === void 0) { - r.redrawTotalTime = 0; - } - var duration = endTime - startTime; - r.redrawTotalTime += duration; - r.lastRedrawTime = duration; - r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2; - r.requestedFrame = false; - } else { - beforeRenderCallbacks(r, false, requestTime); - } - r.skipFrame = false; - requestAnimationFrame2(renderFn2); - }; - requestAnimationFrame2(renderFn); - }; - var BaseRenderer = function BaseRenderer2(options) { - this.init(options); - }; - var BR = BaseRenderer; - var BRp = BR.prototype; - BRp.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"]; - BRp.init = function(options) { - var r = this; - r.options = options; - r.cy = options.cy; - var ctr = r.container = options.cy.container(); - var containerWindow = r.cy.window(); - if (containerWindow) { - var document2 = containerWindow.document; - var head = document2.head; - var stylesheetId = "__________cytoscape_stylesheet"; - var className = "__________cytoscape_container"; - var stylesheetAlreadyExists = document2.getElementById(stylesheetId) != null; - if (ctr.className.indexOf(className) < 0) { - ctr.className = (ctr.className || "") + " " + className; - } - if (!stylesheetAlreadyExists) { - var stylesheet2 = document2.createElement("style"); - stylesheet2.id = stylesheetId; - stylesheet2.textContent = "." + className + " { position: relative; }"; - head.insertBefore(stylesheet2, head.children[0]); - } - var computedStyle = containerWindow.getComputedStyle(ctr); - var position2 = computedStyle.getPropertyValue("position"); - if (position2 === "static") { - warn("A Cytoscape container has style position:static and so can not use UI extensions properly"); - } - } - r.selection = [void 0, void 0, void 0, void 0, 0]; - r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95]; - r.hoverData = { - down: null, - last: null, - downTime: null, - triggerMode: null, - dragging: false, - initialPan: [null, null], - capture: false - }; - r.dragData = { - possibleDragElements: [] - }; - r.touchData = { - start: null, - capture: false, - // These 3 fields related to tap, taphold events - startPosition: [null, null, null, null, null, null], - singleTouchStartTime: null, - singleTouchMoved: true, - now: [null, null, null, null, null, null], - earlier: [null, null, null, null, null, null] - }; - r.redraws = 0; - r.showFps = options.showFps; - r.debug = options.debug; - r.hideEdgesOnViewport = options.hideEdgesOnViewport; - r.textureOnViewport = options.textureOnViewport; - r.wheelSensitivity = options.wheelSensitivity; - r.motionBlurEnabled = options.motionBlur; - r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null; - r.motionBlur = options.motionBlur; - r.motionBlurOpacity = options.motionBlurOpacity; - r.motionBlurTransparency = 1 - r.motionBlurOpacity; - r.motionBlurPxRatio = 1; - r.mbPxRBlurry = 1; - r.minMbLowQualFrames = 4; - r.fullQualityMb = false; - r.clearedForMotionBlur = []; - r.desktopTapThreshold = options.desktopTapThreshold; - r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold; - r.touchTapThreshold = options.touchTapThreshold; - r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold; - r.tapholdDuration = 500; - r.bindings = []; - r.beforeRenderCallbacks = []; - r.beforeRenderPriorities = { - // higher priority execs before lower one - animations: 400, - eleCalcs: 300, - eleTxrDeq: 200, - lyrTxrDeq: 150, - lyrTxrSkip: 100 - }; - r.registerNodeShapes(); - r.registerArrowShapes(); - r.registerCalculationListeners(); - }; - BRp.notify = function(eventName, eles) { - var r = this; - var cy = r.cy; - if (this.destroyed) { - return; - } - if (eventName === "init") { - r.load(); - return; - } - if (eventName === "destroy") { - r.destroy(); - return; - } - if (eventName === "add" || eventName === "remove" || eventName === "move" && cy.hasCompoundNodes() || eventName === "load" || eventName === "zorder" || eventName === "mount") { - r.invalidateCachedZSortedEles(); - } - if (eventName === "viewport") { - r.redrawHint("select", true); - } - if (eventName === "load" || eventName === "resize" || eventName === "mount") { - r.invalidateContainerClientCoordsCache(); - r.matchCanvasSize(r.container); - } - r.redrawHint("eles", true); - r.redrawHint("drag", true); - this.startRenderLoop(); - this.redraw(); - }; - BRp.destroy = function() { - var r = this; - r.destroyed = true; - r.cy.stopAnimationLoop(); - for (var i2 = 0; i2 < r.bindings.length; i2++) { - var binding = r.bindings[i2]; - var b = binding; - var tgt = b.target; - (tgt.off || tgt.removeEventListener).apply(tgt, b.args); - } - r.bindings = []; - r.beforeRenderCallbacks = []; - r.onUpdateEleCalcsFns = []; - if (r.removeObserver) { - r.removeObserver.disconnect(); - } - if (r.styleObserver) { - r.styleObserver.disconnect(); - } - if (r.resizeObserver) { - r.resizeObserver.disconnect(); - } - if (r.labelCalcDiv) { - try { - document.body.removeChild(r.labelCalcDiv); - } catch (e) { - } - } - }; - BRp.isHeadless = function() { - return false; - }; - [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function(props) { - extend(BRp, props); - }); - var fullFpsTime = 1e3 / 60; - var defs = { - setupDequeueing: function setupDequeueing(opts) { - return function setupDequeueingImpl() { - var self2 = this; - var r = this.renderer; - if (self2.dequeueingSetup) { - return; - } else { - self2.dequeueingSetup = true; - } - var queueRedraw = debounce_1(function() { - r.redrawHint("eles", true); - r.redrawHint("drag", true); - r.redraw(); - }, opts.deqRedrawThreshold); - var dequeue = function dequeue2(willDraw, frameStartTime) { - var startTime = performanceNow(); - var avgRenderTime = r.averageRedrawTime; - var renderTime = r.lastRedrawTime; - var deqd = []; - var extent = r.cy.extent(); - var pixelRatio = r.getPixelRatio(); - if (!willDraw) { - r.flushRenderedStyleQueue(); - } - while (true) { - var now2 = performanceNow(); - var duration = now2 - startTime; - var frameDuration = now2 - frameStartTime; - if (renderTime < fullFpsTime) { - var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0); - if (frameDuration >= opts.deqFastCost * timeAvailable) { - break; - } - } else { - if (willDraw) { - if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) { - break; - } - } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) { - break; - } - } - var thisDeqd = opts.deq(self2, pixelRatio, extent); - if (thisDeqd.length > 0) { - for (var i2 = 0; i2 < thisDeqd.length; i2++) { - deqd.push(thisDeqd[i2]); - } - } else { - break; - } - } - if (deqd.length > 0) { - opts.onDeqd(self2, deqd); - if (!willDraw && opts.shouldRedraw(self2, deqd, pixelRatio, extent)) { - queueRedraw(); - } - } - }; - var priority = opts.priority || noop$1; - r.beforeRender(dequeue, priority(self2)); - }; - } - }; - var ElementTextureCacheLookup = function() { - function ElementTextureCacheLookup2(getKey2) { - var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : falsify; - _classCallCheck(this, ElementTextureCacheLookup2); - this.idsByKey = new Map$2(); - this.keyForId = new Map$2(); - this.cachesByLvl = new Map$2(); - this.lvls = []; - this.getKey = getKey2; - this.doesEleInvalidateKey = doesEleInvalidateKey; - } - _createClass(ElementTextureCacheLookup2, [{ - key: "getIdsFor", - value: function getIdsFor(key) { - if (key == null) { - error("Can not get id list for null key"); - } - var idsByKey = this.idsByKey; - var ids = this.idsByKey.get(key); - if (!ids) { - ids = new Set$1(); - idsByKey.set(key, ids); - } - return ids; - } - }, { - key: "addIdForKey", - value: function addIdForKey(key, id) { - if (key != null) { - this.getIdsFor(key).add(id); - } - } - }, { - key: "deleteIdForKey", - value: function deleteIdForKey(key, id) { - if (key != null) { - this.getIdsFor(key)["delete"](id); - } - } - }, { - key: "getNumberOfIdsForKey", - value: function getNumberOfIdsForKey(key) { - if (key == null) { - return 0; - } else { - return this.getIdsFor(key).size; - } - } - }, { - key: "updateKeyMappingFor", - value: function updateKeyMappingFor(ele) { - var id = ele.id(); - var prevKey = this.keyForId.get(id); - var currKey = this.getKey(ele); - this.deleteIdForKey(prevKey, id); - this.addIdForKey(currKey, id); - this.keyForId.set(id, currKey); - } - }, { - key: "deleteKeyMappingFor", - value: function deleteKeyMappingFor(ele) { - var id = ele.id(); - var prevKey = this.keyForId.get(id); - this.deleteIdForKey(prevKey, id); - this.keyForId["delete"](id); - } - }, { - key: "keyHasChangedFor", - value: function keyHasChangedFor(ele) { - var id = ele.id(); - var prevKey = this.keyForId.get(id); - var newKey = this.getKey(ele); - return prevKey !== newKey; - } - }, { - key: "isInvalid", - value: function isInvalid(ele) { - return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele); - } - }, { - key: "getCachesAt", - value: function getCachesAt(lvl) { - var cachesByLvl = this.cachesByLvl, lvls = this.lvls; - var caches = cachesByLvl.get(lvl); - if (!caches) { - caches = new Map$2(); - cachesByLvl.set(lvl, caches); - lvls.push(lvl); - } - return caches; - } - }, { - key: "getCache", - value: function getCache(key, lvl) { - return this.getCachesAt(lvl).get(key); - } - }, { - key: "get", - value: function get2(ele, lvl) { - var key = this.getKey(ele); - var cache2 = this.getCache(key, lvl); - if (cache2 != null) { - this.updateKeyMappingFor(ele); - } - return cache2; - } - }, { - key: "getForCachedKey", - value: function getForCachedKey(ele, lvl) { - var key = this.keyForId.get(ele.id()); - var cache2 = this.getCache(key, lvl); - return cache2; - } - }, { - key: "hasCache", - value: function hasCache(key, lvl) { - return this.getCachesAt(lvl).has(key); - } - }, { - key: "has", - value: function has(ele, lvl) { - var key = this.getKey(ele); - return this.hasCache(key, lvl); - } - }, { - key: "setCache", - value: function setCache(key, lvl, cache2) { - cache2.key = key; - this.getCachesAt(lvl).set(key, cache2); - } - }, { - key: "set", - value: function set2(ele, lvl, cache2) { - var key = this.getKey(ele); - this.setCache(key, lvl, cache2); - this.updateKeyMappingFor(ele); - } - }, { - key: "deleteCache", - value: function deleteCache(key, lvl) { - this.getCachesAt(lvl)["delete"](key); - } - }, { - key: "delete", - value: function _delete(ele, lvl) { - var key = this.getKey(ele); - this.deleteCache(key, lvl); - } - }, { - key: "invalidateKey", - value: function invalidateKey(key) { - var _this = this; - this.lvls.forEach(function(lvl) { - return _this.deleteCache(key, lvl); - }); - } - // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key) - }, { - key: "invalidate", - value: function invalidate(ele) { - var id = ele.id(); - var key = this.keyForId.get(id); - this.deleteKeyMappingFor(ele); - var entireKeyInvalidated = this.doesEleInvalidateKey(ele); - if (entireKeyInvalidated) { - this.invalidateKey(key); - } - return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0; - } - }]); - return ElementTextureCacheLookup2; - }(); - var minTxrH = 25; - var txrStepH = 50; - var minLvl$1 = -4; - var maxLvl$1 = 3; - var maxZoom$1 = 7.99; - var eleTxrSpacing = 8; - var defTxrWidth = 1024; - var maxTxrW = 1024; - var maxTxrH = 1024; - var minUtility = 0.2; - var maxFullness = 0.8; - var maxFullnessChecks = 10; - var deqCost$1 = 0.15; - var deqAvgCost$1 = 0.1; - var deqNoDrawCost$1 = 0.9; - var deqFastCost$1 = 0.9; - var deqRedrawThreshold$1 = 100; - var maxDeqSize$1 = 1; - var getTxrReasons = { - dequeue: "dequeue", - downscale: "downscale", - highQuality: "highQuality" - }; - var initDefaults = defaults$g({ - getKey: null, - doesEleInvalidateKey: falsify, - drawElement: null, - getBoundingBox: null, - getRotationPoint: null, - getRotationOffset: null, - isVisible: trueify, - allowEdgeTxrCaching: true, - allowParentTxrCaching: true - }); - var ElementTextureCache = function ElementTextureCache2(renderer2, initOptions) { - var self2 = this; - self2.renderer = renderer2; - self2.onDequeues = []; - var opts = initDefaults(initOptions); - extend(self2, opts); - self2.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey); - self2.setupDequeueing(); - }; - var ETCp = ElementTextureCache.prototype; - ETCp.reasons = getTxrReasons; - ETCp.getTextureQueue = function(txrH) { - var self2 = this; - self2.eleImgCaches = self2.eleImgCaches || {}; - return self2.eleImgCaches[txrH] = self2.eleImgCaches[txrH] || []; - }; - ETCp.getRetiredTextureQueue = function(txrH) { - var self2 = this; - var rtxtrQs = self2.eleImgCaches.retired = self2.eleImgCaches.retired || {}; - var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || []; - return rtxtrQ; - }; - ETCp.getElementQueue = function() { - var self2 = this; - var q = self2.eleCacheQueue = self2.eleCacheQueue || new heap(function(a, b) { - return b.reqs - a.reqs; - }); - return q; - }; - ETCp.getElementKeyToQueue = function() { - var self2 = this; - var k2q = self2.eleKeyToCacheQueue = self2.eleKeyToCacheQueue || {}; - return k2q; - }; - ETCp.getElement = function(ele, bb, pxRatio, lvl, reason) { - var self2 = this; - var r = this.renderer; - var zoom = r.cy.zoom(); - var lookup2 = this.lookup; - if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) { - return null; - } - if (!self2.allowEdgeTxrCaching && ele.isEdge() || !self2.allowParentTxrCaching && ele.isParent()) { - return null; - } - if (lvl == null) { - lvl = Math.ceil(log2(zoom * pxRatio)); - } - if (lvl < minLvl$1) { - lvl = minLvl$1; - } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) { - return null; - } - var scale = Math.pow(2, lvl); - var eleScaledH = bb.h * scale; - var eleScaledW = bb.w * scale; - var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale); - if (!this.isVisible(ele, scaledLabelShown)) { - return null; - } - var eleCache = lookup2.get(ele, lvl); - if (eleCache && eleCache.invalidated) { - eleCache.invalidated = false; - eleCache.texture.invalidatedWidth -= eleCache.width; - } - if (eleCache) { - return eleCache; - } - var txrH; - if (eleScaledH <= minTxrH) { - txrH = minTxrH; - } else if (eleScaledH <= txrStepH) { - txrH = txrStepH; - } else { - txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH; - } - if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) { - return null; - } - var txrQ = self2.getTextureQueue(txrH); - var txr = txrQ[txrQ.length - 2]; - var addNewTxr = function addNewTxr2() { - return self2.recycleTexture(txrH, eleScaledW) || self2.addTexture(txrH, eleScaledW); - }; - if (!txr) { - txr = txrQ[txrQ.length - 1]; - } - if (!txr) { - txr = addNewTxr(); - } - if (txr.width - txr.usedWidth < eleScaledW) { - txr = addNewTxr(); - } - var scalableFrom = function scalableFrom2(otherCache) { - return otherCache && otherCache.scaledLabelShown === scaledLabelShown; - }; - var deqing = reason && reason === getTxrReasons.dequeue; - var highQualityReq = reason && reason === getTxrReasons.highQuality; - var downscaleReq = reason && reason === getTxrReasons.downscale; - var higherCache; - for (var l = lvl + 1; l <= maxLvl$1; l++) { - var c = lookup2.get(ele, l); - if (c) { - higherCache = c; - break; - } - } - var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null; - var downscale = function downscale2() { - txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH); - }; - txr.context.setTransform(1, 0, 0, 1, 0, 0); - txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH); - if (scalableFrom(oneUpCache)) { - downscale(); - } else if (scalableFrom(higherCache)) { - if (highQualityReq) { - for (var _l = higherCache.level; _l > lvl; _l--) { - oneUpCache = self2.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale); - } - downscale(); - } else { - self2.queueElement(ele, higherCache.level - 1); - return higherCache; - } - } else { - var lowerCache; - if (!deqing && !highQualityReq && !downscaleReq) { - for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) { - var _c = lookup2.get(ele, _l2); - if (_c) { - lowerCache = _c; - break; - } - } - } - if (scalableFrom(lowerCache)) { - self2.queueElement(ele, lvl); - return lowerCache; - } - txr.context.translate(txr.usedWidth, 0); - txr.context.scale(scale, scale); - this.drawElement(txr.context, ele, bb, scaledLabelShown, false); - txr.context.scale(1 / scale, 1 / scale); - txr.context.translate(-txr.usedWidth, 0); - } - eleCache = { - x: txr.usedWidth, - texture: txr, - level: lvl, - scale, - width: eleScaledW, - height: eleScaledH, - scaledLabelShown - }; - txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing); - txr.eleCaches.push(eleCache); - lookup2.set(ele, lvl, eleCache); - self2.checkTextureFullness(txr); - return eleCache; - }; - ETCp.invalidateElements = function(eles) { - for (var i2 = 0; i2 < eles.length; i2++) { - this.invalidateElement(eles[i2]); - } - }; - ETCp.invalidateElement = function(ele) { - var self2 = this; - var lookup2 = self2.lookup; - var caches = []; - var invalid = lookup2.isInvalid(ele); - if (!invalid) { - return; - } - for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) { - var cache2 = lookup2.getForCachedKey(ele, lvl); - if (cache2) { - caches.push(cache2); - } - } - var noOtherElesUseCache = lookup2.invalidate(ele); - if (noOtherElesUseCache) { - for (var i2 = 0; i2 < caches.length; i2++) { - var _cache = caches[i2]; - var txr = _cache.texture; - txr.invalidatedWidth += _cache.width; - _cache.invalidated = true; - self2.checkTextureUtility(txr); - } - } - self2.removeFromQueue(ele); - }; - ETCp.checkTextureUtility = function(txr) { - if (txr.invalidatedWidth >= minUtility * txr.width) { - this.retireTexture(txr); - } - }; - ETCp.checkTextureFullness = function(txr) { - var self2 = this; - var txrQ = self2.getTextureQueue(txr.height); - if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) { - removeFromArray(txrQ, txr); - } else { - txr.fullnessChecks++; - } - }; - ETCp.retireTexture = function(txr) { - var self2 = this; - var txrH = txr.height; - var txrQ = self2.getTextureQueue(txrH); - var lookup2 = this.lookup; - removeFromArray(txrQ, txr); - txr.retired = true; - var eleCaches = txr.eleCaches; - for (var i2 = 0; i2 < eleCaches.length; i2++) { - var eleCache = eleCaches[i2]; - lookup2.deleteCache(eleCache.key, eleCache.level); - } - clearArray(eleCaches); - var rtxtrQ = self2.getRetiredTextureQueue(txrH); - rtxtrQ.push(txr); - }; - ETCp.addTexture = function(txrH, minW) { - var self2 = this; - var txrQ = self2.getTextureQueue(txrH); - var txr = {}; - txrQ.push(txr); - txr.eleCaches = []; - txr.height = txrH; - txr.width = Math.max(defTxrWidth, minW); - txr.usedWidth = 0; - txr.invalidatedWidth = 0; - txr.fullnessChecks = 0; - txr.canvas = self2.renderer.makeOffscreenCanvas(txr.width, txr.height); - txr.context = txr.canvas.getContext("2d"); - return txr; - }; - ETCp.recycleTexture = function(txrH, minW) { - var self2 = this; - var txrQ = self2.getTextureQueue(txrH); - var rtxtrQ = self2.getRetiredTextureQueue(txrH); - for (var i2 = 0; i2 < rtxtrQ.length; i2++) { - var txr = rtxtrQ[i2]; - if (txr.width >= minW) { - txr.retired = false; - txr.usedWidth = 0; - txr.invalidatedWidth = 0; - txr.fullnessChecks = 0; - clearArray(txr.eleCaches); - txr.context.setTransform(1, 0, 0, 1, 0, 0); - txr.context.clearRect(0, 0, txr.width, txr.height); - removeFromArray(rtxtrQ, txr); - txrQ.push(txr); - return txr; - } - } - }; - ETCp.queueElement = function(ele, lvl) { - var self2 = this; - var q = self2.getElementQueue(); - var k2q = self2.getElementKeyToQueue(); - var key = this.getKey(ele); - var existingReq = k2q[key]; - if (existingReq) { - existingReq.level = Math.max(existingReq.level, lvl); - existingReq.eles.merge(ele); - existingReq.reqs++; - q.updateItem(existingReq); - } else { - var req = { - eles: ele.spawn().merge(ele), - level: lvl, - reqs: 1, - key - }; - q.push(req); - k2q[key] = req; - } - }; - ETCp.dequeue = function(pxRatio) { - var self2 = this; - var q = self2.getElementQueue(); - var k2q = self2.getElementKeyToQueue(); - var dequeued = []; - var lookup2 = self2.lookup; - for (var i2 = 0; i2 < maxDeqSize$1; i2++) { - if (q.size() > 0) { - var req = q.pop(); - var key = req.key; - var ele = req.eles[0]; - var cacheExists = lookup2.hasCache(ele, req.level); - k2q[key] = null; - if (cacheExists) { - continue; - } - dequeued.push(req); - var bb = self2.getBoundingBox(ele); - self2.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue); - } else { - break; - } - } - return dequeued; - }; - ETCp.removeFromQueue = function(ele) { - var self2 = this; - var q = self2.getElementQueue(); - var k2q = self2.getElementKeyToQueue(); - var key = this.getKey(ele); - var req = k2q[key]; - if (req != null) { - if (req.eles.length === 1) { - req.reqs = MAX_INT$1; - q.updateItem(req); - q.pop(); - k2q[key] = null; - } else { - req.eles.unmerge(ele); - } - } - }; - ETCp.onDequeue = function(fn2) { - this.onDequeues.push(fn2); - }; - ETCp.offDequeue = function(fn2) { - removeFromArray(this.onDequeues, fn2); - }; - ETCp.setupDequeueing = defs.setupDequeueing({ - deqRedrawThreshold: deqRedrawThreshold$1, - deqCost: deqCost$1, - deqAvgCost: deqAvgCost$1, - deqNoDrawCost: deqNoDrawCost$1, - deqFastCost: deqFastCost$1, - deq: function deq(self2, pxRatio, extent) { - return self2.dequeue(pxRatio, extent); - }, - onDeqd: function onDeqd(self2, deqd) { - for (var i2 = 0; i2 < self2.onDequeues.length; i2++) { - var fn2 = self2.onDequeues[i2]; - fn2(deqd); - } - }, - shouldRedraw: function shouldRedraw(self2, deqd, pxRatio, extent) { - for (var i2 = 0; i2 < deqd.length; i2++) { - var eles = deqd[i2].eles; - for (var j = 0; j < eles.length; j++) { - var bb = eles[j].boundingBox(); - if (boundingBoxesIntersect(bb, extent)) { - return true; - } - } - } - return false; - }, - priority: function priority(self2) { - return self2.renderer.beforeRenderPriorities.eleTxrDeq; - } - }); - var defNumLayers = 1; - var minLvl = -4; - var maxLvl = 2; - var maxZoom = 3.99; - var deqRedrawThreshold = 50; - var refineEleDebounceTime = 50; - var deqCost = 0.15; - var deqAvgCost = 0.1; - var deqNoDrawCost = 0.9; - var deqFastCost = 0.9; - var maxDeqSize = 1; - var invalidThreshold = 250; - var maxLayerArea = 4e3 * 4e3; - var useHighQualityEleTxrReqs = true; - var LayeredTextureCache = function LayeredTextureCache2(renderer2) { - var self2 = this; - var r = self2.renderer = renderer2; - var cy = r.cy; - self2.layersByLevel = {}; - self2.firstGet = true; - self2.lastInvalidationTime = performanceNow() - 2 * invalidThreshold; - self2.skipping = false; - self2.eleTxrDeqs = cy.collection(); - self2.scheduleElementRefinement = debounce_1(function() { - self2.refineElementTextures(self2.eleTxrDeqs); - self2.eleTxrDeqs.unmerge(self2.eleTxrDeqs); - }, refineEleDebounceTime); - r.beforeRender(function(willDraw, now2) { - if (now2 - self2.lastInvalidationTime <= invalidThreshold) { - self2.skipping = true; - } else { - self2.skipping = false; - } - }, r.beforeRenderPriorities.lyrTxrSkip); - var qSort = function qSort2(a, b) { - return b.reqs - a.reqs; - }; - self2.layersQueue = new heap(qSort); - self2.setupDequeueing(); - }; - var LTCp = LayeredTextureCache.prototype; - var layerIdPool = 0; - var MAX_INT = Math.pow(2, 53) - 1; - LTCp.makeLayer = function(bb, lvl) { - var scale = Math.pow(2, lvl); - var w = Math.ceil(bb.w * scale); - var h = Math.ceil(bb.h * scale); - var canvas = this.renderer.makeOffscreenCanvas(w, h); - var layer = { - id: layerIdPool = ++layerIdPool % MAX_INT, - bb, - level: lvl, - width: w, - height: h, - canvas, - context: canvas.getContext("2d"), - eles: [], - elesQueue: [], - reqs: 0 - }; - var cxt = layer.context; - var dx = -layer.bb.x1; - var dy = -layer.bb.y1; - cxt.scale(scale, scale); - cxt.translate(dx, dy); - return layer; - }; - LTCp.getLayers = function(eles, pxRatio, lvl) { - var self2 = this; - var r = self2.renderer; - var cy = r.cy; - var zoom = cy.zoom(); - var firstGet = self2.firstGet; - self2.firstGet = false; - if (lvl == null) { - lvl = Math.ceil(log2(zoom * pxRatio)); - if (lvl < minLvl) { - lvl = minLvl; - } else if (zoom >= maxZoom || lvl > maxLvl) { - return null; - } - } - self2.validateLayersElesOrdering(lvl, eles); - var layersByLvl = self2.layersByLevel; - var scale = Math.pow(2, lvl); - var layers = layersByLvl[lvl] = layersByLvl[lvl] || []; - var bb; - var lvlComplete = self2.levelIsComplete(lvl, eles); - var tmpLayers; - var checkTempLevels = function checkTempLevels2() { - var canUseAsTmpLvl = function canUseAsTmpLvl2(l) { - self2.validateLayersElesOrdering(l, eles); - if (self2.levelIsComplete(l, eles)) { - tmpLayers = layersByLvl[l]; - return true; - } - }; - var checkLvls = function checkLvls2(dir) { - if (tmpLayers) { - return; - } - for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) { - if (canUseAsTmpLvl(l)) { - break; - } - } - }; - checkLvls(1); - checkLvls(-1); - for (var i3 = layers.length - 1; i3 >= 0; i3--) { - var layer2 = layers[i3]; - if (layer2.invalid) { - removeFromArray(layers, layer2); - } - } - }; - if (!lvlComplete) { - checkTempLevels(); - } else { - return layers; - } - var getBb = function getBb2() { - if (!bb) { - bb = makeBoundingBox(); - for (var i3 = 0; i3 < eles.length; i3++) { - updateBoundingBox(bb, eles[i3].boundingBox()); - } - } - return bb; - }; - var makeLayer = function makeLayer2(opts) { - opts = opts || {}; - var after = opts.after; - getBb(); - var area = bb.w * scale * (bb.h * scale); - if (area > maxLayerArea) { - return null; - } - var layer2 = self2.makeLayer(bb, lvl); - if (after != null) { - var index = layers.indexOf(after) + 1; - layers.splice(index, 0, layer2); - } else if (opts.insert === void 0 || opts.insert) { - layers.unshift(layer2); - } - return layer2; - }; - if (self2.skipping && !firstGet) { - return null; - } - var layer = null; - var maxElesPerLayer = eles.length / defNumLayers; - var allowLazyQueueing = !firstGet; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - var rs = ele._private.rscratch; - var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; - var existingLayer = caches[lvl]; - if (existingLayer) { - layer = existingLayer; - continue; - } - if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) { - layer = makeLayer({ - insert: true, - after: layer - }); - if (!layer) { - return null; - } - } - if (tmpLayers || allowLazyQueueing) { - self2.queueLayer(layer, ele); - } else { - self2.drawEleInLayer(layer, ele, lvl, pxRatio); - } - layer.eles.push(ele); - caches[lvl] = layer; - } - if (tmpLayers) { - return tmpLayers; - } - if (allowLazyQueueing) { - return null; - } - return layers; - }; - LTCp.getEleLevelForLayerLevel = function(lvl, pxRatio) { - return lvl; - }; - LTCp.drawEleInLayer = function(layer, ele, lvl, pxRatio) { - var self2 = this; - var r = this.renderer; - var context = layer.context; - var bb = ele.boundingBox(); - if (bb.w === 0 || bb.h === 0 || !ele.visible()) { - return; - } - lvl = self2.getEleLevelForLayerLevel(lvl, pxRatio); - { - r.setImgSmoothing(context, false); - } - { - r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs); - } - { - r.setImgSmoothing(context, true); - } - }; - LTCp.levelIsComplete = function(lvl, eles) { - var self2 = this; - var layers = self2.layersByLevel[lvl]; - if (!layers || layers.length === 0) { - return false; - } - var numElesInLayers = 0; - for (var i2 = 0; i2 < layers.length; i2++) { - var layer = layers[i2]; - if (layer.reqs > 0) { - return false; - } - if (layer.invalid) { - return false; - } - numElesInLayers += layer.eles.length; - } - if (numElesInLayers !== eles.length) { - return false; - } - return true; - }; - LTCp.validateLayersElesOrdering = function(lvl, eles) { - var layers = this.layersByLevel[lvl]; - if (!layers) { - return; - } - for (var i2 = 0; i2 < layers.length; i2++) { - var layer = layers[i2]; - var offset = -1; - for (var j = 0; j < eles.length; j++) { - if (layer.eles[0] === eles[j]) { - offset = j; - break; - } - } - if (offset < 0) { - this.invalidateLayer(layer); - continue; - } - var o = offset; - for (var j = 0; j < layer.eles.length; j++) { - if (layer.eles[j] !== eles[o + j]) { - this.invalidateLayer(layer); - break; - } - } - } - }; - LTCp.updateElementsInLayers = function(eles, update2) { - var self2 = this; - var isEles = element(eles[0]); - for (var i2 = 0; i2 < eles.length; i2++) { - var req = isEles ? null : eles[i2]; - var ele = isEles ? eles[i2] : eles[i2].ele; - var rs = ele._private.rscratch; - var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; - for (var l = minLvl; l <= maxLvl; l++) { - var layer = caches[l]; - if (!layer) { - continue; - } - if (req && self2.getEleLevelForLayerLevel(layer.level) !== req.level) { - continue; - } - update2(layer, ele, req); - } - } - }; - LTCp.haveLayers = function() { - var self2 = this; - var haveLayers = false; - for (var l = minLvl; l <= maxLvl; l++) { - var layers = self2.layersByLevel[l]; - if (layers && layers.length > 0) { - haveLayers = true; - break; - } - } - return haveLayers; - }; - LTCp.invalidateElements = function(eles) { - var self2 = this; - if (eles.length === 0) { - return; - } - self2.lastInvalidationTime = performanceNow(); - if (eles.length === 0 || !self2.haveLayers()) { - return; - } - self2.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) { - self2.invalidateLayer(layer); - }); - }; - LTCp.invalidateLayer = function(layer) { - this.lastInvalidationTime = performanceNow(); - if (layer.invalid) { - return; - } - var lvl = layer.level; - var eles = layer.eles; - var layers = this.layersByLevel[lvl]; - removeFromArray(layers, layer); - layer.elesQueue = []; - layer.invalid = true; - if (layer.replacement) { - layer.replacement.invalid = true; - } - for (var i2 = 0; i2 < eles.length; i2++) { - var caches = eles[i2]._private.rscratch.imgLayerCaches; - if (caches) { - caches[lvl] = null; - } - } - }; - LTCp.refineElementTextures = function(eles) { - var self2 = this; - self2.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) { - var rLyr = layer.replacement; - if (!rLyr) { - rLyr = layer.replacement = self2.makeLayer(layer.bb, layer.level); - rLyr.replaces = layer; - rLyr.eles = layer.eles; - } - if (!rLyr.reqs) { - for (var i2 = 0; i2 < rLyr.eles.length; i2++) { - self2.queueLayer(rLyr, rLyr.eles[i2]); - } - } - }); - }; - LTCp.enqueueElementRefinement = function(ele) { - this.eleTxrDeqs.merge(ele); - this.scheduleElementRefinement(); - }; - LTCp.queueLayer = function(layer, ele) { - var self2 = this; - var q = self2.layersQueue; - var elesQ = layer.elesQueue; - var hasId = elesQ.hasId = elesQ.hasId || {}; - if (layer.replacement) { - return; - } - if (ele) { - if (hasId[ele.id()]) { - return; - } - elesQ.push(ele); - hasId[ele.id()] = true; - } - if (layer.reqs) { - layer.reqs++; - q.updateItem(layer); - } else { - layer.reqs = 1; - q.push(layer); - } - }; - LTCp.dequeue = function(pxRatio) { - var self2 = this; - var q = self2.layersQueue; - var deqd = []; - var eleDeqs = 0; - while (eleDeqs < maxDeqSize) { - if (q.size() === 0) { - break; - } - var layer = q.peek(); - if (layer.replacement) { - q.pop(); - continue; - } - if (layer.replaces && layer !== layer.replaces.replacement) { - q.pop(); - continue; - } - if (layer.invalid) { - q.pop(); - continue; - } - var ele = layer.elesQueue.shift(); - if (ele) { - self2.drawEleInLayer(layer, ele, layer.level, pxRatio); - eleDeqs++; - } - if (deqd.length === 0) { - deqd.push(true); - } - if (layer.elesQueue.length === 0) { - q.pop(); - layer.reqs = 0; - if (layer.replaces) { - self2.applyLayerReplacement(layer); - } - self2.requestRedraw(); - } - } - return deqd; - }; - LTCp.applyLayerReplacement = function(layer) { - var self2 = this; - var layersInLevel = self2.layersByLevel[layer.level]; - var replaced = layer.replaces; - var index = layersInLevel.indexOf(replaced); - if (index < 0 || replaced.invalid) { - return; - } - layersInLevel[index] = layer; - for (var i2 = 0; i2 < layer.eles.length; i2++) { - var _p = layer.eles[i2]._private; - var cache2 = _p.imgLayerCaches = _p.imgLayerCaches || {}; - if (cache2) { - cache2[layer.level] = layer; - } - } - self2.requestRedraw(); - }; - LTCp.requestRedraw = debounce_1(function() { - var r = this.renderer; - r.redrawHint("eles", true); - r.redrawHint("drag", true); - r.redraw(); - }, 100); - LTCp.setupDequeueing = defs.setupDequeueing({ - deqRedrawThreshold, - deqCost, - deqAvgCost, - deqNoDrawCost, - deqFastCost, - deq: function deq(self2, pxRatio) { - return self2.dequeue(pxRatio); - }, - onDeqd: noop$1, - shouldRedraw: trueify, - priority: function priority(self2) { - return self2.renderer.beforeRenderPriorities.lyrTxrDeq; - } - }); - var CRp$a = {}; - var impl; - function polygon(context, points) { - for (var i2 = 0; i2 < points.length; i2++) { - var pt = points[i2]; - context.lineTo(pt.x, pt.y); - } - } - function triangleBackcurve(context, points, controlPoint) { - var firstPt; - for (var i2 = 0; i2 < points.length; i2++) { - var pt = points[i2]; - if (i2 === 0) { - firstPt = pt; - } - context.lineTo(pt.x, pt.y); - } - context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y); - } - function triangleTee(context, trianglePoints, teePoints) { - if (context.beginPath) { - context.beginPath(); - } - var triPts = trianglePoints; - for (var i2 = 0; i2 < triPts.length; i2++) { - var pt = triPts[i2]; - context.lineTo(pt.x, pt.y); - } - var teePts = teePoints; - var firstTeePt = teePoints[0]; - context.moveTo(firstTeePt.x, firstTeePt.y); - for (var i2 = 1; i2 < teePts.length; i2++) { - var pt = teePts[i2]; - context.lineTo(pt.x, pt.y); - } - if (context.closePath) { - context.closePath(); - } - } - function circleTriangle(context, trianglePoints, rx, ry, r) { - if (context.beginPath) { - context.beginPath(); - } - context.arc(rx, ry, r, 0, Math.PI * 2, false); - var triPts = trianglePoints; - var firstTrPt = triPts[0]; - context.moveTo(firstTrPt.x, firstTrPt.y); - for (var i2 = 0; i2 < triPts.length; i2++) { - var pt = triPts[i2]; - context.lineTo(pt.x, pt.y); - } - if (context.closePath) { - context.closePath(); - } - } - function circle(context, rx, ry, r) { - context.arc(rx, ry, r, 0, Math.PI * 2, false); - } - CRp$a.arrowShapeImpl = function(name2) { - return (impl || (impl = { - "polygon": polygon, - "triangle-backcurve": triangleBackcurve, - "triangle-tee": triangleTee, - "circle-triangle": circleTriangle, - "triangle-cross": triangleTee, - "circle": circle - }))[name2]; - }; - var CRp$9 = {}; - CRp$9.drawElement = function(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) { - var r = this; - if (ele.isNode()) { - r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); - } else { - r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); - } - }; - CRp$9.drawElementOverlay = function(context, ele) { - var r = this; - if (ele.isNode()) { - r.drawNodeOverlay(context, ele); - } else { - r.drawEdgeOverlay(context, ele); - } - }; - CRp$9.drawElementUnderlay = function(context, ele) { - var r = this; - if (ele.isNode()) { - r.drawNodeUnderlay(context, ele); - } else { - r.drawEdgeUnderlay(context, ele); - } - }; - CRp$9.drawCachedElementPortion = function(context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity2) { - var r = this; - var bb = eleTxrCache.getBoundingBox(ele); - if (bb.w === 0 || bb.h === 0) { - return; - } - var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason); - if (eleCache != null) { - var opacity = getOpacity2(r, ele); - if (opacity === 0) { - return; - } - var theta = getRotation(r, ele); - var x1 = bb.x1, y1 = bb.y1, w = bb.w, h = bb.h; - var x, y, sx, sy, smooth; - if (theta !== 0) { - var rotPt = eleTxrCache.getRotationPoint(ele); - sx = rotPt.x; - sy = rotPt.y; - context.translate(sx, sy); - context.rotate(theta); - smooth = r.getImgSmoothing(context); - if (!smooth) { - r.setImgSmoothing(context, true); - } - var off = eleTxrCache.getRotationOffset(ele); - x = off.x; - y = off.y; - } else { - x = x1; - y = y1; - } - var oldGlobalAlpha; - if (opacity !== 1) { - oldGlobalAlpha = context.globalAlpha; - context.globalAlpha = oldGlobalAlpha * opacity; - } - context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h); - if (opacity !== 1) { - context.globalAlpha = oldGlobalAlpha; - } - if (theta !== 0) { - context.rotate(-theta); - context.translate(-sx, -sy); - if (!smooth) { - r.setImgSmoothing(context, false); - } - } - } else { - eleTxrCache.drawElement(context, ele); - } - }; - var getZeroRotation = function getZeroRotation2() { - return 0; - }; - var getLabelRotation = function getLabelRotation2(r, ele) { - return r.getTextAngle(ele, null); - }; - var getSourceLabelRotation = function getSourceLabelRotation2(r, ele) { - return r.getTextAngle(ele, "source"); - }; - var getTargetLabelRotation = function getTargetLabelRotation2(r, ele) { - return r.getTextAngle(ele, "target"); - }; - var getOpacity = function getOpacity2(r, ele) { - return ele.effectiveOpacity(); - }; - var getTextOpacity = function getTextOpacity2(e, ele) { - return ele.pstyle("text-opacity").pfValue * ele.effectiveOpacity(); - }; - CRp$9.drawCachedElement = function(context, ele, pxRatio, extent, lvl, requestHighQuality) { - var r = this; - var _r$data = r.data, eleTxrCache = _r$data.eleTxrCache, lblTxrCache = _r$data.lblTxrCache, slbTxrCache = _r$data.slbTxrCache, tlbTxrCache = _r$data.tlbTxrCache; - var bb = ele.boundingBox(); - var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null; - if (bb.w === 0 || bb.h === 0 || !ele.visible()) { - return; - } - if (!extent || boundingBoxesIntersect(bb, extent)) { - var isEdge = ele.isEdge(); - var badLine = ele.element()._private.rscratch.badLine; - r.drawElementUnderlay(context, ele); - r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity); - if (!isEdge || !badLine) { - r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity); - } - if (isEdge && !badLine) { - r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity); - r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity); - } - r.drawElementOverlay(context, ele); - } - }; - CRp$9.drawElements = function(context, eles) { - var r = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - r.drawElement(context, ele); - } - }; - CRp$9.drawCachedElements = function(context, eles, pxRatio, extent) { - var r = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - r.drawCachedElement(context, ele, pxRatio, extent); - } - }; - CRp$9.drawCachedNodes = function(context, eles, pxRatio, extent) { - var r = this; - for (var i2 = 0; i2 < eles.length; i2++) { - var ele = eles[i2]; - if (!ele.isNode()) { - continue; - } - r.drawCachedElement(context, ele, pxRatio, extent); - } - }; - CRp$9.drawLayeredElements = function(context, eles, pxRatio, extent) { - var r = this; - var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio); - if (layers) { - for (var i2 = 0; i2 < layers.length; i2++) { - var layer = layers[i2]; - var bb = layer.bb; - if (bb.w === 0 || bb.h === 0) { - continue; - } - context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h); - } - } else { - r.drawCachedElements(context, eles, pxRatio, extent); - } - }; - var CRp$8 = {}; - CRp$8.drawEdge = function(context, edge, shiftToOriginWithBb) { - var drawLabel = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; - var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; - var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; - var r = this; - var rs = edge._private.rscratch; - if (shouldDrawOpacity && !edge.visible()) { - return; - } - if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) { - return; - } - var bb; - if (shiftToOriginWithBb) { - bb = shiftToOriginWithBb; - context.translate(-bb.x1, -bb.y1); - } - var opacity = shouldDrawOpacity ? edge.pstyle("opacity").value : 1; - var lineOpacity = shouldDrawOpacity ? edge.pstyle("line-opacity").value : 1; - var curveStyle = edge.pstyle("curve-style").value; - var lineStyle = edge.pstyle("line-style").value; - var edgeWidth = edge.pstyle("width").pfValue; - var lineCap = edge.pstyle("line-cap").value; - var effectiveLineOpacity = opacity * lineOpacity; - var effectiveArrowOpacity = opacity * lineOpacity; - var drawLine = function drawLine2() { - var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity; - if (curveStyle === "straight-triangle") { - r.eleStrokeStyle(context, edge, strokeOpacity); - r.drawEdgeTrianglePath(edge, context, rs.allpts); - } else { - context.lineWidth = edgeWidth; - context.lineCap = lineCap; - r.eleStrokeStyle(context, edge, strokeOpacity); - r.drawEdgePath(edge, context, rs.allpts, lineStyle); - context.lineCap = "butt"; - } - }; - var drawOverlay = function drawOverlay2() { - if (!shouldDrawOverlay) { - return; - } - r.drawEdgeOverlay(context, edge); - }; - var drawUnderlay = function drawUnderlay2() { - if (!shouldDrawOverlay) { - return; - } - r.drawEdgeUnderlay(context, edge); - }; - var drawArrows = function drawArrows2() { - var arrowOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveArrowOpacity; - r.drawArrowheads(context, edge, arrowOpacity); - }; - var drawText = function drawText2() { - r.drawElementText(context, edge, null, drawLabel); - }; - context.lineJoin = "round"; - var ghost = edge.pstyle("ghost").value === "yes"; - if (ghost) { - var gx = edge.pstyle("ghost-offset-x").pfValue; - var gy = edge.pstyle("ghost-offset-y").pfValue; - var ghostOpacity = edge.pstyle("ghost-opacity").value; - var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity; - context.translate(gx, gy); - drawLine(effectiveGhostOpacity); - drawArrows(effectiveGhostOpacity); - context.translate(-gx, -gy); - } - drawUnderlay(); - drawLine(); - drawArrows(); - drawOverlay(); - drawText(); - if (shiftToOriginWithBb) { - context.translate(bb.x1, bb.y1); - } - }; - var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay2(overlayOrUnderlay) { - if (!["overlay", "underlay"].includes(overlayOrUnderlay)) { - throw new Error("Invalid state"); - } - return function(context, edge) { - if (!edge.visible()) { - return; - } - var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; - if (opacity === 0) { - return; - } - var r = this; - var usePaths = r.usePaths(); - var rs = edge._private.rscratch; - var padding = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; - var width = 2 * padding; - var color = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value; - context.lineWidth = width; - if (rs.edgeType === "self" && !usePaths) { - context.lineCap = "butt"; - } else { - context.lineCap = "round"; - } - r.colorStrokeStyle(context, color[0], color[1], color[2], opacity); - r.drawEdgePath(edge, context, rs.allpts, "solid"); - }; - }; - CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay("overlay"); - CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay("underlay"); - CRp$8.drawEdgePath = function(edge, context, pts2, type) { - var rs = edge._private.rscratch; - var canvasCxt = context; - var path; - var pathCacheHit = false; - var usePaths = this.usePaths(); - var lineDashPattern = edge.pstyle("line-dash-pattern").pfValue; - var lineDashOffset = edge.pstyle("line-dash-offset").pfValue; - if (usePaths) { - var pathCacheKey = pts2.join("$"); - var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey; - if (keyMatches) { - path = context = rs.pathCache; - pathCacheHit = true; - } else { - path = context = new Path2D(); - rs.pathCacheKey = pathCacheKey; - rs.pathCache = path; - } - } - if (canvasCxt.setLineDash) { - switch (type) { - case "dotted": - canvasCxt.setLineDash([1, 1]); - break; - case "dashed": - canvasCxt.setLineDash(lineDashPattern); - canvasCxt.lineDashOffset = lineDashOffset; - break; - case "solid": - canvasCxt.setLineDash([]); - break; - } - } - if (!pathCacheHit && !rs.badLine) { - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(pts2[0], pts2[1]); - switch (rs.edgeType) { - case "bezier": - case "self": - case "compound": - case "multibezier": - for (var i2 = 2; i2 + 3 < pts2.length; i2 += 4) { - context.quadraticCurveTo(pts2[i2], pts2[i2 + 1], pts2[i2 + 2], pts2[i2 + 3]); - } - break; - case "straight": - case "segments": - case "haystack": - for (var _i = 2; _i + 1 < pts2.length; _i += 2) { - context.lineTo(pts2[_i], pts2[_i + 1]); - } - break; - } - } - context = canvasCxt; - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - if (context.setLineDash) { - context.setLineDash([]); - } - }; - CRp$8.drawEdgeTrianglePath = function(edge, context, pts2) { - context.fillStyle = context.strokeStyle; - var edgeWidth = edge.pstyle("width").pfValue; - for (var i2 = 0; i2 + 1 < pts2.length; i2 += 2) { - var vector = [pts2[i2 + 2] - pts2[i2], pts2[i2 + 3] - pts2[i2 + 1]]; - var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]); - var normal = [vector[1] / length, -vector[0] / length]; - var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2]; - context.beginPath(); - context.moveTo(pts2[i2] - triangleHead[0], pts2[i2 + 1] - triangleHead[1]); - context.lineTo(pts2[i2] + triangleHead[0], pts2[i2 + 1] + triangleHead[1]); - context.lineTo(pts2[i2 + 2], pts2[i2 + 3]); - context.closePath(); - context.fill(); - } - }; - CRp$8.drawArrowheads = function(context, edge, opacity) { - var rs = edge._private.rscratch; - var isHaystack = rs.edgeType === "haystack"; - if (!isHaystack) { - this.drawArrowhead(context, edge, "source", rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity); - } - this.drawArrowhead(context, edge, "mid-target", rs.midX, rs.midY, rs.midtgtArrowAngle, opacity); - this.drawArrowhead(context, edge, "mid-source", rs.midX, rs.midY, rs.midsrcArrowAngle, opacity); - if (!isHaystack) { - this.drawArrowhead(context, edge, "target", rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity); - } - }; - CRp$8.drawArrowhead = function(context, edge, prefix, x, y, angle, opacity) { - if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) { - return; - } - var self2 = this; - var arrowShape = edge.pstyle(prefix + "-arrow-shape").value; - if (arrowShape === "none") { - return; - } - var arrowClearFill = edge.pstyle(prefix + "-arrow-fill").value === "hollow" ? "both" : "filled"; - var arrowFill = edge.pstyle(prefix + "-arrow-fill").value; - var edgeWidth = edge.pstyle("width").pfValue; - var pArrowWidth = edge.pstyle(prefix + "-arrow-width"); - var arrowWidth = pArrowWidth.value === "match-line" ? edgeWidth : pArrowWidth.pfValue; - if (pArrowWidth.units === "%") - arrowWidth *= edgeWidth; - var edgeOpacity = edge.pstyle("opacity").value; - if (opacity === void 0) { - opacity = edgeOpacity; - } - var gco = context.globalCompositeOperation; - if (opacity !== 1 || arrowFill === "hollow") { - context.globalCompositeOperation = "destination-out"; - self2.colorFillStyle(context, 255, 255, 255, 1); - self2.colorStrokeStyle(context, 255, 255, 255, 1); - self2.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x, y, angle); - context.globalCompositeOperation = gco; - } - var color = edge.pstyle(prefix + "-arrow-color").value; - self2.colorFillStyle(context, color[0], color[1], color[2], opacity); - self2.colorStrokeStyle(context, color[0], color[1], color[2], opacity); - self2.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x, y, angle); - }; - CRp$8.drawArrowShape = function(edge, context, fill, edgeWidth, shape, shapeWidth, x, y, angle) { - var r = this; - var usePaths = this.usePaths() && shape !== "triangle-cross"; - var pathCacheHit = false; - var path; - var canvasContext = context; - var translation = { - x, - y - }; - var scale = edge.pstyle("arrow-scale").value; - var size = this.getArrowWidth(edgeWidth, scale); - var shapeImpl = r.arrowShapes[shape]; - if (usePaths) { - var cache2 = r.arrowPathCache = r.arrowPathCache || []; - var key = hashString(shape); - var cachedPath = cache2[key]; - if (cachedPath != null) { - path = context = cachedPath; - pathCacheHit = true; - } else { - path = context = new Path2D(); - cache2[key] = path; - } - } - if (!pathCacheHit) { - if (context.beginPath) { - context.beginPath(); - } - if (usePaths) { - shapeImpl.draw(context, 1, 0, { - x: 0, - y: 0 - }, 1); - } else { - shapeImpl.draw(context, size, angle, translation, edgeWidth); - } - if (context.closePath) { - context.closePath(); - } - } - context = canvasContext; - if (usePaths) { - context.translate(x, y); - context.rotate(angle); - context.scale(size, size); - } - if (fill === "filled" || fill === "both") { - if (usePaths) { - context.fill(path); - } else { - context.fill(); - } - } - if (fill === "hollow" || fill === "both") { - context.lineWidth = shapeWidth / (usePaths ? size : 1); - context.lineJoin = "miter"; - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - } - if (usePaths) { - context.scale(1 / size, 1 / size); - context.rotate(-angle); - context.translate(-x, -y); - } - }; - var CRp$7 = {}; - CRp$7.safeDrawImage = function(context, img, ix, iy, iw, ih, x, y, w, h) { - if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) { - return; - } - try { - context.drawImage(img, ix, iy, iw, ih, x, y, w, h); - } catch (e) { - warn(e); - } - }; - CRp$7.drawInscribedImage = function(context, img, node, index, nodeOpacity) { - var r = this; - var pos = node.position(); - var nodeX = pos.x; - var nodeY = pos.y; - var styleObj = node.cy().style(); - var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj); - var fit = getIndexedStyle(node, "background-fit", "value", index); - var repeat = getIndexedStyle(node, "background-repeat", "value", index); - var nodeW = node.width(); - var nodeH = node.height(); - var paddingX2 = node.padding() * 2; - var nodeTW = nodeW + (getIndexedStyle(node, "background-width-relative-to", "value", index) === "inner" ? 0 : paddingX2); - var nodeTH = nodeH + (getIndexedStyle(node, "background-height-relative-to", "value", index) === "inner" ? 0 : paddingX2); - var rs = node._private.rscratch; - var clip = getIndexedStyle(node, "background-clip", "value", index); - var shouldClip = clip === "node"; - var imgOpacity = getIndexedStyle(node, "background-image-opacity", "value", index) * nodeOpacity; - var smooth = getIndexedStyle(node, "background-image-smoothing", "value", index); - var imgW = img.width || img.cachedW; - var imgH = img.height || img.cachedH; - if (null == imgW || null == imgH) { - document.body.appendChild(img); - imgW = img.cachedW = img.width || img.offsetWidth; - imgH = img.cachedH = img.height || img.offsetHeight; - document.body.removeChild(img); - } - var w = imgW; - var h = imgH; - if (getIndexedStyle(node, "background-width", "value", index) !== "auto") { - if (getIndexedStyle(node, "background-width", "units", index) === "%") { - w = getIndexedStyle(node, "background-width", "pfValue", index) * nodeTW; - } else { - w = getIndexedStyle(node, "background-width", "pfValue", index); - } - } - if (getIndexedStyle(node, "background-height", "value", index) !== "auto") { - if (getIndexedStyle(node, "background-height", "units", index) === "%") { - h = getIndexedStyle(node, "background-height", "pfValue", index) * nodeTH; - } else { - h = getIndexedStyle(node, "background-height", "pfValue", index); - } - } - if (w === 0 || h === 0) { - return; - } - if (fit === "contain") { - var scale = Math.min(nodeTW / w, nodeTH / h); - w *= scale; - h *= scale; - } else if (fit === "cover") { - var scale = Math.max(nodeTW / w, nodeTH / h); - w *= scale; - h *= scale; - } - var x = nodeX - nodeTW / 2; - var posXUnits = getIndexedStyle(node, "background-position-x", "units", index); - var posXPfVal = getIndexedStyle(node, "background-position-x", "pfValue", index); - if (posXUnits === "%") { - x += (nodeTW - w) * posXPfVal; - } else { - x += posXPfVal; - } - var offXUnits = getIndexedStyle(node, "background-offset-x", "units", index); - var offXPfVal = getIndexedStyle(node, "background-offset-x", "pfValue", index); - if (offXUnits === "%") { - x += (nodeTW - w) * offXPfVal; - } else { - x += offXPfVal; - } - var y = nodeY - nodeTH / 2; - var posYUnits = getIndexedStyle(node, "background-position-y", "units", index); - var posYPfVal = getIndexedStyle(node, "background-position-y", "pfValue", index); - if (posYUnits === "%") { - y += (nodeTH - h) * posYPfVal; - } else { - y += posYPfVal; - } - var offYUnits = getIndexedStyle(node, "background-offset-y", "units", index); - var offYPfVal = getIndexedStyle(node, "background-offset-y", "pfValue", index); - if (offYUnits === "%") { - y += (nodeTH - h) * offYPfVal; - } else { - y += offYPfVal; - } - if (rs.pathCache) { - x -= nodeX; - y -= nodeY; - nodeX = 0; - nodeY = 0; - } - var gAlpha = context.globalAlpha; - context.globalAlpha = imgOpacity; - var smoothingEnabled = r.getImgSmoothing(context); - var isSmoothingSwitched = false; - if (smooth === "no" && smoothingEnabled) { - r.setImgSmoothing(context, false); - isSmoothingSwitched = true; - } else if (smooth === "yes" && !smoothingEnabled) { - r.setImgSmoothing(context, true); - isSmoothingSwitched = true; - } - if (repeat === "no-repeat") { - if (shouldClip) { - context.save(); - if (rs.pathCache) { - context.clip(rs.pathCache); - } else { - r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); - context.clip(); - } - } - r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h); - if (shouldClip) { - context.restore(); - } - } else { - var pattern = context.createPattern(img, repeat); - context.fillStyle = pattern; - r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); - context.translate(x, y); - context.fill(); - context.translate(-x, -y); - } - context.globalAlpha = gAlpha; - if (isSmoothingSwitched) { - r.setImgSmoothing(context, smoothingEnabled); - } - }; - var CRp$6 = {}; - CRp$6.eleTextBiggerThanMin = function(ele, scale) { - if (!scale) { - var zoom = ele.cy().zoom(); - var pxRatio = this.getPixelRatio(); - var lvl = Math.ceil(log2(zoom * pxRatio)); - scale = Math.pow(2, lvl); - } - var computedSize = ele.pstyle("font-size").pfValue * scale; - var minSize = ele.pstyle("min-zoomed-font-size").pfValue; - if (computedSize < minSize) { - return false; - } - return true; - }; - CRp$6.drawElementText = function(context, ele, shiftToOriginWithBb, force, prefix) { - var useEleOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; - var r = this; - if (force == null) { - if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) { - return; - } - } else if (force === false) { - return; - } - if (ele.isNode()) { - var label = ele.pstyle("label"); - if (!label || !label.value) { - return; - } - var justification = r.getLabelJustification(ele); - context.textAlign = justification; - context.textBaseline = "bottom"; - } else { - var badLine = ele.element()._private.rscratch.badLine; - var _label = ele.pstyle("label"); - var srcLabel = ele.pstyle("source-label"); - var tgtLabel = ele.pstyle("target-label"); - if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) { - return; - } - context.textAlign = "center"; - context.textBaseline = "bottom"; - } - var applyRotation = !shiftToOriginWithBb; - var bb; - if (shiftToOriginWithBb) { - bb = shiftToOriginWithBb; - context.translate(-bb.x1, -bb.y1); - } - if (prefix == null) { - r.drawText(context, ele, null, applyRotation, useEleOpacity); - if (ele.isEdge()) { - r.drawText(context, ele, "source", applyRotation, useEleOpacity); - r.drawText(context, ele, "target", applyRotation, useEleOpacity); - } - } else { - r.drawText(context, ele, prefix, applyRotation, useEleOpacity); - } - if (shiftToOriginWithBb) { - context.translate(bb.x1, bb.y1); - } - }; - CRp$6.getFontCache = function(context) { - var cache2; - this.fontCaches = this.fontCaches || []; - for (var i2 = 0; i2 < this.fontCaches.length; i2++) { - cache2 = this.fontCaches[i2]; - if (cache2.context === context) { - return cache2; - } - } - cache2 = { - context - }; - this.fontCaches.push(cache2); - return cache2; - }; - CRp$6.setupTextStyle = function(context, ele) { - var useEleOpacity = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true; - var labelStyle = ele.pstyle("font-style").strValue; - var labelSize = ele.pstyle("font-size").pfValue + "px"; - var labelFamily = ele.pstyle("font-family").strValue; - var labelWeight = ele.pstyle("font-weight").strValue; - var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle("text-opacity").value : 1; - var outlineOpacity = ele.pstyle("text-outline-opacity").value * opacity; - var color = ele.pstyle("color").value; - var outlineColor = ele.pstyle("text-outline-color").value; - context.font = labelStyle + " " + labelWeight + " " + labelSize + " " + labelFamily; - context.lineJoin = "round"; - this.colorFillStyle(context, color[0], color[1], color[2], opacity); - this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity); - }; - function roundRect(ctx, x, y, width, height) { - var radius = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5; - var stroke = arguments.length > 6 ? arguments[6] : void 0; - ctx.beginPath(); - ctx.moveTo(x + radius, y); - ctx.lineTo(x + width - radius, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + radius); - ctx.lineTo(x + width, y + height - radius); - ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); - ctx.lineTo(x + radius, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - radius); - ctx.lineTo(x, y + radius); - ctx.quadraticCurveTo(x, y, x + radius, y); - ctx.closePath(); - if (stroke) - ctx.stroke(); - else - ctx.fill(); - } - CRp$6.getTextAngle = function(ele, prefix) { - var theta; - var _p = ele._private; - var rscratch = _p.rscratch; - var pdash = prefix ? prefix + "-" : ""; - var rotation = ele.pstyle(pdash + "text-rotation"); - var textAngle = getPrefixedProperty(rscratch, "labelAngle", prefix); - if (rotation.strValue === "autorotate") { - theta = ele.isEdge() ? textAngle : 0; - } else if (rotation.strValue === "none") { - theta = 0; - } else { - theta = rotation.pfValue; - } - return theta; - }; - CRp$6.drawText = function(context, ele, prefix) { - var applyRotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; - var useEleOpacity = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; - var _p = ele._private; - var rscratch = _p.rscratch; - var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1; - if (useEleOpacity && (parentOpacity === 0 || ele.pstyle("text-opacity").value === 0)) { - return; - } - if (prefix === "main") { - prefix = null; - } - var textX = getPrefixedProperty(rscratch, "labelX", prefix); - var textY = getPrefixedProperty(rscratch, "labelY", prefix); - var orgTextX, orgTextY; - var text = this.getLabelText(ele, prefix); - if (text != null && text !== "" && !isNaN(textX) && !isNaN(textY)) { - this.setupTextStyle(context, ele, useEleOpacity); - var pdash = prefix ? prefix + "-" : ""; - var textW = getPrefixedProperty(rscratch, "labelWidth", prefix); - var textH = getPrefixedProperty(rscratch, "labelHeight", prefix); - var marginX = ele.pstyle(pdash + "text-margin-x").pfValue; - var marginY = ele.pstyle(pdash + "text-margin-y").pfValue; - var isEdge = ele.isEdge(); - var halign = ele.pstyle("text-halign").value; - var valign = ele.pstyle("text-valign").value; - if (isEdge) { - halign = "center"; - valign = "center"; - } - textX += marginX; - textY += marginY; - var theta; - if (!applyRotation) { - theta = 0; - } else { - theta = this.getTextAngle(ele, prefix); - } - if (theta !== 0) { - orgTextX = textX; - orgTextY = textY; - context.translate(orgTextX, orgTextY); - context.rotate(theta); - textX = 0; - textY = 0; - } - switch (valign) { - case "top": - break; - case "center": - textY += textH / 2; - break; - case "bottom": - textY += textH; - break; - } - var backgroundOpacity = ele.pstyle("text-background-opacity").value; - var borderOpacity = ele.pstyle("text-border-opacity").value; - var textBorderWidth = ele.pstyle("text-border-width").pfValue; - var backgroundPadding = ele.pstyle("text-background-padding").pfValue; - var styleShape = ele.pstyle("text-background-shape").strValue; - var rounded = styleShape.indexOf("round") === 0; - var roundRadius = 2; - if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) { - var bgX = textX - backgroundPadding; - switch (halign) { - case "left": - bgX -= textW; - break; - case "center": - bgX -= textW / 2; - break; - } - var bgY = textY - textH - backgroundPadding; - var bgW = textW + 2 * backgroundPadding; - var bgH = textH + 2 * backgroundPadding; - if (backgroundOpacity > 0) { - var textFill = context.fillStyle; - var textBackgroundColor = ele.pstyle("text-background-color").value; - context.fillStyle = "rgba(" + textBackgroundColor[0] + "," + textBackgroundColor[1] + "," + textBackgroundColor[2] + "," + backgroundOpacity * parentOpacity + ")"; - if (rounded) { - roundRect(context, bgX, bgY, bgW, bgH, roundRadius); - } else { - context.fillRect(bgX, bgY, bgW, bgH); - } - context.fillStyle = textFill; - } - if (textBorderWidth > 0 && borderOpacity > 0) { - var textStroke = context.strokeStyle; - var textLineWidth = context.lineWidth; - var textBorderColor = ele.pstyle("text-border-color").value; - var textBorderStyle = ele.pstyle("text-border-style").value; - context.strokeStyle = "rgba(" + textBorderColor[0] + "," + textBorderColor[1] + "," + textBorderColor[2] + "," + borderOpacity * parentOpacity + ")"; - context.lineWidth = textBorderWidth; - if (context.setLineDash) { - switch (textBorderStyle) { - case "dotted": - context.setLineDash([1, 1]); - break; - case "dashed": - context.setLineDash([4, 2]); - break; - case "double": - context.lineWidth = textBorderWidth / 4; - context.setLineDash([]); - break; - case "solid": - context.setLineDash([]); - break; - } - } - if (rounded) { - roundRect(context, bgX, bgY, bgW, bgH, roundRadius, "stroke"); - } else { - context.strokeRect(bgX, bgY, bgW, bgH); - } - if (textBorderStyle === "double") { - var whiteWidth = textBorderWidth / 2; - if (rounded) { - roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2, roundRadius, "stroke"); - } else { - context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2); - } - } - if (context.setLineDash) { - context.setLineDash([]); - } - context.lineWidth = textLineWidth; - context.strokeStyle = textStroke; - } - } - var lineWidth = 2 * ele.pstyle("text-outline-width").pfValue; - if (lineWidth > 0) { - context.lineWidth = lineWidth; - } - if (ele.pstyle("text-wrap").value === "wrap") { - var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix); - var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix); - var halfTextW = textW / 2; - var justification = this.getLabelJustification(ele); - if (justification === "auto") - ; - else if (halign === "left") { - if (justification === "left") { - textX += -textW; - } else if (justification === "center") { - textX += -halfTextW; - } - } else if (halign === "center") { - if (justification === "left") { - textX += -halfTextW; - } else if (justification === "right") { - textX += halfTextW; - } - } else if (halign === "right") { - if (justification === "center") { - textX += halfTextW; - } else if (justification === "right") { - textX += textW; - } - } - switch (valign) { - case "top": - textY -= (lines.length - 1) * lineHeight; - break; - case "center": - case "bottom": - textY -= (lines.length - 1) * lineHeight; - break; - } - for (var l = 0; l < lines.length; l++) { - if (lineWidth > 0) { - context.strokeText(lines[l], textX, textY); - } - context.fillText(lines[l], textX, textY); - textY += lineHeight; - } - } else { - if (lineWidth > 0) { - context.strokeText(text, textX, textY); - } - context.fillText(text, textX, textY); - } - if (theta !== 0) { - context.rotate(-theta); - context.translate(-orgTextX, -orgTextY); - } - } - }; - var CRp$5 = {}; - CRp$5.drawNode = function(context, node, shiftToOriginWithBb) { - var drawLabel = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true; - var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true; - var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true; - var r = this; - var nodeWidth, nodeHeight; - var _p = node._private; - var rs = _p.rscratch; - var pos = node.position(); - if (!number$1(pos.x) || !number$1(pos.y)) { - return; - } - if (shouldDrawOpacity && !node.visible()) { - return; - } - var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1; - var usePaths = r.usePaths(); - var path; - var pathCacheHit = false; - var padding = node.padding(); - nodeWidth = node.width() + 2 * padding; - nodeHeight = node.height() + 2 * padding; - var bb; - if (shiftToOriginWithBb) { - bb = shiftToOriginWithBb; - context.translate(-bb.x1, -bb.y1); - } - var bgImgProp = node.pstyle("background-image"); - var urls = bgImgProp.value; - var urlDefined = new Array(urls.length); - var image = new Array(urls.length); - var numImages = 0; - for (var i2 = 0; i2 < urls.length; i2++) { - var url = urls[i2]; - var defd = urlDefined[i2] = url != null && url !== "none"; - if (defd) { - var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, "background-image-crossorigin", "value", i2); - numImages++; - image[i2] = r.getCachedImage(url, bgImgCrossOrigin, function() { - _p.backgroundTimestamp = Date.now(); - node.emitAndNotify("background"); - }); - } - } - var darkness = node.pstyle("background-blacken").value; - var borderWidth = node.pstyle("border-width").pfValue; - var bgOpacity = node.pstyle("background-opacity").value * eleOpacity; - var borderColor = node.pstyle("border-color").value; - var borderStyle = node.pstyle("border-style").value; - var borderOpacity = node.pstyle("border-opacity").value * eleOpacity; - var outlineWidth = node.pstyle("outline-width").pfValue; - var outlineColor = node.pstyle("outline-color").value; - var outlineStyle = node.pstyle("outline-style").value; - var outlineOpacity = node.pstyle("outline-opacity").value * eleOpacity; - var outlineOffset = node.pstyle("outline-offset").value; - context.lineJoin = "miter"; - var setupShapeColor = function setupShapeColor2() { - var bgOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bgOpacity; - r.eleFillStyle(context, node, bgOpy); - }; - var setupBorderColor = function setupBorderColor2() { - var bdrOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : borderOpacity; - r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy); - }; - var setupOutlineColor = function setupOutlineColor2() { - var otlnOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : outlineOpacity; - r.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy); - }; - var getPath = function getPath2(width, height, shape, points) { - var pathCache = r.nodePathCache = r.nodePathCache || []; - var key = hashStrings(shape === "polygon" ? shape + "," + points.join(",") : shape, "" + height, "" + width); - var cachedPath = pathCache[key]; - var path2; - var cacheHit = false; - if (cachedPath != null) { - path2 = cachedPath; - cacheHit = true; - rs.pathCache = path2; - } else { - path2 = new Path2D(); - pathCache[key] = rs.pathCache = path2; - } - return { - path: path2, - cacheHit - }; - }; - var styleShape = node.pstyle("shape").strValue; - var shapePts = node.pstyle("shape-polygon-points").pfValue; - if (usePaths) { - context.translate(pos.x, pos.y); - var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts); - path = shapePath.path; - pathCacheHit = shapePath.cacheHit; - } - var drawShape = function drawShape2() { - if (!pathCacheHit) { - var npos = pos; - if (usePaths) { - npos = { - x: 0, - y: 0 - }; - } - r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight); - } - if (usePaths) { - context.fill(path); - } else { - context.fill(); - } - }; - var drawImages = function drawImages2() { - var nodeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity; - var inside = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; - var prevBging = _p.backgrounding; - var totalCompleted = 0; - for (var _i = 0; _i < image.length; _i++) { - var bgContainment = node.cy().style().getIndexedStyle(node, "background-image-containment", "value", _i); - if (inside && bgContainment === "over" || !inside && bgContainment === "inside") { - totalCompleted++; - continue; - } - if (urlDefined[_i] && image[_i].complete && !image[_i].error) { - totalCompleted++; - r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity); - } - } - _p.backgrounding = !(totalCompleted === numImages); - if (prevBging !== _p.backgrounding) { - node.updateStyle(false); - } - }; - var drawPie = function drawPie2() { - var redrawShape = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false; - var pieOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : eleOpacity; - if (r.hasPie(node)) { - r.drawPie(context, node, pieOpacity); - if (redrawShape) { - if (!usePaths) { - r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight); - } - } - } - }; - var darken = function darken2() { - var darkenOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity; - var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity; - var c = darkness > 0 ? 0 : 255; - if (darkness !== 0) { - r.colorFillStyle(context, c, c, c, opacity); - if (usePaths) { - context.fill(path); - } else { - context.fill(); - } - } - }; - var drawBorder = function drawBorder2() { - if (borderWidth > 0) { - context.lineWidth = borderWidth; - context.lineCap = "butt"; - if (context.setLineDash) { - switch (borderStyle) { - case "dotted": - context.setLineDash([1, 1]); - break; - case "dashed": - context.setLineDash([4, 2]); - break; - case "solid": - case "double": - context.setLineDash([]); - break; - } - } - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - if (borderStyle === "double") { - context.lineWidth = borderWidth / 3; - var gco = context.globalCompositeOperation; - context.globalCompositeOperation = "destination-out"; - if (usePaths) { - context.stroke(path); - } else { - context.stroke(); - } - context.globalCompositeOperation = gco; - } - if (context.setLineDash) { - context.setLineDash([]); - } - } - }; - var drawOutline = function drawOutline2() { - if (outlineWidth > 0) { - context.lineWidth = outlineWidth; - context.lineCap = "butt"; - if (context.setLineDash) { - switch (outlineStyle) { - case "dotted": - context.setLineDash([1, 1]); - break; - case "dashed": - context.setLineDash([4, 2]); - break; - case "solid": - case "double": - context.setLineDash([]); - break; - } - } - var npos = pos; - if (usePaths) { - npos = { - x: 0, - y: 0 - }; - } - var shape = r.getNodeShape(node); - var scaleX = (nodeWidth + borderWidth + (outlineWidth + outlineOffset)) / nodeWidth; - var scaleY = (nodeHeight + borderWidth + (outlineWidth + outlineOffset)) / nodeHeight; - var sWidth = nodeWidth * scaleX; - var sHeight = nodeHeight * scaleY; - var points = r.nodeShapes[shape].points; - var _path; - if (usePaths) { - var outlinePath = getPath(sWidth, sHeight, shape, points); - _path = outlinePath.path; - } - if (shape === "ellipse") { - r.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight); - } else if (["round-diamond", "round-heptagon", "round-hexagon", "round-octagon", "round-pentagon", "round-polygon", "round-triangle", "round-tag"].includes(shape)) { - var sMult = 0; - var offsetX = 0; - var offsetY = 0; - if (shape === "round-diamond") { - sMult = (borderWidth + outlineOffset + outlineWidth) * 1.4; - } else if (shape === "round-heptagon") { - sMult = (borderWidth + outlineOffset + outlineWidth) * 1.075; - offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 35; - } else if (shape === "round-hexagon") { - sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12; - } else if (shape === "round-pentagon") { - sMult = (borderWidth + outlineOffset + outlineWidth) * 1.13; - offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 15; - } else if (shape === "round-tag") { - sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12; - offsetX = (borderWidth / 2 + outlineWidth + outlineOffset) * 0.07; - } else if (shape === "round-triangle") { - sMult = (borderWidth + outlineOffset + outlineWidth) * (Math.PI / 2); - offsetY = -(borderWidth + outlineOffset / 2 + outlineWidth) / Math.PI; - } - if (sMult !== 0) { - scaleX = (nodeWidth + sMult) / nodeWidth; - scaleY = (nodeHeight + sMult) / nodeHeight; - } - r.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points); - } else if (["roundrectangle", "round-rectangle"].includes(shape)) { - r.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight); - } else if (["cutrectangle", "cut-rectangle"].includes(shape)) { - r.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight); - } else if (["bottomroundrectangle", "bottom-round-rectangle"].includes(shape)) { - r.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight); - } else if (shape === "barrel") { - r.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight); - } else if (shape.startsWith("polygon") || ["rhomboid", "right-rhomboid", "round-tag", "tag", "vee"].includes(shape)) { - var pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth; - points = joinLines(expandPolygon(points, pad)); - r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points); - } else { - var _pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth; - points = joinLines(expandPolygon(points, -_pad)); - r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points); - } - if (usePaths) { - context.stroke(_path); - } else { - context.stroke(); - } - if (outlineStyle === "double") { - context.lineWidth = borderWidth / 3; - var gco = context.globalCompositeOperation; - context.globalCompositeOperation = "destination-out"; - if (usePaths) { - context.stroke(_path); - } else { - context.stroke(); - } - context.globalCompositeOperation = gco; - } - if (context.setLineDash) { - context.setLineDash([]); - } - } - }; - var drawOverlay = function drawOverlay2() { - if (shouldDrawOverlay) { - r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight); - } - }; - var drawUnderlay = function drawUnderlay2() { - if (shouldDrawOverlay) { - r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight); - } - }; - var drawText = function drawText2() { - r.drawElementText(context, node, null, drawLabel); - }; - var ghost = node.pstyle("ghost").value === "yes"; - if (ghost) { - var gx = node.pstyle("ghost-offset-x").pfValue; - var gy = node.pstyle("ghost-offset-y").pfValue; - var ghostOpacity = node.pstyle("ghost-opacity").value; - var effGhostOpacity = ghostOpacity * eleOpacity; - context.translate(gx, gy); - setupOutlineColor(); - drawOutline(); - setupShapeColor(ghostOpacity * bgOpacity); - drawShape(); - drawImages(effGhostOpacity, true); - setupBorderColor(ghostOpacity * borderOpacity); - drawBorder(); - drawPie(darkness !== 0 || borderWidth !== 0); - drawImages(effGhostOpacity, false); - darken(effGhostOpacity); - context.translate(-gx, -gy); - } - if (usePaths) { - context.translate(-pos.x, -pos.y); - } - drawUnderlay(); - if (usePaths) { - context.translate(pos.x, pos.y); - } - setupOutlineColor(); - drawOutline(); - setupShapeColor(); - drawShape(); - drawImages(eleOpacity, true); - setupBorderColor(); - drawBorder(); - drawPie(darkness !== 0 || borderWidth !== 0); - drawImages(eleOpacity, false); - darken(); - if (usePaths) { - context.translate(-pos.x, -pos.y); - } - drawText(); - drawOverlay(); - if (shiftToOriginWithBb) { - context.translate(bb.x1, bb.y1); - } - }; - var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay2(overlayOrUnderlay) { - if (!["overlay", "underlay"].includes(overlayOrUnderlay)) { - throw new Error("Invalid state"); - } - return function(context, node, pos, nodeWidth, nodeHeight) { - var r = this; - if (!node.visible()) { - return; - } - var padding = node.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; - var opacity = node.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; - var color = node.pstyle("".concat(overlayOrUnderlay, "-color")).value; - var shape = node.pstyle("".concat(overlayOrUnderlay, "-shape")).value; - if (opacity > 0) { - pos = pos || node.position(); - if (nodeWidth == null || nodeHeight == null) { - var _padding = node.padding(); - nodeWidth = node.width() + 2 * _padding; - nodeHeight = node.height() + 2 * _padding; - } - r.colorFillStyle(context, color[0], color[1], color[2], opacity); - r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2); - context.fill(); - } - }; - }; - CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay("overlay"); - CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay("underlay"); - CRp$5.hasPie = function(node) { - node = node[0]; - return node._private.hasPie; - }; - CRp$5.drawPie = function(context, node, nodeOpacity, pos) { - node = node[0]; - pos = pos || node.position(); - var cyStyle = node.cy().style(); - var pieSize = node.pstyle("pie-size"); - var x = pos.x; - var y = pos.y; - var nodeW = node.width(); - var nodeH = node.height(); - var radius = Math.min(nodeW, nodeH) / 2; - var lastPercent = 0; - var usePaths = this.usePaths(); - if (usePaths) { - x = 0; - y = 0; - } - if (pieSize.units === "%") { - radius = radius * pieSize.pfValue; - } else if (pieSize.pfValue !== void 0) { - radius = pieSize.pfValue / 2; - } - for (var i2 = 1; i2 <= cyStyle.pieBackgroundN; i2++) { - var size = node.pstyle("pie-" + i2 + "-background-size").value; - var color = node.pstyle("pie-" + i2 + "-background-color").value; - var opacity = node.pstyle("pie-" + i2 + "-background-opacity").value * nodeOpacity; - var percent = size / 100; - if (percent + lastPercent > 1) { - percent = 1 - lastPercent; - } - var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; - var angleDelta = 2 * Math.PI * percent; - var angleEnd = angleStart + angleDelta; - if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) { - continue; - } - context.beginPath(); - context.moveTo(x, y); - context.arc(x, y, radius, angleStart, angleEnd); - context.closePath(); - this.colorFillStyle(context, color[0], color[1], color[2], opacity); - context.fill(); - lastPercent += percent; - } - }; - var CRp$4 = {}; - var motionBlurDelay = 100; - CRp$4.getPixelRatio = function() { - var context = this.data.contexts[0]; - if (this.forcedPixelRatio != null) { - return this.forcedPixelRatio; - } - var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; - return (window.devicePixelRatio || 1) / backingStore; - }; - CRp$4.paintCache = function(context) { - var caches = this.paintCaches = this.paintCaches || []; - var needToCreateCache = true; - var cache2; - for (var i2 = 0; i2 < caches.length; i2++) { - cache2 = caches[i2]; - if (cache2.context === context) { - needToCreateCache = false; - break; - } - } - if (needToCreateCache) { - cache2 = { - context - }; - caches.push(cache2); - } - return cache2; - }; - CRp$4.createGradientStyleFor = function(context, shapeStyleName, ele, fill, opacity) { - var gradientStyle; - var usePaths = this.usePaths(); - var colors2 = ele.pstyle(shapeStyleName + "-gradient-stop-colors").value, positions = ele.pstyle(shapeStyleName + "-gradient-stop-positions").pfValue; - if (fill === "radial-gradient") { - if (ele.isEdge()) { - var start = ele.sourceEndpoint(), end = ele.targetEndpoint(), mid = ele.midpoint(); - var d1 = dist(start, mid); - var d2 = dist(end, mid); - gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2)); - } else { - var pos = usePaths ? { - x: 0, - y: 0 - } : ele.position(), width = ele.paddedWidth(), height = ele.paddedHeight(); - gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height)); - } - } else { - if (ele.isEdge()) { - var _start = ele.sourceEndpoint(), _end = ele.targetEndpoint(); - gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y); - } else { - var _pos = usePaths ? { - x: 0, - y: 0 - } : ele.position(), _width = ele.paddedWidth(), _height = ele.paddedHeight(), halfWidth = _width / 2, halfHeight = _height / 2; - var direction = ele.pstyle("background-gradient-direction").value; - switch (direction) { - case "to-bottom": - gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight); - break; - case "to-top": - gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight); - break; - case "to-left": - gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y); - break; - case "to-right": - gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y); - break; - case "to-bottom-right": - case "to-right-bottom": - gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight); - break; - case "to-top-right": - case "to-right-top": - gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight); - break; - case "to-bottom-left": - case "to-left-bottom": - gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight); - break; - case "to-top-left": - case "to-left-top": - gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight); - break; - } - } - } - if (!gradientStyle) - return null; - var hasPositions = positions.length === colors2.length; - var length = colors2.length; - for (var i2 = 0; i2 < length; i2++) { - gradientStyle.addColorStop(hasPositions ? positions[i2] : i2 / (length - 1), "rgba(" + colors2[i2][0] + "," + colors2[i2][1] + "," + colors2[i2][2] + "," + opacity + ")"); - } - return gradientStyle; - }; - CRp$4.gradientFillStyle = function(context, ele, fill, opacity) { - var gradientStyle = this.createGradientStyleFor(context, "background", ele, fill, opacity); - if (!gradientStyle) - return null; - context.fillStyle = gradientStyle; - }; - CRp$4.colorFillStyle = function(context, r, g, b, a) { - context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")"; - }; - CRp$4.eleFillStyle = function(context, ele, opacity) { - var backgroundFill = ele.pstyle("background-fill").value; - if (backgroundFill === "linear-gradient" || backgroundFill === "radial-gradient") { - this.gradientFillStyle(context, ele, backgroundFill, opacity); - } else { - var backgroundColor = ele.pstyle("background-color").value; - this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity); - } - }; - CRp$4.gradientStrokeStyle = function(context, ele, fill, opacity) { - var gradientStyle = this.createGradientStyleFor(context, "line", ele, fill, opacity); - if (!gradientStyle) - return null; - context.strokeStyle = gradientStyle; - }; - CRp$4.colorStrokeStyle = function(context, r, g, b, a) { - context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")"; - }; - CRp$4.eleStrokeStyle = function(context, ele, opacity) { - var lineFill = ele.pstyle("line-fill").value; - if (lineFill === "linear-gradient" || lineFill === "radial-gradient") { - this.gradientStrokeStyle(context, ele, lineFill, opacity); - } else { - var lineColor = ele.pstyle("line-color").value; - this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity); - } - }; - CRp$4.matchCanvasSize = function(container) { - var r = this; - var data2 = r.data; - var bb = r.findContainerClientCoords(); - var width = bb[2]; - var height = bb[3]; - var pixelRatio = r.getPixelRatio(); - var mbPxRatio = r.motionBlurPxRatio; - if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) { - pixelRatio = mbPxRatio; - } - var canvasWidth = width * pixelRatio; - var canvasHeight = height * pixelRatio; - var canvas; - if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) { - return; - } - r.fontCaches = null; - var canvasContainer = data2.canvasContainer; - canvasContainer.style.width = width + "px"; - canvasContainer.style.height = height + "px"; - for (var i2 = 0; i2 < r.CANVAS_LAYERS; i2++) { - canvas = data2.canvases[i2]; - canvas.width = canvasWidth; - canvas.height = canvasHeight; - canvas.style.width = width + "px"; - canvas.style.height = height + "px"; - } - for (var i2 = 0; i2 < r.BUFFER_COUNT; i2++) { - canvas = data2.bufferCanvases[i2]; - canvas.width = canvasWidth; - canvas.height = canvasHeight; - canvas.style.width = width + "px"; - canvas.style.height = height + "px"; - } - r.textureMult = 1; - if (pixelRatio <= 1) { - canvas = data2.bufferCanvases[r.TEXTURE_BUFFER]; - r.textureMult = 2; - canvas.width = canvasWidth * r.textureMult; - canvas.height = canvasHeight * r.textureMult; - } - r.canvasWidth = canvasWidth; - r.canvasHeight = canvasHeight; - }; - CRp$4.renderTo = function(cxt, zoom, pan, pxRatio) { - this.render({ - forcedContext: cxt, - forcedZoom: zoom, - forcedPan: pan, - drawAllLayers: true, - forcedPxRatio: pxRatio - }); - }; - CRp$4.render = function(options) { - options = options || staticEmptyObject(); - var forcedContext = options.forcedContext; - var drawAllLayers = options.drawAllLayers; - var drawOnlyNodeLayer = options.drawOnlyNodeLayer; - var forcedZoom = options.forcedZoom; - var forcedPan = options.forcedPan; - var r = this; - var pixelRatio = options.forcedPxRatio === void 0 ? this.getPixelRatio() : options.forcedPxRatio; - var cy = r.cy; - var data2 = r.data; - var needDraw = data2.canvasNeedsRedraw; - var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming); - var motionBlur = options.motionBlur !== void 0 ? options.motionBlur : r.motionBlur; - var mbPxRatio = r.motionBlurPxRatio; - var hasCompoundNodes = cy.hasCompoundNodes(); - var inNodeDragGesture = r.hoverData.draggingEles; - var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false; - motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection; - var motionBlurFadeEffect = motionBlur; - if (!forcedContext) { - if (r.prevPxRatio !== pixelRatio) { - r.invalidateContainerClientCoordsCache(); - r.matchCanvasSize(r.container); - r.redrawHint("eles", true); - r.redrawHint("drag", true); - } - r.prevPxRatio = pixelRatio; - } - if (!forcedContext && r.motionBlurTimeout) { - clearTimeout(r.motionBlurTimeout); - } - if (motionBlur) { - if (r.mbFrames == null) { - r.mbFrames = 0; - } - r.mbFrames++; - if (r.mbFrames < 3) { - motionBlurFadeEffect = false; - } - if (r.mbFrames > r.minMbLowQualFrames) { - r.motionBlurPxRatio = r.mbPxRBlurry; - } - } - if (r.clearingMotionBlur) { - r.motionBlurPxRatio = 1; - } - if (r.textureDrawLastFrame && !textureDraw) { - needDraw[r.NODE] = true; - needDraw[r.SELECT_BOX] = true; - } - var style = cy.style(); - var zoom = cy.zoom(); - var effectiveZoom = forcedZoom !== void 0 ? forcedZoom : zoom; - var pan = cy.pan(); - var effectivePan = { - x: pan.x, - y: pan.y - }; - var vp = { - zoom, - pan: { - x: pan.x, - y: pan.y - } - }; - var prevVp = r.prevViewport; - var viewportIsDiff = prevVp === void 0 || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y; - if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) { - r.motionBlurPxRatio = 1; - } - if (forcedPan) { - effectivePan = forcedPan; - } - effectiveZoom *= pixelRatio; - effectivePan.x *= pixelRatio; - effectivePan.y *= pixelRatio; - var eles = r.getCachedZSortedEles(); - function mbclear(context2, x, y, w, h) { - var gco = context2.globalCompositeOperation; - context2.globalCompositeOperation = "destination-out"; - r.colorFillStyle(context2, 255, 255, 255, r.motionBlurTransparency); - context2.fillRect(x, y, w, h); - context2.globalCompositeOperation = gco; - } - function setContextTransform(context2, clear3) { - var ePan, eZoom, w, h; - if (!r.clearingMotionBlur && (context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) { - ePan = { - x: pan.x * mbPxRatio, - y: pan.y * mbPxRatio - }; - eZoom = zoom * mbPxRatio; - w = r.canvasWidth * mbPxRatio; - h = r.canvasHeight * mbPxRatio; - } else { - ePan = effectivePan; - eZoom = effectiveZoom; - w = r.canvasWidth; - h = r.canvasHeight; - } - context2.setTransform(1, 0, 0, 1, 0, 0); - if (clear3 === "motionBlur") { - mbclear(context2, 0, 0, w, h); - } else if (!forcedContext && (clear3 === void 0 || clear3)) { - context2.clearRect(0, 0, w, h); - } - if (!drawAllLayers) { - context2.translate(ePan.x, ePan.y); - context2.scale(eZoom, eZoom); - } - if (forcedPan) { - context2.translate(forcedPan.x, forcedPan.y); - } - if (forcedZoom) { - context2.scale(forcedZoom, forcedZoom); - } - } - if (!textureDraw) { - r.textureDrawLastFrame = false; - } - if (textureDraw) { - r.textureDrawLastFrame = true; - if (!r.textureCache) { - r.textureCache = {}; - r.textureCache.bb = cy.mutableElements().boundingBox(); - r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER]; - var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER]; - cxt.setTransform(1, 0, 0, 1, 0, 0); - cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult); - r.render({ - forcedContext: cxt, - drawOnlyNodeLayer: true, - forcedPxRatio: pixelRatio * r.textureMult - }); - var vp = r.textureCache.viewport = { - zoom: cy.zoom(), - pan: cy.pan(), - width: r.canvasWidth, - height: r.canvasHeight - }; - vp.mpan = { - x: (0 - vp.pan.x) / vp.zoom, - y: (0 - vp.pan.y) / vp.zoom - }; - } - needDraw[r.DRAG] = false; - needDraw[r.NODE] = false; - var context = data2.contexts[r.NODE]; - var texture = r.textureCache.texture; - var vp = r.textureCache.viewport; - context.setTransform(1, 0, 0, 1, 0, 0); - if (motionBlur) { - mbclear(context, 0, 0, vp.width, vp.height); - } else { - context.clearRect(0, 0, vp.width, vp.height); - } - var outsideBgColor = style.core("outside-texture-bg-color").value; - var outsideBgOpacity = style.core("outside-texture-bg-opacity").value; - r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity); - context.fillRect(0, 0, vp.width, vp.height); - var zoom = cy.zoom(); - setContextTransform(context, false); - context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); - context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); - } else if (r.textureOnViewport && !forcedContext) { - r.textureCache = null; - } - var extent = cy.extent(); - var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated(); - var hideEdges = r.hideEdgesOnViewport && vpManip; - var needMbClear = []; - needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur; - if (needMbClear[r.NODE]) { - r.clearedForMotionBlur[r.NODE] = true; - } - needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur; - if (needMbClear[r.DRAG]) { - r.clearedForMotionBlur[r.DRAG] = true; - } - if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) { - var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1; - var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data2.contexts[r.NODE]); - var clear2 = motionBlur && !useBuffer ? "motionBlur" : void 0; - setContextTransform(context, clear2); - if (hideEdges) { - r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent); - } else { - r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent); - } - if (r.debug) { - r.drawDebugPoints(context, eles.nondrag); - } - if (!drawAllLayers && !motionBlur) { - needDraw[r.NODE] = false; - } - } - if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) { - var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1; - var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data2.contexts[r.DRAG]); - setContextTransform(context, motionBlur && !useBuffer ? "motionBlur" : void 0); - if (hideEdges) { - r.drawCachedNodes(context, eles.drag, pixelRatio, extent); - } else { - r.drawCachedElements(context, eles.drag, pixelRatio, extent); - } - if (r.debug) { - r.drawDebugPoints(context, eles.drag); - } - if (!drawAllLayers && !motionBlur) { - needDraw[r.DRAG] = false; - } - } - if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) { - var context = forcedContext || data2.contexts[r.SELECT_BOX]; - setContextTransform(context); - if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) { - var zoom = r.cy.zoom(); - var borderWidth = style.core("selection-box-border-width").value / zoom; - context.lineWidth = borderWidth; - context.fillStyle = "rgba(" + style.core("selection-box-color").value[0] + "," + style.core("selection-box-color").value[1] + "," + style.core("selection-box-color").value[2] + "," + style.core("selection-box-opacity").value + ")"; - context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); - if (borderWidth > 0) { - context.strokeStyle = "rgba(" + style.core("selection-box-border-color").value[0] + "," + style.core("selection-box-border-color").value[1] + "," + style.core("selection-box-border-color").value[2] + "," + style.core("selection-box-opacity").value + ")"; - context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); - } - } - if (data2.bgActivePosistion && !r.hoverData.selecting) { - var zoom = r.cy.zoom(); - var pos = data2.bgActivePosistion; - context.fillStyle = "rgba(" + style.core("active-bg-color").value[0] + "," + style.core("active-bg-color").value[1] + "," + style.core("active-bg-color").value[2] + "," + style.core("active-bg-opacity").value + ")"; - context.beginPath(); - context.arc(pos.x, pos.y, style.core("active-bg-size").pfValue / zoom, 0, 2 * Math.PI); - context.fill(); - } - var timeToRender = r.lastRedrawTime; - if (r.showFps && timeToRender) { - timeToRender = Math.round(timeToRender); - var fps = Math.round(1e3 / timeToRender); - context.setTransform(1, 0, 0, 1, 0, 0); - context.fillStyle = "rgba(255, 0, 0, 0.75)"; - context.strokeStyle = "rgba(255, 0, 0, 0.75)"; - context.lineWidth = 1; - context.fillText("1 frame = " + timeToRender + " ms = " + fps + " fps", 0, 20); - var maxFps = 60; - context.strokeRect(0, 30, 250, 20); - context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20); - } - if (!drawAllLayers) { - needDraw[r.SELECT_BOX] = false; - } - } - if (motionBlur && mbPxRatio !== 1) { - var cxtNode = data2.contexts[r.NODE]; - var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE]; - var cxtDrag = data2.contexts[r.DRAG]; - var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]; - var drawMotionBlur = function drawMotionBlur2(cxt2, txt, needClear) { - cxt2.setTransform(1, 0, 0, 1, 0, 0); - if (needClear || !motionBlurFadeEffect) { - cxt2.clearRect(0, 0, r.canvasWidth, r.canvasHeight); - } else { - mbclear(cxt2, 0, 0, r.canvasWidth, r.canvasHeight); - } - var pxr = mbPxRatio; - cxt2.drawImage( - txt, - // img - 0, - 0, - // sx, sy - r.canvasWidth * pxr, - r.canvasHeight * pxr, - // sw, sh - 0, - 0, - // x, y - r.canvasWidth, - r.canvasHeight - // w, h - ); - }; - if (needDraw[r.NODE] || needMbClear[r.NODE]) { - drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]); - needDraw[r.NODE] = false; - } - if (needDraw[r.DRAG] || needMbClear[r.DRAG]) { - drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]); - needDraw[r.DRAG] = false; - } - } - r.prevViewport = vp; - if (r.clearingMotionBlur) { - r.clearingMotionBlur = false; - r.motionBlurCleared = true; - r.motionBlur = true; - } - if (motionBlur) { - r.motionBlurTimeout = setTimeout(function() { - r.motionBlurTimeout = null; - r.clearedForMotionBlur[r.NODE] = false; - r.clearedForMotionBlur[r.DRAG] = false; - r.motionBlur = false; - r.clearingMotionBlur = !textureDraw; - r.mbFrames = 0; - needDraw[r.NODE] = true; - needDraw[r.DRAG] = true; - r.redraw(); - }, motionBlurDelay); - } - if (!forcedContext) { - cy.emit("render"); - } - }; - var CRp$3 = {}; - CRp$3.drawPolygonPath = function(context, x, y, width, height, points) { - var halfW = width / 2; - var halfH = height / 2; - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(x + halfW * points[0], y + halfH * points[1]); - for (var i2 = 1; i2 < points.length / 2; i2++) { - context.lineTo(x + halfW * points[i2 * 2], y + halfH * points[i2 * 2 + 1]); - } - context.closePath(); - }; - CRp$3.drawRoundPolygonPath = function(context, x, y, width, height, points) { - var halfW = width / 2; - var halfH = height / 2; - var cornerRadius = getRoundPolygonRadius(width, height); - if (context.beginPath) { - context.beginPath(); - } - for (var _i = 0; _i < points.length / 4; _i++) { - var sourceUv = void 0, destUv = void 0; - if (_i === 0) { - sourceUv = points.length - 2; - } else { - sourceUv = _i * 4 - 2; - } - destUv = _i * 4 + 2; - var px = x + halfW * points[_i * 4]; - var py = y + halfH * points[_i * 4 + 1]; - var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1]; - var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); - var cp0x = px - offset * points[sourceUv]; - var cp0y = py - offset * points[sourceUv + 1]; - var cp1x = px + offset * points[destUv]; - var cp1y = py + offset * points[destUv + 1]; - if (_i === 0) { - context.moveTo(cp0x, cp0y); - } else { - context.lineTo(cp0x, cp0y); - } - context.arcTo(px, py, cp1x, cp1y, cornerRadius); - } - context.closePath(); - }; - CRp$3.drawRoundRectanglePath = function(context, x, y, width, height) { - var halfWidth = width / 2; - var halfHeight = height / 2; - var cornerRadius = getRoundRectangleRadius(width, height); - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(x, y - halfHeight); - context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius); - context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); - context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); - context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius); - context.lineTo(x, y - halfHeight); - context.closePath(); - }; - CRp$3.drawBottomRoundRectanglePath = function(context, x, y, width, height) { - var halfWidth = width / 2; - var halfHeight = height / 2; - var cornerRadius = getRoundRectangleRadius(width, height); - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(x, y - halfHeight); - context.lineTo(x + halfWidth, y - halfHeight); - context.lineTo(x + halfWidth, y); - context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); - context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); - context.lineTo(x - halfWidth, y - halfHeight); - context.lineTo(x, y - halfHeight); - context.closePath(); - }; - CRp$3.drawCutRectanglePath = function(context, x, y, width, height) { - var halfWidth = width / 2; - var halfHeight = height / 2; - var cornerLength = getCutRectangleCornerLength(); - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(x - halfWidth + cornerLength, y - halfHeight); - context.lineTo(x + halfWidth - cornerLength, y - halfHeight); - context.lineTo(x + halfWidth, y - halfHeight + cornerLength); - context.lineTo(x + halfWidth, y + halfHeight - cornerLength); - context.lineTo(x + halfWidth - cornerLength, y + halfHeight); - context.lineTo(x - halfWidth + cornerLength, y + halfHeight); - context.lineTo(x - halfWidth, y + halfHeight - cornerLength); - context.lineTo(x - halfWidth, y - halfHeight + cornerLength); - context.closePath(); - }; - CRp$3.drawBarrelPath = function(context, x, y, width, height) { - var halfWidth = width / 2; - var halfHeight = height / 2; - var xBegin = x - halfWidth; - var xEnd = x + halfWidth; - var yBegin = y - halfHeight; - var yEnd = y + halfHeight; - var barrelCurveConstants = getBarrelCurveConstants(width, height); - var wOffset = barrelCurveConstants.widthOffset; - var hOffset = barrelCurveConstants.heightOffset; - var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset; - if (context.beginPath) { - context.beginPath(); - } - context.moveTo(xBegin, yBegin + hOffset); - context.lineTo(xBegin, yEnd - hOffset); - context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd); - context.lineTo(xEnd - wOffset, yEnd); - context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset); - context.lineTo(xEnd, yBegin + hOffset); - context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin); - context.lineTo(xBegin + wOffset, yBegin); - context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset); - context.closePath(); - }; - var sin0 = Math.sin(0); - var cos0 = Math.cos(0); - var sin = {}; - var cos = {}; - var ellipseStepSize = Math.PI / 40; - for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { - sin[i] = Math.sin(i); - cos[i] = Math.cos(i); - } - CRp$3.drawEllipsePath = function(context, centerX, centerY, width, height) { - if (context.beginPath) { - context.beginPath(); - } - if (context.ellipse) { - context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI); - } else { - var xPos, yPos; - var rw = width / 2; - var rh = height / 2; - for (var i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) { - xPos = centerX - rw * sin[i2] * sin0 + rw * cos[i2] * cos0; - yPos = centerY + rh * cos[i2] * sin0 + rh * sin[i2] * cos0; - if (i2 === 0) { - context.moveTo(xPos, yPos); - } else { - context.lineTo(xPos, yPos); - } - } - } - context.closePath(); - }; - var CRp$2 = {}; - CRp$2.createBuffer = function(w, h) { - var buffer = document.createElement("canvas"); - buffer.width = w; - buffer.height = h; - return [buffer, buffer.getContext("2d")]; - }; - CRp$2.bufferCanvasImage = function(options) { - var cy = this.cy; - var eles = cy.mutableElements(); - var bb = eles.boundingBox(); - var ctrRect = this.findContainerClientCoords(); - var width = options.full ? Math.ceil(bb.w) : ctrRect[2]; - var height = options.full ? Math.ceil(bb.h) : ctrRect[3]; - var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight); - var pxRatio = this.getPixelRatio(); - var scale = 1; - if (options.scale !== void 0) { - width *= options.scale; - height *= options.scale; - scale = options.scale; - } else if (specdMaxDims) { - var maxScaleW = Infinity; - var maxScaleH = Infinity; - if (number$1(options.maxWidth)) { - maxScaleW = scale * options.maxWidth / width; - } - if (number$1(options.maxHeight)) { - maxScaleH = scale * options.maxHeight / height; - } - scale = Math.min(maxScaleW, maxScaleH); - width *= scale; - height *= scale; - } - if (!specdMaxDims) { - width *= pxRatio; - height *= pxRatio; - scale *= pxRatio; - } - var buffCanvas = document.createElement("canvas"); - buffCanvas.width = width; - buffCanvas.height = height; - buffCanvas.style.width = width + "px"; - buffCanvas.style.height = height + "px"; - var buffCxt = buffCanvas.getContext("2d"); - if (width > 0 && height > 0) { - buffCxt.clearRect(0, 0, width, height); - buffCxt.globalCompositeOperation = "source-over"; - var zsortedEles = this.getCachedZSortedEles(); - if (options.full) { - buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale); - buffCxt.scale(scale, scale); - this.drawElements(buffCxt, zsortedEles); - buffCxt.scale(1 / scale, 1 / scale); - buffCxt.translate(bb.x1 * scale, bb.y1 * scale); - } else { - var pan = cy.pan(); - var translation = { - x: pan.x * scale, - y: pan.y * scale - }; - scale *= cy.zoom(); - buffCxt.translate(translation.x, translation.y); - buffCxt.scale(scale, scale); - this.drawElements(buffCxt, zsortedEles); - buffCxt.scale(1 / scale, 1 / scale); - buffCxt.translate(-translation.x, -translation.y); - } - if (options.bg) { - buffCxt.globalCompositeOperation = "destination-over"; - buffCxt.fillStyle = options.bg; - buffCxt.rect(0, 0, width, height); - buffCxt.fill(); - } - } - return buffCanvas; - }; - function b64ToBlob(b64, mimeType) { - var bytes = atob(b64); - var buff = new ArrayBuffer(bytes.length); - var buffUint8 = new Uint8Array(buff); - for (var i2 = 0; i2 < bytes.length; i2++) { - buffUint8[i2] = bytes.charCodeAt(i2); - } - return new Blob([buff], { - type: mimeType - }); - } - function b64UriToB64(b64uri) { - var i2 = b64uri.indexOf(","); - return b64uri.substr(i2 + 1); - } - function output(options, canvas, mimeType) { - var getB64Uri = function getB64Uri2() { - return canvas.toDataURL(mimeType, options.quality); - }; - switch (options.output) { - case "blob-promise": - return new Promise$1(function(resolve2, reject) { - try { - canvas.toBlob(function(blob) { - if (blob != null) { - resolve2(blob); - } else { - reject(new Error("`canvas.toBlob()` sent a null value in its callback")); - } - }, mimeType, options.quality); - } catch (err) { - reject(err); - } - }); - case "blob": - return b64ToBlob(b64UriToB64(getB64Uri()), mimeType); - case "base64": - return b64UriToB64(getB64Uri()); - case "base64uri": - default: - return getB64Uri(); - } - } - CRp$2.png = function(options) { - return output(options, this.bufferCanvasImage(options), "image/png"); - }; - CRp$2.jpg = function(options) { - return output(options, this.bufferCanvasImage(options), "image/jpeg"); - }; - var CRp$1 = {}; - CRp$1.nodeShapeImpl = function(name2, context, centerX, centerY, width, height, points) { - switch (name2) { - case "ellipse": - return this.drawEllipsePath(context, centerX, centerY, width, height); - case "polygon": - return this.drawPolygonPath(context, centerX, centerY, width, height, points); - case "round-polygon": - return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points); - case "roundrectangle": - case "round-rectangle": - return this.drawRoundRectanglePath(context, centerX, centerY, width, height); - case "cutrectangle": - case "cut-rectangle": - return this.drawCutRectanglePath(context, centerX, centerY, width, height); - case "bottomroundrectangle": - case "bottom-round-rectangle": - return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height); - case "barrel": - return this.drawBarrelPath(context, centerX, centerY, width, height); - } - }; - var CR = CanvasRenderer; - var CRp = CanvasRenderer.prototype; - CRp.CANVAS_LAYERS = 3; - CRp.SELECT_BOX = 0; - CRp.DRAG = 1; - CRp.NODE = 2; - CRp.BUFFER_COUNT = 3; - CRp.TEXTURE_BUFFER = 0; - CRp.MOTIONBLUR_BUFFER_NODE = 1; - CRp.MOTIONBLUR_BUFFER_DRAG = 2; - function CanvasRenderer(options) { - var r = this; - r.data = { - canvases: new Array(CRp.CANVAS_LAYERS), - contexts: new Array(CRp.CANVAS_LAYERS), - canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS), - bufferCanvases: new Array(CRp.BUFFER_COUNT), - bufferContexts: new Array(CRp.CANVAS_LAYERS) - }; - var tapHlOffAttr = "-webkit-tap-highlight-color"; - var tapHlOffStyle = "rgba(0,0,0,0)"; - r.data.canvasContainer = document.createElement("div"); - var containerStyle = r.data.canvasContainer.style; - r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle; - containerStyle.position = "relative"; - containerStyle.zIndex = "0"; - containerStyle.overflow = "hidden"; - var container = options.cy.container(); - container.appendChild(r.data.canvasContainer); - container.style[tapHlOffAttr] = tapHlOffStyle; - var styleMap = { - "-webkit-user-select": "none", - "-moz-user-select": "-moz-none", - "user-select": "none", - "-webkit-tap-highlight-color": "rgba(0,0,0,0)", - "outline-style": "none" - }; - if (ms()) { - styleMap["-ms-touch-action"] = "none"; - styleMap["touch-action"] = "none"; - } - for (var i2 = 0; i2 < CRp.CANVAS_LAYERS; i2++) { - var canvas = r.data.canvases[i2] = document.createElement("canvas"); - r.data.contexts[i2] = canvas.getContext("2d"); - Object.keys(styleMap).forEach(function(k) { - canvas.style[k] = styleMap[k]; - }); - canvas.style.position = "absolute"; - canvas.setAttribute("data-id", "layer" + i2); - canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i2); - r.data.canvasContainer.appendChild(canvas); - r.data.canvasNeedsRedraw[i2] = false; - } - r.data.topCanvas = r.data.canvases[0]; - r.data.canvases[CRp.NODE].setAttribute("data-id", "layer" + CRp.NODE + "-node"); - r.data.canvases[CRp.SELECT_BOX].setAttribute("data-id", "layer" + CRp.SELECT_BOX + "-selectbox"); - r.data.canvases[CRp.DRAG].setAttribute("data-id", "layer" + CRp.DRAG + "-drag"); - for (var i2 = 0; i2 < CRp.BUFFER_COUNT; i2++) { - r.data.bufferCanvases[i2] = document.createElement("canvas"); - r.data.bufferContexts[i2] = r.data.bufferCanvases[i2].getContext("2d"); - r.data.bufferCanvases[i2].style.position = "absolute"; - r.data.bufferCanvases[i2].setAttribute("data-id", "buffer" + i2); - r.data.bufferCanvases[i2].style.zIndex = String(-i2 - 1); - r.data.bufferCanvases[i2].style.visibility = "hidden"; - } - r.pathsEnabled = true; - var emptyBb = makeBoundingBox(); - var getBoxCenter = function getBoxCenter2(bb) { - return { - x: (bb.x1 + bb.x2) / 2, - y: (bb.y1 + bb.y2) / 2 - }; - }; - var getCenterOffset = function getCenterOffset2(bb) { - return { - x: -bb.w / 2, - y: -bb.h / 2 - }; - }; - var backgroundTimestampHasChanged = function backgroundTimestampHasChanged2(ele) { - var _p = ele[0]._private; - var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp; - return !same; - }; - var getStyleKey = function getStyleKey2(ele) { - return ele[0]._private.nodeKey; - }; - var getLabelKey = function getLabelKey2(ele) { - return ele[0]._private.labelStyleKey; - }; - var getSourceLabelKey = function getSourceLabelKey2(ele) { - return ele[0]._private.sourceLabelStyleKey; - }; - var getTargetLabelKey = function getTargetLabelKey2(ele) { - return ele[0]._private.targetLabelStyleKey; - }; - var drawElement = function drawElement2(context, ele, bb, scaledLabelShown, useEleOpacity) { - return r.drawElement(context, ele, bb, false, false, useEleOpacity); - }; - var drawLabel = function drawLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) { - return r.drawElementText(context, ele, bb, scaledLabelShown, "main", useEleOpacity); - }; - var drawSourceLabel = function drawSourceLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) { - return r.drawElementText(context, ele, bb, scaledLabelShown, "source", useEleOpacity); - }; - var drawTargetLabel = function drawTargetLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) { - return r.drawElementText(context, ele, bb, scaledLabelShown, "target", useEleOpacity); - }; - var getElementBox = function getElementBox2(ele) { - ele.boundingBox(); - return ele[0]._private.bodyBounds; - }; - var getLabelBox = function getLabelBox2(ele) { - ele.boundingBox(); - return ele[0]._private.labelBounds.main || emptyBb; - }; - var getSourceLabelBox = function getSourceLabelBox2(ele) { - ele.boundingBox(); - return ele[0]._private.labelBounds.source || emptyBb; - }; - var getTargetLabelBox = function getTargetLabelBox2(ele) { - ele.boundingBox(); - return ele[0]._private.labelBounds.target || emptyBb; - }; - var isLabelVisibleAtScale = function isLabelVisibleAtScale2(ele, scaledLabelShown) { - return scaledLabelShown; - }; - var getElementRotationPoint = function getElementRotationPoint2(ele) { - return getBoxCenter(getElementBox(ele)); - }; - var addTextMargin = function addTextMargin2(prefix, pt, ele) { - var pre = prefix ? prefix + "-" : ""; - return { - x: pt.x + ele.pstyle(pre + "text-margin-x").pfValue, - y: pt.y + ele.pstyle(pre + "text-margin-y").pfValue - }; - }; - var getRsPt = function getRsPt2(ele, x, y) { - var rs = ele[0]._private.rscratch; - return { - x: rs[x], - y: rs[y] - }; - }; - var getLabelRotationPoint = function getLabelRotationPoint2(ele) { - return addTextMargin("", getRsPt(ele, "labelX", "labelY"), ele); - }; - var getSourceLabelRotationPoint = function getSourceLabelRotationPoint2(ele) { - return addTextMargin("source", getRsPt(ele, "sourceLabelX", "sourceLabelY"), ele); - }; - var getTargetLabelRotationPoint = function getTargetLabelRotationPoint2(ele) { - return addTextMargin("target", getRsPt(ele, "targetLabelX", "targetLabelY"), ele); - }; - var getElementRotationOffset = function getElementRotationOffset2(ele) { - return getCenterOffset(getElementBox(ele)); - }; - var getSourceLabelRotationOffset = function getSourceLabelRotationOffset2(ele) { - return getCenterOffset(getSourceLabelBox(ele)); - }; - var getTargetLabelRotationOffset = function getTargetLabelRotationOffset2(ele) { - return getCenterOffset(getTargetLabelBox(ele)); - }; - var getLabelRotationOffset = function getLabelRotationOffset2(ele) { - var bb = getLabelBox(ele); - var p2 = getCenterOffset(getLabelBox(ele)); - if (ele.isNode()) { - switch (ele.pstyle("text-halign").value) { - case "left": - p2.x = -bb.w; - break; - case "right": - p2.x = 0; - break; - } - switch (ele.pstyle("text-valign").value) { - case "top": - p2.y = -bb.h; - break; - case "bottom": - p2.y = 0; - break; - } - } - return p2; - }; - var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, { - getKey: getStyleKey, - doesEleInvalidateKey: backgroundTimestampHasChanged, - drawElement, - getBoundingBox: getElementBox, - getRotationPoint: getElementRotationPoint, - getRotationOffset: getElementRotationOffset, - allowEdgeTxrCaching: false, - allowParentTxrCaching: false - }); - var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, { - getKey: getLabelKey, - drawElement: drawLabel, - getBoundingBox: getLabelBox, - getRotationPoint: getLabelRotationPoint, - getRotationOffset: getLabelRotationOffset, - isVisible: isLabelVisibleAtScale - }); - var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, { - getKey: getSourceLabelKey, - drawElement: drawSourceLabel, - getBoundingBox: getSourceLabelBox, - getRotationPoint: getSourceLabelRotationPoint, - getRotationOffset: getSourceLabelRotationOffset, - isVisible: isLabelVisibleAtScale - }); - var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, { - getKey: getTargetLabelKey, - drawElement: drawTargetLabel, - getBoundingBox: getTargetLabelBox, - getRotationPoint: getTargetLabelRotationPoint, - getRotationOffset: getTargetLabelRotationOffset, - isVisible: isLabelVisibleAtScale - }); - var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r); - r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) { - eleTxrCache.invalidateElements(eles); - lblTxrCache.invalidateElements(eles); - slbTxrCache.invalidateElements(eles); - tlbTxrCache.invalidateElements(eles); - lyrTxrCache.invalidateElements(eles); - for (var _i = 0; _i < eles.length; _i++) { - var _p = eles[_i]._private; - _p.oldBackgroundTimestamp = _p.backgroundTimestamp; - } - }); - var refineInLayers = function refineInLayers2(reqs) { - for (var i3 = 0; i3 < reqs.length; i3++) { - lyrTxrCache.enqueueElementRefinement(reqs[i3].ele); - } - }; - eleTxrCache.onDequeue(refineInLayers); - lblTxrCache.onDequeue(refineInLayers); - slbTxrCache.onDequeue(refineInLayers); - tlbTxrCache.onDequeue(refineInLayers); - } - CRp.redrawHint = function(group, bool) { - var r = this; - switch (group) { - case "eles": - r.data.canvasNeedsRedraw[CRp.NODE] = bool; - break; - case "drag": - r.data.canvasNeedsRedraw[CRp.DRAG] = bool; - break; - case "select": - r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool; - break; - } - }; - var pathsImpld = typeof Path2D !== "undefined"; - CRp.path2dEnabled = function(on) { - if (on === void 0) { - return this.pathsEnabled; - } - this.pathsEnabled = on ? true : false; - }; - CRp.usePaths = function() { - return pathsImpld && this.pathsEnabled; - }; - CRp.setImgSmoothing = function(context, bool) { - if (context.imageSmoothingEnabled != null) { - context.imageSmoothingEnabled = bool; - } else { - context.webkitImageSmoothingEnabled = bool; - context.mozImageSmoothingEnabled = bool; - context.msImageSmoothingEnabled = bool; - } - }; - CRp.getImgSmoothing = function(context) { - if (context.imageSmoothingEnabled != null) { - return context.imageSmoothingEnabled; - } else { - return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled; - } - }; - CRp.makeOffscreenCanvas = function(width, height) { - var canvas; - if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== "undefined") { - canvas = new OffscreenCanvas(width, height); - } else { - canvas = document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - } - return canvas; - }; - [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function(props) { - extend(CRp, props); - }); - var renderer = [{ - name: "null", - impl: NullRenderer - }, { - name: "base", - impl: BR - }, { - name: "canvas", - impl: CR - }]; - var incExts = [{ - type: "layout", - extensions: layout - }, { - type: "renderer", - extensions: renderer - }]; - var extensions = {}; - var modules = {}; - function setExtension(type, name2, registrant) { - var ext = registrant; - var overrideErr = function overrideErr2(field) { - warn("Can not register `" + name2 + "` for `" + type + "` since `" + field + "` already exists in the prototype and can not be overridden"); - }; - if (type === "core") { - if (Core.prototype[name2]) { - return overrideErr(name2); - } else { - Core.prototype[name2] = registrant; - } - } else if (type === "collection") { - if (Collection.prototype[name2]) { - return overrideErr(name2); - } else { - Collection.prototype[name2] = registrant; - } - } else if (type === "layout") { - var Layout2 = function Layout3(options) { - this.options = options; - registrant.call(this, options); - if (!plainObject(this._private)) { - this._private = {}; - } - this._private.cy = options.cy; - this._private.listeners = []; - this.createEmitter(); - }; - var layoutProto = Layout2.prototype = Object.create(registrant.prototype); - var optLayoutFns = []; - for (var i2 = 0; i2 < optLayoutFns.length; i2++) { - var fnName = optLayoutFns[i2]; - layoutProto[fnName] = layoutProto[fnName] || function() { - return this; - }; - } - if (layoutProto.start && !layoutProto.run) { - layoutProto.run = function() { - this.start(); - return this; - }; - } else if (!layoutProto.start && layoutProto.run) { - layoutProto.start = function() { - this.run(); - return this; - }; - } - var regStop = registrant.prototype.stop; - layoutProto.stop = function() { - var opts = this.options; - if (opts && opts.animate) { - var anis = this.animations; - if (anis) { - for (var _i = 0; _i < anis.length; _i++) { - anis[_i].stop(); - } - } - } - if (regStop) { - regStop.call(this); - } else { - this.emit("layoutstop"); - } - return this; - }; - if (!layoutProto.destroy) { - layoutProto.destroy = function() { - return this; - }; - } - layoutProto.cy = function() { - return this._private.cy; - }; - var getCy = function getCy2(layout2) { - return layout2._private.cy; - }; - var emitterOpts = { - addEventFields: function addEventFields(layout2, evt) { - evt.layout = layout2; - evt.cy = getCy(layout2); - evt.target = layout2; - }, - bubble: function bubble() { - return true; - }, - parent: function parent(layout2) { - return getCy(layout2); - } - }; - extend(layoutProto, { - createEmitter: function createEmitter() { - this._private.emitter = new Emitter(emitterOpts, this); - return this; - }, - emitter: function emitter() { - return this._private.emitter; - }, - on: function on(evt, cb) { - this.emitter().on(evt, cb); - return this; - }, - one: function one(evt, cb) { - this.emitter().one(evt, cb); - return this; - }, - once: function once(evt, cb) { - this.emitter().one(evt, cb); - return this; - }, - removeListener: function removeListener(evt, cb) { - this.emitter().removeListener(evt, cb); - return this; - }, - removeAllListeners: function removeAllListeners() { - this.emitter().removeAllListeners(); - return this; - }, - emit: function emit(evt, params) { - this.emitter().emit(evt, params); - return this; - } - }); - define2.eventAliasesOn(layoutProto); - ext = Layout2; - } else if (type === "renderer" && name2 !== "null" && name2 !== "base") { - var BaseRenderer2 = getExtension("renderer", "base"); - var bProto = BaseRenderer2.prototype; - var RegistrantRenderer = registrant; - var rProto = registrant.prototype; - var Renderer = function Renderer2() { - BaseRenderer2.apply(this, arguments); - RegistrantRenderer.apply(this, arguments); - }; - var proto = Renderer.prototype; - for (var pName in bProto) { - var pVal = bProto[pName]; - var existsInR = rProto[pName] != null; - if (existsInR) { - return overrideErr(pName); - } - proto[pName] = pVal; - } - for (var _pName in rProto) { - proto[_pName] = rProto[_pName]; - } - bProto.clientFunctions.forEach(function(name3) { - proto[name3] = proto[name3] || function() { - error("Renderer does not implement `renderer." + name3 + "()` on its prototype"); - }; - }); - ext = Renderer; - } else if (type === "__proto__" || type === "constructor" || type === "prototype") { - return error(type + " is an illegal type to be registered, possibly lead to prototype pollutions"); - } - return setMap({ - map: extensions, - keys: [type, name2], - value: ext - }); - } - function getExtension(type, name2) { - return getMap({ - map: extensions, - keys: [type, name2] - }); - } - function setModule(type, name2, moduleType, moduleName, registrant) { - return setMap({ - map: modules, - keys: [type, name2, moduleType, moduleName], - value: registrant - }); - } - function getModule(type, name2, moduleType, moduleName) { - return getMap({ - map: modules, - keys: [type, name2, moduleType, moduleName] - }); - } - var extension = function extension2() { - if (arguments.length === 2) { - return getExtension.apply(null, arguments); - } else if (arguments.length === 3) { - return setExtension.apply(null, arguments); - } else if (arguments.length === 4) { - return getModule.apply(null, arguments); - } else if (arguments.length === 5) { - return setModule.apply(null, arguments); - } else { - error("Invalid extension access syntax"); - } - }; - Core.prototype.extension = extension; - incExts.forEach(function(group) { - group.extensions.forEach(function(ext) { - setExtension(group.type, ext.name, ext.impl); - }); - }); - var Stylesheet = function Stylesheet2() { - if (!(this instanceof Stylesheet2)) { - return new Stylesheet2(); - } - this.length = 0; - }; - var sheetfn = Stylesheet.prototype; - sheetfn.instanceString = function() { - return "stylesheet"; - }; - sheetfn.selector = function(selector) { - var i2 = this.length++; - this[i2] = { - selector, - properties: [] - }; - return this; - }; - sheetfn.css = function(name2, value) { - var i2 = this.length - 1; - if (string(name2)) { - this[i2].properties.push({ - name: name2, - value - }); - } else if (plainObject(name2)) { - var map = name2; - var propNames = Object.keys(map); - for (var j = 0; j < propNames.length; j++) { - var key = propNames[j]; - var mapVal = map[key]; - if (mapVal == null) { - continue; - } - var prop = Style.properties[key] || Style.properties[dash2camel(key)]; - if (prop == null) { - continue; - } - var _name = prop.name; - var _value = mapVal; - this[i2].properties.push({ - name: _name, - value: _value - }); - } - } - return this; - }; - sheetfn.style = sheetfn.css; - sheetfn.generateStyle = function(cy) { - var style = new Style(cy); - return this.appendToStyle(style); - }; - sheetfn.appendToStyle = function(style) { - for (var i2 = 0; i2 < this.length; i2++) { - var context = this[i2]; - var selector = context.selector; - var props = context.properties; - style.selector(selector); - for (var j = 0; j < props.length; j++) { - var prop = props[j]; - style.css(prop.name, prop.value); - } - } - return style; - }; - var version = "3.28.1"; - var cytoscape3 = function cytoscape4(options) { - if (options === void 0) { - options = {}; - } - if (plainObject(options)) { - return new Core(options); - } else if (string(options)) { - return extension.apply(extension, arguments); - } - }; - cytoscape3.use = function(ext) { - var args = Array.prototype.slice.call(arguments, 1); - args.unshift(cytoscape3); - ext.apply(null, args); - return this; - }; - cytoscape3.warnings = function(bool) { - return warnings(bool); - }; - cytoscape3.version = version; - cytoscape3.stylesheet = cytoscape3.Stylesheet = Stylesheet; - return cytoscape3; - }); - } -}); - -// node_modules/layout-base/layout-base.js -var require_layout_base = __commonJS({ - "node_modules/layout-base/layout-base.js"(exports, module) { - (function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports === "object" && typeof module === "object") - module.exports = factory(); - else if (typeof define === "function" && define.amd) - define([], factory); - else if (typeof exports === "object") - exports["layoutBase"] = factory(); - else - root["layoutBase"] = factory(); - })(exports, function() { - return ( - /******/ - function(modules) { - var installedModules = {}; - function __webpack_require__(moduleId) { - if (installedModules[moduleId]) { - return installedModules[moduleId].exports; - } - var module2 = installedModules[moduleId] = { - /******/ - i: moduleId, - /******/ - l: false, - /******/ - exports: {} - /******/ - }; - modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__); - module2.l = true; - return module2.exports; - } - __webpack_require__.m = modules; - __webpack_require__.c = installedModules; - __webpack_require__.i = function(value) { - return value; - }; - __webpack_require__.d = function(exports2, name2, getter) { - if (!__webpack_require__.o(exports2, name2)) { - Object.defineProperty(exports2, name2, { - /******/ - configurable: false, - /******/ - enumerable: true, - /******/ - get: getter - /******/ - }); - } - }; - __webpack_require__.n = function(module2) { - var getter = module2 && module2.__esModule ? ( - /******/ - function getDefault() { - return module2["default"]; - } - ) : ( - /******/ - function getModuleExports() { - return module2; - } - ); - __webpack_require__.d(getter, "a", getter); - return getter; - }; - __webpack_require__.o = function(object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - __webpack_require__.p = ""; - return __webpack_require__(__webpack_require__.s = 26); - }([ - /* 0 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function LayoutConstants() { - } - LayoutConstants.QUALITY = 1; - LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false; - LayoutConstants.DEFAULT_INCREMENTAL = false; - LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true; - LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false; - LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50; - LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false; - LayoutConstants.DEFAULT_GRAPH_MARGIN = 15; - LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false; - LayoutConstants.SIMPLE_NODE_SIZE = 40; - LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2; - LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40; - LayoutConstants.MIN_EDGE_LENGTH = 1; - LayoutConstants.WORLD_BOUNDARY = 1e6; - LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1e3; - LayoutConstants.WORLD_CENTER_X = 1200; - LayoutConstants.WORLD_CENTER_Y = 900; - module2.exports = LayoutConstants; - }, - /* 1 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LGraphObject = __webpack_require__(2); - var IGeometry = __webpack_require__(8); - var IMath = __webpack_require__(9); - function LEdge(source, target, vEdge) { - LGraphObject.call(this, vEdge); - this.isOverlapingSourceAndTarget = false; - this.vGraphObject = vEdge; - this.bendpoints = []; - this.source = source; - this.target = target; - } - LEdge.prototype = Object.create(LGraphObject.prototype); - for (var prop in LGraphObject) { - LEdge[prop] = LGraphObject[prop]; - } - LEdge.prototype.getSource = function() { - return this.source; - }; - LEdge.prototype.getTarget = function() { - return this.target; - }; - LEdge.prototype.isInterGraph = function() { - return this.isInterGraph; - }; - LEdge.prototype.getLength = function() { - return this.length; - }; - LEdge.prototype.isOverlapingSourceAndTarget = function() { - return this.isOverlapingSourceAndTarget; - }; - LEdge.prototype.getBendpoints = function() { - return this.bendpoints; - }; - LEdge.prototype.getLca = function() { - return this.lca; - }; - LEdge.prototype.getSourceInLca = function() { - return this.sourceInLca; - }; - LEdge.prototype.getTargetInLca = function() { - return this.targetInLca; - }; - LEdge.prototype.getOtherEnd = function(node) { - if (this.source === node) { - return this.target; - } else if (this.target === node) { - return this.source; - } else { - throw "Node is not incident with this edge"; - } - }; - LEdge.prototype.getOtherEndInGraph = function(node, graph) { - var otherEnd = this.getOtherEnd(node); - var root = graph.getGraphManager().getRoot(); - while (true) { - if (otherEnd.getOwner() == graph) { - return otherEnd; - } - if (otherEnd.getOwner() == root) { - break; - } - otherEnd = otherEnd.getOwner().getParent(); - } - return null; - }; - LEdge.prototype.updateLength = function() { - var clipPointCoordinates = new Array(4); - this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates); - if (!this.isOverlapingSourceAndTarget) { - this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2]; - this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3]; - if (Math.abs(this.lengthX) < 1) { - this.lengthX = IMath.sign(this.lengthX); - } - if (Math.abs(this.lengthY) < 1) { - this.lengthY = IMath.sign(this.lengthY); - } - this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); - } - }; - LEdge.prototype.updateLengthSimple = function() { - this.lengthX = this.target.getCenterX() - this.source.getCenterX(); - this.lengthY = this.target.getCenterY() - this.source.getCenterY(); - if (Math.abs(this.lengthX) < 1) { - this.lengthX = IMath.sign(this.lengthX); - } - if (Math.abs(this.lengthY) < 1) { - this.lengthY = IMath.sign(this.lengthY); - } - this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); - }; - module2.exports = LEdge; - }, - /* 2 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function LGraphObject(vGraphObject) { - this.vGraphObject = vGraphObject; - } - module2.exports = LGraphObject; - }, - /* 3 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LGraphObject = __webpack_require__(2); - var Integer = __webpack_require__(10); - var RectangleD = __webpack_require__(13); - var LayoutConstants = __webpack_require__(0); - var RandomSeed = __webpack_require__(16); - var PointD = __webpack_require__(4); - function LNode(gm, loc, size, vNode) { - if (size == null && vNode == null) { - vNode = loc; - } - LGraphObject.call(this, vNode); - if (gm.graphManager != null) - gm = gm.graphManager; - this.estimatedSize = Integer.MIN_VALUE; - this.inclusionTreeDepth = Integer.MAX_VALUE; - this.vGraphObject = vNode; - this.edges = []; - this.graphManager = gm; - if (size != null && loc != null) - this.rect = new RectangleD(loc.x, loc.y, size.width, size.height); - else - this.rect = new RectangleD(); - } - LNode.prototype = Object.create(LGraphObject.prototype); - for (var prop in LGraphObject) { - LNode[prop] = LGraphObject[prop]; - } - LNode.prototype.getEdges = function() { - return this.edges; - }; - LNode.prototype.getChild = function() { - return this.child; - }; - LNode.prototype.getOwner = function() { - return this.owner; - }; - LNode.prototype.getWidth = function() { - return this.rect.width; - }; - LNode.prototype.setWidth = function(width) { - this.rect.width = width; - }; - LNode.prototype.getHeight = function() { - return this.rect.height; - }; - LNode.prototype.setHeight = function(height) { - this.rect.height = height; - }; - LNode.prototype.getCenterX = function() { - return this.rect.x + this.rect.width / 2; - }; - LNode.prototype.getCenterY = function() { - return this.rect.y + this.rect.height / 2; - }; - LNode.prototype.getCenter = function() { - return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2); - }; - LNode.prototype.getLocation = function() { - return new PointD(this.rect.x, this.rect.y); - }; - LNode.prototype.getRect = function() { - return this.rect; - }; - LNode.prototype.getDiagonal = function() { - return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height); - }; - LNode.prototype.getHalfTheDiagonal = function() { - return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2; - }; - LNode.prototype.setRect = function(upperLeft, dimension) { - this.rect.x = upperLeft.x; - this.rect.y = upperLeft.y; - this.rect.width = dimension.width; - this.rect.height = dimension.height; - }; - LNode.prototype.setCenter = function(cx, cy) { - this.rect.x = cx - this.rect.width / 2; - this.rect.y = cy - this.rect.height / 2; - }; - LNode.prototype.setLocation = function(x, y) { - this.rect.x = x; - this.rect.y = y; - }; - LNode.prototype.moveBy = function(dx, dy) { - this.rect.x += dx; - this.rect.y += dy; - }; - LNode.prototype.getEdgeListToNode = function(to) { - var edgeList = []; - var edge; - var self2 = this; - self2.edges.forEach(function(edge2) { - if (edge2.target == to) { - if (edge2.source != self2) - throw "Incorrect edge source!"; - edgeList.push(edge2); - } - }); - return edgeList; - }; - LNode.prototype.getEdgesBetween = function(other) { - var edgeList = []; - var edge; - var self2 = this; - self2.edges.forEach(function(edge2) { - if (!(edge2.source == self2 || edge2.target == self2)) - throw "Incorrect edge source and/or target"; - if (edge2.target == other || edge2.source == other) { - edgeList.push(edge2); - } - }); - return edgeList; - }; - LNode.prototype.getNeighborsList = function() { - var neighbors = /* @__PURE__ */ new Set(); - var self2 = this; - self2.edges.forEach(function(edge) { - if (edge.source == self2) { - neighbors.add(edge.target); - } else { - if (edge.target != self2) { - throw "Incorrect incidency!"; - } - neighbors.add(edge.source); - } - }); - return neighbors; - }; - LNode.prototype.withChildren = function() { - var withNeighborsList = /* @__PURE__ */ new Set(); - var childNode; - var children; - withNeighborsList.add(this); - if (this.child != null) { - var nodes2 = this.child.getNodes(); - for (var i = 0; i < nodes2.length; i++) { - childNode = nodes2[i]; - children = childNode.withChildren(); - children.forEach(function(node) { - withNeighborsList.add(node); - }); - } - } - return withNeighborsList; - }; - LNode.prototype.getNoOfChildren = function() { - var noOfChildren = 0; - var childNode; - if (this.child == null) { - noOfChildren = 1; - } else { - var nodes2 = this.child.getNodes(); - for (var i = 0; i < nodes2.length; i++) { - childNode = nodes2[i]; - noOfChildren += childNode.getNoOfChildren(); - } - } - if (noOfChildren == 0) { - noOfChildren = 1; - } - return noOfChildren; - }; - LNode.prototype.getEstimatedSize = function() { - if (this.estimatedSize == Integer.MIN_VALUE) { - throw "assert failed"; - } - return this.estimatedSize; - }; - LNode.prototype.calcEstimatedSize = function() { - if (this.child == null) { - return this.estimatedSize = (this.rect.width + this.rect.height) / 2; - } else { - this.estimatedSize = this.child.calcEstimatedSize(); - this.rect.width = this.estimatedSize; - this.rect.height = this.estimatedSize; - return this.estimatedSize; - } - }; - LNode.prototype.scatter = function() { - var randomCenterX; - var randomCenterY; - var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY; - var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY; - randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX; - var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY; - var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY; - randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY; - this.rect.x = randomCenterX; - this.rect.y = randomCenterY; - }; - LNode.prototype.updateBounds = function() { - if (this.getChild() == null) { - throw "assert failed"; - } - if (this.getChild().getNodes().length != 0) { - var childGraph = this.getChild(); - childGraph.updateBounds(true); - this.rect.x = childGraph.getLeft(); - this.rect.y = childGraph.getTop(); - this.setWidth(childGraph.getRight() - childGraph.getLeft()); - this.setHeight(childGraph.getBottom() - childGraph.getTop()); - if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) { - var width = childGraph.getRight() - childGraph.getLeft(); - var height = childGraph.getBottom() - childGraph.getTop(); - if (this.labelWidth > width) { - this.rect.x -= (this.labelWidth - width) / 2; - this.setWidth(this.labelWidth); - } - if (this.labelHeight > height) { - if (this.labelPos == "center") { - this.rect.y -= (this.labelHeight - height) / 2; - } else if (this.labelPos == "top") { - this.rect.y -= this.labelHeight - height; - } - this.setHeight(this.labelHeight); - } - } - } - }; - LNode.prototype.getInclusionTreeDepth = function() { - if (this.inclusionTreeDepth == Integer.MAX_VALUE) { - throw "assert failed"; - } - return this.inclusionTreeDepth; - }; - LNode.prototype.transform = function(trans) { - var left = this.rect.x; - if (left > LayoutConstants.WORLD_BOUNDARY) { - left = LayoutConstants.WORLD_BOUNDARY; - } else if (left < -LayoutConstants.WORLD_BOUNDARY) { - left = -LayoutConstants.WORLD_BOUNDARY; - } - var top = this.rect.y; - if (top > LayoutConstants.WORLD_BOUNDARY) { - top = LayoutConstants.WORLD_BOUNDARY; - } else if (top < -LayoutConstants.WORLD_BOUNDARY) { - top = -LayoutConstants.WORLD_BOUNDARY; - } - var leftTop = new PointD(left, top); - var vLeftTop = trans.inverseTransformPoint(leftTop); - this.setLocation(vLeftTop.x, vLeftTop.y); - }; - LNode.prototype.getLeft = function() { - return this.rect.x; - }; - LNode.prototype.getRight = function() { - return this.rect.x + this.rect.width; - }; - LNode.prototype.getTop = function() { - return this.rect.y; - }; - LNode.prototype.getBottom = function() { - return this.rect.y + this.rect.height; - }; - LNode.prototype.getParent = function() { - if (this.owner == null) { - return null; - } - return this.owner.getParent(); - }; - module2.exports = LNode; - }, - /* 4 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function PointD(x, y) { - if (x == null && y == null) { - this.x = 0; - this.y = 0; - } else { - this.x = x; - this.y = y; - } - } - PointD.prototype.getX = function() { - return this.x; - }; - PointD.prototype.getY = function() { - return this.y; - }; - PointD.prototype.setX = function(x) { - this.x = x; - }; - PointD.prototype.setY = function(y) { - this.y = y; - }; - PointD.prototype.getDifference = function(pt) { - return new DimensionD(this.x - pt.x, this.y - pt.y); - }; - PointD.prototype.getCopy = function() { - return new PointD(this.x, this.y); - }; - PointD.prototype.translate = function(dim) { - this.x += dim.width; - this.y += dim.height; - return this; - }; - module2.exports = PointD; - }, - /* 5 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LGraphObject = __webpack_require__(2); - var Integer = __webpack_require__(10); - var LayoutConstants = __webpack_require__(0); - var LGraphManager = __webpack_require__(6); - var LNode = __webpack_require__(3); - var LEdge = __webpack_require__(1); - var RectangleD = __webpack_require__(13); - var Point2 = __webpack_require__(12); - var LinkedList = __webpack_require__(11); - function LGraph(parent, obj2, vGraph) { - LGraphObject.call(this, vGraph); - this.estimatedSize = Integer.MIN_VALUE; - this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN; - this.edges = []; - this.nodes = []; - this.isConnected = false; - this.parent = parent; - if (obj2 != null && obj2 instanceof LGraphManager) { - this.graphManager = obj2; - } else if (obj2 != null && obj2 instanceof Layout) { - this.graphManager = obj2.graphManager; - } - } - LGraph.prototype = Object.create(LGraphObject.prototype); - for (var prop in LGraphObject) { - LGraph[prop] = LGraphObject[prop]; - } - LGraph.prototype.getNodes = function() { - return this.nodes; - }; - LGraph.prototype.getEdges = function() { - return this.edges; - }; - LGraph.prototype.getGraphManager = function() { - return this.graphManager; - }; - LGraph.prototype.getParent = function() { - return this.parent; - }; - LGraph.prototype.getLeft = function() { - return this.left; - }; - LGraph.prototype.getRight = function() { - return this.right; - }; - LGraph.prototype.getTop = function() { - return this.top; - }; - LGraph.prototype.getBottom = function() { - return this.bottom; - }; - LGraph.prototype.isConnected = function() { - return this.isConnected; - }; - LGraph.prototype.add = function(obj1, sourceNode, targetNode) { - if (sourceNode == null && targetNode == null) { - var newNode = obj1; - if (this.graphManager == null) { - throw "Graph has no graph mgr!"; - } - if (this.getNodes().indexOf(newNode) > -1) { - throw "Node already in graph!"; - } - newNode.owner = this; - this.getNodes().push(newNode); - return newNode; - } else { - var newEdge = obj1; - if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) { - throw "Source or target not in graph!"; - } - if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) { - throw "Both owners must be this graph!"; - } - if (sourceNode.owner != targetNode.owner) { - return null; - } - newEdge.source = sourceNode; - newEdge.target = targetNode; - newEdge.isInterGraph = false; - this.getEdges().push(newEdge); - sourceNode.edges.push(newEdge); - if (targetNode != sourceNode) { - targetNode.edges.push(newEdge); - } - return newEdge; - } - }; - LGraph.prototype.remove = function(obj) { - var node = obj; - if (obj instanceof LNode) { - if (node == null) { - throw "Node is null!"; - } - if (!(node.owner != null && node.owner == this)) { - throw "Owner graph is invalid!"; - } - if (this.graphManager == null) { - throw "Owner graph manager is invalid!"; - } - var edgesToBeRemoved = node.edges.slice(); - var edge; - var s = edgesToBeRemoved.length; - for (var i = 0; i < s; i++) { - edge = edgesToBeRemoved[i]; - if (edge.isInterGraph) { - this.graphManager.remove(edge); - } else { - edge.source.owner.remove(edge); - } - } - var index = this.nodes.indexOf(node); - if (index == -1) { - throw "Node not in owner node list!"; - } - this.nodes.splice(index, 1); - } else if (obj instanceof LEdge) { - var edge = obj; - if (edge == null) { - throw "Edge is null!"; - } - if (!(edge.source != null && edge.target != null)) { - throw "Source and/or target is null!"; - } - if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) { - throw "Source and/or target owner is invalid!"; - } - var sourceIndex = edge.source.edges.indexOf(edge); - var targetIndex = edge.target.edges.indexOf(edge); - if (!(sourceIndex > -1 && targetIndex > -1)) { - throw "Source and/or target doesn't know this edge!"; - } - edge.source.edges.splice(sourceIndex, 1); - if (edge.target != edge.source) { - edge.target.edges.splice(targetIndex, 1); - } - var index = edge.source.owner.getEdges().indexOf(edge); - if (index == -1) { - throw "Not in owner's edge list!"; - } - edge.source.owner.getEdges().splice(index, 1); - } - }; - LGraph.prototype.updateLeftTop = function() { - var top = Integer.MAX_VALUE; - var left = Integer.MAX_VALUE; - var nodeTop; - var nodeLeft; - var margin; - var nodes2 = this.getNodes(); - var s = nodes2.length; - for (var i = 0; i < s; i++) { - var lNode = nodes2[i]; - nodeTop = lNode.getTop(); - nodeLeft = lNode.getLeft(); - if (top > nodeTop) { - top = nodeTop; - } - if (left > nodeLeft) { - left = nodeLeft; - } - } - if (top == Integer.MAX_VALUE) { - return null; - } - if (nodes2[0].getParent().paddingLeft != void 0) { - margin = nodes2[0].getParent().paddingLeft; - } else { - margin = this.margin; - } - this.left = left - margin; - this.top = top - margin; - return new Point2(this.left, this.top); - }; - LGraph.prototype.updateBounds = function(recursive) { - var left = Integer.MAX_VALUE; - var right = -Integer.MAX_VALUE; - var top = Integer.MAX_VALUE; - var bottom = -Integer.MAX_VALUE; - var nodeLeft; - var nodeRight; - var nodeTop; - var nodeBottom; - var margin; - var nodes2 = this.nodes; - var s = nodes2.length; - for (var i = 0; i < s; i++) { - var lNode = nodes2[i]; - if (recursive && lNode.child != null) { - lNode.updateBounds(); - } - nodeLeft = lNode.getLeft(); - nodeRight = lNode.getRight(); - nodeTop = lNode.getTop(); - nodeBottom = lNode.getBottom(); - if (left > nodeLeft) { - left = nodeLeft; - } - if (right < nodeRight) { - right = nodeRight; - } - if (top > nodeTop) { - top = nodeTop; - } - if (bottom < nodeBottom) { - bottom = nodeBottom; - } - } - var boundingRect = new RectangleD(left, top, right - left, bottom - top); - if (left == Integer.MAX_VALUE) { - this.left = this.parent.getLeft(); - this.right = this.parent.getRight(); - this.top = this.parent.getTop(); - this.bottom = this.parent.getBottom(); - } - if (nodes2[0].getParent().paddingLeft != void 0) { - margin = nodes2[0].getParent().paddingLeft; - } else { - margin = this.margin; - } - this.left = boundingRect.x - margin; - this.right = boundingRect.x + boundingRect.width + margin; - this.top = boundingRect.y - margin; - this.bottom = boundingRect.y + boundingRect.height + margin; - }; - LGraph.calculateBounds = function(nodes2) { - var left = Integer.MAX_VALUE; - var right = -Integer.MAX_VALUE; - var top = Integer.MAX_VALUE; - var bottom = -Integer.MAX_VALUE; - var nodeLeft; - var nodeRight; - var nodeTop; - var nodeBottom; - var s = nodes2.length; - for (var i = 0; i < s; i++) { - var lNode = nodes2[i]; - nodeLeft = lNode.getLeft(); - nodeRight = lNode.getRight(); - nodeTop = lNode.getTop(); - nodeBottom = lNode.getBottom(); - if (left > nodeLeft) { - left = nodeLeft; - } - if (right < nodeRight) { - right = nodeRight; - } - if (top > nodeTop) { - top = nodeTop; - } - if (bottom < nodeBottom) { - bottom = nodeBottom; - } - } - var boundingRect = new RectangleD(left, top, right - left, bottom - top); - return boundingRect; - }; - LGraph.prototype.getInclusionTreeDepth = function() { - if (this == this.graphManager.getRoot()) { - return 1; - } else { - return this.parent.getInclusionTreeDepth(); - } - }; - LGraph.prototype.getEstimatedSize = function() { - if (this.estimatedSize == Integer.MIN_VALUE) { - throw "assert failed"; - } - return this.estimatedSize; - }; - LGraph.prototype.calcEstimatedSize = function() { - var size = 0; - var nodes2 = this.nodes; - var s = nodes2.length; - for (var i = 0; i < s; i++) { - var lNode = nodes2[i]; - size += lNode.calcEstimatedSize(); - } - if (size == 0) { - this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE; - } else { - this.estimatedSize = size / Math.sqrt(this.nodes.length); - } - return this.estimatedSize; - }; - LGraph.prototype.updateConnected = function() { - var self2 = this; - if (this.nodes.length == 0) { - this.isConnected = true; - return; - } - var queue = new LinkedList(); - var visited = /* @__PURE__ */ new Set(); - var currentNode = this.nodes[0]; - var neighborEdges; - var currentNeighbor; - var childrenOfNode = currentNode.withChildren(); - childrenOfNode.forEach(function(node) { - queue.push(node); - visited.add(node); - }); - while (queue.length !== 0) { - currentNode = queue.shift(); - neighborEdges = currentNode.getEdges(); - var size = neighborEdges.length; - for (var i = 0; i < size; i++) { - var neighborEdge = neighborEdges[i]; - currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this); - if (currentNeighbor != null && !visited.has(currentNeighbor)) { - var childrenOfNeighbor = currentNeighbor.withChildren(); - childrenOfNeighbor.forEach(function(node) { - queue.push(node); - visited.add(node); - }); - } - } - } - this.isConnected = false; - if (visited.size >= this.nodes.length) { - var noOfVisitedInThisGraph = 0; - visited.forEach(function(visitedNode) { - if (visitedNode.owner == self2) { - noOfVisitedInThisGraph++; - } - }); - if (noOfVisitedInThisGraph == this.nodes.length) { - this.isConnected = true; - } - } - }; - module2.exports = LGraph; - }, - /* 6 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LGraph; - var LEdge = __webpack_require__(1); - function LGraphManager(layout) { - LGraph = __webpack_require__(5); - this.layout = layout; - this.graphs = []; - this.edges = []; - } - LGraphManager.prototype.addRoot = function() { - var ngraph = this.layout.newGraph(); - var nnode = this.layout.newNode(null); - var root = this.add(ngraph, nnode); - this.setRootGraph(root); - return this.rootGraph; - }; - LGraphManager.prototype.add = function(newGraph, parentNode, newEdge, sourceNode, targetNode) { - if (newEdge == null && sourceNode == null && targetNode == null) { - if (newGraph == null) { - throw "Graph is null!"; - } - if (parentNode == null) { - throw "Parent node is null!"; - } - if (this.graphs.indexOf(newGraph) > -1) { - throw "Graph already in this graph mgr!"; - } - this.graphs.push(newGraph); - if (newGraph.parent != null) { - throw "Already has a parent!"; - } - if (parentNode.child != null) { - throw "Already has a child!"; - } - newGraph.parent = parentNode; - parentNode.child = newGraph; - return newGraph; - } else { - targetNode = newEdge; - sourceNode = parentNode; - newEdge = newGraph; - var sourceGraph = sourceNode.getOwner(); - var targetGraph = targetNode.getOwner(); - if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) { - throw "Source not in this graph mgr!"; - } - if (!(targetGraph != null && targetGraph.getGraphManager() == this)) { - throw "Target not in this graph mgr!"; - } - if (sourceGraph == targetGraph) { - newEdge.isInterGraph = false; - return sourceGraph.add(newEdge, sourceNode, targetNode); - } else { - newEdge.isInterGraph = true; - newEdge.source = sourceNode; - newEdge.target = targetNode; - if (this.edges.indexOf(newEdge) > -1) { - throw "Edge already in inter-graph edge list!"; - } - this.edges.push(newEdge); - if (!(newEdge.source != null && newEdge.target != null)) { - throw "Edge source and/or target is null!"; - } - if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) { - throw "Edge already in source and/or target incidency list!"; - } - newEdge.source.edges.push(newEdge); - newEdge.target.edges.push(newEdge); - return newEdge; - } - } - }; - LGraphManager.prototype.remove = function(lObj) { - if (lObj instanceof LGraph) { - var graph = lObj; - if (graph.getGraphManager() != this) { - throw "Graph not in this graph mgr"; - } - if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) { - throw "Invalid parent node!"; - } - var edgesToBeRemoved = []; - edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges()); - var edge; - var s = edgesToBeRemoved.length; - for (var i = 0; i < s; i++) { - edge = edgesToBeRemoved[i]; - graph.remove(edge); - } - var nodesToBeRemoved = []; - nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes()); - var node; - s = nodesToBeRemoved.length; - for (var i = 0; i < s; i++) { - node = nodesToBeRemoved[i]; - graph.remove(node); - } - if (graph == this.rootGraph) { - this.setRootGraph(null); - } - var index = this.graphs.indexOf(graph); - this.graphs.splice(index, 1); - graph.parent = null; - } else if (lObj instanceof LEdge) { - edge = lObj; - if (edge == null) { - throw "Edge is null!"; - } - if (!edge.isInterGraph) { - throw "Not an inter-graph edge!"; - } - if (!(edge.source != null && edge.target != null)) { - throw "Source and/or target is null!"; - } - if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) { - throw "Source and/or target doesn't know this edge!"; - } - var index = edge.source.edges.indexOf(edge); - edge.source.edges.splice(index, 1); - index = edge.target.edges.indexOf(edge); - edge.target.edges.splice(index, 1); - if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) { - throw "Edge owner graph or owner graph manager is null!"; - } - if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) { - throw "Not in owner graph manager's edge list!"; - } - var index = edge.source.owner.getGraphManager().edges.indexOf(edge); - edge.source.owner.getGraphManager().edges.splice(index, 1); - } - }; - LGraphManager.prototype.updateBounds = function() { - this.rootGraph.updateBounds(true); - }; - LGraphManager.prototype.getGraphs = function() { - return this.graphs; - }; - LGraphManager.prototype.getAllNodes = function() { - if (this.allNodes == null) { - var nodeList = []; - var graphs = this.getGraphs(); - var s = graphs.length; - for (var i = 0; i < s; i++) { - nodeList = nodeList.concat(graphs[i].getNodes()); - } - this.allNodes = nodeList; - } - return this.allNodes; - }; - LGraphManager.prototype.resetAllNodes = function() { - this.allNodes = null; - }; - LGraphManager.prototype.resetAllEdges = function() { - this.allEdges = null; - }; - LGraphManager.prototype.resetAllNodesToApplyGravitation = function() { - this.allNodesToApplyGravitation = null; - }; - LGraphManager.prototype.getAllEdges = function() { - if (this.allEdges == null) { - var edgeList = []; - var graphs = this.getGraphs(); - var s = graphs.length; - for (var i = 0; i < graphs.length; i++) { - edgeList = edgeList.concat(graphs[i].getEdges()); - } - edgeList = edgeList.concat(this.edges); - this.allEdges = edgeList; - } - return this.allEdges; - }; - LGraphManager.prototype.getAllNodesToApplyGravitation = function() { - return this.allNodesToApplyGravitation; - }; - LGraphManager.prototype.setAllNodesToApplyGravitation = function(nodeList) { - if (this.allNodesToApplyGravitation != null) { - throw "assert failed"; - } - this.allNodesToApplyGravitation = nodeList; - }; - LGraphManager.prototype.getRoot = function() { - return this.rootGraph; - }; - LGraphManager.prototype.setRootGraph = function(graph) { - if (graph.getGraphManager() != this) { - throw "Root not in this graph mgr!"; - } - this.rootGraph = graph; - if (graph.parent == null) { - graph.parent = this.layout.newNode("Root node"); - } - }; - LGraphManager.prototype.getLayout = function() { - return this.layout; - }; - LGraphManager.prototype.isOneAncestorOfOther = function(firstNode, secondNode) { - if (!(firstNode != null && secondNode != null)) { - throw "assert failed"; - } - if (firstNode == secondNode) { - return true; - } - var ownerGraph = firstNode.getOwner(); - var parentNode; - do { - parentNode = ownerGraph.getParent(); - if (parentNode == null) { - break; - } - if (parentNode == secondNode) { - return true; - } - ownerGraph = parentNode.getOwner(); - if (ownerGraph == null) { - break; - } - } while (true); - ownerGraph = secondNode.getOwner(); - do { - parentNode = ownerGraph.getParent(); - if (parentNode == null) { - break; - } - if (parentNode == firstNode) { - return true; - } - ownerGraph = parentNode.getOwner(); - if (ownerGraph == null) { - break; - } - } while (true); - return false; - }; - LGraphManager.prototype.calcLowestCommonAncestors = function() { - var edge; - var sourceNode; - var targetNode; - var sourceAncestorGraph; - var targetAncestorGraph; - var edges = this.getAllEdges(); - var s = edges.length; - for (var i = 0; i < s; i++) { - edge = edges[i]; - sourceNode = edge.source; - targetNode = edge.target; - edge.lca = null; - edge.sourceInLca = sourceNode; - edge.targetInLca = targetNode; - if (sourceNode == targetNode) { - edge.lca = sourceNode.getOwner(); - continue; - } - sourceAncestorGraph = sourceNode.getOwner(); - while (edge.lca == null) { - edge.targetInLca = targetNode; - targetAncestorGraph = targetNode.getOwner(); - while (edge.lca == null) { - if (targetAncestorGraph == sourceAncestorGraph) { - edge.lca = targetAncestorGraph; - break; - } - if (targetAncestorGraph == this.rootGraph) { - break; - } - if (edge.lca != null) { - throw "assert failed"; - } - edge.targetInLca = targetAncestorGraph.getParent(); - targetAncestorGraph = edge.targetInLca.getOwner(); - } - if (sourceAncestorGraph == this.rootGraph) { - break; - } - if (edge.lca == null) { - edge.sourceInLca = sourceAncestorGraph.getParent(); - sourceAncestorGraph = edge.sourceInLca.getOwner(); - } - } - if (edge.lca == null) { - throw "assert failed"; - } - } - }; - LGraphManager.prototype.calcLowestCommonAncestor = function(firstNode, secondNode) { - if (firstNode == secondNode) { - return firstNode.getOwner(); - } - var firstOwnerGraph = firstNode.getOwner(); - do { - if (firstOwnerGraph == null) { - break; - } - var secondOwnerGraph = secondNode.getOwner(); - do { - if (secondOwnerGraph == null) { - break; - } - if (secondOwnerGraph == firstOwnerGraph) { - return secondOwnerGraph; - } - secondOwnerGraph = secondOwnerGraph.getParent().getOwner(); - } while (true); - firstOwnerGraph = firstOwnerGraph.getParent().getOwner(); - } while (true); - return firstOwnerGraph; - }; - LGraphManager.prototype.calcInclusionTreeDepths = function(graph, depth) { - if (graph == null && depth == null) { - graph = this.rootGraph; - depth = 1; - } - var node; - var nodes2 = graph.getNodes(); - var s = nodes2.length; - for (var i = 0; i < s; i++) { - node = nodes2[i]; - node.inclusionTreeDepth = depth; - if (node.child != null) { - this.calcInclusionTreeDepths(node.child, depth + 1); - } - } - }; - LGraphManager.prototype.includesInvalidEdge = function() { - var edge; - var s = this.edges.length; - for (var i = 0; i < s; i++) { - edge = this.edges[i]; - if (this.isOneAncestorOfOther(edge.source, edge.target)) { - return true; - } - } - return false; - }; - module2.exports = LGraphManager; - }, - /* 7 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LayoutConstants = __webpack_require__(0); - function FDLayoutConstants() { - } - for (var prop in LayoutConstants) { - FDLayoutConstants[prop] = LayoutConstants[prop]; - } - FDLayoutConstants.MAX_ITERATIONS = 2500; - FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50; - FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45; - FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500; - FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4; - FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1; - FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8; - FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5; - FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true; - FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true; - FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3; - FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33; - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3; - FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3; - FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100; - FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3; - FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10; - FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100; - FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1; - FDLayoutConstants.MIN_EDGE_LENGTH = 1; - FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10; - module2.exports = FDLayoutConstants; - }, - /* 8 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var Point2 = __webpack_require__(12); - function IGeometry() { - } - IGeometry.calcSeparationAmount = function(rectA, rectB, overlapAmount, separationBuffer) { - if (!rectA.intersects(rectB)) { - throw "assert failed"; - } - var directions = new Array(2); - this.decideDirectionsForOverlappingNodes(rectA, rectB, directions); - overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x); - overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y); - if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) { - overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight()); - } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) { - overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight()); - } - if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) { - overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom()); - } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) { - overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom()); - } - var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX())); - if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) { - slope = 1; - } - var moveByY = slope * overlapAmount[0]; - var moveByX = overlapAmount[1] / slope; - if (overlapAmount[0] < moveByX) { - moveByX = overlapAmount[0]; - } else { - moveByY = overlapAmount[1]; - } - overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer); - overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer); - }; - IGeometry.decideDirectionsForOverlappingNodes = function(rectA, rectB, directions) { - if (rectA.getCenterX() < rectB.getCenterX()) { - directions[0] = -1; - } else { - directions[0] = 1; - } - if (rectA.getCenterY() < rectB.getCenterY()) { - directions[1] = -1; - } else { - directions[1] = 1; - } - }; - IGeometry.getIntersection2 = function(rectA, rectB, result) { - var p1x = rectA.getCenterX(); - var p1y = rectA.getCenterY(); - var p2x = rectB.getCenterX(); - var p2y = rectB.getCenterY(); - if (rectA.intersects(rectB)) { - result[0] = p1x; - result[1] = p1y; - result[2] = p2x; - result[3] = p2y; - return true; - } - var topLeftAx = rectA.getX(); - var topLeftAy = rectA.getY(); - var topRightAx = rectA.getRight(); - var bottomLeftAx = rectA.getX(); - var bottomLeftAy = rectA.getBottom(); - var bottomRightAx = rectA.getRight(); - var halfWidthA = rectA.getWidthHalf(); - var halfHeightA = rectA.getHeightHalf(); - var topLeftBx = rectB.getX(); - var topLeftBy = rectB.getY(); - var topRightBx = rectB.getRight(); - var bottomLeftBx = rectB.getX(); - var bottomLeftBy = rectB.getBottom(); - var bottomRightBx = rectB.getRight(); - var halfWidthB = rectB.getWidthHalf(); - var halfHeightB = rectB.getHeightHalf(); - var clipPointAFound = false; - var clipPointBFound = false; - if (p1x === p2x) { - if (p1y > p2y) { - result[0] = p1x; - result[1] = topLeftAy; - result[2] = p2x; - result[3] = bottomLeftBy; - return false; - } else if (p1y < p2y) { - result[0] = p1x; - result[1] = bottomLeftAy; - result[2] = p2x; - result[3] = topLeftBy; - return false; - } else { - } - } else if (p1y === p2y) { - if (p1x > p2x) { - result[0] = topLeftAx; - result[1] = p1y; - result[2] = topRightBx; - result[3] = p2y; - return false; - } else if (p1x < p2x) { - result[0] = topRightAx; - result[1] = p1y; - result[2] = topLeftBx; - result[3] = p2y; - return false; - } else { - } - } else { - var slopeA = rectA.height / rectA.width; - var slopeB = rectB.height / rectB.width; - var slopePrime = (p2y - p1y) / (p2x - p1x); - var cardinalDirectionA = void 0; - var cardinalDirectionB = void 0; - var tempPointAx = void 0; - var tempPointAy = void 0; - var tempPointBx = void 0; - var tempPointBy = void 0; - if (-slopeA === slopePrime) { - if (p1x > p2x) { - result[0] = bottomLeftAx; - result[1] = bottomLeftAy; - clipPointAFound = true; - } else { - result[0] = topRightAx; - result[1] = topLeftAy; - clipPointAFound = true; - } - } else if (slopeA === slopePrime) { - if (p1x > p2x) { - result[0] = topLeftAx; - result[1] = topLeftAy; - clipPointAFound = true; - } else { - result[0] = bottomRightAx; - result[1] = bottomLeftAy; - clipPointAFound = true; - } - } - if (-slopeB === slopePrime) { - if (p2x > p1x) { - result[2] = bottomLeftBx; - result[3] = bottomLeftBy; - clipPointBFound = true; - } else { - result[2] = topRightBx; - result[3] = topLeftBy; - clipPointBFound = true; - } - } else if (slopeB === slopePrime) { - if (p2x > p1x) { - result[2] = topLeftBx; - result[3] = topLeftBy; - clipPointBFound = true; - } else { - result[2] = bottomRightBx; - result[3] = bottomLeftBy; - clipPointBFound = true; - } - } - if (clipPointAFound && clipPointBFound) { - return false; - } - if (p1x > p2x) { - if (p1y > p2y) { - cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4); - cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2); - } else { - cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3); - cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1); - } - } else { - if (p1y > p2y) { - cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1); - cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3); - } else { - cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2); - cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4); - } - } - if (!clipPointAFound) { - switch (cardinalDirectionA) { - case 1: - tempPointAy = topLeftAy; - tempPointAx = p1x + -halfHeightA / slopePrime; - result[0] = tempPointAx; - result[1] = tempPointAy; - break; - case 2: - tempPointAx = bottomRightAx; - tempPointAy = p1y + halfWidthA * slopePrime; - result[0] = tempPointAx; - result[1] = tempPointAy; - break; - case 3: - tempPointAy = bottomLeftAy; - tempPointAx = p1x + halfHeightA / slopePrime; - result[0] = tempPointAx; - result[1] = tempPointAy; - break; - case 4: - tempPointAx = bottomLeftAx; - tempPointAy = p1y + -halfWidthA * slopePrime; - result[0] = tempPointAx; - result[1] = tempPointAy; - break; - } - } - if (!clipPointBFound) { - switch (cardinalDirectionB) { - case 1: - tempPointBy = topLeftBy; - tempPointBx = p2x + -halfHeightB / slopePrime; - result[2] = tempPointBx; - result[3] = tempPointBy; - break; - case 2: - tempPointBx = bottomRightBx; - tempPointBy = p2y + halfWidthB * slopePrime; - result[2] = tempPointBx; - result[3] = tempPointBy; - break; - case 3: - tempPointBy = bottomLeftBy; - tempPointBx = p2x + halfHeightB / slopePrime; - result[2] = tempPointBx; - result[3] = tempPointBy; - break; - case 4: - tempPointBx = bottomLeftBx; - tempPointBy = p2y + -halfWidthB * slopePrime; - result[2] = tempPointBx; - result[3] = tempPointBy; - break; - } - } - } - return false; - }; - IGeometry.getCardinalDirection = function(slope, slopePrime, line) { - if (slope > slopePrime) { - return line; - } else { - return 1 + line % 4; - } - }; - IGeometry.getIntersection = function(s1, s2, f1, f2) { - if (f2 == null) { - return this.getIntersection2(s1, s2, f1); - } - var x1 = s1.x; - var y1 = s1.y; - var x2 = s2.x; - var y2 = s2.y; - var x3 = f1.x; - var y3 = f1.y; - var x4 = f2.x; - var y4 = f2.y; - var x = void 0, y = void 0; - var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c2 = void 0; - var denom = void 0; - a1 = y2 - y1; - b1 = x1 - x2; - c1 = x2 * y1 - x1 * y2; - a2 = y4 - y3; - b2 = x3 - x4; - c2 = x4 * y3 - x3 * y4; - denom = a1 * b2 - a2 * b1; - if (denom === 0) { - return null; - } - x = (b1 * c2 - b2 * c1) / denom; - y = (a2 * c1 - a1 * c2) / denom; - return new Point2(x, y); - }; - IGeometry.angleOfVector = function(Cx, Cy, Nx, Ny) { - var C_angle = void 0; - if (Cx !== Nx) { - C_angle = Math.atan((Ny - Cy) / (Nx - Cx)); - if (Nx < Cx) { - C_angle += Math.PI; - } else if (Ny < Cy) { - C_angle += this.TWO_PI; - } - } else if (Ny < Cy) { - C_angle = this.ONE_AND_HALF_PI; - } else { - C_angle = this.HALF_PI; - } - return C_angle; - }; - IGeometry.doIntersect = function(p1, p2, p3, p4) { - var a = p1.x; - var b = p1.y; - var c = p2.x; - var d = p2.y; - var p = p3.x; - var q = p3.y; - var r = p4.x; - var s = p4.y; - var det = (c - a) * (s - q) - (r - p) * (d - b); - if (det === 0) { - return false; - } else { - var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det; - var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det; - return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1; - } - }; - IGeometry.HALF_PI = 0.5 * Math.PI; - IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI; - IGeometry.TWO_PI = 2 * Math.PI; - IGeometry.THREE_PI = 3 * Math.PI; - module2.exports = IGeometry; - }, - /* 9 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function IMath() { - } - IMath.sign = function(value) { - if (value > 0) { - return 1; - } else if (value < 0) { - return -1; - } else { - return 0; - } - }; - IMath.floor = function(value) { - return value < 0 ? Math.ceil(value) : Math.floor(value); - }; - IMath.ceil = function(value) { - return value < 0 ? Math.floor(value) : Math.ceil(value); - }; - module2.exports = IMath; - }, - /* 10 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function Integer() { - } - Integer.MAX_VALUE = 2147483647; - Integer.MIN_VALUE = -2147483648; - module2.exports = Integer; - }, - /* 11 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var _createClass = /* @__PURE__ */ function() { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - return function(Constructor, protoProps, staticProps) { - if (protoProps) - defineProperties(Constructor.prototype, protoProps); - if (staticProps) - defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - function _classCallCheck(instance2, Constructor) { - if (!(instance2 instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - var nodeFrom = function nodeFrom2(value) { - return { value, next: null, prev: null }; - }; - var add = function add2(prev, node, next2, list) { - if (prev !== null) { - prev.next = node; - } else { - list.head = node; - } - if (next2 !== null) { - next2.prev = node; - } else { - list.tail = node; - } - node.prev = prev; - node.next = next2; - list.length++; - return node; - }; - var _remove = function _remove2(node, list) { - var prev = node.prev, next2 = node.next; - if (prev !== null) { - prev.next = next2; - } else { - list.head = next2; - } - if (next2 !== null) { - next2.prev = prev; - } else { - list.tail = prev; - } - node.prev = node.next = null; - list.length--; - return node; - }; - var LinkedList = function() { - function LinkedList2(vals) { - var _this = this; - _classCallCheck(this, LinkedList2); - this.length = 0; - this.head = null; - this.tail = null; - if (vals != null) { - vals.forEach(function(v) { - return _this.push(v); - }); - } - } - _createClass(LinkedList2, [{ - key: "size", - value: function size() { - return this.length; - } - }, { - key: "insertBefore", - value: function insertBefore(val, otherNode) { - return add(otherNode.prev, nodeFrom(val), otherNode, this); - } - }, { - key: "insertAfter", - value: function insertAfter(val, otherNode) { - return add(otherNode, nodeFrom(val), otherNode.next, this); - } - }, { - key: "insertNodeBefore", - value: function insertNodeBefore(newNode, otherNode) { - return add(otherNode.prev, newNode, otherNode, this); - } - }, { - key: "insertNodeAfter", - value: function insertNodeAfter(newNode, otherNode) { - return add(otherNode, newNode, otherNode.next, this); - } - }, { - key: "push", - value: function push(val) { - return add(this.tail, nodeFrom(val), null, this); - } - }, { - key: "unshift", - value: function unshift(val) { - return add(null, nodeFrom(val), this.head, this); - } - }, { - key: "remove", - value: function remove(node) { - return _remove(node, this); - } - }, { - key: "pop", - value: function pop() { - return _remove(this.tail, this).value; - } - }, { - key: "popNode", - value: function popNode() { - return _remove(this.tail, this); - } - }, { - key: "shift", - value: function shift() { - return _remove(this.head, this).value; - } - }, { - key: "shiftNode", - value: function shiftNode() { - return _remove(this.head, this); - } - }, { - key: "get_object_at", - value: function get_object_at(index) { - if (index <= this.length()) { - var i = 1; - var current = this.head; - while (i < index) { - current = current.next; - i++; - } - return current.value; - } - } - }, { - key: "set_object_at", - value: function set_object_at(index, value) { - if (index <= this.length()) { - var i = 1; - var current = this.head; - while (i < index) { - current = current.next; - i++; - } - current.value = value; - } - } - }]); - return LinkedList2; - }(); - module2.exports = LinkedList; - }, - /* 12 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function Point2(x, y, p) { - this.x = null; - this.y = null; - if (x == null && y == null && p == null) { - this.x = 0; - this.y = 0; - } else if (typeof x == "number" && typeof y == "number" && p == null) { - this.x = x; - this.y = y; - } else if (x.constructor.name == "Point" && y == null && p == null) { - p = x; - this.x = p.x; - this.y = p.y; - } - } - Point2.prototype.getX = function() { - return this.x; - }; - Point2.prototype.getY = function() { - return this.y; - }; - Point2.prototype.getLocation = function() { - return new Point2(this.x, this.y); - }; - Point2.prototype.setLocation = function(x, y, p) { - if (x.constructor.name == "Point" && y == null && p == null) { - p = x; - this.setLocation(p.x, p.y); - } else if (typeof x == "number" && typeof y == "number" && p == null) { - if (parseInt(x) == x && parseInt(y) == y) { - this.move(x, y); - } else { - this.x = Math.floor(x + 0.5); - this.y = Math.floor(y + 0.5); - } - } - }; - Point2.prototype.move = function(x, y) { - this.x = x; - this.y = y; - }; - Point2.prototype.translate = function(dx, dy) { - this.x += dx; - this.y += dy; - }; - Point2.prototype.equals = function(obj) { - if (obj.constructor.name == "Point") { - var pt = obj; - return this.x == pt.x && this.y == pt.y; - } - return this == obj; - }; - Point2.prototype.toString = function() { - return new Point2().constructor.name + "[x=" + this.x + ",y=" + this.y + "]"; - }; - module2.exports = Point2; - }, - /* 13 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function RectangleD(x, y, width, height) { - this.x = 0; - this.y = 0; - this.width = 0; - this.height = 0; - if (x != null && y != null && width != null && height != null) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - } - RectangleD.prototype.getX = function() { - return this.x; - }; - RectangleD.prototype.setX = function(x) { - this.x = x; - }; - RectangleD.prototype.getY = function() { - return this.y; - }; - RectangleD.prototype.setY = function(y) { - this.y = y; - }; - RectangleD.prototype.getWidth = function() { - return this.width; - }; - RectangleD.prototype.setWidth = function(width) { - this.width = width; - }; - RectangleD.prototype.getHeight = function() { - return this.height; - }; - RectangleD.prototype.setHeight = function(height) { - this.height = height; - }; - RectangleD.prototype.getRight = function() { - return this.x + this.width; - }; - RectangleD.prototype.getBottom = function() { - return this.y + this.height; - }; - RectangleD.prototype.intersects = function(a) { - if (this.getRight() < a.x) { - return false; - } - if (this.getBottom() < a.y) { - return false; - } - if (a.getRight() < this.x) { - return false; - } - if (a.getBottom() < this.y) { - return false; - } - return true; - }; - RectangleD.prototype.getCenterX = function() { - return this.x + this.width / 2; - }; - RectangleD.prototype.getMinX = function() { - return this.getX(); - }; - RectangleD.prototype.getMaxX = function() { - return this.getX() + this.width; - }; - RectangleD.prototype.getCenterY = function() { - return this.y + this.height / 2; - }; - RectangleD.prototype.getMinY = function() { - return this.getY(); - }; - RectangleD.prototype.getMaxY = function() { - return this.getY() + this.height; - }; - RectangleD.prototype.getWidthHalf = function() { - return this.width / 2; - }; - RectangleD.prototype.getHeightHalf = function() { - return this.height / 2; - }; - module2.exports = RectangleD; - }, - /* 14 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { - return typeof obj; - } : function(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - function UniqueIDGeneretor() { - } - UniqueIDGeneretor.lastID = 0; - UniqueIDGeneretor.createID = function(obj) { - if (UniqueIDGeneretor.isPrimitive(obj)) { - return obj; - } - if (obj.uniqueID != null) { - return obj.uniqueID; - } - obj.uniqueID = UniqueIDGeneretor.getString(); - UniqueIDGeneretor.lastID++; - return obj.uniqueID; - }; - UniqueIDGeneretor.getString = function(id) { - if (id == null) - id = UniqueIDGeneretor.lastID; - return "Object#" + id; - }; - UniqueIDGeneretor.isPrimitive = function(arg) { - var type = typeof arg === "undefined" ? "undefined" : _typeof(arg); - return arg == null || type != "object" && type != "function"; - }; - module2.exports = UniqueIDGeneretor; - }, - /* 15 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function _toConsumableArray(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 LayoutConstants = __webpack_require__(0); - var LGraphManager = __webpack_require__(6); - var LNode = __webpack_require__(3); - var LEdge = __webpack_require__(1); - var LGraph = __webpack_require__(5); - var PointD = __webpack_require__(4); - var Transform = __webpack_require__(17); - var Emitter = __webpack_require__(27); - function Layout2(isRemoteUse) { - Emitter.call(this); - this.layoutQuality = LayoutConstants.QUALITY; - this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; - this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; - this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; - this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; - this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; - this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; - this.edgeToDummyNodes = /* @__PURE__ */ new Map(); - this.graphManager = new LGraphManager(this); - this.isLayoutFinished = false; - this.isSubLayout = false; - this.isRemoteUse = false; - if (isRemoteUse != null) { - this.isRemoteUse = isRemoteUse; - } - } - Layout2.RANDOM_SEED = 1; - Layout2.prototype = Object.create(Emitter.prototype); - Layout2.prototype.getGraphManager = function() { - return this.graphManager; - }; - Layout2.prototype.getAllNodes = function() { - return this.graphManager.getAllNodes(); - }; - Layout2.prototype.getAllEdges = function() { - return this.graphManager.getAllEdges(); - }; - Layout2.prototype.getAllNodesToApplyGravitation = function() { - return this.graphManager.getAllNodesToApplyGravitation(); - }; - Layout2.prototype.newGraphManager = function() { - var gm = new LGraphManager(this); - this.graphManager = gm; - return gm; - }; - Layout2.prototype.newGraph = function(vGraph) { - return new LGraph(null, this.graphManager, vGraph); - }; - Layout2.prototype.newNode = function(vNode) { - return new LNode(this.graphManager, vNode); - }; - Layout2.prototype.newEdge = function(vEdge) { - return new LEdge(null, null, vEdge); - }; - Layout2.prototype.checkLayoutSuccess = function() { - return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge(); - }; - Layout2.prototype.runLayout = function() { - this.isLayoutFinished = false; - if (this.tilingPreLayout) { - this.tilingPreLayout(); - } - this.initParameters(); - var isLayoutSuccessfull; - if (this.checkLayoutSuccess()) { - isLayoutSuccessfull = false; - } else { - isLayoutSuccessfull = this.layout(); - } - if (LayoutConstants.ANIMATE === "during") { - return false; - } - if (isLayoutSuccessfull) { - if (!this.isSubLayout) { - this.doPostLayout(); - } - } - if (this.tilingPostLayout) { - this.tilingPostLayout(); - } - this.isLayoutFinished = true; - return isLayoutSuccessfull; - }; - Layout2.prototype.doPostLayout = function() { - if (!this.incremental) { - this.transform(); - } - this.update(); - }; - Layout2.prototype.update2 = function() { - if (this.createBendsAsNeeded) { - this.createBendpointsFromDummyNodes(); - this.graphManager.resetAllEdges(); - } - if (!this.isRemoteUse) { - var edge; - var allEdges = this.graphManager.getAllEdges(); - for (var i = 0; i < allEdges.length; i++) { - edge = allEdges[i]; - } - var node; - var nodes2 = this.graphManager.getRoot().getNodes(); - for (var i = 0; i < nodes2.length; i++) { - node = nodes2[i]; - } - this.update(this.graphManager.getRoot()); - } - }; - Layout2.prototype.update = function(obj) { - if (obj == null) { - this.update2(); - } else if (obj instanceof LNode) { - var node = obj; - if (node.getChild() != null) { - var nodes2 = node.getChild().getNodes(); - for (var i = 0; i < nodes2.length; i++) { - update(nodes2[i]); - } - } - if (node.vGraphObject != null) { - var vNode = node.vGraphObject; - vNode.update(node); - } - } else if (obj instanceof LEdge) { - var edge = obj; - if (edge.vGraphObject != null) { - var vEdge = edge.vGraphObject; - vEdge.update(edge); - } - } else if (obj instanceof LGraph) { - var graph = obj; - if (graph.vGraphObject != null) { - var vGraph = graph.vGraphObject; - vGraph.update(graph); - } - } - }; - Layout2.prototype.initParameters = function() { - if (!this.isSubLayout) { - this.layoutQuality = LayoutConstants.QUALITY; - this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; - this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; - this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; - this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; - this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; - this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; - } - if (this.animationDuringLayout) { - this.animationOnLayout = false; - } - }; - Layout2.prototype.transform = function(newLeftTop) { - if (newLeftTop == void 0) { - this.transform(new PointD(0, 0)); - } else { - var trans = new Transform(); - var leftTop = this.graphManager.getRoot().updateLeftTop(); - if (leftTop != null) { - trans.setWorldOrgX(newLeftTop.x); - trans.setWorldOrgY(newLeftTop.y); - trans.setDeviceOrgX(leftTop.x); - trans.setDeviceOrgY(leftTop.y); - var nodes2 = this.getAllNodes(); - var node; - for (var i = 0; i < nodes2.length; i++) { - node = nodes2[i]; - node.transform(trans); - } - } - } - }; - Layout2.prototype.positionNodesRandomly = function(graph) { - if (graph == void 0) { - this.positionNodesRandomly(this.getGraphManager().getRoot()); - this.getGraphManager().getRoot().updateBounds(true); - } else { - var lNode; - var childGraph; - var nodes2 = graph.getNodes(); - for (var i = 0; i < nodes2.length; i++) { - lNode = nodes2[i]; - childGraph = lNode.getChild(); - if (childGraph == null) { - lNode.scatter(); - } else if (childGraph.getNodes().length == 0) { - lNode.scatter(); - } else { - this.positionNodesRandomly(childGraph); - lNode.updateBounds(); - } - } - } - }; - Layout2.prototype.getFlatForest = function() { - var flatForest = []; - var isForest = true; - var allNodes = this.graphManager.getRoot().getNodes(); - var isFlat = true; - for (var i = 0; i < allNodes.length; i++) { - if (allNodes[i].getChild() != null) { - isFlat = false; - } - } - if (!isFlat) { - return flatForest; - } - var visited = /* @__PURE__ */ new Set(); - var toBeVisited = []; - var parents = /* @__PURE__ */ new Map(); - var unProcessedNodes = []; - unProcessedNodes = unProcessedNodes.concat(allNodes); - while (unProcessedNodes.length > 0 && isForest) { - toBeVisited.push(unProcessedNodes[0]); - while (toBeVisited.length > 0 && isForest) { - var currentNode = toBeVisited[0]; - toBeVisited.splice(0, 1); - visited.add(currentNode); - var neighborEdges = currentNode.getEdges(); - for (var i = 0; i < neighborEdges.length; i++) { - var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode); - if (parents.get(currentNode) != currentNeighbor) { - if (!visited.has(currentNeighbor)) { - toBeVisited.push(currentNeighbor); - parents.set(currentNeighbor, currentNode); - } else { - isForest = false; - break; - } - } - } - } - if (!isForest) { - flatForest = []; - } else { - var temp = [].concat(_toConsumableArray(visited)); - flatForest.push(temp); - for (var i = 0; i < temp.length; i++) { - var value = temp[i]; - var index = unProcessedNodes.indexOf(value); - if (index > -1) { - unProcessedNodes.splice(index, 1); - } - } - visited = /* @__PURE__ */ new Set(); - parents = /* @__PURE__ */ new Map(); - } - } - return flatForest; - }; - Layout2.prototype.createDummyNodesForBendpoints = function(edge) { - var dummyNodes = []; - var prev = edge.source; - var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target); - for (var i = 0; i < edge.bendpoints.length; i++) { - var dummyNode = this.newNode(null); - dummyNode.setRect(new Point(0, 0), new Dimension(1, 1)); - graph.add(dummyNode); - var dummyEdge = this.newEdge(null); - this.graphManager.add(dummyEdge, prev, dummyNode); - dummyNodes.add(dummyNode); - prev = dummyNode; - } - var dummyEdge = this.newEdge(null); - this.graphManager.add(dummyEdge, prev, edge.target); - this.edgeToDummyNodes.set(edge, dummyNodes); - if (edge.isInterGraph()) { - this.graphManager.remove(edge); - } else { - graph.remove(edge); - } - return dummyNodes; - }; - Layout2.prototype.createBendpointsFromDummyNodes = function() { - var edges = []; - edges = edges.concat(this.graphManager.getAllEdges()); - edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges); - for (var k = 0; k < edges.length; k++) { - var lEdge = edges[k]; - if (lEdge.bendpoints.length > 0) { - var path = this.edgeToDummyNodes.get(lEdge); - for (var i = 0; i < path.length; i++) { - var dummyNode = path[i]; - var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY()); - var ebp = lEdge.bendpoints.get(i); - ebp.x = p.x; - ebp.y = p.y; - dummyNode.getOwner().remove(dummyNode); - } - this.graphManager.add(lEdge, lEdge.source, lEdge.target); - } - } - }; - Layout2.transform = function(sliderValue, defaultValue, minDiv, maxMul) { - if (minDiv != void 0 && maxMul != void 0) { - var value = defaultValue; - if (sliderValue <= 50) { - var minValue = defaultValue / minDiv; - value -= (defaultValue - minValue) / 50 * (50 - sliderValue); - } else { - var maxValue = defaultValue * maxMul; - value += (maxValue - defaultValue) / 50 * (sliderValue - 50); - } - return value; - } else { - var a, b; - if (sliderValue <= 50) { - a = 9 * defaultValue / 500; - b = defaultValue / 10; - } else { - a = 9 * defaultValue / 50; - b = -8 * defaultValue; - } - return a * sliderValue + b; - } - }; - Layout2.findCenterOfTree = function(nodes2) { - var list = []; - list = list.concat(nodes2); - var removedNodes = []; - var remainingDegrees = /* @__PURE__ */ new Map(); - var foundCenter = false; - var centerNode = null; - if (list.length == 1 || list.length == 2) { - foundCenter = true; - centerNode = list[0]; - } - for (var i = 0; i < list.length; i++) { - var node = list[i]; - var degree = node.getNeighborsList().size; - remainingDegrees.set(node, node.getNeighborsList().size); - if (degree == 1) { - removedNodes.push(node); - } - } - var tempList = []; - tempList = tempList.concat(removedNodes); - while (!foundCenter) { - var tempList2 = []; - tempList2 = tempList2.concat(tempList); - tempList = []; - for (var i = 0; i < list.length; i++) { - var node = list[i]; - var index = list.indexOf(node); - if (index >= 0) { - list.splice(index, 1); - } - var neighbours = node.getNeighborsList(); - neighbours.forEach(function(neighbour) { - if (removedNodes.indexOf(neighbour) < 0) { - var otherDegree = remainingDegrees.get(neighbour); - var newDegree = otherDegree - 1; - if (newDegree == 1) { - tempList.push(neighbour); - } - remainingDegrees.set(neighbour, newDegree); - } - }); - } - removedNodes = removedNodes.concat(tempList); - if (list.length == 1 || list.length == 2) { - foundCenter = true; - centerNode = list[0]; - } - } - return centerNode; - }; - Layout2.prototype.setGraphManager = function(gm) { - this.graphManager = gm; - }; - module2.exports = Layout2; - }, - /* 16 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function RandomSeed() { - } - RandomSeed.seed = 1; - RandomSeed.x = 0; - RandomSeed.nextDouble = function() { - RandomSeed.x = Math.sin(RandomSeed.seed++) * 1e4; - return RandomSeed.x - Math.floor(RandomSeed.x); - }; - module2.exports = RandomSeed; - }, - /* 17 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var PointD = __webpack_require__(4); - function Transform(x, y) { - this.lworldOrgX = 0; - this.lworldOrgY = 0; - this.ldeviceOrgX = 0; - this.ldeviceOrgY = 0; - this.lworldExtX = 1; - this.lworldExtY = 1; - this.ldeviceExtX = 1; - this.ldeviceExtY = 1; - } - Transform.prototype.getWorldOrgX = function() { - return this.lworldOrgX; - }; - Transform.prototype.setWorldOrgX = function(wox) { - this.lworldOrgX = wox; - }; - Transform.prototype.getWorldOrgY = function() { - return this.lworldOrgY; - }; - Transform.prototype.setWorldOrgY = function(woy) { - this.lworldOrgY = woy; - }; - Transform.prototype.getWorldExtX = function() { - return this.lworldExtX; - }; - Transform.prototype.setWorldExtX = function(wex) { - this.lworldExtX = wex; - }; - Transform.prototype.getWorldExtY = function() { - return this.lworldExtY; - }; - Transform.prototype.setWorldExtY = function(wey) { - this.lworldExtY = wey; - }; - Transform.prototype.getDeviceOrgX = function() { - return this.ldeviceOrgX; - }; - Transform.prototype.setDeviceOrgX = function(dox) { - this.ldeviceOrgX = dox; - }; - Transform.prototype.getDeviceOrgY = function() { - return this.ldeviceOrgY; - }; - Transform.prototype.setDeviceOrgY = function(doy) { - this.ldeviceOrgY = doy; - }; - Transform.prototype.getDeviceExtX = function() { - return this.ldeviceExtX; - }; - Transform.prototype.setDeviceExtX = function(dex) { - this.ldeviceExtX = dex; - }; - Transform.prototype.getDeviceExtY = function() { - return this.ldeviceExtY; - }; - Transform.prototype.setDeviceExtY = function(dey) { - this.ldeviceExtY = dey; - }; - Transform.prototype.transformX = function(x) { - var xDevice = 0; - var worldExtX = this.lworldExtX; - if (worldExtX != 0) { - xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX; - } - return xDevice; - }; - Transform.prototype.transformY = function(y) { - var yDevice = 0; - var worldExtY = this.lworldExtY; - if (worldExtY != 0) { - yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY; - } - return yDevice; - }; - Transform.prototype.inverseTransformX = function(x) { - var xWorld = 0; - var deviceExtX = this.ldeviceExtX; - if (deviceExtX != 0) { - xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX; - } - return xWorld; - }; - Transform.prototype.inverseTransformY = function(y) { - var yWorld = 0; - var deviceExtY = this.ldeviceExtY; - if (deviceExtY != 0) { - yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY; - } - return yWorld; - }; - Transform.prototype.inverseTransformPoint = function(inPoint) { - var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y)); - return outPoint; - }; - module2.exports = Transform; - }, - /* 18 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function _toConsumableArray(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 Layout2 = __webpack_require__(15); - var FDLayoutConstants = __webpack_require__(7); - var LayoutConstants = __webpack_require__(0); - var IGeometry = __webpack_require__(8); - var IMath = __webpack_require__(9); - function FDLayout() { - Layout2.call(this); - this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; - this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; - this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; - this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; - this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; - this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; - this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; - this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; - this.displacementThresholdPerNode = 3 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100; - this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; - this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; - this.totalDisplacement = 0; - this.oldTotalDisplacement = 0; - this.maxIterations = FDLayoutConstants.MAX_ITERATIONS; - } - FDLayout.prototype = Object.create(Layout2.prototype); - for (var prop in Layout2) { - FDLayout[prop] = Layout2[prop]; - } - FDLayout.prototype.initParameters = function() { - Layout2.prototype.initParameters.call(this, arguments); - this.totalIterations = 0; - this.notAnimatedIterations = 0; - this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION; - this.grid = []; - }; - FDLayout.prototype.calcIdealEdgeLengths = function() { - var edge; - var lcaDepth; - var source; - var target; - var sizeOfSourceInLca; - var sizeOfTargetInLca; - var allEdges = this.getGraphManager().getAllEdges(); - for (var i = 0; i < allEdges.length; i++) { - edge = allEdges[i]; - edge.idealLength = this.idealEdgeLength; - if (edge.isInterGraph) { - source = edge.getSource(); - target = edge.getTarget(); - sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize(); - sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize(); - if (this.useSmartIdealEdgeLengthCalculation) { - edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE; - } - lcaDepth = edge.getLca().getInclusionTreeDepth(); - edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth); - } - } - }; - FDLayout.prototype.initSpringEmbedder = function() { - var s = this.getAllNodes().length; - if (this.incremental) { - if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { - this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); - } - this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL; - } else { - if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { - this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); - } else { - this.coolingFactor = 1; - } - this.initialCoolingFactor = this.coolingFactor; - this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT; - } - this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations); - this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length; - this.repulsionRange = this.calcRepulsionRange(); - }; - FDLayout.prototype.calcSpringForces = function() { - var lEdges = this.getAllEdges(); - var edge; - for (var i = 0; i < lEdges.length; i++) { - edge = lEdges[i]; - this.calcSpringForce(edge, edge.idealLength); - } - }; - FDLayout.prototype.calcRepulsionForces = function() { - var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; - var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; - var i, j; - var nodeA, nodeB; - var lNodes = this.getAllNodes(); - var processedNodeSet; - if (this.useFRGridVariant) { - if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) { - this.updateGrid(); - } - processedNodeSet = /* @__PURE__ */ new Set(); - for (i = 0; i < lNodes.length; i++) { - nodeA = lNodes[i]; - this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate); - processedNodeSet.add(nodeA); - } - } else { - for (i = 0; i < lNodes.length; i++) { - nodeA = lNodes[i]; - for (j = i + 1; j < lNodes.length; j++) { - nodeB = lNodes[j]; - if (nodeA.getOwner() != nodeB.getOwner()) { - continue; - } - this.calcRepulsionForce(nodeA, nodeB); - } - } - } - }; - FDLayout.prototype.calcGravitationalForces = function() { - var node; - var lNodes = this.getAllNodesToApplyGravitation(); - for (var i = 0; i < lNodes.length; i++) { - node = lNodes[i]; - this.calcGravitationalForce(node); - } - }; - FDLayout.prototype.moveNodes = function() { - var lNodes = this.getAllNodes(); - var node; - for (var i = 0; i < lNodes.length; i++) { - node = lNodes[i]; - node.move(); - } - }; - FDLayout.prototype.calcSpringForce = function(edge, idealLength) { - var sourceNode = edge.getSource(); - var targetNode = edge.getTarget(); - var length; - var springForce; - var springForceX; - var springForceY; - if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) { - edge.updateLengthSimple(); - } else { - edge.updateLength(); - if (edge.isOverlapingSourceAndTarget) { - return; - } - } - length = edge.getLength(); - if (length == 0) - return; - springForce = this.springConstant * (length - idealLength); - springForceX = springForce * (edge.lengthX / length); - springForceY = springForce * (edge.lengthY / length); - sourceNode.springForceX += springForceX; - sourceNode.springForceY += springForceY; - targetNode.springForceX -= springForceX; - targetNode.springForceY -= springForceY; - }; - FDLayout.prototype.calcRepulsionForce = function(nodeA, nodeB) { - var rectA = nodeA.getRect(); - var rectB = nodeB.getRect(); - var overlapAmount = new Array(2); - var clipPoints = new Array(4); - var distanceX; - var distanceY; - var distanceSquared; - var distance; - var repulsionForce; - var repulsionForceX; - var repulsionForceY; - if (rectA.intersects(rectB)) { - IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2); - repulsionForceX = 2 * overlapAmount[0]; - repulsionForceY = 2 * overlapAmount[1]; - var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren); - nodeA.repulsionForceX -= childrenConstant * repulsionForceX; - nodeA.repulsionForceY -= childrenConstant * repulsionForceY; - nodeB.repulsionForceX += childrenConstant * repulsionForceX; - nodeB.repulsionForceY += childrenConstant * repulsionForceY; - } else { - if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) { - distanceX = rectB.getCenterX() - rectA.getCenterX(); - distanceY = rectB.getCenterY() - rectA.getCenterY(); - } else { - IGeometry.getIntersection(rectA, rectB, clipPoints); - distanceX = clipPoints[2] - clipPoints[0]; - distanceY = clipPoints[3] - clipPoints[1]; - } - if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) { - distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST; - } - if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) { - distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST; - } - distanceSquared = distanceX * distanceX + distanceY * distanceY; - distance = Math.sqrt(distanceSquared); - repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared; - repulsionForceX = repulsionForce * distanceX / distance; - repulsionForceY = repulsionForce * distanceY / distance; - nodeA.repulsionForceX -= repulsionForceX; - nodeA.repulsionForceY -= repulsionForceY; - nodeB.repulsionForceX += repulsionForceX; - nodeB.repulsionForceY += repulsionForceY; - } - }; - FDLayout.prototype.calcGravitationalForce = function(node) { - var ownerGraph; - var ownerCenterX; - var ownerCenterY; - var distanceX; - var distanceY; - var absDistanceX; - var absDistanceY; - var estimatedSize; - ownerGraph = node.getOwner(); - ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2; - ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2; - distanceX = node.getCenterX() - ownerCenterX; - distanceY = node.getCenterY() - ownerCenterY; - absDistanceX = Math.abs(distanceX) + node.getWidth() / 2; - absDistanceY = Math.abs(distanceY) + node.getHeight() / 2; - if (node.getOwner() == this.graphManager.getRoot()) { - estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor; - if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { - node.gravitationForceX = -this.gravityConstant * distanceX; - node.gravitationForceY = -this.gravityConstant * distanceY; - } - } else { - estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor; - if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { - node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant; - node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant; - } - } - }; - FDLayout.prototype.isConverged = function() { - var converged; - var oscilating = false; - if (this.totalIterations > this.maxIterations / 3) { - oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2; - } - converged = this.totalDisplacement < this.totalDisplacementThreshold; - this.oldTotalDisplacement = this.totalDisplacement; - return converged || oscilating; - }; - FDLayout.prototype.animate = function() { - if (this.animationDuringLayout && !this.isSubLayout) { - if (this.notAnimatedIterations == this.animationPeriod) { - this.update(); - this.notAnimatedIterations = 0; - } else { - this.notAnimatedIterations++; - } - } - }; - FDLayout.prototype.calcNoOfChildrenForAllNodes = function() { - var node; - var allNodes = this.graphManager.getAllNodes(); - for (var i = 0; i < allNodes.length; i++) { - node = allNodes[i]; - node.noOfChildren = node.getNoOfChildren(); - } - }; - FDLayout.prototype.calcGrid = function(graph) { - var sizeX = 0; - var sizeY = 0; - sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange)); - sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange)); - var grid = new Array(sizeX); - for (var i = 0; i < sizeX; i++) { - grid[i] = new Array(sizeY); - } - for (var i = 0; i < sizeX; i++) { - for (var j = 0; j < sizeY; j++) { - grid[i][j] = new Array(); - } - } - return grid; - }; - FDLayout.prototype.addNodeToGrid = function(v, left, top) { - var startX = 0; - var finishX = 0; - var startY = 0; - var finishY = 0; - startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange)); - finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange)); - startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange)); - finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange)); - for (var i = startX; i <= finishX; i++) { - for (var j = startY; j <= finishY; j++) { - this.grid[i][j].push(v); - v.setGridCoordinates(startX, finishX, startY, finishY); - } - } - }; - FDLayout.prototype.updateGrid = function() { - var i; - var nodeA; - var lNodes = this.getAllNodes(); - this.grid = this.calcGrid(this.graphManager.getRoot()); - for (i = 0; i < lNodes.length; i++) { - nodeA = lNodes[i]; - this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop()); - } - }; - FDLayout.prototype.calculateRepulsionForceOfANode = function(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) { - if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) { - var surrounding = /* @__PURE__ */ new Set(); - nodeA.surrounding = new Array(); - var nodeB; - var grid = this.grid; - for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) { - for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) { - if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) { - for (var k = 0; k < grid[i][j].length; k++) { - nodeB = grid[i][j][k]; - if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) { - continue; - } - if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) { - var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2); - var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2); - if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) { - surrounding.add(nodeB); - } - } - } - } - } - } - nodeA.surrounding = [].concat(_toConsumableArray(surrounding)); - } - for (i = 0; i < nodeA.surrounding.length; i++) { - this.calcRepulsionForce(nodeA, nodeA.surrounding[i]); - } - }; - FDLayout.prototype.calcRepulsionRange = function() { - return 0; - }; - module2.exports = FDLayout; - }, - /* 19 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LEdge = __webpack_require__(1); - var FDLayoutConstants = __webpack_require__(7); - function FDLayoutEdge(source, target, vEdge) { - LEdge.call(this, source, target, vEdge); - this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; - } - FDLayoutEdge.prototype = Object.create(LEdge.prototype); - for (var prop in LEdge) { - FDLayoutEdge[prop] = LEdge[prop]; - } - module2.exports = FDLayoutEdge; - }, - /* 20 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LNode = __webpack_require__(3); - function FDLayoutNode(gm, loc, size, vNode) { - LNode.call(this, gm, loc, size, vNode); - this.springForceX = 0; - this.springForceY = 0; - this.repulsionForceX = 0; - this.repulsionForceY = 0; - this.gravitationForceX = 0; - this.gravitationForceY = 0; - this.displacementX = 0; - this.displacementY = 0; - this.startX = 0; - this.finishX = 0; - this.startY = 0; - this.finishY = 0; - this.surrounding = []; - } - FDLayoutNode.prototype = Object.create(LNode.prototype); - for (var prop in LNode) { - FDLayoutNode[prop] = LNode[prop]; - } - FDLayoutNode.prototype.setGridCoordinates = function(_startX, _finishX, _startY, _finishY) { - this.startX = _startX; - this.finishX = _finishX; - this.startY = _startY; - this.finishY = _finishY; - }; - module2.exports = FDLayoutNode; - }, - /* 21 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function DimensionD2(width, height) { - this.width = 0; - this.height = 0; - if (width !== null && height !== null) { - this.height = height; - this.width = width; - } - } - DimensionD2.prototype.getWidth = function() { - return this.width; - }; - DimensionD2.prototype.setWidth = function(width) { - this.width = width; - }; - DimensionD2.prototype.getHeight = function() { - return this.height; - }; - DimensionD2.prototype.setHeight = function(height) { - this.height = height; - }; - module2.exports = DimensionD2; - }, - /* 22 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var UniqueIDGeneretor = __webpack_require__(14); - function HashMap() { - this.map = {}; - this.keys = []; - } - HashMap.prototype.put = function(key, value) { - var theId = UniqueIDGeneretor.createID(key); - if (!this.contains(theId)) { - this.map[theId] = value; - this.keys.push(key); - } - }; - HashMap.prototype.contains = function(key) { - var theId = UniqueIDGeneretor.createID(key); - return this.map[key] != null; - }; - HashMap.prototype.get = function(key) { - var theId = UniqueIDGeneretor.createID(key); - return this.map[theId]; - }; - HashMap.prototype.keySet = function() { - return this.keys; - }; - module2.exports = HashMap; - }, - /* 23 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var UniqueIDGeneretor = __webpack_require__(14); - function HashSet() { - this.set = {}; - } - ; - HashSet.prototype.add = function(obj) { - var theId = UniqueIDGeneretor.createID(obj); - if (!this.contains(theId)) - this.set[theId] = obj; - }; - HashSet.prototype.remove = function(obj) { - delete this.set[UniqueIDGeneretor.createID(obj)]; - }; - HashSet.prototype.clear = function() { - this.set = {}; - }; - HashSet.prototype.contains = function(obj) { - return this.set[UniqueIDGeneretor.createID(obj)] == obj; - }; - HashSet.prototype.isEmpty = function() { - return this.size() === 0; - }; - HashSet.prototype.size = function() { - return Object.keys(this.set).length; - }; - HashSet.prototype.addAllTo = function(list) { - var keys = Object.keys(this.set); - var length = keys.length; - for (var i = 0; i < length; i++) { - list.push(this.set[keys[i]]); - } - }; - HashSet.prototype.size = function() { - return Object.keys(this.set).length; - }; - HashSet.prototype.addAll = function(list) { - var s = list.length; - for (var i = 0; i < s; i++) { - var v = list[i]; - this.add(v); - } - }; - module2.exports = HashSet; - }, - /* 24 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var _createClass = /* @__PURE__ */ function() { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - return function(Constructor, protoProps, staticProps) { - if (protoProps) - defineProperties(Constructor.prototype, protoProps); - if (staticProps) - defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - function _classCallCheck(instance2, Constructor) { - if (!(instance2 instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - var LinkedList = __webpack_require__(11); - var Quicksort = function() { - function Quicksort2(A, compareFunction) { - _classCallCheck(this, Quicksort2); - if (compareFunction !== null || compareFunction !== void 0) - this.compareFunction = this._defaultCompareFunction; - var length = void 0; - if (A instanceof LinkedList) - length = A.size(); - else - length = A.length; - this._quicksort(A, 0, length - 1); - } - _createClass(Quicksort2, [{ - key: "_quicksort", - value: function _quicksort(A, p, r) { - if (p < r) { - var q = this._partition(A, p, r); - this._quicksort(A, p, q); - this._quicksort(A, q + 1, r); - } - } - }, { - key: "_partition", - value: function _partition(A, p, r) { - var x = this._get(A, p); - var i = p; - var j = r; - while (true) { - while (this.compareFunction(x, this._get(A, j))) { - j--; - } - while (this.compareFunction(this._get(A, i), x)) { - i++; - } - if (i < j) { - this._swap(A, i, j); - i++; - j--; - } else - return j; - } - } - }, { - key: "_get", - value: function _get(object, index) { - if (object instanceof LinkedList) - return object.get_object_at(index); - else - return object[index]; - } - }, { - key: "_set", - value: function _set(object, index, value) { - if (object instanceof LinkedList) - object.set_object_at(index, value); - else - object[index] = value; - } - }, { - key: "_swap", - value: function _swap(A, i, j) { - var temp = this._get(A, i); - this._set(A, i, this._get(A, j)); - this._set(A, j, temp); - } - }, { - key: "_defaultCompareFunction", - value: function _defaultCompareFunction(a, b) { - return b > a; - } - }]); - return Quicksort2; - }(); - module2.exports = Quicksort; - }, - /* 25 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var _createClass = /* @__PURE__ */ function() { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) - descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - return function(Constructor, protoProps, staticProps) { - if (protoProps) - defineProperties(Constructor.prototype, protoProps); - if (staticProps) - defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - function _classCallCheck(instance2, Constructor) { - if (!(instance2 instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - var NeedlemanWunsch = function() { - function NeedlemanWunsch2(sequence1, sequence2) { - var match_score = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1; - var mismatch_penalty = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1; - var gap_penalty = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1; - _classCallCheck(this, NeedlemanWunsch2); - this.sequence1 = sequence1; - this.sequence2 = sequence2; - this.match_score = match_score; - this.mismatch_penalty = mismatch_penalty; - this.gap_penalty = gap_penalty; - this.iMax = sequence1.length + 1; - this.jMax = sequence2.length + 1; - this.grid = new Array(this.iMax); - for (var i = 0; i < this.iMax; i++) { - this.grid[i] = new Array(this.jMax); - for (var j = 0; j < this.jMax; j++) { - this.grid[i][j] = 0; - } - } - this.tracebackGrid = new Array(this.iMax); - for (var _i = 0; _i < this.iMax; _i++) { - this.tracebackGrid[_i] = new Array(this.jMax); - for (var _j = 0; _j < this.jMax; _j++) { - this.tracebackGrid[_i][_j] = [null, null, null]; - } - } - this.alignments = []; - this.score = -1; - this.computeGrids(); - } - _createClass(NeedlemanWunsch2, [{ - key: "getScore", - value: function getScore() { - return this.score; - } - }, { - key: "getAlignments", - value: function getAlignments() { - return this.alignments; - } - // Main dynamic programming procedure - }, { - key: "computeGrids", - value: function computeGrids() { - for (var j = 1; j < this.jMax; j++) { - this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty; - this.tracebackGrid[0][j] = [false, false, true]; - } - for (var i = 1; i < this.iMax; i++) { - this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty; - this.tracebackGrid[i][0] = [false, true, false]; - } - for (var _i2 = 1; _i2 < this.iMax; _i2++) { - for (var _j2 = 1; _j2 < this.jMax; _j2++) { - var diag = void 0; - if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) - diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score; - else - diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty; - var up = this.grid[_i2 - 1][_j2] + this.gap_penalty; - var left = this.grid[_i2][_j2 - 1] + this.gap_penalty; - var maxOf = [diag, up, left]; - var indices = this.arrayAllMaxIndexes(maxOf); - this.grid[_i2][_j2] = maxOf[indices[0]]; - this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)]; - } - } - this.score = this.grid[this.iMax - 1][this.jMax - 1]; - } - // Gets all possible valid sequence combinations - }, { - key: "alignmentTraceback", - value: function alignmentTraceback() { - var inProcessAlignments = []; - inProcessAlignments.push({ - pos: [this.sequence1.length, this.sequence2.length], - seq1: "", - seq2: "" - }); - while (inProcessAlignments[0]) { - var current = inProcessAlignments[0]; - var directions = this.tracebackGrid[current.pos[0]][current.pos[1]]; - if (directions[0]) { - inProcessAlignments.push({ - pos: [current.pos[0] - 1, current.pos[1] - 1], - seq1: this.sequence1[current.pos[0] - 1] + current.seq1, - seq2: this.sequence2[current.pos[1] - 1] + current.seq2 - }); - } - if (directions[1]) { - inProcessAlignments.push({ - pos: [current.pos[0] - 1, current.pos[1]], - seq1: this.sequence1[current.pos[0] - 1] + current.seq1, - seq2: "-" + current.seq2 - }); - } - if (directions[2]) { - inProcessAlignments.push({ - pos: [current.pos[0], current.pos[1] - 1], - seq1: "-" + current.seq1, - seq2: this.sequence2[current.pos[1] - 1] + current.seq2 - }); - } - if (current.pos[0] === 0 && current.pos[1] === 0) - this.alignments.push({ - sequence1: current.seq1, - sequence2: current.seq2 - }); - inProcessAlignments.shift(); - } - return this.alignments; - } - // Helper Functions - }, { - key: "getAllIndexes", - value: function getAllIndexes(arr, val) { - var indexes = [], i = -1; - while ((i = arr.indexOf(val, i + 1)) !== -1) { - indexes.push(i); - } - return indexes; - } - }, { - key: "arrayAllMaxIndexes", - value: function arrayAllMaxIndexes(array) { - return this.getAllIndexes(array, Math.max.apply(null, array)); - } - }]); - return NeedlemanWunsch2; - }(); - module2.exports = NeedlemanWunsch; - }, - /* 26 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var layoutBase = function layoutBase2() { - return; - }; - layoutBase.FDLayout = __webpack_require__(18); - layoutBase.FDLayoutConstants = __webpack_require__(7); - layoutBase.FDLayoutEdge = __webpack_require__(19); - layoutBase.FDLayoutNode = __webpack_require__(20); - layoutBase.DimensionD = __webpack_require__(21); - layoutBase.HashMap = __webpack_require__(22); - layoutBase.HashSet = __webpack_require__(23); - layoutBase.IGeometry = __webpack_require__(8); - layoutBase.IMath = __webpack_require__(9); - layoutBase.Integer = __webpack_require__(10); - layoutBase.Point = __webpack_require__(12); - layoutBase.PointD = __webpack_require__(4); - layoutBase.RandomSeed = __webpack_require__(16); - layoutBase.RectangleD = __webpack_require__(13); - layoutBase.Transform = __webpack_require__(17); - layoutBase.UniqueIDGeneretor = __webpack_require__(14); - layoutBase.Quicksort = __webpack_require__(24); - layoutBase.LinkedList = __webpack_require__(11); - layoutBase.LGraphObject = __webpack_require__(2); - layoutBase.LGraph = __webpack_require__(5); - layoutBase.LEdge = __webpack_require__(1); - layoutBase.LGraphManager = __webpack_require__(6); - layoutBase.LNode = __webpack_require__(3); - layoutBase.Layout = __webpack_require__(15); - layoutBase.LayoutConstants = __webpack_require__(0); - layoutBase.NeedlemanWunsch = __webpack_require__(25); - module2.exports = layoutBase; - }, - /* 27 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - function Emitter() { - this.listeners = []; - } - var p = Emitter.prototype; - p.addListener = function(event, callback) { - this.listeners.push({ - event, - callback - }); - }; - p.removeListener = function(event, callback) { - for (var i = this.listeners.length; i >= 0; i--) { - var l = this.listeners[i]; - if (l.event === event && l.callback === callback) { - this.listeners.splice(i, 1); - } - } - }; - p.emit = function(event, data) { - for (var i = 0; i < this.listeners.length; i++) { - var l = this.listeners[i]; - if (event === l.event) { - l.callback(data); - } - } - }; - module2.exports = Emitter; - } - /******/ - ]) - ); - }); - } -}); - -// node_modules/cose-base/cose-base.js -var require_cose_base = __commonJS({ - "node_modules/cose-base/cose-base.js"(exports, module) { - (function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports === "object" && typeof module === "object") - module.exports = factory(require_layout_base()); - else if (typeof define === "function" && define.amd) - define(["layout-base"], factory); - else if (typeof exports === "object") - exports["coseBase"] = factory(require_layout_base()); - else - root["coseBase"] = factory(root["layoutBase"]); - })(exports, function(__WEBPACK_EXTERNAL_MODULE_0__) { - return ( - /******/ - function(modules) { - var installedModules = {}; - function __webpack_require__(moduleId) { - if (installedModules[moduleId]) { - return installedModules[moduleId].exports; - } - var module2 = installedModules[moduleId] = { - /******/ - i: moduleId, - /******/ - l: false, - /******/ - exports: {} - /******/ - }; - modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__); - module2.l = true; - return module2.exports; - } - __webpack_require__.m = modules; - __webpack_require__.c = installedModules; - __webpack_require__.i = function(value) { - return value; - }; - __webpack_require__.d = function(exports2, name2, getter) { - if (!__webpack_require__.o(exports2, name2)) { - Object.defineProperty(exports2, name2, { - /******/ - configurable: false, - /******/ - enumerable: true, - /******/ - get: getter - /******/ - }); - } - }; - __webpack_require__.n = function(module2) { - var getter = module2 && module2.__esModule ? ( - /******/ - function getDefault() { - return module2["default"]; - } - ) : ( - /******/ - function getModuleExports() { - return module2; - } - ); - __webpack_require__.d(getter, "a", getter); - return getter; - }; - __webpack_require__.o = function(object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - __webpack_require__.p = ""; - return __webpack_require__(__webpack_require__.s = 7); - }([ - /* 0 */ - /***/ - function(module2, exports2) { - module2.exports = __WEBPACK_EXTERNAL_MODULE_0__; - }, - /* 1 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants; - function CoSEConstants() { - } - for (var prop in FDLayoutConstants) { - CoSEConstants[prop] = FDLayoutConstants[prop]; - } - CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false; - CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH; - CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60; - CoSEConstants.TILE = true; - CoSEConstants.TILING_PADDING_VERTICAL = 10; - CoSEConstants.TILING_PADDING_HORIZONTAL = 10; - CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; - module2.exports = CoSEConstants; - }, - /* 2 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var FDLayoutEdge = __webpack_require__(0).FDLayoutEdge; - function CoSEEdge(source, target, vEdge) { - FDLayoutEdge.call(this, source, target, vEdge); - } - CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype); - for (var prop in FDLayoutEdge) { - CoSEEdge[prop] = FDLayoutEdge[prop]; - } - module2.exports = CoSEEdge; - }, - /* 3 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LGraph = __webpack_require__(0).LGraph; - function CoSEGraph(parent, graphMgr, vGraph) { - LGraph.call(this, parent, graphMgr, vGraph); - } - CoSEGraph.prototype = Object.create(LGraph.prototype); - for (var prop in LGraph) { - CoSEGraph[prop] = LGraph[prop]; - } - module2.exports = CoSEGraph; - }, - /* 4 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LGraphManager = __webpack_require__(0).LGraphManager; - function CoSEGraphManager(layout) { - LGraphManager.call(this, layout); - } - CoSEGraphManager.prototype = Object.create(LGraphManager.prototype); - for (var prop in LGraphManager) { - CoSEGraphManager[prop] = LGraphManager[prop]; - } - module2.exports = CoSEGraphManager; - }, - /* 5 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var FDLayoutNode = __webpack_require__(0).FDLayoutNode; - var IMath = __webpack_require__(0).IMath; - function CoSENode(gm, loc, size, vNode) { - FDLayoutNode.call(this, gm, loc, size, vNode); - } - CoSENode.prototype = Object.create(FDLayoutNode.prototype); - for (var prop in FDLayoutNode) { - CoSENode[prop] = FDLayoutNode[prop]; - } - CoSENode.prototype.move = function() { - var layout = this.graphManager.getLayout(); - this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren; - this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren; - if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) { - this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX); - } - if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) { - this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY); - } - if (this.child == null) { - this.moveBy(this.displacementX, this.displacementY); - } else if (this.child.getNodes().length == 0) { - this.moveBy(this.displacementX, this.displacementY); - } else { - this.propogateDisplacementToChildren(this.displacementX, this.displacementY); - } - layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY); - this.springForceX = 0; - this.springForceY = 0; - this.repulsionForceX = 0; - this.repulsionForceY = 0; - this.gravitationForceX = 0; - this.gravitationForceY = 0; - this.displacementX = 0; - this.displacementY = 0; - }; - CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) { - var nodes2 = this.getChild().getNodes(); - var node; - for (var i = 0; i < nodes2.length; i++) { - node = nodes2[i]; - if (node.getChild() == null) { - node.moveBy(dX, dY); - node.displacementX += dX; - node.displacementY += dY; - } else { - node.propogateDisplacementToChildren(dX, dY); - } - } - }; - CoSENode.prototype.setPred1 = function(pred12) { - this.pred1 = pred12; - }; - CoSENode.prototype.getPred1 = function() { - return pred1; - }; - CoSENode.prototype.getPred2 = function() { - return pred2; - }; - CoSENode.prototype.setNext = function(next2) { - this.next = next2; - }; - CoSENode.prototype.getNext = function() { - return next; - }; - CoSENode.prototype.setProcessed = function(processed2) { - this.processed = processed2; - }; - CoSENode.prototype.isProcessed = function() { - return processed; - }; - module2.exports = CoSENode; - }, - /* 6 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var FDLayout = __webpack_require__(0).FDLayout; - var CoSEGraphManager = __webpack_require__(4); - var CoSEGraph = __webpack_require__(3); - var CoSENode = __webpack_require__(5); - var CoSEEdge = __webpack_require__(2); - var CoSEConstants = __webpack_require__(1); - var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants; - var LayoutConstants = __webpack_require__(0).LayoutConstants; - var Point2 = __webpack_require__(0).Point; - var PointD = __webpack_require__(0).PointD; - var Layout2 = __webpack_require__(0).Layout; - var Integer = __webpack_require__(0).Integer; - var IGeometry = __webpack_require__(0).IGeometry; - var LGraph = __webpack_require__(0).LGraph; - var Transform = __webpack_require__(0).Transform; - function CoSELayout() { - FDLayout.call(this); - this.toBeTiled = {}; - } - CoSELayout.prototype = Object.create(FDLayout.prototype); - for (var prop in FDLayout) { - CoSELayout[prop] = FDLayout[prop]; - } - CoSELayout.prototype.newGraphManager = function() { - var gm = new CoSEGraphManager(this); - this.graphManager = gm; - return gm; - }; - CoSELayout.prototype.newGraph = function(vGraph) { - return new CoSEGraph(null, this.graphManager, vGraph); - }; - CoSELayout.prototype.newNode = function(vNode) { - return new CoSENode(this.graphManager, vNode); - }; - CoSELayout.prototype.newEdge = function(vEdge) { - return new CoSEEdge(null, null, vEdge); - }; - CoSELayout.prototype.initParameters = function() { - FDLayout.prototype.initParameters.call(this, arguments); - if (!this.isSubLayout) { - if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) { - this.idealEdgeLength = 10; - } else { - this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH; - } - this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; - this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; - this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; - this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; - this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; - this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; - this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; - this.prunedNodesAll = []; - this.growTreeIterations = 0; - this.afterGrowthIterations = 0; - this.isTreeGrowing = false; - this.isGrowthFinished = false; - this.coolingCycle = 0; - this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD; - this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations; - this.coolingAdjuster = 1; - } - }; - CoSELayout.prototype.layout = function() { - var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; - if (createBendsAsNeeded) { - this.createBendpoints(); - this.graphManager.resetAllEdges(); - } - this.level = 0; - return this.classicLayout(); - }; - CoSELayout.prototype.classicLayout = function() { - this.nodesWithGravity = this.calculateNodesToApplyGravitationTo(); - this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity); - this.calcNoOfChildrenForAllNodes(); - this.graphManager.calcLowestCommonAncestors(); - this.graphManager.calcInclusionTreeDepths(); - this.graphManager.getRoot().calcEstimatedSize(); - this.calcIdealEdgeLengths(); - if (!this.incremental) { - var forest = this.getFlatForest(); - if (forest.length > 0) { - this.positionNodesRadially(forest); - } else { - this.reduceTrees(); - this.graphManager.resetAllNodesToApplyGravitation(); - var allNodes = new Set(this.getAllNodes()); - var intersection = this.nodesWithGravity.filter(function(x) { - return allNodes.has(x); - }); - this.graphManager.setAllNodesToApplyGravitation(intersection); - this.positionNodesRandomly(); - } - } else { - if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) { - this.reduceTrees(); - this.graphManager.resetAllNodesToApplyGravitation(); - var allNodes = new Set(this.getAllNodes()); - var intersection = this.nodesWithGravity.filter(function(x) { - return allNodes.has(x); - }); - this.graphManager.setAllNodesToApplyGravitation(intersection); - } - } - this.initSpringEmbedder(); - this.runSpringEmbedder(); - return true; - }; - CoSELayout.prototype.tick = function() { - this.totalIterations++; - if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) { - if (this.prunedNodesAll.length > 0) { - this.isTreeGrowing = true; - } else { - return true; - } - } - if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) { - if (this.isConverged()) { - if (this.prunedNodesAll.length > 0) { - this.isTreeGrowing = true; - } else { - return true; - } - } - this.coolingCycle++; - if (this.layoutQuality == 0) { - this.coolingAdjuster = this.coolingCycle; - } else if (this.layoutQuality == 1) { - this.coolingAdjuster = this.coolingCycle / 3; - } - this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature); - this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor)); - } - if (this.isTreeGrowing) { - if (this.growTreeIterations % 10 == 0) { - if (this.prunedNodesAll.length > 0) { - this.graphManager.updateBounds(); - this.updateGrid(); - this.growTree(this.prunedNodesAll); - this.graphManager.resetAllNodesToApplyGravitation(); - var allNodes = new Set(this.getAllNodes()); - var intersection = this.nodesWithGravity.filter(function(x) { - return allNodes.has(x); - }); - this.graphManager.setAllNodesToApplyGravitation(intersection); - this.graphManager.updateBounds(); - this.updateGrid(); - this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; - } else { - this.isTreeGrowing = false; - this.isGrowthFinished = true; - } - } - this.growTreeIterations++; - } - if (this.isGrowthFinished) { - if (this.isConverged()) { - return true; - } - if (this.afterGrowthIterations % 10 == 0) { - this.graphManager.updateBounds(); - this.updateGrid(); - } - this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100); - this.afterGrowthIterations++; - } - var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished; - var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished; - this.totalDisplacement = 0; - this.graphManager.updateBounds(); - this.calcSpringForces(); - this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate); - this.calcGravitationalForces(); - this.moveNodes(); - this.animate(); - return false; - }; - CoSELayout.prototype.getPositionsData = function() { - var allNodes = this.graphManager.getAllNodes(); - var pData = {}; - for (var i = 0; i < allNodes.length; i++) { - var rect = allNodes[i].rect; - var id = allNodes[i].id; - pData[id] = { - id, - x: rect.getCenterX(), - y: rect.getCenterY(), - w: rect.width, - h: rect.height - }; - } - return pData; - }; - CoSELayout.prototype.runSpringEmbedder = function() { - this.initialAnimationPeriod = 25; - this.animationPeriod = this.initialAnimationPeriod; - var layoutEnded = false; - if (FDLayoutConstants.ANIMATE === "during") { - this.emit("layoutstarted"); - } else { - while (!layoutEnded) { - layoutEnded = this.tick(); - } - this.graphManager.updateBounds(); - } - }; - CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() { - var nodeList = []; - var graph; - var graphs = this.graphManager.getGraphs(); - var size = graphs.length; - var i; - for (i = 0; i < size; i++) { - graph = graphs[i]; - graph.updateConnected(); - if (!graph.isConnected) { - nodeList = nodeList.concat(graph.getNodes()); - } - } - return nodeList; - }; - CoSELayout.prototype.createBendpoints = function() { - var edges = []; - edges = edges.concat(this.graphManager.getAllEdges()); - var visited = /* @__PURE__ */ new Set(); - var i; - for (i = 0; i < edges.length; i++) { - var edge = edges[i]; - if (!visited.has(edge)) { - var source = edge.getSource(); - var target = edge.getTarget(); - if (source == target) { - edge.getBendpoints().push(new PointD()); - edge.getBendpoints().push(new PointD()); - this.createDummyNodesForBendpoints(edge); - visited.add(edge); - } else { - var edgeList = []; - edgeList = edgeList.concat(source.getEdgeListToNode(target)); - edgeList = edgeList.concat(target.getEdgeListToNode(source)); - if (!visited.has(edgeList[0])) { - if (edgeList.length > 1) { - var k; - for (k = 0; k < edgeList.length; k++) { - var multiEdge = edgeList[k]; - multiEdge.getBendpoints().push(new PointD()); - this.createDummyNodesForBendpoints(multiEdge); - } - } - edgeList.forEach(function(edge2) { - visited.add(edge2); - }); - } - } - } - if (visited.size == edges.length) { - break; - } - } - }; - CoSELayout.prototype.positionNodesRadially = function(forest) { - var currentStartingPoint = new Point2(0, 0); - var numberOfColumns = Math.ceil(Math.sqrt(forest.length)); - var height = 0; - var currentY = 0; - var currentX = 0; - var point = new PointD(0, 0); - for (var i = 0; i < forest.length; i++) { - if (i % numberOfColumns == 0) { - currentX = 0; - currentY = height; - if (i != 0) { - currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION; - } - height = 0; - } - var tree = forest[i]; - var centerNode = Layout2.findCenterOfTree(tree); - currentStartingPoint.x = currentX; - currentStartingPoint.y = currentY; - point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint); - if (point.y > height) { - height = Math.floor(point.y); - } - currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION); - } - this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2)); - }; - CoSELayout.radialLayout = function(tree, centerNode, startingPoint) { - var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION); - CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep); - var bounds = LGraph.calculateBounds(tree); - var transform = new Transform(); - transform.setDeviceOrgX(bounds.getMinX()); - transform.setDeviceOrgY(bounds.getMinY()); - transform.setWorldOrgX(startingPoint.x); - transform.setWorldOrgY(startingPoint.y); - for (var i = 0; i < tree.length; i++) { - var node = tree[i]; - node.transform(transform); - } - var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY()); - return transform.inverseTransformPoint(bottomRight); - }; - CoSELayout.branchRadialLayout = function(node, parentOfNode, startAngle, endAngle, distance, radialSeparation) { - var halfInterval = (endAngle - startAngle + 1) / 2; - if (halfInterval < 0) { - halfInterval += 180; - } - var nodeAngle = (halfInterval + startAngle) % 360; - var teta = nodeAngle * IGeometry.TWO_PI / 360; - var cos_teta = Math.cos(teta); - var x_ = distance * Math.cos(teta); - var y_ = distance * Math.sin(teta); - node.setCenter(x_, y_); - var neighborEdges = []; - neighborEdges = neighborEdges.concat(node.getEdges()); - var childCount = neighborEdges.length; - if (parentOfNode != null) { - childCount--; - } - var branchCount = 0; - var incEdgesCount = neighborEdges.length; - var startIndex; - var edges = node.getEdgesBetween(parentOfNode); - while (edges.length > 1) { - var temp = edges[0]; - edges.splice(0, 1); - var index = neighborEdges.indexOf(temp); - if (index >= 0) { - neighborEdges.splice(index, 1); - } - incEdgesCount--; - childCount--; - } - if (parentOfNode != null) { - startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount; - } else { - startIndex = 0; - } - var stepAngle = Math.abs(endAngle - startAngle) / childCount; - for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) { - var currentNeighbor = neighborEdges[i].getOtherEnd(node); - if (currentNeighbor == parentOfNode) { - continue; - } - var childStartAngle = (startAngle + branchCount * stepAngle) % 360; - var childEndAngle = (childStartAngle + stepAngle) % 360; - CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation); - branchCount++; - } - }; - CoSELayout.maxDiagonalInTree = function(tree) { - var maxDiagonal = Integer.MIN_VALUE; - for (var i = 0; i < tree.length; i++) { - var node = tree[i]; - var diagonal = node.getDiagonal(); - if (diagonal > maxDiagonal) { - maxDiagonal = diagonal; - } - } - return maxDiagonal; - }; - CoSELayout.prototype.calcRepulsionRange = function() { - return 2 * (this.level + 1) * this.idealEdgeLength; - }; - CoSELayout.prototype.groupZeroDegreeMembers = function() { - var self2 = this; - var tempMemberGroups = {}; - this.memberGroups = {}; - this.idToDummyNode = {}; - var zeroDegree = []; - var allNodes = this.graphManager.getAllNodes(); - for (var i = 0; i < allNodes.length; i++) { - var node = allNodes[i]; - var parent = node.getParent(); - if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == void 0 || !this.getToBeTiled(parent))) { - zeroDegree.push(node); - } - } - for (var i = 0; i < zeroDegree.length; i++) { - var node = zeroDegree[i]; - var p_id = node.getParent().id; - if (typeof tempMemberGroups[p_id] === "undefined") - tempMemberGroups[p_id] = []; - tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); - } - Object.keys(tempMemberGroups).forEach(function(p_id2) { - if (tempMemberGroups[p_id2].length > 1) { - var dummyCompoundId = "DummyCompound_" + p_id2; - self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2]; - var parent2 = tempMemberGroups[p_id2][0].getParent(); - var dummyCompound = new CoSENode(self2.graphManager); - dummyCompound.id = dummyCompoundId; - dummyCompound.paddingLeft = parent2.paddingLeft || 0; - dummyCompound.paddingRight = parent2.paddingRight || 0; - dummyCompound.paddingBottom = parent2.paddingBottom || 0; - dummyCompound.paddingTop = parent2.paddingTop || 0; - self2.idToDummyNode[dummyCompoundId] = dummyCompound; - var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound); - var parentGraph = parent2.getChild(); - parentGraph.add(dummyCompound); - for (var i2 = 0; i2 < tempMemberGroups[p_id2].length; i2++) { - var node2 = tempMemberGroups[p_id2][i2]; - parentGraph.remove(node2); - dummyParentGraph.add(node2); - } - } - }); - }; - CoSELayout.prototype.clearCompounds = function() { - var childGraphMap = {}; - var idToNode = {}; - this.performDFSOnCompounds(); - for (var i = 0; i < this.compoundOrder.length; i++) { - idToNode[this.compoundOrder[i].id] = this.compoundOrder[i]; - childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes()); - this.graphManager.remove(this.compoundOrder[i].getChild()); - this.compoundOrder[i].child = null; - } - this.graphManager.resetAllNodes(); - this.tileCompoundMembers(childGraphMap, idToNode); - }; - CoSELayout.prototype.clearZeroDegreeMembers = function() { - var self2 = this; - var tiledZeroDegreePack = this.tiledZeroDegreePack = []; - Object.keys(this.memberGroups).forEach(function(id) { - var compoundNode = self2.idToDummyNode[id]; - tiledZeroDegreePack[id] = self2.tileNodes(self2.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight); - compoundNode.rect.width = tiledZeroDegreePack[id].width; - compoundNode.rect.height = tiledZeroDegreePack[id].height; - }); - }; - CoSELayout.prototype.repopulateCompounds = function() { - for (var i = this.compoundOrder.length - 1; i >= 0; i--) { - var lCompoundNode = this.compoundOrder[i]; - var id = lCompoundNode.id; - var horizontalMargin = lCompoundNode.paddingLeft; - var verticalMargin = lCompoundNode.paddingTop; - this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin); - } - }; - CoSELayout.prototype.repopulateZeroDegreeMembers = function() { - var self2 = this; - var tiledPack = this.tiledZeroDegreePack; - Object.keys(tiledPack).forEach(function(id) { - var compoundNode = self2.idToDummyNode[id]; - var horizontalMargin = compoundNode.paddingLeft; - var verticalMargin = compoundNode.paddingTop; - self2.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin); - }); - }; - CoSELayout.prototype.getToBeTiled = function(node) { - var id = node.id; - if (this.toBeTiled[id] != null) { - return this.toBeTiled[id]; - } - var childGraph = node.getChild(); - if (childGraph == null) { - this.toBeTiled[id] = false; - return false; - } - var children = childGraph.getNodes(); - for (var i = 0; i < children.length; i++) { - var theChild = children[i]; - if (this.getNodeDegree(theChild) > 0) { - this.toBeTiled[id] = false; - return false; - } - if (theChild.getChild() == null) { - this.toBeTiled[theChild.id] = false; - continue; - } - if (!this.getToBeTiled(theChild)) { - this.toBeTiled[id] = false; - return false; - } - } - this.toBeTiled[id] = true; - return true; - }; - CoSELayout.prototype.getNodeDegree = function(node) { - var id = node.id; - var edges = node.getEdges(); - var degree = 0; - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; - if (edge.getSource().id !== edge.getTarget().id) { - degree = degree + 1; - } - } - return degree; - }; - CoSELayout.prototype.getNodeDegreeWithChildren = function(node) { - var degree = this.getNodeDegree(node); - if (node.getChild() == null) { - return degree; - } - var children = node.getChild().getNodes(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; - degree += this.getNodeDegreeWithChildren(child); - } - return degree; - }; - CoSELayout.prototype.performDFSOnCompounds = function() { - this.compoundOrder = []; - this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes()); - }; - CoSELayout.prototype.fillCompexOrderByDFS = function(children) { - for (var i = 0; i < children.length; i++) { - var child = children[i]; - if (child.getChild() != null) { - this.fillCompexOrderByDFS(child.getChild().getNodes()); - } - if (this.getToBeTiled(child)) { - this.compoundOrder.push(child); - } - } - }; - CoSELayout.prototype.adjustLocations = function(organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) { - x += compoundHorizontalMargin; - y += compoundVerticalMargin; - var left = x; - for (var i = 0; i < organization.rows.length; i++) { - var row = organization.rows[i]; - x = left; - var maxHeight = 0; - for (var j = 0; j < row.length; j++) { - var lnode = row[j]; - lnode.rect.x = x; - lnode.rect.y = y; - x += lnode.rect.width + organization.horizontalPadding; - if (lnode.rect.height > maxHeight) - maxHeight = lnode.rect.height; - } - y += maxHeight + organization.verticalPadding; - } - }; - CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) { - var self2 = this; - this.tiledMemberPack = []; - Object.keys(childGraphMap).forEach(function(id) { - var compoundNode = idToNode[id]; - self2.tiledMemberPack[id] = self2.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight); - compoundNode.rect.width = self2.tiledMemberPack[id].width; - compoundNode.rect.height = self2.tiledMemberPack[id].height; - }); - }; - CoSELayout.prototype.tileNodes = function(nodes2, minWidth) { - var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL; - var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL; - var organization = { - rows: [], - rowWidth: [], - rowHeight: [], - width: 0, - height: minWidth, - // assume minHeight equals to minWidth - verticalPadding, - horizontalPadding - }; - nodes2.sort(function(n1, n2) { - if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) - return -1; - if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) - return 1; - return 0; - }); - for (var i = 0; i < nodes2.length; i++) { - var lNode = nodes2[i]; - if (organization.rows.length == 0) { - this.insertNodeToRow(organization, lNode, 0, minWidth); - } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) { - this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth); - } else { - this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth); - } - this.shiftToLastRow(organization); - } - return organization; - }; - CoSELayout.prototype.insertNodeToRow = function(organization, node, rowIndex, minWidth) { - var minCompoundSize = minWidth; - if (rowIndex == organization.rows.length) { - var secondDimension = []; - organization.rows.push(secondDimension); - organization.rowWidth.push(minCompoundSize); - organization.rowHeight.push(0); - } - var w = organization.rowWidth[rowIndex] + node.rect.width; - if (organization.rows[rowIndex].length > 0) { - w += organization.horizontalPadding; - } - organization.rowWidth[rowIndex] = w; - if (organization.width < w) { - organization.width = w; - } - var h = node.rect.height; - if (rowIndex > 0) - h += organization.verticalPadding; - var extraHeight = 0; - if (h > organization.rowHeight[rowIndex]) { - extraHeight = organization.rowHeight[rowIndex]; - organization.rowHeight[rowIndex] = h; - extraHeight = organization.rowHeight[rowIndex] - extraHeight; - } - organization.height += extraHeight; - organization.rows[rowIndex].push(node); - }; - CoSELayout.prototype.getShortestRowIndex = function(organization) { - var r = -1; - var min = Number.MAX_VALUE; - for (var i = 0; i < organization.rows.length; i++) { - if (organization.rowWidth[i] < min) { - r = i; - min = organization.rowWidth[i]; - } - } - return r; - }; - CoSELayout.prototype.getLongestRowIndex = function(organization) { - var r = -1; - var max = Number.MIN_VALUE; - for (var i = 0; i < organization.rows.length; i++) { - if (organization.rowWidth[i] > max) { - r = i; - max = organization.rowWidth[i]; - } - } - return r; - }; - CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) { - var sri = this.getShortestRowIndex(organization); - if (sri < 0) { - return true; - } - var min = organization.rowWidth[sri]; - if (min + organization.horizontalPadding + extraWidth <= organization.width) - return true; - var hDiff = 0; - if (organization.rowHeight[sri] < extraHeight) { - if (sri > 0) - hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri]; - } - var add_to_row_ratio; - if (organization.width - min >= extraWidth + organization.horizontalPadding) { - add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding); - } else { - add_to_row_ratio = (organization.height + hDiff) / organization.width; - } - hDiff = extraHeight + organization.verticalPadding; - var add_new_row_ratio; - if (organization.width < extraWidth) { - add_new_row_ratio = (organization.height + hDiff) / extraWidth; - } else { - add_new_row_ratio = (organization.height + hDiff) / organization.width; - } - if (add_new_row_ratio < 1) - add_new_row_ratio = 1 / add_new_row_ratio; - if (add_to_row_ratio < 1) - add_to_row_ratio = 1 / add_to_row_ratio; - return add_to_row_ratio < add_new_row_ratio; - }; - CoSELayout.prototype.shiftToLastRow = function(organization) { - var longest = this.getLongestRowIndex(organization); - var last = organization.rowWidth.length - 1; - var row = organization.rows[longest]; - var node = row[row.length - 1]; - var diff = node.width + organization.horizontalPadding; - if (organization.width - organization.rowWidth[last] > diff && longest != last) { - row.splice(-1, 1); - organization.rows[last].push(node); - organization.rowWidth[longest] = organization.rowWidth[longest] - diff; - organization.rowWidth[last] = organization.rowWidth[last] + diff; - organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)]; - var maxHeight = Number.MIN_VALUE; - for (var i = 0; i < row.length; i++) { - if (row[i].height > maxHeight) - maxHeight = row[i].height; - } - if (longest > 0) - maxHeight += organization.verticalPadding; - var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last]; - organization.rowHeight[longest] = maxHeight; - if (organization.rowHeight[last] < node.height + organization.verticalPadding) - organization.rowHeight[last] = node.height + organization.verticalPadding; - var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last]; - organization.height += finalTotal - prevTotal; - this.shiftToLastRow(organization); - } - }; - CoSELayout.prototype.tilingPreLayout = function() { - if (CoSEConstants.TILE) { - this.groupZeroDegreeMembers(); - this.clearCompounds(); - this.clearZeroDegreeMembers(); - } - }; - CoSELayout.prototype.tilingPostLayout = function() { - if (CoSEConstants.TILE) { - this.repopulateZeroDegreeMembers(); - this.repopulateCompounds(); - } - }; - CoSELayout.prototype.reduceTrees = function() { - var prunedNodesAll = []; - var containsLeaf = true; - var node; - while (containsLeaf) { - var allNodes = this.graphManager.getAllNodes(); - var prunedNodesInStepTemp = []; - containsLeaf = false; - for (var i = 0; i < allNodes.length; i++) { - node = allNodes[i]; - if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) { - prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]); - containsLeaf = true; - } - } - if (containsLeaf == true) { - var prunedNodesInStep = []; - for (var j = 0; j < prunedNodesInStepTemp.length; j++) { - if (prunedNodesInStepTemp[j][0].getEdges().length == 1) { - prunedNodesInStep.push(prunedNodesInStepTemp[j]); - prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]); - } - } - prunedNodesAll.push(prunedNodesInStep); - this.graphManager.resetAllNodes(); - this.graphManager.resetAllEdges(); - } - } - this.prunedNodesAll = prunedNodesAll; - }; - CoSELayout.prototype.growTree = function(prunedNodesAll) { - var lengthOfPrunedNodesInStep = prunedNodesAll.length; - var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1]; - var nodeData; - for (var i = 0; i < prunedNodesInStep.length; i++) { - nodeData = prunedNodesInStep[i]; - this.findPlaceforPrunedNode(nodeData); - nodeData[2].add(nodeData[0]); - nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target); - } - prunedNodesAll.splice(prunedNodesAll.length - 1, 1); - this.graphManager.resetAllNodes(); - this.graphManager.resetAllEdges(); - }; - CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData) { - var gridForPrunedNode; - var nodeToConnect; - var prunedNode = nodeData[0]; - if (prunedNode == nodeData[1].source) { - nodeToConnect = nodeData[1].target; - } else { - nodeToConnect = nodeData[1].source; - } - var startGridX = nodeToConnect.startX; - var finishGridX = nodeToConnect.finishX; - var startGridY = nodeToConnect.startY; - var finishGridY = nodeToConnect.finishY; - var upNodeCount = 0; - var downNodeCount = 0; - var rightNodeCount = 0; - var leftNodeCount = 0; - var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount]; - if (startGridY > 0) { - for (var i = startGridX; i <= finishGridX; i++) { - controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1; - } - } - if (finishGridX < this.grid.length - 1) { - for (var i = startGridY; i <= finishGridY; i++) { - controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1; - } - } - if (finishGridY < this.grid[0].length - 1) { - for (var i = startGridX; i <= finishGridX; i++) { - controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1; - } - } - if (startGridX > 0) { - for (var i = startGridY; i <= finishGridY; i++) { - controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1; - } - } - var min = Integer.MAX_VALUE; - var minCount; - var minIndex; - for (var j = 0; j < controlRegions.length; j++) { - if (controlRegions[j] < min) { - min = controlRegions[j]; - minCount = 1; - minIndex = j; - } else if (controlRegions[j] == min) { - minCount++; - } - } - if (minCount == 3 && min == 0) { - if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) { - gridForPrunedNode = 1; - } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) { - gridForPrunedNode = 0; - } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { - gridForPrunedNode = 3; - } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { - gridForPrunedNode = 2; - } - } else if (minCount == 2 && min == 0) { - var random = Math.floor(Math.random() * 2); - if (controlRegions[0] == 0 && controlRegions[1] == 0) { - ; - if (random == 0) { - gridForPrunedNode = 0; - } else { - gridForPrunedNode = 1; - } - } else if (controlRegions[0] == 0 && controlRegions[2] == 0) { - if (random == 0) { - gridForPrunedNode = 0; - } else { - gridForPrunedNode = 2; - } - } else if (controlRegions[0] == 0 && controlRegions[3] == 0) { - if (random == 0) { - gridForPrunedNode = 0; - } else { - gridForPrunedNode = 3; - } - } else if (controlRegions[1] == 0 && controlRegions[2] == 0) { - if (random == 0) { - gridForPrunedNode = 1; - } else { - gridForPrunedNode = 2; - } - } else if (controlRegions[1] == 0 && controlRegions[3] == 0) { - if (random == 0) { - gridForPrunedNode = 1; - } else { - gridForPrunedNode = 3; - } - } else { - if (random == 0) { - gridForPrunedNode = 2; - } else { - gridForPrunedNode = 3; - } - } - } else if (minCount == 4 && min == 0) { - var random = Math.floor(Math.random() * 4); - gridForPrunedNode = random; - } else { - gridForPrunedNode = minIndex; - } - if (gridForPrunedNode == 0) { - prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2); - } else if (gridForPrunedNode == 1) { - prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); - } else if (gridForPrunedNode == 2) { - prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2); - } else { - prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); - } - }; - module2.exports = CoSELayout; - }, - /* 7 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var coseBase = {}; - coseBase.layoutBase = __webpack_require__(0); - coseBase.CoSEConstants = __webpack_require__(1); - coseBase.CoSEEdge = __webpack_require__(2); - coseBase.CoSEGraph = __webpack_require__(3); - coseBase.CoSEGraphManager = __webpack_require__(4); - coseBase.CoSELayout = __webpack_require__(6); - coseBase.CoSENode = __webpack_require__(5); - module2.exports = coseBase; - } - /******/ - ]) - ); - }); - } -}); - -// node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js -var require_cytoscape_cose_bilkent = __commonJS({ - "node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js"(exports, module) { - (function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports === "object" && typeof module === "object") - module.exports = factory(require_cose_base()); - else if (typeof define === "function" && define.amd) - define(["cose-base"], factory); - else if (typeof exports === "object") - exports["cytoscapeCoseBilkent"] = factory(require_cose_base()); - else - root["cytoscapeCoseBilkent"] = factory(root["coseBase"]); - })(exports, function(__WEBPACK_EXTERNAL_MODULE_0__) { - return ( - /******/ - function(modules) { - var installedModules = {}; - function __webpack_require__(moduleId) { - if (installedModules[moduleId]) { - return installedModules[moduleId].exports; - } - var module2 = installedModules[moduleId] = { - /******/ - i: moduleId, - /******/ - l: false, - /******/ - exports: {} - /******/ - }; - modules[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__); - module2.l = true; - return module2.exports; - } - __webpack_require__.m = modules; - __webpack_require__.c = installedModules; - __webpack_require__.i = function(value) { - return value; - }; - __webpack_require__.d = function(exports2, name2, getter) { - if (!__webpack_require__.o(exports2, name2)) { - Object.defineProperty(exports2, name2, { - /******/ - configurable: false, - /******/ - enumerable: true, - /******/ - get: getter - /******/ - }); - } - }; - __webpack_require__.n = function(module2) { - var getter = module2 && module2.__esModule ? ( - /******/ - function getDefault() { - return module2["default"]; - } - ) : ( - /******/ - function getModuleExports() { - return module2; - } - ); - __webpack_require__.d(getter, "a", getter); - return getter; - }; - __webpack_require__.o = function(object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - __webpack_require__.p = ""; - return __webpack_require__(__webpack_require__.s = 1); - }([ - /* 0 */ - /***/ - function(module2, exports2) { - module2.exports = __WEBPACK_EXTERNAL_MODULE_0__; - }, - /* 1 */ - /***/ - function(module2, exports2, __webpack_require__) { - "use strict"; - var LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants; - var FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants; - var CoSEConstants = __webpack_require__(0).CoSEConstants; - var CoSELayout = __webpack_require__(0).CoSELayout; - var CoSENode = __webpack_require__(0).CoSENode; - var PointD = __webpack_require__(0).layoutBase.PointD; - var DimensionD2 = __webpack_require__(0).layoutBase.DimensionD; - var defaults = { - // Called on `layoutready` - ready: function ready() { - }, - // Called on `layoutstop` - stop: function stop() { - }, - // 'draft', 'default' or 'proof" - // - 'draft' fast cooling rate - // - 'default' moderate cooling rate - // - "proof" slow cooling rate - quality: "default", - // include labels in node dimensions - nodeDimensionsIncludeLabels: false, - // number of ticks per frame; higher is faster but more jerky - refresh: 30, - // Whether to fit the network view after when done - fit: true, - // Padding on fit - padding: 10, - // Whether to enable incremental mode - randomize: true, - // Node repulsion (non overlapping) multiplier - nodeRepulsion: 4500, - // Ideal edge (non nested) length - idealEdgeLength: 50, - // Divisor to compute edge forces - edgeElasticity: 0.45, - // Nesting factor (multiplier) to compute ideal edge length for nested edges - nestingFactor: 0.1, - // Gravity force (constant) - gravity: 0.25, - // Maximum number of iterations to perform - numIter: 2500, - // For enabling tiling - tile: true, - // Type of layout animation. The option set is {'during', 'end', false} - animate: "end", - // Duration for animate:end - animationDuration: 500, - // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function) - tilingPaddingVertical: 10, - // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function) - tilingPaddingHorizontal: 10, - // Gravity range (constant) for compounds - gravityRangeCompound: 1.5, - // Gravity force (constant) for compounds - gravityCompound: 1, - // Gravity range (constant) - gravityRange: 3.8, - // Initial cooling factor for incremental layout - initialEnergyOnIncremental: 0.5 - }; - function extend(defaults2, options) { - var obj = {}; - for (var i in defaults2) { - obj[i] = defaults2[i]; - } - for (var i in options) { - obj[i] = options[i]; - } - return obj; - } - ; - function _CoSELayout(_options) { - this.options = extend(defaults, _options); - getUserOptions(this.options); - } - var getUserOptions = function getUserOptions2(options) { - if (options.nodeRepulsion != null) - CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion; - if (options.idealEdgeLength != null) - CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength; - if (options.edgeElasticity != null) - CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity; - if (options.nestingFactor != null) - CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor; - if (options.gravity != null) - CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity; - if (options.numIter != null) - CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter; - if (options.gravityRange != null) - CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange; - if (options.gravityCompound != null) - CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound; - if (options.gravityRangeCompound != null) - CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound; - if (options.initialEnergyOnIncremental != null) - CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental; - if (options.quality == "draft") - LayoutConstants.QUALITY = 0; - else if (options.quality == "proof") - LayoutConstants.QUALITY = 2; - else - LayoutConstants.QUALITY = 1; - CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels; - CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize; - CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate; - CoSEConstants.TILE = options.tile; - CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === "function" ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical; - CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === "function" ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal; - }; - _CoSELayout.prototype.run = function() { - var ready; - var frameId; - var options = this.options; - var idToLNode = this.idToLNode = {}; - var layout = this.layout = new CoSELayout(); - var self2 = this; - self2.stopped = false; - this.cy = this.options.cy; - this.cy.trigger({ type: "layoutstart", layout: this }); - var gm = layout.newGraphManager(); - this.gm = gm; - var nodes2 = this.options.eles.nodes(); - var edges = this.options.eles.edges(); - this.root = gm.addRoot(); - this.processChildrenList(this.root, this.getTopMostNodes(nodes2), layout); - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; - var sourceNode = this.idToLNode[edge.data("source")]; - var targetNode = this.idToLNode[edge.data("target")]; - if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) { - var e1 = gm.add(layout.newEdge(), sourceNode, targetNode); - e1.id = edge.id(); - } - } - var getPositions = function getPositions2(ele, i2) { - if (typeof ele === "number") { - ele = i2; - } - var theId = ele.data("id"); - var lNode = self2.idToLNode[theId]; - return { - x: lNode.getRect().getCenterX(), - y: lNode.getRect().getCenterY() - }; - }; - var iterateAnimated = function iterateAnimated2() { - var afterReposition = function afterReposition2() { - if (options.fit) { - options.cy.fit(options.eles, options.padding); - } - if (!ready) { - ready = true; - self2.cy.one("layoutready", options.ready); - self2.cy.trigger({ type: "layoutready", layout: self2 }); - } - }; - var ticksPerFrame = self2.options.refresh; - var isDone; - for (var i2 = 0; i2 < ticksPerFrame && !isDone; i2++) { - isDone = self2.stopped || self2.layout.tick(); - } - if (isDone) { - if (layout.checkLayoutSuccess() && !layout.isSubLayout) { - layout.doPostLayout(); - } - if (layout.tilingPostLayout) { - layout.tilingPostLayout(); - } - layout.isLayoutFinished = true; - self2.options.eles.nodes().positions(getPositions); - afterReposition(); - self2.cy.one("layoutstop", self2.options.stop); - self2.cy.trigger({ type: "layoutstop", layout: self2 }); - if (frameId) { - cancelAnimationFrame(frameId); - } - ready = false; - return; - } - var animationData = self2.layout.getPositionsData(); - options.eles.nodes().positions(function(ele, i3) { - if (typeof ele === "number") { - ele = i3; - } - if (!ele.isParent()) { - var theId = ele.id(); - var pNode = animationData[theId]; - var temp = ele; - while (pNode == null) { - pNode = animationData[temp.data("parent")] || animationData["DummyCompound_" + temp.data("parent")]; - animationData[theId] = pNode; - temp = temp.parent()[0]; - if (temp == void 0) { - break; - } - } - if (pNode != null) { - return { - x: pNode.x, - y: pNode.y - }; - } else { - return { - x: ele.position("x"), - y: ele.position("y") - }; - } - } - }); - afterReposition(); - frameId = requestAnimationFrame(iterateAnimated2); - }; - layout.addListener("layoutstarted", function() { - if (self2.options.animate === "during") { - frameId = requestAnimationFrame(iterateAnimated); - } - }); - layout.runLayout(); - if (this.options.animate !== "during") { - self2.options.eles.nodes().not(":parent").layoutPositions(self2, self2.options, getPositions); - ready = false; - } - return this; - }; - _CoSELayout.prototype.getTopMostNodes = function(nodes2) { - var nodesMap = {}; - for (var i = 0; i < nodes2.length; i++) { - nodesMap[nodes2[i].id()] = true; - } - var roots = nodes2.filter(function(ele, i2) { - if (typeof ele === "number") { - ele = i2; - } - var parent = ele.parent()[0]; - while (parent != null) { - if (nodesMap[parent.id()]) { - return false; - } - parent = parent.parent()[0]; - } - return true; - }); - return roots; - }; - _CoSELayout.prototype.processChildrenList = function(parent, children, layout) { - var size = children.length; - for (var i = 0; i < size; i++) { - var theChild = children[i]; - var children_of_children = theChild.children(); - var theNode; - var dimensions = theChild.layoutDimensions({ - nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels - }); - if (theChild.outerWidth() != null && theChild.outerHeight() != null) { - theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position("x") - dimensions.w / 2, theChild.position("y") - dimensions.h / 2), new DimensionD2(parseFloat(dimensions.w), parseFloat(dimensions.h)))); - } else { - theNode = parent.add(new CoSENode(this.graphManager)); - } - theNode.id = theChild.data("id"); - theNode.paddingLeft = parseInt(theChild.css("padding")); - theNode.paddingTop = parseInt(theChild.css("padding")); - theNode.paddingRight = parseInt(theChild.css("padding")); - theNode.paddingBottom = parseInt(theChild.css("padding")); - if (this.options.nodeDimensionsIncludeLabels) { - if (theChild.isParent()) { - var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w; - var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h; - var labelPos = theChild.css("text-halign"); - theNode.labelWidth = labelWidth; - theNode.labelHeight = labelHeight; - theNode.labelPos = labelPos; - } - } - this.idToLNode[theChild.data("id")] = theNode; - if (isNaN(theNode.rect.x)) { - theNode.rect.x = 0; - } - if (isNaN(theNode.rect.y)) { - theNode.rect.y = 0; - } - if (children_of_children != null && children_of_children.length > 0) { - var theNewGraph; - theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode); - this.processChildrenList(theNewGraph, children_of_children, layout); - } - } - }; - _CoSELayout.prototype.stop = function() { - this.stopped = true; - return this; - }; - var register = function register2(cytoscape3) { - cytoscape3("layout", "cose-bilkent", _CoSELayout); - }; - if (typeof cytoscape !== "undefined") { - register(cytoscape); - } - module2.exports = register; - } - /******/ - ]) - ); - }); - } -}); - -// node_modules/mermaid/dist/mindmap-definition-617cf8dd.js -var import_cytoscape_umd = __toESM(require_cytoscape_umd(), 1); -var import_cytoscape_cose_bilkent = __toESM(require_cytoscape_cose_bilkent(), 1); -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" }, - productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 6: - case 7: - return yy; - case 8: - yy.getLogger().trace("Stop NL "); - break; - case 9: - yy.getLogger().trace("Stop EOF "); - break; - case 11: - yy.getLogger().trace("Stop NL2 "); - break; - case 12: - yy.getLogger().trace("Stop EOF2 "); - break; - case 15: - yy.getLogger().info("Node: ", $$[$0].id); - yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type); - break; - case 16: - yy.getLogger().trace("Icon: ", $$[$0]); - yy.decorateNode({ icon: $$[$0] }); - break; - case 17: - case 21: - yy.decorateNode({ class: $$[$0] }); - break; - case 18: - yy.getLogger().trace("SPACELIST"); - break; - case 19: - yy.getLogger().trace("Node: ", $$[$0].id); - yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type); - break; - case 20: - yy.decorateNode({ icon: $$[$0] }); - break; - case 25: - yy.getLogger().trace("node found ..", $$[$0 - 2]); - this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; - break; - case 26: - this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT }; - break; - case 27: - yy.getLogger().trace("node found ..", $$[$0 - 3]); - this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; - break; - } - }, - table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])], - defaultActions: { 2: [2, 1], 6: [2, 2] }, - parseError: function parseError2(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self2.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError2(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next2 = this.match; - if (next2.length < 20) { - next2 += this._input.substr(0, 20 - next2.length); - } - return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - yy.getLogger().trace("Found comment", yy_.yytext); - return 6; - case 1: - return 8; - case 2: - this.begin("CLASS"); - break; - case 3: - this.popState(); - return 16; - case 4: - this.popState(); - break; - case 5: - yy.getLogger().trace("Begin icon"); - this.begin("ICON"); - break; - case 6: - yy.getLogger().trace("SPACELINE"); - return 6; - case 7: - return 7; - case 8: - return 15; - case 9: - yy.getLogger().trace("end icon"); - this.popState(); - break; - case 10: - yy.getLogger().trace("Exploding node"); - this.begin("NODE"); - return 19; - case 11: - yy.getLogger().trace("Cloud"); - this.begin("NODE"); - return 19; - case 12: - yy.getLogger().trace("Explosion Bang"); - this.begin("NODE"); - return 19; - case 13: - yy.getLogger().trace("Cloud Bang"); - this.begin("NODE"); - return 19; - case 14: - this.begin("NODE"); - return 19; - case 15: - this.begin("NODE"); - return 19; - case 16: - this.begin("NODE"); - return 19; - case 17: - this.begin("NODE"); - return 19; - case 18: - return 13; - case 19: - return 22; - case 20: - return 11; - case 21: - this.begin("NSTR2"); - break; - case 22: - return "NODE_DESCR"; - case 23: - this.popState(); - break; - case 24: - yy.getLogger().trace("Starting NSTR"); - this.begin("NSTR"); - break; - case 25: - yy.getLogger().trace("description:", yy_.yytext); - return "NODE_DESCR"; - case 26: - this.popState(); - break; - case 27: - this.popState(); - yy.getLogger().trace("node end ))"); - return "NODE_DEND"; - case 28: - this.popState(); - yy.getLogger().trace("node end )"); - return "NODE_DEND"; - case 29: - this.popState(); - yy.getLogger().trace("node end ...", yy_.yytext); - return "NODE_DEND"; - case 30: - this.popState(); - yy.getLogger().trace("node end (("); - return "NODE_DEND"; - case 31: - this.popState(); - yy.getLogger().trace("node end (-"); - return "NODE_DEND"; - case 32: - this.popState(); - yy.getLogger().trace("node end (-"); - return "NODE_DEND"; - case 33: - this.popState(); - yy.getLogger().trace("node end (("); - return "NODE_DEND"; - case 34: - this.popState(); - yy.getLogger().trace("node end (("); - return "NODE_DEND"; - case 35: - yy.getLogger().trace("Long description:", yy_.yytext); - return 20; - case 36: - yy.getLogger().trace("Long description:", yy_.yytext); - return 20; - } - }, - rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i], - conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var mindmapParser = parser; -var sanitizeText = (text) => sanitizeText$2(text, getConfig()); -var nodes = []; -var cnt = 0; -var elements = {}; -var clear = () => { - nodes = []; - cnt = 0; - elements = {}; -}; -var getParent = function(level) { - for (let i = nodes.length - 1; i >= 0; i--) { - if (nodes[i].level < level) { - return nodes[i]; - } - } - return null; -}; -var getMindmap = () => { - return nodes.length > 0 ? nodes[0] : null; -}; -var addNode = (level, id, descr, type) => { - log$1.info("addNode", level, id, descr, type); - const conf = getConfig(); - const node = { - id: cnt++, - nodeId: sanitizeText(id), - level, - descr: sanitizeText(descr), - type, - children: [], - width: getConfig().mindmap.maxNodeWidth - }; - switch (node.type) { - case nodeType.ROUNDED_RECT: - node.padding = 2 * conf.mindmap.padding; - break; - case nodeType.RECT: - node.padding = 2 * conf.mindmap.padding; - break; - case nodeType.HEXAGON: - node.padding = 2 * conf.mindmap.padding; - break; - default: - node.padding = conf.mindmap.padding; - } - const parent = getParent(level); - if (parent) { - parent.children.push(node); - nodes.push(node); - } else { - if (nodes.length === 0) { - nodes.push(node); - } else { - let error = new Error( - 'There can be only one root. No parent could be found for ("' + node.descr + '")' - ); - error.hash = { - text: "branch " + name, - token: "branch " + name, - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ['"checkout ' + name + '"'] - }; - throw error; - } - } -}; -var nodeType = { - DEFAULT: 0, - NO_BORDER: 0, - ROUNDED_RECT: 1, - RECT: 2, - CIRCLE: 3, - CLOUD: 4, - BANG: 5, - HEXAGON: 6 -}; -var getType = (startStr, endStr) => { - log$1.debug("In get type", startStr, endStr); - switch (startStr) { - case "[": - return nodeType.RECT; - case "(": - return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD; - case "((": - return nodeType.CIRCLE; - case ")": - return nodeType.CLOUD; - case "))": - return nodeType.BANG; - case "{{": - return nodeType.HEXAGON; - default: - return nodeType.DEFAULT; - } -}; -var setElementForId = (id, element) => { - elements[id] = element; -}; -var decorateNode = (decoration) => { - const node = nodes[nodes.length - 1]; - if (decoration && decoration.icon) { - node.icon = sanitizeText(decoration.icon); - } - if (decoration && decoration.class) { - node.class = sanitizeText(decoration.class); - } -}; -var type2Str = (type) => { - switch (type) { - case nodeType.DEFAULT: - return "no-border"; - case nodeType.RECT: - return "rect"; - case nodeType.ROUNDED_RECT: - return "rounded-rect"; - case nodeType.CIRCLE: - return "circle"; - case nodeType.CLOUD: - return "cloud"; - case nodeType.BANG: - return "bang"; - case nodeType.HEXAGON: - return "hexgon"; - default: - return "no-border"; - } -}; -var parseError; -var setErrorHandler = (handler) => { - parseError = handler; -}; -var getLogger = () => log$1; -var getNodeById = (id) => nodes[id]; -var getElementById = (id) => elements[id]; -var mindmapDb = Object.freeze(Object.defineProperty({ - __proto__: null, - addNode, - clear, - decorateNode, - getElementById, - getLogger, - getMindmap, - getNodeById, - getType, - nodeType, - get parseError() { - return parseError; - }, - sanitizeText, - setElementForId, - setErrorHandler, - type2Str -}, Symbol.toStringTag, { value: "Module" })); -var MAX_SECTIONS = 12; -var defaultBkg = function(elem, node, section) { - const rd = 5; - elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( - "d", - `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` - ); - elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); -}; -var rectBkg = function(elem, node) { - elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("width", node.width); -}; -var cloudBkg = function(elem, node) { - const w = node.width; - const h = node.height; - const r1 = 0.15 * w; - const r2 = 0.25 * w; - const r3 = 0.35 * w; - const r4 = 0.2 * w; - elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( - "d", - `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1} - a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1} - a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2} - - a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35} - a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65} - - a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15} - a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0} - a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15} - - a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35} - a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65} - - H0 V0 Z` - ); -}; -var bangBkg = function(elem, node) { - const w = node.width; - const h = node.height; - const r = 0.15 * w; - elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( - "d", - `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1} - a${r},${r} 1 0,0 ${w * 0.25},${0} - a${r},${r} 1 0,0 ${w * 0.25},${0} - a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1} - - a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33} - a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34} - a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33} - - a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15} - a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} - a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} - a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15} - - a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33} - a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34} - a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33} - - H0 V0 Z` - ); -}; -var circleBkg = function(elem, node) { - elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("r", node.width / 2); -}; -function insertPolygonShape(parent, w, h, points, node) { - return parent.insert("polygon", ":first-child").attr( - "points", - points.map(function(d) { - return d.x + "," + d.y; - }).join(" ") - ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")"); -} -var hexagonBkg = function(elem, node) { - const h = node.height; - const f = 4; - const m = h / f; - const w = node.width - node.padding + 2 * m; - const points = [ - { x: m, y: 0 }, - { x: w - m, y: 0 }, - { x: w, y: -h / 2 }, - { x: w - m, y: -h }, - { x: m, y: -h }, - { x: 0, y: -h / 2 } - ]; - insertPolygonShape(elem, w, h, points, node); -}; -var roundedRectBkg = function(elem, node) { - elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width); -}; -var drawNode = function(elem, node, fullSection, conf) { - const htmlLabels = conf.htmlLabels; - const section = fullSection % (MAX_SECTIONS - 1); - const nodeElem = elem.append("g"); - node.section = section; - let sectionClass = "section-" + section; - if (section < 0) { - sectionClass += " section-root"; - } - nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass); - const bkgElem = nodeElem.append("g"); - const textElem = nodeElem.append("g"); - const description = node.descr.replace(/()/g, "\n"); - createText(textElem, description, { - useHtmlLabels: htmlLabels, - width: node.width, - classes: "mindmap-node-label" - }); - if (!htmlLabels) { - textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle"); - } - const bbox = textElem.node().getBBox(); - const fontSize = conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; - node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; - node.width = bbox.width + 2 * node.padding; - if (node.icon) { - if (node.type === nodeType.CIRCLE) { - node.height += 50; - node.width += 50; - const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;"); - icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); - textElem.attr( - "transform", - "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")" - ); - } else { - node.width += 50; - const orgHeight = node.height; - node.height = Math.max(orgHeight, 60); - const heightDiff = Math.abs(node.height - orgHeight); - const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;"); - icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); - textElem.attr( - "transform", - "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")" - ); - } - } else { - if (!htmlLabels) { - const dx = node.width / 2; - const dy = node.padding / 2; - textElem.attr("transform", "translate(" + dx + ", " + dy + ")"); - } else { - const dx = (node.width - bbox.width) / 2; - const dy = (node.height - bbox.height) / 2; - textElem.attr("transform", "translate(" + dx + ", " + dy + ")"); - } - } - switch (node.type) { - case nodeType.DEFAULT: - defaultBkg(bkgElem, node, section); - break; - case nodeType.ROUNDED_RECT: - roundedRectBkg(bkgElem, node); - break; - case nodeType.RECT: - rectBkg(bkgElem, node); - break; - case nodeType.CIRCLE: - bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")"); - circleBkg(bkgElem, node); - break; - case nodeType.CLOUD: - cloudBkg(bkgElem, node); - break; - case nodeType.BANG: - bangBkg(bkgElem, node); - break; - case nodeType.HEXAGON: - hexagonBkg(bkgElem, node); - break; - } - setElementForId(node.id, nodeElem); - return node.height; -}; -var drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) { - const section = fullSection % (MAX_SECTIONS - 1); - const sx = parent.x + parent.width / 2; - const sy = parent.y + parent.height / 2; - const ex = mindmap.x + mindmap.width / 2; - const ey = mindmap.y + mindmap.height / 2; - const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2; - const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2; - const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx; - const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy; - edgesElem.append("path").attr( - "d", - parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}` - ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth); -}; -var positionNode = function(node) { - const nodeElem = getElementById(node.id); - const x = node.x || 0; - const y = node.y || 0; - nodeElem.attr("transform", "translate(" + x + "," + y + ")"); -}; -var svgDraw = { drawNode, positionNode, drawEdge }; -import_cytoscape_umd.default.use(import_cytoscape_cose_bilkent.default); -function drawNodes(svg, mindmap, section, conf) { - svgDraw.drawNode(svg, mindmap, section, conf); - if (mindmap.children) { - mindmap.children.forEach((child, index) => { - drawNodes(svg, child, section < 0 ? index : section, conf); - }); - } -} -function drawEdges(edgesEl, cy) { - cy.edges().map((edge, id) => { - const data = edge.data(); - if (edge[0]._private.bodyBounds) { - const bounds = edge[0]._private.rscratch; - log$1.trace("Edge: ", id, data); - edgesEl.insert("path").attr( - "d", - `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} ` - ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth); - } - }); -} -function addNodes(mindmap, cy, conf, level) { - cy.add({ - group: "nodes", - data: { - id: mindmap.id, - labelText: mindmap.descr, - height: mindmap.height, - width: mindmap.width, - level, - nodeId: mindmap.id, - padding: mindmap.padding, - type: mindmap.type - }, - position: { - x: mindmap.x, - y: mindmap.y - } - }); - if (mindmap.children) { - mindmap.children.forEach((child) => { - addNodes(child, cy, conf, level + 1); - cy.add({ - group: "edges", - data: { - id: `${mindmap.id}_${child.id}`, - source: mindmap.id, - target: child.id, - depth: level, - section: child.section - } - }); - }); - } -} -function layoutMindmap(node, conf) { - return new Promise((resolve) => { - const renderEl = select_default("body").append("div").attr("id", "cy").attr("style", "display:none"); - const cy = (0, import_cytoscape_umd.default)({ - container: document.getElementById("cy"), - // container to render in - style: [ - { - selector: "edge", - style: { - "curve-style": "bezier" - } - } - ] - }); - renderEl.remove(); - addNodes(node, cy, conf, 0); - cy.nodes().forEach(function(n) { - n.layoutDimensions = () => { - const data = n.data(); - return { w: data.width, h: data.height }; - }; - }); - cy.layout({ - name: "cose-bilkent", - quality: "proof", - // headless: true, - styleEnabled: false, - animate: false - }).run(); - cy.ready((e) => { - log$1.info("Ready", e); - resolve(cy); - }); - }); -} -function positionNodes(cy) { - cy.nodes().map((node, id) => { - const data = node.data(); - data.x = node.position().x; - data.y = node.position().y; - svgDraw.positionNode(data); - const el = getElementById(data.nodeId); - log$1.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data); - el.attr( - "transform", - `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})` - ); - el.attr("attr", `apa-${id})`); - }); -} -var draw = async (text, id, version, diagObj) => { - const conf = getConfig(); - conf.htmlLabels = false; - log$1.debug("Rendering mindmap diagram\n" + text, diagObj.parser); - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select("#" + id); - svg.append("g"); - const mm = diagObj.db.getMindmap(); - const edgesElem = svg.append("g"); - edgesElem.attr("class", "mindmap-edges"); - const nodesElem = svg.append("g"); - nodesElem.attr("class", "mindmap-nodes"); - drawNodes(nodesElem, mm, -1, conf); - const cy = await layoutMindmap(mm, conf); - drawEdges(edgesElem, cy); - positionNodes(cy); - setupGraphViewbox$1(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth); -}; -var mindmapRenderer = { - draw -}; -var genSections = (options) => { - let sections = ""; - for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { - options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; - if (is_dark_default(options["lineColor" + i])) { - options["lineColor" + i] = lighten_default(options["lineColor" + i], 20); - } else { - options["lineColor" + i] = darken_default(options["lineColor" + i], 20); - } - } - for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { - const sw = "" + (17 - 3 * i); - sections += ` - .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path { - fill: ${options["cScale" + i]}; - } - .section-${i - 1} text { - fill: ${options["cScaleLabel" + i]}; - } - .node-icon-${i - 1} { - font-size: 40px; - color: ${options["cScaleLabel" + i]}; - } - .section-edge-${i - 1}{ - stroke: ${options["cScale" + i]}; - } - .edge-depth-${i - 1}{ - stroke-width: ${sw}; - } - .section-${i - 1} line { - stroke: ${options["cScaleInv" + i]} ; - stroke-width: 3; - } - - .disabled, .disabled circle, .disabled text { - fill: lightgray; - } - .disabled text { - fill: #efefef; - } - `; - } - return sections; -}; -var getStyles = (options) => ` - .edge { - stroke-width: 3; - } - ${genSections(options)} - .section-root rect, .section-root path, .section-root circle, .section-root polygon { - fill: ${options.git0}; - } - .section-root text { - fill: ${options.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .mindmap-node-label { - dy: 1em; - alignment-baseline: middle; - text-anchor: middle; - dominant-baseline: middle; - text-align: center; - } -`; -var mindmapStyles = getStyles; -var diagram = { - db: mindmapDb, - renderer: mindmapRenderer, - parser: mindmapParser, - styles: mindmapStyles -}; -export { - diagram -}; -/*! Bundled license information: - -cytoscape/dist/cytoscape.umd.js: - (*! - Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable - Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) - Licensed under The MIT License (http://opensource.org/licenses/MIT) - *) - (*! - Event object based on jQuery events, MIT license - - https://jquery.org/license/ - https://tldrlegal.com/license/mit-license - https://github.com/jquery/jquery/blob/master/src/event.js - *) - (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) - (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) -*/ -//# sourceMappingURL=mindmap-definition-617cf8dd-Z54F4QIY.js.map diff --git a/.vuepress/.cache/deps/mindmap-definition-617cf8dd-Z54F4QIY.js.map b/.vuepress/.cache/deps/mindmap-definition-617cf8dd-Z54F4QIY.js.map deleted file mode 100644 index 40446f94b..000000000 --- a/.vuepress/.cache/deps/mindmap-definition-617cf8dd-Z54F4QIY.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/cytoscape/dist/cytoscape.umd.js", "../../../../node_modules/layout-base/layout-base.js", "../../../../node_modules/cose-base/cose-base.js", "../../../../node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js", "../../../../node_modules/mermaid/dist/mindmap-definition-617cf8dd.js"], - "sourcesContent": ["/**\n * Copyright (c) 2016-2023, The Cytoscape Consortium.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the “Software”), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n * of the Software, and to permit persons to whom the Software is furnished to do\n * so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.cytoscape = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _defineProperty$1(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var _window = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef\n\n var navigator = _window ? _window.navigator : null;\n _window ? _window.document : null;\n var typeofstr = _typeof('');\n var typeofobj = _typeof({});\n var typeoffn = _typeof(function () {});\n var typeofhtmlele = typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement);\n var instanceStr = function instanceStr(obj) {\n return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;\n };\n\n var string = function string(obj) {\n return obj != null && _typeof(obj) == typeofstr;\n };\n var fn$6 = function fn(obj) {\n return obj != null && _typeof(obj) === typeoffn;\n };\n var array = function array(obj) {\n return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);\n };\n var plainObject = function plainObject(obj) {\n return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object;\n };\n var object = function object(obj) {\n return obj != null && _typeof(obj) === typeofobj;\n };\n var number$1 = function number(obj) {\n return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);\n };\n var integer = function integer(obj) {\n return number$1(obj) && Math.floor(obj) === obj;\n };\n var htmlElement = function htmlElement(obj) {\n if ('undefined' === typeofhtmlele) {\n return undefined;\n } else {\n return null != obj && obj instanceof HTMLElement;\n }\n };\n var elementOrCollection = function elementOrCollection(obj) {\n return element(obj) || collection(obj);\n };\n var element = function element(obj) {\n return instanceStr(obj) === 'collection' && obj._private.single;\n };\n var collection = function collection(obj) {\n return instanceStr(obj) === 'collection' && !obj._private.single;\n };\n var core = function core(obj) {\n return instanceStr(obj) === 'core';\n };\n var stylesheet = function stylesheet(obj) {\n return instanceStr(obj) === 'stylesheet';\n };\n var event = function event(obj) {\n return instanceStr(obj) === 'event';\n };\n var emptyString = function emptyString(obj) {\n if (obj === undefined || obj === null) {\n // null is empty\n return true;\n } else if (obj === '' || obj.match(/^\\s+$/)) {\n return true; // empty string is empty\n }\n\n return false; // otherwise, we don't know what we've got\n };\n var domElement = function domElement(obj) {\n if (typeof HTMLElement === 'undefined') {\n return false; // we're not in a browser so it doesn't matter\n } else {\n return obj instanceof HTMLElement;\n }\n };\n var boundingBox = function boundingBox(obj) {\n return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2);\n };\n var promise = function promise(obj) {\n return object(obj) && fn$6(obj.then);\n };\n var ms = function ms() {\n return navigator && navigator.userAgent.match(/msie|trident|edge/i);\n }; // probably a better way to detect this...\n\n var memoize$1 = function memoize(fn, keyFn) {\n if (!keyFn) {\n keyFn = function keyFn() {\n if (arguments.length === 1) {\n return arguments[0];\n } else if (arguments.length === 0) {\n return 'undefined';\n }\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n return args.join('$');\n };\n }\n var memoizedFn = function memoizedFn() {\n var self = this;\n var args = arguments;\n var ret;\n var k = keyFn.apply(self, args);\n var cache = memoizedFn.cache;\n if (!(ret = cache[k])) {\n ret = cache[k] = fn.apply(self, args);\n }\n return ret;\n };\n memoizedFn.cache = {};\n return memoizedFn;\n };\n\n var camel2dash = memoize$1(function (str) {\n return str.replace(/([A-Z])/g, function (v) {\n return '-' + v.toLowerCase();\n });\n });\n var dash2camel = memoize$1(function (str) {\n return str.replace(/(-\\w)/g, function (v) {\n return v[1].toUpperCase();\n });\n });\n var prependCamel = memoize$1(function (prefix, str) {\n return prefix + str[0].toUpperCase() + str.substring(1);\n }, function (prefix, str) {\n return prefix + '$' + str;\n });\n var capitalize = function capitalize(str) {\n if (emptyString(str)) {\n return str;\n }\n return str.charAt(0).toUpperCase() + str.substring(1);\n };\n\n var number = '(?:[-+]?(?:(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[Ee][+-]?\\\\d+)?))';\n var rgba = 'rgb[a]?\\\\((' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)\\\\s*,\\\\s*(' + number + '[%]?)(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\n var rgbaNoBackRefs = 'rgb[a]?\\\\((?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)\\\\s*,\\\\s*(?:' + number + '[%]?)(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\n var hsla = 'hsl[a]?\\\\((' + number + ')\\\\s*,\\\\s*(' + number + '[%])\\\\s*,\\\\s*(' + number + '[%])(?:\\\\s*,\\\\s*(' + number + '))?\\\\)';\n var hslaNoBackRefs = 'hsl[a]?\\\\((?:' + number + ')\\\\s*,\\\\s*(?:' + number + '[%])\\\\s*,\\\\s*(?:' + number + '[%])(?:\\\\s*,\\\\s*(?:' + number + '))?\\\\)';\n var hex3 = '\\\\#[0-9a-fA-F]{3}';\n var hex6 = '\\\\#[0-9a-fA-F]{6}';\n\n var ascending = function ascending(a, b) {\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n } else {\n return 0;\n }\n };\n var descending = function descending(a, b) {\n return -1 * ascending(a, b);\n };\n\n var extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n var args = arguments;\n for (var i = 1; i < args.length; i++) {\n var obj = args[i];\n if (obj == null) {\n continue;\n }\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; j++) {\n var k = keys[j];\n tgt[k] = obj[k];\n }\n }\n return tgt;\n };\n\n // get [r, g, b] from #abc or #aabbcc\n var hex2tuple = function hex2tuple(hex) {\n if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') {\n return;\n }\n var shortHex = hex.length === 4;\n var r, g, b;\n var base = 16;\n if (shortHex) {\n r = parseInt(hex[1] + hex[1], base);\n g = parseInt(hex[2] + hex[2], base);\n b = parseInt(hex[3] + hex[3], base);\n } else {\n r = parseInt(hex[1] + hex[2], base);\n g = parseInt(hex[3] + hex[4], base);\n b = parseInt(hex[5] + hex[6], base);\n }\n return [r, g, b];\n };\n\n // get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0)\n var hsl2tuple = function hsl2tuple(hsl) {\n var ret;\n var h, s, l, a, r, g, b;\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n var m = new RegExp('^' + hsla + '$').exec(hsl);\n if (m) {\n // get hue\n h = parseInt(m[1]);\n if (h < 0) {\n h = (360 - -1 * h % 360) % 360;\n } else if (h > 360) {\n h = h % 360;\n }\n h /= 360; // normalise on [0, 1]\n\n s = parseFloat(m[2]);\n if (s < 0 || s > 100) {\n return;\n } // saturation is [0, 100]\n s = s / 100; // normalise on [0, 1]\n\n l = parseFloat(m[3]);\n if (l < 0 || l > 100) {\n return;\n } // lightness is [0, 100]\n l = l / 100; // normalise on [0, 1]\n\n a = m[4];\n if (a !== undefined) {\n a = parseFloat(a);\n if (a < 0 || a > 1) {\n return;\n } // alpha is [0, 1]\n }\n\n // now, convert to rgb\n // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript\n if (s === 0) {\n r = g = b = Math.round(l * 255); // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = Math.round(255 * hue2rgb(p, q, h + 1 / 3));\n g = Math.round(255 * hue2rgb(p, q, h));\n b = Math.round(255 * hue2rgb(p, q, h - 1 / 3));\n }\n ret = [r, g, b, a];\n }\n return ret;\n };\n\n // get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0)\n var rgb2tuple = function rgb2tuple(rgb) {\n var ret;\n var m = new RegExp('^' + rgba + '$').exec(rgb);\n if (m) {\n ret = [];\n var isPct = [];\n for (var i = 1; i <= 3; i++) {\n var channel = m[i];\n if (channel[channel.length - 1] === '%') {\n isPct[i] = true;\n }\n channel = parseFloat(channel);\n if (isPct[i]) {\n channel = channel / 100 * 255; // normalise to [0, 255]\n }\n\n if (channel < 0 || channel > 255) {\n return;\n } // invalid channel value\n\n ret.push(Math.floor(channel));\n }\n var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];\n var allArePct = isPct[1] && isPct[2] && isPct[3];\n if (atLeastOneIsPct && !allArePct) {\n return;\n } // must all be percent values if one is\n\n var alpha = m[4];\n if (alpha !== undefined) {\n alpha = parseFloat(alpha);\n if (alpha < 0 || alpha > 1) {\n return;\n } // invalid alpha value\n\n ret.push(alpha);\n }\n }\n return ret;\n };\n var colorname2tuple = function colorname2tuple(color) {\n return colors[color.toLowerCase()];\n };\n var color2tuple = function color2tuple(color) {\n return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color);\n };\n var colors = {\n // special colour names\n transparent: [0, 0, 0, 0],\n // NB alpha === 0\n\n // regular colours\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n };\n\n // sets the value in a map (map may not be built)\n var setMap = function setMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to set map with object key');\n }\n if (i < keys.length - 1) {\n // extend the map if necessary\n if (obj[key] == null) {\n obj[key] = {};\n }\n obj = obj[key];\n } else {\n // set the value\n obj[key] = options.value;\n }\n }\n };\n\n // gets the value in a map even if it's not built in places\n var getMap = function getMap(options) {\n var obj = options.map;\n var keys = options.keys;\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (plainObject(key)) {\n throw Error('Tried to get map with object key');\n }\n obj = obj[key];\n if (obj == null) {\n return obj;\n }\n }\n return obj;\n };\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n var isObject_1 = isObject;\n\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n var _freeGlobal = freeGlobal;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = _freeGlobal || freeSelf || Function('return this')();\n\n var _root = root;\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = function() {\n return _root.Date.now();\n };\n\n var now_1 = now;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n var _trimmedEndIndex = trimmedEndIndex;\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n var _baseTrim = baseTrim;\n\n /** Built-in value references. */\n var Symbol$1 = _root.Symbol;\n\n var _Symbol = Symbol$1;\n\n /** Used for built-in method references. */\n var objectProto$5 = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$4 = objectProto$5.hasOwnProperty;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString$1 = objectProto$5.toString;\n\n /** Built-in value references. */\n var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty$4.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n }\n\n var _getRawTag = getRawTag;\n\n /** Used for built-in method references. */\n var objectProto$4 = Object.prototype;\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto$4.toString;\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n var _objectToString = objectToString;\n\n /** `Object#toString` result references. */\n var nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n /** Built-in value references. */\n var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? _getRawTag(value)\n : _objectToString(value);\n }\n\n var _baseGetTag = baseGetTag;\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n var isObjectLike_1 = isObjectLike;\n\n /** `Object#toString` result references. */\n var symbolTag = '[object Symbol]';\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike_1(value) && _baseGetTag(value) == symbolTag);\n }\n\n var isSymbol_1 = isSymbol;\n\n /** Used as references for various `Number` constants. */\n var NAN = 0 / 0;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseInt = parseInt;\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol_1(value)) {\n return NAN;\n }\n if (isObject_1(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject_1(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = _baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n var toNumber_1 = toNumber;\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT$1 = 'Expected a function';\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeMax = Math.max,\n nativeMin = Math.min;\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT$1);\n }\n wait = toNumber_1(wait) || 0;\n if (isObject_1(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now_1();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now_1());\n }\n\n function debounced() {\n var time = now_1(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n var debounce_1 = debounce;\n\n var performance = _window ? _window.performance : null;\n var pnow = performance && performance.now ? function () {\n return performance.now();\n } : function () {\n return Date.now();\n };\n var raf = function () {\n if (_window) {\n if (_window.requestAnimationFrame) {\n return function (fn) {\n _window.requestAnimationFrame(fn);\n };\n } else if (_window.mozRequestAnimationFrame) {\n return function (fn) {\n _window.mozRequestAnimationFrame(fn);\n };\n } else if (_window.webkitRequestAnimationFrame) {\n return function (fn) {\n _window.webkitRequestAnimationFrame(fn);\n };\n } else if (_window.msRequestAnimationFrame) {\n return function (fn) {\n _window.msRequestAnimationFrame(fn);\n };\n }\n }\n return function (fn) {\n if (fn) {\n setTimeout(function () {\n fn(pnow());\n }, 1000 / 60);\n }\n };\n }();\n var requestAnimationFrame = function requestAnimationFrame(fn) {\n return raf(fn);\n };\n var performanceNow = pnow;\n\n var DEFAULT_HASH_SEED = 9261;\n var K = 65599; // 37 also works pretty well\n var DEFAULT_HASH_SEED_ALT = 5381;\n var hashIterableInts = function hashIterableInts(iterator) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n var hash = seed;\n var entry;\n for (;;) {\n entry = iterator.next();\n if (entry.done) {\n break;\n }\n hash = hash * K + entry.value | 0;\n }\n return hash;\n };\n var hashInt = function hashInt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED;\n // sdbm/string-hash\n return seed * K + num | 0;\n };\n var hashIntAlt = function hashIntAlt(num) {\n var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED_ALT;\n // djb2/string-hash\n return (seed << 5) + seed + num | 0;\n };\n var combineHashes = function combineHashes(hash1, hash2) {\n return hash1 * 0x200000 + hash2;\n };\n var combineHashesArray = function combineHashesArray(hashes) {\n return hashes[0] * 0x200000 + hashes[1];\n };\n var hashArrays = function hashArrays(hashes1, hashes2) {\n return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];\n };\n var hashIntsArray = function hashIntsArray(ints, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = ints.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = ints[i++];\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n };\n var hashString = function hashString(str, seed) {\n var entry = {\n value: 0,\n done: false\n };\n var i = 0;\n var length = str.length;\n var iterator = {\n next: function next() {\n if (i < length) {\n entry.value = str.charCodeAt(i++);\n } else {\n entry.done = true;\n }\n return entry;\n }\n };\n return hashIterableInts(iterator, seed);\n };\n var hashStrings = function hashStrings() {\n return hashStringsArray(arguments);\n };\n var hashStringsArray = function hashStringsArray(strs) {\n var hash;\n for (var i = 0; i < strs.length; i++) {\n var str = strs[i];\n if (i === 0) {\n hash = hashString(str);\n } else {\n hash = hashString(str, hash);\n }\n }\n return hash;\n };\n\n /*global console */\n var warningsEnabled = true;\n var warnSupported = console.warn != null; // eslint-disable-line no-console\n var traceSupported = console.trace != null; // eslint-disable-line no-console\n\n var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;\n var trueify = function trueify() {\n return true;\n };\n var falsify = function falsify() {\n return false;\n };\n var zeroify = function zeroify() {\n return 0;\n };\n var noop$1 = function noop() {};\n var error = function error(msg) {\n throw new Error(msg);\n };\n var warnings = function warnings(enabled) {\n if (enabled !== undefined) {\n warningsEnabled = !!enabled;\n } else {\n return warningsEnabled;\n }\n };\n var warn = function warn(msg) {\n /* eslint-disable no-console */\n if (!warnings()) {\n return;\n }\n if (warnSupported) {\n console.warn(msg);\n } else {\n console.log(msg);\n if (traceSupported) {\n console.trace();\n }\n }\n }; /* eslint-enable */\n\n var clone = function clone(obj) {\n return extend({}, obj);\n };\n\n // gets a shallow copy of the argument\n var copy = function copy(obj) {\n if (obj == null) {\n return obj;\n }\n if (array(obj)) {\n return obj.slice();\n } else if (plainObject(obj)) {\n return clone(obj);\n } else {\n return obj;\n }\n };\n var copyArray$1 = function copyArray(arr) {\n return arr.slice();\n };\n var uuid = function uuid(a, b /* placeholders */) {\n for (\n // loop :)\n b = a = '';\n // b - result , a - numeric letiable\n a++ < 36;\n //\n b += a * 51 & 52 // if \"a\" is not 9 or 14 or 19 or 24\n ?\n // return a random number or 4\n (a ^ 15 // if \"a\" is not 15\n ?\n // generate a random number from 0 to 15\n 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless \"a\" is 20, in which case a random number from 8 to 11\n : 4 // otherwise 4\n ).toString(16) : '-' // in other cases (if \"a\" is 9,14,19,24) insert \"-\"\n ) {\n }\n return b;\n };\n var _staticEmptyObject = {};\n var staticEmptyObject = function staticEmptyObject() {\n return _staticEmptyObject;\n };\n var defaults$g = function defaults(_defaults) {\n var keys = Object.keys(_defaults);\n return function (opts) {\n var filledOpts = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var optVal = opts == null ? undefined : opts[key];\n filledOpts[key] = optVal === undefined ? _defaults[key] : optVal;\n }\n return filledOpts;\n };\n };\n var removeFromArray = function removeFromArray(arr, ele, oneCopy) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (arr[i] === ele) {\n arr.splice(i, 1);\n if (oneCopy) {\n break;\n }\n }\n }\n };\n var clearArray = function clearArray(arr) {\n arr.splice(0, arr.length);\n };\n var push = function push(arr, otherArr) {\n for (var i = 0; i < otherArr.length; i++) {\n var el = otherArr[i];\n arr.push(el);\n }\n };\n var getPrefixedProperty = function getPrefixedProperty(obj, propName, prefix) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n\n return obj[propName];\n };\n var setPrefixedProperty = function setPrefixedProperty(obj, propName, prefix, value) {\n if (prefix) {\n propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth\n }\n\n obj[propName] = value;\n };\n\n /* global Map */\n var ObjectMap = /*#__PURE__*/function () {\n function ObjectMap() {\n _classCallCheck(this, ObjectMap);\n this._obj = {};\n }\n _createClass(ObjectMap, [{\n key: \"set\",\n value: function set(key, val) {\n this._obj[key] = val;\n return this;\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this._obj[key] = undefined;\n return this;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = {};\n }\n }, {\n key: \"has\",\n value: function has(key) {\n return this._obj[key] !== undefined;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this._obj[key];\n }\n }]);\n return ObjectMap;\n }();\n var Map$2 = typeof Map !== 'undefined' ? Map : ObjectMap;\n\n /* global Set */\n\n var undef = \"undefined\" ;\n var ObjectSet = /*#__PURE__*/function () {\n function ObjectSet(arrayOrObjectSet) {\n _classCallCheck(this, ObjectSet);\n this._obj = Object.create(null);\n this.size = 0;\n if (arrayOrObjectSet != null) {\n var arr;\n if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {\n arr = arrayOrObjectSet.toArray();\n } else {\n arr = arrayOrObjectSet;\n }\n for (var i = 0; i < arr.length; i++) {\n this.add(arr[i]);\n }\n }\n }\n _createClass(ObjectSet, [{\n key: \"instanceString\",\n value: function instanceString() {\n return 'set';\n }\n }, {\n key: \"add\",\n value: function add(val) {\n var o = this._obj;\n if (o[val] !== 1) {\n o[val] = 1;\n this.size++;\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(val) {\n var o = this._obj;\n if (o[val] === 1) {\n o[val] = 0;\n this.size--;\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._obj = Object.create(null);\n }\n }, {\n key: \"has\",\n value: function has(val) {\n return this._obj[val] === 1;\n }\n }, {\n key: \"toArray\",\n value: function toArray() {\n var _this = this;\n return Object.keys(this._obj).filter(function (key) {\n return _this.has(key);\n });\n }\n }, {\n key: \"forEach\",\n value: function forEach(callback, thisArg) {\n return this.toArray().forEach(callback, thisArg);\n }\n }]);\n return ObjectSet;\n }();\n var Set$1 = (typeof Set === \"undefined\" ? \"undefined\" : _typeof(Set)) !== undef ? Set : ObjectSet;\n\n // represents a node or an edge\n var Element = function Element(cy, params) {\n var restore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (cy === undefined || params === undefined || !core(cy)) {\n error('An element must have a core reference and parameters set');\n return;\n }\n var group = params.group;\n\n // try to automatically infer the group if unspecified\n if (group == null) {\n if (params.data && params.data.source != null && params.data.target != null) {\n group = 'edges';\n } else {\n group = 'nodes';\n }\n }\n\n // validate group\n if (group !== 'nodes' && group !== 'edges') {\n error('An element must be of type `nodes` or `edges`; you specified `' + group + '`');\n return;\n }\n\n // make the element array-like, just like a collection\n this.length = 1;\n this[0] = this;\n\n // NOTE: when something is added here, add also to ele.json()\n var _p = this._private = {\n cy: cy,\n single: true,\n // indicates this is an element\n data: params.data || {},\n // data object\n position: params.position || {\n x: 0,\n y: 0\n },\n // (x, y) position pair\n autoWidth: undefined,\n // width and height of nodes calculated by the renderer when set to special 'auto' value\n autoHeight: undefined,\n autoPadding: undefined,\n compoundBoundsClean: false,\n // whether the compound dimensions need to be recalculated the next time dimensions are read\n listeners: [],\n // array of bound listeners\n group: group,\n // string; 'nodes' or 'edges'\n style: {},\n // properties as set by the style\n rstyle: {},\n // properties for style sent from the renderer to the core\n styleCxts: [],\n // applied style contexts from the styler\n styleKeys: {},\n // per-group keys of style property values\n removed: true,\n // whether it's inside the vis; true if removed (set true here since we call restore)\n selected: params.selected ? true : false,\n // whether it's selected\n selectable: params.selectable === undefined ? true : params.selectable ? true : false,\n // whether it's selectable\n locked: params.locked ? true : false,\n // whether the element is locked (cannot be moved)\n grabbed: false,\n // whether the element is grabbed by the mouse; renderer sets this privately\n grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false,\n // whether the element can be grabbed\n pannable: params.pannable === undefined ? group === 'edges' ? true : false : params.pannable ? true : false,\n // whether the element has passthrough panning enabled\n active: false,\n // whether the element is active from user interaction\n classes: new Set$1(),\n // map ( className => true )\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n rscratch: {},\n // object in which the renderer can store information\n scratch: params.scratch || {},\n // scratch objects\n edges: [],\n // array of connected edges\n children: [],\n // array of children\n parent: params.parent && params.parent.isNode() ? params.parent : null,\n // parent ref\n traversalCache: {},\n // cache of output of traversal functions\n backgrounding: false,\n // whether background images are loading\n bbCache: null,\n // cache of the current bounding box\n bbCacheShift: {\n x: 0,\n y: 0\n },\n // shift applied to cached bb to be applied on next get\n bodyBounds: null,\n // bounds cache of element body, w/o overlay\n overlayBounds: null,\n // bounds cache of element body, including overlay\n labelBounds: {\n // bounds cache of labels\n all: null,\n source: null,\n target: null,\n main: null\n },\n arrowBounds: {\n // bounds cache of edge arrows\n source: null,\n target: null,\n 'mid-source': null,\n 'mid-target': null\n }\n };\n if (_p.position.x == null) {\n _p.position.x = 0;\n }\n if (_p.position.y == null) {\n _p.position.y = 0;\n }\n\n // renderedPosition overrides if specified\n if (params.renderedPosition) {\n var rpos = params.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n _p.position = {\n x: (rpos.x - pan.x) / zoom,\n y: (rpos.y - pan.y) / zoom\n };\n }\n var classes = [];\n if (array(params.classes)) {\n classes = params.classes;\n } else if (string(params.classes)) {\n classes = params.classes.split(/\\s+/);\n }\n for (var i = 0, l = classes.length; i < l; i++) {\n var cls = classes[i];\n if (!cls || cls === '') {\n continue;\n }\n _p.classes.add(cls);\n }\n this.createEmitter();\n var bypass = params.style || params.css;\n if (bypass) {\n warn('Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.');\n this.style(bypass);\n }\n if (restore === undefined || restore) {\n this.restore();\n }\n };\n\n var defineSearch = function defineSearch(params) {\n params = {\n bfs: params.bfs || !params.dfs,\n dfs: params.dfs || !params.bfs\n };\n\n // from pseudocode on wikipedia\n return function searchFn(roots, fn, directed) {\n var options;\n if (plainObject(roots) && !elementOrCollection(roots)) {\n options = roots;\n roots = options.roots || options.root;\n fn = options.visit;\n directed = options.directed;\n }\n directed = arguments.length === 2 && !fn$6(fn) ? fn : directed;\n fn = fn$6(fn) ? fn : function () {};\n var cy = this._private.cy;\n var v = roots = string(roots) ? this.filter(roots) : roots;\n var Q = [];\n var connectedNodes = [];\n var connectedBy = {};\n var id2depth = {};\n var V = {};\n var j = 0;\n var found;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n\n // enqueue v\n for (var i = 0; i < v.length; i++) {\n var vi = v[i];\n var viId = vi.id();\n if (vi.isNode()) {\n Q.unshift(vi);\n if (params.bfs) {\n V[viId] = true;\n connectedNodes.push(vi);\n }\n id2depth[viId] = 0;\n }\n }\n var _loop = function _loop() {\n var v = params.bfs ? Q.shift() : Q.pop();\n var vId = v.id();\n if (params.dfs) {\n if (V[vId]) {\n return \"continue\";\n }\n V[vId] = true;\n connectedNodes.push(v);\n }\n var depth = id2depth[vId];\n var prevEdge = connectedBy[vId];\n var src = prevEdge != null ? prevEdge.source() : null;\n var tgt = prevEdge != null ? prevEdge.target() : null;\n var prevNode = prevEdge == null ? undefined : v.same(src) ? tgt[0] : src[0];\n var ret = void 0;\n ret = fn(v, prevEdge, prevNode, j++, depth);\n if (ret === true) {\n found = v;\n return \"break\";\n }\n if (ret === false) {\n return \"break\";\n }\n var vwEdges = v.connectedEdges().filter(function (e) {\n return (!directed || e.source().same(v)) && edges.has(e);\n });\n for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {\n var e = vwEdges[_i2];\n var w = e.connectedNodes().filter(function (n) {\n return !n.same(v) && nodes.has(n);\n });\n var wId = w.id();\n if (w.length !== 0 && !V[wId]) {\n w = w[0];\n Q.push(w);\n if (params.bfs) {\n V[wId] = true;\n connectedNodes.push(w);\n }\n connectedBy[wId] = e;\n id2depth[wId] = id2depth[vId] + 1;\n }\n }\n };\n while (Q.length !== 0) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n if (_ret === \"break\") break;\n }\n var connectedEles = cy.collection();\n for (var _i = 0; _i < connectedNodes.length; _i++) {\n var node = connectedNodes[_i];\n var edge = connectedBy[node.id()];\n if (edge != null) {\n connectedEles.push(edge);\n }\n connectedEles.push(node);\n }\n return {\n path: cy.collection(connectedEles),\n found: cy.collection(found)\n };\n };\n };\n\n // search, spanning trees, etc\n var elesfn$v = {\n breadthFirstSearch: defineSearch({\n bfs: true\n }),\n depthFirstSearch: defineSearch({\n dfs: true\n })\n };\n\n // nice, short mathematical alias\n elesfn$v.bfs = elesfn$v.breadthFirstSearch;\n elesfn$v.dfs = elesfn$v.depthFirstSearch;\n\n var heap$1 = createCommonjsModule(function (module, exports) {\n // Generated by CoffeeScript 1.8.0\n (function() {\n var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup;\n\n floor = Math.floor, min = Math.min;\n\n\n /*\n Default comparison function to be used\n */\n\n defaultCmp = function(x, y) {\n if (x < y) {\n return -1;\n }\n if (x > y) {\n return 1;\n }\n return 0;\n };\n\n\n /*\n Insert item x in list a, and keep it sorted assuming a is sorted.\n \n If x is already in a, insert it to the right of the rightmost x.\n \n Optional args lo (default 0) and hi (default a.length) bound the slice\n of a to be searched.\n */\n\n insort = function(a, x, lo, hi, cmp) {\n var mid;\n if (lo == null) {\n lo = 0;\n }\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (lo < 0) {\n throw new Error('lo must be non-negative');\n }\n if (hi == null) {\n hi = a.length;\n }\n while (lo < hi) {\n mid = floor((lo + hi) / 2);\n if (cmp(x, a[mid]) < 0) {\n hi = mid;\n } else {\n lo = mid + 1;\n }\n }\n return ([].splice.apply(a, [lo, lo - lo].concat(x)), x);\n };\n\n\n /*\n Push item onto heap, maintaining the heap invariant.\n */\n\n heappush = function(array, item, cmp) {\n if (cmp == null) {\n cmp = defaultCmp;\n }\n array.push(item);\n return _siftdown(array, 0, array.length - 1, cmp);\n };\n\n\n /*\n Pop the smallest item off the heap, maintaining the heap invariant.\n */\n\n heappop = function(array, cmp) {\n var lastelt, returnitem;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n lastelt = array.pop();\n if (array.length) {\n returnitem = array[0];\n array[0] = lastelt;\n _siftup(array, 0, cmp);\n } else {\n returnitem = lastelt;\n }\n return returnitem;\n };\n\n\n /*\n Pop and return the current smallest value, and add the new item.\n \n This is more efficient than heappop() followed by heappush(), and can be\n more appropriate when using a fixed size heap. Note that the value\n returned may be larger than item! That constrains reasonable use of\n this routine unless written as part of a conditional replacement:\n if item > array[0]\n item = heapreplace(array, item)\n */\n\n heapreplace = function(array, item, cmp) {\n var returnitem;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n returnitem = array[0];\n array[0] = item;\n _siftup(array, 0, cmp);\n return returnitem;\n };\n\n\n /*\n Fast version of a heappush followed by a heappop.\n */\n\n heappushpop = function(array, item, cmp) {\n var _ref;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (array.length && cmp(array[0], item) < 0) {\n _ref = [array[0], item], item = _ref[0], array[0] = _ref[1];\n _siftup(array, 0, cmp);\n }\n return item;\n };\n\n\n /*\n Transform list into a heap, in-place, in O(array.length) time.\n */\n\n heapify = function(array, cmp) {\n var i, _i, _len, _ref1, _results, _results1;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n _ref1 = (function() {\n _results1 = [];\n for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); }\n return _results1;\n }).apply(this).reverse();\n _results = [];\n for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n i = _ref1[_i];\n _results.push(_siftup(array, i, cmp));\n }\n return _results;\n };\n\n\n /*\n Update the position of the given item in the heap.\n This function should be called every time the item is being modified.\n */\n\n updateItem = function(array, item, cmp) {\n var pos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n pos = array.indexOf(item);\n if (pos === -1) {\n return;\n }\n _siftdown(array, 0, pos, cmp);\n return _siftup(array, pos, cmp);\n };\n\n\n /*\n Find the n largest elements in a dataset.\n */\n\n nlargest = function(array, n, cmp) {\n var elem, result, _i, _len, _ref;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n result = array.slice(0, n);\n if (!result.length) {\n return result;\n }\n heapify(result, cmp);\n _ref = array.slice(n);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elem = _ref[_i];\n heappushpop(result, elem, cmp);\n }\n return result.sort(cmp).reverse();\n };\n\n\n /*\n Find the n smallest elements in a dataset.\n */\n\n nsmallest = function(array, n, cmp) {\n var elem, los, result, _i, _j, _len, _ref, _ref1, _results;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n if (n * 10 <= array.length) {\n result = array.slice(0, n).sort(cmp);\n if (!result.length) {\n return result;\n }\n los = result[result.length - 1];\n _ref = array.slice(n);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elem = _ref[_i];\n if (cmp(elem, los) < 0) {\n insort(result, elem, 0, null, cmp);\n result.pop();\n los = result[result.length - 1];\n }\n }\n return result;\n }\n heapify(array, cmp);\n _results = [];\n for (_j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {\n _results.push(heappop(array, cmp));\n }\n return _results;\n };\n\n _siftdown = function(array, startpos, pos, cmp) {\n var newitem, parent, parentpos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n newitem = array[pos];\n while (pos > startpos) {\n parentpos = (pos - 1) >> 1;\n parent = array[parentpos];\n if (cmp(newitem, parent) < 0) {\n array[pos] = parent;\n pos = parentpos;\n continue;\n }\n break;\n }\n return array[pos] = newitem;\n };\n\n _siftup = function(array, pos, cmp) {\n var childpos, endpos, newitem, rightpos, startpos;\n if (cmp == null) {\n cmp = defaultCmp;\n }\n endpos = array.length;\n startpos = pos;\n newitem = array[pos];\n childpos = 2 * pos + 1;\n while (childpos < endpos) {\n rightpos = childpos + 1;\n if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) {\n childpos = rightpos;\n }\n array[pos] = array[childpos];\n pos = childpos;\n childpos = 2 * pos + 1;\n }\n array[pos] = newitem;\n return _siftdown(array, startpos, pos, cmp);\n };\n\n Heap = (function() {\n Heap.push = heappush;\n\n Heap.pop = heappop;\n\n Heap.replace = heapreplace;\n\n Heap.pushpop = heappushpop;\n\n Heap.heapify = heapify;\n\n Heap.updateItem = updateItem;\n\n Heap.nlargest = nlargest;\n\n Heap.nsmallest = nsmallest;\n\n function Heap(cmp) {\n this.cmp = cmp != null ? cmp : defaultCmp;\n this.nodes = [];\n }\n\n Heap.prototype.push = function(x) {\n return heappush(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.pop = function() {\n return heappop(this.nodes, this.cmp);\n };\n\n Heap.prototype.peek = function() {\n return this.nodes[0];\n };\n\n Heap.prototype.contains = function(x) {\n return this.nodes.indexOf(x) !== -1;\n };\n\n Heap.prototype.replace = function(x) {\n return heapreplace(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.pushpop = function(x) {\n return heappushpop(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.heapify = function() {\n return heapify(this.nodes, this.cmp);\n };\n\n Heap.prototype.updateItem = function(x) {\n return updateItem(this.nodes, x, this.cmp);\n };\n\n Heap.prototype.clear = function() {\n return this.nodes = [];\n };\n\n Heap.prototype.empty = function() {\n return this.nodes.length === 0;\n };\n\n Heap.prototype.size = function() {\n return this.nodes.length;\n };\n\n Heap.prototype.clone = function() {\n var heap;\n heap = new Heap();\n heap.nodes = this.nodes.slice(0);\n return heap;\n };\n\n Heap.prototype.toArray = function() {\n return this.nodes.slice(0);\n };\n\n Heap.prototype.insert = Heap.prototype.push;\n\n Heap.prototype.top = Heap.prototype.peek;\n\n Heap.prototype.front = Heap.prototype.peek;\n\n Heap.prototype.has = Heap.prototype.contains;\n\n Heap.prototype.copy = Heap.prototype.clone;\n\n return Heap;\n\n })();\n\n (function(root, factory) {\n {\n return module.exports = factory();\n }\n })(this, function() {\n return Heap;\n });\n\n }).call(commonjsGlobal);\n });\n\n var heap = heap$1;\n\n var dijkstraDefaults = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n });\n var elesfn$u = {\n dijkstra: function dijkstra(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n weight: args[1],\n directed: args[2]\n };\n }\n var _dijkstraDefaults = dijkstraDefaults(options),\n root = _dijkstraDefaults.root,\n weight = _dijkstraDefaults.weight,\n directed = _dijkstraDefaults.directed;\n var eles = this;\n var weightFn = weight;\n var source = string(root) ? this.filter(root)[0] : root[0];\n var dist = {};\n var prev = {};\n var knownDist = {};\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (ele) {\n return ele.isLoop();\n });\n var getDist = function getDist(node) {\n return dist[node.id()];\n };\n var setDist = function setDist(node, d) {\n dist[node.id()] = d;\n Q.updateItem(node);\n };\n var Q = new heap(function (a, b) {\n return getDist(a) - getDist(b);\n });\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n dist[node.id()] = node.same(source) ? 0 : Infinity;\n Q.push(node);\n }\n var distBetween = function distBetween(u, v) {\n var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges);\n var smallestDistance = Infinity;\n var smallestEdge;\n for (var _i = 0; _i < uvs.length; _i++) {\n var edge = uvs[_i];\n var _weight = weightFn(edge);\n if (_weight < smallestDistance || !smallestEdge) {\n smallestDistance = _weight;\n smallestEdge = edge;\n }\n }\n return {\n edge: smallestEdge,\n dist: smallestDistance\n };\n };\n while (Q.size() > 0) {\n var u = Q.pop();\n var smalletsDist = getDist(u);\n var uid = u.id();\n knownDist[uid] = smalletsDist;\n if (smalletsDist === Infinity) {\n continue;\n }\n var neighbors = u.neighborhood().intersect(nodes);\n for (var _i2 = 0; _i2 < neighbors.length; _i2++) {\n var v = neighbors[_i2];\n var vid = v.id();\n var vDist = distBetween(u, v);\n var alt = smalletsDist + vDist.dist;\n if (alt < getDist(v)) {\n setDist(v, alt);\n prev[vid] = {\n node: u,\n edge: vDist.edge\n };\n }\n } // for\n } // while\n\n return {\n distanceTo: function distanceTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n return knownDist[target.id()];\n },\n pathTo: function pathTo(node) {\n var target = string(node) ? nodes.filter(node)[0] : node[0];\n var S = [];\n var u = target;\n var uid = u.id();\n if (target.length > 0) {\n S.unshift(target);\n while (prev[uid]) {\n var p = prev[uid];\n S.unshift(p.edge);\n S.unshift(p.node);\n u = p.node;\n uid = u.id();\n }\n }\n return eles.spawn(S);\n }\n };\n }\n };\n\n var elesfn$t = {\n // kruskal's algorithm (finds min spanning tree, assuming undirected graph)\n // implemented from pseudocode from wikipedia\n kruskal: function kruskal(weightFn) {\n weightFn = weightFn || function (edge) {\n return 1;\n };\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var forest = new Array(numNodes);\n var A = nodes; // assumes byGroup() creates new collections that can be safely mutated\n\n var findSetIndex = function findSetIndex(ele) {\n for (var i = 0; i < forest.length; i++) {\n var eles = forest[i];\n if (eles.has(ele)) {\n return i;\n }\n }\n };\n\n // start with one forest per node\n for (var i = 0; i < numNodes; i++) {\n forest[i] = this.spawn(nodes[i]);\n }\n var S = edges.sort(function (a, b) {\n return weightFn(a) - weightFn(b);\n });\n for (var _i = 0; _i < S.length; _i++) {\n var edge = S[_i];\n var u = edge.source()[0];\n var v = edge.target()[0];\n var setUIndex = findSetIndex(u);\n var setVIndex = findSetIndex(v);\n var setU = forest[setUIndex];\n var setV = forest[setVIndex];\n if (setUIndex !== setVIndex) {\n A.merge(edge);\n\n // combine forests for u and v\n setU.merge(setV);\n forest.splice(setVIndex, 1);\n }\n }\n return A;\n }\n };\n\n var aStarDefaults = defaults$g({\n root: null,\n goal: null,\n weight: function weight(edge) {\n return 1;\n },\n heuristic: function heuristic(edge) {\n return 0;\n },\n directed: false\n });\n var elesfn$s = {\n // Implemented from pseudocode from wikipedia\n aStar: function aStar(options) {\n var cy = this.cy();\n var _aStarDefaults = aStarDefaults(options),\n root = _aStarDefaults.root,\n goal = _aStarDefaults.goal,\n heuristic = _aStarDefaults.heuristic,\n directed = _aStarDefaults.directed,\n weight = _aStarDefaults.weight;\n root = cy.collection(root)[0];\n goal = cy.collection(goal)[0];\n var sid = root.id();\n var tid = goal.id();\n var gScore = {};\n var fScore = {};\n var closedSetIds = {};\n var openSet = new heap(function (a, b) {\n return fScore[a.id()] - fScore[b.id()];\n });\n var openSetIds = new Set$1();\n var cameFrom = {};\n var cameFromEdge = {};\n var addToOpenSet = function addToOpenSet(ele, id) {\n openSet.push(ele);\n openSetIds.add(id);\n };\n var cMin, cMinId;\n var popFromOpenSet = function popFromOpenSet() {\n cMin = openSet.pop();\n cMinId = cMin.id();\n openSetIds[\"delete\"](cMinId);\n };\n var isInOpenSet = function isInOpenSet(id) {\n return openSetIds.has(id);\n };\n addToOpenSet(root, sid);\n gScore[sid] = 0;\n fScore[sid] = heuristic(root);\n\n // Counter\n var steps = 0;\n\n // Main loop\n while (openSet.size() > 0) {\n popFromOpenSet();\n steps++;\n\n // If we've found our goal, then we are done\n if (cMinId === tid) {\n var path = [];\n var pathNode = goal;\n var pathNodeId = tid;\n var pathEdge = cameFromEdge[pathNodeId];\n for (;;) {\n path.unshift(pathNode);\n if (pathEdge != null) {\n path.unshift(pathEdge);\n }\n pathNode = cameFrom[pathNodeId];\n if (pathNode == null) {\n break;\n }\n pathNodeId = pathNode.id();\n pathEdge = cameFromEdge[pathNodeId];\n }\n return {\n found: true,\n distance: gScore[cMinId],\n path: this.spawn(path),\n steps: steps\n };\n }\n\n // Add cMin to processed nodes\n closedSetIds[cMinId] = true;\n\n // Update scores for neighbors of cMin\n // Take into account if graph is directed or not\n var vwEdges = cMin._private.edges;\n for (var i = 0; i < vwEdges.length; i++) {\n var e = vwEdges[i];\n\n // edge must be in set of calling eles\n if (!this.hasElementWithId(e.id())) {\n continue;\n }\n\n // cMin must be the source of edge if directed\n if (directed && e.data('source') !== cMinId) {\n continue;\n }\n var wSrc = e.source();\n var wTgt = e.target();\n var w = wSrc.id() !== cMinId ? wSrc : wTgt;\n var wid = w.id();\n\n // node must be in set of calling eles\n if (!this.hasElementWithId(wid)) {\n continue;\n }\n\n // if node is in closedSet, ignore it\n if (closedSetIds[wid]) {\n continue;\n }\n\n // New tentative score for node w\n var tempScore = gScore[cMinId] + weight(e);\n\n // Update gScore for node w if:\n // w not present in openSet\n // OR\n // tentative gScore is less than previous value\n\n // w not in openSet\n if (!isInOpenSet(wid)) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n addToOpenSet(w, wid);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n continue;\n }\n\n // w already in openSet, but with greater gScore\n if (tempScore < gScore[wid]) {\n gScore[wid] = tempScore;\n fScore[wid] = tempScore + heuristic(w);\n cameFrom[wid] = cMin;\n cameFromEdge[wid] = e;\n }\n } // End of neighbors update\n } // End of main loop\n\n // If we've reached here, then we've not reached our goal\n return {\n found: false,\n distance: undefined,\n path: undefined,\n steps: steps\n };\n }\n }; // elesfn\n\n var floydWarshallDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false\n });\n var elesfn$r = {\n // Implemented from pseudocode from wikipedia\n floydWarshall: function floydWarshall(options) {\n var cy = this.cy();\n var _floydWarshallDefault = floydWarshallDefaults(options),\n weight = _floydWarshallDefault.weight,\n directed = _floydWarshallDefault.directed;\n var weightFn = weight;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var N = nodes.length;\n var Nsq = N * N;\n var indexOf = function indexOf(node) {\n return nodes.indexOf(node);\n };\n var atIndex = function atIndex(i) {\n return nodes[i];\n };\n\n // Initialize distance matrix\n var dist = new Array(Nsq);\n for (var n = 0; n < Nsq; n++) {\n var j = n % N;\n var i = (n - j) / N;\n if (i === j) {\n dist[n] = 0;\n } else {\n dist[n] = Infinity;\n }\n }\n\n // Initialize matrix used for path reconstruction\n // Initialize distance matrix\n var next = new Array(Nsq);\n var edgeNext = new Array(Nsq);\n\n // Process edges\n for (var _i = 0; _i < edges.length; _i++) {\n var edge = edges[_i];\n var src = edge.source()[0];\n var tgt = edge.target()[0];\n if (src === tgt) {\n continue;\n } // exclude loops\n\n var s = indexOf(src);\n var t = indexOf(tgt);\n var st = s * N + t; // source to target index\n var _weight = weightFn(edge);\n\n // Check if already process another edge between same 2 nodes\n if (dist[st] > _weight) {\n dist[st] = _weight;\n next[st] = t;\n edgeNext[st] = edge;\n }\n\n // If undirected graph, process 'reversed' edge\n if (!directed) {\n var ts = t * N + s; // target to source index\n\n if (!directed && dist[ts] > _weight) {\n dist[ts] = _weight;\n next[ts] = s;\n edgeNext[ts] = edge;\n }\n }\n }\n\n // Main loop\n for (var k = 0; k < N; k++) {\n for (var _i2 = 0; _i2 < N; _i2++) {\n var ik = _i2 * N + k;\n for (var _j = 0; _j < N; _j++) {\n var ij = _i2 * N + _j;\n var kj = k * N + _j;\n if (dist[ik] + dist[kj] < dist[ij]) {\n dist[ij] = dist[ik] + dist[kj];\n next[ij] = next[ik];\n }\n }\n }\n }\n var getArgEle = function getArgEle(ele) {\n return (string(ele) ? cy.filter(ele) : ele)[0];\n };\n var indexOfArgEle = function indexOfArgEle(ele) {\n return indexOf(getArgEle(ele));\n };\n var res = {\n distance: function distance(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n return dist[i * N + j];\n },\n path: function path(from, to) {\n var i = indexOfArgEle(from);\n var j = indexOfArgEle(to);\n var fromNode = atIndex(i);\n if (i === j) {\n return fromNode.collection();\n }\n if (next[i * N + j] == null) {\n return cy.collection();\n }\n var path = cy.collection();\n var prev = i;\n var edge;\n path.merge(fromNode);\n while (i !== j) {\n prev = i;\n i = next[i * N + j];\n edge = edgeNext[prev * N + i];\n path.merge(edge);\n path.merge(atIndex(i));\n }\n return path;\n }\n };\n return res;\n } // floydWarshall\n }; // elesfn\n\n var bellmanFordDefaults = defaults$g({\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n root: null\n });\n var elesfn$q = {\n // Implemented from pseudocode from wikipedia\n bellmanFord: function bellmanFord(options) {\n var _this = this;\n var _bellmanFordDefaults = bellmanFordDefaults(options),\n weight = _bellmanFordDefaults.weight,\n directed = _bellmanFordDefaults.directed,\n root = _bellmanFordDefaults.root;\n var weightFn = weight;\n var eles = this;\n var cy = this.cy();\n var _this$byGroup = this.byGroup(),\n edges = _this$byGroup.edges,\n nodes = _this$byGroup.nodes;\n var numNodes = nodes.length;\n var infoMap = new Map$2();\n var hasNegativeWeightCycle = false;\n var negativeWeightCycles = [];\n root = cy.collection(root)[0]; // in case selector passed\n\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numEdges = edges.length;\n var getInfo = function getInfo(node) {\n var obj = infoMap.get(node.id());\n if (!obj) {\n obj = {};\n infoMap.set(node.id(), obj);\n }\n return obj;\n };\n var getNodeFromTo = function getNodeFromTo(to) {\n return (string(to) ? cy.$(to) : to)[0];\n };\n var distanceTo = function distanceTo(to) {\n return getInfo(getNodeFromTo(to)).dist;\n };\n var pathTo = function pathTo(to) {\n var thisStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : root;\n var end = getNodeFromTo(to);\n var path = [];\n var node = end;\n for (;;) {\n if (node == null) {\n return _this.spawn();\n }\n var _getInfo = getInfo(node),\n edge = _getInfo.edge,\n pred = _getInfo.pred;\n path.unshift(node[0]);\n if (node.same(thisStart) && path.length > 0) {\n break;\n }\n if (edge != null) {\n path.unshift(edge);\n }\n node = pred;\n }\n return eles.spawn(path);\n };\n\n // Initializations { dist, pred, edge }\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n var info = getInfo(node);\n if (node.same(root)) {\n info.dist = 0;\n } else {\n info.dist = Infinity;\n }\n info.pred = null;\n info.edge = null;\n }\n\n // Edges relaxation\n var replacedEdge = false;\n var checkForEdgeReplacement = function checkForEdgeReplacement(node1, node2, edge, info1, info2, weight) {\n var dist = info1.dist + weight;\n if (dist < info2.dist && !edge.same(info1.edge)) {\n info2.dist = dist;\n info2.pred = node1;\n info2.edge = edge;\n replacedEdge = true;\n }\n };\n for (var _i = 1; _i < numNodes; _i++) {\n replacedEdge = false;\n for (var e = 0; e < numEdges; e++) {\n var edge = edges[e];\n var src = edge.source();\n var tgt = edge.target();\n var _weight = weightFn(edge);\n var srcInfo = getInfo(src);\n var tgtInfo = getInfo(tgt);\n checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);\n\n // If undirected graph, we need to take into account the 'reverse' edge\n if (!directed) {\n checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);\n }\n }\n if (!replacedEdge) {\n break;\n }\n }\n if (replacedEdge) {\n // Check for negative weight cycles\n var negativeWeightCycleIds = [];\n for (var _e = 0; _e < numEdges; _e++) {\n var _edge = edges[_e];\n var _src = _edge.source();\n var _tgt = _edge.target();\n var _weight2 = weightFn(_edge);\n var srcDist = getInfo(_src).dist;\n var tgtDist = getInfo(_tgt).dist;\n if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {\n if (!hasNegativeWeightCycle) {\n warn('Graph contains a negative weight cycle for Bellman-Ford');\n hasNegativeWeightCycle = true;\n }\n if (options.findNegativeWeightCycles !== false) {\n var negativeNodes = [];\n if (srcDist + _weight2 < tgtDist) {\n negativeNodes.push(_src);\n }\n if (!directed && tgtDist + _weight2 < srcDist) {\n negativeNodes.push(_tgt);\n }\n var numNegativeNodes = negativeNodes.length;\n for (var n = 0; n < numNegativeNodes; n++) {\n var start = negativeNodes[n];\n var cycle = [start];\n cycle.push(getInfo(start).edge);\n var _node = getInfo(start).pred;\n while (cycle.indexOf(_node) === -1) {\n cycle.push(_node);\n cycle.push(getInfo(_node).edge);\n _node = getInfo(_node).pred;\n }\n cycle = cycle.slice(cycle.indexOf(_node));\n var smallestId = cycle[0].id();\n var smallestIndex = 0;\n for (var c = 2; c < cycle.length; c += 2) {\n if (cycle[c].id() < smallestId) {\n smallestId = cycle[c].id();\n smallestIndex = c;\n }\n }\n cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));\n cycle.push(cycle[0]);\n var cycleId = cycle.map(function (el) {\n return el.id();\n }).join(\",\");\n if (negativeWeightCycleIds.indexOf(cycleId) === -1) {\n negativeWeightCycles.push(eles.spawn(cycle));\n negativeWeightCycleIds.push(cycleId);\n }\n }\n } else {\n break;\n }\n }\n }\n }\n return {\n distanceTo: distanceTo,\n pathTo: pathTo,\n hasNegativeWeightCycle: hasNegativeWeightCycle,\n negativeWeightCycles: negativeWeightCycles\n };\n } // bellmanFord\n }; // elesfn\n\n var sqrt2 = Math.sqrt(2);\n\n // Function which colapses 2 (meta) nodes into one\n // Updates the remaining edge lists\n // Receives as a paramater the edge which causes the collapse\n var collapse = function collapse(edgeIndex, nodeMap, remainingEdges) {\n if (remainingEdges.length === 0) {\n error(\"Karger-Stein must be run on a connected (sub)graph\");\n }\n var edgeInfo = remainingEdges[edgeIndex];\n var sourceIn = edgeInfo[1];\n var targetIn = edgeInfo[2];\n var partition1 = nodeMap[sourceIn];\n var partition2 = nodeMap[targetIn];\n var newEdges = remainingEdges; // re-use array\n\n // Delete all edges between partition1 and partition2\n for (var i = newEdges.length - 1; i >= 0; i--) {\n var edge = newEdges[i];\n var src = edge[1];\n var tgt = edge[2];\n if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {\n newEdges.splice(i, 1);\n }\n }\n\n // All edges pointing to partition2 should now point to partition1\n for (var _i = 0; _i < newEdges.length; _i++) {\n var _edge = newEdges[_i];\n if (_edge[1] === partition2) {\n // Check source\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][1] = partition1;\n } else if (_edge[2] === partition2) {\n // Check target\n newEdges[_i] = _edge.slice(); // copy\n newEdges[_i][2] = partition1;\n }\n }\n\n // Move all nodes from partition2 to partition1\n for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {\n if (nodeMap[_i2] === partition2) {\n nodeMap[_i2] = partition1;\n }\n }\n return newEdges;\n };\n\n // Contracts a graph until we reach a certain number of meta nodes\n var contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) {\n while (size > sizeLimit) {\n // Choose an edge randomly\n var edgeIndex = Math.floor(Math.random() * remainingEdges.length);\n\n // Collapse graph based on edge\n remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);\n size--;\n }\n return remainingEdges;\n };\n var elesfn$p = {\n // Computes the minimum cut of an undirected graph\n // Returns the correct answer with high probability\n kargerStein: function kargerStein() {\n var _this = this;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n edges.unmergeBy(function (edge) {\n return edge.isLoop();\n });\n var numNodes = nodes.length;\n var numEdges = edges.length;\n var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));\n var stopSize = Math.floor(numNodes / sqrt2);\n if (numNodes < 2) {\n error('At least 2 nodes are required for Karger-Stein algorithm');\n return undefined;\n }\n\n // Now store edge destination as indexes\n // Format for each edge (edge index, source node index, target node index)\n var edgeIndexes = [];\n for (var i = 0; i < numEdges; i++) {\n var e = edges[i];\n edgeIndexes.push([i, nodes.indexOf(e.source()), nodes.indexOf(e.target())]);\n }\n\n // We will store the best cut found here\n var minCutSize = Infinity;\n var minCutEdgeIndexes = [];\n var minCutNodeMap = new Array(numNodes);\n\n // Initial meta node partition\n var metaNodeMap = new Array(numNodes);\n var metaNodeMap2 = new Array(numNodes);\n var copyNodesMap = function copyNodesMap(from, to) {\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n to[_i3] = from[_i3];\n }\n };\n\n // Main loop\n for (var iter = 0; iter <= numIter; iter++) {\n // Reset meta node partition\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n metaNodeMap[_i4] = _i4;\n }\n\n // Contract until stop point (stopSize nodes)\n var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);\n var edgesState2 = edgesState.slice(); // copy\n\n // Create a copy of the colapsed nodes state\n copyNodesMap(metaNodeMap, metaNodeMap2);\n\n // Run 2 iterations starting in the stop state\n var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);\n var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);\n\n // Is any of the 2 results the best cut so far?\n if (res1.length <= res2.length && res1.length < minCutSize) {\n minCutSize = res1.length;\n minCutEdgeIndexes = res1;\n copyNodesMap(metaNodeMap, minCutNodeMap);\n } else if (res2.length <= res1.length && res2.length < minCutSize) {\n minCutSize = res2.length;\n minCutEdgeIndexes = res2;\n copyNodesMap(metaNodeMap2, minCutNodeMap);\n }\n } // end of main loop\n\n // Construct result\n var cut = this.spawn(minCutEdgeIndexes.map(function (e) {\n return edges[e[0]];\n }));\n var partition1 = this.spawn();\n var partition2 = this.spawn();\n\n // traverse metaNodeMap for best cut\n var witnessNodePartition = minCutNodeMap[0];\n for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {\n var partitionId = minCutNodeMap[_i5];\n var node = nodes[_i5];\n if (partitionId === witnessNodePartition) {\n partition1.merge(node);\n } else {\n partition2.merge(node);\n }\n }\n\n // construct components corresponding to each disjoint subset of nodes\n var constructComponent = function constructComponent(subset) {\n var component = _this.spawn();\n subset.forEach(function (node) {\n component.merge(node);\n node.connectedEdges().forEach(function (edge) {\n // ensure edge is within calling collection and edge is not in cut\n if (_this.contains(edge) && !cut.contains(edge)) {\n component.merge(edge);\n }\n });\n });\n return component;\n };\n var components = [constructComponent(partition1), constructComponent(partition2)];\n var ret = {\n cut: cut,\n components: components,\n // n.b. partitions are included to be compatible with the old api spec\n // (could be removed in a future major version)\n partition1: partition1,\n partition2: partition2\n };\n return ret;\n }\n }; // elesfn\n\n var copyPosition = function copyPosition(p) {\n return {\n x: p.x,\n y: p.y\n };\n };\n var modelToRenderedPosition = function modelToRenderedPosition(p, zoom, pan) {\n return {\n x: p.x * zoom + pan.x,\n y: p.y * zoom + pan.y\n };\n };\n var renderedToModelPosition = function renderedToModelPosition(p, zoom, pan) {\n return {\n x: (p.x - pan.x) / zoom,\n y: (p.y - pan.y) / zoom\n };\n };\n var array2point = function array2point(arr) {\n return {\n x: arr[0],\n y: arr[1]\n };\n };\n var min = function min(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var min = Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n min = Math.min(val, min);\n }\n }\n return min;\n };\n var max = function max(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var max = -Infinity;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n max = Math.max(val, max);\n }\n }\n return max;\n };\n var mean = function mean(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var total = 0;\n var n = 0;\n for (var i = begin; i < end; i++) {\n var val = arr[i];\n if (isFinite(val)) {\n total += val;\n n++;\n }\n }\n return total / n;\n };\n var median = function median(arr) {\n var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length;\n var copy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var includeHoles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n if (copy) {\n arr = arr.slice(begin, end);\n } else {\n if (end < arr.length) {\n arr.splice(end, arr.length - end);\n }\n if (begin > 0) {\n arr.splice(0, begin);\n }\n }\n\n // all non finite (e.g. Infinity, NaN) elements must be -Infinity so they go to the start\n var off = 0; // offset from non-finite values\n for (var i = arr.length - 1; i >= 0; i--) {\n var v = arr[i];\n if (includeHoles) {\n if (!isFinite(v)) {\n arr[i] = -Infinity;\n off++;\n }\n } else {\n // just remove it if we don't want to consider holes\n arr.splice(i, 1);\n }\n }\n if (sort) {\n arr.sort(function (a, b) {\n return a - b;\n }); // requires copy = true if you don't want to change the orig\n }\n\n var len = arr.length;\n var mid = Math.floor(len / 2);\n if (len % 2 !== 0) {\n return arr[mid + 1 + off];\n } else {\n return (arr[mid - 1 + off] + arr[mid + off]) / 2;\n }\n };\n var deg2rad = function deg2rad(deg) {\n return Math.PI * deg / 180;\n };\n var getAngleFromDisp = function getAngleFromDisp(dispX, dispY) {\n return Math.atan2(dispY, dispX) - Math.PI / 2;\n };\n var log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.log(2);\n };\n var signum = function signum(x) {\n if (x > 0) {\n return 1;\n } else if (x < 0) {\n return -1;\n } else {\n return 0;\n }\n };\n var dist = function dist(p1, p2) {\n return Math.sqrt(sqdist(p1, p2));\n };\n var sqdist = function sqdist(p1, p2) {\n var dx = p2.x - p1.x;\n var dy = p2.y - p1.y;\n return dx * dx + dy * dy;\n };\n var inPlaceSumNormalize = function inPlaceSumNormalize(v) {\n var length = v.length;\n\n // First, get sum of all elements\n var total = 0;\n for (var i = 0; i < length; i++) {\n total += v[i];\n }\n\n // Now, divide each by the sum of all elements\n for (var _i = 0; _i < length; _i++) {\n v[_i] = v[_i] / total;\n }\n return v;\n };\n\n // from http://en.wikipedia.org/wiki/Bézier_curve#Quadratic_curves\n var qbezierAt = function qbezierAt(p0, p1, p2, t) {\n return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2;\n };\n var qbezierPtAt = function qbezierPtAt(p0, p1, p2, t) {\n return {\n x: qbezierAt(p0.x, p1.x, p2.x, t),\n y: qbezierAt(p0.y, p1.y, p2.y, t)\n };\n };\n var lineAt = function lineAt(p0, p1, t, d) {\n var vec = {\n x: p1.x - p0.x,\n y: p1.y - p0.y\n };\n var vecDist = dist(p0, p1);\n var normVec = {\n x: vec.x / vecDist,\n y: vec.y / vecDist\n };\n t = t == null ? 0 : t;\n d = d != null ? d : t * vecDist;\n return {\n x: p0.x + normVec.x * d,\n y: p0.y + normVec.y * d\n };\n };\n var bound = function bound(min, val, max) {\n return Math.max(min, Math.min(max, val));\n };\n\n // makes a full bb (x1, y1, x2, y2, w, h) from implicit params\n var makeBoundingBox = function makeBoundingBox(bb) {\n if (bb == null) {\n return {\n x1: Infinity,\n y1: Infinity,\n x2: -Infinity,\n y2: -Infinity,\n w: 0,\n h: 0\n };\n } else if (bb.x1 != null && bb.y1 != null) {\n if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x2,\n y2: bb.y2,\n w: bb.x2 - bb.x1,\n h: bb.y2 - bb.y1\n };\n } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {\n return {\n x1: bb.x1,\n y1: bb.y1,\n x2: bb.x1 + bb.w,\n y2: bb.y1 + bb.h,\n w: bb.w,\n h: bb.h\n };\n }\n }\n };\n var copyBoundingBox = function copyBoundingBox(bb) {\n return {\n x1: bb.x1,\n x2: bb.x2,\n w: bb.w,\n y1: bb.y1,\n y2: bb.y2,\n h: bb.h\n };\n };\n var clearBoundingBox = function clearBoundingBox(bb) {\n bb.x1 = Infinity;\n bb.y1 = Infinity;\n bb.x2 = -Infinity;\n bb.y2 = -Infinity;\n bb.w = 0;\n bb.h = 0;\n };\n var shiftBoundingBox = function shiftBoundingBox(bb, dx, dy) {\n return {\n x1: bb.x1 + dx,\n x2: bb.x2 + dx,\n y1: bb.y1 + dy,\n y2: bb.y2 + dy,\n w: bb.w,\n h: bb.h\n };\n };\n var updateBoundingBox = function updateBoundingBox(bb1, bb2) {\n // update bb1 with bb2 bounds\n\n bb1.x1 = Math.min(bb1.x1, bb2.x1);\n bb1.x2 = Math.max(bb1.x2, bb2.x2);\n bb1.w = bb1.x2 - bb1.x1;\n bb1.y1 = Math.min(bb1.y1, bb2.y1);\n bb1.y2 = Math.max(bb1.y2, bb2.y2);\n bb1.h = bb1.y2 - bb1.y1;\n };\n var expandBoundingBoxByPoint = function expandBoundingBoxByPoint(bb, x, y) {\n bb.x1 = Math.min(bb.x1, x);\n bb.x2 = Math.max(bb.x2, x);\n bb.w = bb.x2 - bb.x1;\n bb.y1 = Math.min(bb.y1, y);\n bb.y2 = Math.max(bb.y2, y);\n bb.h = bb.y2 - bb.y1;\n };\n var expandBoundingBox = function expandBoundingBox(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n bb.x1 -= padding;\n bb.x2 += padding;\n bb.y1 -= padding;\n bb.y2 += padding;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n };\n var expandBoundingBoxSides = function expandBoundingBoxSides(bb) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0];\n var top, right, bottom, left;\n if (padding.length === 1) {\n top = right = bottom = left = padding[0];\n } else if (padding.length === 2) {\n top = bottom = padding[0];\n left = right = padding[1];\n } else if (padding.length === 4) {\n var _padding = _slicedToArray(padding, 4);\n top = _padding[0];\n right = _padding[1];\n bottom = _padding[2];\n left = _padding[3];\n }\n bb.x1 -= left;\n bb.x2 += right;\n bb.y1 -= top;\n bb.y2 += bottom;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n return bb;\n };\n\n // assign the values of bb2 into bb1\n var assignBoundingBox = function assignBoundingBox(bb1, bb2) {\n bb1.x1 = bb2.x1;\n bb1.y1 = bb2.y1;\n bb1.x2 = bb2.x2;\n bb1.y2 = bb2.y2;\n bb1.w = bb1.x2 - bb1.x1;\n bb1.h = bb1.y2 - bb1.y1;\n };\n var boundingBoxesIntersect = function boundingBoxesIntersect(bb1, bb2) {\n // case: one bb to right of other\n if (bb1.x1 > bb2.x2) {\n return false;\n }\n if (bb2.x1 > bb1.x2) {\n return false;\n }\n\n // case: one bb to left of other\n if (bb1.x2 < bb2.x1) {\n return false;\n }\n if (bb2.x2 < bb1.x1) {\n return false;\n }\n\n // case: one bb above other\n if (bb1.y2 < bb2.y1) {\n return false;\n }\n if (bb2.y2 < bb1.y1) {\n return false;\n }\n\n // case: one bb below other\n if (bb1.y1 > bb2.y2) {\n return false;\n }\n if (bb2.y1 > bb1.y2) {\n return false;\n }\n\n // otherwise, must have some overlap\n return true;\n };\n var inBoundingBox = function inBoundingBox(bb, x, y) {\n return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2;\n };\n var pointInBoundingBox = function pointInBoundingBox(bb, pt) {\n return inBoundingBox(bb, pt.x, pt.y);\n };\n var boundingBoxInBoundingBox = function boundingBoxInBoundingBox(bb1, bb2) {\n return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);\n };\n var roundRectangleIntersectLine = function roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding) {\n var cornerRadius = getRoundRectangleRadius(width, height);\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n\n // Check intersections with straight line segments\n var straightLineIntersections;\n\n // Top segment, left to right\n {\n var topStartX = nodeX - halfWidth + cornerRadius - padding;\n var topStartY = nodeY - halfHeight - padding;\n var topEndX = nodeX + halfWidth - cornerRadius + padding;\n var topEndY = topStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Right segment, top to bottom\n {\n var rightStartX = nodeX + halfWidth + padding;\n var rightStartY = nodeY - halfHeight + cornerRadius - padding;\n var rightEndX = rightStartX;\n var rightEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Bottom segment, left to right\n {\n var bottomStartX = nodeX - halfWidth + cornerRadius - padding;\n var bottomStartY = nodeY + halfHeight + padding;\n var bottomEndX = nodeX + halfWidth - cornerRadius + padding;\n var bottomEndY = bottomStartY;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Left segment, top to bottom\n {\n var leftStartX = nodeX - halfWidth - padding;\n var leftStartY = nodeY - halfHeight + cornerRadius - padding;\n var leftEndX = leftStartX;\n var leftEndY = nodeY + halfHeight - cornerRadius + padding;\n straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);\n if (straightLineIntersections.length > 0) {\n return straightLineIntersections;\n }\n }\n\n // Check intersections with arc segments\n var arcIntersections;\n\n // Top Left\n {\n var topLeftCenterX = nodeX - halfWidth + cornerRadius;\n var topLeftCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Top Right\n {\n var topRightCenterX = nodeX + halfWidth - cornerRadius;\n var topRightCenterY = nodeY - halfHeight + cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Right\n {\n var bottomRightCenterX = nodeX + halfWidth - cornerRadius;\n var bottomRightCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n\n // Bottom Left\n {\n var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;\n var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;\n arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding);\n\n // Ensure the intersection is on the desired quarter of the circle\n if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {\n return [arcIntersections[0], arcIntersections[1]];\n }\n }\n return []; // if nothing\n };\n\n var inLineVicinity = function inLineVicinity(x, y, lx1, ly1, lx2, ly2, tolerance) {\n var t = tolerance;\n var x1 = Math.min(lx1, lx2);\n var x2 = Math.max(lx1, lx2);\n var y1 = Math.min(ly1, ly2);\n var y2 = Math.max(ly1, ly2);\n return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t;\n };\n var inBezierVicinity = function inBezierVicinity(x, y, x1, y1, x2, y2, x3, y3, tolerance) {\n var bb = {\n x1: Math.min(x1, x3, x2) - tolerance,\n x2: Math.max(x1, x3, x2) + tolerance,\n y1: Math.min(y1, y3, y2) - tolerance,\n y2: Math.max(y1, y3, y2) + tolerance\n };\n\n // if outside the rough bounding box for the bezier, then it can't be a hit\n if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) {\n // console.log('bezier out of rough bb')\n return false;\n } else {\n // console.log('do more expensive check');\n return true;\n }\n };\n var solveQuadratic = function solveQuadratic(a, b, c, val) {\n c -= val;\n var r = b * b - 4 * a * c;\n if (r < 0) {\n return [];\n }\n var sqrtR = Math.sqrt(r);\n var denom = 2 * a;\n var root1 = (-b + sqrtR) / denom;\n var root2 = (-b - sqrtR) / denom;\n return [root1, root2];\n };\n var solveCubic = function solveCubic(a, b, c, d, result) {\n // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where\n // r is the real component, i is the imaginary component\n\n // An implementation of the Cardano method from the year 1545\n // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots\n\n var epsilon = 0.00001;\n\n // avoid division by zero while keeping the overall expression close in value\n if (a === 0) {\n a = epsilon;\n }\n b /= a;\n c /= a;\n d /= a;\n var discriminant, q, r, dum1, s, t, term1, r13;\n q = (3.0 * c - b * b) / 9.0;\n r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b));\n r /= 54.0;\n discriminant = q * q * q + r * r;\n result[1] = 0;\n term1 = b / 3.0;\n if (discriminant > 0) {\n s = r + Math.sqrt(discriminant);\n s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0);\n t = r - Math.sqrt(discriminant);\n t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0);\n result[0] = -term1 + s + t;\n term1 += (s + t) / 2.0;\n result[4] = result[2] = -term1;\n term1 = Math.sqrt(3.0) * (-t + s) / 2;\n result[3] = term1;\n result[5] = -term1;\n return;\n }\n result[5] = result[3] = 0;\n if (discriminant === 0) {\n r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0);\n result[0] = -term1 + 2.0 * r13;\n result[4] = result[2] = -(r13 + term1);\n return;\n }\n q = -q;\n dum1 = q * q * q;\n dum1 = Math.acos(r / Math.sqrt(dum1));\n r13 = 2.0 * Math.sqrt(q);\n result[0] = -term1 + r13 * Math.cos(dum1 / 3.0);\n result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0);\n result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0);\n return;\n };\n var sqdistToQuadraticBezier = function sqdistToQuadraticBezier(x, y, x1, y1, x2, y2, x3, y3) {\n // Find minimum distance by using the minimum of the distance\n // function between the given point and the curve\n\n // This gives the coefficients of the resulting cubic equation\n // whose roots tell us where a possible minimum is\n // (Coefficients are divided by 4)\n\n var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3;\n var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3;\n var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y;\n var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y;\n\n // debug(\"coefficients: \" + a / a + \", \" + b / a + \", \" + c / a + \", \" + d / a);\n\n var roots = [];\n\n // Use the cubic solving algorithm\n solveCubic(a, b, c, d, roots);\n var zeroThreshold = 0.0000001;\n var params = [];\n for (var index = 0; index < 6; index += 2) {\n if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) {\n params.push(roots[index]);\n }\n }\n params.push(1.0);\n params.push(0.0);\n var minDistanceSquared = -1;\n var curX, curY, distSquared;\n for (var i = 0; i < params.length; i++) {\n curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3;\n curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3;\n distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2);\n // debug('distance for param ' + params[i] + \": \" + Math.sqrt(distSquared));\n if (minDistanceSquared >= 0) {\n if (distSquared < minDistanceSquared) {\n minDistanceSquared = distSquared;\n }\n } else {\n minDistanceSquared = distSquared;\n }\n }\n return minDistanceSquared;\n };\n var sqdistToFiniteLine = function sqdistToFiniteLine(x, y, x1, y1, x2, y2) {\n var offset = [x - x1, y - y1];\n var line = [x2 - x1, y2 - y1];\n var lineSq = line[0] * line[0] + line[1] * line[1];\n var hypSq = offset[0] * offset[0] + offset[1] * offset[1];\n var dotProduct = offset[0] * line[0] + offset[1] * line[1];\n var adjSq = dotProduct * dotProduct / lineSq;\n if (dotProduct < 0) {\n return hypSq;\n }\n if (adjSq > lineSq) {\n return (x - x2) * (x - x2) + (y - y2) * (y - y2);\n }\n return hypSq - adjSq;\n };\n var pointInsidePolygonPoints = function pointInsidePolygonPoints(x, y, points) {\n var x1, y1, x2, y2;\n var y3;\n\n // Intersect with vertical line through (x, y)\n var up = 0;\n // let down = 0;\n for (var i = 0; i < points.length / 2; i++) {\n x1 = points[i * 2];\n y1 = points[i * 2 + 1];\n if (i + 1 < points.length / 2) {\n x2 = points[(i + 1) * 2];\n y2 = points[(i + 1) * 2 + 1];\n } else {\n x2 = points[(i + 1 - points.length / 2) * 2];\n y2 = points[(i + 1 - points.length / 2) * 2 + 1];\n }\n if (x1 == x && x2 == x) ; else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) {\n y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1;\n if (y3 > y) {\n up++;\n }\n\n // if( y3 < y ){\n // down++;\n // }\n } else {\n continue;\n }\n }\n if (up % 2 === 0) {\n return false;\n } else {\n return true;\n }\n };\n var pointInsidePolygon = function pointInsidePolygon(x, y, basePoints, centerX, centerY, width, height, direction, padding) {\n var transformedPoints = new Array(basePoints.length);\n\n // Gives negative angle\n var angle;\n if (direction[0] != null) {\n angle = Math.atan(direction[1] / direction[0]);\n if (direction[0] < 0) {\n angle = angle + Math.PI / 2;\n } else {\n angle = -angle - Math.PI / 2;\n }\n } else {\n angle = direction;\n }\n var cos = Math.cos(-angle);\n var sin = Math.sin(-angle);\n\n // console.log(\"base: \" + basePoints);\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin);\n transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin);\n transformedPoints[i * 2] += centerX;\n transformedPoints[i * 2 + 1] += centerY;\n }\n var points;\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n return pointInsidePolygonPoints(x, y, points);\n };\n var pointInsideRoundPolygon = function pointInsideRoundPolygon(x, y, basePoints, centerX, centerY, width, height) {\n var cutPolygonPoints = new Array(basePoints.length);\n var halfW = width / 2;\n var halfH = height / 2;\n var cornerRadius = getRoundPolygonRadius(width, height);\n var squaredCornerRadius = cornerRadius * cornerRadius;\n for (var i = 0; i < basePoints.length / 4; i++) {\n var sourceUv = void 0,\n destUv = void 0;\n if (i === 0) {\n sourceUv = basePoints.length - 2;\n } else {\n sourceUv = i * 4 - 2;\n }\n destUv = i * 4 + 2;\n var px = centerX + halfW * basePoints[i * 4];\n var py = centerY + halfH * basePoints[i * 4 + 1];\n var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];\n var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);\n var cp0x = px - offset * basePoints[sourceUv];\n var cp0y = py - offset * basePoints[sourceUv + 1];\n var cp1x = px + offset * basePoints[destUv];\n var cp1y = py + offset * basePoints[destUv + 1];\n cutPolygonPoints[i * 4] = cp0x;\n cutPolygonPoints[i * 4 + 1] = cp0y;\n cutPolygonPoints[i * 4 + 2] = cp1x;\n cutPolygonPoints[i * 4 + 3] = cp1y;\n var orthx = basePoints[sourceUv + 1];\n var orthy = -basePoints[sourceUv];\n var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];\n if (cosAlpha < 0) {\n orthx *= -1;\n orthy *= -1;\n }\n var cx = cp0x + orthx * cornerRadius;\n var cy = cp0y + orthy * cornerRadius;\n var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2);\n if (squaredDistance <= squaredCornerRadius) {\n return true;\n }\n }\n return pointInsidePolygonPoints(x, y, cutPolygonPoints);\n };\n var joinLines = function joinLines(lineSet) {\n var vertices = new Array(lineSet.length / 2);\n var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;\n var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;\n for (var i = 0; i < lineSet.length / 4; i++) {\n currentLineStartX = lineSet[i * 4];\n currentLineStartY = lineSet[i * 4 + 1];\n currentLineEndX = lineSet[i * 4 + 2];\n currentLineEndY = lineSet[i * 4 + 3];\n if (i < lineSet.length / 4 - 1) {\n nextLineStartX = lineSet[(i + 1) * 4];\n nextLineStartY = lineSet[(i + 1) * 4 + 1];\n nextLineEndX = lineSet[(i + 1) * 4 + 2];\n nextLineEndY = lineSet[(i + 1) * 4 + 3];\n } else {\n nextLineStartX = lineSet[0];\n nextLineStartY = lineSet[1];\n nextLineEndX = lineSet[2];\n nextLineEndY = lineSet[3];\n }\n var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);\n vertices[i * 2] = intersection[0];\n vertices[i * 2 + 1] = intersection[1];\n }\n return vertices;\n };\n var expandPolygon = function expandPolygon(points, pad) {\n var expandedLineSet = new Array(points.length * 2);\n var currentPointX, currentPointY, nextPointX, nextPointY;\n for (var i = 0; i < points.length / 2; i++) {\n currentPointX = points[i * 2];\n currentPointY = points[i * 2 + 1];\n if (i < points.length / 2 - 1) {\n nextPointX = points[(i + 1) * 2];\n nextPointY = points[(i + 1) * 2 + 1];\n } else {\n nextPointX = points[0];\n nextPointY = points[1];\n }\n\n // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY]\n\n // Assume CCW polygon winding\n\n var offsetX = nextPointY - currentPointY;\n var offsetY = -(nextPointX - currentPointX);\n\n // Normalize\n var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);\n var normalizedOffsetX = offsetX / offsetLength;\n var normalizedOffsetY = offsetY / offsetLength;\n expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad;\n expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad;\n expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad;\n }\n return expandedLineSet;\n };\n var intersectLineEllipse = function intersectLineEllipse(x, y, centerX, centerY, ellipseWradius, ellipseHradius) {\n var dispX = centerX - x;\n var dispY = centerY - y;\n dispX /= ellipseWradius;\n dispY /= ellipseHradius;\n var len = Math.sqrt(dispX * dispX + dispY * dispY);\n var newLength = len - 1;\n if (newLength < 0) {\n return [];\n }\n var lenProportion = newLength / len;\n return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y];\n };\n var checkInEllipse = function checkInEllipse(x, y, width, height, centerX, centerY, padding) {\n x -= centerX;\n y -= centerY;\n x /= width / 2 + padding;\n y /= height / 2 + padding;\n return x * x + y * y <= 1;\n };\n\n // Returns intersections of increasing distance from line's start point\n var intersectLineCircle = function intersectLineCircle(x1, y1, x2, y2, centerX, centerY, radius) {\n // Calculate d, direction vector of line\n var d = [x2 - x1, y2 - y1]; // Direction vector of line\n var f = [x1 - centerX, y1 - centerY];\n var a = d[0] * d[0] + d[1] * d[1];\n var b = 2 * (f[0] * d[0] + f[1] * d[1]);\n var c = f[0] * f[0] + f[1] * f[1] - radius * radius;\n var discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n var t1 = (-b + Math.sqrt(discriminant)) / (2 * a);\n var t2 = (-b - Math.sqrt(discriminant)) / (2 * a);\n var tMin = Math.min(t1, t2);\n var tMax = Math.max(t1, t2);\n var inRangeParams = [];\n if (tMin >= 0 && tMin <= 1) {\n inRangeParams.push(tMin);\n }\n if (tMax >= 0 && tMax <= 1) {\n inRangeParams.push(tMax);\n }\n if (inRangeParams.length === 0) {\n return [];\n }\n var nearIntersectionX = inRangeParams[0] * d[0] + x1;\n var nearIntersectionY = inRangeParams[0] * d[1] + y1;\n if (inRangeParams.length > 1) {\n if (inRangeParams[0] == inRangeParams[1]) {\n return [nearIntersectionX, nearIntersectionY];\n } else {\n var farIntersectionX = inRangeParams[1] * d[0] + x1;\n var farIntersectionY = inRangeParams[1] * d[1] + y1;\n return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];\n }\n } else {\n return [nearIntersectionX, nearIntersectionY];\n }\n };\n var midOfThree = function midOfThree(a, b, c) {\n if (b <= a && a <= c || c <= a && a <= b) {\n return a;\n } else if (a <= b && b <= c || c <= b && b <= a) {\n return b;\n } else {\n return c;\n }\n };\n\n // (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4)\n var finiteLinesIntersect = function finiteLinesIntersect(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {\n var dx13 = x1 - x3;\n var dx21 = x2 - x1;\n var dx43 = x4 - x3;\n var dy13 = y1 - y3;\n var dy21 = y2 - y1;\n var dy43 = y4 - y3;\n var ua_t = dx43 * dy13 - dy43 * dx13;\n var ub_t = dx21 * dy13 - dy21 * dx13;\n var u_b = dy43 * dx21 - dx43 * dy21;\n if (u_b !== 0) {\n var ua = ua_t / u_b;\n var ub = ub_t / u_b;\n var flptThreshold = 0.001;\n var _min = 0 - flptThreshold;\n var _max = 1 + flptThreshold;\n if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {\n return [x1 + ua * dx21, y1 + ua * dy21];\n } else {\n if (!infiniteLines) {\n return [];\n } else {\n return [x1 + ua * dx21, y1 + ua * dy21];\n }\n }\n } else {\n if (ua_t === 0 || ub_t === 0) {\n // Parallel, coincident lines. Check if overlap\n\n // Check endpoint of second line\n if (midOfThree(x1, x2, x4) === x4) {\n return [x4, y4];\n }\n\n // Check start point of second line\n if (midOfThree(x1, x2, x3) === x3) {\n return [x3, y3];\n }\n\n // Endpoint of first line\n if (midOfThree(x3, x4, x2) === x2) {\n return [x2, y2];\n }\n return [];\n } else {\n // Parallel, non-coincident\n return [];\n }\n }\n };\n\n // math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding )\n // intersect a node polygon (pts transformed)\n //\n // math.polygonIntersectLine( x, y, basePoints, centerX, centerY )\n // intersect the points (no transform)\n var polygonIntersectLine = function polygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) {\n var intersections = [];\n var intersection;\n var transformedPoints = new Array(basePoints.length);\n var doTransform = true;\n if (width == null) {\n doTransform = false;\n }\n var points;\n if (doTransform) {\n for (var i = 0; i < transformedPoints.length / 2; i++) {\n transformedPoints[i * 2] = basePoints[i * 2] * width + centerX;\n transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY;\n }\n if (padding > 0) {\n var expandedLineSet = expandPolygon(transformedPoints, -padding);\n points = joinLines(expandedLineSet);\n } else {\n points = transformedPoints;\n }\n } else {\n points = basePoints;\n }\n var currentX, currentY, nextX, nextY;\n for (var _i2 = 0; _i2 < points.length / 2; _i2++) {\n currentX = points[_i2 * 2];\n currentY = points[_i2 * 2 + 1];\n if (_i2 < points.length / 2 - 1) {\n nextX = points[(_i2 + 1) * 2];\n nextY = points[(_i2 + 1) * 2 + 1];\n } else {\n nextX = points[0];\n nextY = points[1];\n }\n intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n return intersections;\n };\n var roundPolygonIntersectLine = function roundPolygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) {\n var intersections = [];\n var intersection;\n var lines = new Array(basePoints.length);\n var halfW = width / 2;\n var halfH = height / 2;\n var cornerRadius = getRoundPolygonRadius(width, height);\n for (var i = 0; i < basePoints.length / 4; i++) {\n var sourceUv = void 0,\n destUv = void 0;\n if (i === 0) {\n sourceUv = basePoints.length - 2;\n } else {\n sourceUv = i * 4 - 2;\n }\n destUv = i * 4 + 2;\n var px = centerX + halfW * basePoints[i * 4];\n var py = centerY + halfH * basePoints[i * 4 + 1];\n var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];\n var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);\n var cp0x = px - offset * basePoints[sourceUv];\n var cp0y = py - offset * basePoints[sourceUv + 1];\n var cp1x = px + offset * basePoints[destUv];\n var cp1y = py + offset * basePoints[destUv + 1];\n if (i === 0) {\n lines[basePoints.length - 2] = cp0x;\n lines[basePoints.length - 1] = cp0y;\n } else {\n lines[i * 4 - 2] = cp0x;\n lines[i * 4 - 1] = cp0y;\n }\n lines[i * 4] = cp1x;\n lines[i * 4 + 1] = cp1y;\n var orthx = basePoints[sourceUv + 1];\n var orthy = -basePoints[sourceUv];\n var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];\n if (cosAlpha < 0) {\n orthx *= -1;\n orthy *= -1;\n }\n var cx = cp0x + orthx * cornerRadius;\n var cy = cp0y + orthy * cornerRadius;\n intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n for (var _i3 = 0; _i3 < lines.length / 4; _i3++) {\n intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false);\n if (intersection.length !== 0) {\n intersections.push(intersection[0], intersection[1]);\n }\n }\n if (intersections.length > 2) {\n var lowestIntersection = [intersections[0], intersections[1]];\n var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2);\n for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) {\n var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2);\n if (squaredDistance <= lowestSquaredDistance) {\n lowestIntersection[0] = intersections[_i4 * 2];\n lowestIntersection[1] = intersections[_i4 * 2 + 1];\n lowestSquaredDistance = squaredDistance;\n }\n }\n return lowestIntersection;\n }\n return intersections;\n };\n var shortenIntersection = function shortenIntersection(intersection, offset, amount) {\n var disp = [intersection[0] - offset[0], intersection[1] - offset[1]];\n var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);\n var lenRatio = (length - amount) / length;\n if (lenRatio < 0) {\n lenRatio = 0.00001;\n }\n return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];\n };\n var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare(sides, rotationRadians) {\n var points = generateUnitNgonPoints(sides, rotationRadians);\n points = fitPolygonToSquare(points);\n return points;\n };\n var fitPolygonToSquare = function fitPolygonToSquare(points) {\n var x, y;\n var sides = points.length / 2;\n var minX = Infinity,\n minY = Infinity,\n maxX = -Infinity,\n maxY = -Infinity;\n for (var i = 0; i < sides; i++) {\n x = points[2 * i];\n y = points[2 * i + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n\n // stretch factors\n var sx = 2 / (maxX - minX);\n var sy = 2 / (maxY - minY);\n for (var _i5 = 0; _i5 < sides; _i5++) {\n x = points[2 * _i5] = points[2 * _i5] * sx;\n y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy;\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n if (minY < -1) {\n for (var _i6 = 0; _i6 < sides; _i6++) {\n y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY);\n }\n }\n return points;\n };\n var generateUnitNgonPoints = function generateUnitNgonPoints(sides, rotationRadians) {\n var increment = 1.0 / sides * 2 * Math.PI;\n var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0;\n startAngle += rotationRadians;\n var points = new Array(sides * 2);\n var currentAngle;\n for (var i = 0; i < sides; i++) {\n currentAngle = i * increment + startAngle;\n points[2 * i] = Math.cos(currentAngle); // x\n points[2 * i + 1] = Math.sin(-currentAngle); // y\n }\n\n return points;\n };\n\n // Set the default radius, unless half of width or height is smaller than default\n var getRoundRectangleRadius = function getRoundRectangleRadius(width, height) {\n return Math.min(width / 4, height / 4, 8);\n };\n\n // Set the default radius\n var getRoundPolygonRadius = function getRoundPolygonRadius(width, height) {\n return Math.min(width / 10, height / 10, 8);\n };\n var getCutRectangleCornerLength = function getCutRectangleCornerLength() {\n return 8;\n };\n var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff(p0, p1, p2) {\n return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];\n };\n\n // get curve width, height, and control point position offsets as a percentage of node height / width\n var getBarrelCurveConstants = function getBarrelCurveConstants(width, height) {\n return {\n heightOffset: Math.min(15, 0.05 * height),\n widthOffset: Math.min(100, 0.25 * width),\n ctrlPtOffsetPct: 0.05\n };\n };\n\n var pageRankDefaults = defaults$g({\n dampingFactor: 0.8,\n precision: 0.000001,\n iterations: 200,\n weight: function weight(edge) {\n return 1;\n }\n });\n var elesfn$o = {\n pageRank: function pageRank(options) {\n var _pageRankDefaults = pageRankDefaults(options),\n dampingFactor = _pageRankDefaults.dampingFactor,\n precision = _pageRankDefaults.precision,\n iterations = _pageRankDefaults.iterations,\n weight = _pageRankDefaults.weight;\n var cy = this._private.cy;\n var _this$byGroup = this.byGroup(),\n nodes = _this$byGroup.nodes,\n edges = _this$byGroup.edges;\n var numNodes = nodes.length;\n var numNodesSqd = numNodes * numNodes;\n var numEdges = edges.length;\n\n // Construct transposed adjacency matrix\n // First lets have a zeroed matrix of the right size\n // We'll also keep track of the sum of each column\n var matrix = new Array(numNodesSqd);\n var columnSum = new Array(numNodes);\n var additionalProb = (1 - dampingFactor) / numNodes;\n\n // Create null matrix\n for (var i = 0; i < numNodes; i++) {\n for (var j = 0; j < numNodes; j++) {\n var n = i * numNodes + j;\n matrix[n] = 0;\n }\n columnSum[i] = 0;\n }\n\n // Now, process edges\n for (var _i = 0; _i < numEdges; _i++) {\n var edge = edges[_i];\n var srcId = edge.data('source');\n var tgtId = edge.data('target');\n\n // Don't include loops in the matrix\n if (srcId === tgtId) {\n continue;\n }\n var s = nodes.indexOfId(srcId);\n var t = nodes.indexOfId(tgtId);\n var w = weight(edge);\n var _n = t * numNodes + s;\n\n // Update matrix\n matrix[_n] += w;\n\n // Update column sum\n columnSum[s] += w;\n }\n\n // Add additional probability based on damping factor\n // Also, take into account columns that have sum = 0\n var p = 1.0 / numNodes + additionalProb; // Shorthand\n\n // Traverse matrix, column by column\n for (var _j = 0; _j < numNodes; _j++) {\n if (columnSum[_j] === 0) {\n // No 'links' out from node jth, assume equal probability for each possible node\n for (var _i2 = 0; _i2 < numNodes; _i2++) {\n var _n2 = _i2 * numNodes + _j;\n matrix[_n2] = p;\n }\n } else {\n // Node jth has outgoing link, compute normalized probabilities\n for (var _i3 = 0; _i3 < numNodes; _i3++) {\n var _n3 = _i3 * numNodes + _j;\n matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;\n }\n }\n }\n\n // Compute dominant eigenvector using power method\n var eigenvector = new Array(numNodes);\n var temp = new Array(numNodes);\n var previous;\n\n // Start with a vector of all 1's\n // Also, initialize a null vector which will be used as shorthand\n for (var _i4 = 0; _i4 < numNodes; _i4++) {\n eigenvector[_i4] = 1;\n }\n for (var iter = 0; iter < iterations; iter++) {\n // Temp array with all 0's\n for (var _i5 = 0; _i5 < numNodes; _i5++) {\n temp[_i5] = 0;\n }\n\n // Multiply matrix with previous result\n for (var _i6 = 0; _i6 < numNodes; _i6++) {\n for (var _j2 = 0; _j2 < numNodes; _j2++) {\n var _n4 = _i6 * numNodes + _j2;\n temp[_i6] += matrix[_n4] * eigenvector[_j2];\n }\n }\n inPlaceSumNormalize(temp);\n previous = eigenvector;\n eigenvector = temp;\n temp = previous;\n var diff = 0;\n // Compute difference (squared module) of both vectors\n for (var _i7 = 0; _i7 < numNodes; _i7++) {\n var delta = previous[_i7] - eigenvector[_i7];\n diff += delta * delta;\n }\n\n // If difference is less than the desired threshold, stop iterating\n if (diff < precision) {\n break;\n }\n }\n\n // Construct result\n var res = {\n rank: function rank(node) {\n node = cy.collection(node)[0];\n return eigenvector[nodes.indexOf(node)];\n }\n };\n return res;\n } // pageRank\n }; // elesfn\n\n var defaults$f = defaults$g({\n root: null,\n weight: function weight(edge) {\n return 1;\n },\n directed: false,\n alpha: 0\n });\n var elesfn$n = {\n degreeCentralityNormalized: function degreeCentralityNormalized(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var nodes = this.nodes();\n var numNodes = nodes.length;\n if (!options.directed) {\n var degrees = {};\n var maxDegree = 0;\n for (var i = 0; i < numNodes; i++) {\n var node = nodes[i];\n\n // add current node to the current options object and call degreeCentrality\n options.root = node;\n var currDegree = this.degreeCentrality(options);\n if (maxDegree < currDegree.degree) {\n maxDegree = currDegree.degree;\n }\n degrees[node.id()] = currDegree.degree;\n }\n return {\n degree: function degree(node) {\n if (maxDegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return degrees[node.id()] / maxDegree;\n }\n };\n } else {\n var indegrees = {};\n var outdegrees = {};\n var maxIndegree = 0;\n var maxOutdegree = 0;\n for (var _i = 0; _i < numNodes; _i++) {\n var _node = nodes[_i];\n var id = _node.id();\n\n // add current node to the current options object and call degreeCentrality\n options.root = _node;\n var _currDegree = this.degreeCentrality(options);\n if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree;\n if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree;\n indegrees[id] = _currDegree.indegree;\n outdegrees[id] = _currDegree.outdegree;\n }\n return {\n indegree: function indegree(node) {\n if (maxIndegree == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return indegrees[node.id()] / maxIndegree;\n },\n outdegree: function outdegree(node) {\n if (maxOutdegree === 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node);\n }\n return outdegrees[node.id()] / maxOutdegree;\n }\n };\n }\n },\n // degreeCentralityNormalized\n\n // Implemented from the algorithm in Opsahl's paper\n // \"Node centrality in weighted networks: Generalizing degree and shortest paths\"\n // check the heading 2 \"Degree\"\n degreeCentrality: function degreeCentrality(options) {\n options = defaults$f(options);\n var cy = this.cy();\n var callingEles = this;\n var _options = options,\n root = _options.root,\n weight = _options.weight,\n directed = _options.directed,\n alpha = _options.alpha;\n root = cy.collection(root)[0];\n if (!directed) {\n var connEdges = root.connectedEdges().intersection(callingEles);\n var k = connEdges.length;\n var s = 0;\n\n // Now, sum edge weights\n for (var i = 0; i < connEdges.length; i++) {\n s += weight(connEdges[i]);\n }\n return {\n degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)\n };\n } else {\n var edges = root.connectedEdges();\n var incoming = edges.filter(function (edge) {\n return edge.target().same(root) && callingEles.has(edge);\n });\n var outgoing = edges.filter(function (edge) {\n return edge.source().same(root) && callingEles.has(edge);\n });\n var k_in = incoming.length;\n var k_out = outgoing.length;\n var s_in = 0;\n var s_out = 0;\n\n // Now, sum incoming edge weights\n for (var _i2 = 0; _i2 < incoming.length; _i2++) {\n s_in += weight(incoming[_i2]);\n }\n\n // Now, sum outgoing edge weights\n for (var _i3 = 0; _i3 < outgoing.length; _i3++) {\n s_out += weight(outgoing[_i3]);\n }\n return {\n indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),\n outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)\n };\n }\n } // degreeCentrality\n }; // elesfn\n\n // nice, short mathematical alias\n elesfn$n.dc = elesfn$n.degreeCentrality;\n elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;\n\n var defaults$e = defaults$g({\n harmonic: true,\n weight: function weight() {\n return 1;\n },\n directed: false,\n root: null\n });\n var elesfn$m = {\n closenessCentralityNormalized: function closenessCentralityNormalized(options) {\n var _defaults = defaults$e(options),\n harmonic = _defaults.harmonic,\n weight = _defaults.weight,\n directed = _defaults.directed;\n var cy = this.cy();\n var closenesses = {};\n var maxCloseness = 0;\n var nodes = this.nodes();\n var fw = this.floydWarshall({\n weight: weight,\n directed: directed\n });\n\n // Compute closeness for every node and find the maximum closeness\n for (var i = 0; i < nodes.length; i++) {\n var currCloseness = 0;\n var node_i = nodes[i];\n for (var j = 0; j < nodes.length; j++) {\n if (i !== j) {\n var d = fw.distance(node_i, nodes[j]);\n if (harmonic) {\n currCloseness += 1 / d;\n } else {\n currCloseness += d;\n }\n }\n }\n if (!harmonic) {\n currCloseness = 1 / currCloseness;\n }\n if (maxCloseness < currCloseness) {\n maxCloseness = currCloseness;\n }\n closenesses[node_i.id()] = currCloseness;\n }\n return {\n closeness: function closeness(node) {\n if (maxCloseness == 0) {\n return 0;\n }\n if (string(node)) {\n // from is a selector string\n node = cy.filter(node)[0].id();\n } else {\n // from is a node\n node = node.id();\n }\n return closenesses[node] / maxCloseness;\n }\n };\n },\n // Implemented from pseudocode from wikipedia\n closenessCentrality: function closenessCentrality(options) {\n var _defaults2 = defaults$e(options),\n root = _defaults2.root,\n weight = _defaults2.weight,\n directed = _defaults2.directed,\n harmonic = _defaults2.harmonic;\n root = this.filter(root)[0];\n\n // we need distance from this node to every other node\n var dijkstra = this.dijkstra({\n root: root,\n weight: weight,\n directed: directed\n });\n var totalDistance = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (!n.same(root)) {\n var d = dijkstra.distanceTo(n);\n if (harmonic) {\n totalDistance += 1 / d;\n } else {\n totalDistance += d;\n }\n }\n }\n return harmonic ? totalDistance : 1 / totalDistance;\n } // closenessCentrality\n }; // elesfn\n\n // nice, short mathematical alias\n elesfn$m.cc = elesfn$m.closenessCentrality;\n elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;\n\n var defaults$d = defaults$g({\n weight: null,\n directed: false\n });\n var elesfn$l = {\n // Implemented from the algorithm in the paper \"On Variants of Shortest-Path Betweenness Centrality and their Generic Computation\" by Ulrik Brandes\n betweennessCentrality: function betweennessCentrality(options) {\n var _defaults = defaults$d(options),\n directed = _defaults.directed,\n weight = _defaults.weight;\n var weighted = weight != null;\n var cy = this.cy();\n\n // starting\n var V = this.nodes();\n var A = {};\n var _C = {};\n var max = 0;\n var C = {\n set: function set(key, val) {\n _C[key] = val;\n if (val > max) {\n max = val;\n }\n },\n get: function get(key) {\n return _C[key];\n }\n };\n\n // A contains the neighborhoods of every node\n for (var i = 0; i < V.length; i++) {\n var v = V[i];\n var vid = v.id();\n if (directed) {\n A[vid] = v.outgoers().nodes(); // get outgoers of every node\n } else {\n A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node\n }\n\n C.set(vid, 0);\n }\n var _loop = function _loop(s) {\n var sid = V[s].id();\n var S = []; // stack\n var P = {};\n var g = {};\n var d = {};\n var Q = new heap(function (a, b) {\n return d[a] - d[b];\n }); // queue\n\n // init dictionaries\n for (var _i = 0; _i < V.length; _i++) {\n var _vid = V[_i].id();\n P[_vid] = [];\n g[_vid] = 0;\n d[_vid] = Infinity;\n }\n g[sid] = 1; // sigma\n d[sid] = 0; // distance to s\n\n Q.push(sid);\n while (!Q.empty()) {\n var _v = Q.pop();\n S.push(_v);\n if (weighted) {\n for (var j = 0; j < A[_v].length; j++) {\n var w = A[_v][j];\n var vEle = cy.getElementById(_v);\n var edge = void 0;\n if (vEle.edgesTo(w).length > 0) {\n edge = vEle.edgesTo(w)[0];\n } else {\n edge = w.edgesTo(vEle)[0];\n }\n var edgeWeight = weight(edge);\n w = w.id();\n if (d[w] > d[_v] + edgeWeight) {\n d[w] = d[_v] + edgeWeight;\n if (Q.nodes.indexOf(w) < 0) {\n //if w is not in Q\n Q.push(w);\n } else {\n // update position if w is in Q\n Q.updateItem(w);\n }\n g[w] = 0;\n P[w] = [];\n }\n if (d[w] == d[_v] + edgeWeight) {\n g[w] = g[w] + g[_v];\n P[w].push(_v);\n }\n }\n } else {\n for (var _j = 0; _j < A[_v].length; _j++) {\n var _w = A[_v][_j].id();\n if (d[_w] == Infinity) {\n Q.push(_w);\n d[_w] = d[_v] + 1;\n }\n if (d[_w] == d[_v] + 1) {\n g[_w] = g[_w] + g[_v];\n P[_w].push(_v);\n }\n }\n }\n }\n var e = {};\n for (var _i2 = 0; _i2 < V.length; _i2++) {\n e[V[_i2].id()] = 0;\n }\n while (S.length > 0) {\n var _w2 = S.pop();\n for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {\n var _v2 = P[_w2][_j2];\n e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);\n }\n if (_w2 != V[s].id()) {\n C.set(_w2, C.get(_w2) + e[_w2]);\n }\n }\n };\n for (var s = 0; s < V.length; s++) {\n _loop(s);\n }\n var ret = {\n betweenness: function betweenness(node) {\n var id = cy.collection(node).id();\n return C.get(id);\n },\n betweennessNormalized: function betweennessNormalized(node) {\n if (max == 0) {\n return 0;\n }\n var id = cy.collection(node).id();\n return C.get(id) / max;\n }\n };\n\n // alias\n ret.betweennessNormalised = ret.betweennessNormalized;\n return ret;\n } // betweennessCentrality\n }; // elesfn\n\n // nice, short mathematical alias\n elesfn$l.bc = elesfn$l.betweennessCentrality;\n\n // Implemented by Zoe Xi @zoexi for GSOC 2016\n\n /* eslint-disable no-unused-vars */\n var defaults$c = defaults$g({\n expandFactor: 2,\n // affects time of computation and cluster granularity to some extent: M * M\n inflateFactor: 2,\n // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)\n multFactor: 1,\n // optional self loops for each node. Use a neutral value to improve cluster computations.\n maxIterations: 20,\n // maximum number of iterations of the MCL algorithm in a single run\n attributes: [\n // attributes/features used to group nodes, ie. similarity values between nodes\n function (edge) {\n return 1;\n }]\n });\n /* eslint-enable */\n\n var setOptions$3 = function setOptions(options) {\n return defaults$c(options);\n };\n /* eslint-enable */\n\n var getSimilarity$1 = function getSimilarity(edge, attributes) {\n var total = 0;\n for (var i = 0; i < attributes.length; i++) {\n total += attributes[i](edge);\n }\n return total;\n };\n var addLoops = function addLoops(M, n, val) {\n for (var i = 0; i < n; i++) {\n M[i * n + i] = val;\n }\n };\n var normalize = function normalize(M, n) {\n var sum;\n for (var col = 0; col < n; col++) {\n sum = 0;\n for (var row = 0; row < n; row++) {\n sum += M[row * n + col];\n }\n for (var _row = 0; _row < n; _row++) {\n M[_row * n + col] = M[_row * n + col] / sum;\n }\n }\n };\n\n // TODO: blocked matrix multiplication?\n var mmult = function mmult(A, B, n) {\n var C = new Array(n * n);\n for (var i = 0; i < n; i++) {\n for (var j = 0; j < n; j++) {\n C[i * n + j] = 0;\n }\n for (var k = 0; k < n; k++) {\n for (var _j = 0; _j < n; _j++) {\n C[i * n + _j] += A[i * n + k] * B[k * n + _j];\n }\n }\n }\n return C;\n };\n var expand = function expand(M, n, expandFactor /** power **/) {\n var _M = M.slice(0);\n for (var p = 1; p < expandFactor; p++) {\n M = mmult(M, _M, n);\n }\n return M;\n };\n var inflate = function inflate(M, n, inflateFactor /** r **/) {\n var _M = new Array(n * n);\n\n // M(i,j) ^ inflatePower\n for (var i = 0; i < n * n; i++) {\n _M[i] = Math.pow(M[i], inflateFactor);\n }\n normalize(_M, n);\n return _M;\n };\n var hasConverged = function hasConverged(M, _M, n2, roundFactor) {\n // Check that both matrices have the same elements (i,j)\n for (var i = 0; i < n2; i++) {\n var v1 = Math.round(M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); // truncate to 'roundFactor' decimal places\n var v2 = Math.round(_M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);\n if (v1 !== v2) {\n return false;\n }\n }\n return true;\n };\n var assign$2 = function assign(M, n, nodes, cy) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var cluster = [];\n for (var j = 0; j < n; j++) {\n // Row-wise attractors and elements that they attract belong in same cluster\n if (Math.round(M[i * n + j] * 1000) / 1000 > 0) {\n cluster.push(nodes[j]);\n }\n }\n if (cluster.length !== 0) {\n clusters.push(cy.collection(cluster));\n }\n }\n return clusters;\n };\n var isDuplicate = function isDuplicate(c1, c2) {\n for (var i = 0; i < c1.length; i++) {\n if (!c2[i] || c1[i].id() !== c2[i].id()) {\n return false;\n }\n }\n return true;\n };\n var removeDuplicates = function removeDuplicates(clusters) {\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j < clusters.length; j++) {\n if (i != j && isDuplicate(clusters[i], clusters[j])) {\n clusters.splice(j, 1);\n }\n }\n }\n return clusters;\n };\n var markovClustering = function markovClustering(options) {\n var nodes = this.nodes();\n var edges = this.edges();\n var cy = this.cy();\n\n // Set parameters of algorithm:\n var opts = setOptions$3(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Generate stochastic matrix M from input graph G (should be symmetric/undirected)\n var n = nodes.length,\n n2 = n * n;\n var M = new Array(n2),\n _M;\n for (var _i = 0; _i < n2; _i++) {\n M[_i] = 0;\n }\n for (var e = 0; e < edges.length; e++) {\n var edge = edges[e];\n var _i2 = id2position[edge.source().id()];\n var j = id2position[edge.target().id()];\n var sim = getSimilarity$1(edge, opts.attributes);\n M[_i2 * n + j] += sim; // G should be symmetric and undirected\n M[j * n + _i2] += sim;\n }\n\n // Begin Markov cluster algorithm\n\n // Step 1: Add self loops to each node, ie. add multFactor to matrix diagonal\n addLoops(M, n, opts.multFactor);\n\n // Step 2: M = normalize( M );\n normalize(M, n);\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 3:\n _M = expand(M, n, opts.expandFactor);\n\n // Step 4:\n M = inflate(_M, n, opts.inflateFactor);\n\n // Step 5: check to see if ~steady state has been reached\n if (!hasConverged(M, _M, n2, 4)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Build clusters from matrix\n var clusters = assign$2(M, n, nodes, cy);\n\n // Remove duplicate clusters due to symmetry of graph and M matrix\n clusters = removeDuplicates(clusters);\n return clusters;\n };\n var markovClustering$1 = {\n markovClustering: markovClustering,\n mcl: markovClustering\n };\n\n // Common distance metrics for clustering algorithms\n var identity = function identity(x) {\n return x;\n };\n var absDiff = function absDiff(p, q) {\n return Math.abs(q - p);\n };\n var addAbsDiff = function addAbsDiff(total, p, q) {\n return total + absDiff(p, q);\n };\n var addSquaredDiff = function addSquaredDiff(total, p, q) {\n return total + Math.pow(q - p, 2);\n };\n var sqrt = function sqrt(x) {\n return Math.sqrt(x);\n };\n var maxAbsDiff = function maxAbsDiff(currentMax, p, q) {\n return Math.max(currentMax, absDiff(p, q));\n };\n var getDistance = function getDistance(length, getP, getQ, init, visit) {\n var post = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : identity;\n var ret = init;\n var p, q;\n for (var dim = 0; dim < length; dim++) {\n p = getP(dim);\n q = getQ(dim);\n ret = visit(ret, p, q);\n }\n return post(ret);\n };\n var distances = {\n euclidean: function euclidean(length, getP, getQ) {\n if (length >= 2) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt);\n } else {\n // for single attr case, more efficient to avoid sqrt\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n }\n },\n squaredEuclidean: function squaredEuclidean(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addSquaredDiff);\n },\n manhattan: function manhattan(length, getP, getQ) {\n return getDistance(length, getP, getQ, 0, addAbsDiff);\n },\n max: function max(length, getP, getQ) {\n return getDistance(length, getP, getQ, -Infinity, maxAbsDiff);\n }\n };\n\n // in case the user accidentally doesn't use camel case\n distances['squared-euclidean'] = distances['squaredEuclidean'];\n distances['squaredeuclidean'] = distances['squaredEuclidean'];\n function clusteringDistance (method, length, getP, getQ, nodeP, nodeQ) {\n var impl;\n if (fn$6(method)) {\n impl = method;\n } else {\n impl = distances[method] || distances.euclidean;\n }\n if (length === 0 && fn$6(method)) {\n return impl(nodeP, nodeQ);\n } else {\n return impl(length, getP, getQ, nodeP, nodeQ);\n }\n }\n\n var defaults$b = defaults$g({\n k: 2,\n m: 2,\n sensitivityThreshold: 0.0001,\n distance: 'euclidean',\n maxIterations: 10,\n attributes: [],\n testMode: false,\n testCentroids: null\n });\n var setOptions$2 = function setOptions(options) {\n return defaults$b(options);\n };\n\n var getDist = function getDist(type, node, centroid, attributes, mode) {\n var noNodeP = mode !== 'kMedoids';\n var getP = noNodeP ? function (i) {\n return centroid[i];\n } : function (i) {\n return attributes[i](centroid);\n };\n var getQ = function getQ(i) {\n return attributes[i](node);\n };\n var nodeP = centroid;\n var nodeQ = node;\n return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ);\n };\n var randomCentroids = function randomCentroids(nodes, k, attributes) {\n var ndim = attributes.length;\n var min = new Array(ndim);\n var max = new Array(ndim);\n var centroids = new Array(k);\n var centroid = null;\n\n // Find min, max values for each attribute dimension\n for (var i = 0; i < ndim; i++) {\n min[i] = nodes.min(attributes[i]).value;\n max[i] = nodes.max(attributes[i]).value;\n }\n\n // Build k centroids, each represented as an n-dim feature vector\n for (var c = 0; c < k; c++) {\n centroid = [];\n for (var _i = 0; _i < ndim; _i++) {\n centroid[_i] = Math.random() * (max[_i] - min[_i]) + min[_i]; // random initial value\n }\n\n centroids[c] = centroid;\n }\n return centroids;\n };\n var classify = function classify(node, centroids, distance, attributes, type) {\n var min = Infinity;\n var index = 0;\n for (var i = 0; i < centroids.length; i++) {\n var dist = getDist(distance, node, centroids[i], attributes, type);\n if (dist < min) {\n min = dist;\n index = i;\n }\n }\n return index;\n };\n var buildCluster = function buildCluster(centroid, nodes, assignment) {\n var cluster = [];\n var node = null;\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n if (assignment[node.id()] === centroid) {\n //console.log(\"Node \" + node.id() + \" is associated with medoid #: \" + m);\n cluster.push(node);\n }\n }\n return cluster;\n };\n var haveValuesConverged = function haveValuesConverged(v1, v2, sensitivityThreshold) {\n return Math.abs(v2 - v1) <= sensitivityThreshold;\n };\n var haveMatricesConverged = function haveMatricesConverged(v1, v2, sensitivityThreshold) {\n for (var i = 0; i < v1.length; i++) {\n for (var j = 0; j < v1[i].length; j++) {\n var diff = Math.abs(v1[i][j] - v2[i][j]);\n if (diff > sensitivityThreshold) {\n return false;\n }\n }\n }\n return true;\n };\n var seenBefore = function seenBefore(node, medoids, n) {\n for (var i = 0; i < n; i++) {\n if (node === medoids[i]) return true;\n }\n return false;\n };\n var randomMedoids = function randomMedoids(nodes, k) {\n var medoids = new Array(k);\n\n // For small data sets, the probability of medoid conflict is greater,\n // so we need to check to see if we've already seen or chose this node before.\n if (nodes.length < 50) {\n // Randomly select k medoids from the n nodes\n for (var i = 0; i < k; i++) {\n var node = nodes[Math.floor(Math.random() * nodes.length)];\n\n // If we've already chosen this node to be a medoid, don't choose it again (for small data sets).\n // Instead choose a different random node.\n while (seenBefore(node, medoids, i)) {\n node = nodes[Math.floor(Math.random() * nodes.length)];\n }\n medoids[i] = node;\n }\n } else {\n // Relatively large data set, so pretty safe to not check and just select random nodes\n for (var _i2 = 0; _i2 < k; _i2++) {\n medoids[_i2] = nodes[Math.floor(Math.random() * nodes.length)];\n }\n }\n return medoids;\n };\n var findCost = function findCost(potentialNewMedoid, cluster, attributes) {\n var cost = 0;\n for (var n = 0; n < cluster.length; n++) {\n cost += getDist('manhattan', cluster[n], potentialNewMedoid, attributes, 'kMedoids');\n }\n return cost;\n };\n var kMeans = function kMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n\n // Set parameters of algorithm: # of clusters, distance metric, etc.\n var opts = setOptions$2(options);\n\n // Begin k-means algorithm\n var clusters = new Array(opts.k);\n var assignment = {};\n var centroids;\n\n // Step 1: Initialize centroid positions\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') {\n // TODO: implement a seeded random number generator.\n opts.testCentroids;\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n } else if (_typeof(opts.testCentroids) === 'object') {\n centroids = opts.testCentroids;\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n } else {\n centroids = randomCentroids(nodes, opts.k, opts.attributes);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest centroid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, 'kMeans');\n }\n\n // Step 3: For each of the k clusters, update its centroid\n isStillMoving = false;\n for (var c = 0; c < opts.k; c++) {\n // Get all nodes that belong to this cluster\n var cluster = buildCluster(c, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n\n // Update centroids by calculating avg of all nodes within the cluster.\n var ndim = opts.attributes.length;\n var centroid = centroids[c]; // [ dim_1, dim_2, dim_3, ... , dim_n ]\n var newCentroid = new Array(ndim);\n var sum = new Array(ndim);\n for (var d = 0; d < ndim; d++) {\n sum[d] = 0.0;\n for (var i = 0; i < cluster.length; i++) {\n node = cluster[i];\n sum[d] += opts.attributes[d](node);\n }\n newCentroid[d] = sum[d] / cluster.length;\n\n // Check to see if algorithm has converged, i.e. when centroids no longer change\n if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n }\n centroids[c] = newCentroid;\n clusters[c] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n };\n var kMedoids = function kMedoids(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var node = null;\n var opts = setOptions$2(options);\n\n // Begin k-medoids algorithm\n var clusters = new Array(opts.k);\n var medoids;\n var assignment = {};\n var curCost;\n var minCosts = new Array(opts.k); // minimum cost configuration for each cluster\n\n // Step 1: Initialize k medoids\n if (opts.testMode) {\n if (typeof opts.testCentroids === 'number') ; else if (_typeof(opts.testCentroids) === 'object') {\n medoids = opts.testCentroids;\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n } else {\n medoids = randomMedoids(nodes, opts.k);\n }\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n // Step 2: Assign nodes to the nearest medoid\n for (var n = 0; n < nodes.length; n++) {\n node = nodes[n];\n // Determine which cluster this node belongs to: node id => cluster #\n assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, 'kMedoids');\n }\n isStillMoving = false;\n // Step 3: For each medoid m, and for each node associated with mediod m,\n // select the node with the lowest configuration cost as new medoid.\n for (var m = 0; m < medoids.length; m++) {\n // Get all nodes that belong to this medoid\n var cluster = buildCluster(m, nodes, assignment);\n if (cluster.length === 0) {\n // If cluster is empty, break out early & move to next cluster\n continue;\n }\n minCosts[m] = findCost(medoids[m], cluster, opts.attributes); // original cost\n\n // Select different medoid if its configuration has the lowest cost\n for (var _n = 0; _n < cluster.length; _n++) {\n curCost = findCost(cluster[_n], cluster, opts.attributes);\n if (curCost < minCosts[m]) {\n minCosts[m] = curCost;\n medoids[m] = cluster[_n];\n isStillMoving = true;\n }\n }\n clusters[m] = cy.collection(cluster);\n }\n iterations++;\n }\n return clusters;\n };\n var updateCentroids = function updateCentroids(centroids, nodes, U, weight, opts) {\n var numerator, denominator;\n for (var n = 0; n < nodes.length; n++) {\n for (var c = 0; c < centroids.length; c++) {\n weight[n][c] = Math.pow(U[n][c], opts.m);\n }\n }\n for (var _c = 0; _c < centroids.length; _c++) {\n for (var dim = 0; dim < opts.attributes.length; dim++) {\n numerator = 0;\n denominator = 0;\n for (var _n2 = 0; _n2 < nodes.length; _n2++) {\n numerator += weight[_n2][_c] * opts.attributes[dim](nodes[_n2]);\n denominator += weight[_n2][_c];\n }\n centroids[_c][dim] = numerator / denominator;\n }\n }\n };\n var updateMembership = function updateMembership(U, _U, centroids, nodes, opts) {\n // Save previous step\n for (var i = 0; i < U.length; i++) {\n _U[i] = U[i].slice();\n }\n var sum, numerator, denominator;\n var pow = 2 / (opts.m - 1);\n for (var c = 0; c < centroids.length; c++) {\n for (var n = 0; n < nodes.length; n++) {\n sum = 0;\n for (var k = 0; k < centroids.length; k++) {\n // against all other centroids\n numerator = getDist(opts.distance, nodes[n], centroids[c], opts.attributes, 'cmeans');\n denominator = getDist(opts.distance, nodes[n], centroids[k], opts.attributes, 'cmeans');\n sum += Math.pow(numerator / denominator, pow);\n }\n U[n][c] = 1 / sum;\n }\n }\n };\n var assign$1 = function assign(nodes, U, opts, cy) {\n var clusters = new Array(opts.k);\n for (var c = 0; c < clusters.length; c++) {\n clusters[c] = [];\n }\n var max;\n var index;\n for (var n = 0; n < U.length; n++) {\n // for each node (U is N x C matrix)\n max = -Infinity;\n index = -1;\n // Determine which cluster the node is most likely to belong in\n for (var _c2 = 0; _c2 < U[0].length; _c2++) {\n if (U[n][_c2] > max) {\n max = U[n][_c2];\n index = _c2;\n }\n }\n clusters[index].push(nodes[n]);\n }\n\n // Turn every array into a collection of nodes\n for (var _c3 = 0; _c3 < clusters.length; _c3++) {\n clusters[_c3] = cy.collection(clusters[_c3]);\n }\n return clusters;\n };\n var fuzzyCMeans = function fuzzyCMeans(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions$2(options);\n\n // Begin fuzzy c-means algorithm\n var clusters;\n var centroids;\n var U;\n var _U;\n var weight;\n\n // Step 1: Initialize letiables.\n _U = new Array(nodes.length);\n for (var i = 0; i < nodes.length; i++) {\n // N x C matrix\n _U[i] = new Array(opts.k);\n }\n U = new Array(nodes.length);\n for (var _i3 = 0; _i3 < nodes.length; _i3++) {\n // N x C matrix\n U[_i3] = new Array(opts.k);\n }\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var total = 0;\n for (var j = 0; j < opts.k; j++) {\n U[_i4][j] = Math.random();\n total += U[_i4][j];\n }\n for (var _j = 0; _j < opts.k; _j++) {\n U[_i4][_j] = U[_i4][_j] / total;\n }\n }\n centroids = new Array(opts.k);\n for (var _i5 = 0; _i5 < opts.k; _i5++) {\n centroids[_i5] = new Array(opts.attributes.length);\n }\n weight = new Array(nodes.length);\n for (var _i6 = 0; _i6 < nodes.length; _i6++) {\n // N x C matrix\n weight[_i6] = new Array(opts.k);\n }\n // end init FCM\n\n var isStillMoving = true;\n var iterations = 0;\n while (isStillMoving && iterations < opts.maxIterations) {\n isStillMoving = false;\n\n // Step 2: Calculate the centroids for each step.\n updateCentroids(centroids, nodes, U, weight, opts);\n\n // Step 3: Update the partition matrix U.\n updateMembership(U, _U, centroids, nodes, opts);\n\n // Step 4: Check for convergence.\n if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) {\n isStillMoving = true;\n }\n iterations++;\n }\n\n // Assign nodes to clusters with highest probability.\n clusters = assign$1(nodes, U, opts, cy);\n return {\n clusters: clusters,\n degreeOfMembership: U\n };\n };\n var kClustering = {\n kMeans: kMeans,\n kMedoids: kMedoids,\n fuzzyCMeans: fuzzyCMeans,\n fcm: fuzzyCMeans\n };\n\n // Implemented by Zoe Xi @zoexi for GSOC 2016\n var defaults$a = defaults$g({\n distance: 'euclidean',\n // distance metric to compare nodes\n linkage: 'min',\n // linkage criterion : how to determine the distance between clusters of nodes\n mode: 'threshold',\n // mode:'threshold' => clusters must be threshold distance apart\n threshold: Infinity,\n // the distance threshold\n // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters\n addDendrogram: false,\n // whether to add the dendrogram to the graph for viz\n dendrogramDepth: 0,\n // depth at which dendrogram branches are merged into the returned clusters\n attributes: [] // array of attr functions\n });\n\n var linkageAliases = {\n 'single': 'min',\n 'complete': 'max'\n };\n var setOptions$1 = function setOptions(options) {\n var opts = defaults$a(options);\n var preferredAlias = linkageAliases[opts.linkage];\n if (preferredAlias != null) {\n opts.linkage = preferredAlias;\n }\n return opts;\n };\n var mergeClosest = function mergeClosest(clusters, index, dists, mins, opts) {\n // Find two closest clusters from cached mins\n var minKey = 0;\n var min = Infinity;\n var dist;\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n for (var i = 0; i < clusters.length; i++) {\n var key = clusters[i].key;\n var _dist = dists[key][mins[key]];\n if (_dist < min) {\n minKey = key;\n min = _dist;\n }\n }\n if (opts.mode === 'threshold' && min >= opts.threshold || opts.mode === 'dendrogram' && clusters.length === 1) {\n return false;\n }\n var c1 = index[minKey];\n var c2 = index[mins[minKey]];\n var merged;\n\n // Merge two closest clusters\n if (opts.mode === 'dendrogram') {\n merged = {\n left: c1,\n right: c2,\n key: c1.key\n };\n } else {\n merged = {\n value: c1.value.concat(c2.value),\n key: c1.key\n };\n }\n clusters[c1.index] = merged;\n clusters.splice(c2.index, 1);\n index[c1.key] = merged;\n\n // Update distances with new merged cluster\n for (var _i = 0; _i < clusters.length; _i++) {\n var cur = clusters[_i];\n if (c1.key === cur.key) {\n dist = Infinity;\n } else if (opts.linkage === 'min') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'max') {\n dist = dists[c1.key][cur.key];\n if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {\n dist = dists[c2.key][cur.key];\n }\n } else if (opts.linkage === 'mean') {\n dist = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);\n } else {\n if (opts.mode === 'dendrogram') dist = getDist(cur.value, c1.value);else dist = getDist(cur.value[0], c1.value[0]);\n }\n dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist; // distance matrix is symmetric\n }\n\n // Update cached mins\n for (var _i2 = 0; _i2 < clusters.length; _i2++) {\n var key1 = clusters[_i2].key;\n if (mins[key1] === c1.key || mins[key1] === c2.key) {\n var _min = key1;\n for (var j = 0; j < clusters.length; j++) {\n var key2 = clusters[j].key;\n if (dists[key1][key2] < dists[key1][_min]) {\n _min = key2;\n }\n }\n mins[key1] = _min;\n }\n clusters[_i2].index = _i2;\n }\n\n // Clean up meta data used for clustering\n c1.key = c2.key = c1.index = c2.index = null;\n return true;\n };\n var getAllChildren = function getAllChildren(root, arr, cy) {\n if (!root) return;\n if (root.value) {\n arr.push(root.value);\n } else {\n if (root.left) getAllChildren(root.left, arr);\n if (root.right) getAllChildren(root.right, arr);\n }\n };\n var buildDendrogram = function buildDendrogram(root, cy) {\n if (!root) return '';\n if (root.left && root.right) {\n var leftStr = buildDendrogram(root.left, cy);\n var rightStr = buildDendrogram(root.right, cy);\n var node = cy.add({\n group: 'nodes',\n data: {\n id: leftStr + ',' + rightStr\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: leftStr,\n target: node.id()\n }\n });\n cy.add({\n group: 'edges',\n data: {\n source: rightStr,\n target: node.id()\n }\n });\n return node.id();\n } else if (root.value) {\n return root.value.id();\n }\n };\n var buildClustersFromTree = function buildClustersFromTree(root, k, cy) {\n if (!root) return [];\n var left = [],\n right = [],\n leaves = [];\n if (k === 0) {\n // don't cut tree, simply return all nodes as 1 single cluster\n if (root.left) getAllChildren(root.left, left);\n if (root.right) getAllChildren(root.right, right);\n leaves = left.concat(right);\n return [cy.collection(leaves)];\n } else if (k === 1) {\n // cut at root\n\n if (root.value) {\n // leaf node\n return [cy.collection(root.value)];\n } else {\n if (root.left) getAllChildren(root.left, left);\n if (root.right) getAllChildren(root.right, right);\n return [cy.collection(left), cy.collection(right)];\n }\n } else {\n if (root.value) {\n return [cy.collection(root.value)];\n } else {\n if (root.left) left = buildClustersFromTree(root.left, k - 1, cy);\n if (root.right) right = buildClustersFromTree(root.right, k - 1, cy);\n return left.concat(right);\n }\n }\n };\n\n var hierarchicalClustering = function hierarchicalClustering(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n\n // Set parameters of algorithm: linkage type, distance metric, etc.\n var opts = setOptions$1(options);\n var attrs = opts.attributes;\n var getDist = function getDist(n1, n2) {\n return clusteringDistance(opts.distance, attrs.length, function (i) {\n return attrs[i](n1);\n }, function (i) {\n return attrs[i](n2);\n }, n1, n2);\n };\n\n // Begin hierarchical algorithm\n var clusters = [];\n var dists = []; // distances between each pair of clusters\n var mins = []; // closest cluster for each cluster\n var index = []; // hash of all clusters by key\n\n // In agglomerative (bottom-up) clustering, each node starts as its own cluster\n for (var n = 0; n < nodes.length; n++) {\n var cluster = {\n value: opts.mode === 'dendrogram' ? nodes[n] : [nodes[n]],\n key: n,\n index: n\n };\n clusters[n] = cluster;\n index[n] = cluster;\n dists[n] = [];\n mins[n] = 0;\n }\n\n // Calculate the distance between each pair of clusters\n for (var i = 0; i < clusters.length; i++) {\n for (var j = 0; j <= i; j++) {\n var dist = void 0;\n if (opts.mode === 'dendrogram') {\n // modes store cluster values differently\n dist = i === j ? Infinity : getDist(clusters[i].value, clusters[j].value);\n } else {\n dist = i === j ? Infinity : getDist(clusters[i].value[0], clusters[j].value[0]);\n }\n dists[i][j] = dist;\n dists[j][i] = dist;\n if (dist < dists[i][mins[i]]) {\n mins[i] = j; // Cache mins: closest cluster to cluster i is cluster j\n }\n }\n }\n\n // Find the closest pair of clusters and merge them into a single cluster.\n // Update distances between new cluster and each of the old clusters, and loop until threshold reached.\n var merged = mergeClosest(clusters, index, dists, mins, opts);\n while (merged) {\n merged = mergeClosest(clusters, index, dists, mins, opts);\n }\n var retClusters;\n\n // Dendrogram mode builds the hierarchy and adds intermediary nodes + edges\n // in addition to returning the clusters.\n if (opts.mode === 'dendrogram') {\n retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);\n if (opts.addDendrogram) buildDendrogram(clusters[0], cy);\n } else {\n // Regular mode simply returns the clusters\n\n retClusters = new Array(clusters.length);\n clusters.forEach(function (cluster, i) {\n // Clean up meta data used for clustering\n cluster.key = cluster.index = null;\n retClusters[i] = cy.collection(cluster.value);\n });\n }\n return retClusters;\n };\n var hierarchicalClustering$1 = {\n hierarchicalClustering: hierarchicalClustering,\n hca: hierarchicalClustering\n };\n\n // Implemented by Zoe Xi @zoexi for GSOC 2016\n var defaults$9 = defaults$g({\n distance: 'euclidean',\n // distance metric to compare attributes between two nodes\n preference: 'median',\n // suitability of a data point to serve as an exemplar\n damping: 0.8,\n // damping factor between [0.5, 1)\n maxIterations: 1000,\n // max number of iterations to run\n minIterations: 100,\n // min number of iterations to run in order for clustering to stop\n attributes: [// functions to quantify the similarity between any two points\n // e.g. node => node.data('weight')\n ]\n });\n var setOptions = function setOptions(options) {\n var dmp = options.damping;\n var pref = options.preference;\n if (!(0.5 <= dmp && dmp < 1)) {\n error(\"Damping must range on [0.5, 1). Got: \".concat(dmp));\n }\n var validPrefs = ['median', 'mean', 'min', 'max'];\n if (!(validPrefs.some(function (v) {\n return v === pref;\n }) || number$1(pref))) {\n error(\"Preference must be one of [\".concat(validPrefs.map(function (p) {\n return \"'\".concat(p, \"'\");\n }).join(', '), \"] or a number. Got: \").concat(pref));\n }\n return defaults$9(options);\n };\n\n var getSimilarity = function getSimilarity(type, n1, n2, attributes) {\n var attr = function attr(n, i) {\n return attributes[i](n);\n };\n\n // nb negative because similarity should have an inverse relationship to distance\n return -clusteringDistance(type, attributes.length, function (i) {\n return attr(n1, i);\n }, function (i) {\n return attr(n2, i);\n }, n1, n2);\n };\n var getPreference = function getPreference(S, preference) {\n // larger preference = greater # of clusters\n var p = null;\n if (preference === 'median') {\n p = median(S);\n } else if (preference === 'mean') {\n p = mean(S);\n } else if (preference === 'min') {\n p = min(S);\n } else if (preference === 'max') {\n p = max(S);\n } else {\n // Custom preference number, as set by user\n p = preference;\n }\n return p;\n };\n var findExemplars = function findExemplars(n, R, A) {\n var indices = [];\n for (var i = 0; i < n; i++) {\n if (R[i * n + i] + A[i * n + i] > 0) {\n indices.push(i);\n }\n }\n return indices;\n };\n var assignClusters = function assignClusters(n, S, exemplars) {\n var clusters = [];\n for (var i = 0; i < n; i++) {\n var index = -1;\n var max = -Infinity;\n for (var ei = 0; ei < exemplars.length; ei++) {\n var e = exemplars[ei];\n if (S[i * n + e] > max) {\n index = e;\n max = S[i * n + e];\n }\n }\n if (index > 0) {\n clusters.push(index);\n }\n }\n for (var _ei = 0; _ei < exemplars.length; _ei++) {\n clusters[exemplars[_ei]] = exemplars[_ei];\n }\n return clusters;\n };\n var assign = function assign(n, S, exemplars) {\n var clusters = assignClusters(n, S, exemplars);\n for (var ei = 0; ei < exemplars.length; ei++) {\n var ii = [];\n for (var c = 0; c < clusters.length; c++) {\n if (clusters[c] === exemplars[ei]) {\n ii.push(c);\n }\n }\n var maxI = -1;\n var maxSum = -Infinity;\n for (var i = 0; i < ii.length; i++) {\n var sum = 0;\n for (var j = 0; j < ii.length; j++) {\n sum += S[ii[j] * n + ii[i]];\n }\n if (sum > maxSum) {\n maxI = i;\n maxSum = sum;\n }\n }\n exemplars[ei] = ii[maxI];\n }\n clusters = assignClusters(n, S, exemplars);\n return clusters;\n };\n var affinityPropagation = function affinityPropagation(options) {\n var cy = this.cy();\n var nodes = this.nodes();\n var opts = setOptions(options);\n\n // Map each node to its position in node array\n var id2position = {};\n for (var i = 0; i < nodes.length; i++) {\n id2position[nodes[i].id()] = i;\n }\n\n // Begin affinity propagation algorithm\n\n var n; // number of data points\n var n2; // size of matrices\n var S; // similarity matrix (1D array)\n var p; // preference/suitability of a data point to serve as an exemplar\n var R; // responsibility matrix (1D array)\n var A; // availability matrix (1D array)\n\n n = nodes.length;\n n2 = n * n;\n\n // Initialize and build S similarity matrix\n S = new Array(n2);\n for (var _i = 0; _i < n2; _i++) {\n S[_i] = -Infinity; // for cases where two data points shouldn't be linked together\n }\n\n for (var _i2 = 0; _i2 < n; _i2++) {\n for (var j = 0; j < n; j++) {\n if (_i2 !== j) {\n S[_i2 * n + j] = getSimilarity(opts.distance, nodes[_i2], nodes[j], opts.attributes);\n }\n }\n }\n\n // Place preferences on the diagonal of S\n p = getPreference(S, opts.preference);\n for (var _i3 = 0; _i3 < n; _i3++) {\n S[_i3 * n + _i3] = p;\n }\n\n // Initialize R responsibility matrix\n R = new Array(n2);\n for (var _i4 = 0; _i4 < n2; _i4++) {\n R[_i4] = 0.0;\n }\n\n // Initialize A availability matrix\n A = new Array(n2);\n for (var _i5 = 0; _i5 < n2; _i5++) {\n A[_i5] = 0.0;\n }\n var old = new Array(n);\n var Rp = new Array(n);\n var se = new Array(n);\n for (var _i6 = 0; _i6 < n; _i6++) {\n old[_i6] = 0.0;\n Rp[_i6] = 0.0;\n se[_i6] = 0;\n }\n var e = new Array(n * opts.minIterations);\n for (var _i7 = 0; _i7 < e.length; _i7++) {\n e[_i7] = 0;\n }\n var iter;\n for (iter = 0; iter < opts.maxIterations; iter++) {\n // main algorithmic loop\n\n // Update R responsibility matrix\n for (var _i8 = 0; _i8 < n; _i8++) {\n var max = -Infinity,\n max2 = -Infinity,\n maxI = -1,\n AS = 0.0;\n for (var _j = 0; _j < n; _j++) {\n old[_j] = R[_i8 * n + _j];\n AS = A[_i8 * n + _j] + S[_i8 * n + _j];\n if (AS >= max) {\n max2 = max;\n max = AS;\n maxI = _j;\n } else if (AS > max2) {\n max2 = AS;\n }\n }\n for (var _j2 = 0; _j2 < n; _j2++) {\n R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max) + opts.damping * old[_j2];\n }\n R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max2) + opts.damping * old[maxI];\n }\n\n // Update A availability matrix\n for (var _i9 = 0; _i9 < n; _i9++) {\n var sum = 0;\n for (var _j3 = 0; _j3 < n; _j3++) {\n old[_j3] = A[_j3 * n + _i9];\n Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);\n sum += Rp[_j3];\n }\n sum -= Rp[_i9];\n Rp[_i9] = R[_i9 * n + _i9];\n sum += Rp[_i9];\n for (var _j4 = 0; _j4 < n; _j4++) {\n A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];\n }\n A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];\n }\n\n // Check for convergence\n var K = 0;\n for (var _i10 = 0; _i10 < n; _i10++) {\n var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;\n e[iter % opts.minIterations * n + _i10] = E;\n K += E;\n }\n if (K > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {\n var _sum = 0;\n for (var _i11 = 0; _i11 < n; _i11++) {\n se[_i11] = 0;\n for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {\n se[_i11] += e[_j5 * n + _i11];\n }\n if (se[_i11] === 0 || se[_i11] === opts.minIterations) {\n _sum++;\n }\n }\n if (_sum === n) {\n // then we have convergence\n break;\n }\n }\n }\n\n // Identify exemplars (cluster centers)\n var exemplarsIndices = findExemplars(n, R, A);\n\n // Assign nodes to clusters\n var clusterIndices = assign(n, S, exemplarsIndices);\n var clusters = {};\n for (var c = 0; c < exemplarsIndices.length; c++) {\n clusters[exemplarsIndices[c]] = [];\n }\n for (var _i12 = 0; _i12 < nodes.length; _i12++) {\n var pos = id2position[nodes[_i12].id()];\n var clusterIndex = clusterIndices[pos];\n if (clusterIndex != null) {\n // the node may have not been assigned a cluster if no valid attributes were specified\n clusters[clusterIndex].push(nodes[_i12]);\n }\n }\n var retClusters = new Array(exemplarsIndices.length);\n for (var _c = 0; _c < exemplarsIndices.length; _c++) {\n retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);\n }\n return retClusters;\n };\n var affinityPropagation$1 = {\n affinityPropagation: affinityPropagation,\n ap: affinityPropagation\n };\n\n var hierholzerDefaults = defaults$g({\n root: undefined,\n directed: false\n });\n var elesfn$k = {\n hierholzer: function hierholzer(options) {\n if (!plainObject(options)) {\n var args = arguments;\n options = {\n root: args[0],\n directed: args[1]\n };\n }\n var _hierholzerDefaults = hierholzerDefaults(options),\n root = _hierholzerDefaults.root,\n directed = _hierholzerDefaults.directed;\n var eles = this;\n var dflag = false;\n var oddIn;\n var oddOut;\n var startVertex;\n if (root) startVertex = string(root) ? this.filter(root)[0].id() : root[0].id();\n var nodes = {};\n var edges = {};\n if (directed) {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var ind = ele.indegree(true);\n var outd = ele.outdegree(true);\n var d1 = ind - outd;\n var d2 = outd - ind;\n if (d1 == 1) {\n if (oddIn) dflag = true;else oddIn = id;\n } else if (d2 == 1) {\n if (oddOut) dflag = true;else oddOut = id;\n } else if (d2 > 1 || d1 > 1) {\n dflag = true;\n }\n nodes[id] = [];\n ele.outgoers().forEach(function (e) {\n if (e.isEdge()) nodes[id].push(e.id());\n });\n } else {\n edges[id] = [undefined, ele.target().id()];\n }\n });\n } else {\n eles.forEach(function (ele) {\n var id = ele.id();\n if (ele.isNode()) {\n var d = ele.degree(true);\n if (d % 2) {\n if (!oddIn) oddIn = id;else if (!oddOut) oddOut = id;else dflag = true;\n }\n nodes[id] = [];\n ele.connectedEdges().forEach(function (e) {\n return nodes[id].push(e.id());\n });\n } else {\n edges[id] = [ele.source().id(), ele.target().id()];\n }\n });\n }\n var result = {\n found: false,\n trail: undefined\n };\n if (dflag) return result;else if (oddOut && oddIn) {\n if (directed) {\n if (startVertex && oddOut != startVertex) {\n return result;\n }\n startVertex = oddOut;\n } else {\n if (startVertex && oddOut != startVertex && oddIn != startVertex) {\n return result;\n } else if (!startVertex) {\n startVertex = oddOut;\n }\n }\n } else {\n if (!startVertex) startVertex = eles[0].id();\n }\n var walk = function walk(v) {\n var currentNode = v;\n var subtour = [v];\n var adj, adjTail, adjHead;\n while (nodes[currentNode].length) {\n adj = nodes[currentNode].shift();\n adjTail = edges[adj][0];\n adjHead = edges[adj][1];\n if (currentNode != adjHead) {\n nodes[adjHead] = nodes[adjHead].filter(function (e) {\n return e != adj;\n });\n currentNode = adjHead;\n } else if (!directed && currentNode != adjTail) {\n nodes[adjTail] = nodes[adjTail].filter(function (e) {\n return e != adj;\n });\n currentNode = adjTail;\n }\n subtour.unshift(adj);\n subtour.unshift(currentNode);\n }\n return subtour;\n };\n var trail = [];\n var subtour = [];\n subtour = walk(startVertex);\n while (subtour.length != 1) {\n if (nodes[subtour[0]].length == 0) {\n trail.unshift(eles.getElementById(subtour.shift()));\n trail.unshift(eles.getElementById(subtour.shift()));\n } else {\n subtour = walk(subtour.shift()).concat(subtour);\n }\n }\n trail.unshift(eles.getElementById(subtour.shift())); // final node\n\n for (var d in nodes) {\n if (nodes[d].length) {\n return result;\n }\n }\n result.found = true;\n result.trail = this.spawn(trail, true);\n return result;\n }\n };\n\n var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected() {\n var eles = this;\n var nodes = {};\n var id = 0;\n var edgeCount = 0;\n var components = [];\n var stack = [];\n var visitedEdges = {};\n var buildComponent = function buildComponent(x, y) {\n var i = stack.length - 1;\n var cutset = [];\n var component = eles.spawn();\n while (stack[i].x != x || stack[i].y != y) {\n cutset.push(stack.pop().edge);\n i--;\n }\n cutset.push(stack.pop().edge);\n cutset.forEach(function (edge) {\n var connectedNodes = edge.connectedNodes().intersection(eles);\n component.merge(edge);\n connectedNodes.forEach(function (node) {\n var nodeId = node.id();\n var connectedEdges = node.connectedEdges().intersection(eles);\n component.merge(node);\n if (!nodes[nodeId].cutVertex) {\n component.merge(connectedEdges);\n } else {\n component.merge(connectedEdges.filter(function (edge) {\n return edge.isLoop();\n }));\n }\n });\n });\n components.push(component);\n };\n var biconnectedSearch = function biconnectedSearch(root, currentNode, parent) {\n if (root === parent) edgeCount += 1;\n nodes[currentNode] = {\n id: id,\n low: id++,\n cutVertex: false\n };\n var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles);\n if (edges.size() === 0) {\n components.push(eles.spawn(eles.getElementById(currentNode)));\n } else {\n var sourceId, targetId, otherNodeId, edgeId;\n edges.forEach(function (edge) {\n sourceId = edge.source().id();\n targetId = edge.target().id();\n otherNodeId = sourceId === currentNode ? targetId : sourceId;\n if (otherNodeId !== parent) {\n edgeId = edge.id();\n if (!visitedEdges[edgeId]) {\n visitedEdges[edgeId] = true;\n stack.push({\n x: currentNode,\n y: otherNodeId,\n edge: edge\n });\n }\n if (!(otherNodeId in nodes)) {\n biconnectedSearch(root, otherNodeId, currentNode);\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].low);\n if (nodes[currentNode].id <= nodes[otherNodeId].low) {\n nodes[currentNode].cutVertex = true;\n buildComponent(currentNode, otherNodeId);\n }\n } else {\n nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].id);\n }\n }\n });\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n edgeCount = 0;\n biconnectedSearch(nodeId, nodeId);\n nodes[nodeId].cutVertex = edgeCount > 1;\n }\n }\n });\n var cutVertices = Object.keys(nodes).filter(function (id) {\n return nodes[id].cutVertex;\n }).map(function (id) {\n return eles.getElementById(id);\n });\n return {\n cut: eles.spawn(cutVertices),\n components: components\n };\n };\n var hopcroftTarjanBiconnected$1 = {\n hopcroftTarjanBiconnected: hopcroftTarjanBiconnected,\n htbc: hopcroftTarjanBiconnected,\n htb: hopcroftTarjanBiconnected,\n hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected\n };\n\n var tarjanStronglyConnected = function tarjanStronglyConnected() {\n var eles = this;\n var nodes = {};\n var index = 0;\n var components = [];\n var stack = [];\n var cut = eles.spawn(eles);\n var stronglyConnectedSearch = function stronglyConnectedSearch(sourceNodeId) {\n stack.push(sourceNodeId);\n nodes[sourceNodeId] = {\n index: index,\n low: index++,\n explored: false\n };\n var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);\n connectedEdges.forEach(function (edge) {\n var targetNodeId = edge.target().id();\n if (targetNodeId !== sourceNodeId) {\n if (!(targetNodeId in nodes)) {\n stronglyConnectedSearch(targetNodeId);\n }\n if (!nodes[targetNodeId].explored) {\n nodes[sourceNodeId].low = Math.min(nodes[sourceNodeId].low, nodes[targetNodeId].low);\n }\n }\n });\n if (nodes[sourceNodeId].index === nodes[sourceNodeId].low) {\n var componentNodes = eles.spawn();\n for (;;) {\n var nodeId = stack.pop();\n componentNodes.merge(eles.getElementById(nodeId));\n nodes[nodeId].low = nodes[sourceNodeId].index;\n nodes[nodeId].explored = true;\n if (nodeId === sourceNodeId) {\n break;\n }\n }\n var componentEdges = componentNodes.edgesWith(componentNodes);\n var component = componentNodes.merge(componentEdges);\n components.push(component);\n cut = cut.difference(component);\n }\n };\n eles.forEach(function (ele) {\n if (ele.isNode()) {\n var nodeId = ele.id();\n if (!(nodeId in nodes)) {\n stronglyConnectedSearch(nodeId);\n }\n }\n });\n return {\n cut: cut,\n components: components\n };\n };\n var tarjanStronglyConnected$1 = {\n tarjanStronglyConnected: tarjanStronglyConnected,\n tsc: tarjanStronglyConnected,\n tscc: tarjanStronglyConnected,\n tarjanStronglyConnectedComponents: tarjanStronglyConnected\n };\n\n var elesfn$j = {};\n [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function (props) {\n extend(elesfn$j, props);\n });\n\n /*!\n Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable\n Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)\n Licensed under The MIT License (http://opensource.org/licenses/MIT)\n */\n\n /* promise states [Promises/A+ 2.1] */\n var STATE_PENDING = 0; /* [Promises/A+ 2.1.1] */\n var STATE_FULFILLED = 1; /* [Promises/A+ 2.1.2] */\n var STATE_REJECTED = 2; /* [Promises/A+ 2.1.3] */\n\n /* promise object constructor */\n var api = function api(executor) {\n /* optionally support non-constructor/plain-function call */\n if (!(this instanceof api)) return new api(executor);\n\n /* initialize object */\n this.id = 'Thenable/1.0.7';\n this.state = STATE_PENDING; /* initial state */\n this.fulfillValue = undefined; /* initial value */ /* [Promises/A+ 1.3, 2.1.2.2] */\n this.rejectReason = undefined; /* initial reason */ /* [Promises/A+ 1.5, 2.1.3.2] */\n this.onFulfilled = []; /* initial handlers */\n this.onRejected = []; /* initial handlers */\n\n /* provide optional information-hiding proxy */\n this.proxy = {\n then: this.then.bind(this)\n };\n\n /* support optional executor function */\n if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this));\n };\n\n /* promise API methods */\n api.prototype = {\n /* promise resolving methods */\n fulfill: function fulfill(value) {\n return deliver(this, STATE_FULFILLED, 'fulfillValue', value);\n },\n reject: function reject(value) {\n return deliver(this, STATE_REJECTED, 'rejectReason', value);\n },\n /* \"The then Method\" [Promises/A+ 1.1, 1.2, 2.2] */\n then: function then(onFulfilled, onRejected) {\n var curr = this;\n var next = new api(); /* [Promises/A+ 2.2.7] */\n curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); /* [Promises/A+ 2.2.2/2.2.6] */\n curr.onRejected.push(resolver(onRejected, next, 'reject')); /* [Promises/A+ 2.2.3/2.2.6] */\n execute(curr);\n return next.proxy; /* [Promises/A+ 2.2.7, 3.3] */\n }\n };\n\n /* deliver an action */\n var deliver = function deliver(curr, state, name, value) {\n if (curr.state === STATE_PENDING) {\n curr.state = state; /* [Promises/A+ 2.1.2.1, 2.1.3.1] */\n curr[name] = value; /* [Promises/A+ 2.1.2.2, 2.1.3.2] */\n execute(curr);\n }\n return curr;\n };\n\n /* execute all handlers */\n var execute = function execute(curr) {\n if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason);\n };\n\n /* execute particular set of handlers */\n var execute_handlers = function execute_handlers(curr, name, value) {\n /* global setImmediate: true */\n /* global setTimeout: true */\n\n /* short-circuit processing */\n if (curr[name].length === 0) return;\n\n /* iterate over all handlers, exactly once */\n var handlers = curr[name];\n curr[name] = []; /* [Promises/A+ 2.2.2.3, 2.2.3.3] */\n var func = function func() {\n for (var i = 0; i < handlers.length; i++) {\n handlers[i](value);\n } /* [Promises/A+ 2.2.5] */\n };\n\n /* execute procedure asynchronously */ /* [Promises/A+ 2.2.4, 3.1] */\n if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0);\n };\n\n /* generate a resolver function */\n var resolver = function resolver(cb, next, method) {\n return function (value) {\n if (typeof cb !== 'function') /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */\n next[method].call(next, value); /* [Promises/A+ 2.2.7.3, 2.2.7.4] */else {\n var result;\n try {\n result = cb(value);\n } /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ catch (e) {\n next.reject(e); /* [Promises/A+ 2.2.7.2] */\n return;\n }\n resolve(next, result); /* [Promises/A+ 2.2.7.1] */\n }\n };\n };\n\n /* \"Promise Resolution Procedure\" */ /* [Promises/A+ 2.3] */\n var resolve = function resolve(promise, x) {\n /* sanity check arguments */ /* [Promises/A+ 2.3.1] */\n if (promise === x || promise.proxy === x) {\n promise.reject(new TypeError('cannot resolve promise with itself'));\n return;\n }\n\n /* surgically check for a \"then\" method\n (mainly to just call the \"getter\" of \"then\" only once) */\n var then;\n if (_typeof(x) === 'object' && x !== null || typeof x === 'function') {\n try {\n then = x.then;\n } /* [Promises/A+ 2.3.3.1, 3.5] */ catch (e) {\n promise.reject(e); /* [Promises/A+ 2.3.3.2] */\n return;\n }\n }\n\n /* handle own Thenables [Promises/A+ 2.3.2]\n and similar \"thenables\" [Promises/A+ 2.3.3] */\n if (typeof then === 'function') {\n var resolved = false;\n try {\n /* call retrieved \"then\" method */ /* [Promises/A+ 2.3.3.3] */\n then.call(x, /* resolvePromise */ /* [Promises/A+ 2.3.3.3.1] */\n function (y) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n if (y === x) /* [Promises/A+ 3.6] */\n promise.reject(new TypeError('circular thenable chain'));else resolve(promise, y);\n }, /* rejectPromise */ /* [Promises/A+ 2.3.3.3.2] */\n function (r) {\n if (resolved) return;\n resolved = true; /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(r);\n });\n } catch (e) {\n if (!resolved) /* [Promises/A+ 2.3.3.3.3] */\n promise.reject(e); /* [Promises/A+ 2.3.3.3.4] */\n }\n\n return;\n }\n\n /* handle other values */\n promise.fulfill(x); /* [Promises/A+ 2.3.4, 2.3.3.4] */\n };\n\n // so we always have Promise.all()\n api.all = function (ps) {\n return new api(function (resolveAll, rejectAll) {\n var vals = new Array(ps.length);\n var doneCount = 0;\n var fulfill = function fulfill(i, val) {\n vals[i] = val;\n doneCount++;\n if (doneCount === ps.length) {\n resolveAll(vals);\n }\n };\n for (var i = 0; i < ps.length; i++) {\n (function (i) {\n var p = ps[i];\n var isPromise = p != null && p.then != null;\n if (isPromise) {\n p.then(function (val) {\n fulfill(i, val);\n }, function (err) {\n rejectAll(err);\n });\n } else {\n var val = p;\n fulfill(i, val);\n }\n })(i);\n }\n });\n };\n api.resolve = function (val) {\n return new api(function (resolve, reject) {\n resolve(val);\n });\n };\n api.reject = function (val) {\n return new api(function (resolve, reject) {\n reject(val);\n });\n };\n var Promise$1 = typeof Promise !== 'undefined' ? Promise : api; // eslint-disable-line no-undef\n\n var Animation = function Animation(target, opts, opts2) {\n var isCore = core(target);\n var isEle = !isCore;\n var _p = this._private = extend({\n duration: 1000\n }, opts, opts2);\n _p.target = target;\n _p.style = _p.style || _p.css;\n _p.started = false;\n _p.playing = false;\n _p.hooked = false;\n _p.applying = false;\n _p.progress = 0;\n _p.completes = [];\n _p.frames = [];\n if (_p.complete && fn$6(_p.complete)) {\n _p.completes.push(_p.complete);\n }\n if (isEle) {\n var pos = target.position();\n _p.startPosition = _p.startPosition || {\n x: pos.x,\n y: pos.y\n };\n _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);\n }\n if (isCore) {\n var pan = target.pan();\n _p.startPan = {\n x: pan.x,\n y: pan.y\n };\n _p.startZoom = target.zoom();\n }\n\n // for future timeline/animations impl\n this.length = 1;\n this[0] = this;\n };\n var anifn = Animation.prototype;\n extend(anifn, {\n instanceString: function instanceString() {\n return 'animation';\n },\n hook: function hook() {\n var _p = this._private;\n if (!_p.hooked) {\n // add to target's animation queue\n var q;\n var tAni = _p.target._private.animation;\n if (_p.queue) {\n q = tAni.queue;\n } else {\n q = tAni.current;\n }\n q.push(this);\n\n // add to the animation loop pool\n if (elementOrCollection(_p.target)) {\n _p.target.cy().addToAnimationPool(_p.target);\n }\n _p.hooked = true;\n }\n return this;\n },\n play: function play() {\n var _p = this._private;\n\n // autorewind\n if (_p.progress === 1) {\n _p.progress = 0;\n }\n _p.playing = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will start the animation...\n\n return this;\n },\n playing: function playing() {\n return this._private.playing;\n },\n apply: function apply() {\n var _p = this._private;\n _p.applying = true;\n _p.started = false; // needs to be started by animation loop\n _p.stopped = false;\n this.hook();\n\n // the animation loop will apply the animation at this progress\n\n return this;\n },\n applying: function applying() {\n return this._private.applying;\n },\n pause: function pause() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n return this;\n },\n stop: function stop() {\n var _p = this._private;\n _p.playing = false;\n _p.started = false;\n _p.stopped = true; // to be removed from animation queues\n\n return this;\n },\n rewind: function rewind() {\n return this.progress(0);\n },\n fastforward: function fastforward() {\n return this.progress(1);\n },\n time: function time(t) {\n var _p = this._private;\n if (t === undefined) {\n return _p.progress * _p.duration;\n } else {\n return this.progress(t / _p.duration);\n }\n },\n progress: function progress(p) {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (p === undefined) {\n return _p.progress;\n } else {\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = p;\n _p.started = false;\n if (wasPlaying) {\n this.play();\n }\n }\n return this;\n },\n completed: function completed() {\n return this._private.progress === 1;\n },\n reverse: function reverse() {\n var _p = this._private;\n var wasPlaying = _p.playing;\n if (wasPlaying) {\n this.pause();\n }\n _p.progress = 1 - _p.progress;\n _p.started = false;\n var swap = function swap(a, b) {\n var _pa = _p[a];\n if (_pa == null) {\n return;\n }\n _p[a] = _p[b];\n _p[b] = _pa;\n };\n swap('zoom', 'startZoom');\n swap('pan', 'startPan');\n swap('position', 'startPosition');\n\n // swap styles\n if (_p.style) {\n for (var i = 0; i < _p.style.length; i++) {\n var prop = _p.style[i];\n var name = prop.name;\n var startStyleProp = _p.startStyle[name];\n _p.startStyle[name] = prop;\n _p.style[i] = startStyleProp;\n }\n }\n if (wasPlaying) {\n this.play();\n }\n return this;\n },\n promise: function promise(type) {\n var _p = this._private;\n var arr;\n switch (type) {\n case 'frame':\n arr = _p.frames;\n break;\n default:\n case 'complete':\n case 'completed':\n arr = _p.completes;\n }\n return new Promise$1(function (resolve, reject) {\n arr.push(function () {\n resolve();\n });\n });\n }\n });\n anifn.complete = anifn.completed;\n anifn.run = anifn.play;\n anifn.running = anifn.playing;\n\n var define$3 = {\n animated: function animated() {\n return function animatedImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = all[0];\n if (ele) {\n return ele._private.animation.current.length > 0;\n }\n };\n },\n // animated\n\n clearQueue: function clearQueue() {\n return function clearQueueImpl() {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n ele._private.animation.queue = [];\n }\n return this;\n };\n },\n // clearQueue\n\n delay: function delay() {\n return function delayImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animate({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n delayAnimation: function delayAnimation() {\n return function delayAnimationImpl(time, complete) {\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n return this.animation({\n delay: time,\n duration: time,\n complete: complete\n });\n };\n },\n // delay\n\n animation: function animation() {\n return function animationImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n var isCore = !selfIsArrayLike;\n var isEles = !isCore;\n if (!cy.styleEnabled()) {\n return this;\n }\n var style = cy.style();\n properties = extend({}, properties, params);\n var propertiesEmpty = Object.keys(properties).length === 0;\n if (propertiesEmpty) {\n return new Animation(all[0], properties); // nothing to animate\n }\n\n if (properties.duration === undefined) {\n properties.duration = 400;\n }\n switch (properties.duration) {\n case 'slow':\n properties.duration = 600;\n break;\n case 'fast':\n properties.duration = 200;\n break;\n }\n if (isEles) {\n properties.style = style.getPropsList(properties.style || properties.css);\n properties.css = undefined;\n }\n if (isEles && properties.renderedPosition != null) {\n var rpos = properties.renderedPosition;\n var pan = cy.pan();\n var zoom = cy.zoom();\n properties.position = renderedToModelPosition(rpos, zoom, pan);\n }\n\n // override pan w/ panBy if set\n if (isCore && properties.panBy != null) {\n var panBy = properties.panBy;\n var cyPan = cy.pan();\n properties.pan = {\n x: cyPan.x + panBy.x,\n y: cyPan.y + panBy.y\n };\n }\n\n // override pan w/ center if set\n var center = properties.center || properties.centre;\n if (isCore && center != null) {\n var centerPan = cy.getCenterPan(center.eles, properties.zoom);\n if (centerPan != null) {\n properties.pan = centerPan;\n }\n }\n\n // override pan & zoom w/ fit if set\n if (isCore && properties.fit != null) {\n var fit = properties.fit;\n var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);\n if (fitVp != null) {\n properties.pan = fitVp.pan;\n properties.zoom = fitVp.zoom;\n }\n }\n\n // override zoom (& potentially pan) w/ zoom obj if set\n if (isCore && plainObject(properties.zoom)) {\n var vp = cy.getZoomedViewport(properties.zoom);\n if (vp != null) {\n if (vp.zoomed) {\n properties.zoom = vp.zoom;\n }\n if (vp.panned) {\n properties.pan = vp.pan;\n }\n } else {\n properties.zoom = null; // an inavalid zoom (e.g. no delta) gets automatically destroyed\n }\n }\n\n return new Animation(all[0], properties);\n };\n },\n // animate\n\n animate: function animate() {\n return function animateImpl(properties, params) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (params) {\n properties = extend({}, properties, params);\n }\n\n // manually hook and run the animation\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var queue = ele.animated() && (properties.queue === undefined || properties.queue);\n var ani = ele.animation(properties, queue ? {\n queue: true\n } : undefined);\n ani.play();\n }\n return this; // chaining\n };\n },\n\n // animate\n\n stop: function stop() {\n return function stopImpl(clearQueue, jumpToEnd) {\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var cy = this._private.cy || this;\n if (!cy.styleEnabled()) {\n return this;\n }\n for (var i = 0; i < all.length; i++) {\n var ele = all[i];\n var _p = ele._private;\n var anis = _p.animation.current;\n for (var j = 0; j < anis.length; j++) {\n var ani = anis[j];\n var ani_p = ani._private;\n if (jumpToEnd) {\n // next iteration of the animation loop, the animation\n // will go straight to the end and be removed\n ani_p.duration = 0;\n }\n }\n\n // clear the queue of future animations\n if (clearQueue) {\n _p.animation.queue = [];\n }\n if (!jumpToEnd) {\n _p.animation.current = [];\n }\n }\n\n // we have to notify (the animation loop doesn't do it for us on `stop`)\n cy.notify('draw');\n return this;\n };\n } // stop\n }; // define\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n var isArray_1 = isArray;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray_1(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol_1(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n var _isKey = isKey;\n\n /** `Object#toString` result references. */\n var asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject_1(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = _baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n var isFunction_1 = isFunction;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = _root['__core-js_shared__'];\n\n var _coreJsData = coreJsData;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n var _isMasked = isMasked;\n\n /** Used for built-in method references. */\n var funcProto$1 = Function.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString$1 = funcProto$1.toString;\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString$1.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n var _toSource = toSource;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used for built-in method references. */\n var funcProto = Function.prototype,\n objectProto$3 = Object.prototype;\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$3 = objectProto$3.hasOwnProperty;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty$3).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject_1(value) || _isMasked(value)) {\n return false;\n }\n var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource(value));\n }\n\n var _baseIsNative = baseIsNative;\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue$1(object, key) {\n return object == null ? undefined : object[key];\n }\n\n var _getValue = getValue$1;\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = _getValue(object, key);\n return _baseIsNative(value) ? value : undefined;\n }\n\n var _getNative = getNative;\n\n /* Built-in method references that are verified to be native. */\n var nativeCreate = _getNative(Object, 'create');\n\n var _nativeCreate = nativeCreate;\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = _nativeCreate ? _nativeCreate(null) : {};\n this.size = 0;\n }\n\n var _hashClear = hashClear;\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n var _hashDelete = hashDelete;\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';\n\n /** Used for built-in method references. */\n var objectProto$2 = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$2 = objectProto$2.hasOwnProperty;\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED$1 ? undefined : result;\n }\n return hasOwnProperty$2.call(data, key) ? data[key] : undefined;\n }\n\n var _hashGet = hashGet;\n\n /** Used for built-in method references. */\n var objectProto$1 = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty$1 = objectProto$1.hasOwnProperty;\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$1.call(data, key);\n }\n\n var _hashHas = hashHas;\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n var _hashSet = hashSet;\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = _hashClear;\n Hash.prototype['delete'] = _hashDelete;\n Hash.prototype.get = _hashGet;\n Hash.prototype.has = _hashHas;\n Hash.prototype.set = _hashSet;\n\n var _Hash = Hash;\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n var _listCacheClear = listCacheClear;\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n var eq_1 = eq;\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_1(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n var _assocIndexOf = assocIndexOf;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype;\n\n /** Built-in value references. */\n var splice = arrayProto.splice;\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n var _listCacheDelete = listCacheDelete;\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n var _listCacheGet = listCacheGet;\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return _assocIndexOf(this.__data__, key) > -1;\n }\n\n var _listCacheHas = listCacheHas;\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n var _listCacheSet = listCacheSet;\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = _listCacheClear;\n ListCache.prototype['delete'] = _listCacheDelete;\n ListCache.prototype.get = _listCacheGet;\n ListCache.prototype.has = _listCacheHas;\n ListCache.prototype.set = _listCacheSet;\n\n var _ListCache = ListCache;\n\n /* Built-in method references that are verified to be native. */\n var Map$1 = _getNative(_root, 'Map');\n\n var _Map = Map$1;\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash,\n 'map': new (_Map || _ListCache),\n 'string': new _Hash\n };\n }\n\n var _mapCacheClear = mapCacheClear;\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n var _isKeyable = isKeyable;\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n var _getMapData = getMapData;\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = _getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n var _mapCacheDelete = mapCacheDelete;\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return _getMapData(this, key).get(key);\n }\n\n var _mapCacheGet = mapCacheGet;\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return _getMapData(this, key).has(key);\n }\n\n var _mapCacheHas = mapCacheHas;\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = _getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n var _mapCacheSet = mapCacheSet;\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = _mapCacheClear;\n MapCache.prototype['delete'] = _mapCacheDelete;\n MapCache.prototype.get = _mapCacheGet;\n MapCache.prototype.has = _mapCacheHas;\n MapCache.prototype.set = _mapCacheSet;\n\n var _MapCache = MapCache;\n\n /** Error message constants. */\n var FUNC_ERROR_TEXT = 'Expected a function';\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || _MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = _MapCache;\n\n var memoize_1 = memoize;\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize_1(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n var _memoizeCapped = memoizeCapped;\n\n /** Used to match property names within property paths. */\n var rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = _memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n var _stringToPath = stringToPath;\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n var _arrayMap = arrayMap;\n\n /** Used as references for various `Number` constants. */\n var INFINITY$1 = 1 / 0;\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray_1(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return _arrayMap(value, baseToString) + '';\n }\n if (isSymbol_1(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result;\n }\n\n var _baseToString = baseToString;\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString$1(value) {\n return value == null ? '' : _baseToString(value);\n }\n\n var toString_1 = toString$1;\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray_1(value)) {\n return value;\n }\n return _isKey(value, object) ? [value] : _stringToPath(toString_1(value));\n }\n\n var _castPath = castPath;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0;\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol_1(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n var _toKey = toKey;\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = _castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[_toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n var _baseGet = baseGet;\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : _baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n var get_1 = get;\n\n var defineProperty = (function() {\n try {\n var func = _getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n var _defineProperty = defineProperty;\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty) {\n _defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n var _baseAssignValue = baseAssignValue;\n\n /** Used for built-in method references. */\n var objectProto = Object.prototype;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq_1(objValue, value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n }\n\n var _assignValue = assignValue;\n\n /** Used as references for various `Number` constants. */\n var MAX_SAFE_INTEGER = 9007199254740991;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n var _isIndex = isIndex;\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject_1(object)) {\n return object;\n }\n path = _castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = _toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject_1(objValue)\n ? objValue\n : (_isIndex(path[index + 1]) ? [] : {});\n }\n }\n _assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n var _baseSet = baseSet;\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : _baseSet(object, path, value);\n }\n\n var set_1 = set;\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n var _copyArray = copyArray;\n\n /**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\n function toPath(value) {\n if (isArray_1(value)) {\n return _arrayMap(value, _toKey);\n }\n return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value)));\n }\n\n var toPath_1 = toPath;\n\n var define$2 = {\n // access data field\n data: function data(params) {\n var defaults = {\n field: 'data',\n bindingEvent: 'data',\n allowBinding: false,\n allowSetting: false,\n allowGetting: false,\n settingEvent: 'data',\n settingTriggersEvent: false,\n triggerFnName: 'trigger',\n immutableKeys: {},\n // key => true if immutable\n updateStyle: false,\n beforeGet: function beforeGet(self) {},\n beforeSet: function beforeSet(self, obj) {},\n onSet: function onSet(self) {},\n canSet: function canSet(self) {\n return true;\n }\n };\n params = extend({}, defaults, params);\n return function dataImpl(name, value) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n var single = selfIsArrayLike ? self[0] : self;\n\n // .data('foo', ...)\n if (string(name)) {\n // set or get property\n var isPathLike = name.indexOf('.') !== -1; // there might be a normal field with a dot \n var path = isPathLike && toPath_1(name);\n\n // .data('foo')\n if (p.allowGetting && value === undefined) {\n // get\n\n var ret;\n if (single) {\n p.beforeGet(single);\n\n // check if it's path and a field with the same name doesn't exist\n if (path && single._private[p.field][name] === undefined) {\n ret = get_1(single._private[p.field], path);\n } else {\n ret = single._private[p.field][name];\n }\n }\n return ret;\n\n // .data('foo', 'bar')\n } else if (p.allowSetting && value !== undefined) {\n // set\n var valid = !p.immutableKeys[name];\n if (valid) {\n var change = _defineProperty$1({}, name, value);\n p.beforeSet(self, change);\n for (var i = 0, l = all.length; i < l; i++) {\n var ele = all[i];\n if (p.canSet(ele)) {\n if (path && single._private[p.field][name] === undefined) {\n set_1(ele._private[p.field], path, value);\n } else {\n ele._private[p.field][name] = value;\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n }\n }\n\n // .data({ 'foo': 'bar' })\n } else if (p.allowSetting && plainObject(name)) {\n // extend\n var obj = name;\n var k, v;\n var keys = Object.keys(obj);\n p.beforeSet(self, obj);\n for (var _i = 0; _i < keys.length; _i++) {\n k = keys[_i];\n v = obj[k];\n var _valid = !p.immutableKeys[k];\n if (_valid) {\n for (var j = 0; j < all.length; j++) {\n var _ele = all[j];\n if (p.canSet(_ele)) {\n _ele._private[p.field][k] = v;\n }\n }\n }\n }\n\n // update mappers if asked\n if (p.updateStyle) {\n self.updateStyle();\n }\n\n // call onSet callback\n p.onSet(self);\n if (p.settingTriggersEvent) {\n self[p.triggerFnName](p.settingEvent);\n }\n\n // .data(function(){ ... })\n } else if (p.allowBinding && fn$6(name)) {\n // bind to event\n var fn = name;\n self.on(p.bindingEvent, fn);\n\n // .data()\n } else if (p.allowGetting && name === undefined) {\n // get whole object\n var _ret;\n if (single) {\n p.beforeGet(single);\n _ret = single._private[p.field];\n }\n return _ret;\n }\n return self; // maintain chainability\n }; // function\n },\n\n // data\n\n // remove data field\n removeData: function removeData(params) {\n var defaults = {\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: false,\n immutableKeys: {} // key => true if immutable\n };\n\n params = extend({}, defaults, params);\n return function removeDataImpl(names) {\n var p = params;\n var self = this;\n var selfIsArrayLike = self.length !== undefined;\n var all = selfIsArrayLike ? self : [self]; // put in array if not array-like\n\n // .removeData('foo bar')\n if (string(names)) {\n // then get the list of keys, and delete them\n var keys = names.split(/\\s+/);\n var l = keys.length;\n for (var i = 0; i < l; i++) {\n // delete each non-empty key\n var key = keys[i];\n if (emptyString(key)) {\n continue;\n }\n var valid = !p.immutableKeys[key]; // not valid if immutable\n if (valid) {\n for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) {\n all[i_a]._private[p.field][key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n\n // .removeData()\n } else if (names === undefined) {\n // then delete all keys\n\n for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) {\n var _privateFields = all[_i_a]._private[p.field];\n var _keys = Object.keys(_privateFields);\n for (var _i2 = 0; _i2 < _keys.length; _i2++) {\n var _key = _keys[_i2];\n var validKeyToDelete = !p.immutableKeys[_key];\n if (validKeyToDelete) {\n _privateFields[_key] = undefined;\n }\n }\n }\n if (p.triggerEvent) {\n self[p.triggerFnName](p.event);\n }\n }\n return self; // maintain chaining\n }; // function\n } // removeData\n }; // define\n\n var define$1 = {\n eventAliasesOn: function eventAliasesOn(proto) {\n var p = proto;\n p.addListener = p.listen = p.bind = p.on;\n p.unlisten = p.unbind = p.off = p.removeListener;\n p.trigger = p.emit;\n\n // this is just a wrapper alias of .on()\n p.pon = p.promiseOn = function (events, selector) {\n var self = this;\n var args = Array.prototype.slice.call(arguments, 0);\n return new Promise$1(function (resolve, reject) {\n var callback = function callback(e) {\n self.off.apply(self, offArgs);\n resolve(e);\n };\n var onArgs = args.concat([callback]);\n var offArgs = onArgs.concat([]);\n self.on.apply(self, onArgs);\n });\n };\n }\n }; // define\n\n // use this module to cherry pick functions into your prototype\n var define = {};\n [define$3, define$2, define$1].forEach(function (m) {\n extend(define, m);\n });\n\n var elesfn$i = {\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop()\n };\n\n var elesfn$h = {\n classes: function classes(_classes) {\n var self = this;\n if (_classes === undefined) {\n var ret = [];\n self[0]._private.classes.forEach(function (cls) {\n return ret.push(cls);\n });\n return ret;\n } else if (!array(_classes)) {\n // extract classes from string\n _classes = (_classes || '').match(/\\S+/g) || [];\n }\n var changed = [];\n var classesSet = new Set$1(_classes);\n\n // check and update each ele\n for (var j = 0; j < self.length; j++) {\n var ele = self[j];\n var _p = ele._private;\n var eleClasses = _p.classes;\n var changedEle = false;\n\n // check if ele has all of the passed classes\n for (var i = 0; i < _classes.length; i++) {\n var cls = _classes[i];\n var eleHasClass = eleClasses.has(cls);\n if (!eleHasClass) {\n changedEle = true;\n break;\n }\n }\n\n // check if ele has classes outside of those passed\n if (!changedEle) {\n changedEle = eleClasses.size !== _classes.length;\n }\n if (changedEle) {\n _p.classes = classesSet;\n changed.push(ele);\n }\n }\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n addClass: function addClass(classes) {\n return this.toggleClass(classes, true);\n },\n hasClass: function hasClass(className) {\n var ele = this[0];\n return ele != null && ele._private.classes.has(className);\n },\n toggleClass: function toggleClass(classes, toggle) {\n if (!array(classes)) {\n // extract classes from string\n classes = classes.match(/\\S+/g) || [];\n }\n var self = this;\n var toggleUndefd = toggle === undefined;\n var changed = []; // eles who had classes changed\n\n for (var i = 0, il = self.length; i < il; i++) {\n var ele = self[i];\n var eleClasses = ele._private.classes;\n var changedEle = false;\n for (var j = 0; j < classes.length; j++) {\n var cls = classes[j];\n var hasClass = eleClasses.has(cls);\n var changedNow = false;\n if (toggle || toggleUndefd && !hasClass) {\n eleClasses.add(cls);\n changedNow = true;\n } else if (!toggle || toggleUndefd && hasClass) {\n eleClasses[\"delete\"](cls);\n changedNow = true;\n }\n if (!changedEle && changedNow) {\n changed.push(ele);\n changedEle = true;\n }\n } // for j classes\n } // for i eles\n\n // trigger update style on those eles that had class changes\n if (changed.length > 0) {\n this.spawn(changed).updateStyle().emit('class');\n }\n return self;\n },\n removeClass: function removeClass(classes) {\n return this.toggleClass(classes, false);\n },\n flashClass: function flashClass(classes, duration) {\n var self = this;\n if (duration == null) {\n duration = 250;\n } else if (duration === 0) {\n return self; // nothing to do really\n }\n\n self.addClass(classes);\n setTimeout(function () {\n self.removeClass(classes);\n }, duration);\n return self;\n }\n };\n elesfn$h.className = elesfn$h.classNames = elesfn$h.classes;\n\n // tokens in the query language\n var tokens = {\n metaChar: '[\\\\!\\\\\"\\\\#\\\\$\\\\%\\\\&\\\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\.\\\\/\\\\:\\\\;\\\\<\\\\=\\\\>\\\\?\\\\@\\\\[\\\\]\\\\^\\\\`\\\\{\\\\|\\\\}\\\\~]',\n // chars we need to escape in let names, etc\n comparatorOp: '=|\\\\!=|>|>=|<|<=|\\\\$=|\\\\^=|\\\\*=',\n // binary comparison op (used in data selectors)\n boolOp: '\\\\?|\\\\!|\\\\^',\n // boolean (unary) operators (used in data selectors)\n string: '\"(?:\\\\\\\\\"|[^\"])*\"' + '|' + \"'(?:\\\\\\\\'|[^'])*'\",\n // string literals (used in data selectors) -- doublequotes | singlequotes\n number: number,\n // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123\n meta: 'degree|indegree|outdegree',\n // allowed metadata fields (i.e. allowed functions to use from Collection)\n separator: '\\\\s*,\\\\s*',\n // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass\n descendant: '\\\\s+',\n child: '\\\\s+>\\\\s+',\n subject: '\\\\$',\n group: 'node|edge|\\\\*',\n directedEdge: '\\\\s+->\\\\s+',\n undirectedEdge: '\\\\s+<->\\\\s+'\n };\n tokens.variable = '(?:[\\\\w-.]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a variable name can have letters, numbers, dashes, and periods\n tokens.className = '(?:[\\\\w-]|(?:\\\\\\\\' + tokens.metaChar + '))+'; // a class name has the same rules as a variable except it can't have a '.' in the name\n tokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number\n tokens.id = tokens.variable; // an element id (follows variable conventions)\n\n (function () {\n var ops, op, i;\n\n // add @ variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n tokens.comparatorOp += '|@' + op;\n }\n\n // add ! variants to comparatorOp\n ops = tokens.comparatorOp.split('|');\n for (i = 0; i < ops.length; i++) {\n op = ops[i];\n if (op.indexOf('!') >= 0) {\n continue;\n } // skip ops that explicitly contain !\n if (op === '=') {\n continue;\n } // skip = b/c != is explicitly defined\n\n tokens.comparatorOp += '|\\\\!' + op;\n }\n })();\n\n /**\n * Make a new query object\n *\n * @prop type {Type} The type enum (int) of the query\n * @prop checks List of checks to make against an ele to test for a match\n */\n var newQuery = function newQuery() {\n return {\n checks: []\n };\n };\n\n /**\n * A check type enum-like object. Uses integer values for fast match() lookup.\n * The ordering does not matter as long as the ints are unique.\n */\n var Type = {\n /** E.g. node */\n GROUP: 0,\n /** A collection of elements */\n COLLECTION: 1,\n /** A filter(ele) function */\n FILTER: 2,\n /** E.g. [foo > 1] */\n DATA_COMPARE: 3,\n /** E.g. [foo] */\n DATA_EXIST: 4,\n /** E.g. [?foo] */\n DATA_BOOL: 5,\n /** E.g. [[degree > 2]] */\n META_COMPARE: 6,\n /** E.g. :selected */\n STATE: 7,\n /** E.g. #foo */\n ID: 8,\n /** E.g. .foo */\n CLASS: 9,\n /** E.g. #foo <-> #bar */\n UNDIRECTED_EDGE: 10,\n /** E.g. #foo -> #bar */\n DIRECTED_EDGE: 11,\n /** E.g. $#foo -> #bar */\n NODE_SOURCE: 12,\n /** E.g. #foo -> $#bar */\n NODE_TARGET: 13,\n /** E.g. $#foo <-> #bar */\n NODE_NEIGHBOR: 14,\n /** E.g. #foo > #bar */\n CHILD: 15,\n /** E.g. #foo #bar */\n DESCENDANT: 16,\n /** E.g. $#foo > #bar */\n PARENT: 17,\n /** E.g. $#foo #bar */\n ANCESTOR: 18,\n /** E.g. #foo > $bar > #baz */\n COMPOUND_SPLIT: 19,\n /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */\n TRUE: 20\n };\n\n var stateSelectors = [{\n selector: ':selected',\n matches: function matches(ele) {\n return ele.selected();\n }\n }, {\n selector: ':unselected',\n matches: function matches(ele) {\n return !ele.selected();\n }\n }, {\n selector: ':selectable',\n matches: function matches(ele) {\n return ele.selectable();\n }\n }, {\n selector: ':unselectable',\n matches: function matches(ele) {\n return !ele.selectable();\n }\n }, {\n selector: ':locked',\n matches: function matches(ele) {\n return ele.locked();\n }\n }, {\n selector: ':unlocked',\n matches: function matches(ele) {\n return !ele.locked();\n }\n }, {\n selector: ':visible',\n matches: function matches(ele) {\n return ele.visible();\n }\n }, {\n selector: ':hidden',\n matches: function matches(ele) {\n return !ele.visible();\n }\n }, {\n selector: ':transparent',\n matches: function matches(ele) {\n return ele.transparent();\n }\n }, {\n selector: ':grabbed',\n matches: function matches(ele) {\n return ele.grabbed();\n }\n }, {\n selector: ':free',\n matches: function matches(ele) {\n return !ele.grabbed();\n }\n }, {\n selector: ':removed',\n matches: function matches(ele) {\n return ele.removed();\n }\n }, {\n selector: ':inside',\n matches: function matches(ele) {\n return !ele.removed();\n }\n }, {\n selector: ':grabbable',\n matches: function matches(ele) {\n return ele.grabbable();\n }\n }, {\n selector: ':ungrabbable',\n matches: function matches(ele) {\n return !ele.grabbable();\n }\n }, {\n selector: ':animated',\n matches: function matches(ele) {\n return ele.animated();\n }\n }, {\n selector: ':unanimated',\n matches: function matches(ele) {\n return !ele.animated();\n }\n }, {\n selector: ':parent',\n matches: function matches(ele) {\n return ele.isParent();\n }\n }, {\n selector: ':childless',\n matches: function matches(ele) {\n return ele.isChildless();\n }\n }, {\n selector: ':child',\n matches: function matches(ele) {\n return ele.isChild();\n }\n }, {\n selector: ':orphan',\n matches: function matches(ele) {\n return ele.isOrphan();\n }\n }, {\n selector: ':nonorphan',\n matches: function matches(ele) {\n return ele.isChild();\n }\n }, {\n selector: ':compound',\n matches: function matches(ele) {\n if (ele.isNode()) {\n return ele.isParent();\n } else {\n return ele.source().isParent() || ele.target().isParent();\n }\n }\n }, {\n selector: ':loop',\n matches: function matches(ele) {\n return ele.isLoop();\n }\n }, {\n selector: ':simple',\n matches: function matches(ele) {\n return ele.isSimple();\n }\n }, {\n selector: ':active',\n matches: function matches(ele) {\n return ele.active();\n }\n }, {\n selector: ':inactive',\n matches: function matches(ele) {\n return !ele.active();\n }\n }, {\n selector: ':backgrounding',\n matches: function matches(ele) {\n return ele.backgrounding();\n }\n }, {\n selector: ':nonbackgrounding',\n matches: function matches(ele) {\n return !ele.backgrounding();\n }\n }].sort(function (a, b) {\n // n.b. selectors that are starting substrings of others must have the longer ones first\n return descending(a.selector, b.selector);\n });\n var lookup = function () {\n var selToFn = {};\n var s;\n for (var i = 0; i < stateSelectors.length; i++) {\n s = stateSelectors[i];\n selToFn[s.selector] = s.matches;\n }\n return selToFn;\n }();\n var stateSelectorMatches = function stateSelectorMatches(sel, ele) {\n return lookup[sel](ele);\n };\n var stateSelectorRegex = '(' + stateSelectors.map(function (s) {\n return s.selector;\n }).join('|') + ')';\n\n // when a token like a variable has escaped meta characters, we need to clean the backslashes out\n // so that values get compared properly in Selector.filter()\n var cleanMetaChars = function cleanMetaChars(str) {\n return str.replace(new RegExp('\\\\\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) {\n return $1;\n });\n };\n var replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) {\n selector[selector.length - 1] = replacementQuery;\n };\n\n // NOTE: add new expression syntax here to have it recognised by the parser;\n // - a query contains all adjacent (i.e. no separator in between) expressions;\n // - the current query is stored in selector[i]\n // - you need to check the query objects in match() for it actually filter properly, but that's pretty straight forward\n var exprs = [{\n name: 'group',\n // just used for identifying when debugging\n query: true,\n regex: '(' + tokens.group + ')',\n populate: function populate(selector, query, _ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n group = _ref2[0];\n query.checks.push({\n type: Type.GROUP,\n value: group === '*' ? group : group + 's'\n });\n }\n }, {\n name: 'state',\n query: true,\n regex: stateSelectorRegex,\n populate: function populate(selector, query, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n state = _ref4[0];\n query.checks.push({\n type: Type.STATE,\n value: state\n });\n }\n }, {\n name: 'id',\n query: true,\n regex: '\\\\#(' + tokens.id + ')',\n populate: function populate(selector, query, _ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n id = _ref6[0];\n query.checks.push({\n type: Type.ID,\n value: cleanMetaChars(id)\n });\n }\n }, {\n name: 'className',\n query: true,\n regex: '\\\\.(' + tokens.className + ')',\n populate: function populate(selector, query, _ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n className = _ref8[0];\n query.checks.push({\n type: Type.CLASS,\n value: cleanMetaChars(className)\n });\n }\n }, {\n name: 'dataExists',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref9) {\n var _ref10 = _slicedToArray(_ref9, 1),\n variable = _ref10[0];\n query.checks.push({\n type: Type.DATA_EXIST,\n field: cleanMetaChars(variable)\n });\n }\n }, {\n name: 'dataCompare',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.variable + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.value + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref11) {\n var _ref12 = _slicedToArray(_ref11, 3),\n variable = _ref12[0],\n comparatorOp = _ref12[1],\n value = _ref12[2];\n var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null;\n if (valueIsString) {\n value = value.substring(1, value.length - 1);\n } else {\n value = parseFloat(value);\n }\n query.checks.push({\n type: Type.DATA_COMPARE,\n field: cleanMetaChars(variable),\n operator: comparatorOp,\n value: value\n });\n }\n }, {\n name: 'dataBool',\n query: true,\n regex: '\\\\[\\\\s*(' + tokens.boolOp + ')\\\\s*(' + tokens.variable + ')\\\\s*\\\\]',\n populate: function populate(selector, query, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n boolOp = _ref14[0],\n variable = _ref14[1];\n query.checks.push({\n type: Type.DATA_BOOL,\n field: cleanMetaChars(variable),\n operator: boolOp\n });\n }\n }, {\n name: 'metaCompare',\n query: true,\n regex: '\\\\[\\\\[\\\\s*(' + tokens.meta + ')\\\\s*(' + tokens.comparatorOp + ')\\\\s*(' + tokens.number + ')\\\\s*\\\\]\\\\]',\n populate: function populate(selector, query, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 3),\n meta = _ref16[0],\n comparatorOp = _ref16[1],\n number = _ref16[2];\n query.checks.push({\n type: Type.META_COMPARE,\n field: cleanMetaChars(meta),\n operator: comparatorOp,\n value: parseFloat(number)\n });\n }\n }, {\n name: 'nextQuery',\n separator: true,\n regex: tokens.separator,\n populate: function populate(selector, query) {\n var currentSubject = selector.currentSubject;\n var edgeCount = selector.edgeCount;\n var compoundCount = selector.compoundCount;\n var lastQ = selector[selector.length - 1];\n if (currentSubject != null) {\n lastQ.subject = currentSubject;\n selector.currentSubject = null;\n }\n lastQ.edgeCount = edgeCount;\n lastQ.compoundCount = compoundCount;\n selector.edgeCount = 0;\n selector.compoundCount = 0;\n\n // go on to next query\n var nextQuery = selector[selector.length++] = newQuery();\n return nextQuery; // this is the new query to be filled by the following exprs\n }\n }, {\n name: 'directedEdge',\n separator: true,\n regex: tokens.directedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.DIRECTED_EDGE,\n source: source,\n target: target\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // source/target\n var srcTgtQ = newQuery();\n var _source = query;\n var _target = newQuery();\n srcTgtQ.checks.push({\n type: Type.NODE_SOURCE,\n source: _source,\n target: _target\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, srcTgtQ);\n selector.edgeCount++;\n return _target; // now populating the target with the following expressions\n }\n }\n }, {\n name: 'undirectedEdge',\n separator: true,\n regex: tokens.undirectedEdge,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // undirected edge\n var edgeQuery = newQuery();\n var source = query;\n var target = newQuery();\n edgeQuery.checks.push({\n type: Type.UNDIRECTED_EDGE,\n nodes: [source, target]\n });\n\n // the query in the selector should be the edge rather than the source\n replaceLastQuery(selector, query, edgeQuery);\n selector.edgeCount++;\n\n // we're now populating the target query with expressions that follow\n return target;\n } else {\n // neighbourhood\n var nhoodQ = newQuery();\n var node = query;\n var neighbor = newQuery();\n nhoodQ.checks.push({\n type: Type.NODE_NEIGHBOR,\n node: node,\n neighbor: neighbor\n });\n\n // the query in the selector should be the neighbourhood rather than the node\n replaceLastQuery(selector, query, nhoodQ);\n return neighbor; // now populating the neighbor with following expressions\n }\n }\n }, {\n name: 'child',\n separator: true,\n regex: tokens.child,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: child query\n var parentChildQuery = newQuery();\n var child = newQuery();\n var parent = selector[selector.length - 1];\n parentChildQuery.checks.push({\n type: Type.CHILD,\n parent: parent,\n child: child\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, parentChildQuery);\n selector.compoundCount++;\n\n // we're now populating the child query with expressions that follow\n return child;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _child = newQuery();\n var _parent = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _parent.checks.push({\n type: Type.TRUE\n }); // parent implicitly refs the subject\n right.checks.push({\n type: Type.PARENT,\n // type is swapped on right side queries\n parent: _parent,\n child: _child // empty for now\n });\n\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _child; // now populating the right side's child\n } else {\n // parent query\n // info for parent query\n var _parent2 = newQuery();\n var _child2 = newQuery();\n var pcQChecks = [{\n type: Type.PARENT,\n parent: _parent2,\n child: _child2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _parent2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = pcQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _child2; // we're now populating the child\n }\n }\n }, {\n name: 'descendant',\n separator: true,\n regex: tokens.descendant,\n populate: function populate(selector, query) {\n if (selector.currentSubject == null) {\n // default: descendant query\n var ancChQuery = newQuery();\n var descendant = newQuery();\n var ancestor = selector[selector.length - 1];\n ancChQuery.checks.push({\n type: Type.DESCENDANT,\n ancestor: ancestor,\n descendant: descendant\n });\n\n // the query in the selector should be the '>' itself\n replaceLastQuery(selector, query, ancChQuery);\n selector.compoundCount++;\n\n // we're now populating the descendant query with expressions that follow\n return descendant;\n } else if (selector.currentSubject === query) {\n // compound split query\n var compound = newQuery();\n var left = selector[selector.length - 1];\n var right = newQuery();\n var subject = newQuery();\n var _descendant = newQuery();\n var _ancestor = newQuery();\n\n // set up the root compound q\n compound.checks.push({\n type: Type.COMPOUND_SPLIT,\n left: left,\n right: right,\n subject: subject\n });\n\n // populate the subject and replace the q at the old spot (within left) with TRUE\n subject.checks = query.checks; // take the checks from the left\n query.checks = [{\n type: Type.TRUE\n }]; // checks under left refs the subject implicitly\n\n // set up the right q\n _ancestor.checks.push({\n type: Type.TRUE\n }); // ancestor implicitly refs the subject\n right.checks.push({\n type: Type.ANCESTOR,\n // type is swapped on right side queries\n ancestor: _ancestor,\n descendant: _descendant // empty for now\n });\n\n replaceLastQuery(selector, left, compound);\n\n // update the ref since we moved things around for `query`\n selector.currentSubject = subject;\n selector.compoundCount++;\n return _descendant; // now populating the right side's descendant\n } else {\n // ancestor query\n // info for parent query\n var _ancestor2 = newQuery();\n var _descendant2 = newQuery();\n var adQChecks = [{\n type: Type.ANCESTOR,\n ancestor: _ancestor2,\n descendant: _descendant2\n }];\n\n // the parent-child query takes the place of the query previously being populated\n _ancestor2.checks = query.checks; // the previous query contains the checks for the parent\n query.checks = adQChecks; // pc query takes over\n\n selector.compoundCount++;\n return _descendant2; // we're now populating the child\n }\n }\n }, {\n name: 'subject',\n modifier: true,\n regex: tokens.subject,\n populate: function populate(selector, query) {\n if (selector.currentSubject != null && selector.currentSubject !== query) {\n warn('Redefinition of subject in selector `' + selector.toString() + '`');\n return false;\n }\n selector.currentSubject = query;\n var topQ = selector[selector.length - 1];\n var topChk = topQ.checks[0];\n var topType = topChk == null ? null : topChk.type;\n if (topType === Type.DIRECTED_EDGE) {\n // directed edge with subject on the target\n\n // change to target node check\n topChk.type = Type.NODE_TARGET;\n } else if (topType === Type.UNDIRECTED_EDGE) {\n // undirected edge with subject on the second node\n\n // change to neighbor check\n topChk.type = Type.NODE_NEIGHBOR;\n topChk.node = topChk.nodes[1]; // second node is subject\n topChk.neighbor = topChk.nodes[0];\n\n // clean up unused fields for new type\n topChk.nodes = null;\n }\n }\n }];\n exprs.forEach(function (e) {\n return e.regexObj = new RegExp('^' + e.regex);\n });\n\n /**\n * Of all the expressions, find the first match in the remaining text.\n * @param {string} remaining The remaining text to parse\n * @returns The matched expression and the newly remaining text `{ expr, match, name, remaining }`\n */\n var consumeExpr = function consumeExpr(remaining) {\n var expr;\n var match;\n var name;\n for (var j = 0; j < exprs.length; j++) {\n var e = exprs[j];\n var n = e.name;\n var m = remaining.match(e.regexObj);\n if (m != null) {\n match = m;\n expr = e;\n name = n;\n var consumed = m[0];\n remaining = remaining.substring(consumed.length);\n break; // we've consumed one expr, so we can return now\n }\n }\n\n return {\n expr: expr,\n match: match,\n name: name,\n remaining: remaining\n };\n };\n\n /**\n * Consume all the leading whitespace\n * @param {string} remaining The text to consume\n * @returns The text with the leading whitespace removed\n */\n var consumeWhitespace = function consumeWhitespace(remaining) {\n var match = remaining.match(/^\\s+/);\n if (match) {\n var consumed = match[0];\n remaining = remaining.substring(consumed.length);\n }\n return remaining;\n };\n\n /**\n * Parse the string and store the parsed representation in the Selector.\n * @param {string} selector The selector string\n * @returns `true` if the selector was successfully parsed, `false` otherwise\n */\n var parse = function parse(selector) {\n var self = this;\n var remaining = self.inputText = selector;\n var currentQuery = self[0] = newQuery();\n self.length = 1;\n remaining = consumeWhitespace(remaining); // get rid of leading whitespace\n\n for (;;) {\n var exprInfo = consumeExpr(remaining);\n if (exprInfo.expr == null) {\n warn('The selector `' + selector + '`is invalid');\n return false;\n } else {\n var args = exprInfo.match.slice(1);\n\n // let the token populate the selector object in currentQuery\n var ret = exprInfo.expr.populate(self, currentQuery, args);\n if (ret === false) {\n return false; // exit if population failed\n } else if (ret != null) {\n currentQuery = ret; // change the current query to be filled if the expr specifies\n }\n }\n\n remaining = exprInfo.remaining;\n\n // we're done when there's nothing left to parse\n if (remaining.match(/^\\s*$/)) {\n break;\n }\n }\n var lastQ = self[self.length - 1];\n if (self.currentSubject != null) {\n lastQ.subject = self.currentSubject;\n }\n lastQ.edgeCount = self.edgeCount;\n lastQ.compoundCount = self.compoundCount;\n for (var i = 0; i < self.length; i++) {\n var q = self[i];\n\n // in future, this could potentially be allowed if there were operator precedence and detection of invalid combinations\n if (q.compoundCount > 0 && q.edgeCount > 0) {\n warn('The selector `' + selector + '` is invalid because it uses both a compound selector and an edge selector');\n return false;\n }\n if (q.edgeCount > 1) {\n warn('The selector `' + selector + '` is invalid because it uses multiple edge selectors');\n return false;\n } else if (q.edgeCount === 1) {\n warn('The selector `' + selector + '` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.');\n }\n }\n return true; // success\n };\n\n /**\n * Get the selector represented as a string. This value uses default formatting,\n * so things like spacing may differ from the input text passed to the constructor.\n * @returns {string} The selector string\n */\n var toString = function toString() {\n if (this.toStringCache != null) {\n return this.toStringCache;\n }\n var clean = function clean(obj) {\n if (obj == null) {\n return '';\n } else {\n return obj;\n }\n };\n var cleanVal = function cleanVal(val) {\n if (string(val)) {\n return '\"' + val + '\"';\n } else {\n return clean(val);\n }\n };\n var space = function space(val) {\n return ' ' + val + ' ';\n };\n var checkToString = function checkToString(check, subject) {\n var type = check.type,\n value = check.value;\n switch (type) {\n case Type.GROUP:\n {\n var group = clean(value);\n return group.substring(0, group.length - 1);\n }\n case Type.DATA_COMPARE:\n {\n var field = check.field,\n operator = check.operator;\n return '[' + field + space(clean(operator)) + cleanVal(value) + ']';\n }\n case Type.DATA_BOOL:\n {\n var _operator = check.operator,\n _field = check.field;\n return '[' + clean(_operator) + _field + ']';\n }\n case Type.DATA_EXIST:\n {\n var _field2 = check.field;\n return '[' + _field2 + ']';\n }\n case Type.META_COMPARE:\n {\n var _operator2 = check.operator,\n _field3 = check.field;\n return '[[' + _field3 + space(clean(_operator2)) + cleanVal(value) + ']]';\n }\n case Type.STATE:\n {\n return value;\n }\n case Type.ID:\n {\n return '#' + value;\n }\n case Type.CLASS:\n {\n return '.' + value;\n }\n case Type.PARENT:\n case Type.CHILD:\n {\n return queryToString(check.parent, subject) + space('>') + queryToString(check.child, subject);\n }\n case Type.ANCESTOR:\n case Type.DESCENDANT:\n {\n return queryToString(check.ancestor, subject) + ' ' + queryToString(check.descendant, subject);\n }\n case Type.COMPOUND_SPLIT:\n {\n var lhs = queryToString(check.left, subject);\n var sub = queryToString(check.subject, subject);\n var rhs = queryToString(check.right, subject);\n return lhs + (lhs.length > 0 ? ' ' : '') + sub + rhs;\n }\n case Type.TRUE:\n {\n return '';\n }\n }\n };\n var queryToString = function queryToString(query, subject) {\n return query.checks.reduce(function (str, chk, i) {\n return str + (subject === query && i === 0 ? '$' : '') + checkToString(chk, subject);\n }, '');\n };\n var str = '';\n for (var i = 0; i < this.length; i++) {\n var query = this[i];\n str += queryToString(query, query.subject);\n if (this.length > 1 && i < this.length - 1) {\n str += ', ';\n }\n }\n this.toStringCache = str;\n return str;\n };\n var parse$1 = {\n parse: parse,\n toString: toString\n };\n\n var valCmp = function valCmp(fieldVal, operator, value) {\n var matches;\n var isFieldStr = string(fieldVal);\n var isFieldNum = number$1(fieldVal);\n var isValStr = string(value);\n var fieldStr, valStr;\n var caseInsensitive = false;\n var notExpr = false;\n var isIneqCmp = false;\n if (operator.indexOf('!') >= 0) {\n operator = operator.replace('!', '');\n notExpr = true;\n }\n if (operator.indexOf('@') >= 0) {\n operator = operator.replace('@', '');\n caseInsensitive = true;\n }\n if (isFieldStr || isValStr || caseInsensitive) {\n fieldStr = !isFieldStr && !isFieldNum ? '' : '' + fieldVal;\n valStr = '' + value;\n }\n\n // if we're doing a case insensitive comparison, then we're using a STRING comparison\n // even if we're comparing numbers\n if (caseInsensitive) {\n fieldVal = fieldStr = fieldStr.toLowerCase();\n value = valStr = valStr.toLowerCase();\n }\n switch (operator) {\n case '*=':\n matches = fieldStr.indexOf(valStr) >= 0;\n break;\n case '$=':\n matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;\n break;\n case '^=':\n matches = fieldStr.indexOf(valStr) === 0;\n break;\n case '=':\n matches = fieldVal === value;\n break;\n case '>':\n isIneqCmp = true;\n matches = fieldVal > value;\n break;\n case '>=':\n isIneqCmp = true;\n matches = fieldVal >= value;\n break;\n case '<':\n isIneqCmp = true;\n matches = fieldVal < value;\n break;\n case '<=':\n isIneqCmp = true;\n matches = fieldVal <= value;\n break;\n default:\n matches = false;\n break;\n }\n\n // apply the not op, but null vals for inequalities should always stay non-matching\n if (notExpr && (fieldVal != null || !isIneqCmp)) {\n matches = !matches;\n }\n return matches;\n };\n var boolCmp = function boolCmp(fieldVal, operator) {\n switch (operator) {\n case '?':\n return fieldVal ? true : false;\n case '!':\n return fieldVal ? false : true;\n case '^':\n return fieldVal === undefined;\n }\n };\n var existCmp = function existCmp(fieldVal) {\n return fieldVal !== undefined;\n };\n var data$1 = function data(ele, field) {\n return ele.data(field);\n };\n var meta = function meta(ele, field) {\n return ele[field]();\n };\n\n /** A lookup of `match(check, ele)` functions by `Type` int */\n var match = [];\n\n /**\n * Returns whether the query matches for the element\n * @param query The `{ type, value, ... }` query object\n * @param ele The element to compare against\n */\n var matches$1 = function matches(query, ele) {\n return query.checks.every(function (chk) {\n return match[chk.type](chk, ele);\n });\n };\n match[Type.GROUP] = function (check, ele) {\n var group = check.value;\n return group === '*' || group === ele.group();\n };\n match[Type.STATE] = function (check, ele) {\n var stateSelector = check.value;\n return stateSelectorMatches(stateSelector, ele);\n };\n match[Type.ID] = function (check, ele) {\n var id = check.value;\n return ele.id() === id;\n };\n match[Type.CLASS] = function (check, ele) {\n var cls = check.value;\n return ele.hasClass(cls);\n };\n match[Type.META_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(meta(ele, field), operator, value);\n };\n match[Type.DATA_COMPARE] = function (check, ele) {\n var field = check.field,\n operator = check.operator,\n value = check.value;\n return valCmp(data$1(ele, field), operator, value);\n };\n match[Type.DATA_BOOL] = function (check, ele) {\n var field = check.field,\n operator = check.operator;\n return boolCmp(data$1(ele, field), operator);\n };\n match[Type.DATA_EXIST] = function (check, ele) {\n var field = check.field;\n check.operator;\n return existCmp(data$1(ele, field));\n };\n match[Type.UNDIRECTED_EDGE] = function (check, ele) {\n var qA = check.nodes[0];\n var qB = check.nodes[1];\n var src = ele.source();\n var tgt = ele.target();\n return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);\n };\n match[Type.NODE_NEIGHBOR] = function (check, ele) {\n return matches$1(check.node, ele) && ele.neighborhood().some(function (n) {\n return n.isNode() && matches$1(check.neighbor, n);\n });\n };\n match[Type.DIRECTED_EDGE] = function (check, ele) {\n return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());\n };\n match[Type.NODE_SOURCE] = function (check, ele) {\n return matches$1(check.source, ele) && ele.outgoers().some(function (n) {\n return n.isNode() && matches$1(check.target, n);\n });\n };\n match[Type.NODE_TARGET] = function (check, ele) {\n return matches$1(check.target, ele) && ele.incomers().some(function (n) {\n return n.isNode() && matches$1(check.source, n);\n });\n };\n match[Type.CHILD] = function (check, ele) {\n return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());\n };\n match[Type.PARENT] = function (check, ele) {\n return matches$1(check.parent, ele) && ele.children().some(function (c) {\n return matches$1(check.child, c);\n });\n };\n match[Type.DESCENDANT] = function (check, ele) {\n return matches$1(check.descendant, ele) && ele.ancestors().some(function (a) {\n return matches$1(check.ancestor, a);\n });\n };\n match[Type.ANCESTOR] = function (check, ele) {\n return matches$1(check.ancestor, ele) && ele.descendants().some(function (d) {\n return matches$1(check.descendant, d);\n });\n };\n match[Type.COMPOUND_SPLIT] = function (check, ele) {\n return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);\n };\n match[Type.TRUE] = function () {\n return true;\n };\n match[Type.COLLECTION] = function (check, ele) {\n var collection = check.value;\n return collection.has(ele);\n };\n match[Type.FILTER] = function (check, ele) {\n var filter = check.value;\n return filter(ele);\n };\n\n // filter an existing collection\n var filter = function filter(collection) {\n var self = this;\n\n // for 1 id #foo queries, just get the element\n if (self.length === 1 && self[0].checks.length === 1 && self[0].checks[0].type === Type.ID) {\n return collection.getElementById(self[0].checks[0].value).collection();\n }\n var selectorFunction = function selectorFunction(element) {\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, element)) {\n return true;\n }\n }\n return false;\n };\n if (self.text() == null) {\n selectorFunction = function selectorFunction() {\n return true;\n };\n }\n return collection.filter(selectorFunction);\n }; // filter\n\n // does selector match a single element?\n var matches = function matches(ele) {\n var self = this;\n for (var j = 0; j < self.length; j++) {\n var query = self[j];\n if (matches$1(query, ele)) {\n return true;\n }\n }\n return false;\n }; // matches\n\n var matching = {\n matches: matches,\n filter: filter\n };\n\n var Selector = function Selector(selector) {\n this.inputText = selector;\n this.currentSubject = null;\n this.compoundCount = 0;\n this.edgeCount = 0;\n this.length = 0;\n if (selector == null || string(selector) && selector.match(/^\\s*$/)) ; else if (elementOrCollection(selector)) {\n this.addQuery({\n checks: [{\n type: Type.COLLECTION,\n value: selector.collection()\n }]\n });\n } else if (fn$6(selector)) {\n this.addQuery({\n checks: [{\n type: Type.FILTER,\n value: selector\n }]\n });\n } else if (string(selector)) {\n if (!this.parse(selector)) {\n this.invalid = true;\n }\n } else {\n error('A selector must be created from a string; found ');\n }\n };\n var selfn = Selector.prototype;\n [parse$1, matching].forEach(function (p) {\n return extend(selfn, p);\n });\n selfn.text = function () {\n return this.inputText;\n };\n selfn.size = function () {\n return this.length;\n };\n selfn.eq = function (i) {\n return this[i];\n };\n selfn.sameText = function (otherSel) {\n return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();\n };\n selfn.addQuery = function (q) {\n this[this.length++] = q;\n };\n selfn.selector = selfn.toString;\n\n var elesfn$g = {\n allAre: function allAre(selector) {\n var selObj = new Selector(selector);\n return this.every(function (ele) {\n return selObj.matches(ele);\n });\n },\n is: function is(selector) {\n var selObj = new Selector(selector);\n return this.some(function (ele) {\n return selObj.matches(ele);\n });\n },\n some: function some(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (ret) {\n return true;\n }\n }\n return false;\n },\n every: function every(fn, thisArg) {\n for (var i = 0; i < this.length; i++) {\n var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]);\n if (!ret) {\n return false;\n }\n }\n return true;\n },\n same: function same(collection) {\n // cheap collection ref check\n if (this === collection) {\n return true;\n }\n collection = this.cy().collection(collection);\n var thisLength = this.length;\n var collectionLength = collection.length;\n\n // cheap length check\n if (thisLength !== collectionLength) {\n return false;\n }\n\n // cheap element ref check\n if (thisLength === 1) {\n return this[0] === collection[0];\n }\n return this.every(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n anySame: function anySame(collection) {\n collection = this.cy().collection(collection);\n return this.some(function (ele) {\n return collection.hasElementWithId(ele.id());\n });\n },\n allAreNeighbors: function allAreNeighbors(collection) {\n collection = this.cy().collection(collection);\n var nhood = this.neighborhood();\n return collection.every(function (ele) {\n return nhood.hasElementWithId(ele.id());\n });\n },\n contains: function contains(collection) {\n collection = this.cy().collection(collection);\n var self = this;\n return collection.every(function (ele) {\n return self.hasElementWithId(ele.id());\n });\n }\n };\n elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;\n elesfn$g.has = elesfn$g.contains;\n elesfn$g.equal = elesfn$g.equals = elesfn$g.same;\n\n var cache = function cache(fn, name) {\n return function traversalCache(arg1, arg2, arg3, arg4) {\n var selectorOrEles = arg1;\n var eles = this;\n var key;\n if (selectorOrEles == null) {\n key = '';\n } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {\n key = selectorOrEles.id();\n }\n if (eles.length === 1 && key) {\n var _p = eles[0]._private;\n var tch = _p.traversalCache = _p.traversalCache || {};\n var ch = tch[name] = tch[name] || [];\n var hash = hashString(key);\n var cacheHit = ch[hash];\n if (cacheHit) {\n return cacheHit;\n } else {\n return ch[hash] = fn.call(eles, arg1, arg2, arg3, arg4);\n }\n } else {\n return fn.call(eles, arg1, arg2, arg3, arg4);\n }\n };\n };\n\n var elesfn$f = {\n parent: function parent(selector) {\n var parents = [];\n\n // optimisation for single ele call\n if (this.length === 1) {\n var parent = this[0]._private.parent;\n if (parent) {\n return parent;\n }\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _parent = ele._private.parent;\n if (_parent) {\n parents.push(_parent);\n }\n }\n return this.spawn(parents, true).filter(selector);\n },\n parents: function parents(selector) {\n var parents = [];\n var eles = this.parent();\n while (eles.nonempty()) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n parents.push(ele);\n }\n eles = eles.parent();\n }\n return this.spawn(parents, true).filter(selector);\n },\n commonAncestors: function commonAncestors(selector) {\n var ancestors;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var parents = ele.parents();\n ancestors = ancestors || parents;\n ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set\n }\n\n return ancestors.filter(selector);\n },\n orphans: function orphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isOrphan();\n }).filter(selector);\n },\n nonorphans: function nonorphans(selector) {\n return this.stdFilter(function (ele) {\n return ele.isChild();\n }).filter(selector);\n },\n children: cache(function (selector) {\n var children = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var eleChildren = ele._private.children;\n for (var j = 0; j < eleChildren.length; j++) {\n children.push(eleChildren[j]);\n }\n }\n return this.spawn(children, true).filter(selector);\n }, 'children'),\n siblings: function siblings(selector) {\n return this.parent().children().not(this).filter(selector);\n },\n isParent: function isParent() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length !== 0;\n }\n },\n isChildless: function isChildless() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.children.length === 0;\n }\n },\n isChild: function isChild() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent != null;\n }\n },\n isOrphan: function isOrphan() {\n var ele = this[0];\n if (ele) {\n return ele.isNode() && ele._private.parent == null;\n }\n },\n descendants: function descendants(selector) {\n var elements = [];\n function add(eles) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n elements.push(ele);\n if (ele.children().nonempty()) {\n add(ele.children());\n }\n }\n }\n add(this.children());\n return this.spawn(elements, true).filter(selector);\n }\n };\n function forEachCompound(eles, fn, includeSelf, recursiveStep) {\n var q = [];\n var did = new Set$1();\n var cy = eles.cy();\n var hasCompounds = cy.hasCompoundNodes();\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (includeSelf) {\n q.push(ele);\n } else if (hasCompounds) {\n recursiveStep(q, did, ele);\n }\n }\n while (q.length > 0) {\n var _ele = q.shift();\n fn(_ele);\n did.add(_ele.id());\n if (hasCompounds) {\n recursiveStep(q, did, _ele);\n }\n }\n return eles;\n }\n function addChildren(q, did, ele) {\n if (ele.isParent()) {\n var children = ele._private.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (!did.has(child.id())) {\n q.push(child);\n }\n }\n }\n }\n\n // very efficient version of eles.add( eles.descendants() ).forEach()\n // for internal use\n elesfn$f.forEachDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addChildren);\n };\n function addParent(q, did, ele) {\n if (ele.isChild()) {\n var parent = ele._private.parent;\n if (!did.has(parent.id())) {\n q.push(parent);\n }\n }\n }\n elesfn$f.forEachUp = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParent);\n };\n function addParentAndChildren(q, did, ele) {\n addParent(q, did, ele);\n addChildren(q, did, ele);\n }\n elesfn$f.forEachUpAndDown = function (fn) {\n var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return forEachCompound(this, fn, includeSelf, addParentAndChildren);\n };\n\n // aliases\n elesfn$f.ancestors = elesfn$f.parents;\n\n var fn$5, elesfn$e;\n fn$5 = elesfn$e = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n immutableKeys: {\n 'id': true,\n 'source': true,\n 'target': true,\n 'parent': true\n },\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n rscratch: define.data({\n field: 'rscratch',\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: true\n }),\n removeRscratch: define.removeData({\n field: 'rscratch',\n triggerEvent: false\n }),\n id: function id() {\n var ele = this[0];\n if (ele) {\n return ele._private.data.id;\n }\n }\n };\n\n // aliases\n fn$5.attr = fn$5.data;\n fn$5.removeAttr = fn$5.removeData;\n var data = elesfn$e;\n\n var elesfn$d = {};\n function defineDegreeFunction(callback) {\n return function (includeLoops) {\n var self = this;\n if (includeLoops === undefined) {\n includeLoops = true;\n }\n if (self.length === 0) {\n return;\n }\n if (self.isNode() && !self.removed()) {\n var degree = 0;\n var node = self[0];\n var connectedEdges = node._private.edges;\n for (var i = 0; i < connectedEdges.length; i++) {\n var edge = connectedEdges[i];\n if (!includeLoops && edge.isLoop()) {\n continue;\n }\n degree += callback(node, edge);\n }\n return degree;\n } else {\n return;\n }\n };\n }\n extend(elesfn$d, {\n degree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(edge.target())) {\n return 2;\n } else {\n return 1;\n }\n }),\n indegree: defineDegreeFunction(function (node, edge) {\n if (edge.target().same(node)) {\n return 1;\n } else {\n return 0;\n }\n }),\n outdegree: defineDegreeFunction(function (node, edge) {\n if (edge.source().same(node)) {\n return 1;\n } else {\n return 0;\n }\n })\n });\n function defineDegreeBoundsFunction(degreeFn, callback) {\n return function (includeLoops) {\n var ret;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n var ele = nodes[i];\n var degree = ele[degreeFn](includeLoops);\n if (degree !== undefined && (ret === undefined || callback(degree, ret))) {\n ret = degree;\n }\n }\n return ret;\n };\n }\n extend(elesfn$d, {\n minDegree: defineDegreeBoundsFunction('degree', function (degree, min) {\n return degree < min;\n }),\n maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) {\n return degree > max;\n }),\n minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) {\n return degree < min;\n }),\n maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) {\n return degree > max;\n }),\n minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) {\n return degree < min;\n }),\n maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) {\n return degree > max;\n })\n });\n extend(elesfn$d, {\n totalDegree: function totalDegree(includeLoops) {\n var total = 0;\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n total += nodes[i].degree(includeLoops);\n }\n return total;\n }\n });\n\n var fn$4, elesfn$c;\n var beforePositionSet = function beforePositionSet(eles, newPos, silent) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.locked()) {\n var oldPos = ele._private.position;\n var delta = {\n x: newPos.x != null ? newPos.x - oldPos.x : 0,\n y: newPos.y != null ? newPos.y - oldPos.y : 0\n };\n if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {\n ele.children().shift(delta, silent);\n }\n ele.dirtyBoundingBoxCache();\n }\n }\n };\n var positionDef = {\n field: 'position',\n bindingEvent: 'position',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'position',\n settingTriggersEvent: true,\n triggerFnName: 'emitAndNotify',\n allowGetting: true,\n validKeys: ['x', 'y'],\n beforeGet: function beforeGet(ele) {\n ele.updateCompoundBounds();\n },\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, false);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n },\n canSet: function canSet(ele) {\n return !ele.locked();\n }\n };\n fn$4 = elesfn$c = {\n position: define.data(positionDef),\n // position but no notification to renderer\n silentPosition: define.data(extend({}, positionDef, {\n allowBinding: false,\n allowSetting: true,\n settingTriggersEvent: false,\n allowGetting: false,\n beforeSet: function beforeSet(eles, newPos) {\n beforePositionSet(eles, newPos, true);\n },\n onSet: function onSet(eles) {\n eles.dirtyCompoundBoundsCache();\n }\n })),\n positions: function positions(pos, silent) {\n if (plainObject(pos)) {\n if (silent) {\n this.silentPosition(pos);\n } else {\n this.position(pos);\n }\n } else if (fn$6(pos)) {\n var _fn = pos;\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _pos = void 0;\n if (_pos = _fn(ele, i)) {\n if (silent) {\n ele.silentPosition(_pos);\n } else {\n ele.position(_pos);\n }\n }\n }\n cy.endBatch();\n }\n return this; // chaining\n },\n\n silentPositions: function silentPositions(pos) {\n return this.positions(pos, true);\n },\n shift: function shift(dim, val, silent) {\n var delta;\n if (plainObject(dim)) {\n delta = {\n x: number$1(dim.x) ? dim.x : 0,\n y: number$1(dim.y) ? dim.y : 0\n };\n silent = val;\n } else if (string(dim) && number$1(val)) {\n delta = {\n x: 0,\n y: 0\n };\n delta[dim] = val;\n }\n if (delta != null) {\n var cy = this.cy();\n cy.startBatch();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n\n // exclude any node that is a descendant of the calling collection\n if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {\n continue;\n }\n var pos = ele.position();\n var newPos = {\n x: pos.x + delta.x,\n y: pos.y + delta.y\n };\n if (silent) {\n ele.silentPosition(newPos);\n } else {\n ele.position(newPos);\n }\n }\n cy.endBatch();\n }\n return this;\n },\n silentShift: function silentShift(dim, val) {\n if (plainObject(dim)) {\n this.shift(dim, true);\n } else if (string(dim) && number$1(val)) {\n this.shift(dim, val, true);\n }\n return this;\n },\n // get/set the rendered (i.e. on screen) positon of the element\n renderedPosition: function renderedPosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var rpos = plainObject(dim) ? dim : undefined;\n var setting = rpos !== undefined || val !== undefined && string(dim);\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele = this[i];\n if (val !== undefined) {\n // set one dimension\n _ele.position(dim, (val - pan[dim]) / zoom);\n } else if (rpos !== undefined) {\n // set whole position\n _ele.position(renderedToModelPosition(rpos, zoom, pan));\n }\n }\n } else {\n // getting\n var pos = ele.position();\n rpos = modelToRenderedPosition(pos, zoom, pan);\n if (dim === undefined) {\n // then return the whole rendered position\n return rpos;\n } else {\n // then return the specified dimension\n return rpos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n\n return this; // chaining\n },\n\n // get/set the position relative to the parent\n relativePosition: function relativePosition(dim, val) {\n var ele = this[0];\n var cy = this.cy();\n var ppos = plainObject(dim) ? dim : undefined;\n var setting = ppos !== undefined || val !== undefined && string(dim);\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele && ele.isNode()) {\n // must have an element and must be a node to return position\n if (setting) {\n for (var i = 0; i < this.length; i++) {\n var _ele2 = this[i];\n var parent = hasCompoundNodes ? _ele2.parent() : null;\n var hasParent = parent && parent.length > 0;\n var relativeToParent = hasParent;\n if (hasParent) {\n parent = parent[0];\n }\n var origin = relativeToParent ? parent.position() : {\n x: 0,\n y: 0\n };\n if (val !== undefined) {\n // set one dimension\n _ele2.position(dim, val + origin[dim]);\n } else if (ppos !== undefined) {\n // set whole position\n _ele2.position({\n x: ppos.x + origin.x,\n y: ppos.y + origin.y\n });\n }\n }\n } else {\n // getting\n var pos = ele.position();\n var _parent = hasCompoundNodes ? ele.parent() : null;\n var _hasParent = _parent && _parent.length > 0;\n var _relativeToParent = _hasParent;\n if (_hasParent) {\n _parent = _parent[0];\n }\n var _origin = _relativeToParent ? _parent.position() : {\n x: 0,\n y: 0\n };\n ppos = {\n x: pos.x - _origin.x,\n y: pos.y - _origin.y\n };\n if (dim === undefined) {\n // then return the whole rendered position\n return ppos;\n } else {\n // then return the specified dimension\n return ppos[dim];\n }\n }\n } else if (!setting) {\n return undefined; // for empty collection case\n }\n\n return this; // chaining\n }\n };\n\n // aliases\n fn$4.modelPosition = fn$4.point = fn$4.position;\n fn$4.modelPositions = fn$4.points = fn$4.positions;\n fn$4.renderedPoint = fn$4.renderedPosition;\n fn$4.relativePoint = fn$4.relativePosition;\n var position = elesfn$c;\n\n var fn$3, elesfn$b;\n fn$3 = elesfn$b = {};\n elesfn$b.renderedBoundingBox = function (options) {\n var bb = this.boundingBox(options);\n var cy = this.cy();\n var zoom = cy.zoom();\n var pan = cy.pan();\n var x1 = bb.x1 * zoom + pan.x;\n var x2 = bb.x2 * zoom + pan.x;\n var y1 = bb.y1 * zoom + pan.y;\n var y2 = bb.y2 * zoom + pan.y;\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2,\n w: x2 - x1,\n h: y2 - y1\n };\n };\n elesfn$b.dirtyCompoundBoundsCache = function () {\n var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n this.forEachUp(function (ele) {\n if (ele.isParent()) {\n var _p = ele._private;\n _p.compoundBoundsClean = false;\n _p.bbCache = null;\n if (!silent) {\n ele.emitAndNotify('bounds');\n }\n }\n });\n return this;\n };\n elesfn$b.updateCompoundBounds = function () {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cy = this.cy();\n\n // not possible to do on non-compound graphs or with the style disabled\n if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {\n return this;\n }\n\n // save cycles when batching -- but bounds will be stale (or not exist yet)\n if (!force && cy.batching()) {\n return this;\n }\n function update(parent) {\n if (!parent.isParent()) {\n return;\n }\n var _p = parent._private;\n var children = parent.children();\n var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include';\n var min = {\n width: {\n val: parent.pstyle('min-width').pfValue,\n left: parent.pstyle('min-width-bias-left'),\n right: parent.pstyle('min-width-bias-right')\n },\n height: {\n val: parent.pstyle('min-height').pfValue,\n top: parent.pstyle('min-height-bias-top'),\n bottom: parent.pstyle('min-height-bias-bottom')\n }\n };\n var bb = children.boundingBox({\n includeLabels: includeLabels,\n includeOverlays: false,\n // updating the compound bounds happens outside of the regular\n // cache cycle (i.e. before fired events)\n useCache: false\n });\n var pos = _p.position;\n\n // if children take up zero area then keep position and fall back on stylesheet w/h\n if (bb.w === 0 || bb.h === 0) {\n bb = {\n w: parent.pstyle('width').pfValue,\n h: parent.pstyle('height').pfValue\n };\n bb.x1 = pos.x - bb.w / 2;\n bb.x2 = pos.x + bb.w / 2;\n bb.y1 = pos.y - bb.h / 2;\n bb.y2 = pos.y + bb.h / 2;\n }\n function computeBiasValues(propDiff, propBias, propBiasComplement) {\n var biasDiff = 0;\n var biasComplementDiff = 0;\n var biasTotal = propBias + propBiasComplement;\n if (propDiff > 0 && biasTotal > 0) {\n biasDiff = propBias / biasTotal * propDiff;\n biasComplementDiff = propBiasComplement / biasTotal * propDiff;\n }\n return {\n biasDiff: biasDiff,\n biasComplementDiff: biasComplementDiff\n };\n }\n function computePaddingValues(width, height, paddingObject, relativeTo) {\n // Assuming percentage is number from 0 to 1\n if (paddingObject.units === '%') {\n switch (relativeTo) {\n case 'width':\n return width > 0 ? paddingObject.pfValue * width : 0;\n case 'height':\n return height > 0 ? paddingObject.pfValue * height : 0;\n case 'average':\n return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0;\n case 'min':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0;\n case 'max':\n return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0;\n default:\n return 0;\n }\n } else if (paddingObject.units === 'px') {\n return paddingObject.pfValue;\n } else {\n return 0;\n }\n }\n var leftVal = min.width.left.value;\n if (min.width.left.units === 'px' && min.width.val > 0) {\n leftVal = leftVal * 100 / min.width.val;\n }\n var rightVal = min.width.right.value;\n if (min.width.right.units === 'px' && min.width.val > 0) {\n rightVal = rightVal * 100 / min.width.val;\n }\n var topVal = min.height.top.value;\n if (min.height.top.units === 'px' && min.height.val > 0) {\n topVal = topVal * 100 / min.height.val;\n }\n var bottomVal = min.height.bottom.value;\n if (min.height.bottom.units === 'px' && min.height.val > 0) {\n bottomVal = bottomVal * 100 / min.height.val;\n }\n var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal);\n var diffLeft = widthBiasDiffs.biasDiff;\n var diffRight = widthBiasDiffs.biasComplementDiff;\n var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal);\n var diffTop = heightBiasDiffs.biasDiff;\n var diffBottom = heightBiasDiffs.biasComplementDiff;\n _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value);\n _p.autoWidth = Math.max(bb.w, min.width.val);\n pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;\n _p.autoHeight = Math.max(bb.h, min.height.val);\n pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.compoundBoundsClean || force) {\n update(ele);\n if (!cy.batching()) {\n _p.compoundBoundsClean = true;\n }\n }\n }\n return this;\n };\n var noninf = function noninf(x) {\n if (x === Infinity || x === -Infinity) {\n return 0;\n }\n return x;\n };\n var updateBounds = function updateBounds(b, x1, y1, x2, y2) {\n // don't update with zero area boxes\n if (x2 - x1 === 0 || y2 - y1 === 0) {\n return;\n }\n\n // don't update with null dim\n if (x1 == null || y1 == null || x2 == null || y2 == null) {\n return;\n }\n b.x1 = x1 < b.x1 ? x1 : b.x1;\n b.x2 = x2 > b.x2 ? x2 : b.x2;\n b.y1 = y1 < b.y1 ? y1 : b.y1;\n b.y2 = y2 > b.y2 ? y2 : b.y2;\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n };\n var updateBoundsFromBox = function updateBoundsFromBox(b, b2) {\n if (b2 == null) {\n return b;\n }\n return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);\n };\n var prefixedProperty = function prefixedProperty(obj, field, prefix) {\n return getPrefixedProperty(obj, field, prefix);\n };\n var updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var halfArW = rstyle.arrowWidth / 2;\n var arrowType = ele.pstyle(prefix + '-arrow-shape').value;\n var x;\n var y;\n if (arrowType !== 'none') {\n if (prefix === 'source') {\n x = rstyle.srcX;\n y = rstyle.srcY;\n } else if (prefix === 'target') {\n x = rstyle.tgtX;\n y = rstyle.tgtY;\n } else {\n x = rstyle.midX;\n y = rstyle.midY;\n }\n\n // always store the individual arrow bounds\n var bbs = _p.arrowBounds = _p.arrowBounds || {};\n var bb = bbs[prefix] = bbs[prefix] || {};\n bb.x1 = x - halfArW;\n bb.y1 = y - halfArW;\n bb.x2 = x + halfArW;\n bb.y2 = y + halfArW;\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n expandBoundingBox(bb, 1);\n updateBounds(bounds, bb.x1, bb.y1, bb.x2, bb.y2);\n }\n };\n var updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) {\n if (ele.cy().headless()) {\n return;\n }\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n var _p = ele._private;\n var rstyle = _p.rstyle;\n var label = ele.pstyle(prefixDash + 'label').strValue;\n if (label) {\n var halign = ele.pstyle('text-halign');\n var valign = ele.pstyle('text-valign');\n var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix);\n var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix);\n var labelX = prefixedProperty(rstyle, 'labelX', prefix);\n var labelY = prefixedProperty(rstyle, 'labelY', prefix);\n var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var rotation = ele.pstyle(prefixDash + 'text-rotation');\n var outlineWidth = ele.pstyle('text-outline-width').pfValue;\n var borderWidth = ele.pstyle('text-border-width').pfValue;\n var halfBorderWidth = borderWidth / 2;\n var padding = ele.pstyle('text-background-padding').pfValue;\n var marginOfError = 2; // expand to work around browser dimension inaccuracies\n\n var lh = labelHeight;\n var lw = labelWidth;\n var lw_2 = lw / 2;\n var lh_2 = lh / 2;\n var lx1, lx2, ly1, ly2;\n if (isEdge) {\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n } else {\n switch (halign.value) {\n case 'left':\n lx1 = labelX - lw;\n lx2 = labelX;\n break;\n case 'center':\n lx1 = labelX - lw_2;\n lx2 = labelX + lw_2;\n break;\n case 'right':\n lx1 = labelX;\n lx2 = labelX + lw;\n break;\n }\n switch (valign.value) {\n case 'top':\n ly1 = labelY - lh;\n ly2 = labelY;\n break;\n case 'center':\n ly1 = labelY - lh_2;\n ly2 = labelY + lh_2;\n break;\n case 'bottom':\n ly1 = labelY;\n ly2 = labelY + lh;\n break;\n }\n }\n\n // shift by margin and expand by outline and border\n lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError;\n ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError;\n\n // always store the unrotated label bounds separately\n var bbPrefix = prefix || 'main';\n var bbs = _p.labelBounds;\n var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};\n bb.x1 = lx1;\n bb.y1 = ly1;\n bb.x2 = lx2;\n bb.y2 = ly2;\n bb.w = lx2 - lx1;\n bb.h = ly2 - ly1;\n var isAutorotate = isEdge && rotation.strValue === 'autorotate';\n var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;\n if (isAutorotate || isPfValue) {\n var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue;\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n\n // rotation point (default value for center-center)\n var xo = (lx1 + lx2) / 2;\n var yo = (ly1 + ly2) / 2;\n if (!isEdge) {\n switch (halign.value) {\n case 'left':\n xo = lx2;\n break;\n case 'right':\n xo = lx1;\n break;\n }\n switch (valign.value) {\n case 'top':\n yo = ly2;\n break;\n case 'bottom':\n yo = ly1;\n break;\n }\n }\n var rotate = function rotate(x, y) {\n x = x - xo;\n y = y - yo;\n return {\n x: x * cos - y * sin + xo,\n y: x * sin + y * cos + yo\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);\n ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);\n }\n var bbPrefixRot = bbPrefix + 'Rot';\n var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};\n bbRot.x1 = lx1;\n bbRot.y1 = ly1;\n bbRot.x2 = lx2;\n bbRot.y2 = ly2;\n bbRot.w = lx2 - lx1;\n bbRot.h = ly2 - ly1;\n updateBounds(bounds, lx1, ly1, lx2, ly2);\n updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);\n }\n return bounds;\n };\n var updateBoundsFromOutline = function updateBoundsFromOutline(bounds, ele) {\n if (ele.cy().headless()) {\n return;\n }\n var outlineOpacity = ele.pstyle('outline-opacity').value;\n var outlineWidth = ele.pstyle('outline-width').value;\n if (outlineOpacity > 0 && outlineWidth > 0) {\n var outlineOffset = ele.pstyle('outline-offset').value;\n var nodeShape = ele.pstyle('shape').value;\n var outlineSize = outlineWidth + outlineOffset;\n var scaleX = (bounds.w + outlineSize * 2) / bounds.w;\n var scaleY = (bounds.h + outlineSize * 2) / bounds.h;\n var xOffset = 0;\n var yOffset = 0;\n if ([\"diamond\", \"pentagon\", \"round-triangle\"].includes(nodeShape)) {\n scaleX = (bounds.w + outlineSize * 2.4) / bounds.w;\n yOffset = -outlineSize / 3.6;\n } else if ([\"concave-hexagon\", \"rhomboid\", \"right-rhomboid\"].includes(nodeShape)) {\n scaleX = (bounds.w + outlineSize * 2.4) / bounds.w;\n } else if (nodeShape === \"star\") {\n scaleX = (bounds.w + outlineSize * 2.8) / bounds.w;\n scaleY = (bounds.h + outlineSize * 2.6) / bounds.h;\n yOffset = -outlineSize / 3.8;\n } else if (nodeShape === \"triangle\") {\n scaleX = (bounds.w + outlineSize * 2.8) / bounds.w;\n scaleY = (bounds.h + outlineSize * 2.4) / bounds.h;\n yOffset = -outlineSize / 1.4;\n } else if (nodeShape === \"vee\") {\n scaleX = (bounds.w + outlineSize * 4.4) / bounds.w;\n scaleY = (bounds.h + outlineSize * 3.8) / bounds.h;\n yOffset = -outlineSize * .5;\n }\n var hDelta = bounds.h * scaleY - bounds.h;\n var wDelta = bounds.w * scaleX - bounds.w;\n expandBoundingBoxSides(bounds, [Math.ceil(hDelta / 2), Math.ceil(wDelta / 2)]);\n if (xOffset != 0 || yOffset !== 0) {\n var oBounds = shiftBoundingBox(bounds, xOffset, yOffset);\n updateBoundingBox(bounds, oBounds);\n }\n }\n };\n\n // get the bounding box of the elements (in raw model position)\n var boundingBoxImpl = function boundingBoxImpl(ele, options) {\n var cy = ele._private.cy;\n var styleEnabled = cy.styleEnabled();\n var headless = cy.headless();\n var bounds = makeBoundingBox();\n var _p = ele._private;\n var isNode = ele.isNode();\n var isEdge = ele.isEdge();\n var ex1, ex2, ey1, ey2; // extrema of body / lines\n var x, y; // node pos\n var rstyle = _p.rstyle;\n var manualExpansion = isNode && styleEnabled ? ele.pstyle('bounds-expansion').pfValue : [0];\n\n // must use `display` prop only, as reading `compound.width()` causes recursion\n // (other factors like width values will be considered later in this function anyway)\n var isDisplayed = function isDisplayed(ele) {\n return ele.pstyle('display').value !== 'none';\n };\n var displayed = !styleEnabled || isDisplayed(ele)\n\n // must take into account connected nodes b/c of implicit edge hiding on display:none node\n && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));\n if (displayed) {\n // displayed suffices, since we will find zero area eles anyway\n var overlayOpacity = 0;\n var overlayPadding = 0;\n if (styleEnabled && options.includeOverlays) {\n overlayOpacity = ele.pstyle('overlay-opacity').value;\n if (overlayOpacity !== 0) {\n overlayPadding = ele.pstyle('overlay-padding').value;\n }\n }\n var underlayOpacity = 0;\n var underlayPadding = 0;\n if (styleEnabled && options.includeUnderlays) {\n underlayOpacity = ele.pstyle('underlay-opacity').value;\n if (underlayOpacity !== 0) {\n underlayPadding = ele.pstyle('underlay-padding').value;\n }\n }\n var padding = Math.max(overlayPadding, underlayPadding);\n var w = 0;\n var wHalf = 0;\n if (styleEnabled) {\n w = ele.pstyle('width').pfValue;\n wHalf = w / 2;\n }\n if (isNode && options.includeNodes) {\n var pos = ele.position();\n x = pos.x;\n y = pos.y;\n var _w = ele.outerWidth();\n var halfW = _w / 2;\n var h = ele.outerHeight();\n var halfH = h / 2;\n\n // handle node dimensions\n /////////////////////////\n\n ex1 = x - halfW;\n ex2 = x + halfW;\n ey1 = y - halfH;\n ey2 = y + halfH;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n if (styleEnabled && options.includeOutlines) {\n updateBoundsFromOutline(bounds, ele);\n }\n } else if (isEdge && options.includeEdges) {\n if (styleEnabled && !headless) {\n var curveStyle = ele.pstyle('curve-style').strValue;\n\n // handle edge dimensions (rough box estimate)\n //////////////////////////////////////////////\n\n ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);\n ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n\n // precise edges\n ////////////////\n\n if (curveStyle === 'haystack') {\n var hpts = rstyle.haystackPts;\n if (hpts && hpts.length === 2) {\n ex1 = hpts[0].x;\n ey1 = hpts[0].y;\n ex2 = hpts[1].x;\n ey2 = hpts[1].y;\n if (ex1 > ex2) {\n var temp = ex1;\n ex1 = ex2;\n ex2 = temp;\n }\n if (ey1 > ey2) {\n var _temp = ey1;\n ey1 = ey2;\n ey2 = _temp;\n }\n updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);\n }\n } else if (curveStyle === 'bezier' || curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'taxi') {\n var pts;\n switch (curveStyle) {\n case 'bezier':\n case 'unbundled-bezier':\n pts = rstyle.bezierPts;\n break;\n case 'segments':\n case 'taxi':\n pts = rstyle.linePts;\n break;\n }\n if (pts != null) {\n for (var j = 0; j < pts.length; j++) {\n var pt = pts[j];\n ex1 = pt.x - wHalf;\n ex2 = pt.x + wHalf;\n ey1 = pt.y - wHalf;\n ey2 = pt.y + wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n }\n }\n } // bezier-like or segment-like edge\n } else {\n // headless or style disabled\n\n // fallback on source and target positions\n //////////////////////////////////////////\n\n var n1 = ele.source();\n var n1pos = n1.position();\n var n2 = ele.target();\n var n2pos = n2.position();\n ex1 = n1pos.x;\n ex2 = n2pos.x;\n ey1 = n1pos.y;\n ey2 = n2pos.y;\n if (ex1 > ex2) {\n var _temp2 = ex1;\n ex1 = ex2;\n ex2 = _temp2;\n }\n if (ey1 > ey2) {\n var _temp3 = ey1;\n ey1 = ey2;\n ey2 = _temp3;\n }\n\n // take into account edge width\n ex1 -= wHalf;\n ex2 += wHalf;\n ey1 -= wHalf;\n ey2 += wHalf;\n updateBounds(bounds, ex1, ey1, ex2, ey2);\n } // headless or style disabled\n } // edges\n\n // handle edge arrow size\n /////////////////////////\n\n if (styleEnabled && options.includeEdges && isEdge) {\n updateBoundsFromArrow(bounds, ele, 'mid-source');\n updateBoundsFromArrow(bounds, ele, 'mid-target');\n updateBoundsFromArrow(bounds, ele, 'source');\n updateBoundsFromArrow(bounds, ele, 'target');\n }\n\n // ghost\n ////////\n\n if (styleEnabled) {\n var ghost = ele.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = ele.pstyle('ghost-offset-x').pfValue;\n var gy = ele.pstyle('ghost-offset-y').pfValue;\n updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy);\n }\n }\n\n // always store the body bounds separately from the labels\n var bbBody = _p.bodyBounds = _p.bodyBounds || {};\n assignBoundingBox(bbBody, bounds);\n expandBoundingBoxSides(bbBody, manualExpansion);\n expandBoundingBox(bbBody, 1); // expand to work around browser dimension inaccuracies\n\n // overlay\n //////////\n\n if (styleEnabled) {\n ex1 = bounds.x1;\n ex2 = bounds.x2;\n ey1 = bounds.y1;\n ey2 = bounds.y2;\n updateBounds(bounds, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding);\n }\n\n // always store the body bounds separately from the labels\n var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};\n assignBoundingBox(bbOverlay, bounds);\n expandBoundingBoxSides(bbOverlay, manualExpansion);\n expandBoundingBox(bbOverlay, 1); // expand to work around browser dimension inaccuracies\n\n // handle label dimensions\n //////////////////////////\n\n var bbLabels = _p.labelBounds = _p.labelBounds || {};\n if (bbLabels.all != null) {\n clearBoundingBox(bbLabels.all);\n } else {\n bbLabels.all = makeBoundingBox();\n }\n if (styleEnabled && options.includeLabels) {\n if (options.includeMainLabels) {\n updateBoundsFromLabel(bounds, ele, null);\n }\n if (isEdge) {\n if (options.includeSourceLabels) {\n updateBoundsFromLabel(bounds, ele, 'source');\n }\n if (options.includeTargetLabels) {\n updateBoundsFromLabel(bounds, ele, 'target');\n }\n }\n } // style enabled for labels\n } // if displayed\n\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n if (bounds.w > 0 && bounds.h > 0 && displayed) {\n expandBoundingBoxSides(bounds, manualExpansion);\n\n // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides\n expandBoundingBox(bounds, 1);\n }\n return bounds;\n };\n var getKey = function getKey(opts) {\n var i = 0;\n var tf = function tf(val) {\n return (val ? 1 : 0) << i++;\n };\n var key = 0;\n key += tf(opts.incudeNodes);\n key += tf(opts.includeEdges);\n key += tf(opts.includeLabels);\n key += tf(opts.includeMainLabels);\n key += tf(opts.includeSourceLabels);\n key += tf(opts.includeTargetLabels);\n key += tf(opts.includeOverlays);\n key += tf(opts.includeOutlines);\n return key;\n };\n var getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) {\n if (ele.isEdge()) {\n var p1 = ele.source().position();\n var p2 = ele.target().position();\n var r = function r(x) {\n return Math.round(x);\n };\n return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);\n } else {\n return 0;\n }\n };\n var cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) {\n var _p = ele._private;\n var bb;\n var isEdge = ele.isEdge();\n var key = opts == null ? defBbOptsKey : getKey(opts);\n var usingDefOpts = key === defBbOptsKey;\n var currPosKey = getBoundingBoxPosKey(ele);\n var isPosKeySame = _p.bbCachePosKey === currPosKey;\n var useCache = opts.useCache && isPosKeySame;\n var isDirty = function isDirty(ele) {\n return ele._private.bbCache == null || ele._private.styleDirty;\n };\n var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target());\n if (needRecalc) {\n if (!isPosKeySame) {\n ele.recalculateRenderedStyle(useCache);\n }\n bb = boundingBoxImpl(ele, defBbOpts);\n _p.bbCache = bb;\n _p.bbCachePosKey = currPosKey;\n } else {\n bb = _p.bbCache;\n }\n\n // not using def opts => need to build up bb from combination of sub bbs\n if (!usingDefOpts) {\n var isNode = ele.isNode();\n bb = makeBoundingBox();\n if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {\n if (opts.includeOverlays) {\n updateBoundsFromBox(bb, _p.overlayBounds);\n } else {\n updateBoundsFromBox(bb, _p.bodyBounds);\n }\n }\n if (opts.includeLabels) {\n if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {\n updateBoundsFromBox(bb, _p.labelBounds.all);\n } else {\n if (opts.includeMainLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.mainRot);\n }\n if (opts.includeSourceLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.sourceRot);\n }\n if (opts.includeTargetLabels) {\n updateBoundsFromBox(bb, _p.labelBounds.targetRot);\n }\n }\n }\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n }\n return bb;\n };\n var defBbOpts = {\n includeNodes: true,\n includeEdges: true,\n includeLabels: true,\n includeMainLabels: true,\n includeSourceLabels: true,\n includeTargetLabels: true,\n includeOverlays: true,\n includeUnderlays: true,\n includeOutlines: true,\n useCache: true\n };\n var defBbOptsKey = getKey(defBbOpts);\n var filledBbOpts = defaults$g(defBbOpts);\n elesfn$b.boundingBox = function (options) {\n var bounds;\n\n // the main usecase is ele.boundingBox() for a single element with no/def options\n // specified s.t. the cache is used, so check for this case to make it faster by\n // avoiding the overhead of the rest of the function\n if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === undefined || options.useCache === undefined || options.useCache === true)) {\n if (options === undefined) {\n options = defBbOpts;\n } else {\n options = filledBbOpts(options);\n }\n bounds = cachedBoundingBoxImpl(this[0], options);\n } else {\n bounds = makeBoundingBox();\n options = options || defBbOpts;\n var opts = filledBbOpts(options);\n var eles = this;\n var cy = eles.cy();\n var styleEnabled = cy.styleEnabled();\n if (styleEnabled) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var currPosKey = getBoundingBoxPosKey(ele);\n var isPosKeySame = _p.bbCachePosKey === currPosKey;\n var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;\n ele.recalculateRenderedStyle(useCache);\n }\n }\n this.updateCompoundBounds(!options.useCache);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele = eles[_i];\n updateBoundsFromBox(bounds, cachedBoundingBoxImpl(_ele, opts));\n }\n }\n bounds.x1 = noninf(bounds.x1);\n bounds.y1 = noninf(bounds.y1);\n bounds.x2 = noninf(bounds.x2);\n bounds.y2 = noninf(bounds.y2);\n bounds.w = noninf(bounds.x2 - bounds.x1);\n bounds.h = noninf(bounds.y2 - bounds.y1);\n return bounds;\n };\n elesfn$b.dirtyBoundingBoxCache = function () {\n for (var i = 0; i < this.length; i++) {\n var _p = this[i]._private;\n _p.bbCache = null;\n _p.bbCachePosKey = null;\n _p.bodyBounds = null;\n _p.overlayBounds = null;\n _p.labelBounds.all = null;\n _p.labelBounds.source = null;\n _p.labelBounds.target = null;\n _p.labelBounds.main = null;\n _p.labelBounds.sourceRot = null;\n _p.labelBounds.targetRot = null;\n _p.labelBounds.mainRot = null;\n _p.arrowBounds.source = null;\n _p.arrowBounds.target = null;\n _p.arrowBounds['mid-source'] = null;\n _p.arrowBounds['mid-target'] = null;\n }\n this.emitAndNotify('bounds');\n return this;\n };\n\n // private helper to get bounding box for custom node positions\n // - good for perf in certain cases but currently requires dirtying the rendered style\n // - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer...\n // - try to use for only things like discrete layouts where the node position would change anyway\n elesfn$b.boundingBoxAt = function (fn) {\n var nodes = this.nodes();\n var cy = this.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n var parents = cy.collection();\n if (hasCompoundNodes) {\n parents = nodes.filter(function (node) {\n return node.isParent();\n });\n nodes = nodes.not(parents);\n }\n if (plainObject(fn)) {\n var obj = fn;\n fn = function fn() {\n return obj;\n };\n }\n var storeOldPos = function storeOldPos(node, i) {\n return node._private.bbAtOldPos = fn(node, i);\n };\n var getOldPos = function getOldPos(node) {\n return node._private.bbAtOldPos;\n };\n cy.startBatch();\n nodes.forEach(storeOldPos).silentPositions(fn);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n\n var bb = copyBoundingBox(this.boundingBox({\n useCache: false\n }));\n nodes.silentPositions(getOldPos);\n if (hasCompoundNodes) {\n parents.dirtyCompoundBoundsCache();\n parents.dirtyBoundingBoxCache();\n parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle\n }\n\n cy.endBatch();\n return bb;\n };\n fn$3.boundingbox = fn$3.bb = fn$3.boundingBox;\n fn$3.renderedBoundingbox = fn$3.renderedBoundingBox;\n var bounds = elesfn$b;\n\n var fn$2, elesfn$a;\n fn$2 = elesfn$a = {};\n var defineDimFns = function defineDimFns(opts) {\n opts.uppercaseName = capitalize(opts.name);\n opts.autoName = 'auto' + opts.uppercaseName;\n opts.labelName = 'label' + opts.uppercaseName;\n opts.outerName = 'outer' + opts.uppercaseName;\n opts.uppercaseOuterName = capitalize(opts.outerName);\n fn$2[opts.name] = function dimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n return _p[opts.autoName] || 0;\n }\n var d = ele.pstyle(opts.name);\n switch (d.strValue) {\n case 'label':\n ele.recalculateRenderedStyle();\n return _p.rstyle[opts.labelName] || 0;\n default:\n return d.pfValue;\n }\n } else {\n return 1;\n }\n }\n };\n fn$2['outer' + opts.uppercaseName] = function outerDimImpl() {\n var ele = this[0];\n var _p = ele._private;\n var cy = _p.cy;\n var styleEnabled = cy._private.styleEnabled;\n if (ele) {\n if (styleEnabled) {\n var dim = ele[opts.name]();\n var border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side\n var padding = 2 * ele.padding();\n return dim + border + padding;\n } else {\n return 1;\n }\n }\n };\n fn$2['rendered' + opts.uppercaseName] = function renderedDimImpl() {\n var ele = this[0];\n if (ele) {\n var d = ele[opts.name]();\n return d * this.cy().zoom();\n }\n };\n fn$2['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() {\n var ele = this[0];\n if (ele) {\n var od = ele[opts.outerName]();\n return od * this.cy().zoom();\n }\n };\n };\n defineDimFns({\n name: 'width'\n });\n defineDimFns({\n name: 'height'\n });\n elesfn$a.padding = function () {\n var ele = this[0];\n var _p = ele._private;\n if (ele.isParent()) {\n ele.updateCompoundBounds();\n if (_p.autoPadding !== undefined) {\n return _p.autoPadding;\n } else {\n return ele.pstyle('padding').pfValue;\n }\n } else {\n return ele.pstyle('padding').pfValue;\n }\n };\n elesfn$a.paddedHeight = function () {\n var ele = this[0];\n return ele.height() + 2 * ele.padding();\n };\n elesfn$a.paddedWidth = function () {\n var ele = this[0];\n return ele.width() + 2 * ele.padding();\n };\n var widthHeight = elesfn$a;\n\n var ifEdge = function ifEdge(ele, getValue) {\n if (ele.isEdge()) {\n return getValue(ele);\n }\n };\n var ifEdgeRenderedPosition = function ifEdgeRenderedPosition(ele, getPoint) {\n if (ele.isEdge()) {\n var cy = ele.cy();\n return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());\n }\n };\n var ifEdgeRenderedPositions = function ifEdgeRenderedPositions(ele, getPoints) {\n if (ele.isEdge()) {\n var cy = ele.cy();\n var pan = cy.pan();\n var zoom = cy.zoom();\n return getPoints(ele).map(function (p) {\n return modelToRenderedPosition(p, zoom, pan);\n });\n }\n };\n var controlPoints = function controlPoints(ele) {\n return ele.renderer().getControlPoints(ele);\n };\n var segmentPoints = function segmentPoints(ele) {\n return ele.renderer().getSegmentPoints(ele);\n };\n var sourceEndpoint = function sourceEndpoint(ele) {\n return ele.renderer().getSourceEndpoint(ele);\n };\n var targetEndpoint = function targetEndpoint(ele) {\n return ele.renderer().getTargetEndpoint(ele);\n };\n var midpoint = function midpoint(ele) {\n return ele.renderer().getEdgeMidpoint(ele);\n };\n var pts = {\n controlPoints: {\n get: controlPoints,\n mult: true\n },\n segmentPoints: {\n get: segmentPoints,\n mult: true\n },\n sourceEndpoint: {\n get: sourceEndpoint\n },\n targetEndpoint: {\n get: targetEndpoint\n },\n midpoint: {\n get: midpoint\n }\n };\n var renderedName = function renderedName(name) {\n return 'rendered' + name[0].toUpperCase() + name.substr(1);\n };\n var edgePoints = Object.keys(pts).reduce(function (obj, name) {\n var spec = pts[name];\n var rName = renderedName(name);\n obj[name] = function () {\n return ifEdge(this, spec.get);\n };\n if (spec.mult) {\n obj[rName] = function () {\n return ifEdgeRenderedPositions(this, spec.get);\n };\n } else {\n obj[rName] = function () {\n return ifEdgeRenderedPosition(this, spec.get);\n };\n }\n return obj;\n }, {});\n\n var dimensions = extend({}, position, bounds, widthHeight, edgePoints);\n\n /*!\n Event object based on jQuery events, MIT license\n\n https://jquery.org/license/\n https://tldrlegal.com/license/mit-license\n https://github.com/jquery/jquery/blob/master/src/event.js\n */\n\n var Event = function Event(src, props) {\n this.recycle(src, props);\n };\n function returnFalse() {\n return false;\n }\n function returnTrue() {\n return true;\n }\n\n // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n Event.prototype = {\n instanceString: function instanceString() {\n return 'event';\n },\n recycle: function recycle(src, props) {\n this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;\n if (src != null && src.preventDefault) {\n // Browser Event object\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;\n } else if (src != null && src.type) {\n // Plain object containing all event details\n props = src;\n } else {\n // Event string\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props != null) {\n // more efficient to manually copy fields we use\n this.originalEvent = props.originalEvent;\n this.type = props.type != null ? props.type : this.type;\n this.cy = props.cy;\n this.target = props.target;\n this.position = props.position;\n this.renderedPosition = props.renderedPosition;\n this.namespace = props.namespace;\n this.layout = props.layout;\n }\n if (this.cy != null && this.position != null && this.renderedPosition == null) {\n // create a rendered position based on the passed position\n var pos = this.position;\n var zoom = this.cy.zoom();\n var pan = this.cy.pan();\n this.renderedPosition = {\n x: pos.x * zoom + pan.x,\n y: pos.y * zoom + pan.y\n };\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n },\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n var e = this.originalEvent;\n if (!e) {\n return;\n }\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n this.stopPropagation();\n },\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse\n };\n\n var eventRegex = /^([^.]+)(\\.(?:[^.]+))?$/; // regex for matching event strings (e.g. \"click.namespace\")\n var universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally\n\n var defaults$8 = {\n qualifierCompare: function qualifierCompare(q1, q2) {\n return q1 === q2;\n },\n eventMatches: function eventMatches( /*context, listener, eventObj*/\n ) {\n return true;\n },\n addEventFields: function addEventFields( /*context, evt*/\n ) {},\n callbackContext: function callbackContext(context /*, listener, eventObj*/) {\n return context;\n },\n beforeEmit: function beforeEmit( /* context, listener, eventObj */\n ) {},\n afterEmit: function afterEmit( /* context, listener, eventObj */\n ) {},\n bubble: function bubble( /*context*/\n ) {\n return false;\n },\n parent: function parent( /*context*/\n ) {\n return null;\n },\n context: null\n };\n var defaultsKeys = Object.keys(defaults$8);\n var emptyOpts = {};\n function Emitter() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyOpts;\n var context = arguments.length > 1 ? arguments[1] : undefined;\n // micro-optimisation vs Object.assign() -- reduces Element instantiation time\n for (var i = 0; i < defaultsKeys.length; i++) {\n var key = defaultsKeys[i];\n this[key] = opts[key] || defaults$8[key];\n }\n this.context = context || this.context;\n this.listeners = [];\n this.emitting = 0;\n }\n var p = Emitter.prototype;\n var forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) {\n if (fn$6(qualifier)) {\n callback = qualifier;\n qualifier = null;\n }\n if (confOverrides) {\n if (conf == null) {\n conf = confOverrides;\n } else {\n conf = extend({}, conf, confOverrides);\n }\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var ret = handler(self, evt, type, namespace, qualifier, callback, conf);\n if (ret === false) {\n break;\n } // allow exiting early\n }\n }\n };\n\n var makeEventObj = function makeEventObj(self, obj) {\n self.addEventFields(self.context, obj);\n return new Event(obj.type, obj);\n };\n var forEachEventObj = function forEachEventObj(self, handler, events) {\n if (event(events)) {\n handler(self, events);\n return;\n } else if (plainObject(events)) {\n handler(self, makeEventObj(self, events));\n return;\n }\n var eventList = array(events) ? events : events.split(/\\s+/);\n for (var i = 0; i < eventList.length; i++) {\n var evt = eventList[i];\n if (emptyString(evt)) {\n continue;\n }\n var match = evt.match(eventRegex); // type[.namespace]\n\n if (match) {\n var type = match[1];\n var namespace = match[2] ? match[2] : null;\n var eventObj = makeEventObj(self, {\n type: type,\n namespace: namespace,\n target: self.context\n });\n handler(self, eventObj);\n }\n }\n };\n p.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) {\n forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) {\n if (fn$6(callback)) {\n self.listeners.push({\n event: event,\n // full event string\n callback: callback,\n // callback to run\n type: type,\n // the event type (e.g. 'click')\n namespace: namespace,\n // the event namespace (e.g. \".foo\")\n qualifier: qualifier,\n // a restriction on whether to match this emitter\n conf: conf // additional configuration\n });\n }\n }, events, qualifier, callback, conf, confOverrides);\n return this;\n };\n p.one = function (events, qualifier, callback, conf) {\n return this.on(events, qualifier, callback, conf, {\n one: true\n });\n };\n p.removeListener = p.off = function (events, qualifier, callback, conf) {\n var _this = this;\n if (this.emitting !== 0) {\n this.listeners = copyArray$1(this.listeners);\n }\n var listeners = this.listeners;\n var _loop = function _loop(i) {\n var listener = listeners[i];\n forEachEvent(_this, function (self, event, type, namespace, qualifier, callback /*, conf*/) {\n if ((listener.type === type || events === '*') && (!namespace && listener.namespace !== '.*' || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) {\n listeners.splice(i, 1);\n return false;\n }\n }, events, qualifier, callback, conf);\n };\n for (var i = listeners.length - 1; i >= 0; i--) {\n _loop(i);\n }\n return this;\n };\n p.removeAllListeners = function () {\n return this.removeListener('*');\n };\n p.emit = p.trigger = function (events, extraParams, manualCallback) {\n var listeners = this.listeners;\n var numListenersBeforeEmit = listeners.length;\n this.emitting++;\n if (!array(extraParams)) {\n extraParams = [extraParams];\n }\n forEachEventObj(this, function (self, eventObj) {\n if (manualCallback != null) {\n listeners = [{\n event: eventObj.event,\n type: eventObj.type,\n namespace: eventObj.namespace,\n callback: manualCallback\n }];\n numListenersBeforeEmit = listeners.length;\n }\n var _loop2 = function _loop2(i) {\n var listener = listeners[i];\n if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) {\n var args = [eventObj];\n if (extraParams != null) {\n push(args, extraParams);\n }\n self.beforeEmit(self.context, listener, eventObj);\n if (listener.conf && listener.conf.one) {\n self.listeners = self.listeners.filter(function (l) {\n return l !== listener;\n });\n }\n var context = self.callbackContext(self.context, listener, eventObj);\n var ret = listener.callback.apply(context, args);\n self.afterEmit(self.context, listener, eventObj);\n if (ret === false) {\n eventObj.stopPropagation();\n eventObj.preventDefault();\n }\n } // if listener matches\n };\n for (var i = 0; i < numListenersBeforeEmit; i++) {\n _loop2(i);\n } // for listener\n\n if (self.bubble(self.context) && !eventObj.isPropagationStopped()) {\n self.parent(self.context).emit(eventObj, extraParams);\n }\n }, events);\n this.emitting--;\n return this;\n };\n\n var emitterOptions$1 = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(ele, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(ele, evt) {\n evt.cy = ele.cy();\n evt.target = ele;\n },\n callbackContext: function callbackContext(ele, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : ele;\n },\n beforeEmit: function beforeEmit(context, listener /*, eventObj*/) {\n if (listener.conf && listener.conf.once) {\n listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);\n }\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(ele) {\n return ele.isChild() ? ele.parent() : ele.cy();\n }\n };\n var argSelector$1 = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n };\n var elesfn$9 = {\n createEmitter: function createEmitter() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var _p = ele._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions$1, ele);\n }\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback);\n }\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeListener(events, argSel, callback);\n }\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().removeAllListeners();\n }\n return this;\n },\n one: function one(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().one(events, argSel, callback);\n }\n return this;\n },\n once: function once(events, selector, callback) {\n var argSel = argSelector$1(selector);\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().on(events, argSel, callback, {\n once: true,\n onceCollection: this\n });\n }\n },\n emit: function emit(events, extraParams) {\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n ele.emitter().emit(events, extraParams);\n }\n return this;\n },\n emitAndNotify: function emitAndNotify(event, extraParams) {\n // for internal use only\n if (this.length === 0) {\n return;\n } // empty collections don't need to notify anything\n\n // notify renderer\n this.cy().notify(event, this);\n this.emit(event, extraParams);\n return this;\n }\n };\n define.eventAliasesOn(elesfn$9);\n\n var elesfn$8 = {\n nodes: function nodes(selector) {\n return this.filter(function (ele) {\n return ele.isNode();\n }).filter(selector);\n },\n edges: function edges(selector) {\n return this.filter(function (ele) {\n return ele.isEdge();\n }).filter(selector);\n },\n // internal helper to get nodes and edges as separate collections with single iteration over elements\n byGroup: function byGroup() {\n var nodes = this.spawn();\n var edges = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele.isNode()) {\n nodes.push(ele);\n } else {\n edges.push(ele);\n }\n }\n return {\n nodes: nodes,\n edges: edges\n };\n },\n filter: function filter(_filter, thisArg) {\n if (_filter === undefined) {\n // check this first b/c it's the most common/performant case\n return this;\n } else if (string(_filter) || elementOrCollection(_filter)) {\n return new Selector(_filter).filter(this);\n } else if (fn$6(_filter)) {\n var filterEles = this.spawn();\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles);\n if (include) {\n filterEles.push(ele);\n }\n }\n return filterEles;\n }\n return this.spawn(); // if not handled by above, give 'em an empty collection\n },\n\n not: function not(toRemove) {\n if (!toRemove) {\n return this;\n } else {\n if (string(toRemove)) {\n toRemove = this.filter(toRemove);\n }\n var elements = this.spawn();\n for (var i = 0; i < this.length; i++) {\n var element = this[i];\n var remove = toRemove.has(element);\n if (!remove) {\n elements.push(element);\n }\n }\n return elements;\n }\n },\n absoluteComplement: function absoluteComplement() {\n var cy = this.cy();\n return cy.mutableElements().not(this);\n },\n intersect: function intersect(other) {\n // if a selector is specified, then filter by it instead\n if (string(other)) {\n var selector = other;\n return this.filter(selector);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var col1Smaller = this.length < other.length;\n var colS = col1Smaller ? col1 : col2;\n var colL = col1Smaller ? col2 : col1;\n for (var i = 0; i < colS.length; i++) {\n var ele = colS[i];\n if (colL.has(ele)) {\n elements.push(ele);\n }\n }\n return elements;\n },\n xor: function xor(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var elements = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (!inOther) {\n elements.push(ele);\n }\n }\n };\n add(col1, col2);\n add(col2, col1);\n return elements;\n },\n diff: function diff(other) {\n var cy = this._private.cy;\n if (string(other)) {\n other = cy.$(other);\n }\n var left = this.spawn();\n var right = this.spawn();\n var both = this.spawn();\n var col1 = this;\n var col2 = other;\n var add = function add(col, other, retEles) {\n for (var i = 0; i < col.length; i++) {\n var ele = col[i];\n var id = ele._private.data.id;\n var inOther = other.hasElementWithId(id);\n if (inOther) {\n both.merge(ele);\n } else {\n retEles.push(ele);\n }\n }\n };\n add(col1, col2, left);\n add(col2, col1, right);\n return {\n left: left,\n right: right,\n both: both\n };\n },\n add: function add(toAdd) {\n var cy = this._private.cy;\n if (!toAdd) {\n return this;\n }\n if (string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var elements = this.spawnSelf();\n for (var i = 0; i < toAdd.length; i++) {\n var ele = toAdd[i];\n var add = !this.has(ele);\n if (add) {\n elements.push(ele);\n }\n }\n return elements;\n },\n // in place merge on calling collection\n merge: function merge(toAdd) {\n var _p = this._private;\n var cy = _p.cy;\n if (!toAdd) {\n return this;\n }\n if (toAdd && string(toAdd)) {\n var selector = toAdd;\n toAdd = cy.mutableElements().filter(selector);\n }\n var map = _p.map;\n for (var i = 0; i < toAdd.length; i++) {\n var toAddEle = toAdd[i];\n var id = toAddEle._private.data.id;\n var add = !map.has(id);\n if (add) {\n var index = this.length++;\n this[index] = toAddEle;\n map.set(id, {\n ele: toAddEle,\n index: index\n });\n }\n }\n return this; // chaining\n },\n\n unmergeAt: function unmergeAt(i) {\n var ele = this[i];\n var id = ele.id();\n var _p = this._private;\n var map = _p.map;\n\n // remove ele\n this[i] = undefined;\n map[\"delete\"](id);\n var unmergedLastEle = i === this.length - 1;\n\n // replace empty spot with last ele in collection\n if (this.length > 1 && !unmergedLastEle) {\n var lastEleI = this.length - 1;\n var lastEle = this[lastEleI];\n var lastEleId = lastEle._private.data.id;\n this[lastEleI] = undefined;\n this[i] = lastEle;\n map.set(lastEleId, {\n ele: lastEle,\n index: i\n });\n }\n\n // the collection is now 1 ele smaller\n this.length--;\n return this;\n },\n // remove single ele in place in calling collection\n unmergeOne: function unmergeOne(ele) {\n ele = ele[0];\n var _p = this._private;\n var id = ele._private.data.id;\n var map = _p.map;\n var entry = map.get(id);\n if (!entry) {\n return this; // no need to remove\n }\n\n var i = entry.index;\n this.unmergeAt(i);\n return this;\n },\n // remove eles in place on calling collection\n unmerge: function unmerge(toRemove) {\n var cy = this._private.cy;\n if (!toRemove) {\n return this;\n }\n if (toRemove && string(toRemove)) {\n var selector = toRemove;\n toRemove = cy.mutableElements().filter(selector);\n }\n for (var i = 0; i < toRemove.length; i++) {\n this.unmergeOne(toRemove[i]);\n }\n return this; // chaining\n },\n\n unmergeBy: function unmergeBy(toRmFn) {\n for (var i = this.length - 1; i >= 0; i--) {\n var ele = this[i];\n if (toRmFn(ele)) {\n this.unmergeAt(i);\n }\n }\n return this;\n },\n map: function map(mapFn, thisArg) {\n var arr = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles);\n arr.push(ret);\n }\n return arr;\n },\n reduce: function reduce(fn, initialValue) {\n var val = initialValue;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n val = fn(val, eles[i], i, eles);\n }\n return val;\n },\n max: function max(valFn, thisArg) {\n var max = -Infinity;\n var maxEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val > max) {\n max = val;\n maxEle = ele;\n }\n }\n return {\n value: max,\n ele: maxEle\n };\n },\n min: function min(valFn, thisArg) {\n var min = Infinity;\n var minEle;\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles);\n if (val < min) {\n min = val;\n minEle = ele;\n }\n }\n return {\n value: min,\n ele: minEle\n };\n }\n };\n\n // aliases\n var fn$1 = elesfn$8;\n fn$1['u'] = fn$1['|'] = fn$1['+'] = fn$1.union = fn$1.or = fn$1.add;\n fn$1['\\\\'] = fn$1['!'] = fn$1['-'] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;\n fn$1['n'] = fn$1['&'] = fn$1['.'] = fn$1.and = fn$1.intersection = fn$1.intersect;\n fn$1['^'] = fn$1['(+)'] = fn$1['(-)'] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;\n fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;\n fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;\n\n var elesfn$7 = {\n isNode: function isNode() {\n return this.group() === 'nodes';\n },\n isEdge: function isEdge() {\n return this.group() === 'edges';\n },\n isLoop: function isLoop() {\n return this.isEdge() && this.source()[0] === this.target()[0];\n },\n isSimple: function isSimple() {\n return this.isEdge() && this.source()[0] !== this.target()[0];\n },\n group: function group() {\n var ele = this[0];\n if (ele) {\n return ele._private.group;\n }\n }\n };\n\n /**\n * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges),\n * and z-index (low to high). These styles affect how this applies:\n *\n * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the\n * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from\n * root to leaves of the compound graph. The last drawn is `top`.\n * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes.\n * `manual` ignores this convention and draws based on the `z-index` value setting.\n * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher\n * `z-index` will be drawn on top of an element with a lower `z-index`.\n */\n var zIndexSort = function zIndexSort(a, b) {\n var cy = a.cy();\n var hasCompoundNodes = cy.hasCompoundNodes();\n function getDepth(ele) {\n var style = ele.pstyle('z-compound-depth');\n if (style.value === 'auto') {\n return hasCompoundNodes ? ele.zDepth() : 0;\n } else if (style.value === 'bottom') {\n return -1;\n } else if (style.value === 'top') {\n return MAX_INT$1;\n }\n // 'orphan'\n return 0;\n }\n var depthDiff = getDepth(a) - getDepth(b);\n if (depthDiff !== 0) {\n return depthDiff;\n }\n function getEleDepth(ele) {\n var style = ele.pstyle('z-index-compare');\n if (style.value === 'auto') {\n return ele.isNode() ? 1 : 0;\n }\n // 'manual'\n return 0;\n }\n var eleDiff = getEleDepth(a) - getEleDepth(b);\n if (eleDiff !== 0) {\n return eleDiff;\n }\n var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value;\n if (zDiff !== 0) {\n return zDiff;\n }\n // compare indices in the core (order added to graph w/ last on top)\n return a.poolIndex() - b.poolIndex();\n };\n\n var elesfn$6 = {\n forEach: function forEach(fn, thisArg) {\n if (fn$6(fn)) {\n var N = this.length;\n for (var i = 0; i < N; i++) {\n var ele = this[i];\n var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this);\n if (ret === false) {\n break;\n } // exit each early on return false\n }\n }\n\n return this;\n },\n toArray: function toArray() {\n var array = [];\n for (var i = 0; i < this.length; i++) {\n array.push(this[i]);\n }\n return array;\n },\n slice: function slice(start, end) {\n var array = [];\n var thisSize = this.length;\n if (end == null) {\n end = thisSize;\n }\n if (start == null) {\n start = 0;\n }\n if (start < 0) {\n start = thisSize + start;\n }\n if (end < 0) {\n end = thisSize + end;\n }\n for (var i = start; i >= 0 && i < end && i < thisSize; i++) {\n array.push(this[i]);\n }\n return this.spawn(array);\n },\n size: function size() {\n return this.length;\n },\n eq: function eq(i) {\n return this[i] || this.spawn();\n },\n first: function first() {\n return this[0] || this.spawn();\n },\n last: function last() {\n return this[this.length - 1] || this.spawn();\n },\n empty: function empty() {\n return this.length === 0;\n },\n nonempty: function nonempty() {\n return !this.empty();\n },\n sort: function sort(sortFn) {\n if (!fn$6(sortFn)) {\n return this;\n }\n var sorted = this.toArray().sort(sortFn);\n return this.spawn(sorted);\n },\n sortByZIndex: function sortByZIndex() {\n return this.sort(zIndexSort);\n },\n zDepth: function zDepth() {\n var ele = this[0];\n if (!ele) {\n return undefined;\n }\n\n // let cy = ele.cy();\n var _p = ele._private;\n var group = _p.group;\n if (group === 'nodes') {\n var depth = _p.data.parent ? ele.parents().size() : 0;\n if (!ele.isParent()) {\n return MAX_INT$1 - 1; // childless nodes always on top\n }\n\n return depth;\n } else {\n var src = _p.source;\n var tgt = _p.target;\n var srcDepth = src.zDepth();\n var tgtDepth = tgt.zDepth();\n return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent\n }\n }\n };\n\n elesfn$6.each = elesfn$6.forEach;\n var defineSymbolIterator = function defineSymbolIterator() {\n var typeofUndef = \"undefined\" ;\n var isIteratorSupported = (typeof Symbol === \"undefined\" ? \"undefined\" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; // eslint-disable-line no-undef\n\n if (isIteratorSupported) {\n elesfn$6[Symbol.iterator] = function () {\n var _this = this;\n // eslint-disable-line no-undef\n var entry = {\n value: undefined,\n done: false\n };\n var i = 0;\n var length = this.length;\n return _defineProperty$1({\n next: function next() {\n if (i < length) {\n entry.value = _this[i++];\n } else {\n entry.value = undefined;\n entry.done = true;\n }\n return entry;\n }\n }, Symbol.iterator, function () {\n // eslint-disable-line no-undef\n return this;\n });\n };\n }\n };\n defineSymbolIterator();\n\n var getLayoutDimensionOptions = defaults$g({\n nodeDimensionsIncludeLabels: false\n });\n var elesfn$5 = {\n // Calculates and returns node dimensions { x, y } based on options given\n layoutDimensions: function layoutDimensions(options) {\n options = getLayoutDimensionOptions(options);\n var dims;\n if (!this.takesUpSpace()) {\n dims = {\n w: 0,\n h: 0\n };\n } else if (options.nodeDimensionsIncludeLabels) {\n var bbDim = this.boundingBox();\n dims = {\n w: bbDim.w,\n h: bbDim.h\n };\n } else {\n dims = {\n w: this.outerWidth(),\n h: this.outerHeight()\n };\n }\n\n // sanitise the dimensions for external layouts (avoid division by zero)\n if (dims.w === 0 || dims.h === 0) {\n dims.w = dims.h = 1;\n }\n return dims;\n },\n // using standard layout options, apply position function (w/ or w/o animation)\n layoutPositions: function layoutPositions(layout, options, fn) {\n var nodes = this.nodes().filter(function (n) {\n return !n.isParent();\n });\n var cy = this.cy();\n var layoutEles = options.eles; // nodes & edges\n var getMemoizeKey = function getMemoizeKey(node) {\n return node.id();\n };\n var fnMem = memoize$1(fn, getMemoizeKey); // memoized version of position function\n\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n layout.animations = [];\n var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) {\n var center = {\n x: nodesBb.x1 + nodesBb.w / 2,\n y: nodesBb.y1 + nodesBb.h / 2\n };\n var spacingVector = {\n // scale from center of bounding box (not necessarily 0,0)\n x: (pos.x - center.x) * spacing,\n y: (pos.y - center.y) * spacing\n };\n return {\n x: center.x + spacingVector.x,\n y: center.y + spacingVector.y\n };\n };\n var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1;\n var spacingBb = function spacingBb() {\n if (!useSpacingFactor) {\n return null;\n }\n var bb = makeBoundingBox();\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = fnMem(node, i);\n expandBoundingBoxByPoint(bb, pos.x, pos.y);\n }\n return bb;\n };\n var bb = spacingBb();\n var getFinalPos = memoize$1(function (node, i) {\n var newPos = fnMem(node, i);\n if (useSpacingFactor) {\n var spacing = Math.abs(options.spacingFactor);\n newPos = calculateSpacing(spacing, bb, newPos);\n }\n if (options.transform != null) {\n newPos = options.transform(node, newPos);\n }\n return newPos;\n }, getMemoizeKey);\n if (options.animate) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var newPos = getFinalPos(node, i);\n var animateNode = options.animateFilter == null || options.animateFilter(node, i);\n if (animateNode) {\n var ani = node.animation({\n position: newPos,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(ani);\n } else {\n node.position(newPos);\n }\n }\n if (options.fit) {\n var fitAni = cy.animation({\n fit: {\n boundingBox: layoutEles.boundingBoxAt(getFinalPos),\n padding: options.padding\n },\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(fitAni);\n } else if (options.zoom !== undefined && options.pan !== undefined) {\n var zoomPanAni = cy.animation({\n zoom: options.zoom,\n pan: options.pan,\n duration: options.animationDuration,\n easing: options.animationEasing\n });\n layout.animations.push(zoomPanAni);\n }\n layout.animations.forEach(function (ani) {\n return ani.play();\n });\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n Promise$1.all(layout.animations.map(function (ani) {\n return ani.promise();\n })).then(function () {\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n });\n } else {\n nodes.positions(getFinalPos);\n if (options.fit) {\n cy.fit(options.eles, options.padding);\n }\n if (options.zoom != null) {\n cy.zoom(options.zoom);\n }\n if (options.pan) {\n cy.pan(options.pan);\n }\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: layout\n });\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n }\n return this; // chaining\n },\n\n layout: function layout(options) {\n var cy = this.cy();\n return cy.makeLayout(extend({}, options, {\n eles: this\n }));\n }\n };\n\n // aliases:\n elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;\n\n function styleCache(key, fn, ele) {\n var _p = ele._private;\n var cache = _p.styleCache = _p.styleCache || [];\n var val;\n if ((val = cache[key]) != null) {\n return val;\n } else {\n val = cache[key] = fn(ele);\n return val;\n }\n }\n function cacheStyleFunction(key, fn) {\n key = hashString(key);\n return function cachedStyleFunction(ele) {\n return styleCache(key, fn, ele);\n };\n }\n function cachePrototypeStyleFunction(key, fn) {\n key = hashString(key);\n var selfFn = function selfFn(ele) {\n return fn.call(ele);\n };\n return function cachedPrototypeStyleFunction() {\n var ele = this[0];\n if (ele) {\n return styleCache(key, selfFn, ele);\n }\n };\n }\n var elesfn$4 = {\n recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {\n var cy = this.cy();\n var renderer = cy.renderer();\n var styleEnabled = cy.styleEnabled();\n if (renderer && styleEnabled) {\n renderer.recalculateRenderedStyle(this, useCache);\n }\n return this;\n },\n dirtyStyleCache: function dirtyStyleCache() {\n var cy = this.cy();\n var dirty = function dirty(ele) {\n return ele._private.styleCache = null;\n };\n if (cy.hasCompoundNodes()) {\n var eles;\n eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n eles.merge(eles.connectedEdges());\n eles.forEach(dirty);\n } else {\n this.forEach(function (ele) {\n dirty(ele);\n ele.connectedEdges().forEach(dirty);\n });\n }\n return this;\n },\n // fully updates (recalculates) the style for the elements\n updateStyle: function updateStyle(notifyRenderer) {\n var cy = this._private.cy;\n if (!cy.styleEnabled()) {\n return this;\n }\n if (cy.batching()) {\n var bEles = cy._private.batchStyleEles;\n bEles.merge(this);\n return this; // chaining and exit early when batching\n }\n\n var hasCompounds = cy.hasCompoundNodes();\n var updatedEles = this;\n notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false;\n if (hasCompounds) {\n // then add everything up and down for compound selector checks\n updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());\n }\n\n // let changedEles = style.apply( updatedEles );\n var changedEles = updatedEles;\n if (notifyRenderer) {\n changedEles.emitAndNotify('style'); // let renderer know we changed style\n } else {\n changedEles.emit('style'); // just fire the event\n }\n\n updatedEles.forEach(function (ele) {\n return ele._private.styleDirty = true;\n });\n return this; // chaining\n },\n\n // private: clears dirty flag and recalculates style\n cleanStyle: function cleanStyle() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n if (ele._private.styleDirty) {\n // n.b. this flag should be set before apply() to avoid potential infinite recursion\n ele._private.styleDirty = false;\n cy.style().apply(ele);\n }\n }\n },\n // get the internal parsed style object for the specified property\n parsedStyle: function parsedStyle(property) {\n var includeNonDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var ele = this[0];\n var cy = ele.cy();\n if (!cy.styleEnabled()) {\n return;\n }\n if (ele) {\n this.cleanStyle();\n var overriddenStyle = ele._private.style[property];\n if (overriddenStyle != null) {\n return overriddenStyle;\n } else if (includeNonDefault) {\n return cy.style().getDefaultProperty(property);\n } else {\n return null;\n }\n }\n },\n numericStyle: function numericStyle(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n var pstyle = ele.pstyle(property);\n return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value;\n }\n },\n numericStyleUnits: function numericStyleUnits(property) {\n var ele = this[0];\n if (!ele.cy().styleEnabled()) {\n return;\n }\n if (ele) {\n return ele.pstyle(property).units;\n }\n },\n // get the specified css property as a rendered value (i.e. on-screen value)\n // or get the whole rendered style if no property specified (NB doesn't allow setting)\n renderedStyle: function renderedStyle(property) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var ele = this[0];\n if (ele) {\n return cy.style().getRenderedStyle(ele, property);\n }\n },\n // read the calculated css style of the element or override the style (via a bypass)\n style: function style(name, value) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n if (plainObject(name)) {\n // then extend the bypass\n var props = name;\n style.applyBypass(this, props, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n } else if (string(name)) {\n if (value === undefined) {\n // then get the property from the style\n var ele = this[0];\n if (ele) {\n return style.getStylePropertyValue(ele, name);\n } else {\n // empty collection => can't get any value\n return;\n }\n } else {\n // then set the bypass with the property value\n style.applyBypass(this, name, value, updateTransitions);\n this.emitAndNotify('style'); // let the renderer know we've updated style\n }\n } else if (name === undefined) {\n var _ele = this[0];\n if (_ele) {\n return style.getRawStyle(_ele);\n } else {\n // empty collection => can't get any value\n return;\n }\n }\n return this; // chaining\n },\n\n removeStyle: function removeStyle(names) {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return this;\n }\n var updateTransitions = false;\n var style = cy.style();\n var eles = this;\n if (names === undefined) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n style.removeAllBypasses(ele, updateTransitions);\n }\n } else {\n names = names.split(/\\s+/);\n for (var _i = 0; _i < eles.length; _i++) {\n var _ele2 = eles[_i];\n style.removeBypasses(_ele2, names, updateTransitions);\n }\n }\n this.emitAndNotify('style'); // let the renderer know we've updated style\n\n return this; // chaining\n },\n\n show: function show() {\n this.css('display', 'element');\n return this; // chaining\n },\n\n hide: function hide() {\n this.css('display', 'none');\n return this; // chaining\n },\n\n effectiveOpacity: function effectiveOpacity() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return 1;\n }\n var hasCompoundNodes = cy.hasCompoundNodes();\n var ele = this[0];\n if (ele) {\n var _p = ele._private;\n var parentOpacity = ele.pstyle('opacity').value;\n if (!hasCompoundNodes) {\n return parentOpacity;\n }\n var parents = !_p.data.parent ? null : ele.parents();\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n var opacity = parent.pstyle('opacity').value;\n parentOpacity = opacity * parentOpacity;\n }\n }\n return parentOpacity;\n }\n },\n transparent: function transparent() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n var hasCompoundNodes = ele.cy().hasCompoundNodes();\n if (ele) {\n if (!hasCompoundNodes) {\n return ele.pstyle('opacity').value === 0;\n } else {\n return ele.effectiveOpacity() === 0;\n }\n }\n },\n backgrounding: function backgrounding() {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return false;\n }\n var ele = this[0];\n return ele._private.backgrounding ? true : false;\n }\n };\n function checkCompound(ele, parentOk) {\n var _p = ele._private;\n var parents = _p.data.parent ? ele.parents() : null;\n if (parents) {\n for (var i = 0; i < parents.length; i++) {\n var parent = parents[i];\n if (!parentOk(parent)) {\n return false;\n }\n }\n }\n return true;\n }\n function defineDerivedStateFunction(specs) {\n var ok = specs.ok;\n var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;\n var parentOk = specs.parentOk || specs.ok;\n return function () {\n var cy = this.cy();\n if (!cy.styleEnabled()) {\n return true;\n }\n var ele = this[0];\n var hasCompoundNodes = cy.hasCompoundNodes();\n if (ele) {\n var _p = ele._private;\n if (!ok(ele)) {\n return false;\n }\n if (ele.isNode()) {\n return !hasCompoundNodes || checkCompound(ele, parentOk);\n } else {\n var src = _p.source;\n var tgt = _p.target;\n return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));\n }\n }\n };\n }\n var eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) {\n return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);\n });\n elesfn$4.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({\n ok: eleTakesUpSpace\n }));\n var eleInteractive = cacheStyleFunction('eleInteractive', function (ele) {\n return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele);\n });\n var parentInteractive = cacheStyleFunction('parentInteractive', function (parent) {\n return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent);\n });\n elesfn$4.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({\n ok: eleInteractive,\n parentOk: parentInteractive,\n edgeOkViaNode: eleTakesUpSpace\n }));\n elesfn$4.noninteractive = function () {\n var ele = this[0];\n if (ele) {\n return !ele.interactive();\n }\n };\n var eleVisible = cacheStyleFunction('eleVisible', function (ele) {\n return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele);\n });\n var edgeVisibleViaNode = eleTakesUpSpace;\n elesfn$4.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({\n ok: eleVisible,\n edgeOkViaNode: edgeVisibleViaNode\n }));\n elesfn$4.hidden = function () {\n var ele = this[0];\n if (ele) {\n return !ele.visible();\n }\n };\n elesfn$4.isBundledBezier = cachePrototypeStyleFunction('isBundledBezier', function () {\n if (!this.cy().styleEnabled()) {\n return false;\n }\n return !this.removed() && this.pstyle('curve-style').value === 'bezier' && this.takesUpSpace();\n });\n elesfn$4.bypass = elesfn$4.css = elesfn$4.style;\n elesfn$4.renderedCss = elesfn$4.renderedStyle;\n elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;\n elesfn$4.pstyle = elesfn$4.parsedStyle;\n\n var elesfn$3 = {};\n function defineSwitchFunction(params) {\n return function () {\n var args = arguments;\n var changedEles = [];\n\n // e.g. cy.nodes().select( data, handler )\n if (args.length === 2) {\n var data = args[0];\n var handler = args[1];\n this.on(params.event, data, handler);\n }\n\n // e.g. cy.nodes().select( handler )\n else if (args.length === 1 && fn$6(args[0])) {\n var _handler = args[0];\n this.on(params.event, _handler);\n }\n\n // e.g. cy.nodes().select()\n // e.g. (private) cy.nodes().select(['tapselect'])\n else if (args.length === 0 || args.length === 1 && array(args[0])) {\n var addlEvents = args.length === 1 ? args[0] : null;\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var able = !params.ableField || ele._private[params.ableField];\n var changed = ele._private[params.field] != params.value;\n if (params.overrideAble) {\n var overrideAble = params.overrideAble(ele);\n if (overrideAble !== undefined) {\n able = overrideAble;\n if (!overrideAble) {\n return this;\n } // to save cycles assume not able for all on override\n }\n }\n\n if (able) {\n ele._private[params.field] = params.value;\n if (changed) {\n changedEles.push(ele);\n }\n }\n }\n var changedColl = this.spawn(changedEles);\n changedColl.updateStyle(); // change of state => possible change of style\n changedColl.emit(params.event);\n if (addlEvents) {\n changedColl.emit(addlEvents);\n }\n }\n return this;\n };\n }\n function defineSwitchSet(params) {\n elesfn$3[params.field] = function () {\n var ele = this[0];\n if (ele) {\n if (params.overrideField) {\n var val = params.overrideField(ele);\n if (val !== undefined) {\n return val;\n }\n }\n return ele._private[params.field];\n }\n };\n elesfn$3[params.on] = defineSwitchFunction({\n event: params.on,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: true\n });\n elesfn$3[params.off] = defineSwitchFunction({\n event: params.off,\n field: params.field,\n ableField: params.ableField,\n overrideAble: params.overrideAble,\n value: false\n });\n }\n defineSwitchSet({\n field: 'locked',\n overrideField: function overrideField(ele) {\n return ele.cy().autolock() ? true : undefined;\n },\n on: 'lock',\n off: 'unlock'\n });\n defineSwitchSet({\n field: 'grabbable',\n overrideField: function overrideField(ele) {\n return ele.cy().autoungrabify() || ele.pannable() ? false : undefined;\n },\n on: 'grabify',\n off: 'ungrabify'\n });\n defineSwitchSet({\n field: 'selected',\n ableField: 'selectable',\n overrideAble: function overrideAble(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'select',\n off: 'unselect'\n });\n defineSwitchSet({\n field: 'selectable',\n overrideField: function overrideField(ele) {\n return ele.cy().autounselectify() ? false : undefined;\n },\n on: 'selectify',\n off: 'unselectify'\n });\n elesfn$3.deselect = elesfn$3.unselect;\n elesfn$3.grabbed = function () {\n var ele = this[0];\n if (ele) {\n return ele._private.grabbed;\n }\n };\n defineSwitchSet({\n field: 'active',\n on: 'activate',\n off: 'unactivate'\n });\n defineSwitchSet({\n field: 'pannable',\n on: 'panify',\n off: 'unpanify'\n });\n elesfn$3.inactive = function () {\n var ele = this[0];\n if (ele) {\n return !ele._private.active;\n }\n };\n\n var elesfn$2 = {};\n\n // DAG functions\n ////////////////\n\n var defineDagExtremity = function defineDagExtremity(params) {\n return function dagExtremityImpl(selector) {\n var eles = this;\n var ret = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var disqualified = false;\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {\n disqualified = true;\n break;\n }\n }\n if (!disqualified) {\n ret.push(ele);\n }\n }\n return this.spawn(ret, true).filter(selector);\n };\n };\n var defineDagOneHop = function defineDagOneHop(params) {\n return function (selector) {\n var eles = this;\n var oEles = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n var edges = ele.connectedEdges();\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n var src = edge.source();\n var tgt = edge.target();\n if (params.outgoing && src === ele) {\n oEles.push(edge);\n oEles.push(tgt);\n } else if (params.incoming && tgt === ele) {\n oEles.push(edge);\n oEles.push(src);\n }\n }\n }\n return this.spawn(oEles, true).filter(selector);\n };\n };\n var defineDagAllHops = function defineDagAllHops(params) {\n return function (selector) {\n var eles = this;\n var sEles = [];\n var sElesIds = {};\n for (;;) {\n var next = params.outgoing ? eles.outgoers() : eles.incomers();\n if (next.length === 0) {\n break;\n } // done if none left\n\n var newNext = false;\n for (var i = 0; i < next.length; i++) {\n var n = next[i];\n var nid = n.id();\n if (!sElesIds[nid]) {\n sElesIds[nid] = true;\n sEles.push(n);\n newNext = true;\n }\n }\n if (!newNext) {\n break;\n } // done if touched all outgoers already\n\n eles = next;\n }\n return this.spawn(sEles, true).filter(selector);\n };\n };\n elesfn$2.clearTraversalCache = function () {\n for (var i = 0; i < this.length; i++) {\n this[i]._private.traversalCache = null;\n }\n };\n extend(elesfn$2, {\n // get the root nodes in the DAG\n roots: defineDagExtremity({\n noIncomingEdges: true\n }),\n // get the leaf nodes in the DAG\n leaves: defineDagExtremity({\n noOutgoingEdges: true\n }),\n // normally called children in graph theory\n // these nodes =edges=> outgoing nodes\n outgoers: cache(defineDagOneHop({\n outgoing: true\n }), 'outgoers'),\n // aka DAG descendants\n successors: defineDagAllHops({\n outgoing: true\n }),\n // normally called parents in graph theory\n // these nodes <=edges= incoming nodes\n incomers: cache(defineDagOneHop({\n incoming: true\n }), 'incomers'),\n // aka DAG ancestors\n predecessors: defineDagAllHops({\n incoming: true\n })\n });\n\n // Neighbourhood functions\n //////////////////////////\n\n extend(elesfn$2, {\n neighborhood: cache(function (selector) {\n var elements = [];\n var nodes = this.nodes();\n for (var i = 0; i < nodes.length; i++) {\n // for all nodes\n var node = nodes[i];\n var connectedEdges = node.connectedEdges();\n\n // for each connected edge, add the edge and the other node\n for (var j = 0; j < connectedEdges.length; j++) {\n var edge = connectedEdges[j];\n var src = edge.source();\n var tgt = edge.target();\n var otherNode = node === src ? tgt : src;\n\n // need check in case of loop\n if (otherNode.length > 0) {\n elements.push(otherNode[0]); // add node 1 hop away\n }\n\n // add connected edge\n elements.push(edge[0]);\n }\n }\n return this.spawn(elements, true).filter(selector);\n }, 'neighborhood'),\n closedNeighborhood: function closedNeighborhood(selector) {\n return this.neighborhood().add(this).filter(selector);\n },\n openNeighborhood: function openNeighborhood(selector) {\n return this.neighborhood(selector);\n }\n });\n\n // aliases\n elesfn$2.neighbourhood = elesfn$2.neighborhood;\n elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;\n elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;\n\n // Edge functions\n /////////////////\n\n extend(elesfn$2, {\n source: cache(function sourceImpl(selector) {\n var ele = this[0];\n var src;\n if (ele) {\n src = ele._private.source || ele.cy().collection();\n }\n return src && selector ? src.filter(selector) : src;\n }, 'source'),\n target: cache(function targetImpl(selector) {\n var ele = this[0];\n var tgt;\n if (ele) {\n tgt = ele._private.target || ele.cy().collection();\n }\n return tgt && selector ? tgt.filter(selector) : tgt;\n }, 'target'),\n sources: defineSourceFunction({\n attr: 'source'\n }),\n targets: defineSourceFunction({\n attr: 'target'\n })\n });\n function defineSourceFunction(params) {\n return function sourceImpl(selector) {\n var sources = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var src = ele._private[params.attr];\n if (src) {\n sources.push(src);\n }\n }\n return this.spawn(sources, true).filter(selector);\n };\n }\n extend(elesfn$2, {\n edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'),\n edgesTo: cache(defineEdgesWithFunction({\n thisIsSrc: true\n }), 'edgesTo')\n });\n function defineEdgesWithFunction(params) {\n return function edgesWithImpl(otherNodes) {\n var elements = [];\n var cy = this._private.cy;\n var p = params || {};\n\n // get elements if a selector is specified\n if (string(otherNodes)) {\n otherNodes = cy.$(otherNodes);\n }\n for (var h = 0; h < otherNodes.length; h++) {\n var edges = otherNodes[h]._private.edges;\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var edgeData = edge._private.data;\n var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);\n var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);\n var edgeConnectsThisAndOther = thisToOther || otherToThis;\n if (!edgeConnectsThisAndOther) {\n continue;\n }\n if (p.thisIsSrc || p.thisIsTgt) {\n if (p.thisIsSrc && !thisToOther) {\n continue;\n }\n if (p.thisIsTgt && !otherToThis) {\n continue;\n }\n }\n elements.push(edge);\n }\n }\n return this.spawn(elements, true);\n };\n }\n extend(elesfn$2, {\n connectedEdges: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var node = eles[i];\n if (!node.isNode()) {\n continue;\n }\n var edges = node._private.edges;\n for (var j = 0; j < edges.length; j++) {\n var edge = edges[j];\n retEles.push(edge);\n }\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedEdges'),\n connectedNodes: cache(function (selector) {\n var retEles = [];\n var eles = this;\n for (var i = 0; i < eles.length; i++) {\n var edge = eles[i];\n if (!edge.isEdge()) {\n continue;\n }\n retEles.push(edge.source()[0]);\n retEles.push(edge.target()[0]);\n }\n return this.spawn(retEles, true).filter(selector);\n }, 'connectedNodes'),\n parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'),\n codirectedEdges: cache(defineParallelEdgesFunction({\n codirected: true\n }), 'codirectedEdges')\n });\n function defineParallelEdgesFunction(params) {\n var defaults = {\n codirected: false\n };\n params = extend({}, defaults, params);\n return function parallelEdgesImpl(selector) {\n // micro-optimised for renderer\n var elements = [];\n var edges = this.edges();\n var p = params;\n\n // look at all the edges in the collection\n for (var i = 0; i < edges.length; i++) {\n var edge1 = edges[i];\n var edge1_p = edge1._private;\n var src1 = edge1_p.source;\n var srcid1 = src1._private.data.id;\n var tgtid1 = edge1_p.data.target;\n var srcEdges1 = src1._private.edges;\n\n // look at edges connected to the src node of this edge\n for (var j = 0; j < srcEdges1.length; j++) {\n var edge2 = srcEdges1[j];\n var edge2data = edge2._private.data;\n var tgtid2 = edge2data.target;\n var srcid2 = edge2data.source;\n var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;\n var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;\n if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) {\n elements.push(edge2);\n }\n }\n }\n return this.spawn(elements, true).filter(selector);\n };\n }\n\n // Misc functions\n /////////////////\n\n extend(elesfn$2, {\n components: function components(root) {\n var self = this;\n var cy = self.cy();\n var visited = cy.collection();\n var unvisited = root == null ? self.nodes() : root.nodes();\n var components = [];\n if (root != null && unvisited.empty()) {\n // root may contain only edges\n unvisited = root.sources(); // doesn't matter which node to use (undirected), so just use the source sides\n }\n\n var visitInComponent = function visitInComponent(node, component) {\n visited.merge(node);\n unvisited.unmerge(node);\n component.merge(node);\n };\n if (unvisited.empty()) {\n return self.spawn();\n }\n var _loop = function _loop() {\n // each iteration yields a component\n var cmpt = cy.collection();\n components.push(cmpt);\n var root = unvisited[0];\n visitInComponent(root, cmpt);\n self.bfs({\n directed: false,\n roots: root,\n visit: function visit(v) {\n return visitInComponent(v, cmpt);\n }\n });\n cmpt.forEach(function (node) {\n node.connectedEdges().forEach(function (e) {\n // connectedEdges() usually cached\n if (self.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {\n // has() is cheap\n cmpt.merge(e); // forEach() only considers nodes -- sets N at call time\n }\n });\n });\n };\n do {\n _loop();\n } while (unvisited.length > 0);\n return components;\n },\n component: function component() {\n var ele = this[0];\n return ele.cy().mutableElements().components(ele)[0];\n }\n });\n elesfn$2.componentsOf = elesfn$2.components;\n\n // represents a set of nodes, edges, or both together\n var Collection = function Collection(cy, elements) {\n var unique = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var removed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (cy === undefined) {\n error('A collection must have a reference to the core');\n return;\n }\n var map = new Map$2();\n var createdElements = false;\n if (!elements) {\n elements = [];\n } else if (elements.length > 0 && plainObject(elements[0]) && !element(elements[0])) {\n createdElements = true;\n\n // make elements from json and restore all at once later\n var eles = [];\n var elesIds = new Set$1();\n for (var i = 0, l = elements.length; i < l; i++) {\n var json = elements[i];\n if (json.data == null) {\n json.data = {};\n }\n var _data = json.data;\n\n // make sure newly created elements have valid ids\n if (_data.id == null) {\n _data.id = uuid();\n } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {\n continue; // can't create element if prior id already exists\n }\n\n var ele = new Element(cy, json, false);\n eles.push(ele);\n elesIds.add(_data.id);\n }\n elements = eles;\n }\n this.length = 0;\n for (var _i = 0, _l = elements.length; _i < _l; _i++) {\n var element$1 = elements[_i][0]; // [0] in case elements is an array of collections, rather than array of elements\n if (element$1 == null) {\n continue;\n }\n var id = element$1._private.data.id;\n if (!unique || !map.has(id)) {\n if (unique) {\n map.set(id, {\n index: this.length,\n ele: element$1\n });\n }\n this[this.length] = element$1;\n this.length++;\n }\n }\n this._private = {\n eles: this,\n cy: cy,\n get map() {\n if (this.lazyMap == null) {\n this.rebuildMap();\n }\n return this.lazyMap;\n },\n set map(m) {\n this.lazyMap = m;\n },\n rebuildMap: function rebuildMap() {\n var m = this.lazyMap = new Map$2();\n var eles = this.eles;\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n var _ele = eles[_i2];\n m.set(_ele.id(), {\n index: _i2,\n ele: _ele\n });\n }\n }\n };\n if (unique) {\n this._private.map = map;\n }\n\n // restore the elements if we created them from json\n if (createdElements && !removed) {\n this.restore();\n }\n };\n\n // Functions\n ////////////////////////////////////////////////////////////////////////////////////////////////////\n\n // keep the prototypes in sync (an element has the same functions as a collection)\n // and use elefn and elesfn as shorthands to the prototypes\n var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);\n elesfn$1.instanceString = function () {\n return 'collection';\n };\n elesfn$1.spawn = function (eles, unique) {\n return new Collection(this.cy(), eles, unique);\n };\n elesfn$1.spawnSelf = function () {\n return this.spawn(this);\n };\n elesfn$1.cy = function () {\n return this._private.cy;\n };\n elesfn$1.renderer = function () {\n return this._private.cy.renderer();\n };\n elesfn$1.element = function () {\n return this[0];\n };\n elesfn$1.collection = function () {\n if (collection(this)) {\n return this;\n } else {\n // an element\n return new Collection(this._private.cy, [this]);\n }\n };\n elesfn$1.unique = function () {\n return new Collection(this._private.cy, this, true);\n };\n elesfn$1.hasElementWithId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.has(id);\n };\n elesfn$1.getElementById = function (id) {\n id = '' + id; // id must be string\n\n var cy = this._private.cy;\n var entry = this._private.map.get(id);\n return entry ? entry.ele : new Collection(cy); // get ele or empty collection\n };\n\n elesfn$1.$id = elesfn$1.getElementById;\n elesfn$1.poolIndex = function () {\n var cy = this._private.cy;\n var eles = cy._private.elements;\n var id = this[0]._private.data.id;\n return eles._private.map.get(id).index;\n };\n elesfn$1.indexOf = function (ele) {\n var id = ele[0]._private.data.id;\n return this._private.map.get(id).index;\n };\n elesfn$1.indexOfId = function (id) {\n id = '' + id; // id must be string\n\n return this._private.map.get(id).index;\n };\n elesfn$1.json = function (obj) {\n var ele = this.element();\n var cy = this.cy();\n if (ele == null && obj) {\n return this;\n } // can't set to no eles\n\n if (ele == null) {\n return undefined;\n } // can't get from no eles\n\n var p = ele._private;\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.data) {\n ele.data(obj.data);\n var _data2 = p.data;\n if (ele.isEdge()) {\n // source and target are immutable via data()\n var move = false;\n var spec = {};\n var src = obj.data.source;\n var tgt = obj.data.target;\n if (src != null && src != _data2.source) {\n spec.source = '' + src; // id must be string\n move = true;\n }\n if (tgt != null && tgt != _data2.target) {\n spec.target = '' + tgt; // id must be string\n move = true;\n }\n if (move) {\n ele = ele.move(spec);\n }\n } else {\n // parent is immutable via data()\n var newParentValSpecd = ('parent' in obj.data);\n var parent = obj.data.parent;\n if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {\n if (parent === undefined) {\n // can't set undefined imperatively, so use null\n parent = null;\n }\n if (parent != null) {\n parent = '' + parent; // id must be string\n }\n\n ele = ele.move({\n parent: parent\n });\n }\n }\n }\n if (obj.position) {\n ele.position(obj.position);\n }\n\n // ignore group -- immutable\n\n var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) {\n var obj_k = obj[k];\n if (obj_k != null && obj_k !== p[k]) {\n if (obj_k) {\n ele[trueFnName]();\n } else {\n ele[falseFnName]();\n }\n }\n };\n checkSwitch('removed', 'remove', 'restore');\n checkSwitch('selected', 'select', 'unselect');\n checkSwitch('selectable', 'selectify', 'unselectify');\n checkSwitch('locked', 'lock', 'unlock');\n checkSwitch('grabbable', 'grabify', 'ungrabify');\n checkSwitch('pannable', 'panify', 'unpanify');\n if (obj.classes != null) {\n ele.classes(obj.classes);\n }\n cy.endBatch();\n return this;\n } else if (obj === undefined) {\n // get\n\n var json = {\n data: copy(p.data),\n position: copy(p.position),\n group: p.group,\n removed: p.removed,\n selected: p.selected,\n selectable: p.selectable,\n locked: p.locked,\n grabbable: p.grabbable,\n pannable: p.pannable,\n classes: null\n };\n json.classes = '';\n var i = 0;\n p.classes.forEach(function (cls) {\n return json.classes += i++ === 0 ? cls : ' ' + cls;\n });\n return json;\n }\n };\n elesfn$1.jsons = function () {\n var jsons = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n jsons.push(json);\n }\n return jsons;\n };\n elesfn$1.clone = function () {\n var cy = this.cy();\n var elesArr = [];\n for (var i = 0; i < this.length; i++) {\n var ele = this[i];\n var json = ele.json();\n var clone = new Element(cy, json, false); // NB no restore\n\n elesArr.push(clone);\n }\n return new Collection(cy, elesArr);\n };\n elesfn$1.copy = elesfn$1.clone;\n elesfn$1.restore = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var addToPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var cy = self.cy();\n var cy_p = cy._private;\n\n // create arrays of nodes and edges, since we need to\n // restore the nodes first\n var nodes = [];\n var edges = [];\n var elements;\n for (var _i3 = 0, l = self.length; _i3 < l; _i3++) {\n var ele = self[_i3];\n if (addToPool && !ele.removed()) {\n // don't need to handle this ele\n continue;\n }\n\n // keep nodes first in the array and edges after\n if (ele.isNode()) {\n // put to front of array if node\n nodes.push(ele);\n } else {\n // put to end of array if edge\n edges.push(ele);\n }\n }\n elements = nodes.concat(edges);\n var i;\n var removeFromElements = function removeFromElements() {\n elements.splice(i, 1);\n i--;\n };\n\n // now, restore each element\n for (i = 0; i < elements.length; i++) {\n var _ele2 = elements[i];\n var _private = _ele2._private;\n var _data3 = _private.data;\n\n // the traversal cache should start fresh when ele is added\n _ele2.clearTraversalCache();\n\n // set id and validate\n if (!addToPool && !_private.removed) ; else if (_data3.id === undefined) {\n _data3.id = uuid();\n } else if (number$1(_data3.id)) {\n _data3.id = '' + _data3.id; // now it's a string\n } else if (emptyString(_data3.id) || !string(_data3.id)) {\n error('Can not create element with invalid string ID `' + _data3.id + '`');\n\n // can't create element if it has empty string as id or non-string id\n removeFromElements();\n continue;\n } else if (cy.hasElementWithId(_data3.id)) {\n error('Can not create second element with ID `' + _data3.id + '`');\n\n // can't create element if one already has that id\n removeFromElements();\n continue;\n }\n var id = _data3.id; // id is finalised, now let's keep a ref\n\n if (_ele2.isNode()) {\n // extra checks for nodes\n var pos = _private.position;\n\n // make sure the nodes have a defined position\n\n if (pos.x == null) {\n pos.x = 0;\n }\n if (pos.y == null) {\n pos.y = 0;\n }\n }\n if (_ele2.isEdge()) {\n // extra checks for edges\n\n var edge = _ele2;\n var fields = ['source', 'target'];\n var fieldsLength = fields.length;\n var badSourceOrTarget = false;\n for (var j = 0; j < fieldsLength; j++) {\n var field = fields[j];\n var val = _data3[field];\n if (number$1(val)) {\n val = _data3[field] = '' + _data3[field]; // now string\n }\n\n if (val == null || val === '') {\n // can't create if source or target is not defined properly\n error('Can not create edge `' + id + '` with unspecified ' + field);\n badSourceOrTarget = true;\n } else if (!cy.hasElementWithId(val)) {\n // can't create edge if one of its nodes doesn't exist\n error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`');\n badSourceOrTarget = true;\n }\n }\n if (badSourceOrTarget) {\n removeFromElements();\n continue;\n } // can't create this\n\n var src = cy.getElementById(_data3.source);\n var tgt = cy.getElementById(_data3.target);\n\n // only one edge in node if loop\n if (src.same(tgt)) {\n src._private.edges.push(edge);\n } else {\n src._private.edges.push(edge);\n tgt._private.edges.push(edge);\n }\n edge._private.source = src;\n edge._private.target = tgt;\n } // if is edge\n\n // create mock ids / indexes maps for element so it can be used like collections\n _private.map = new Map$2();\n _private.map.set(id, {\n ele: _ele2,\n index: 0\n });\n _private.removed = false;\n if (addToPool) {\n cy.addToPool(_ele2);\n }\n } // for each element\n\n // do compound node sanity checks\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n // each node\n var node = nodes[_i4];\n var _data4 = node._private.data;\n if (number$1(_data4.parent)) {\n // then automake string\n _data4.parent = '' + _data4.parent;\n }\n var parentId = _data4.parent;\n var specifiedParent = parentId != null;\n if (specifiedParent || node._private.parent) {\n var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId);\n if (parent.empty()) {\n // non-existant parent; just remove it\n _data4.parent = undefined;\n } else if (parent[0].removed()) {\n warn('Node added with missing parent, reference to parent removed');\n _data4.parent = undefined;\n node._private.parent = null;\n } else {\n var selfAsParent = false;\n var ancestor = parent;\n while (!ancestor.empty()) {\n if (node.same(ancestor)) {\n // mark self as parent and remove from data\n selfAsParent = true;\n _data4.parent = undefined; // remove parent reference\n\n // exit or we loop forever\n break;\n }\n ancestor = ancestor.parent();\n }\n if (!selfAsParent) {\n // connect with children\n parent[0]._private.children.push(node);\n node._private.parent = parent[0];\n\n // let the core know we have a compound graph\n cy_p.hasCompoundNodes = true;\n }\n } // else\n } // if specified parent\n } // for each node\n\n if (elements.length > 0) {\n var restored = elements.length === self.length ? self : new Collection(cy, elements);\n for (var _i5 = 0; _i5 < restored.length; _i5++) {\n var _ele3 = restored[_i5];\n if (_ele3.isNode()) {\n continue;\n }\n\n // adding an edge invalidates the traversal caches for the parallel edges\n _ele3.parallelEdges().clearTraversalCache();\n\n // adding an edge invalidates the traversal cache for the connected nodes\n _ele3.source().clearTraversalCache();\n _ele3.target().clearTraversalCache();\n }\n var toUpdateStyle;\n if (cy_p.hasCompoundNodes) {\n toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());\n } else {\n toUpdateStyle = restored;\n }\n toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);\n if (notifyRenderer) {\n restored.emitAndNotify('add');\n } else if (addToPool) {\n restored.emit('add');\n }\n }\n return self; // chainability\n };\n\n elesfn$1.removed = function () {\n var ele = this[0];\n return ele && ele._private.removed;\n };\n elesfn$1.inside = function () {\n var ele = this[0];\n return ele && !ele._private.removed;\n };\n elesfn$1.remove = function () {\n var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var removeFromPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var self = this;\n var elesToRemove = [];\n var elesToRemoveIds = {};\n var cy = self._private.cy;\n\n // add connected edges\n function addConnectedEdges(node) {\n var edges = node._private.edges;\n for (var i = 0; i < edges.length; i++) {\n add(edges[i]);\n }\n }\n\n // add descendant nodes\n function addChildren(node) {\n var children = node._private.children;\n for (var i = 0; i < children.length; i++) {\n add(children[i]);\n }\n }\n function add(ele) {\n var alreadyAdded = elesToRemoveIds[ele.id()];\n if (removeFromPool && ele.removed() || alreadyAdded) {\n return;\n } else {\n elesToRemoveIds[ele.id()] = true;\n }\n if (ele.isNode()) {\n elesToRemove.push(ele); // nodes are removed last\n\n addConnectedEdges(ele);\n addChildren(ele);\n } else {\n elesToRemove.unshift(ele); // edges are removed first\n }\n }\n\n // make the list of elements to remove\n // (may be removing more than specified due to connected edges etc)\n\n for (var i = 0, l = self.length; i < l; i++) {\n var ele = self[i];\n add(ele);\n }\n function removeEdgeRef(node, edge) {\n var connectedEdges = node._private.edges;\n removeFromArray(connectedEdges, edge);\n\n // removing an edges invalidates the traversal cache for its nodes\n node.clearTraversalCache();\n }\n function removeParallelRef(pllEdge) {\n // removing an edge invalidates the traversal caches for the parallel edges\n pllEdge.clearTraversalCache();\n }\n var alteredParents = [];\n alteredParents.ids = {};\n function removeChildRef(parent, ele) {\n ele = ele[0];\n parent = parent[0];\n var children = parent._private.children;\n var pid = parent.id();\n removeFromArray(children, ele); // remove parent => child ref\n\n ele._private.parent = null; // remove child => parent ref\n\n if (!alteredParents.ids[pid]) {\n alteredParents.ids[pid] = true;\n alteredParents.push(parent);\n }\n }\n self.dirtyCompoundBoundsCache();\n if (removeFromPool) {\n cy.removeFromPool(elesToRemove); // remove from core pool\n }\n\n for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {\n var _ele4 = elesToRemove[_i6];\n if (_ele4.isEdge()) {\n // remove references to this edge in its connected nodes\n var src = _ele4.source()[0];\n var tgt = _ele4.target()[0];\n removeEdgeRef(src, _ele4);\n removeEdgeRef(tgt, _ele4);\n var pllEdges = _ele4.parallelEdges();\n for (var j = 0; j < pllEdges.length; j++) {\n var pllEdge = pllEdges[j];\n removeParallelRef(pllEdge);\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n }\n } else {\n // remove reference to parent\n var parent = _ele4.parent();\n if (parent.length !== 0) {\n removeChildRef(parent, _ele4);\n }\n }\n if (removeFromPool) {\n // mark as removed\n _ele4._private.removed = true;\n }\n }\n\n // check to see if we have a compound graph or not\n var elesStillInside = cy._private.elements;\n cy._private.hasCompoundNodes = false;\n for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {\n var _ele5 = elesStillInside[_i7];\n if (_ele5.isParent()) {\n cy._private.hasCompoundNodes = true;\n break;\n }\n }\n var removedElements = new Collection(this.cy(), elesToRemove);\n if (removedElements.size() > 0) {\n // must manually notify since trigger won't do this automatically once removed\n\n if (notifyRenderer) {\n removedElements.emitAndNotify('remove');\n } else if (removeFromPool) {\n removedElements.emit('remove');\n }\n }\n\n // the parents who were modified by the removal need their style updated\n for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {\n var _ele6 = alteredParents[_i8];\n if (!removeFromPool || !_ele6.removed()) {\n _ele6.updateStyle();\n }\n }\n return removedElements;\n };\n elesfn$1.move = function (struct) {\n var cy = this._private.cy;\n var eles = this;\n\n // just clean up refs, caches, etc. in the same way as when removing and then restoring\n // (our calls to remove/restore do not remove from the graph or make events)\n var notifyRenderer = false;\n var modifyPool = false;\n var toString = function toString(id) {\n return id == null ? id : '' + id;\n }; // id must be string\n\n if (struct.source !== undefined || struct.target !== undefined) {\n var srcId = toString(struct.source);\n var tgtId = toString(struct.target);\n var srcExists = srcId != null && cy.hasElementWithId(srcId);\n var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);\n if (srcExists || tgtExists) {\n cy.batch(function () {\n // avoid duplicate style updates\n eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n eles.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data5 = ele._private.data;\n if (ele.isEdge()) {\n if (srcExists) {\n _data5.source = srcId;\n }\n if (tgtExists) {\n _data5.target = tgtId;\n }\n }\n }\n eles.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n\n eles.emitAndNotify('move');\n }\n } else if (struct.parent !== undefined) {\n // move node to new parent\n var parentId = toString(struct.parent);\n var parentExists = parentId === null || cy.hasElementWithId(parentId);\n if (parentExists) {\n var pidToAssign = parentId === null ? undefined : parentId;\n cy.batch(function () {\n // avoid duplicate style updates\n var updated = eles.remove(notifyRenderer, modifyPool); // clean up refs etc.\n updated.emitAndNotify('moveout');\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _data6 = ele._private.data;\n if (ele.isNode()) {\n _data6.parent = pidToAssign;\n }\n }\n updated.restore(notifyRenderer, modifyPool); // make new refs, style, etc.\n });\n\n eles.emitAndNotify('move');\n }\n }\n return this;\n };\n [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function (props) {\n extend(elesfn$1, props);\n });\n\n var corefn$9 = {\n add: function add(opts) {\n var elements;\n var cy = this;\n\n // add the elements\n if (elementOrCollection(opts)) {\n var eles = opts;\n if (eles._private.cy === cy) {\n // same instance => just restore\n elements = eles.restore();\n } else {\n // otherwise, copy from json\n var jsons = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n jsons.push(ele.json());\n }\n elements = new Collection(cy, jsons);\n }\n }\n\n // specify an array of options\n else if (array(opts)) {\n var _jsons = opts;\n elements = new Collection(cy, _jsons);\n }\n\n // specify via opts.nodes and opts.edges\n else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) {\n var elesByGroup = opts;\n var _jsons2 = [];\n var grs = ['nodes', 'edges'];\n for (var _i = 0, il = grs.length; _i < il; _i++) {\n var group = grs[_i];\n var elesArray = elesByGroup[group];\n if (array(elesArray)) {\n for (var j = 0, jl = elesArray.length; j < jl; j++) {\n var json = extend({\n group: group\n }, elesArray[j]);\n _jsons2.push(json);\n }\n }\n }\n elements = new Collection(cy, _jsons2);\n }\n\n // specify options for one element\n else {\n var _json = opts;\n elements = new Element(cy, _json).collection();\n }\n return elements;\n },\n remove: function remove(collection) {\n if (elementOrCollection(collection)) ; else if (string(collection)) {\n var selector = collection;\n collection = this.$(selector);\n }\n return collection.remove();\n }\n };\n\n /* global Float32Array */\n\n /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n function generateCubicBezier(mX1, mY1, mX2, mY2) {\n var NEWTON_ITERATIONS = 4,\n NEWTON_MIN_SLOPE = 0.001,\n SUBDIVISION_PRECISION = 0.0000001,\n SUBDIVISION_MAX_ITERATIONS = 10,\n kSplineTableSize = 11,\n kSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\n float32ArraySupported = typeof Float32Array !== 'undefined';\n\n /* Must contain four arguments. */\n if (arguments.length !== 4) {\n return false;\n }\n\n /* Arguments must be numbers. */\n for (var i = 0; i < 4; ++i) {\n if (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\n return false;\n }\n }\n\n /* X values must be in the [0, 1] range. */\n mX1 = Math.min(mX1, 1);\n mX2 = Math.min(mX2, 1);\n mX1 = Math.max(mX1, 0);\n mX2 = Math.max(mX2, 0);\n var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n return 3.0 * aA1;\n }\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function newtonRaphsonIterate(aX, aGuessT) {\n for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function calcSampleValues() {\n for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {\n mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);\n }\n }\n function binarySubdivide(aX, aA, aB) {\n var currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function getTForX(aX) {\n var intervalStart = 0.0,\n currentSample = 1,\n lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\n guessForT = intervalStart + dist * kSampleStepSize,\n initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\n }\n }\n var _precomputed = false;\n function precompute() {\n _precomputed = true;\n if (mX1 !== mY1 || mX2 !== mY2) {\n calcSampleValues();\n }\n }\n var f = function f(aX) {\n if (!_precomputed) {\n precompute();\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return aX;\n }\n if (aX === 0) {\n return 0;\n }\n if (aX === 1) {\n return 1;\n }\n return calcBezier(getTForX(aX), mY1, mY2);\n };\n f.getControlPoints = function () {\n return [{\n x: mX1,\n y: mY1\n }, {\n x: mX2,\n y: mY2\n }];\n };\n var str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\n f.toString = function () {\n return str;\n };\n return f;\n }\n\n /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n /* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\n then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\n var generateSpringRK4 = function () {\n function springAccelerationForState(state) {\n return -state.tension * state.x - state.friction * state.v;\n }\n function springEvaluateStateWithDerivative(initialState, dt, derivative) {\n var state = {\n x: initialState.x + derivative.dx * dt,\n v: initialState.v + derivative.dv * dt,\n tension: initialState.tension,\n friction: initialState.friction\n };\n return {\n dx: state.v,\n dv: springAccelerationForState(state)\n };\n }\n function springIntegrateState(state, dt) {\n var a = {\n dx: state.v,\n dv: springAccelerationForState(state)\n },\n b = springEvaluateStateWithDerivative(state, dt * 0.5, a),\n c = springEvaluateStateWithDerivative(state, dt * 0.5, b),\n d = springEvaluateStateWithDerivative(state, dt, c),\n dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\n dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\n state.x = state.x + dxdt * dt;\n state.v = state.v + dvdt * dt;\n return state;\n }\n return function springRK4Factory(tension, friction, duration) {\n var initState = {\n x: -1,\n v: 0,\n tension: null,\n friction: null\n },\n path = [0],\n time_lapsed = 0,\n tolerance = 1 / 10000,\n DT = 16 / 1000,\n have_duration,\n dt,\n last_state;\n tension = parseFloat(tension) || 500;\n friction = parseFloat(friction) || 20;\n duration = duration || null;\n initState.tension = tension;\n initState.friction = friction;\n have_duration = duration !== null;\n\n /* Calculate the actual time it takes for this animation to complete with the provided conditions. */\n if (have_duration) {\n /* Run the simulation without a duration. */\n time_lapsed = springRK4Factory(tension, friction);\n /* Compute the adjusted time delta. */\n dt = time_lapsed / duration * DT;\n } else {\n dt = DT;\n }\n for (;;) {\n /* Next/step function .*/\n last_state = springIntegrateState(last_state || initState, dt);\n /* Store the position. */\n path.push(1 + last_state.x);\n time_lapsed += 16;\n /* If the change threshold is reached, break. */\n if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\n break;\n }\n }\n\n /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\n computed path and returns a snapshot of the position according to a given percentComplete. */\n return !have_duration ? time_lapsed : function (percentComplete) {\n return path[percentComplete * (path.length - 1) | 0];\n };\n };\n }();\n\n var cubicBezier = function cubicBezier(t1, p1, t2, p2) {\n var bezier = generateCubicBezier(t1, p1, t2, p2);\n return function (start, end, percent) {\n return start + (end - start) * bezier(percent);\n };\n };\n var easings = {\n 'linear': function linear(start, end, percent) {\n return start + (end - start) * percent;\n },\n // default easings\n 'ease': cubicBezier(0.25, 0.1, 0.25, 1),\n 'ease-in': cubicBezier(0.42, 0, 1, 1),\n 'ease-out': cubicBezier(0, 0, 0.58, 1),\n 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1),\n // sine\n 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715),\n 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1),\n 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95),\n // quad\n 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53),\n 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94),\n 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955),\n // cubic\n 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19),\n 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1),\n 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1),\n // quart\n 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22),\n 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1),\n 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1),\n // quint\n 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06),\n 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1),\n 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1),\n // expo\n 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035),\n 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1),\n 'ease-in-out-expo': cubicBezier(1, 0, 0, 1),\n // circ\n 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335),\n 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1),\n 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86),\n // user param easings...\n\n 'spring': function spring(tension, friction, duration) {\n if (duration === 0) {\n // can't get a spring w/ duration 0\n return easings.linear; // duration 0 => jump to end so impl doesn't matter\n }\n\n var spring = generateSpringRK4(tension, friction, duration);\n return function (start, end, percent) {\n return start + (end - start) * spring(percent);\n };\n },\n 'cubic-bezier': cubicBezier\n };\n\n function getEasedValue(type, start, end, percent, easingFn) {\n if (percent === 1) {\n return end;\n }\n if (start === end) {\n return end;\n }\n var val = easingFn(start, end, percent);\n if (type == null) {\n return val;\n }\n if (type.roundValue || type.color) {\n val = Math.round(val);\n }\n if (type.min !== undefined) {\n val = Math.max(val, type.min);\n }\n if (type.max !== undefined) {\n val = Math.min(val, type.max);\n }\n return val;\n }\n function getValue(prop, spec) {\n if (prop.pfValue != null || prop.value != null) {\n if (prop.pfValue != null && (spec == null || spec.type.units !== '%')) {\n return prop.pfValue;\n } else {\n return prop.value;\n }\n } else {\n return prop;\n }\n }\n function ease(startProp, endProp, percent, easingFn, propSpec) {\n var type = propSpec != null ? propSpec.type : null;\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n var start = getValue(startProp, propSpec);\n var end = getValue(endProp, propSpec);\n if (number$1(start) && number$1(end)) {\n return getEasedValue(type, start, end, percent, easingFn);\n } else if (array(start) && array(end)) {\n var easedArr = [];\n for (var i = 0; i < end.length; i++) {\n var si = start[i];\n var ei = end[i];\n if (si != null && ei != null) {\n var val = getEasedValue(type, si, ei, percent, easingFn);\n easedArr.push(val);\n } else {\n easedArr.push(ei);\n }\n }\n return easedArr;\n }\n return undefined;\n }\n\n function step$1(self, ani, now, isCore) {\n var isEles = !isCore;\n var _p = self._private;\n var ani_p = ani._private;\n var pEasing = ani_p.easing;\n var startTime = ani_p.startTime;\n var cy = isCore ? self : self.cy();\n var style = cy.style();\n if (!ani_p.easingImpl) {\n if (pEasing == null) {\n // use default\n ani_p.easingImpl = easings['linear'];\n } else {\n // then define w/ name\n var easingVals;\n if (string(pEasing)) {\n var easingProp = style.parse('transition-timing-function', pEasing);\n easingVals = easingProp.value;\n } else {\n // then assume preparsed array\n easingVals = pEasing;\n }\n var name, args;\n if (string(easingVals)) {\n name = easingVals;\n args = [];\n } else {\n name = easingVals[1];\n args = easingVals.slice(2).map(function (n) {\n return +n;\n });\n }\n if (args.length > 0) {\n // create with args\n if (name === 'spring') {\n args.push(ani_p.duration); // need duration to generate spring\n }\n\n ani_p.easingImpl = easings[name].apply(null, args);\n } else {\n // static impl by name\n ani_p.easingImpl = easings[name];\n }\n }\n }\n var easing = ani_p.easingImpl;\n var percent;\n if (ani_p.duration === 0) {\n percent = 1;\n } else {\n percent = (now - startTime) / ani_p.duration;\n }\n if (ani_p.applying) {\n percent = ani_p.progress;\n }\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (ani_p.delay == null) {\n // then update\n\n var startPos = ani_p.startPosition;\n var endPos = ani_p.position;\n if (endPos && isEles && !self.locked()) {\n var newPos = {};\n if (valid(startPos.x, endPos.x)) {\n newPos.x = ease(startPos.x, endPos.x, percent, easing);\n }\n if (valid(startPos.y, endPos.y)) {\n newPos.y = ease(startPos.y, endPos.y, percent, easing);\n }\n self.position(newPos);\n }\n var startPan = ani_p.startPan;\n var endPan = ani_p.pan;\n var pan = _p.pan;\n var animatingPan = endPan != null && isCore;\n if (animatingPan) {\n if (valid(startPan.x, endPan.x)) {\n pan.x = ease(startPan.x, endPan.x, percent, easing);\n }\n if (valid(startPan.y, endPan.y)) {\n pan.y = ease(startPan.y, endPan.y, percent, easing);\n }\n self.emit('pan');\n }\n var startZoom = ani_p.startZoom;\n var endZoom = ani_p.zoom;\n var animatingZoom = endZoom != null && isCore;\n if (animatingZoom) {\n if (valid(startZoom, endZoom)) {\n _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);\n }\n self.emit('zoom');\n }\n if (animatingPan || animatingZoom) {\n self.emit('viewport');\n }\n var props = ani_p.style;\n if (props && props.length > 0 && isEles) {\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var _name = prop.name;\n var end = prop;\n var start = ani_p.startStyle[_name];\n var propSpec = style.properties[start.name];\n var easedVal = ease(start, end, percent, easing, propSpec);\n style.overrideBypass(self, _name, easedVal);\n } // for props\n\n self.emit('style');\n } // if\n }\n\n ani_p.progress = percent;\n return percent;\n }\n function valid(start, end) {\n if (start == null || end == null) {\n return false;\n }\n if (number$1(start) && number$1(end)) {\n return true;\n } else if (start && end) {\n return true;\n }\n return false;\n }\n\n function startAnimation(self, ani, now, isCore) {\n var ani_p = ani._private;\n ani_p.started = true;\n ani_p.startTime = now - ani_p.progress * ani_p.duration;\n }\n\n function stepAll(now, cy) {\n var eles = cy._private.aniEles;\n var doneEles = [];\n function stepOne(ele, isCore) {\n var _p = ele._private;\n var current = _p.animation.current;\n var queue = _p.animation.queue;\n var ranAnis = false;\n\n // if nothing currently animating, get something from the queue\n if (current.length === 0) {\n var next = queue.shift();\n if (next) {\n current.push(next);\n }\n }\n var callbacks = function callbacks(_callbacks) {\n for (var j = _callbacks.length - 1; j >= 0; j--) {\n var cb = _callbacks[j];\n cb();\n }\n _callbacks.splice(0, _callbacks.length);\n };\n\n // step and remove if done\n for (var i = current.length - 1; i >= 0; i--) {\n var ani = current[i];\n var ani_p = ani._private;\n if (ani_p.stopped) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.frames);\n continue;\n }\n if (!ani_p.playing && !ani_p.applying) {\n continue;\n }\n\n // an apply() while playing shouldn't do anything\n if (ani_p.playing && ani_p.applying) {\n ani_p.applying = false;\n }\n if (!ani_p.started) {\n startAnimation(ele, ani, now);\n }\n step$1(ele, ani, now, isCore);\n if (ani_p.applying) {\n ani_p.applying = false;\n }\n callbacks(ani_p.frames);\n if (ani_p.step != null) {\n ani_p.step(now);\n }\n if (ani.completed()) {\n current.splice(i, 1);\n ani_p.hooked = false;\n ani_p.playing = false;\n ani_p.started = false;\n callbacks(ani_p.completes);\n }\n ranAnis = true;\n }\n if (!isCore && current.length === 0 && queue.length === 0) {\n doneEles.push(ele);\n }\n return ranAnis;\n } // stepElement\n\n // handle all eles\n var ranEleAni = false;\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n var handledThisEle = stepOne(ele);\n ranEleAni = ranEleAni || handledThisEle;\n } // each element\n\n var ranCoreAni = stepOne(cy, true);\n\n // notify renderer\n if (ranEleAni || ranCoreAni) {\n if (eles.length > 0) {\n cy.notify('draw', eles);\n } else {\n cy.notify('draw');\n }\n }\n\n // remove elements from list of currently animating if its queues are empty\n eles.unmerge(doneEles);\n cy.emit('step');\n } // stepAll\n\n var corefn$8 = {\n // pull in animation functions\n animate: define.animate(),\n animation: define.animation(),\n animated: define.animated(),\n clearQueue: define.clearQueue(),\n delay: define.delay(),\n delayAnimation: define.delayAnimation(),\n stop: define.stop(),\n addToAnimationPool: function addToAnimationPool(eles) {\n var cy = this;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n cy._private.aniEles.merge(eles);\n },\n stopAnimationLoop: function stopAnimationLoop() {\n this._private.animationsRunning = false;\n },\n startAnimationLoop: function startAnimationLoop() {\n var cy = this;\n cy._private.animationsRunning = true;\n if (!cy.styleEnabled()) {\n return;\n } // save cycles when no style used\n\n // NB the animation loop will exec in headless environments if style enabled\n // and explicit cy.destroy() is necessary to stop the loop\n\n function headlessStep() {\n if (!cy._private.animationsRunning) {\n return;\n }\n requestAnimationFrame(function animationStep(now) {\n stepAll(now, cy);\n headlessStep();\n });\n }\n var renderer = cy.renderer();\n if (renderer && renderer.beforeRender) {\n // let the renderer schedule animations\n renderer.beforeRender(function rendererAnimationStep(willDraw, now) {\n stepAll(now, cy);\n }, renderer.beforeRenderPriorities.animations);\n } else {\n // manage the animation loop ourselves\n headlessStep(); // first call\n }\n }\n };\n\n var emitterOptions = {\n qualifierCompare: function qualifierCompare(selector1, selector2) {\n if (selector1 == null || selector2 == null) {\n return selector1 == null && selector2 == null;\n } else {\n return selector1.sameText(selector2);\n }\n },\n eventMatches: function eventMatches(cy, listener, eventObj) {\n var selector = listener.qualifier;\n if (selector != null) {\n return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target);\n }\n return true;\n },\n addEventFields: function addEventFields(cy, evt) {\n evt.cy = cy;\n evt.target = cy;\n },\n callbackContext: function callbackContext(cy, listener, eventObj) {\n return listener.qualifier != null ? eventObj.target : cy;\n }\n };\n var argSelector = function argSelector(arg) {\n if (string(arg)) {\n return new Selector(arg);\n } else {\n return arg;\n }\n };\n var elesfn = {\n createEmitter: function createEmitter() {\n var _p = this._private;\n if (!_p.emitter) {\n _p.emitter = new Emitter(emitterOptions, this);\n }\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(events, selector, callback) {\n this.emitter().on(events, argSelector(selector), callback);\n return this;\n },\n removeListener: function removeListener(events, selector, callback) {\n this.emitter().removeListener(events, argSelector(selector), callback);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n one: function one(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n once: function once(events, selector, callback) {\n this.emitter().one(events, argSelector(selector), callback);\n return this;\n },\n emit: function emit(events, extraParams) {\n this.emitter().emit(events, extraParams);\n return this;\n },\n emitAndNotify: function emitAndNotify(event, eles) {\n this.emit(event);\n this.notify(event, eles);\n return this;\n }\n };\n define.eventAliasesOn(elesfn);\n\n var corefn$7 = {\n png: function png(options) {\n var renderer = this._private.renderer;\n options = options || {};\n return renderer.png(options);\n },\n jpg: function jpg(options) {\n var renderer = this._private.renderer;\n options = options || {};\n options.bg = options.bg || '#fff';\n return renderer.jpg(options);\n }\n };\n corefn$7.jpeg = corefn$7.jpg;\n\n var corefn$6 = {\n layout: function layout(options) {\n var cy = this;\n if (options == null) {\n error('Layout options must be specified to make a layout');\n return;\n }\n if (options.name == null) {\n error('A `name` must be specified to make a layout');\n return;\n }\n var name = options.name;\n var Layout = cy.extension('layout', name);\n if (Layout == null) {\n error('No such layout `' + name + '` found. Did you forget to import it and `cytoscape.use()` it?');\n return;\n }\n var eles;\n if (string(options.eles)) {\n eles = cy.$(options.eles);\n } else {\n eles = options.eles != null ? options.eles : cy.$();\n }\n var layout = new Layout(extend({}, options, {\n cy: cy,\n eles: eles\n }));\n return layout;\n }\n };\n corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;\n\n var corefn$5 = {\n notify: function notify(eventName, eventEles) {\n var _p = this._private;\n if (this.batching()) {\n _p.batchNotifications = _p.batchNotifications || {};\n var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();\n if (eventEles != null) {\n eles.merge(eventEles);\n }\n return; // notifications are disabled during batching\n }\n\n if (!_p.notificationsEnabled) {\n return;\n } // exit on disabled\n\n var renderer = this.renderer();\n\n // exit if destroy() called on core or renderer in between frames #1499 #1528\n if (this.destroyed() || !renderer) {\n return;\n }\n renderer.notify(eventName, eventEles);\n },\n notifications: function notifications(bool) {\n var p = this._private;\n if (bool === undefined) {\n return p.notificationsEnabled;\n } else {\n p.notificationsEnabled = bool ? true : false;\n }\n return this;\n },\n noNotifications: function noNotifications(callback) {\n this.notifications(false);\n callback();\n this.notifications(true);\n },\n batching: function batching() {\n return this._private.batchCount > 0;\n },\n startBatch: function startBatch() {\n var _p = this._private;\n if (_p.batchCount == null) {\n _p.batchCount = 0;\n }\n if (_p.batchCount === 0) {\n _p.batchStyleEles = this.collection();\n _p.batchNotifications = {};\n }\n _p.batchCount++;\n return this;\n },\n endBatch: function endBatch() {\n var _p = this._private;\n if (_p.batchCount === 0) {\n return this;\n }\n _p.batchCount--;\n if (_p.batchCount === 0) {\n // update style for dirty eles\n _p.batchStyleEles.updateStyle();\n var renderer = this.renderer();\n\n // notify the renderer of queued eles and event types\n Object.keys(_p.batchNotifications).forEach(function (eventName) {\n var eles = _p.batchNotifications[eventName];\n if (eles.empty()) {\n renderer.notify(eventName);\n } else {\n renderer.notify(eventName, eles);\n }\n });\n }\n return this;\n },\n batch: function batch(callback) {\n this.startBatch();\n callback();\n this.endBatch();\n return this;\n },\n // for backwards compatibility\n batchData: function batchData(map) {\n var cy = this;\n return this.batch(function () {\n var ids = Object.keys(map);\n for (var i = 0; i < ids.length; i++) {\n var id = ids[i];\n var data = map[id];\n var ele = cy.getElementById(id);\n ele.data(data);\n }\n });\n }\n };\n\n var rendererDefaults = defaults$g({\n hideEdgesOnViewport: false,\n textureOnViewport: false,\n motionBlur: false,\n motionBlurOpacity: 0.05,\n pixelRatio: undefined,\n desktopTapThreshold: 4,\n touchTapThreshold: 8,\n wheelSensitivity: 1,\n debug: false,\n showFps: false\n });\n var corefn$4 = {\n renderTo: function renderTo(context, zoom, pan, pxRatio) {\n var r = this._private.renderer;\n r.renderTo(context, zoom, pan, pxRatio);\n return this;\n },\n renderer: function renderer() {\n return this._private.renderer;\n },\n forceRender: function forceRender() {\n this.notify('draw');\n return this;\n },\n resize: function resize() {\n this.invalidateSize();\n this.emitAndNotify('resize');\n return this;\n },\n initRenderer: function initRenderer(options) {\n var cy = this;\n var RendererProto = cy.extension('renderer', options.name);\n if (RendererProto == null) {\n error(\"Can not initialise: No such renderer `\".concat(options.name, \"` found. Did you forget to import it and `cytoscape.use()` it?\"));\n return;\n }\n if (options.wheelSensitivity !== undefined) {\n warn(\"You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.\");\n }\n var rOpts = rendererDefaults(options);\n rOpts.cy = cy;\n cy._private.renderer = new RendererProto(rOpts);\n this.notify('init');\n },\n destroyRenderer: function destroyRenderer() {\n var cy = this;\n cy.notify('destroy'); // destroy the renderer\n\n var domEle = cy.container();\n if (domEle) {\n domEle._cyreg = null;\n while (domEle.childNodes.length > 0) {\n domEle.removeChild(domEle.childNodes[0]);\n }\n }\n cy._private.renderer = null; // to be extra safe, remove the ref\n cy.mutableElements().forEach(function (ele) {\n var _p = ele._private;\n _p.rscratch = {};\n _p.rstyle = {};\n _p.animation.current = [];\n _p.animation.queue = [];\n });\n },\n onRender: function onRender(fn) {\n return this.on('render', fn);\n },\n offRender: function offRender(fn) {\n return this.off('render', fn);\n }\n };\n corefn$4.invalidateDimensions = corefn$4.resize;\n\n var corefn$3 = {\n // get a collection\n // - empty collection on no args\n // - collection of elements in the graph on selector arg\n // - guarantee a returned collection when elements or collection specified\n collection: function collection(eles, opts) {\n if (string(eles)) {\n return this.$(eles);\n } else if (elementOrCollection(eles)) {\n return eles.collection();\n } else if (array(eles)) {\n if (!opts) {\n opts = {};\n }\n return new Collection(this, eles, opts.unique, opts.removed);\n }\n return new Collection(this);\n },\n nodes: function nodes(selector) {\n var nodes = this.$(function (ele) {\n return ele.isNode();\n });\n if (selector) {\n return nodes.filter(selector);\n }\n return nodes;\n },\n edges: function edges(selector) {\n var edges = this.$(function (ele) {\n return ele.isEdge();\n });\n if (selector) {\n return edges.filter(selector);\n }\n return edges;\n },\n // search the graph like jQuery\n $: function $(selector) {\n var eles = this._private.elements;\n if (selector) {\n return eles.filter(selector);\n } else {\n return eles.spawnSelf();\n }\n },\n mutableElements: function mutableElements() {\n return this._private.elements;\n }\n };\n\n // aliases\n corefn$3.elements = corefn$3.filter = corefn$3.$;\n\n var styfn$8 = {};\n\n // keys for style blocks, e.g. ttfftt\n var TRUE = 't';\n var FALSE = 'f';\n\n // (potentially expensive calculation)\n // apply the style to the element based on\n // - its bypass\n // - what selectors match it\n styfn$8.apply = function (eles) {\n var self = this;\n var _p = self._private;\n var cy = _p.cy;\n var updatedEles = cy.collection();\n for (var ie = 0; ie < eles.length; ie++) {\n var ele = eles[ie];\n var cxtMeta = self.getContextMeta(ele);\n if (cxtMeta.empty) {\n continue;\n }\n var cxtStyle = self.getContextStyle(cxtMeta);\n var app = self.applyContextStyle(cxtMeta, cxtStyle, ele);\n if (ele._private.appliedInitStyle) {\n self.updateTransitions(ele, app.diffProps);\n } else {\n ele._private.appliedInitStyle = true;\n }\n var hintsDiff = self.updateStyleHints(ele);\n if (hintsDiff) {\n updatedEles.push(ele);\n }\n } // for elements\n\n return updatedEles;\n };\n styfn$8.getPropertiesDiff = function (oldCxtKey, newCxtKey) {\n var self = this;\n var cache = self._private.propDiffs = self._private.propDiffs || {};\n var dualCxtKey = oldCxtKey + '-' + newCxtKey;\n var cachedVal = cache[dualCxtKey];\n if (cachedVal) {\n return cachedVal;\n }\n var diffProps = [];\n var addedProp = {};\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var oldHasCxt = oldCxtKey[i] === TRUE;\n var newHasCxt = newCxtKey[i] === TRUE;\n var cxtHasDiffed = oldHasCxt !== newHasCxt;\n var cxtHasMappedProps = cxt.mappedProperties.length > 0;\n if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {\n var props = void 0;\n if (cxtHasDiffed && cxtHasMappedProps) {\n props = cxt.properties; // suffices b/c mappedProperties is a subset of properties\n } else if (cxtHasDiffed) {\n props = cxt.properties; // need to check them all\n } else if (cxtHasMappedProps) {\n props = cxt.mappedProperties; // only need to check mapped\n }\n\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n var name = prop.name;\n\n // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter\n // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result\n // is cached)\n var laterCxtOverrides = false;\n for (var k = i + 1; k < self.length; k++) {\n var laterCxt = self[k];\n var hasLaterCxt = newCxtKey[k] === TRUE;\n if (!hasLaterCxt) {\n continue;\n } // can't override unless the context is active\n\n laterCxtOverrides = laterCxt.properties[prop.name] != null;\n if (laterCxtOverrides) {\n break;\n } // exit early as long as one later context overrides\n }\n\n if (!addedProp[name] && !laterCxtOverrides) {\n addedProp[name] = true;\n diffProps.push(name);\n }\n } // for props\n } // if\n } // for contexts\n\n cache[dualCxtKey] = diffProps;\n return diffProps;\n };\n styfn$8.getContextMeta = function (ele) {\n var self = this;\n var cxtKey = '';\n var diffProps;\n var prevKey = ele._private.styleCxtKey || '';\n\n // get the cxt key\n for (var i = 0; i < self.length; i++) {\n var context = self[i];\n var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core'\n\n if (contextSelectorMatches) {\n cxtKey += TRUE;\n } else {\n cxtKey += FALSE;\n }\n } // for context\n\n diffProps = self.getPropertiesDiff(prevKey, cxtKey);\n ele._private.styleCxtKey = cxtKey;\n return {\n key: cxtKey,\n diffPropNames: diffProps,\n empty: diffProps.length === 0\n };\n };\n\n // gets a computed ele style object based on matched contexts\n styfn$8.getContextStyle = function (cxtMeta) {\n var cxtKey = cxtMeta.key;\n var self = this;\n var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};\n\n // if already computed style, returned cached copy\n if (cxtStyles[cxtKey]) {\n return cxtStyles[cxtKey];\n }\n var style = {\n _private: {\n key: cxtKey\n }\n };\n for (var i = 0; i < self.length; i++) {\n var cxt = self[i];\n var hasCxt = cxtKey[i] === TRUE;\n if (!hasCxt) {\n continue;\n }\n for (var j = 0; j < cxt.properties.length; j++) {\n var prop = cxt.properties[j];\n style[prop.name] = prop;\n }\n }\n cxtStyles[cxtKey] = style;\n return style;\n };\n styfn$8.applyContextStyle = function (cxtMeta, cxtStyle, ele) {\n var self = this;\n var diffProps = cxtMeta.diffPropNames;\n var retDiffProps = {};\n var types = self.types;\n for (var i = 0; i < diffProps.length; i++) {\n var diffPropName = diffProps[i];\n var cxtProp = cxtStyle[diffPropName];\n var eleProp = ele.pstyle(diffPropName);\n if (!cxtProp) {\n // no context prop means delete\n if (!eleProp) {\n continue; // no existing prop means nothing needs to be removed\n // nb affects initial application on mapped values like control-point-distances\n } else if (eleProp.bypass) {\n cxtProp = {\n name: diffPropName,\n deleteBypassed: true\n };\n } else {\n cxtProp = {\n name: diffPropName,\n \"delete\": true\n };\n }\n }\n\n // save cycles when the context prop doesn't need to be applied\n if (eleProp === cxtProp) {\n continue;\n }\n\n // save cycles when a mapped context prop doesn't need to be applied\n if (cxtProp.mapped === types.fn // context prop is function mapper\n && eleProp != null // some props can be null even by default (e.g. a prop that overrides another one)\n && eleProp.mapping != null // ele prop is a concrete value from from a mapper\n && eleProp.mapping.value === cxtProp.value // the current prop on the ele is a flat prop value for the function mapper\n ) {\n // NB don't write to cxtProp, as it's shared among eles (stored in stylesheet)\n var mapping = eleProp.mapping; // can write to mapping, as it's a per-ele copy\n var fnValue = mapping.fnValue = cxtProp.value(ele); // temporarily cache the value in case of a miss\n\n if (fnValue === mapping.prevFnValue) {\n continue;\n }\n }\n var retDiffProp = retDiffProps[diffPropName] = {\n prev: eleProp\n };\n self.applyParsedProperty(ele, cxtProp);\n retDiffProp.next = ele.pstyle(diffPropName);\n if (retDiffProp.next && retDiffProp.next.bypass) {\n retDiffProp.next = retDiffProp.next.bypassed;\n }\n }\n return {\n diffProps: retDiffProps\n };\n };\n styfn$8.updateStyleHints = function (ele) {\n var _p = ele._private;\n var self = this;\n var propNames = self.propertyGroupNames;\n var propGrKeys = self.propertyGroupKeys;\n var propHash = function propHash(ele, propNames, seedKey) {\n return self.getPropertiesHash(ele, propNames, seedKey);\n };\n var oldStyleKey = _p.styleKey;\n if (ele.removed()) {\n return false;\n }\n var isNode = _p.group === 'nodes';\n\n // get the style key hashes per prop group\n // but lazily -- only use non-default prop values to reduce the number of hashes\n //\n\n var overriddenStyles = ele._private.style;\n propNames = Object.keys(overriddenStyles);\n for (var i = 0; i < propGrKeys.length; i++) {\n var grKey = propGrKeys[i];\n _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n }\n var updateGrKey1 = function updateGrKey1(val, grKey) {\n return _p.styleKeys[grKey][0] = hashInt(val, _p.styleKeys[grKey][0]);\n };\n var updateGrKey2 = function updateGrKey2(val, grKey) {\n return _p.styleKeys[grKey][1] = hashIntAlt(val, _p.styleKeys[grKey][1]);\n };\n var updateGrKey = function updateGrKey(val, grKey) {\n updateGrKey1(val, grKey);\n updateGrKey2(val, grKey);\n };\n var updateGrKeyWStr = function updateGrKeyWStr(strVal, grKey) {\n for (var j = 0; j < strVal.length; j++) {\n var ch = strVal.charCodeAt(j);\n updateGrKey1(ch, grKey);\n updateGrKey2(ch, grKey);\n }\n };\n\n // - hashing works on 32 bit ints b/c we use bitwise ops\n // - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function)\n // - raise up small numbers so more significant digits are seen by hashing\n // - make small numbers larger than a normal value to avoid collisions\n // - works in practice and it's relatively cheap\n var N = 2000000000;\n var cleanNum = function cleanNum(val) {\n return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;\n };\n for (var _i = 0; _i < propNames.length; _i++) {\n var name = propNames[_i];\n var parsedProp = overriddenStyles[name];\n if (parsedProp == null) {\n continue;\n }\n var propInfo = this.properties[name];\n var type = propInfo.type;\n var _grKey = propInfo.groupKey;\n var normalizedNumberVal = void 0;\n if (propInfo.hashOverride != null) {\n normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);\n } else if (parsedProp.pfValue != null) {\n normalizedNumberVal = parsedProp.pfValue;\n }\n\n // might not be a number if it allows enums\n var numberVal = propInfo.enums == null ? parsedProp.value : null;\n var haveNormNum = normalizedNumberVal != null;\n var haveUnitedNum = numberVal != null;\n var haveNum = haveNormNum || haveUnitedNum;\n var units = parsedProp.units;\n\n // numbers are cheaper to hash than strings\n // 1 hash op vs n hash ops (for length n string)\n if (type.number && haveNum && !type.multiple) {\n var v = haveNormNum ? normalizedNumberVal : numberVal;\n updateGrKey(cleanNum(v), _grKey);\n if (!haveNormNum && units != null) {\n updateGrKeyWStr(units, _grKey);\n }\n } else {\n updateGrKeyWStr(parsedProp.strValue, _grKey);\n }\n }\n\n // overall style key\n //\n\n var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];\n for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {\n var _grKey2 = propGrKeys[_i2];\n var grHash = _p.styleKeys[_grKey2];\n hash[0] = hashInt(grHash[0], hash[0]);\n hash[1] = hashIntAlt(grHash[1], hash[1]);\n }\n _p.styleKey = combineHashes(hash[0], hash[1]);\n\n // label dims\n //\n\n var sk = _p.styleKeys;\n _p.labelDimsKey = combineHashesArray(sk.labelDimensions);\n var labelKeys = propHash(ele, ['label'], sk.labelDimensions);\n _p.labelKey = combineHashesArray(labelKeys);\n _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));\n if (!isNode) {\n var sourceLabelKeys = propHash(ele, ['source-label'], sk.labelDimensions);\n _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);\n _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));\n var targetLabelKeys = propHash(ele, ['target-label'], sk.labelDimensions);\n _p.targetLabelKey = combineHashesArray(targetLabelKeys);\n _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));\n }\n\n // node\n //\n\n if (isNode) {\n var _p$styleKeys = _p.styleKeys,\n nodeBody = _p$styleKeys.nodeBody,\n nodeBorder = _p$styleKeys.nodeBorder,\n nodeOutline = _p$styleKeys.nodeOutline,\n backgroundImage = _p$styleKeys.backgroundImage,\n compound = _p$styleKeys.compound,\n pie = _p$styleKeys.pie;\n var nodeKeys = [nodeBody, nodeBorder, nodeOutline, backgroundImage, compound, pie].filter(function (k) {\n return k != null;\n }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);\n _p.nodeKey = combineHashesArray(nodeKeys);\n _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT;\n }\n return oldStyleKey !== _p.styleKey;\n };\n styfn$8.clearStyleHints = function (ele) {\n var _p = ele._private;\n _p.styleCxtKey = '';\n _p.styleKeys = {};\n _p.styleKey = null;\n _p.labelKey = null;\n _p.labelStyleKey = null;\n _p.sourceLabelKey = null;\n _p.sourceLabelStyleKey = null;\n _p.targetLabelKey = null;\n _p.targetLabelStyleKey = null;\n _p.nodeKey = null;\n _p.hasPie = null;\n };\n\n // apply a property to the style (for internal use)\n // returns whether application was successful\n //\n // now, this function flattens the property, and here's how:\n //\n // for parsedProp:{ bypass: true, deleteBypass: true }\n // no property is generated, instead the bypass property in the\n // element's style is replaced by what's pointed to by the `bypassed`\n // field in the bypass property (i.e. restoring the property the\n // bypass was overriding)\n //\n // for parsedProp:{ mapped: truthy }\n // the generated flattenedProp:{ mapping: prop }\n //\n // for parsedProp:{ bypass: true }\n // the generated flattenedProp:{ bypassed: parsedProp }\n styfn$8.applyParsedProperty = function (ele, parsedProp) {\n var self = this;\n var prop = parsedProp;\n var style = ele._private.style;\n var flatProp;\n var types = self.types;\n var type = self.properties[prop.name].type;\n var propIsBypass = prop.bypass;\n var origProp = style[prop.name];\n var origPropIsBypass = origProp && origProp.bypass;\n var _p = ele._private;\n var flatPropMapping = 'mapping';\n var getVal = function getVal(p) {\n if (p == null) {\n return null;\n } else if (p.pfValue != null) {\n return p.pfValue;\n } else {\n return p.value;\n }\n };\n var checkTriggers = function checkTriggers() {\n var fromVal = getVal(origProp);\n var toVal = getVal(prop);\n self.checkTriggers(ele, prop.name, fromVal, toVal);\n };\n\n // edge sanity checks to prevent the client from making serious mistakes\n if (parsedProp.name === 'curve-style' && ele.isEdge() && (\n // loops must be bundled beziers\n parsedProp.value !== 'bezier' && ele.isLoop() ||\n // edges connected to compound nodes can not be haystacks\n parsedProp.value === 'haystack' && (ele.source().isParent() || ele.target().isParent()))) {\n prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass);\n }\n if (prop[\"delete\"]) {\n // delete the property and use the default value on falsey value\n style[prop.name] = undefined;\n checkTriggers();\n return true;\n }\n if (prop.deleteBypassed) {\n // delete the property that the\n if (!origProp) {\n checkTriggers();\n return true; // can't delete if no prop\n } else if (origProp.bypass) {\n // delete bypassed\n origProp.bypassed = undefined;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypassed\n }\n }\n\n // check if we need to delete the current bypass\n if (prop.deleteBypass) {\n // then this property is just here to indicate we need to delete\n if (!origProp) {\n checkTriggers();\n return true; // property is already not defined\n } else if (origProp.bypass) {\n // then replace the bypass property with the original\n // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary)\n style[prop.name] = origProp.bypassed;\n checkTriggers();\n return true;\n } else {\n return false; // we're unsuccessful deleting the bypass\n }\n }\n\n var printMappingErr = function printMappingErr() {\n warn('Do not assign mappings to elements without corresponding data (i.e. ele `' + ele.id() + '` has no mapping for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined');\n };\n\n // put the property in the style objects\n switch (prop.mapped) {\n // flatten the property if mapped\n case types.mapData:\n {\n // flatten the field (e.g. data.foo.bar)\n var fields = prop.field.split('.');\n var fieldVal = _p.data;\n for (var i = 0; i < fields.length && fieldVal; i++) {\n var field = fields[i];\n fieldVal = fieldVal[field];\n }\n if (fieldVal == null) {\n printMappingErr();\n return false;\n }\n var percent;\n if (!number$1(fieldVal)) {\n // then don't apply and fall back on the existing style\n warn('Do not use continuous mappers without specifying numeric data (i.e. `' + prop.field + ': ' + fieldVal + '` for `' + ele.id() + '` is non-numeric)');\n return false;\n } else {\n var fieldWidth = prop.fieldMax - prop.fieldMin;\n if (fieldWidth === 0) {\n // safety check -- not strictly necessary as no props of zero range should be passed here\n percent = 0;\n } else {\n percent = (fieldVal - prop.fieldMin) / fieldWidth;\n }\n }\n\n // make sure to bound percent value\n if (percent < 0) {\n percent = 0;\n } else if (percent > 1) {\n percent = 1;\n }\n if (type.color) {\n var r1 = prop.valueMin[0];\n var r2 = prop.valueMax[0];\n var g1 = prop.valueMin[1];\n var g2 = prop.valueMax[1];\n var b1 = prop.valueMin[2];\n var b2 = prop.valueMax[2];\n var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];\n var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];\n var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];\n flatProp = {\n // colours are simple, so just create the flat property instead of expensive string parsing\n bypass: prop.bypass,\n // we're a bypass if the mapping property is a bypass\n name: prop.name,\n value: clr,\n strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')'\n };\n } else if (type.number) {\n var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;\n flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);\n } else {\n return false; // can only map to colours and numbers\n }\n\n if (!flatProp) {\n // if we can't flatten the property, then don't apply the property and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n\n // direct mapping\n case types.data:\n {\n // flatten the field (e.g. data.foo.bar)\n var _fields = prop.field.split('.');\n var _fieldVal = _p.data;\n for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {\n var _field = _fields[_i3];\n _fieldVal = _fieldVal[_field];\n }\n if (_fieldVal != null) {\n flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);\n }\n if (!flatProp) {\n // if we can't flatten the property, then don't apply and fall back on the existing style\n printMappingErr();\n return false;\n }\n flatProp.mapping = prop; // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case types.fn:\n {\n var fn = prop.value;\n var fnRetVal = prop.fnValue != null ? prop.fnValue : fn(ele); // check for cached value before calling function\n\n prop.prevFnValue = fnRetVal;\n if (fnRetVal == null) {\n warn('Custom function mappers may not return null (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is null)');\n return false;\n }\n flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);\n if (!flatProp) {\n warn('Custom function mappers may not return invalid values for the property type (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is invalid)');\n return false;\n }\n flatProp.mapping = copy(prop); // keep a reference to the mapping\n prop = flatProp; // the flattened (mapped) property is the one we want\n\n break;\n }\n case undefined:\n break;\n // just set the property\n\n default:\n return false;\n // not a valid mapping\n }\n\n // if the property is a bypass property, then link the resultant property to the original one\n if (propIsBypass) {\n if (origPropIsBypass) {\n // then this bypass overrides the existing one\n prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass\n } else {\n // then link the orig prop to the new bypass\n prop.bypassed = origProp;\n }\n style[prop.name] = prop; // and set\n } else {\n // prop is not bypass\n if (origPropIsBypass) {\n // then keep the orig prop (since it's a bypass) and link to the new prop\n origProp.bypassed = prop;\n } else {\n // then just replace the old prop with the new one\n style[prop.name] = prop;\n }\n }\n checkTriggers();\n return true;\n };\n styfn$8.cleanElements = function (eles, keepBypasses) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n this.clearStyleHints(ele);\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n if (!keepBypasses) {\n ele._private.style = {};\n } else {\n var style = ele._private.style;\n var propNames = Object.keys(style);\n for (var j = 0; j < propNames.length; j++) {\n var propName = propNames[j];\n var eleProp = style[propName];\n if (eleProp != null) {\n if (eleProp.bypass) {\n eleProp.bypassed = null;\n } else {\n style[propName] = null;\n }\n }\n }\n }\n }\n };\n\n // updates the visual style for all elements (useful for manual style modification after init)\n styfn$8.update = function () {\n var cy = this._private.cy;\n var eles = cy.mutableElements();\n eles.updateStyle();\n };\n\n // diffProps : { name => { prev, next } }\n styfn$8.updateTransitions = function (ele, diffProps) {\n var self = this;\n var _p = ele._private;\n var props = ele.pstyle('transition-property').value;\n var duration = ele.pstyle('transition-duration').pfValue;\n var delay = ele.pstyle('transition-delay').pfValue;\n if (props.length > 0 && duration > 0) {\n var style = {};\n\n // build up the style to animate towards\n var anyPrev = false;\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var styProp = ele.pstyle(prop);\n var diffProp = diffProps[prop];\n if (!diffProp) {\n continue;\n }\n var prevProp = diffProp.prev;\n var fromProp = prevProp;\n var toProp = diffProp.next != null ? diffProp.next : styProp;\n var diff = false;\n var initVal = void 0;\n var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity)\n\n if (!fromProp) {\n continue;\n }\n\n // consider px values\n if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) {\n diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy\n initVal = fromProp.pfValue + initDt * diff;\n\n // consider numerical values\n } else if (number$1(fromProp.value) && number$1(toProp.value)) {\n diff = toProp.value - fromProp.value; // nonzero is truthy\n initVal = fromProp.value + initDt * diff;\n\n // consider colour values\n } else if (array(fromProp.value) && array(toProp.value)) {\n diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];\n initVal = fromProp.strValue;\n }\n\n // the previous value is good for an animation only if it's different\n if (diff) {\n style[prop] = toProp.strValue; // to val\n this.applyBypass(ele, prop, initVal); // from val\n anyPrev = true;\n }\n } // end if props allow ani\n\n // can't transition if there's nothing previous to transition from\n if (!anyPrev) {\n return;\n }\n _p.transitioning = true;\n new Promise$1(function (resolve) {\n if (delay > 0) {\n ele.delayAnimation(delay).play().promise().then(resolve);\n } else {\n resolve();\n }\n }).then(function () {\n return ele.animation({\n style: style,\n duration: duration,\n easing: ele.pstyle('transition-timing-function').value,\n queue: false\n }).play().promise();\n }).then(function () {\n // if( !isBypass ){\n self.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n // }\n\n _p.transitioning = false;\n });\n } else if (_p.transitioning) {\n this.removeBypasses(ele, props);\n ele.emitAndNotify('style');\n _p.transitioning = false;\n }\n };\n styfn$8.checkTrigger = function (ele, name, fromValue, toValue, getTrigger, onTrigger) {\n var prop = this.properties[name];\n var triggerCheck = getTrigger(prop);\n if (triggerCheck != null && triggerCheck(fromValue, toValue)) {\n onTrigger(prop);\n }\n };\n styfn$8.checkZOrderTrigger = function (ele, name, fromValue, toValue) {\n var _this = this;\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersZOrder;\n }, function () {\n _this._private.cy.notify('zorder', ele);\n });\n };\n styfn$8.checkBoundsTrigger = function (ele, name, fromValue, toValue) {\n this.checkTrigger(ele, name, fromValue, toValue, function (prop) {\n return prop.triggersBounds;\n }, function (prop) {\n ele.dirtyCompoundBoundsCache();\n ele.dirtyBoundingBoxCache();\n\n // if the prop change makes the bb of pll bezier edges invalid,\n // then dirty the pll edge bb cache as well\n if (\n // only for beziers -- so performance of other edges isn't affected\n prop.triggersBoundsOfParallelBeziers && name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier')) {\n ele.parallelEdges().forEach(function (pllEdge) {\n if (pllEdge.isBundledBezier()) {\n pllEdge.dirtyBoundingBoxCache();\n }\n });\n }\n if (prop.triggersBoundsOfConnectedEdges && name === 'display' && (fromValue === 'none' || toValue === 'none')) {\n ele.connectedEdges().forEach(function (edge) {\n edge.dirtyBoundingBoxCache();\n });\n }\n });\n };\n styfn$8.checkTriggers = function (ele, name, fromValue, toValue) {\n ele.dirtyStyleCache();\n this.checkZOrderTrigger(ele, name, fromValue, toValue);\n this.checkBoundsTrigger(ele, name, fromValue, toValue);\n };\n\n var styfn$7 = {};\n\n // bypasses are applied to an existing style on an element, and just tacked on temporarily\n // returns true iff application was successful for at least 1 specified property\n styfn$7.applyBypass = function (eles, name, value, updateTransitions) {\n var self = this;\n var props = [];\n var isBypass = true;\n\n // put all the properties (can specify one or many) in an array after parsing them\n if (name === '*' || name === '**') {\n // apply to all property names\n\n if (value !== undefined) {\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var _name = prop.name;\n var parsedProp = this.parse(_name, value, true);\n if (parsedProp) {\n props.push(parsedProp);\n }\n }\n }\n } else if (string(name)) {\n // then parse the single property\n var _parsedProp = this.parse(name, value, true);\n if (_parsedProp) {\n props.push(_parsedProp);\n }\n } else if (plainObject(name)) {\n // then parse each property\n var specifiedProps = name;\n updateTransitions = value;\n var names = Object.keys(specifiedProps);\n for (var _i = 0; _i < names.length; _i++) {\n var _name2 = names[_i];\n var _value = specifiedProps[_name2];\n if (_value === undefined) {\n // try camel case name too\n _value = specifiedProps[dash2camel(_name2)];\n }\n if (_value !== undefined) {\n var _parsedProp2 = this.parse(_name2, _value, true);\n if (_parsedProp2) {\n props.push(_parsedProp2);\n }\n }\n }\n } else {\n // can't do anything without well defined properties\n return false;\n }\n\n // we've failed if there are no valid properties\n if (props.length === 0) {\n return false;\n }\n\n // now, apply the bypass properties on the elements\n var ret = false; // return true if at least one succesful bypass applied\n for (var _i2 = 0; _i2 < eles.length; _i2++) {\n // for each ele\n var ele = eles[_i2];\n var diffProps = {};\n var diffProp = void 0;\n for (var j = 0; j < props.length; j++) {\n // for each prop\n var _prop = props[j];\n if (updateTransitions) {\n var prevProp = ele.pstyle(_prop.name);\n diffProp = diffProps[_prop.name] = {\n prev: prevProp\n };\n }\n ret = this.applyParsedProperty(ele, copy(_prop)) || ret;\n if (updateTransitions) {\n diffProp.next = ele.pstyle(_prop.name);\n }\n } // for props\n\n if (ret) {\n this.updateStyleHints(ele);\n }\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n\n return ret;\n };\n\n // only useful in specific cases like animation\n styfn$7.overrideBypass = function (eles, name, value) {\n name = camel2dash(name);\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var prop = ele._private.style[name];\n var type = this.properties[name].type;\n var isColor = type.color;\n var isMulti = type.mutiple;\n var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;\n if (!prop || !prop.bypass) {\n // need a bypass if one doesn't exist\n this.applyBypass(ele, name, value);\n } else {\n prop.value = value;\n if (prop.pfValue != null) {\n prop.pfValue = value;\n }\n if (isColor) {\n prop.strValue = 'rgb(' + value.join(',') + ')';\n } else if (isMulti) {\n prop.strValue = value.join(' ');\n } else {\n prop.strValue = '' + value;\n }\n this.updateStyleHints(ele);\n }\n this.checkTriggers(ele, name, oldValue, value);\n }\n };\n styfn$7.removeAllBypasses = function (eles, updateTransitions) {\n return this.removeBypasses(eles, this.propertyNames, updateTransitions);\n };\n styfn$7.removeBypasses = function (eles, props, updateTransitions) {\n var isBypass = true;\n for (var j = 0; j < eles.length; j++) {\n var ele = eles[j];\n var diffProps = {};\n for (var i = 0; i < props.length; i++) {\n var name = props[i];\n var prop = this.properties[name];\n var prevProp = ele.pstyle(prop.name);\n if (!prevProp || !prevProp.bypass) {\n // if a bypass doesn't exist for the prop, nothing needs to be removed\n continue;\n }\n var value = ''; // empty => remove bypass\n var parsedProp = this.parse(name, value, true);\n var diffProp = diffProps[prop.name] = {\n prev: prevProp\n };\n this.applyParsedProperty(ele, parsedProp);\n diffProp.next = ele.pstyle(prop.name);\n } // for props\n\n this.updateStyleHints(ele);\n if (updateTransitions) {\n this.updateTransitions(ele, diffProps, isBypass);\n }\n } // for eles\n };\n\n var styfn$6 = {};\n\n // gets what an em size corresponds to in pixels relative to a dom element\n styfn$6.getEmSizeInPixels = function () {\n var px = this.containerCss('font-size');\n if (px != null) {\n return parseFloat(px);\n } else {\n return 1; // for headless\n }\n };\n\n // gets css property from the core container\n styfn$6.containerCss = function (propName) {\n var cy = this._private.cy;\n var domElement = cy.container();\n var containerWindow = cy.window();\n if (containerWindow && domElement && containerWindow.getComputedStyle) {\n return containerWindow.getComputedStyle(domElement).getPropertyValue(propName);\n }\n };\n\n var styfn$5 = {};\n\n // gets the rendered style for an element\n styfn$5.getRenderedStyle = function (ele, prop) {\n if (prop) {\n return this.getStylePropertyValue(ele, prop, true);\n } else {\n return this.getRawStyle(ele, true);\n }\n };\n\n // gets the raw style for an element\n styfn$5.getRawStyle = function (ele, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var rstyle = {};\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal);\n if (val != null) {\n rstyle[prop.name] = val;\n rstyle[dash2camel(prop.name)] = val;\n }\n }\n return rstyle;\n }\n };\n styfn$5.getIndexedStyle = function (ele, property, subproperty, index) {\n var pstyle = ele.pstyle(property)[subproperty][index];\n return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0];\n };\n styfn$5.getStylePropertyValue = function (ele, propName, isRenderedVal) {\n var self = this;\n ele = ele[0]; // insure it's an element\n\n if (ele) {\n var prop = self.properties[propName];\n if (prop.alias) {\n prop = prop.pointsTo;\n }\n var type = prop.type;\n var styleProp = ele.pstyle(prop.name);\n if (styleProp) {\n var value = styleProp.value,\n units = styleProp.units,\n strValue = styleProp.strValue;\n if (isRenderedVal && type.number && value != null && number$1(value)) {\n var zoom = ele.cy().zoom();\n var getRenderedValue = function getRenderedValue(val) {\n return val * zoom;\n };\n var getValueStringWithUnits = function getValueStringWithUnits(val, units) {\n return getRenderedValue(val) + units;\n };\n var isArrayValue = array(value);\n var haveUnits = isArrayValue ? units.every(function (u) {\n return u != null;\n }) : units != null;\n if (haveUnits) {\n if (isArrayValue) {\n return value.map(function (v, i) {\n return getValueStringWithUnits(v, units[i]);\n }).join(' ');\n } else {\n return getValueStringWithUnits(value, units);\n }\n } else {\n if (isArrayValue) {\n return value.map(function (v) {\n return string(v) ? v : '' + getRenderedValue(v);\n }).join(' ');\n } else {\n return '' + getRenderedValue(value);\n }\n }\n } else if (strValue != null) {\n return strValue;\n }\n }\n return null;\n }\n };\n styfn$5.getAnimationStartStyle = function (ele, aniProps) {\n var rstyle = {};\n for (var i = 0; i < aniProps.length; i++) {\n var aniProp = aniProps[i];\n var name = aniProp.name;\n var styleProp = ele.pstyle(name);\n if (styleProp !== undefined) {\n // then make a prop of it\n if (plainObject(styleProp)) {\n styleProp = this.parse(name, styleProp.strValue);\n } else {\n styleProp = this.parse(name, styleProp);\n }\n }\n if (styleProp) {\n rstyle[name] = styleProp;\n }\n }\n return rstyle;\n };\n styfn$5.getPropsList = function (propsObj) {\n var self = this;\n var rstyle = [];\n var style = propsObj;\n var props = self.properties;\n if (style) {\n var names = Object.keys(style);\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n var val = style[name];\n var prop = props[name] || props[camel2dash(name)];\n var styleProp = this.parse(prop.name, val);\n if (styleProp) {\n rstyle.push(styleProp);\n }\n }\n }\n return rstyle;\n };\n styfn$5.getNonDefaultPropertiesHash = function (ele, propNames, seed) {\n var hash = seed.slice();\n var name, val, strVal, chVal;\n var i, j;\n for (i = 0; i < propNames.length; i++) {\n name = propNames[i];\n val = ele.pstyle(name, false);\n if (val == null) {\n continue;\n } else if (val.pfValue != null) {\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n } else {\n strVal = val.strValue;\n for (j = 0; j < strVal.length; j++) {\n chVal = strVal.charCodeAt(j);\n hash[0] = hashInt(chVal, hash[0]);\n hash[1] = hashIntAlt(chVal, hash[1]);\n }\n }\n }\n return hash;\n };\n styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;\n\n var styfn$4 = {};\n styfn$4.appendFromJson = function (json) {\n var style = this;\n for (var i = 0; i < json.length; i++) {\n var context = json[i];\n var selector = context.selector;\n var props = context.style || context.css;\n var names = Object.keys(props);\n style.selector(selector); // apply selector\n\n for (var j = 0; j < names.length; j++) {\n var name = names[j];\n var value = props[name];\n style.css(name, value); // apply property\n }\n }\n\n return style;\n };\n\n // accessible cy.style() function\n styfn$4.fromJson = function (json) {\n var style = this;\n style.resetToDefault();\n style.appendFromJson(json);\n return style;\n };\n\n // get json from cy.style() api\n styfn$4.json = function () {\n var json = [];\n for (var i = this.defaultLength; i < this.length; i++) {\n var cxt = this[i];\n var selector = cxt.selector;\n var props = cxt.properties;\n var css = {};\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n css[prop.name] = prop.strValue;\n }\n json.push({\n selector: !selector ? 'core' : selector.toString(),\n style: css\n });\n }\n return json;\n };\n\n var styfn$3 = {};\n styfn$3.appendFromString = function (string) {\n var self = this;\n var style = this;\n var remaining = '' + string;\n var selAndBlockStr;\n var blockRem;\n var propAndValStr;\n\n // remove comments from the style string\n remaining = remaining.replace(/[/][*](\\s|.)+?[*][/]/g, '');\n function removeSelAndBlockFromRemaining() {\n // remove the parsed selector and block from the remaining text to parse\n if (remaining.length > selAndBlockStr.length) {\n remaining = remaining.substr(selAndBlockStr.length);\n } else {\n remaining = '';\n }\n }\n function removePropAndValFromRem() {\n // remove the parsed property and value from the remaining block text to parse\n if (blockRem.length > propAndValStr.length) {\n blockRem = blockRem.substr(propAndValStr.length);\n } else {\n blockRem = '';\n }\n }\n for (;;) {\n var nothingLeftToParse = remaining.match(/^\\s*$/);\n if (nothingLeftToParse) {\n break;\n }\n var selAndBlock = remaining.match(/^\\s*((?:.|\\s)+?)\\s*\\{((?:.|\\s)+?)\\}/);\n if (!selAndBlock) {\n warn('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining);\n break;\n }\n selAndBlockStr = selAndBlock[0];\n\n // parse the selector\n var selectorStr = selAndBlock[1];\n if (selectorStr !== 'core') {\n var selector = new Selector(selectorStr);\n if (selector.invalid) {\n warn('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr);\n\n // skip this selector and block\n removeSelAndBlockFromRemaining();\n continue;\n }\n }\n\n // parse the block of properties and values\n var blockStr = selAndBlock[2];\n var invalidBlock = false;\n blockRem = blockStr;\n var props = [];\n for (;;) {\n var _nothingLeftToParse = blockRem.match(/^\\s*$/);\n if (_nothingLeftToParse) {\n break;\n }\n var propAndVal = blockRem.match(/^\\s*(.+?)\\s*:\\s*(.+?)(?:\\s*;|\\s*$)/);\n if (!propAndVal) {\n warn('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr);\n invalidBlock = true;\n break;\n }\n propAndValStr = propAndVal[0];\n var propStr = propAndVal[1];\n var valStr = propAndVal[2];\n var prop = self.properties[propStr];\n if (!prop) {\n warn('Skipping property: Invalid property name in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n var parsedProp = style.parse(propStr, valStr);\n if (!parsedProp) {\n warn('Skipping property: Invalid property definition in: ' + propAndValStr);\n\n // skip this property in the block\n removePropAndValFromRem();\n continue;\n }\n props.push({\n name: propStr,\n val: valStr\n });\n removePropAndValFromRem();\n }\n if (invalidBlock) {\n removeSelAndBlockFromRemaining();\n break;\n }\n\n // put the parsed block in the style\n style.selector(selectorStr);\n for (var i = 0; i < props.length; i++) {\n var _prop = props[i];\n style.css(_prop.name, _prop.val);\n }\n removeSelAndBlockFromRemaining();\n }\n return style;\n };\n styfn$3.fromString = function (string) {\n var style = this;\n style.resetToDefault();\n style.appendFromString(string);\n return style;\n };\n\n var styfn$2 = {};\n (function () {\n var number$1 = number;\n var rgba = rgbaNoBackRefs;\n var hsla = hslaNoBackRefs;\n var hex3$1 = hex3;\n var hex6$1 = hex6;\n var data = function data(prefix) {\n return '^' + prefix + '\\\\s*\\\\(\\\\s*([\\\\w\\\\.]+)\\\\s*\\\\)$';\n };\n var mapData = function mapData(prefix) {\n var mapArg = number$1 + '|\\\\w+|' + rgba + '|' + hsla + '|' + hex3$1 + '|' + hex6$1;\n return '^' + prefix + '\\\\s*\\\\(([\\\\w\\\\.]+)\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*\\\\,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + mapArg + ')\\\\s*\\\\,\\\\s*(' + mapArg + ')\\\\)$';\n };\n var urlRegexes = ['^url\\\\s*\\\\(\\\\s*[\\'\"]?(.+?)[\\'\"]?\\\\s*\\\\)$', '^(none)$', '^(.+)$'];\n\n // each visual style property has a type and needs to be validated according to it\n styfn$2.types = {\n time: {\n number: true,\n min: 0,\n units: 's|ms',\n implicitUnits: 'ms'\n },\n percent: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%'\n },\n percentages: {\n number: true,\n min: 0,\n max: 100,\n units: '%',\n implicitUnits: '%',\n multiple: true\n },\n zeroOneNumber: {\n number: true,\n min: 0,\n max: 1,\n unitless: true\n },\n zeroOneNumbers: {\n number: true,\n min: 0,\n max: 1,\n unitless: true,\n multiple: true\n },\n nOneOneNumber: {\n number: true,\n min: -1,\n max: 1,\n unitless: true\n },\n nonNegativeInt: {\n number: true,\n min: 0,\n integer: true,\n unitless: true\n },\n nonNegativeNumber: {\n number: true,\n min: 0,\n unitless: true\n },\n position: {\n enums: ['parent', 'origin']\n },\n nodeSize: {\n number: true,\n min: 0,\n enums: ['label']\n },\n number: {\n number: true,\n unitless: true\n },\n numbers: {\n number: true,\n unitless: true,\n multiple: true\n },\n positiveNumber: {\n number: true,\n unitless: true,\n min: 0,\n strictMin: true\n },\n size: {\n number: true,\n min: 0\n },\n bidirectionalSize: {\n number: true\n },\n // allows negative\n bidirectionalSizeMaybePercent: {\n number: true,\n allowPercent: true\n },\n // allows negative\n bidirectionalSizes: {\n number: true,\n multiple: true\n },\n // allows negative\n sizeMaybePercent: {\n number: true,\n min: 0,\n allowPercent: true\n },\n axisDirection: {\n enums: ['horizontal', 'leftward', 'rightward', 'vertical', 'upward', 'downward', 'auto']\n },\n paddingRelativeTo: {\n enums: ['width', 'height', 'average', 'min', 'max']\n },\n bgWH: {\n number: true,\n min: 0,\n allowPercent: true,\n enums: ['auto'],\n multiple: true\n },\n bgPos: {\n number: true,\n allowPercent: true,\n multiple: true\n },\n bgRelativeTo: {\n enums: ['inner', 'include-padding'],\n multiple: true\n },\n bgRepeat: {\n enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'],\n multiple: true\n },\n bgFit: {\n enums: ['none', 'contain', 'cover'],\n multiple: true\n },\n bgCrossOrigin: {\n enums: ['anonymous', 'use-credentials', 'null'],\n multiple: true\n },\n bgClip: {\n enums: ['none', 'node'],\n multiple: true\n },\n bgContainment: {\n enums: ['inside', 'over'],\n multiple: true\n },\n color: {\n color: true\n },\n colors: {\n color: true,\n multiple: true\n },\n fill: {\n enums: ['solid', 'linear-gradient', 'radial-gradient']\n },\n bool: {\n enums: ['yes', 'no']\n },\n bools: {\n enums: ['yes', 'no'],\n multiple: true\n },\n lineStyle: {\n enums: ['solid', 'dotted', 'dashed']\n },\n lineCap: {\n enums: ['butt', 'round', 'square']\n },\n borderStyle: {\n enums: ['solid', 'dotted', 'dashed', 'double']\n },\n curveStyle: {\n enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments', 'straight', 'straight-triangle', 'taxi']\n },\n fontFamily: {\n regex: '^([\\\\w- \\\\\"]+(?:\\\\s*,\\\\s*[\\\\w- \\\\\"]+)*)$'\n },\n fontStyle: {\n enums: ['italic', 'normal', 'oblique']\n },\n fontWeight: {\n enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900]\n },\n textDecoration: {\n enums: ['none', 'underline', 'overline', 'line-through']\n },\n textTransform: {\n enums: ['none', 'uppercase', 'lowercase']\n },\n textWrap: {\n enums: ['none', 'wrap', 'ellipsis']\n },\n textOverflowWrap: {\n enums: ['whitespace', 'anywhere']\n },\n textBackgroundShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle']\n },\n nodeShape: {\n enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'cutrectangle', 'cut-rectangle', 'bottomroundrectangle', 'bottom-round-rectangle', 'barrel', 'ellipse', 'triangle', 'round-triangle', 'square', 'pentagon', 'round-pentagon', 'hexagon', 'round-hexagon', 'concavehexagon', 'concave-hexagon', 'heptagon', 'round-heptagon', 'octagon', 'round-octagon', 'tag', 'round-tag', 'star', 'diamond', 'round-diamond', 'vee', 'rhomboid', 'right-rhomboid', 'polygon']\n },\n overlayShape: {\n enums: ['roundrectangle', 'round-rectangle', 'ellipse']\n },\n compoundIncludeLabels: {\n enums: ['include', 'exclude']\n },\n arrowShape: {\n enums: ['tee', 'triangle', 'triangle-tee', 'circle-triangle', 'triangle-cross', 'triangle-backcurve', 'vee', 'square', 'circle', 'diamond', 'chevron', 'none']\n },\n arrowFill: {\n enums: ['filled', 'hollow']\n },\n arrowWidth: {\n number: true,\n units: '%|px|em',\n implicitUnits: 'px',\n enums: ['match-line']\n },\n display: {\n enums: ['element', 'none']\n },\n visibility: {\n enums: ['hidden', 'visible']\n },\n zCompoundDepth: {\n enums: ['bottom', 'orphan', 'auto', 'top']\n },\n zIndexCompare: {\n enums: ['auto', 'manual']\n },\n valign: {\n enums: ['top', 'center', 'bottom']\n },\n halign: {\n enums: ['left', 'center', 'right']\n },\n justification: {\n enums: ['left', 'center', 'right', 'auto']\n },\n text: {\n string: true\n },\n data: {\n mapping: true,\n regex: data('data')\n },\n layoutData: {\n mapping: true,\n regex: data('layoutData')\n },\n scratch: {\n mapping: true,\n regex: data('scratch')\n },\n mapData: {\n mapping: true,\n regex: mapData('mapData')\n },\n mapLayoutData: {\n mapping: true,\n regex: mapData('mapLayoutData')\n },\n mapScratch: {\n mapping: true,\n regex: mapData('mapScratch')\n },\n fn: {\n mapping: true,\n fn: true\n },\n url: {\n regexes: urlRegexes,\n singleRegexMatchValue: true\n },\n urls: {\n regexes: urlRegexes,\n singleRegexMatchValue: true,\n multiple: true\n },\n propList: {\n propList: true\n },\n angle: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad'\n },\n textRotation: {\n number: true,\n units: 'deg|rad',\n implicitUnits: 'rad',\n enums: ['none', 'autorotate']\n },\n polygonPointList: {\n number: true,\n multiple: true,\n evenMultiple: true,\n min: -1,\n max: 1,\n unitless: true\n },\n edgeDistances: {\n enums: ['intersection', 'node-position', 'endpoints']\n },\n edgeEndpoint: {\n number: true,\n multiple: true,\n units: '%|px|em|deg|rad',\n implicitUnits: 'px',\n enums: ['inside-to-node', 'outside-to-node', 'outside-to-node-or-label', 'outside-to-line', 'outside-to-line-or-label'],\n singleEnum: true,\n validate: function validate(valArr, unitsArr) {\n switch (valArr.length) {\n case 2:\n // can be % or px only\n return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad';\n case 1:\n // can be enum, deg, or rad only\n return string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad';\n default:\n return false;\n }\n }\n },\n easing: {\n regexes: ['^(spring)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$', '^(cubic-bezier)\\\\s*\\\\(\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*,\\\\s*(' + number$1 + ')\\\\s*\\\\)$'],\n enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ']\n },\n gradientDirection: {\n enums: ['to-bottom', 'to-top', 'to-left', 'to-right', 'to-bottom-right', 'to-bottom-left', 'to-top-right', 'to-top-left', 'to-right-bottom', 'to-left-bottom', 'to-right-top', 'to-left-top' // different order\n ]\n },\n\n boundsExpansion: {\n number: true,\n multiple: true,\n min: 0,\n validate: function validate(valArr) {\n var length = valArr.length;\n return length === 1 || length === 2 || length === 4;\n }\n }\n };\n var diff = {\n zeroNonZero: function zeroNonZero(val1, val2) {\n if ((val1 == null || val2 == null) && val1 !== val2) {\n return true; // null cases could represent any value\n }\n if (val1 == 0 && val2 != 0) {\n return true;\n } else if (val1 != 0 && val2 == 0) {\n return true;\n } else {\n return false;\n }\n },\n any: function any(val1, val2) {\n return val1 != val2;\n },\n emptyNonEmpty: function emptyNonEmpty(str1, str2) {\n var empty1 = emptyString(str1);\n var empty2 = emptyString(str2);\n return empty1 && !empty2 || !empty1 && empty2;\n }\n };\n\n // define visual style properties\n //\n // - n.b. adding a new group of props may require updates to updateStyleHints()\n // - adding new props to an existing group gets handled automatically\n\n var t = styfn$2.types;\n var mainLabel = [{\n name: 'label',\n type: t.text,\n triggersBounds: diff.any,\n triggersZOrder: diff.emptyNonEmpty\n }, {\n name: 'text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }];\n var sourceLabel = [{\n name: 'source-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'source-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'source-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var targetLabel = [{\n name: 'target-label',\n type: t.text,\n triggersBounds: diff.any\n }, {\n name: 'target-text-rotation',\n type: t.textRotation,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-margin-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'target-text-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var labelDimensions = [{\n name: 'font-family',\n type: t.fontFamily,\n triggersBounds: diff.any\n }, {\n name: 'font-style',\n type: t.fontStyle,\n triggersBounds: diff.any\n }, {\n name: 'font-weight',\n type: t.fontWeight,\n triggersBounds: diff.any\n }, {\n name: 'font-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-transform',\n type: t.textTransform,\n triggersBounds: diff.any\n }, {\n name: 'text-wrap',\n type: t.textWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-overflow-wrap',\n type: t.textOverflowWrap,\n triggersBounds: diff.any\n }, {\n name: 'text-max-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'line-height',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }];\n var commonLabel = [{\n name: 'text-valign',\n type: t.valign,\n triggersBounds: diff.any\n }, {\n name: 'text-halign',\n type: t.halign,\n triggersBounds: diff.any\n }, {\n name: 'color',\n type: t.color\n }, {\n name: 'text-outline-color',\n type: t.color\n }, {\n name: 'text-outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-color',\n type: t.color\n }, {\n name: 'text-background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-background-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'text-border-color',\n type: t.color\n }, {\n name: 'text-border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'text-border-style',\n type: t.borderStyle,\n triggersBounds: diff.any\n }, {\n name: 'text-background-shape',\n type: t.textBackgroundShape,\n triggersBounds: diff.any\n }, {\n name: 'text-justification',\n type: t.justification\n }];\n var behavior = [{\n name: 'events',\n type: t.bool,\n triggersZOrder: diff.any\n }, {\n name: 'text-events',\n type: t.bool,\n triggersZOrder: diff.any\n }];\n var visibility = [{\n name: 'display',\n type: t.display,\n triggersZOrder: diff.any,\n triggersBounds: diff.any,\n triggersBoundsOfConnectedEdges: true\n }, {\n name: 'visibility',\n type: t.visibility,\n triggersZOrder: diff.any\n }, {\n name: 'opacity',\n type: t.zeroOneNumber,\n triggersZOrder: diff.zeroNonZero\n }, {\n name: 'text-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'min-zoomed-font-size',\n type: t.size\n }, {\n name: 'z-compound-depth',\n type: t.zCompoundDepth,\n triggersZOrder: diff.any\n }, {\n name: 'z-index-compare',\n type: t.zIndexCompare,\n triggersZOrder: diff.any\n }, {\n name: 'z-index',\n type: t.number,\n triggersZOrder: diff.any\n }];\n var overlay = [{\n name: 'overlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'overlay-color',\n type: t.color\n }, {\n name: 'overlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'overlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }];\n var underlay = [{\n name: 'underlay-padding',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'underlay-color',\n type: t.color\n }, {\n name: 'underlay-opacity',\n type: t.zeroOneNumber,\n triggersBounds: diff.zeroNonZero\n }, {\n name: 'underlay-shape',\n type: t.overlayShape,\n triggersBounds: diff.any\n }];\n var transition = [{\n name: 'transition-property',\n type: t.propList\n }, {\n name: 'transition-duration',\n type: t.time\n }, {\n name: 'transition-delay',\n type: t.time\n }, {\n name: 'transition-timing-function',\n type: t.easing\n }];\n var nodeSizeHashOverride = function nodeSizeHashOverride(ele, parsedProp) {\n if (parsedProp.value === 'label') {\n return -ele.poolIndex(); // no hash key hits is using label size (hitrate for perf probably low anyway)\n } else {\n return parsedProp.pfValue;\n }\n };\n var nodeBody = [{\n name: 'height',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'width',\n type: t.nodeSize,\n triggersBounds: diff.any,\n hashOverride: nodeSizeHashOverride\n }, {\n name: 'shape',\n type: t.nodeShape,\n triggersBounds: diff.any\n }, {\n name: 'shape-polygon-points',\n type: t.polygonPointList,\n triggersBounds: diff.any\n }, {\n name: 'background-color',\n type: t.color\n }, {\n name: 'background-fill',\n type: t.fill\n }, {\n name: 'background-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'background-blacken',\n type: t.nOneOneNumber\n }, {\n name: 'background-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'background-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'background-gradient-direction',\n type: t.gradientDirection\n }, {\n name: 'padding',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'padding-relative-to',\n type: t.paddingRelativeTo,\n triggersBounds: diff.any\n }, {\n name: 'bounds-expansion',\n type: t.boundsExpansion,\n triggersBounds: diff.any\n }];\n var nodeBorder = [{\n name: 'border-color',\n type: t.color\n }, {\n name: 'border-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'border-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'border-style',\n type: t.borderStyle\n }];\n var nodeOutline = [{\n name: 'outline-color',\n type: t.color\n }, {\n name: 'outline-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'outline-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'outline-style',\n type: t.borderStyle\n }, {\n name: 'outline-offset',\n type: t.size,\n triggersBounds: diff.any\n }];\n var backgroundImage = [{\n name: 'background-image',\n type: t.urls\n }, {\n name: 'background-image-crossorigin',\n type: t.bgCrossOrigin\n }, {\n name: 'background-image-opacity',\n type: t.zeroOneNumbers\n }, {\n name: 'background-image-containment',\n type: t.bgContainment\n }, {\n name: 'background-image-smoothing',\n type: t.bools\n }, {\n name: 'background-position-x',\n type: t.bgPos\n }, {\n name: 'background-position-y',\n type: t.bgPos\n }, {\n name: 'background-width-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-height-relative-to',\n type: t.bgRelativeTo\n }, {\n name: 'background-repeat',\n type: t.bgRepeat\n }, {\n name: 'background-fit',\n type: t.bgFit\n }, {\n name: 'background-clip',\n type: t.bgClip\n }, {\n name: 'background-width',\n type: t.bgWH\n }, {\n name: 'background-height',\n type: t.bgWH\n }, {\n name: 'background-offset-x',\n type: t.bgPos\n }, {\n name: 'background-offset-y',\n type: t.bgPos\n }];\n var compound = [{\n name: 'position',\n type: t.position,\n triggersBounds: diff.any\n }, {\n name: 'compound-sizing-wrt-labels',\n type: t.compoundIncludeLabels,\n triggersBounds: diff.any\n }, {\n name: 'min-width',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-left',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-width-bias-right',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-top',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'min-height-bias-bottom',\n type: t.sizeMaybePercent,\n triggersBounds: diff.any\n }];\n var edgeLine = [{\n name: 'line-style',\n type: t.lineStyle\n }, {\n name: 'line-color',\n type: t.color\n }, {\n name: 'line-fill',\n type: t.fill\n }, {\n name: 'line-cap',\n type: t.lineCap\n }, {\n name: 'line-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'line-dash-pattern',\n type: t.numbers\n }, {\n name: 'line-dash-offset',\n type: t.number\n }, {\n name: 'line-gradient-stop-colors',\n type: t.colors\n }, {\n name: 'line-gradient-stop-positions',\n type: t.percentages\n }, {\n name: 'curve-style',\n type: t.curveStyle,\n triggersBounds: diff.any,\n triggersBoundsOfParallelBeziers: true\n }, {\n name: 'haystack-radius',\n type: t.zeroOneNumber,\n triggersBounds: diff.any\n }, {\n name: 'source-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'target-endpoint',\n type: t.edgeEndpoint,\n triggersBounds: diff.any\n }, {\n name: 'control-point-step-size',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'control-point-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'control-point-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'segment-distances',\n type: t.bidirectionalSizes,\n triggersBounds: diff.any\n }, {\n name: 'segment-weights',\n type: t.numbers,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn',\n type: t.bidirectionalSizeMaybePercent,\n triggersBounds: diff.any\n }, {\n name: 'taxi-turn-min-distance',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'taxi-direction',\n type: t.axisDirection,\n triggersBounds: diff.any\n }, {\n name: 'edge-distances',\n type: t.edgeDistances,\n triggersBounds: diff.any\n }, {\n name: 'arrow-scale',\n type: t.positiveNumber,\n triggersBounds: diff.any\n }, {\n name: 'loop-direction',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'loop-sweep',\n type: t.angle,\n triggersBounds: diff.any\n }, {\n name: 'source-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }, {\n name: 'target-distance-from-node',\n type: t.size,\n triggersBounds: diff.any\n }];\n var ghost = [{\n name: 'ghost',\n type: t.bool,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-x',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-offset-y',\n type: t.bidirectionalSize,\n triggersBounds: diff.any\n }, {\n name: 'ghost-opacity',\n type: t.zeroOneNumber\n }];\n var core = [{\n name: 'selection-box-color',\n type: t.color\n }, {\n name: 'selection-box-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'selection-box-border-color',\n type: t.color\n }, {\n name: 'selection-box-border-width',\n type: t.size\n }, {\n name: 'active-bg-color',\n type: t.color\n }, {\n name: 'active-bg-opacity',\n type: t.zeroOneNumber\n }, {\n name: 'active-bg-size',\n type: t.size\n }, {\n name: 'outside-texture-bg-color',\n type: t.color\n }, {\n name: 'outside-texture-bg-opacity',\n type: t.zeroOneNumber\n }];\n\n // pie backgrounds for nodes\n var pie = [];\n styfn$2.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use)\n pie.push({\n name: 'pie-size',\n type: t.sizeMaybePercent\n });\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n pie.push({\n name: 'pie-' + i + '-background-color',\n type: t.color\n });\n pie.push({\n name: 'pie-' + i + '-background-size',\n type: t.percent\n });\n pie.push({\n name: 'pie-' + i + '-background-opacity',\n type: t.zeroOneNumber\n });\n }\n\n // edge arrows\n var edgeArrow = [];\n var arrowPrefixes = styfn$2.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target'];\n [{\n name: 'arrow-shape',\n type: t.arrowShape,\n triggersBounds: diff.any\n }, {\n name: 'arrow-color',\n type: t.color\n }, {\n name: 'arrow-fill',\n type: t.arrowFill\n }, {\n name: 'arrow-width',\n type: t.arrowWidth\n }].forEach(function (prop) {\n arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var type = prop.type,\n triggersBounds = prop.triggersBounds;\n edgeArrow.push({\n name: name,\n type: type,\n triggersBounds: triggersBounds\n });\n });\n }, {});\n var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, nodeOutline, backgroundImage, pie, compound, edgeLine, edgeArrow, core);\n var propGroups = styfn$2.propertyGroups = {\n // common to all eles\n behavior: behavior,\n transition: transition,\n visibility: visibility,\n overlay: overlay,\n underlay: underlay,\n ghost: ghost,\n // labels\n commonLabel: commonLabel,\n labelDimensions: labelDimensions,\n mainLabel: mainLabel,\n sourceLabel: sourceLabel,\n targetLabel: targetLabel,\n // node props\n nodeBody: nodeBody,\n nodeBorder: nodeBorder,\n nodeOutline: nodeOutline,\n backgroundImage: backgroundImage,\n pie: pie,\n compound: compound,\n // edge props\n edgeLine: edgeLine,\n edgeArrow: edgeArrow,\n core: core\n };\n var propGroupNames = styfn$2.propertyGroupNames = {};\n var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);\n propGroupKeys.forEach(function (key) {\n propGroupNames[key] = propGroups[key].map(function (prop) {\n return prop.name;\n });\n propGroups[key].forEach(function (prop) {\n return prop.groupKey = key;\n });\n });\n\n // define aliases\n var aliases = styfn$2.aliases = [{\n name: 'content',\n pointsTo: 'label'\n }, {\n name: 'control-point-distance',\n pointsTo: 'control-point-distances'\n }, {\n name: 'control-point-weight',\n pointsTo: 'control-point-weights'\n }, {\n name: 'edge-text-rotation',\n pointsTo: 'text-rotation'\n }, {\n name: 'padding-left',\n pointsTo: 'padding'\n }, {\n name: 'padding-right',\n pointsTo: 'padding'\n }, {\n name: 'padding-top',\n pointsTo: 'padding'\n }, {\n name: 'padding-bottom',\n pointsTo: 'padding'\n }];\n\n // list of property names\n styfn$2.propertyNames = props.map(function (p) {\n return p.name;\n });\n\n // allow access of properties by name ( e.g. style.properties.height )\n for (var _i = 0; _i < props.length; _i++) {\n var prop = props[_i];\n props[prop.name] = prop; // allow lookup by name\n }\n\n // map aliases\n for (var _i2 = 0; _i2 < aliases.length; _i2++) {\n var alias = aliases[_i2];\n var pointsToProp = props[alias.pointsTo];\n var aliasProp = {\n name: alias.name,\n alias: true,\n pointsTo: pointsToProp\n };\n\n // add alias prop for parsing\n props.push(aliasProp);\n props[alias.name] = aliasProp; // allow lookup by name\n }\n })();\n\n styfn$2.getDefaultProperty = function (name) {\n return this.getDefaultProperties()[name];\n };\n styfn$2.getDefaultProperties = function () {\n var _p = this._private;\n if (_p.defaultProperties != null) {\n return _p.defaultProperties;\n }\n var rawProps = extend({\n // core props\n 'selection-box-color': '#ddd',\n 'selection-box-opacity': 0.65,\n 'selection-box-border-color': '#aaa',\n 'selection-box-border-width': 1,\n 'active-bg-color': 'black',\n 'active-bg-opacity': 0.15,\n 'active-bg-size': 30,\n 'outside-texture-bg-color': '#000',\n 'outside-texture-bg-opacity': 0.125,\n // common node/edge props\n 'events': 'yes',\n 'text-events': 'no',\n 'text-valign': 'top',\n 'text-halign': 'center',\n 'text-justification': 'auto',\n 'line-height': 1,\n 'color': '#000',\n 'text-outline-color': '#000',\n 'text-outline-width': 0,\n 'text-outline-opacity': 1,\n 'text-opacity': 1,\n 'text-decoration': 'none',\n 'text-transform': 'none',\n 'text-wrap': 'none',\n 'text-overflow-wrap': 'whitespace',\n 'text-max-width': 9999,\n 'text-background-color': '#000',\n 'text-background-opacity': 0,\n 'text-background-shape': 'rectangle',\n 'text-background-padding': 0,\n 'text-border-opacity': 0,\n 'text-border-width': 0,\n 'text-border-style': 'solid',\n 'text-border-color': '#000',\n 'font-family': 'Helvetica Neue, Helvetica, sans-serif',\n 'font-style': 'normal',\n 'font-weight': 'normal',\n 'font-size': 16,\n 'min-zoomed-font-size': 0,\n 'text-rotation': 'none',\n 'source-text-rotation': 'none',\n 'target-text-rotation': 'none',\n 'visibility': 'visible',\n 'display': 'element',\n 'opacity': 1,\n 'z-compound-depth': 'auto',\n 'z-index-compare': 'auto',\n 'z-index': 0,\n 'label': '',\n 'text-margin-x': 0,\n 'text-margin-y': 0,\n 'source-label': '',\n 'source-text-offset': 0,\n 'source-text-margin-x': 0,\n 'source-text-margin-y': 0,\n 'target-label': '',\n 'target-text-offset': 0,\n 'target-text-margin-x': 0,\n 'target-text-margin-y': 0,\n 'overlay-opacity': 0,\n 'overlay-color': '#000',\n 'overlay-padding': 10,\n 'overlay-shape': 'round-rectangle',\n 'underlay-opacity': 0,\n 'underlay-color': '#000',\n 'underlay-padding': 10,\n 'underlay-shape': 'round-rectangle',\n 'transition-property': 'none',\n 'transition-duration': 0,\n 'transition-delay': 0,\n 'transition-timing-function': 'linear',\n // node props\n 'background-blacken': 0,\n 'background-color': '#999',\n 'background-fill': 'solid',\n 'background-opacity': 1,\n 'background-image': 'none',\n 'background-image-crossorigin': 'anonymous',\n 'background-image-opacity': 1,\n 'background-image-containment': 'inside',\n 'background-image-smoothing': 'yes',\n 'background-position-x': '50%',\n 'background-position-y': '50%',\n 'background-offset-x': 0,\n 'background-offset-y': 0,\n 'background-width-relative-to': 'include-padding',\n 'background-height-relative-to': 'include-padding',\n 'background-repeat': 'no-repeat',\n 'background-fit': 'none',\n 'background-clip': 'node',\n 'background-width': 'auto',\n 'background-height': 'auto',\n 'border-color': '#000',\n 'border-opacity': 1,\n 'border-width': 0,\n 'border-style': 'solid',\n 'outline-color': '#999',\n 'outline-opacity': 1,\n 'outline-width': 0,\n 'outline-offset': 0,\n 'outline-style': 'solid',\n 'height': 30,\n 'width': 30,\n 'shape': 'ellipse',\n 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1',\n 'bounds-expansion': 0,\n // node gradient\n 'background-gradient-direction': 'to-bottom',\n 'background-gradient-stop-colors': '#999',\n 'background-gradient-stop-positions': '0%',\n // ghost props\n 'ghost': 'no',\n 'ghost-offset-y': 0,\n 'ghost-offset-x': 0,\n 'ghost-opacity': 0,\n // compound props\n 'padding': 0,\n 'padding-relative-to': 'width',\n 'position': 'origin',\n 'compound-sizing-wrt-labels': 'include',\n 'min-width': 0,\n 'min-width-bias-left': 0,\n 'min-width-bias-right': 0,\n 'min-height': 0,\n 'min-height-bias-top': 0,\n 'min-height-bias-bottom': 0\n }, {\n // node pie bg\n 'pie-size': '100%'\n }, [{\n name: 'pie-{{i}}-background-color',\n value: 'black'\n }, {\n name: 'pie-{{i}}-background-size',\n value: '0%'\n }, {\n name: 'pie-{{i}}-background-opacity',\n value: 1\n }].reduce(function (css, prop) {\n for (var i = 1; i <= styfn$2.pieBackgroundN; i++) {\n var name = prop.name.replace('{{i}}', i);\n var val = prop.value;\n css[name] = val;\n }\n return css;\n }, {}), {\n // edge props\n 'line-style': 'solid',\n 'line-color': '#999',\n 'line-fill': 'solid',\n 'line-cap': 'butt',\n 'line-opacity': 1,\n 'line-gradient-stop-colors': '#999',\n 'line-gradient-stop-positions': '0%',\n 'control-point-step-size': 40,\n 'control-point-weights': 0.5,\n 'segment-weights': 0.5,\n 'segment-distances': 20,\n 'taxi-turn': '50%',\n 'taxi-turn-min-distance': 10,\n 'taxi-direction': 'auto',\n 'edge-distances': 'intersection',\n 'curve-style': 'haystack',\n 'haystack-radius': 0,\n 'arrow-scale': 1,\n 'loop-direction': '-45deg',\n 'loop-sweep': '-90deg',\n 'source-distance-from-node': 0,\n 'target-distance-from-node': 0,\n 'source-endpoint': 'outside-to-node',\n 'target-endpoint': 'outside-to-node',\n 'line-dash-pattern': [6, 3],\n 'line-dash-offset': 0\n }, [{\n name: 'arrow-shape',\n value: 'none'\n }, {\n name: 'arrow-color',\n value: '#999'\n }, {\n name: 'arrow-fill',\n value: 'filled'\n }, {\n name: 'arrow-width',\n value: 1\n }].reduce(function (css, prop) {\n styfn$2.arrowPrefixes.forEach(function (prefix) {\n var name = prefix + '-' + prop.name;\n var val = prop.value;\n css[name] = val;\n });\n return css;\n }, {}));\n var parsedProps = {};\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n if (prop.pointsTo) {\n continue;\n }\n var name = prop.name;\n var val = rawProps[name];\n var parsedProp = this.parse(name, val);\n parsedProps[name] = parsedProp;\n }\n _p.defaultProperties = parsedProps;\n return _p.defaultProperties;\n };\n styfn$2.addDefaultStylesheet = function () {\n this.selector(':parent').css({\n 'shape': 'rectangle',\n 'padding': 10,\n 'background-color': '#eee',\n 'border-color': '#ccc',\n 'border-width': 1\n }).selector('edge').css({\n 'width': 3\n }).selector(':loop').css({\n 'curve-style': 'bezier'\n }).selector('edge:compound').css({\n 'curve-style': 'bezier',\n 'source-endpoint': 'outside-to-line',\n 'target-endpoint': 'outside-to-line'\n }).selector(':selected').css({\n 'background-color': '#0169D9',\n 'line-color': '#0169D9',\n 'source-arrow-color': '#0169D9',\n 'target-arrow-color': '#0169D9',\n 'mid-source-arrow-color': '#0169D9',\n 'mid-target-arrow-color': '#0169D9'\n }).selector(':parent:selected').css({\n 'background-color': '#CCE1F9',\n 'border-color': '#aec8e5'\n }).selector(':active').css({\n 'overlay-color': 'black',\n 'overlay-padding': 10,\n 'overlay-opacity': 0.25\n });\n this.defaultLength = this.length;\n };\n\n var styfn$1 = {};\n\n // a caching layer for property parsing\n styfn$1.parse = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n\n // function values can't be cached in all cases, and there isn't much benefit of caching them anyway\n if (fn$6(value)) {\n return self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat;\n var bypassKey = propIsBypass ? 't' : 'f';\n var valueKey = '' + value;\n var argHash = hashStrings(name, valueKey, bypassKey, flatKey);\n var propCache = self.propCache = self.propCache || [];\n var ret;\n if (!(ret = propCache[argHash])) {\n ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat);\n }\n\n // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden\n // - mappings can't be shared b/c mappings are per-element\n if (propIsBypass || propIsFlat === 'mapping') {\n // need a copy since props are mutated later in their lifecycles\n ret = copy(ret);\n if (ret) {\n ret.value = copy(ret.value); // because it could be an array, e.g. colour\n }\n }\n\n return ret;\n };\n styfn$1.parseImplWarn = function (name, value, propIsBypass, propIsFlat) {\n var prop = this.parseImpl(name, value, propIsBypass, propIsFlat);\n if (!prop && value != null) {\n warn(\"The style property `\".concat(name, \": \").concat(value, \"` is invalid\"));\n }\n if (prop && (prop.name === 'width' || prop.name === 'height') && value === 'label') {\n warn('The style value of `label` is deprecated for `' + prop.name + '`');\n }\n return prop;\n };\n\n // parse a property; return null on invalid; return parsed property otherwise\n // fields :\n // - name : the name of the property\n // - value : the parsed, native-typed value of the property\n // - strValue : a string value that represents the property value in valid css\n // - bypass : true iff the property is a bypass property\n styfn$1.parseImpl = function (name, value, propIsBypass, propIsFlat) {\n var self = this;\n name = camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName')\n\n var property = self.properties[name];\n var passedValue = value;\n var types = self.types;\n if (!property) {\n return null;\n } // return null on property of unknown name\n if (value === undefined) {\n return null;\n } // can't assign undefined\n\n // the property may be an alias\n if (property.alias) {\n property = property.pointsTo;\n name = property.name;\n }\n var valueIsString = string(value);\n if (valueIsString) {\n // trim the value to make parsing easier\n value = value.trim();\n }\n var type = property.type;\n if (!type) {\n return null;\n } // no type, no luck\n\n // check if bypass is null or empty string (i.e. indication to delete bypass property)\n if (propIsBypass && (value === '' || value === null)) {\n return {\n name: name,\n value: value,\n bypass: true,\n deleteBypass: true\n };\n }\n\n // check if value is a function used as a mapper\n if (fn$6(value)) {\n return {\n name: name,\n value: value,\n strValue: 'fn',\n mapped: types.fn,\n bypass: propIsBypass\n };\n }\n\n // check if value is mapped\n var data, mapData;\n if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== 'a') ; else if (value.length >= 7 && value[0] === 'd' && (data = new RegExp(types.data.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n\n var mapped = types.data;\n return {\n name: name,\n value: data,\n strValue: '' + value,\n mapped: mapped,\n field: data[1],\n bypass: propIsBypass\n };\n } else if (value.length >= 10 && value[0] === 'm' && (mapData = new RegExp(types.mapData.regex).exec(value))) {\n if (propIsBypass) {\n return false;\n } // mappers not allowed in bypass\n if (type.multiple) {\n return false;\n } // impossible to map to num\n\n var _mapped = types.mapData;\n\n // we can map only if the type is a colour or a number\n if (!(type.color || type.number)) {\n return false;\n }\n var valueMin = this.parse(name, mapData[4]); // parse to validate\n if (!valueMin || valueMin.mapped) {\n return false;\n } // can't be invalid or mapped\n\n var valueMax = this.parse(name, mapData[5]); // parse to validate\n if (!valueMax || valueMax.mapped) {\n return false;\n } // can't be invalid or mapped\n\n // check if valueMin and valueMax are the same\n if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {\n warn('`' + name + ': ' + value + '` is not a valid mapper because the output range is zero; converting to `' + name + ': ' + valueMin.strValue + '`');\n return this.parse(name, valueMin.strValue); // can't make much of a mapper without a range\n } else if (type.color) {\n var c1 = valueMin.value;\n var c2 = valueMax.value;\n var same = c1[0] === c2[0] // red\n && c1[1] === c2[1] // green\n && c1[2] === c2[2] // blue\n && (\n // optional alpha\n c1[3] === c2[3] // same alpha outright\n || (c1[3] == null || c1[3] === 1 // full opacity for colour 1?\n ) && (c2[3] == null || c2[3] === 1) // full opacity for colour 2?\n );\n\n if (same) {\n return false;\n } // can't make a mapper without a range\n }\n\n return {\n name: name,\n value: mapData,\n strValue: '' + value,\n mapped: _mapped,\n field: mapData[1],\n fieldMin: parseFloat(mapData[2]),\n // min & max are numeric\n fieldMax: parseFloat(mapData[3]),\n valueMin: valueMin.value,\n valueMax: valueMax.value,\n bypass: propIsBypass\n };\n }\n if (type.multiple && propIsFlat !== 'multiple') {\n var vals;\n if (valueIsString) {\n vals = value.split(/\\s+/);\n } else if (array(value)) {\n vals = value;\n } else {\n vals = [value];\n }\n if (type.evenMultiple && vals.length % 2 !== 0) {\n return null;\n }\n var valArr = [];\n var unitsArr = [];\n var pfValArr = [];\n var strVal = '';\n var hasEnum = false;\n for (var i = 0; i < vals.length; i++) {\n var p = self.parse(name, vals[i], propIsBypass, 'multiple');\n hasEnum = hasEnum || string(p.value);\n valArr.push(p.value);\n pfValArr.push(p.pfValue != null ? p.pfValue : p.value);\n unitsArr.push(p.units);\n strVal += (i > 0 ? ' ' : '') + p.strValue;\n }\n if (type.validate && !type.validate(valArr, unitsArr)) {\n return null;\n }\n if (type.singleEnum && hasEnum) {\n if (valArr.length === 1 && string(valArr[0])) {\n return {\n name: name,\n value: valArr[0],\n strValue: valArr[0],\n bypass: propIsBypass\n };\n } else {\n return null;\n }\n }\n return {\n name: name,\n value: valArr,\n pfValue: pfValArr,\n strValue: strVal,\n bypass: propIsBypass,\n units: unitsArr\n };\n }\n\n // several types also allow enums\n var checkEnums = function checkEnums() {\n for (var _i = 0; _i < type.enums.length; _i++) {\n var en = type.enums[_i];\n if (en === value) {\n return {\n name: name,\n value: value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null;\n };\n\n // check the type and return the appropriate object\n if (type.number) {\n var units;\n var implicitUnits = 'px'; // not set => px\n\n if (type.units) {\n // use specified units if set\n units = type.units;\n }\n if (type.implicitUnits) {\n implicitUnits = type.implicitUnits;\n }\n if (!type.unitless) {\n if (valueIsString) {\n var unitsRegex = 'px|em' + (type.allowPercent ? '|\\\\%' : '');\n if (units) {\n unitsRegex = units;\n } // only allow explicit units if so set\n var match = value.match('^(' + number + ')(' + unitsRegex + ')?' + '$');\n if (match) {\n value = match[1];\n units = match[2] || implicitUnits;\n }\n } else if (!units || type.implicitUnits) {\n units = implicitUnits; // implicitly px if unspecified\n }\n }\n\n value = parseFloat(value);\n\n // if not a number and enums not allowed, then the value is invalid\n if (isNaN(value) && type.enums === undefined) {\n return null;\n }\n\n // check if this number type also accepts special keywords in place of numbers\n // (i.e. `left`, `auto`, etc)\n if (isNaN(value) && type.enums !== undefined) {\n value = passedValue;\n return checkEnums();\n }\n\n // check if value must be an integer\n if (type.integer && !integer(value)) {\n return null;\n }\n\n // check value is within range\n if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) {\n return null;\n }\n var ret = {\n name: name,\n value: value,\n strValue: '' + value + (units ? units : ''),\n units: units,\n bypass: propIsBypass\n };\n\n // normalise value in pixels\n if (type.unitless || units !== 'px' && units !== 'em') {\n ret.pfValue = value;\n } else {\n ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value;\n }\n\n // normalise value in ms\n if (units === 'ms' || units === 's') {\n ret.pfValue = units === 'ms' ? value : 1000 * value;\n }\n\n // normalise value in rad\n if (units === 'deg' || units === 'rad') {\n ret.pfValue = units === 'rad' ? value : deg2rad(value);\n }\n\n // normalize value in %\n if (units === '%') {\n ret.pfValue = value / 100;\n }\n return ret;\n } else if (type.propList) {\n var props = [];\n var propsStr = '' + value;\n if (propsStr === 'none') ; else {\n // go over each prop\n\n var propsSplit = propsStr.split(/\\s*,\\s*|\\s+/);\n for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {\n var propName = propsSplit[_i2].trim();\n if (self.properties[propName]) {\n props.push(propName);\n } else {\n warn('`' + propName + '` is not a valid property name');\n }\n }\n if (props.length === 0) {\n return null;\n }\n }\n return {\n name: name,\n value: props,\n strValue: props.length === 0 ? 'none' : props.join(' '),\n bypass: propIsBypass\n };\n } else if (type.color) {\n var tuple = color2tuple(value);\n if (!tuple) {\n return null;\n }\n return {\n name: name,\n value: tuple,\n pfValue: tuple,\n strValue: 'rgb(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')',\n // n.b. no spaces b/c of multiple support\n bypass: propIsBypass\n };\n } else if (type.regex || type.regexes) {\n // first check enums\n if (type.enums) {\n var enumProp = checkEnums();\n if (enumProp) {\n return enumProp;\n }\n }\n var regexes = type.regexes ? type.regexes : [type.regex];\n for (var _i3 = 0; _i3 < regexes.length; _i3++) {\n var regex = new RegExp(regexes[_i3]); // make a regex from the type string\n var m = regex.exec(value);\n if (m) {\n // regex matches\n return {\n name: name,\n value: type.singleRegexMatchValue ? m[1] : m,\n strValue: '' + value,\n bypass: propIsBypass\n };\n }\n }\n return null; // didn't match any\n } else if (type.string) {\n // just return\n return {\n name: name,\n value: '' + value,\n strValue: '' + value,\n bypass: propIsBypass\n };\n } else if (type.enums) {\n // check enums last because it's a combo type in others\n return checkEnums();\n } else {\n return null; // not a type we can handle\n }\n };\n\n var Style = function Style(cy) {\n if (!(this instanceof Style)) {\n return new Style(cy);\n }\n if (!core(cy)) {\n error('A style must have a core reference');\n return;\n }\n this._private = {\n cy: cy,\n coreStyle: {}\n };\n this.length = 0;\n this.resetToDefault();\n };\n var styfn = Style.prototype;\n styfn.instanceString = function () {\n return 'style';\n };\n\n // remove all contexts\n styfn.clear = function () {\n var _p = this._private;\n var cy = _p.cy;\n var eles = cy.elements();\n for (var i = 0; i < this.length; i++) {\n this[i] = undefined;\n }\n this.length = 0;\n _p.contextStyles = {};\n _p.propDiffs = {};\n this.cleanElements(eles, true);\n eles.forEach(function (ele) {\n var ele_p = ele[0]._private;\n ele_p.styleDirty = true;\n ele_p.appliedInitStyle = false;\n });\n return this; // chaining\n };\n\n styfn.resetToDefault = function () {\n this.clear();\n this.addDefaultStylesheet();\n return this;\n };\n\n // builds a style object for the 'core' selector\n styfn.core = function (propName) {\n return this._private.coreStyle[propName] || this.getDefaultProperty(propName);\n };\n\n // create a new context from the specified selector string and switch to that context\n styfn.selector = function (selectorStr) {\n // 'core' is a special case and does not need a selector\n var selector = selectorStr === 'core' ? null : new Selector(selectorStr);\n var i = this.length++; // new context means new index\n this[i] = {\n selector: selector,\n properties: [],\n mappedProperties: [],\n index: i\n };\n return this; // chaining\n };\n\n // add one or many css rules to the current context\n styfn.css = function () {\n var self = this;\n var args = arguments;\n if (args.length === 1) {\n var map = args[0];\n for (var i = 0; i < self.properties.length; i++) {\n var prop = self.properties[i];\n var mapVal = map[prop.name];\n if (mapVal === undefined) {\n mapVal = map[dash2camel(prop.name)];\n }\n if (mapVal !== undefined) {\n this.cssRule(prop.name, mapVal);\n }\n }\n } else if (args.length === 2) {\n this.cssRule(args[0], args[1]);\n }\n\n // do nothing if args are invalid\n\n return this; // chaining\n };\n\n styfn.style = styfn.css;\n\n // add a single css rule to the current context\n styfn.cssRule = function (name, value) {\n // name-value pair\n var property = this.parse(name, value);\n\n // add property to current context if valid\n if (property) {\n var i = this.length - 1;\n this[i].properties.push(property);\n this[i].properties[property.name] = property; // allow access by name as well\n\n if (property.name.match(/pie-(\\d+)-background-size/) && property.value) {\n this._private.hasPie = true;\n }\n if (property.mapped) {\n this[i].mappedProperties.push(property);\n }\n\n // add to core style if necessary\n var currentSelectorIsCore = !this[i].selector;\n if (currentSelectorIsCore) {\n this._private.coreStyle[property.name] = property;\n }\n }\n return this; // chaining\n };\n\n styfn.append = function (style) {\n if (stylesheet(style)) {\n style.appendToStyle(this);\n } else if (array(style)) {\n this.appendFromJson(style);\n } else if (string(style)) {\n this.appendFromString(style);\n } // you probably wouldn't want to append a Style, since you'd duplicate the default parts\n\n return this;\n };\n\n // static function\n Style.fromJson = function (cy, json) {\n var style = new Style(cy);\n style.fromJson(json);\n return style;\n };\n Style.fromString = function (cy, string) {\n return new Style(cy).fromString(string);\n };\n [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function (props) {\n extend(styfn, props);\n });\n Style.types = styfn.types;\n Style.properties = styfn.properties;\n Style.propertyGroups = styfn.propertyGroups;\n Style.propertyGroupNames = styfn.propertyGroupNames;\n Style.propertyGroupKeys = styfn.propertyGroupKeys;\n\n var corefn$2 = {\n style: function style(newStyle) {\n if (newStyle) {\n var s = this.setStyle(newStyle);\n s.update();\n }\n return this._private.style;\n },\n setStyle: function setStyle(style) {\n var _p = this._private;\n if (stylesheet(style)) {\n _p.style = style.generateStyle(this);\n } else if (array(style)) {\n _p.style = Style.fromJson(this, style);\n } else if (string(style)) {\n _p.style = Style.fromString(this, style);\n } else {\n _p.style = Style(this);\n }\n return _p.style;\n },\n // e.g. cy.data() changed => recalc ele mappers\n updateStyle: function updateStyle() {\n this.mutableElements().updateStyle(); // just send to all eles\n }\n };\n\n var defaultSelectionType = 'single';\n var corefn$1 = {\n autolock: function autolock(bool) {\n if (bool !== undefined) {\n this._private.autolock = bool ? true : false;\n } else {\n return this._private.autolock;\n }\n return this; // chaining\n },\n\n autoungrabify: function autoungrabify(bool) {\n if (bool !== undefined) {\n this._private.autoungrabify = bool ? true : false;\n } else {\n return this._private.autoungrabify;\n }\n return this; // chaining\n },\n\n autounselectify: function autounselectify(bool) {\n if (bool !== undefined) {\n this._private.autounselectify = bool ? true : false;\n } else {\n return this._private.autounselectify;\n }\n return this; // chaining\n },\n\n selectionType: function selectionType(selType) {\n var _p = this._private;\n if (_p.selectionType == null) {\n _p.selectionType = defaultSelectionType;\n }\n if (selType !== undefined) {\n if (selType === 'additive' || selType === 'single') {\n _p.selectionType = selType;\n }\n } else {\n return _p.selectionType;\n }\n return this;\n },\n panningEnabled: function panningEnabled(bool) {\n if (bool !== undefined) {\n this._private.panningEnabled = bool ? true : false;\n } else {\n return this._private.panningEnabled;\n }\n return this; // chaining\n },\n\n userPanningEnabled: function userPanningEnabled(bool) {\n if (bool !== undefined) {\n this._private.userPanningEnabled = bool ? true : false;\n } else {\n return this._private.userPanningEnabled;\n }\n return this; // chaining\n },\n\n zoomingEnabled: function zoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.zoomingEnabled = bool ? true : false;\n } else {\n return this._private.zoomingEnabled;\n }\n return this; // chaining\n },\n\n userZoomingEnabled: function userZoomingEnabled(bool) {\n if (bool !== undefined) {\n this._private.userZoomingEnabled = bool ? true : false;\n } else {\n return this._private.userZoomingEnabled;\n }\n return this; // chaining\n },\n\n boxSelectionEnabled: function boxSelectionEnabled(bool) {\n if (bool !== undefined) {\n this._private.boxSelectionEnabled = bool ? true : false;\n } else {\n return this._private.boxSelectionEnabled;\n }\n return this; // chaining\n },\n\n pan: function pan() {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n switch (args.length) {\n case 0:\n // .pan()\n return pan;\n case 1:\n if (string(args[0])) {\n // .pan('x')\n dim = args[0];\n return pan[dim];\n } else if (plainObject(args[0])) {\n // .pan({ x: 0, y: 100 })\n if (!this._private.panningEnabled) {\n return this;\n }\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x = x;\n }\n if (number$1(y)) {\n pan.y = y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .pan('x', 100)\n if (!this._private.panningEnabled) {\n return this;\n }\n dim = args[0];\n val = args[1];\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] = val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n\n this.notify('viewport');\n return this; // chaining\n },\n\n panBy: function panBy(arg0, arg1) {\n var args = arguments;\n var pan = this._private.pan;\n var dim, val, dims, x, y;\n if (!this._private.panningEnabled) {\n return this;\n }\n switch (args.length) {\n case 1:\n if (plainObject(arg0)) {\n // .panBy({ x: 0, y: 100 })\n dims = args[0];\n x = dims.x;\n y = dims.y;\n if (number$1(x)) {\n pan.x += x;\n }\n if (number$1(y)) {\n pan.y += y;\n }\n this.emit('pan viewport');\n }\n break;\n case 2:\n // .panBy('x', 100)\n dim = arg0;\n val = arg1;\n if ((dim === 'x' || dim === 'y') && number$1(val)) {\n pan[dim] += val;\n }\n this.emit('pan viewport');\n break;\n // invalid\n }\n\n this.notify('viewport');\n return this; // chaining\n },\n\n fit: function fit(elements, padding) {\n var viewportState = this.getFitViewport(elements, padding);\n if (viewportState) {\n var _p = this._private;\n _p.zoom = viewportState.zoom;\n _p.pan = viewportState.pan;\n this.emit('pan zoom viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n getFitViewport: function getFitViewport(elements, padding) {\n if (number$1(elements) && padding === undefined) {\n // elements is optional\n padding = elements;\n elements = undefined;\n }\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return;\n }\n var bb;\n if (string(elements)) {\n var sel = elements;\n elements = this.$(sel);\n } else if (boundingBox(elements)) {\n // assume bb\n var bbe = elements;\n bb = {\n x1: bbe.x1,\n y1: bbe.y1,\n x2: bbe.x2,\n y2: bbe.y2\n };\n bb.w = bb.x2 - bb.x1;\n bb.h = bb.y2 - bb.y1;\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elementOrCollection(elements) && elements.empty()) {\n return;\n } // can't fit to nothing\n\n bb = bb || elements.boundingBox();\n var w = this.width();\n var h = this.height();\n var zoom;\n padding = number$1(padding) ? padding : 0;\n if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {\n zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h);\n\n // crop zoom\n zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;\n zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;\n var pan = {\n // now pan to middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return {\n zoom: zoom,\n pan: pan\n };\n }\n return;\n },\n zoomRange: function zoomRange(min, max) {\n var _p = this._private;\n if (max == null) {\n var opts = min;\n min = opts.min;\n max = opts.max;\n }\n if (number$1(min) && number$1(max) && min <= max) {\n _p.minZoom = min;\n _p.maxZoom = max;\n } else if (number$1(min) && max === undefined && min <= _p.maxZoom) {\n _p.minZoom = min;\n } else if (number$1(max) && min === undefined && max >= _p.minZoom) {\n _p.maxZoom = max;\n }\n return this;\n },\n minZoom: function minZoom(zoom) {\n if (zoom === undefined) {\n return this._private.minZoom;\n } else {\n return this.zoomRange({\n min: zoom\n });\n }\n },\n maxZoom: function maxZoom(zoom) {\n if (zoom === undefined) {\n return this._private.maxZoom;\n } else {\n return this.zoomRange({\n max: zoom\n });\n }\n },\n getZoomedViewport: function getZoomedViewport(params) {\n var _p = this._private;\n var currentPan = _p.pan;\n var currentZoom = _p.zoom;\n var pos; // in rendered px\n var zoom;\n var bail = false;\n if (!_p.zoomingEnabled) {\n // zooming disabled\n bail = true;\n }\n if (number$1(params)) {\n // then set the zoom\n zoom = params;\n } else if (plainObject(params)) {\n // then zoom about a point\n zoom = params.level;\n if (params.position != null) {\n pos = modelToRenderedPosition(params.position, currentZoom, currentPan);\n } else if (params.renderedPosition != null) {\n pos = params.renderedPosition;\n }\n if (pos != null && !_p.panningEnabled) {\n // panning disabled\n bail = true;\n }\n }\n\n // crop zoom\n zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;\n zoom = zoom < _p.minZoom ? _p.minZoom : zoom;\n\n // can't zoom with invalid params\n if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) {\n return null;\n }\n if (pos != null) {\n // set zoom about position\n var pan1 = currentPan;\n var zoom1 = currentZoom;\n var zoom2 = zoom;\n var pan2 = {\n x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,\n y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y\n };\n return {\n zoomed: true,\n panned: true,\n zoom: zoom2,\n pan: pan2\n };\n } else {\n // just set the zoom\n return {\n zoomed: true,\n panned: false,\n zoom: zoom,\n pan: currentPan\n };\n }\n },\n zoom: function zoom(params) {\n if (params === undefined) {\n // get\n return this._private.zoom;\n } else {\n // set\n var vp = this.getZoomedViewport(params);\n var _p = this._private;\n if (vp == null || !vp.zoomed) {\n return this;\n }\n _p.zoom = vp.zoom;\n if (vp.panned) {\n _p.pan.x = vp.pan.x;\n _p.pan.y = vp.pan.y;\n }\n this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport');\n this.notify('viewport');\n return this; // chaining\n }\n },\n\n viewport: function viewport(opts) {\n var _p = this._private;\n var zoomDefd = true;\n var panDefd = true;\n var events = []; // to trigger\n var zoomFailed = false;\n var panFailed = false;\n if (!opts) {\n return this;\n }\n if (!number$1(opts.zoom)) {\n zoomDefd = false;\n }\n if (!plainObject(opts.pan)) {\n panDefd = false;\n }\n if (!zoomDefd && !panDefd) {\n return this;\n }\n if (zoomDefd) {\n var z = opts.zoom;\n if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {\n zoomFailed = true;\n } else {\n _p.zoom = z;\n events.push('zoom');\n }\n }\n if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {\n var p = opts.pan;\n if (number$1(p.x)) {\n _p.pan.x = p.x;\n panFailed = false;\n }\n if (number$1(p.y)) {\n _p.pan.y = p.y;\n panFailed = false;\n }\n if (!panFailed) {\n events.push('pan');\n }\n }\n if (events.length > 0) {\n events.push('viewport');\n this.emit(events.join(' '));\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n center: function center(elements) {\n var pan = this.getCenterPan(elements);\n if (pan) {\n this._private.pan = pan;\n this.emit('pan viewport');\n this.notify('viewport');\n }\n return this; // chaining\n },\n\n getCenterPan: function getCenterPan(elements, zoom) {\n if (!this._private.panningEnabled) {\n return;\n }\n if (string(elements)) {\n var selector = elements;\n elements = this.mutableElements().filter(selector);\n } else if (!elementOrCollection(elements)) {\n elements = this.mutableElements();\n }\n if (elements.length === 0) {\n return;\n } // can't centre pan to nothing\n\n var bb = elements.boundingBox();\n var w = this.width();\n var h = this.height();\n zoom = zoom === undefined ? this._private.zoom : zoom;\n var pan = {\n // middle\n x: (w - zoom * (bb.x1 + bb.x2)) / 2,\n y: (h - zoom * (bb.y1 + bb.y2)) / 2\n };\n return pan;\n },\n reset: function reset() {\n if (!this._private.panningEnabled || !this._private.zoomingEnabled) {\n return this;\n }\n this.viewport({\n pan: {\n x: 0,\n y: 0\n },\n zoom: 1\n });\n return this; // chaining\n },\n\n invalidateSize: function invalidateSize() {\n this._private.sizeCache = null;\n },\n size: function size() {\n var _p = this._private;\n var container = _p.container;\n var cy = this;\n return _p.sizeCache = _p.sizeCache || (container ? function () {\n var style = cy.window().getComputedStyle(container);\n var val = function val(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n return {\n width: container.clientWidth - val('padding-left') - val('padding-right'),\n height: container.clientHeight - val('padding-top') - val('padding-bottom')\n };\n }() : {\n // fallback if no container (not 0 b/c can be used for dividing etc)\n width: 1,\n height: 1\n });\n },\n width: function width() {\n return this.size().width;\n },\n height: function height() {\n return this.size().height;\n },\n extent: function extent() {\n var pan = this._private.pan;\n var zoom = this._private.zoom;\n var rb = this.renderedExtent();\n var b = {\n x1: (rb.x1 - pan.x) / zoom,\n x2: (rb.x2 - pan.x) / zoom,\n y1: (rb.y1 - pan.y) / zoom,\n y2: (rb.y2 - pan.y) / zoom\n };\n b.w = b.x2 - b.x1;\n b.h = b.y2 - b.y1;\n return b;\n },\n renderedExtent: function renderedExtent() {\n var width = this.width();\n var height = this.height();\n return {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height,\n w: width,\n h: height\n };\n },\n multiClickDebounceTime: function multiClickDebounceTime(_int) {\n if (_int) this._private.multiClickDebounceTime = _int;else return this._private.multiClickDebounceTime;\n return this; // chaining\n }\n };\n\n // aliases\n corefn$1.centre = corefn$1.center;\n\n // backwards compatibility\n corefn$1.autolockNodes = corefn$1.autolock;\n corefn$1.autoungrabifyNodes = corefn$1.autoungrabify;\n\n var fn = {\n data: define.data({\n field: 'data',\n bindingEvent: 'data',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'data',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeData: define.removeData({\n field: 'data',\n event: 'data',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n }),\n scratch: define.data({\n field: 'scratch',\n bindingEvent: 'scratch',\n allowBinding: true,\n allowSetting: true,\n settingEvent: 'scratch',\n settingTriggersEvent: true,\n triggerFnName: 'trigger',\n allowGetting: true,\n updateStyle: true\n }),\n removeScratch: define.removeData({\n field: 'scratch',\n event: 'scratch',\n triggerFnName: 'trigger',\n triggerEvent: true,\n updateStyle: true\n })\n };\n\n // aliases\n fn.attr = fn.data;\n fn.removeAttr = fn.removeData;\n\n var Core = function Core(opts) {\n var cy = this;\n opts = extend({}, opts);\n var container = opts.container;\n\n // allow for passing a wrapped jquery object\n // e.g. cytoscape({ container: $('#cy') })\n if (container && !htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery\n reg = reg || {};\n if (reg && reg.cy) {\n reg.cy.destroy();\n reg = {}; // old instance => replace reg completely\n }\n\n var readies = reg.readies = reg.readies || [];\n if (container) {\n container._cyreg = reg;\n } // make sure container assoc'd reg points to this cy\n reg.cy = cy;\n var head = _window !== undefined && container !== undefined && !opts.headless;\n var options = opts;\n options.layout = extend({\n name: head ? 'grid' : 'null'\n }, options.layout);\n options.renderer = extend({\n name: head ? 'canvas' : 'null'\n }, options.renderer);\n var defVal = function defVal(def, val, altVal) {\n if (val !== undefined) {\n return val;\n } else if (altVal !== undefined) {\n return altVal;\n } else {\n return def;\n }\n };\n var _p = this._private = {\n container: container,\n // html dom ele container\n ready: false,\n // whether ready has been triggered\n options: options,\n // cached options\n elements: new Collection(this),\n // elements in the graph\n listeners: [],\n // list of listeners\n aniEles: new Collection(this),\n // elements being animated\n data: options.data || {},\n // data for the core\n scratch: {},\n // scratch object for core\n layout: null,\n renderer: null,\n destroyed: false,\n // whether destroy was called\n notificationsEnabled: true,\n // whether notifications are sent to the renderer\n minZoom: 1e-50,\n maxZoom: 1e50,\n zoomingEnabled: defVal(true, options.zoomingEnabled),\n userZoomingEnabled: defVal(true, options.userZoomingEnabled),\n panningEnabled: defVal(true, options.panningEnabled),\n userPanningEnabled: defVal(true, options.userPanningEnabled),\n boxSelectionEnabled: defVal(true, options.boxSelectionEnabled),\n autolock: defVal(false, options.autolock, options.autolockNodes),\n autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes),\n autounselectify: defVal(false, options.autounselectify),\n styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled,\n zoom: number$1(options.zoom) ? options.zoom : 1,\n pan: {\n x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0,\n y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0\n },\n animation: {\n // object for currently-running animations\n current: [],\n queue: []\n },\n hasCompoundNodes: false,\n multiClickDebounceTime: defVal(250, options.multiClickDebounceTime)\n };\n this.createEmitter();\n\n // set selection type\n this.selectionType(options.selectionType);\n\n // init zoom bounds\n this.zoomRange({\n min: options.minZoom,\n max: options.maxZoom\n });\n var loadExtData = function loadExtData(extData, next) {\n var anyIsPromise = extData.some(promise);\n if (anyIsPromise) {\n return Promise$1.all(extData).then(next); // load all data asynchronously, then exec rest of init\n } else {\n next(extData); // exec synchronously for convenience\n }\n };\n\n // start with the default stylesheet so we have something before loading an external stylesheet\n if (_p.styleEnabled) {\n cy.setStyle([]);\n }\n\n // create the renderer\n var rendererOptions = extend({}, options, options.renderer); // allow rendering hints in top level options\n cy.initRenderer(rendererOptions);\n var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) {\n cy.notifications(false);\n\n // remove old elements\n var oldEles = cy.mutableElements();\n if (oldEles.length > 0) {\n oldEles.remove();\n }\n if (elements != null) {\n if (plainObject(elements) || array(elements)) {\n cy.add(elements);\n }\n }\n cy.one('layoutready', function (e) {\n cy.notifications(true);\n cy.emit(e); // we missed this event by turning notifications off, so pass it on\n\n cy.one('load', onload);\n cy.emitAndNotify('load');\n }).one('layoutstop', function () {\n cy.one('done', ondone);\n cy.emit('done');\n });\n var layoutOpts = extend({}, cy._private.options.layout);\n layoutOpts.eles = cy.elements();\n cy.layout(layoutOpts).run();\n };\n loadExtData([options.style, options.elements], function (thens) {\n var initStyle = thens[0];\n var initEles = thens[1];\n\n // init style\n if (_p.styleEnabled) {\n cy.style().append(initStyle);\n }\n\n // initial load\n setElesAndLayout(initEles, function () {\n // onready\n cy.startAnimationLoop();\n _p.ready = true;\n\n // if a ready callback is specified as an option, the bind it\n if (fn$6(options.ready)) {\n cy.on('ready', options.ready);\n }\n\n // bind all the ready handlers registered before creating this instance\n for (var i = 0; i < readies.length; i++) {\n var fn = readies[i];\n cy.on('ready', fn);\n }\n if (reg) {\n reg.readies = [];\n } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc\n\n cy.emit('ready');\n }, options.done);\n });\n };\n var corefn = Core.prototype; // short alias\n\n extend(corefn, {\n instanceString: function instanceString() {\n return 'core';\n },\n isReady: function isReady() {\n return this._private.ready;\n },\n destroyed: function destroyed() {\n return this._private.destroyed;\n },\n ready: function ready(fn) {\n if (this.isReady()) {\n this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event\n } else {\n this.on('ready', fn);\n }\n return this;\n },\n destroy: function destroy() {\n var cy = this;\n if (cy.destroyed()) return;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n this.emit('destroy');\n cy._private.destroyed = true;\n return cy;\n },\n hasElementWithId: function hasElementWithId(id) {\n return this._private.elements.hasElementWithId(id);\n },\n getElementById: function getElementById(id) {\n return this._private.elements.getElementById(id);\n },\n hasCompoundNodes: function hasCompoundNodes() {\n return this._private.hasCompoundNodes;\n },\n headless: function headless() {\n return this._private.renderer.isHeadless();\n },\n styleEnabled: function styleEnabled() {\n return this._private.styleEnabled;\n },\n addToPool: function addToPool(eles) {\n this._private.elements.merge(eles);\n return this; // chaining\n },\n\n removeFromPool: function removeFromPool(eles) {\n this._private.elements.unmerge(eles);\n return this;\n },\n container: function container() {\n return this._private.container || null;\n },\n window: function window() {\n var container = this._private.container;\n if (container == null) return _window;\n var ownerDocument = this._private.container.ownerDocument;\n if (ownerDocument === undefined || ownerDocument == null) {\n return _window;\n }\n return ownerDocument.defaultView || _window;\n },\n mount: function mount(container) {\n if (container == null) {\n return;\n }\n var cy = this;\n var _p = cy._private;\n var options = _p.options;\n if (!htmlElement(container) && htmlElement(container[0])) {\n container = container[0];\n }\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n _p.container = container;\n _p.styleEnabled = true;\n cy.invalidateSize();\n cy.initRenderer(extend({}, options, options.renderer, {\n // allow custom renderer name to be re-used, otherwise use canvas\n name: options.renderer.name === 'null' ? 'canvas' : options.renderer.name\n }));\n cy.startAnimationLoop();\n cy.style(options.style);\n cy.emit('mount');\n return cy;\n },\n unmount: function unmount() {\n var cy = this;\n cy.stopAnimationLoop();\n cy.destroyRenderer();\n cy.initRenderer({\n name: 'null'\n });\n cy.emit('unmount');\n return cy;\n },\n options: function options() {\n return copy(this._private.options);\n },\n json: function json(obj) {\n var cy = this;\n var _p = cy._private;\n var eles = cy.mutableElements();\n var getFreshRef = function getFreshRef(ele) {\n return cy.getElementById(ele.id());\n };\n if (plainObject(obj)) {\n // set\n\n cy.startBatch();\n if (obj.elements) {\n var idInJson = {};\n var updateEles = function updateEles(jsons, gr) {\n var toAdd = [];\n var toMod = [];\n for (var i = 0; i < jsons.length; i++) {\n var json = jsons[i];\n if (!json.data.id) {\n warn('cy.json() cannot handle elements without an ID attribute');\n continue;\n }\n var id = '' + json.data.id; // id must be string\n var ele = cy.getElementById(id);\n idInJson[id] = true;\n if (ele.length !== 0) {\n // existing element should be updated\n toMod.push({\n ele: ele,\n json: json\n });\n } else {\n // otherwise should be added\n if (gr) {\n json.group = gr;\n toAdd.push(json);\n } else {\n toAdd.push(json);\n }\n }\n }\n cy.add(toAdd);\n for (var _i = 0; _i < toMod.length; _i++) {\n var _toMod$_i = toMod[_i],\n _ele = _toMod$_i.ele,\n _json = _toMod$_i.json;\n _ele.json(_json);\n }\n };\n if (array(obj.elements)) {\n // elements: []\n updateEles(obj.elements);\n } else {\n // elements: { nodes: [], edges: [] }\n var grs = ['nodes', 'edges'];\n for (var i = 0; i < grs.length; i++) {\n var gr = grs[i];\n var elements = obj.elements[gr];\n if (array(elements)) {\n updateEles(elements, gr);\n }\n }\n }\n var parentsToRemove = cy.collection();\n eles.filter(function (ele) {\n return !idInJson[ele.id()];\n }).forEach(function (ele) {\n if (ele.isParent()) {\n parentsToRemove.merge(ele);\n } else {\n ele.remove();\n }\n });\n\n // so that children are not removed w/parent\n parentsToRemove.forEach(function (ele) {\n return ele.children().move({\n parent: null\n });\n });\n\n // intermediate parents may be moved by prior line, so make sure we remove by fresh refs\n parentsToRemove.forEach(function (ele) {\n return getFreshRef(ele).remove();\n });\n }\n if (obj.style) {\n cy.style(obj.style);\n }\n if (obj.zoom != null && obj.zoom !== _p.zoom) {\n cy.zoom(obj.zoom);\n }\n if (obj.pan) {\n if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {\n cy.pan(obj.pan);\n }\n }\n if (obj.data) {\n cy.data(obj.data);\n }\n var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify', 'multiClickDebounceTime'];\n for (var _i2 = 0; _i2 < fields.length; _i2++) {\n var f = fields[_i2];\n if (obj[f] != null) {\n cy[f](obj[f]);\n }\n }\n cy.endBatch();\n return this; // chaining\n } else {\n // get\n var flat = !!obj;\n var json = {};\n if (flat) {\n json.elements = this.elements().map(function (ele) {\n return ele.json();\n });\n } else {\n json.elements = {};\n eles.forEach(function (ele) {\n var group = ele.group();\n if (!json.elements[group]) {\n json.elements[group] = [];\n }\n json.elements[group].push(ele.json());\n });\n }\n if (this._private.styleEnabled) {\n json.style = cy.style().json();\n }\n json.data = copy(cy.data());\n var options = _p.options;\n json.zoomingEnabled = _p.zoomingEnabled;\n json.userZoomingEnabled = _p.userZoomingEnabled;\n json.zoom = _p.zoom;\n json.minZoom = _p.minZoom;\n json.maxZoom = _p.maxZoom;\n json.panningEnabled = _p.panningEnabled;\n json.userPanningEnabled = _p.userPanningEnabled;\n json.pan = copy(_p.pan);\n json.boxSelectionEnabled = _p.boxSelectionEnabled;\n json.renderer = copy(options.renderer);\n json.hideEdgesOnViewport = options.hideEdgesOnViewport;\n json.textureOnViewport = options.textureOnViewport;\n json.wheelSensitivity = options.wheelSensitivity;\n json.motionBlur = options.motionBlur;\n json.multiClickDebounceTime = options.multiClickDebounceTime;\n return json;\n }\n }\n });\n corefn.$id = corefn.getElementById;\n [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function (props) {\n extend(corefn, props);\n });\n\n /* eslint-disable no-unused-vars */\n var defaults$7 = {\n fit: true,\n // whether to fit the viewport to the graph\n directed: false,\n // whether the tree is directed downwards (or edges can point in any direction if false)\n padding: 30,\n // padding on fit\n circle: false,\n // put depths in concentric circles if true, put depths top down if false\n grid: false,\n // whether to create an even grid into which the DAG is placed (circle:false only)\n spacingFactor: 1.75,\n // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n roots: undefined,\n // the roots of the trees\n depthSort: undefined,\n // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled,\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n };\n\n var deprecatedOptionDefaults = {\n maximal: false,\n // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also\n acyclic: false // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops\n };\n\n /* eslint-enable */\n\n var getInfo = function getInfo(ele) {\n return ele.scratch('breadthfirst');\n };\n var setInfo = function setInfo(ele, obj) {\n return ele.scratch('breadthfirst', obj);\n };\n function BreadthFirstLayout(options) {\n this.options = extend({}, defaults$7, deprecatedOptionDefaults, options);\n }\n BreadthFirstLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().filter(function (n) {\n return !n.isParent();\n });\n var graph = eles;\n var directed = options.directed;\n var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; // maximalAdjustments for compat. w/ old code; also, setting acyclic to true sets maximal to true\n\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var roots;\n if (elementOrCollection(options.roots)) {\n roots = options.roots;\n } else if (array(options.roots)) {\n var rootsArray = [];\n for (var i = 0; i < options.roots.length; i++) {\n var id = options.roots[i];\n var ele = cy.getElementById(id);\n rootsArray.push(ele);\n }\n roots = cy.collection(rootsArray);\n } else if (string(options.roots)) {\n roots = cy.$(options.roots);\n } else {\n if (directed) {\n roots = nodes.roots();\n } else {\n var components = eles.components();\n roots = cy.collection();\n var _loop = function _loop(_i) {\n var comp = components[_i];\n var maxDegree = comp.maxDegree(false);\n var compRoots = comp.filter(function (ele) {\n return ele.degree(false) === maxDegree;\n });\n roots = roots.add(compRoots);\n };\n for (var _i = 0; _i < components.length; _i++) {\n _loop(_i);\n }\n }\n }\n var depths = [];\n var foundByBfs = {};\n var addToDepth = function addToDepth(ele, d) {\n if (depths[d] == null) {\n depths[d] = [];\n }\n var i = depths[d].length;\n depths[d].push(ele);\n setInfo(ele, {\n index: i,\n depth: d\n });\n };\n var changeDepth = function changeDepth(ele, newDepth) {\n var _getInfo = getInfo(ele),\n depth = _getInfo.depth,\n index = _getInfo.index;\n depths[depth][index] = null;\n addToDepth(ele, newDepth);\n };\n\n // find the depths of the nodes\n graph.bfs({\n roots: roots,\n directed: options.directed,\n visit: function visit(node, edge, pNode, i, depth) {\n var ele = node[0];\n var id = ele.id();\n addToDepth(ele, depth);\n foundByBfs[id] = true;\n }\n });\n\n // check for nodes not found by bfs\n var orphanNodes = [];\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n if (foundByBfs[_ele.id()]) {\n continue;\n } else {\n orphanNodes.push(_ele);\n }\n }\n\n // assign the nodes a depth and index\n\n var assignDepthsAt = function assignDepthsAt(i) {\n var eles = depths[i];\n for (var j = 0; j < eles.length; j++) {\n var _ele2 = eles[j];\n if (_ele2 == null) {\n eles.splice(j, 1);\n j--;\n continue;\n }\n setInfo(_ele2, {\n depth: i,\n index: j\n });\n }\n };\n var assignDepths = function assignDepths() {\n for (var _i3 = 0; _i3 < depths.length; _i3++) {\n assignDepthsAt(_i3);\n }\n };\n var adjustMaximally = function adjustMaximally(ele, shifted) {\n var eInfo = getInfo(ele);\n var incomers = ele.incomers().filter(function (el) {\n return el.isNode() && eles.has(el);\n });\n var maxDepth = -1;\n var id = ele.id();\n for (var k = 0; k < incomers.length; k++) {\n var incmr = incomers[k];\n var iInfo = getInfo(incmr);\n maxDepth = Math.max(maxDepth, iInfo.depth);\n }\n if (eInfo.depth <= maxDepth) {\n if (!options.acyclic && shifted[id]) {\n return null;\n }\n var newDepth = maxDepth + 1;\n changeDepth(ele, newDepth);\n shifted[id] = newDepth;\n return true;\n }\n return false;\n };\n\n // for the directed case, try to make the edges all go down (i.e. depth i => depth i + 1)\n if (directed && maximal) {\n var Q = [];\n var shifted = {};\n var enqueue = function enqueue(n) {\n return Q.push(n);\n };\n var dequeue = function dequeue() {\n return Q.shift();\n };\n nodes.forEach(function (n) {\n return Q.push(n);\n });\n while (Q.length > 0) {\n var _ele3 = dequeue();\n var didShift = adjustMaximally(_ele3, shifted);\n if (didShift) {\n _ele3.outgoers().filter(function (el) {\n return el.isNode() && eles.has(el);\n }).forEach(enqueue);\n } else if (didShift === null) {\n warn('Detected double maximal shift for node `' + _ele3.id() + '`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.');\n break; // exit on failure\n }\n }\n }\n\n assignDepths(); // clear holes\n\n // find min distance we need to leave between nodes\n var minDistance = 0;\n if (options.avoidOverlap) {\n for (var _i4 = 0; _i4 < nodes.length; _i4++) {\n var n = nodes[_i4];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n }\n\n // get the weighted percent for an element based on its connectivity to other levels\n var cachedWeightedPercent = {};\n var getWeightedPercent = function getWeightedPercent(ele) {\n if (cachedWeightedPercent[ele.id()]) {\n return cachedWeightedPercent[ele.id()];\n }\n var eleDepth = getInfo(ele).depth;\n var neighbors = ele.neighborhood();\n var percent = 0;\n var samples = 0;\n for (var _i5 = 0; _i5 < neighbors.length; _i5++) {\n var neighbor = neighbors[_i5];\n if (neighbor.isEdge() || neighbor.isParent() || !nodes.has(neighbor)) {\n continue;\n }\n var bf = getInfo(neighbor);\n if (bf == null) {\n continue;\n }\n var index = bf.index;\n var depth = bf.depth;\n\n // unassigned neighbours shouldn't affect the ordering\n if (index == null || depth == null) {\n continue;\n }\n var nDepth = depths[depth].length;\n if (depth < eleDepth) {\n // only get influenced by elements above\n percent += index / nDepth;\n samples++;\n }\n }\n samples = Math.max(1, samples);\n percent = percent / samples;\n if (samples === 0) {\n // put lone nodes at the start\n percent = 0;\n }\n cachedWeightedPercent[ele.id()] = percent;\n return percent;\n };\n\n // rearrange the indices in each depth level based on connectivity\n\n var sortFn = function sortFn(a, b) {\n var apct = getWeightedPercent(a);\n var bpct = getWeightedPercent(b);\n var diff = apct - bpct;\n if (diff === 0) {\n return ascending(a.id(), b.id()); // make sure sort doesn't have don't-care comparisons\n } else {\n return diff;\n }\n };\n if (options.depthSort !== undefined) {\n sortFn = options.depthSort;\n }\n\n // sort each level to make connected nodes closer\n for (var _i6 = 0; _i6 < depths.length; _i6++) {\n depths[_i6].sort(sortFn);\n assignDepthsAt(_i6);\n }\n\n // assign orphan nodes to a new top-level depth\n var orphanDepth = [];\n for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {\n orphanDepth.push(orphanNodes[_i7]);\n }\n depths.unshift(orphanDepth);\n assignDepths();\n var biggestDepthSize = 0;\n for (var _i8 = 0; _i8 < depths.length; _i8++) {\n biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);\n }\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.x1 + bb.h / 2\n };\n var maxDepthSize = depths.reduce(function (max, eles) {\n return Math.max(max, eles.length);\n }, 0);\n var getPosition = function getPosition(ele) {\n var _getInfo2 = getInfo(ele),\n depth = _getInfo2.depth,\n index = _getInfo2.index;\n var depthSize = depths[depth].length;\n var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance);\n var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);\n var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);\n radiusStepSize = Math.max(radiusStepSize, minDistance);\n if (!options.circle) {\n var epos = {\n x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX,\n y: (depth + 1) * distanceY\n };\n return epos;\n } else {\n var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);\n var theta = 2 * Math.PI / depths[depth].length * index;\n if (depth === 0 && depths[0].length === 1) {\n radius = 1;\n }\n return {\n x: center.x + radius * Math.cos(theta),\n y: center.y + radius * Math.sin(theta)\n };\n }\n };\n eles.nodes().layoutPositions(this, options, getPosition);\n return this; // chaining\n };\n\n var defaults$6 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox and radius if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n radius: undefined,\n // the radius of the circle\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n };\n\n function CircleLayout(options) {\n this.options = extend({}, defaults$6, options);\n }\n CircleLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep;\n var dTheta = sweep / Math.max(1, nodes.length - 1);\n var r;\n var minDistance = 0;\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var w = nbb.w;\n var h = nbb.h;\n minDistance = Math.max(minDistance, w, h);\n }\n if (number$1(options.radius)) {\n r = options.radius;\n } else if (nodes.length <= 1) {\n r = 0;\n } else {\n r = Math.min(bb.h, bb.w) / 2 - minDistance;\n }\n\n // calculate the radius\n if (nodes.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n minDistance *= 1.75; // just to have some nice spacing\n\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n r = Math.max(rMin, r);\n }\n var getPos = function getPos(ele, i) {\n var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1);\n var rx = r * Math.cos(theta);\n var ry = r * Math.sin(theta);\n var pos = {\n x: center.x + rx,\n y: center.y + ry\n };\n return pos;\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n };\n\n var defaults$5 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // the padding on fit\n startAngle: 3 / 2 * Math.PI,\n // where nodes start in radians\n sweep: undefined,\n // how many radians should be between the first and last node (defaults to full circle)\n clockwise: true,\n // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)\n equidistant: false,\n // whether levels have an equal radial distance betwen them, may cause bounding box overflow\n minNodeSpacing: 10,\n // min spacing between outside of nodes (used for radius adjustment)\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n height: undefined,\n // height of layout area (overrides container height)\n width: undefined,\n // width of layout area (overrides container width)\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n concentric: function concentric(node) {\n // returns numeric value for each node, placing higher nodes in levels towards the centre\n return node.degree();\n },\n levelWidth: function levelWidth(nodes) {\n // the variation of concentric values in each level\n return nodes.maxDegree() / 4;\n },\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n };\n\n function ConcentricLayout(options) {\n this.options = extend({}, defaults$5, options);\n }\n ConcentricLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var center = {\n x: bb.x1 + bb.w / 2,\n y: bb.y1 + bb.h / 2\n };\n var nodeValues = []; // { node, value }\n var maxNodeSize = 0;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var value = void 0;\n\n // calculate the node value\n value = options.concentric(node);\n nodeValues.push({\n value: value,\n node: node\n });\n\n // for style mapping\n node._private.scratch.concentric = value;\n }\n\n // in case we used the `concentric` in style\n nodes.updateStyle();\n\n // calculate max size now based on potentially updated mappers\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var nbb = _node.layoutDimensions(options);\n maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);\n }\n\n // sort node values in descreasing order\n nodeValues.sort(function (a, b) {\n return b.value - a.value;\n });\n var levelWidth = options.levelWidth(nodes);\n\n // put the values into levels\n var levels = [[]];\n var currentLevel = levels[0];\n for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {\n var val = nodeValues[_i2];\n if (currentLevel.length > 0) {\n var diff = Math.abs(currentLevel[0].value - val.value);\n if (diff >= levelWidth) {\n currentLevel = [];\n levels.push(currentLevel);\n }\n }\n currentLevel.push(val);\n }\n\n // create positions from levels\n\n var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes\n\n if (!options.avoidOverlap) {\n // then strictly constrain to bb\n var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;\n var maxR = Math.min(bb.w, bb.h) / 2 - minDist;\n var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);\n minDist = Math.min(minDist, rStep);\n }\n\n // find the metrics for each level\n var r = 0;\n for (var _i3 = 0; _i3 < levels.length; _i3++) {\n var level = levels[_i3];\n var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep;\n var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);\n\n // calculate the radius\n if (level.length > 1 && options.avoidOverlap) {\n // but only if more than one node (can't overlap)\n var dcos = Math.cos(dTheta) - Math.cos(0);\n var dsin = Math.sin(dTheta) - Math.sin(0);\n var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping\n\n r = Math.max(rMin, r);\n }\n level.r = r;\n r += minDist;\n }\n if (options.equidistant) {\n var rDeltaMax = 0;\n var _r = 0;\n for (var _i4 = 0; _i4 < levels.length; _i4++) {\n var _level = levels[_i4];\n var rDelta = _level.r - _r;\n rDeltaMax = Math.max(rDeltaMax, rDelta);\n }\n _r = 0;\n for (var _i5 = 0; _i5 < levels.length; _i5++) {\n var _level2 = levels[_i5];\n if (_i5 === 0) {\n _r = _level2.r;\n }\n _level2.r = _r;\n _r += rDeltaMax;\n }\n }\n\n // calculate the node positions\n var pos = {}; // id => position\n for (var _i6 = 0; _i6 < levels.length; _i6++) {\n var _level3 = levels[_i6];\n var _dTheta = _level3.dTheta;\n var _r2 = _level3.r;\n for (var j = 0; j < _level3.length; j++) {\n var _val = _level3[j];\n var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j;\n var p = {\n x: center.x + _r2 * Math.cos(theta),\n y: center.y + _r2 * Math.sin(theta)\n };\n pos[_val.node.id()] = p;\n }\n }\n\n // position the nodes\n eles.nodes().layoutPositions(this, options, function (ele) {\n var id = ele.id();\n return pos[id];\n });\n return this; // chaining\n };\n\n /*\n The CoSE layout was written by Gerardo Huck.\n https://www.linkedin.com/in/gerardohuck/\n\n Based on the following article:\n http://dl.acm.org/citation.cfm?id=1498047\n\n Modifications tracked on Github.\n */\n var DEBUG;\n\n /**\n * @brief : default layout options\n */\n var defaults$4 = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // Whether to animate while running the layout\n // true : Animate continuously as the layout is running\n // false : Just show the end result\n // 'end' : Animate with the end result, from the initial positions to the end positions\n animate: true,\n // Easing of the animation for animate:'end'\n animationEasing: undefined,\n // The duration of the animation for animate:'end'\n animationDuration: undefined,\n // A function that determines whether the node should be animated\n // All nodes animated by default on animate enabled\n // Non-animated nodes are positioned immediately when the layout starts\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // The layout animates only after this many milliseconds for animate:true\n // (prevents flashing on fast runs)\n animationThreshold: 250,\n // Number of iterations between consecutive screen positions update\n refresh: 20,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 30,\n // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n boundingBox: undefined,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n nodeDimensionsIncludeLabels: false,\n // Randomize the initial positions of the nodes (true) or use existing positions (false)\n randomize: false,\n // Extra spacing between components in non-compound graphs\n componentSpacing: 40,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: function nodeRepulsion(node) {\n return 2048;\n },\n // Node repulsion (overlapping) multiplier\n nodeOverlap: 4,\n // Ideal edge (non nested) length\n idealEdgeLength: function idealEdgeLength(edge) {\n return 32;\n },\n // Divisor to compute edge forces\n edgeElasticity: function edgeElasticity(edge) {\n return 32;\n },\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 1.2,\n // Gravity force (constant)\n gravity: 1,\n // Maximum number of iterations to perform\n numIter: 1000,\n // Initial temperature (maximum node displacement)\n initialTemp: 1000,\n // Cooling factor (how the temperature is reduced between consecutive iterations\n coolingFactor: 0.99,\n // Lower temperature threshold (below this point the layout will end)\n minTemp: 1.0\n };\n\n /**\n * @brief : constructor\n * @arg options : object containing layout options\n */\n function CoseLayout(options) {\n this.options = extend({}, defaults$4, options);\n this.options.layout = this;\n\n // Exclude any edge that has a source or target node that is not in the set of passed-in nodes\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n var notEdges = edges.filter(function (e) {\n var sourceId = e.source().data('id');\n var targetId = e.target().data('id');\n var hasSource = nodes.some(function (n) {\n return n.data('id') === sourceId;\n });\n var hasTarget = nodes.some(function (n) {\n return n.data('id') === targetId;\n });\n return !hasSource || !hasTarget;\n });\n this.options.eles = this.options.eles.not(notEdges);\n }\n\n /**\n * @brief : runs the layout\n */\n CoseLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var layout = this;\n layout.stopped = false;\n if (options.animate === true || options.animate === false) {\n layout.emit({\n type: 'layoutstart',\n layout: layout\n });\n }\n\n // Set DEBUG - Global variable\n if (true === options.debug) {\n DEBUG = true;\n } else {\n DEBUG = false;\n }\n\n // Initialize layout info\n var layoutInfo = createLayoutInfo(cy, layout, options);\n\n // Show LayoutInfo contents if debugging\n if (DEBUG) {\n printLayoutInfo(layoutInfo);\n }\n\n // If required, randomize node positions\n if (options.randomize) {\n randomizePositions(layoutInfo);\n }\n var startTime = performanceNow();\n var refresh = function refresh() {\n refreshPositions(layoutInfo, cy, options);\n\n // Fit the graph if necessary\n if (true === options.fit) {\n cy.fit(options.padding);\n }\n };\n var mainLoop = function mainLoop(i) {\n if (layout.stopped || i >= options.numIter) {\n // logDebug(\"Layout manually stopped. Stopping computation in step \" + i);\n return false;\n }\n\n // Do one step in the phisical simulation\n step(layoutInfo, options);\n\n // Update temperature\n layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor;\n // logDebug(\"New temperature: \" + layoutInfo.temperature);\n\n if (layoutInfo.temperature < options.minTemp) {\n // logDebug(\"Temperature drop below minimum threshold. Stopping computation in step \" + i);\n return false;\n }\n return true;\n };\n var done = function done() {\n if (options.animate === true || options.animate === false) {\n refresh();\n\n // Layout has finished\n layout.one('layoutstop', options.stop);\n layout.emit({\n type: 'layoutstop',\n layout: layout\n });\n } else {\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.layoutPositions(layout, options, getScaledPos);\n }\n };\n var i = 0;\n var loopRet = true;\n if (options.animate === true) {\n var frame = function frame() {\n var f = 0;\n while (loopRet && f < options.refresh) {\n loopRet = mainLoop(i);\n i++;\n f++;\n }\n if (!loopRet) {\n // it's done\n separateComponents(layoutInfo, options);\n done();\n } else {\n var now = performanceNow();\n if (now - startTime >= options.animationThreshold) {\n refresh();\n }\n requestAnimationFrame(frame);\n }\n };\n frame();\n } else {\n while (loopRet) {\n loopRet = mainLoop(i);\n i++;\n }\n separateComponents(layoutInfo, options);\n done();\n }\n return this; // chaining\n };\n\n /**\n * @brief : called on continuous layouts to stop them before they finish\n */\n CoseLayout.prototype.stop = function () {\n this.stopped = true;\n if (this.thread) {\n this.thread.stop();\n }\n this.emit('layoutstop');\n return this; // chaining\n };\n\n CoseLayout.prototype.destroy = function () {\n if (this.thread) {\n this.thread.stop();\n }\n return this; // chaining\n };\n\n /**\n * @brief : Creates an object which is contains all the data\n * used in the layout process\n * @arg cy : cytoscape.js object\n * @return : layoutInfo object initialized\n */\n var createLayoutInfo = function createLayoutInfo(cy, layout, options) {\n // Shortcut\n var edges = options.eles.edges();\n var nodes = options.eles.nodes();\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var layoutInfo = {\n isCompound: cy.hasCompoundNodes(),\n layoutNodes: [],\n idToIndex: {},\n nodeSize: nodes.size(),\n graphSet: [],\n indexToGraph: [],\n layoutEdges: [],\n edgeSize: edges.size(),\n temperature: options.initialTemp,\n clientWidth: bb.w,\n clientHeight: bb.h,\n boundingBox: bb\n };\n var components = options.eles.components();\n var id2cmptId = {};\n for (var i = 0; i < components.length; i++) {\n var component = components[i];\n for (var j = 0; j < component.length; j++) {\n var node = component[j];\n id2cmptId[node.id()] = i;\n }\n }\n\n // Iterate over all nodes, creating layout nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = nodes[i];\n var nbb = n.layoutDimensions(options);\n var tempNode = {};\n tempNode.isLocked = n.locked();\n tempNode.id = n.data('id');\n tempNode.parentId = n.data('parent');\n tempNode.cmptId = id2cmptId[n.id()];\n tempNode.children = [];\n tempNode.positionX = n.position('x');\n tempNode.positionY = n.position('y');\n tempNode.offsetX = 0;\n tempNode.offsetY = 0;\n tempNode.height = nbb.w;\n tempNode.width = nbb.h;\n tempNode.maxX = tempNode.positionX + tempNode.width / 2;\n tempNode.minX = tempNode.positionX - tempNode.width / 2;\n tempNode.maxY = tempNode.positionY + tempNode.height / 2;\n tempNode.minY = tempNode.positionY - tempNode.height / 2;\n tempNode.padLeft = parseFloat(n.style('padding'));\n tempNode.padRight = parseFloat(n.style('padding'));\n tempNode.padTop = parseFloat(n.style('padding'));\n tempNode.padBottom = parseFloat(n.style('padding'));\n\n // forces\n tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion;\n\n // Add new node\n layoutInfo.layoutNodes.push(tempNode);\n // Add entry to id-index map\n layoutInfo.idToIndex[tempNode.id] = i;\n }\n\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n var tempGraph = [];\n\n // Second pass to add child information and\n // initialize queue for hierarchical traversal\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n var p_id = n.parentId;\n // Check if node n has a parent node\n if (null != p_id) {\n // Add node Id to parent's list of children\n layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);\n } else {\n // If a node doesn't have a parent, then it's in the root graph\n queue[++end] = n.id;\n tempGraph.push(n.id);\n }\n }\n\n // Add root graph to graphSet\n layoutInfo.graphSet.push(tempGraph);\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var node_id = queue[start++];\n var node_ix = layoutInfo.idToIndex[node_id];\n var node = layoutInfo.layoutNodes[node_ix];\n var children = node.children;\n if (children.length > 0) {\n // Add children nodes as a new graph to graph set\n layoutInfo.graphSet.push(children);\n // Add children to que queue to be visited\n for (var i = 0; i < children.length; i++) {\n queue[++end] = children[i];\n }\n }\n }\n\n // Create indexToGraph map\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n for (var j = 0; j < graph.length; j++) {\n var index = layoutInfo.idToIndex[graph[j]];\n layoutInfo.indexToGraph[index] = i;\n }\n }\n\n // Iterate over all edges, creating Layout Edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n var e = edges[i];\n var tempEdge = {};\n tempEdge.id = e.data('id');\n tempEdge.sourceId = e.data('source');\n tempEdge.targetId = e.data('target');\n\n // Compute ideal length\n var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength;\n var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity;\n\n // Check if it's an inter graph edge\n var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];\n var targetIx = layoutInfo.idToIndex[tempEdge.targetId];\n var sourceGraph = layoutInfo.indexToGraph[sourceIx];\n var targetGraph = layoutInfo.indexToGraph[targetIx];\n if (sourceGraph != targetGraph) {\n // Find lowest common graph ancestor\n var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);\n\n // Compute sum of node depths, relative to lca graph\n var lcaGraph = layoutInfo.graphSet[lca];\n var depth = 0;\n\n // Source depth\n var tempNode = layoutInfo.layoutNodes[sourceIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // Target depth\n tempNode = layoutInfo.layoutNodes[targetIx];\n while (-1 === lcaGraph.indexOf(tempNode.id)) {\n tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];\n depth++;\n }\n\n // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId +\n // \". Index: \" + lca + \" Contents: \" + lcaGraph.toString() +\n // \". Depth: \" + depth);\n\n // Update idealLength\n idealLength *= depth * options.nestingFactor;\n }\n tempEdge.idealLength = idealLength;\n tempEdge.elasticity = elasticity;\n layoutInfo.layoutEdges.push(tempEdge);\n }\n\n // Finally, return layoutInfo object\n return layoutInfo;\n };\n\n /**\n * @brief : This function finds the index of the lowest common\n * graph ancestor between 2 nodes in the subtree\n * (from the graph hierarchy induced tree) whose\n * root is graphIx\n *\n * @arg node1: node1's ID\n * @arg node2: node2's ID\n * @arg layoutInfo: layoutInfo object\n *\n */\n var findLCA = function findLCA(node1, node2, layoutInfo) {\n // Find their common ancester, starting from the root graph\n var res = findLCA_aux(node1, node2, 0, layoutInfo);\n if (2 > res.count) {\n // If aux function couldn't find the common ancester,\n // then it is the root graph\n return 0;\n } else {\n return res.graph;\n }\n };\n\n /**\n * @brief : Auxiliary function used for LCA computation\n *\n * @arg node1 : node1's ID\n * @arg node2 : node2's ID\n * @arg graphIx : subgraph index\n * @arg layoutInfo : layoutInfo object\n *\n * @return : object of the form {count: X, graph: Y}, where:\n * X is the number of ancestors (max: 2) found in\n * graphIx (and it's subgraphs),\n * Y is the graph index of the lowest graph containing\n * all X nodes\n */\n var findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) {\n var graph = layoutInfo.graphSet[graphIx];\n // If both nodes belongs to graphIx\n if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {\n return {\n count: 2,\n graph: graphIx\n };\n }\n\n // Make recursive calls for all subgraphs\n var c = 0;\n for (var i = 0; i < graph.length; i++) {\n var nodeId = graph[i];\n var nodeIx = layoutInfo.idToIndex[nodeId];\n var children = layoutInfo.layoutNodes[nodeIx].children;\n\n // If the node has no child, skip it\n if (0 === children.length) {\n continue;\n }\n var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]];\n var result = findLCA_aux(node1, node2, childGraphIx, layoutInfo);\n if (0 === result.count) {\n // Neither node1 nor node2 are present in this subgraph\n continue;\n } else if (1 === result.count) {\n // One of (node1, node2) is present in this subgraph\n c++;\n if (2 === c) {\n // We've already found both nodes, no need to keep searching\n break;\n }\n } else {\n // Both nodes are present in this subgraph\n return result;\n }\n }\n return {\n count: c,\n graph: graphIx\n };\n };\n\n /**\n * @brief: printsLayoutInfo into js console\n * Only used for debbuging\n */\nvar printLayoutInfo; \n\n /**\n * @brief : Randomizes the position of all nodes\n */\n var randomizePositions = function randomizePositions(layoutInfo, cy) {\n var width = layoutInfo.clientWidth;\n var height = layoutInfo.clientHeight;\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n\n // No need to randomize compound nodes or locked nodes\n if (0 === n.children.length && !n.isLocked) {\n n.positionX = Math.random() * width;\n n.positionY = Math.random() * height;\n }\n }\n };\n var getScaleInBoundsFn = function getScaleInBoundsFn(layoutInfo, options, nodes) {\n var bb = layoutInfo.boundingBox;\n var coseBB = {\n x1: Infinity,\n x2: -Infinity,\n y1: Infinity,\n y2: -Infinity\n };\n if (options.boundingBox) {\n nodes.forEach(function (node) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]];\n coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);\n coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);\n coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);\n coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);\n });\n coseBB.w = coseBB.x2 - coseBB.x1;\n coseBB.h = coseBB.y2 - coseBB.y1;\n }\n return function (ele, i) {\n var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]];\n if (options.boundingBox) {\n // then add extra bounding box constraint\n var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;\n var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;\n return {\n x: bb.x1 + pctX * bb.w,\n y: bb.y1 + pctY * bb.h\n };\n } else {\n return {\n x: lnode.positionX,\n y: lnode.positionY\n };\n }\n };\n };\n\n /**\n * @brief : Updates the positions of nodes in the network\n * @arg layoutInfo : LayoutInfo object\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\n var refreshPositions = function refreshPositions(layoutInfo, cy, options) {\n // var s = 'Refreshing positions';\n // logDebug(s);\n\n var layout = options.layout;\n var nodes = options.eles.nodes();\n var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes);\n nodes.positions(getScaledPos);\n\n // Trigger layoutReady only on first call\n if (true !== layoutInfo.ready) {\n // s = 'Triggering layoutready';\n // logDebug(s);\n layoutInfo.ready = true;\n layout.one('layoutready', options.ready);\n layout.emit({\n type: 'layoutready',\n layout: this\n });\n }\n };\n\n /**\n * @brief : Logs a debug message in JS console, if DEBUG is ON\n */\n // var logDebug = function(text) {\n // if (DEBUG) {\n // console.debug(text);\n // }\n // };\n\n /**\n * @brief : Performs one iteration of the physical simulation\n * @arg layoutInfo : LayoutInfo object already initialized\n * @arg cy : Cytoscape object\n * @arg options : Layout options\n */\n var step = function step(layoutInfo, options, _step) {\n // var s = \"\\n\\n###############################\";\n // s += \"\\nSTEP: \" + step;\n // s += \"\\n###############################\\n\";\n // logDebug(s);\n\n // Calculate node repulsions\n calculateNodeForces(layoutInfo, options);\n // Calculate edge forces\n calculateEdgeForces(layoutInfo);\n // Calculate gravity forces\n calculateGravityForces(layoutInfo, options);\n // Propagate forces from parent to child\n propagateForces(layoutInfo);\n // Update positions based on calculated forces\n updatePositions(layoutInfo);\n };\n\n /**\n * @brief : Computes the node repulsion forces\n */\n var calculateNodeForces = function calculateNodeForces(layoutInfo, options) {\n // Go through each of the graphs in graphSet\n // Nodes only repel each other if they belong to the same graph\n // var s = 'calculateNodeForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Now get all the pairs of nodes\n // Only get each pair once, (A, B) = (B, A)\n for (var j = 0; j < numNodes; j++) {\n var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n for (var k = j + 1; k < numNodes; k++) {\n var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];\n nodeRepulsion(node1, node2, layoutInfo, options);\n }\n }\n }\n };\n var randomDistance = function randomDistance(max) {\n return -max + 2 * max * Math.random();\n };\n\n /**\n * @brief : Compute the node repulsion forces between a pair of nodes\n */\n var nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) {\n // var s = \"Node repulsion. Node1: \" + node1.id + \" Node2: \" + node2.id;\n\n var cmptId1 = node1.cmptId;\n var cmptId2 = node2.cmptId;\n if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {\n return;\n }\n\n // Get direction of line connecting both node centers\n var directionX = node2.positionX - node1.positionX;\n var directionY = node2.positionY - node1.positionY;\n var maxRandDist = 1;\n // s += \"\\ndirectionX: \" + directionX + \", directionY: \" + directionY;\n\n // If both centers are the same, apply a random force\n if (0 === directionX && 0 === directionY) {\n directionX = randomDistance(maxRandDist);\n directionY = randomDistance(maxRandDist);\n }\n var overlap = nodesOverlap(node1, node2, directionX, directionY);\n if (overlap > 0) {\n // s += \"\\nNodes DO overlap.\";\n // s += \"\\nOverlap: \" + overlap;\n // If nodes overlap, repulsion force is proportional\n // to the overlap\n var force = options.nodeOverlap * overlap;\n\n // Compute the module and components of the force vector\n var distance = Math.sqrt(directionX * directionX + directionY * directionY);\n // s += \"\\nDistance: \" + distance;\n var forceX = force * directionX / distance;\n var forceY = force * directionY / distance;\n } else {\n // s += \"\\nNodes do NOT overlap.\";\n // If there's no overlap, force is inversely proportional\n // to squared distance\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(node1, directionX, directionY);\n var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);\n\n // Use clipping points to compute distance\n var distanceX = point2.x - point1.x;\n var distanceY = point2.y - point1.y;\n var distanceSqr = distanceX * distanceX + distanceY * distanceY;\n var distance = Math.sqrt(distanceSqr);\n // s += \"\\nDistance: \" + distance;\n\n // Compute the module and components of the force vector\n var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;\n var forceX = force * distanceX / distance;\n var forceY = force * distanceY / distance;\n }\n\n // Apply force\n if (!node1.isLocked) {\n node1.offsetX -= forceX;\n node1.offsetY -= forceY;\n }\n if (!node2.isLocked) {\n node2.offsetX += forceX;\n node2.offsetY += forceY;\n }\n\n // s += \"\\nForceX: \" + forceX + \" ForceY: \" + forceY;\n // logDebug(s);\n\n return;\n };\n\n /**\n * @brief : Determines whether two nodes overlap or not\n * @return : Amount of overlapping (0 => no overlap)\n */\n var nodesOverlap = function nodesOverlap(node1, node2, dX, dY) {\n if (dX > 0) {\n var overlapX = node1.maxX - node2.minX;\n } else {\n var overlapX = node2.maxX - node1.minX;\n }\n if (dY > 0) {\n var overlapY = node1.maxY - node2.minY;\n } else {\n var overlapY = node2.maxY - node1.minY;\n }\n if (overlapX >= 0 && overlapY >= 0) {\n return Math.sqrt(overlapX * overlapX + overlapY * overlapY);\n } else {\n return 0;\n }\n };\n\n /**\n * @brief : Finds the point in which an edge (direction dX, dY) intersects\n * the rectangular bounding box of it's source/target node\n */\n var findClippingPoint = function findClippingPoint(node, dX, dY) {\n // Shorcuts\n var X = node.positionX;\n var Y = node.positionY;\n var H = node.height || 1;\n var W = node.width || 1;\n var dirSlope = dY / dX;\n var nodeSlope = H / W;\n\n // var s = 'Computing clipping point of node ' + node.id +\n // \" . Height: \" + H + \", Width: \" + W +\n // \"\\nDirection \" + dX + \", \" + dY;\n //\n // Compute intersection\n var res = {};\n\n // Case: Vertical direction (up)\n if (0 === dX && 0 < dY) {\n res.x = X;\n // s += \"\\nUp direction\";\n res.y = Y + H / 2;\n return res;\n }\n\n // Case: Vertical direction (down)\n if (0 === dX && 0 > dY) {\n res.x = X;\n res.y = Y + H / 2;\n // s += \"\\nDown direction\";\n\n return res;\n }\n\n // Case: Intersects the right border\n if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X + W / 2;\n res.y = Y + W * dY / 2 / dX;\n // s += \"\\nRightborder\";\n\n return res;\n }\n\n // Case: Intersects the left border\n if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {\n res.x = X - W / 2;\n res.y = Y - W * dY / 2 / dX;\n // s += \"\\nLeftborder\";\n\n return res;\n }\n\n // Case: Intersects the top border\n if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X + H * dX / 2 / dY;\n res.y = Y + H / 2;\n // s += \"\\nTop border\";\n\n return res;\n }\n\n // Case: Intersects the bottom border\n if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {\n res.x = X - H * dX / 2 / dY;\n res.y = Y - H / 2;\n // s += \"\\nBottom border\";\n\n return res;\n }\n\n // s += \"\\nClipping point found at \" + res.x + \", \" + res.y;\n // logDebug(s);\n return res;\n };\n\n /**\n * @brief : Calculates all edge forces\n */\n var calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) {\n // Iterate over all edges\n for (var i = 0; i < layoutInfo.edgeSize; i++) {\n // Get edge, source & target nodes\n var edge = layoutInfo.layoutEdges[i];\n var sourceIx = layoutInfo.idToIndex[edge.sourceId];\n var source = layoutInfo.layoutNodes[sourceIx];\n var targetIx = layoutInfo.idToIndex[edge.targetId];\n var target = layoutInfo.layoutNodes[targetIx];\n\n // Get direction of line connecting both node centers\n var directionX = target.positionX - source.positionX;\n var directionY = target.positionY - source.positionY;\n\n // If both centers are the same, do nothing.\n // A random force has already been applied as node repulsion\n if (0 === directionX && 0 === directionY) {\n continue;\n }\n\n // Get clipping points for both nodes\n var point1 = findClippingPoint(source, directionX, directionY);\n var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);\n var lx = point2.x - point1.x;\n var ly = point2.y - point1.y;\n var l = Math.sqrt(lx * lx + ly * ly);\n var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;\n if (0 !== l) {\n var forceX = force * lx / l;\n var forceY = force * ly / l;\n } else {\n var forceX = 0;\n var forceY = 0;\n }\n\n // Add this force to target and source nodes\n if (!source.isLocked) {\n source.offsetX += forceX;\n source.offsetY += forceY;\n }\n if (!target.isLocked) {\n target.offsetX -= forceX;\n target.offsetY -= forceY;\n }\n\n // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id;\n // s += \"\\nDistance: \" + l + \" Force: (\" + forceX + \", \" + forceY + \")\";\n // logDebug(s);\n }\n };\n\n /**\n * @brief : Computes gravity forces for all nodes\n */\n var calculateGravityForces = function calculateGravityForces(layoutInfo, options) {\n if (options.gravity === 0) {\n return;\n }\n var distThreshold = 1;\n\n // var s = 'calculateGravityForces';\n // logDebug(s);\n for (var i = 0; i < layoutInfo.graphSet.length; i++) {\n var graph = layoutInfo.graphSet[i];\n var numNodes = graph.length;\n\n // s = \"Set: \" + graph.toString();\n // logDebug(s);\n\n // Compute graph center\n if (0 === i) {\n var centerX = layoutInfo.clientHeight / 2;\n var centerY = layoutInfo.clientWidth / 2;\n } else {\n // Get Parent node for this graph, and use its position as center\n var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];\n var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];\n var centerX = parent.positionX;\n var centerY = parent.positionY;\n }\n // s = \"Center found at: \" + centerX + \", \" + centerY;\n // logDebug(s);\n\n // Apply force to all nodes in graph\n for (var j = 0; j < numNodes; j++) {\n var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];\n // s = \"Node: \" + node.id;\n\n if (node.isLocked) {\n continue;\n }\n var dx = centerX - node.positionX;\n var dy = centerY - node.positionY;\n var d = Math.sqrt(dx * dx + dy * dy);\n if (d > distThreshold) {\n var fx = options.gravity * dx / d;\n var fy = options.gravity * dy / d;\n node.offsetX += fx;\n node.offsetY += fy;\n // s += \": Applied force: \" + fx + \", \" + fy;\n }\n // logDebug(s);\n }\n }\n };\n\n /**\n * @brief : This function propagates the existing offsets from\n * parent nodes to its descendents.\n * @arg layoutInfo : layoutInfo Object\n * @arg cy : cytoscape Object\n * @arg options : Layout options\n */\n var propagateForces = function propagateForces(layoutInfo, options) {\n // Inline implementation of a queue, used for traversing the graph in BFS order\n var queue = [];\n var start = 0; // Points to the start the queue\n var end = -1; // Points to the end of the queue\n\n // logDebug('propagateForces');\n\n // Start by visiting the nodes in the root graph\n queue.push.apply(queue, layoutInfo.graphSet[0]);\n end += layoutInfo.graphSet[0].length;\n\n // Traverse the graph, level by level,\n while (start <= end) {\n // Get the node to visit and remove it from queue\n var nodeId = queue[start++];\n var nodeIndex = layoutInfo.idToIndex[nodeId];\n var node = layoutInfo.layoutNodes[nodeIndex];\n var children = node.children;\n\n // We only need to process the node if it's compound\n if (0 < children.length && !node.isLocked) {\n var offX = node.offsetX;\n var offY = node.offsetY;\n\n // var s = \"Propagating offset from parent node : \" + node.id +\n // \". OffsetX: \" + offX + \". OffsetY: \" + offY;\n // s += \"\\n Children: \" + children.toString();\n // logDebug(s);\n\n for (var i = 0; i < children.length; i++) {\n var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]];\n // Propagate offset\n childNode.offsetX += offX;\n childNode.offsetY += offY;\n // Add children to queue to be visited\n queue[++end] = children[i];\n }\n\n // Reset parent offsets\n node.offsetX = 0;\n node.offsetY = 0;\n }\n }\n };\n\n /**\n * @brief : Updates the layout model positions, based on\n * the accumulated forces\n */\n var updatePositions = function updatePositions(layoutInfo, options) {\n // var s = 'Updating positions';\n // logDebug(s);\n\n // Reset boundaries for compound nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length) {\n // logDebug(\"Resetting boundaries of compound node: \" + n.id);\n n.maxX = undefined;\n n.minX = undefined;\n n.maxY = undefined;\n n.minY = undefined;\n }\n }\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length || n.isLocked) {\n // No need to set compound or locked node position\n // logDebug(\"Skipping position update of node: \" + n.id);\n continue;\n }\n // s = \"Node: \" + n.id + \" Previous position: (\" +\n // n.positionX + \", \" + n.positionY + \").\";\n\n // Limit displacement in order to improve stability\n var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);\n n.positionX += tempForce.x;\n n.positionY += tempForce.y;\n n.offsetX = 0;\n n.offsetY = 0;\n n.minX = n.positionX - n.width;\n n.maxX = n.positionX + n.width;\n n.minY = n.positionY - n.height;\n n.maxY = n.positionY + n.height;\n // s += \" New Position: (\" + n.positionX + \", \" + n.positionY + \").\";\n // logDebug(s);\n\n // Update ancestry boudaries\n updateAncestryBoundaries(n, layoutInfo);\n }\n\n // Update size, position of compund nodes\n for (var i = 0; i < layoutInfo.nodeSize; i++) {\n var n = layoutInfo.layoutNodes[i];\n if (0 < n.children.length && !n.isLocked) {\n n.positionX = (n.maxX + n.minX) / 2;\n n.positionY = (n.maxY + n.minY) / 2;\n n.width = n.maxX - n.minX;\n n.height = n.maxY - n.minY;\n // s = \"Updating position, size of compound node \" + n.id;\n // s += \"\\nPositionX: \" + n.positionX + \", PositionY: \" + n.positionY;\n // s += \"\\nWidth: \" + n.width + \", Height: \" + n.height;\n // logDebug(s);\n }\n }\n };\n\n /**\n * @brief : Limits a force (forceX, forceY) to be not\n * greater (in modulo) than max.\n 8 Preserves force direction.\n */\n var limitForce = function limitForce(forceX, forceY, max) {\n // var s = \"Limiting force: (\" + forceX + \", \" + forceY + \"). Max: \" + max;\n var force = Math.sqrt(forceX * forceX + forceY * forceY);\n if (force > max) {\n var res = {\n x: max * forceX / force,\n y: max * forceY / force\n };\n } else {\n var res = {\n x: forceX,\n y: forceY\n };\n }\n\n // s += \".\\nResult: (\" + res.x + \", \" + res.y + \")\";\n // logDebug(s);\n\n return res;\n };\n\n /**\n * @brief : Function used for keeping track of compound node\n * sizes, since they should bound all their subnodes.\n */\n var updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) {\n // var s = \"Propagating new position/size of node \" + node.id;\n var parentId = node.parentId;\n if (null == parentId) {\n // If there's no parent, we are done\n // s += \". No parent node.\";\n // logDebug(s);\n return;\n }\n\n // Get Parent Node\n var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];\n var flag = false;\n\n // MaxX\n if (null == p.maxX || node.maxX + p.padRight > p.maxX) {\n p.maxX = node.maxX + p.padRight;\n flag = true;\n // s += \"\\nNew maxX for parent node \" + p.id + \": \" + p.maxX;\n }\n\n // MinX\n if (null == p.minX || node.minX - p.padLeft < p.minX) {\n p.minX = node.minX - p.padLeft;\n flag = true;\n // s += \"\\nNew minX for parent node \" + p.id + \": \" + p.minX;\n }\n\n // MaxY\n if (null == p.maxY || node.maxY + p.padBottom > p.maxY) {\n p.maxY = node.maxY + p.padBottom;\n flag = true;\n // s += \"\\nNew maxY for parent node \" + p.id + \": \" + p.maxY;\n }\n\n // MinY\n if (null == p.minY || node.minY - p.padTop < p.minY) {\n p.minY = node.minY - p.padTop;\n flag = true;\n // s += \"\\nNew minY for parent node \" + p.id + \": \" + p.minY;\n }\n\n // If updated boundaries, propagate changes upward\n if (flag) {\n // logDebug(s);\n return updateAncestryBoundaries(p, layoutInfo);\n }\n\n // s += \". No changes in boundaries/position of parent node \" + p.id;\n // logDebug(s);\n return;\n };\n var separateComponents = function separateComponents(layoutInfo, options) {\n var nodes = layoutInfo.layoutNodes;\n var components = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var cid = node.cmptId;\n var component = components[cid] = components[cid] || [];\n component.push(node);\n }\n var totalA = 0;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n c.x1 = Infinity;\n c.x2 = -Infinity;\n c.y1 = Infinity;\n c.y2 = -Infinity;\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n c.x1 = Math.min(c.x1, n.positionX - n.width / 2);\n c.x2 = Math.max(c.x2, n.positionX + n.width / 2);\n c.y1 = Math.min(c.y1, n.positionY - n.height / 2);\n c.y2 = Math.max(c.y2, n.positionY + n.height / 2);\n }\n c.w = c.x2 - c.x1;\n c.h = c.y2 - c.y1;\n totalA += c.w * c.h;\n }\n components.sort(function (c1, c2) {\n return c2.w * c2.h - c1.w * c1.h;\n });\n var x = 0;\n var y = 0;\n var usedW = 0;\n var rowH = 0;\n var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n if (!c) {\n continue;\n }\n for (var j = 0; j < c.length; j++) {\n var n = c[j];\n if (!n.isLocked) {\n n.positionX += x - c.x1;\n n.positionY += y - c.y1;\n }\n }\n x += c.w + options.componentSpacing;\n usedW += c.w + options.componentSpacing;\n rowH = Math.max(rowH, c.h);\n if (usedW > maxRowW) {\n y += rowH + options.componentSpacing;\n x = 0;\n usedW = 0;\n rowH = 0;\n }\n }\n };\n\n var defaults$3 = {\n fit: true,\n // whether to fit the viewport to the graph\n padding: 30,\n // padding used on fit\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n avoidOverlap: true,\n // prevents node overlap, may overflow boundingBox if not enough space\n avoidOverlapPadding: 10,\n // extra spacing around nodes when avoidOverlap: true\n nodeDimensionsIncludeLabels: false,\n // Excludes the label when calculating node bounding boxes for the layout algorithm\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n condense: false,\n // uses all available space on false, uses minimal space on true\n rows: undefined,\n // force num of rows in the grid\n cols: undefined,\n // force num of columns in the grid\n position: function position(node) {},\n // returns { row, col } for element\n sort: undefined,\n // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n };\n\n function GridLayout(options) {\n this.options = extend({}, defaults$3, options);\n }\n GridLayout.prototype.run = function () {\n var params = this.options;\n var options = params;\n var cy = params.cy;\n var eles = options.eles;\n var nodes = eles.nodes().not(':parent');\n if (options.sort) {\n nodes = nodes.sort(options.sort);\n }\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n if (bb.h === 0 || bb.w === 0) {\n eles.nodes().layoutPositions(this, options, function (ele) {\n return {\n x: bb.x1,\n y: bb.y1\n };\n });\n } else {\n // width/height * splits^2 = cells where splits is number of times to split width\n var cells = nodes.size();\n var splits = Math.sqrt(cells * bb.h / bb.w);\n var rows = Math.round(splits);\n var cols = Math.round(bb.w / bb.h * splits);\n var small = function small(val) {\n if (val == null) {\n return Math.min(rows, cols);\n } else {\n var min = Math.min(rows, cols);\n if (min == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var large = function large(val) {\n if (val == null) {\n return Math.max(rows, cols);\n } else {\n var max = Math.max(rows, cols);\n if (max == rows) {\n rows = val;\n } else {\n cols = val;\n }\n }\n };\n var oRows = options.rows;\n var oCols = options.cols != null ? options.cols : options.columns;\n\n // if rows or columns were set in options, use those values\n if (oRows != null && oCols != null) {\n rows = oRows;\n cols = oCols;\n } else if (oRows != null && oCols == null) {\n rows = oRows;\n cols = Math.ceil(cells / rows);\n } else if (oRows == null && oCols != null) {\n cols = oCols;\n rows = Math.ceil(cells / cols);\n }\n\n // otherwise use the automatic values and adjust accordingly\n\n // if rounding was up, see if we can reduce rows or columns\n else if (cols * rows > cells) {\n var sm = small();\n var lg = large();\n\n // reducing the small side takes away the most cells, so try it first\n if ((sm - 1) * lg >= cells) {\n small(sm - 1);\n } else if ((lg - 1) * sm >= cells) {\n large(lg - 1);\n }\n } else {\n // if rounding was too low, add rows or columns\n while (cols * rows < cells) {\n var _sm = small();\n var _lg = large();\n\n // try to add to larger side first (adds less in multiplication)\n if ((_lg + 1) * _sm >= cells) {\n large(_lg + 1);\n } else {\n small(_sm + 1);\n }\n }\n }\n var cellWidth = bb.w / cols;\n var cellHeight = bb.h / rows;\n if (options.condense) {\n cellWidth = 0;\n cellHeight = 0;\n }\n if (options.avoidOverlap) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n var pos = node._private.position;\n if (pos.x == null || pos.y == null) {\n // for bb\n pos.x = 0;\n pos.y = 0;\n }\n var nbb = node.layoutDimensions(options);\n var p = options.avoidOverlapPadding;\n var w = nbb.w + p;\n var h = nbb.h + p;\n cellWidth = Math.max(cellWidth, w);\n cellHeight = Math.max(cellHeight, h);\n }\n }\n var cellUsed = {}; // e.g. 'c-0-2' => true\n\n var used = function used(row, col) {\n return cellUsed['c-' + row + '-' + col] ? true : false;\n };\n var use = function use(row, col) {\n cellUsed['c-' + row + '-' + col] = true;\n };\n\n // to keep track of current cell position\n var row = 0;\n var col = 0;\n var moveToNextCell = function moveToNextCell() {\n col++;\n if (col >= cols) {\n col = 0;\n row++;\n }\n };\n\n // get a cache of all the manual positions\n var id2manPos = {};\n for (var _i = 0; _i < nodes.length; _i++) {\n var _node = nodes[_i];\n var rcPos = options.position(_node);\n if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) {\n // must have at least row or col def'd\n var _pos = {\n row: rcPos.row,\n col: rcPos.col\n };\n if (_pos.col === undefined) {\n // find unused col\n _pos.col = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.col++;\n }\n } else if (_pos.row === undefined) {\n // find unused row\n _pos.row = 0;\n while (used(_pos.row, _pos.col)) {\n _pos.row++;\n }\n }\n id2manPos[_node.id()] = _pos;\n use(_pos.row, _pos.col);\n }\n }\n var getPos = function getPos(element, i) {\n var x, y;\n if (element.locked() || element.isParent()) {\n return false;\n }\n\n // see if we have a manual position set\n var rcPos = id2manPos[element.id()];\n if (rcPos) {\n x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1;\n y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1;\n } else {\n // otherwise set automatically\n\n while (used(row, col)) {\n moveToNextCell();\n }\n x = col * cellWidth + cellWidth / 2 + bb.x1;\n y = row * cellHeight + cellHeight / 2 + bb.y1;\n use(row, col);\n moveToNextCell();\n }\n return {\n x: x,\n y: y\n };\n };\n nodes.layoutPositions(this, options, getPos);\n }\n return this; // chaining\n };\n\n // default layout options\n var defaults$2 = {\n ready: function ready() {},\n // on layoutready\n stop: function stop() {} // on layoutstop\n };\n\n // constructor\n // options : object containing layout options\n function NullLayout(options) {\n this.options = extend({}, defaults$2, options);\n }\n\n // runs the layout\n NullLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles; // elements to consider in the layout\n var layout = this;\n\n // cy is automatically populated for us in the constructor\n // (disable eslint for next line as this serves as example layout code to external developers)\n // eslint-disable-next-line no-unused-vars\n options.cy;\n layout.emit('layoutstart');\n\n // puts all nodes at (0, 0)\n // n.b. most layouts would use layoutPositions(), instead of positions() and manual events\n eles.nodes().positions(function () {\n return {\n x: 0,\n y: 0\n };\n });\n\n // trigger layoutready when each node has had its position set at least once\n layout.one('layoutready', options.ready);\n layout.emit('layoutready');\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n layout.one('layoutstop', options.stop);\n layout.emit('layoutstop');\n return this; // chaining\n };\n\n // called on continuous layouts to stop them before they finish\n NullLayout.prototype.stop = function () {\n return this; // chaining\n };\n\n var defaults$1 = {\n positions: undefined,\n // map of (node id) => (position obj); or function(node){ return somPos; }\n zoom: undefined,\n // the zoom level to set (prob want fit = false if set)\n pan: undefined,\n // the pan level to set (prob want fit = false if set)\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // padding on fit\n spacingFactor: undefined,\n // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts\n };\n\n function PresetLayout(options) {\n this.options = extend({}, defaults$1, options);\n }\n PresetLayout.prototype.run = function () {\n var options = this.options;\n var eles = options.eles;\n var nodes = eles.nodes();\n var posIsFn = fn$6(options.positions);\n function getPosition(node) {\n if (options.positions == null) {\n return copyPosition(node.position());\n }\n if (posIsFn) {\n return options.positions(node);\n }\n var pos = options.positions[node._private.data.id];\n if (pos == null) {\n return null;\n }\n return pos;\n }\n nodes.layoutPositions(this, options, function (node, i) {\n var position = getPosition(node);\n if (node.locked() || position == null) {\n return false;\n }\n return position;\n });\n return this; // chaining\n };\n\n var defaults = {\n fit: true,\n // whether to fit to viewport\n padding: 30,\n // fit padding\n boundingBox: undefined,\n // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }\n animate: false,\n // whether to transition the node positions\n animationDuration: 500,\n // duration of animation in ms if enabled\n animationEasing: undefined,\n // easing of animation if enabled\n animateFilter: function animateFilter(node, i) {\n return true;\n },\n // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts\n ready: undefined,\n // callback on layoutready\n stop: undefined,\n // callback on layoutstop\n transform: function transform(node, position) {\n return position;\n } // transform a given node position. Useful for changing flow direction in discrete layouts \n };\n\n function RandomLayout(options) {\n this.options = extend({}, defaults, options);\n }\n RandomLayout.prototype.run = function () {\n var options = this.options;\n var cy = options.cy;\n var eles = options.eles;\n var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : {\n x1: 0,\n y1: 0,\n w: cy.width(),\n h: cy.height()\n });\n var getPos = function getPos(node, i) {\n return {\n x: bb.x1 + Math.round(Math.random() * bb.w),\n y: bb.y1 + Math.round(Math.random() * bb.h)\n };\n };\n eles.nodes().layoutPositions(this, options, getPos);\n return this; // chaining\n };\n\n var layout = [{\n name: 'breadthfirst',\n impl: BreadthFirstLayout\n }, {\n name: 'circle',\n impl: CircleLayout\n }, {\n name: 'concentric',\n impl: ConcentricLayout\n }, {\n name: 'cose',\n impl: CoseLayout\n }, {\n name: 'grid',\n impl: GridLayout\n }, {\n name: 'null',\n impl: NullLayout\n }, {\n name: 'preset',\n impl: PresetLayout\n }, {\n name: 'random',\n impl: RandomLayout\n }];\n\n function NullRenderer(options) {\n this.options = options;\n this.notifications = 0; // for testing\n }\n\n var noop = function noop() {};\n var throwImgErr = function throwImgErr() {\n throw new Error('A headless instance can not render images');\n };\n NullRenderer.prototype = {\n recalculateRenderedStyle: noop,\n notify: function notify() {\n this.notifications++;\n },\n init: noop,\n isHeadless: function isHeadless() {\n return true;\n },\n png: throwImgErr,\n jpg: throwImgErr\n };\n\n var BRp$f = {};\n BRp$f.arrowShapeWidth = 0.3;\n BRp$f.registerArrowShapes = function () {\n var arrowShapes = this.arrowShapes = {};\n var renderer = this;\n\n // Contract for arrow shapes:\n // 0, 0 is arrow tip\n // (0, 1) is direction towards node\n // (1, 0) is right\n //\n // functional api:\n // collide: check x, y in shape\n // roughCollide: called before collide, no false negatives\n // draw: draw\n // spacing: dist(arrowTip, nodeBoundary)\n // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip\n\n var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) {\n var x1 = translation.x - size / 2 - padding;\n var x2 = translation.x + size / 2 + padding;\n var y1 = translation.y - size / 2 - padding;\n var y2 = translation.y + size / 2 + padding;\n var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2;\n return inside;\n };\n var transform = function transform(x, y, size, angle, translation) {\n var xRotated = x * Math.cos(angle) - y * Math.sin(angle);\n var yRotated = x * Math.sin(angle) + y * Math.cos(angle);\n var xScaled = xRotated * size;\n var yScaled = yRotated * size;\n var xTranslated = xScaled + translation.x;\n var yTranslated = yScaled + translation.y;\n return {\n x: xTranslated,\n y: yTranslated\n };\n };\n var transformPoints = function transformPoints(pts, size, angle, translation) {\n var retPts = [];\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push(transform(x, y, size, angle, translation));\n }\n return retPts;\n };\n var pointsToArr = function pointsToArr(pts) {\n var ret = [];\n for (var i = 0; i < pts.length; i++) {\n var p = pts[i];\n ret.push(p.x, p.y);\n }\n return ret;\n };\n var standardGap = function standardGap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2;\n };\n var defineArrowShape = function defineArrowShape(name, defn) {\n if (string(defn)) {\n defn = arrowShapes[defn];\n }\n arrowShapes[name] = extend({\n name: name,\n points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],\n collide: function collide(x, y, size, angle, translation, padding) {\n var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, points);\n return inside;\n },\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation) {\n var points = transformPoints(this.points, size, angle, translation);\n renderer.arrowShapeImpl('polygon')(context, points);\n },\n spacing: function spacing(edge) {\n return 0;\n },\n gap: standardGap\n }, defn);\n };\n defineArrowShape('none', {\n collide: falsify,\n roughCollide: falsify,\n draw: noop$1,\n spacing: zeroify,\n gap: zeroify\n });\n defineArrowShape('triangle', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3]\n });\n defineArrowShape('arrow', 'triangle');\n defineArrowShape('triangle-backcurve', {\n points: arrowShapes['triangle'].points,\n controlPoint: [0, -0.15],\n roughCollide: bbCollide,\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var ptsTrans = transformPoints(this.points, size, angle, translation);\n var ctrlPt = this.controlPoint;\n var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);\n },\n gap: function gap(edge) {\n return standardGap(edge) * 0.8;\n }\n });\n defineArrowShape('triangle-tee', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var teePts = transformPoints(this.pointsTee, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, teePts);\n }\n });\n defineArrowShape('circle-triangle', {\n radius: 0.15,\n pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n return pointInsidePolygonPoints(x, y, triPts) || circleInside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.pointsTr, size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('triangle-cross', {\n points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],\n baseCrossLinePts: [-0.15, -0.4,\n // first half of the rectangle\n -0.15, -0.4, 0.15, -0.4,\n // second half of the rectangle\n 0.15, -0.4],\n crossLinePts: function crossLinePts(size, edgeWidth) {\n // shift points so that the distance between the cross points matches edge width\n var p = this.baseCrossLinePts.slice();\n var shiftFactor = edgeWidth / size;\n var y0 = 3;\n var y1 = 5;\n p[y0] = p[y0] - shiftFactor;\n p[y1] = p[y1] - shiftFactor;\n return p;\n },\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation));\n var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation));\n var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n var triPts = transformPoints(this.points, size, angle, translation);\n var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation);\n renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts);\n }\n });\n defineArrowShape('vee', {\n points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],\n gap: function gap(edge) {\n return standardGap(edge) * 0.525;\n }\n });\n defineArrowShape('circle', {\n radius: 0.15,\n collide: function collide(x, y, size, angle, translation, edgeWidth, padding) {\n var t = translation;\n var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2);\n return inside;\n },\n draw: function draw(context, size, angle, translation, edgeWidth) {\n renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size);\n },\n spacing: function spacing(edge) {\n return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius;\n }\n });\n defineArrowShape('tee', {\n points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],\n spacing: function spacing(edge) {\n return 1;\n },\n gap: function gap(edge) {\n return 1;\n }\n });\n defineArrowShape('square', {\n points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3]\n });\n defineArrowShape('diamond', {\n points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],\n gap: function gap(edge) {\n return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n defineArrowShape('chevron', {\n points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],\n gap: function gap(edge) {\n return 0.95 * edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value;\n }\n });\n };\n\n var BRp$e = {};\n\n // Project mouse\n BRp$e.projectIntoViewport = function (clientX, clientY) {\n var cy = this.cy;\n var offsets = this.findContainerClientCoords();\n var offsetLeft = offsets[0];\n var offsetTop = offsets[1];\n var scale = offsets[4];\n var pan = cy.pan();\n var zoom = cy.zoom();\n var x = ((clientX - offsetLeft) / scale - pan.x) / zoom;\n var y = ((clientY - offsetTop) / scale - pan.y) / zoom;\n return [x, y];\n };\n BRp$e.findContainerClientCoords = function () {\n if (this.containerBB) {\n return this.containerBB;\n }\n var container = this.container;\n var rect = container.getBoundingClientRect();\n var style = this.cy.window().getComputedStyle(container);\n var styleValue = function styleValue(name) {\n return parseFloat(style.getPropertyValue(name));\n };\n var padding = {\n left: styleValue('padding-left'),\n right: styleValue('padding-right'),\n top: styleValue('padding-top'),\n bottom: styleValue('padding-bottom')\n };\n var border = {\n left: styleValue('border-left-width'),\n right: styleValue('border-right-width'),\n top: styleValue('border-top-width'),\n bottom: styleValue('border-bottom-width')\n };\n var clientWidth = container.clientWidth;\n var clientHeight = container.clientHeight;\n var paddingHor = padding.left + padding.right;\n var paddingVer = padding.top + padding.bottom;\n var borderHor = border.left + border.right;\n var scale = rect.width / (clientWidth + borderHor);\n var unscaledW = clientWidth - paddingHor;\n var unscaledH = clientHeight - paddingVer;\n var left = rect.left + padding.left + border.left;\n var top = rect.top + padding.top + border.top;\n return this.containerBB = [left, top, unscaledW, unscaledH, scale];\n };\n BRp$e.invalidateContainerClientCoordsCache = function () {\n this.containerBB = null;\n };\n BRp$e.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) {\n return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0];\n };\n BRp$e.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) {\n var self = this;\n var r = this;\n var eles = r.getCachedZSortedEles();\n var near = []; // 1 node max, 1 edge max\n var zoom = r.cy.zoom();\n var hasCompounds = r.cy.hasCompoundNodes();\n var edgeThreshold = (isTouch ? 24 : 8) / zoom;\n var nodeThreshold = (isTouch ? 8 : 2) / zoom;\n var labelThreshold = (isTouch ? 8 : 2) / zoom;\n var minSqDist = Infinity;\n var nearEdge;\n var nearNode;\n if (interactiveElementsOnly) {\n eles = eles.interactive;\n }\n function addEle(ele, sqDist) {\n if (ele.isNode()) {\n if (nearNode) {\n return; // can't replace node\n } else {\n nearNode = ele;\n near.push(ele);\n }\n }\n if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) {\n if (nearEdge) {\n // then replace existing edge\n // can replace only if same z-index\n if (nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value && nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value) {\n for (var i = 0; i < near.length; i++) {\n if (near[i].isEdge()) {\n near[i] = ele;\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n break;\n }\n }\n }\n } else {\n near.push(ele);\n nearEdge = ele;\n minSqDist = sqDist != null ? sqDist : minSqDist;\n }\n }\n }\n function checkNode(node) {\n var width = node.outerWidth() + 2 * nodeThreshold;\n var height = node.outerHeight() + 2 * nodeThreshold;\n var hw = width / 2;\n var hh = height / 2;\n var pos = node.position();\n if (pos.x - hw <= x && x <= pos.x + hw // bb check x\n && pos.y - hh <= y && y <= pos.y + hh // bb check y\n ) {\n var shape = r.nodeShapes[self.getNodeShape(node)];\n if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) {\n addEle(node, 0);\n return true;\n }\n }\n }\n function checkEdge(edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var styleWidth = edge.pstyle('width').pfValue;\n var scale = edge.pstyle('arrow-scale').value;\n var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre\n var widthSq = width * width;\n var width2 = width * 2;\n var src = _p.source;\n var tgt = _p.target;\n var sqDist;\n if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') {\n var pts = rs.allpts;\n for (var i = 0; i + 3 < pts.length; i += 2) {\n if (inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n var pts = rs.allpts;\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n if (inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) {\n addEle(edge, sqDist);\n return true;\n }\n }\n }\n\n // if we're close to the edge but didn't hit it, maybe we hit its arrows\n\n var src = src || _p.source;\n var tgt = tgt || _p.target;\n var arSize = self.getArrowWidth(styleWidth, scale);\n var arrows = [{\n name: 'source',\n x: rs.arrowStartX,\n y: rs.arrowStartY,\n angle: rs.srcArrowAngle\n }, {\n name: 'target',\n x: rs.arrowEndX,\n y: rs.arrowEndY,\n angle: rs.tgtArrowAngle\n }, {\n name: 'mid-source',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midsrcArrowAngle\n }, {\n name: 'mid-target',\n x: rs.midX,\n y: rs.midY,\n angle: rs.midtgtArrowAngle\n }];\n for (var i = 0; i < arrows.length; i++) {\n var ar = arrows[i];\n var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value];\n var edgeWidth = edge.pstyle('width').pfValue;\n if (shape.roughCollide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, {\n x: ar.x,\n y: ar.y\n }, edgeWidth, edgeThreshold)) {\n addEle(edge);\n return true;\n }\n }\n\n // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence)\n if (hasCompounds && near.length > 0) {\n checkNode(src);\n checkNode(tgt);\n }\n }\n function preprop(obj, name, pre) {\n return getPrefixedProperty(obj, name, pre);\n }\n function checkLabel(ele, prefix) {\n var _p = ele._private;\n var th = labelThreshold;\n var prefixDash;\n if (prefix) {\n prefixDash = prefix + '-';\n } else {\n prefixDash = '';\n }\n ele.boundingBox();\n var bb = _p.labelBounds[prefix || 'main'];\n var text = ele.pstyle(prefixDash + 'label').value;\n var eventsEnabled = ele.pstyle('text-events').strValue === 'yes';\n if (!eventsEnabled || !text) {\n return;\n }\n var lx = preprop(_p.rscratch, 'labelX', prefix);\n var ly = preprop(_p.rscratch, 'labelY', prefix);\n var theta = preprop(_p.rscratch, 'labelAngle', prefix);\n var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue;\n var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue;\n var lx1 = bb.x1 - th - ox; // (-ox, -oy) as bb already includes margin\n var lx2 = bb.x2 + th - ox; // and rotation is about (lx, ly)\n var ly1 = bb.y1 - th - oy;\n var ly2 = bb.y2 + th - oy;\n if (theta) {\n var cos = Math.cos(theta);\n var sin = Math.sin(theta);\n var rotate = function rotate(x, y) {\n x = x - lx;\n y = y - ly;\n return {\n x: x * cos - y * sin + lx,\n y: x * sin + y * cos + ly\n };\n };\n var px1y1 = rotate(lx1, ly1);\n var px1y2 = rotate(lx1, ly2);\n var px2y1 = rotate(lx2, ly1);\n var px2y2 = rotate(lx2, ly2);\n var points = [\n // with the margin added after the rotation is applied\n px1y1.x + ox, px1y1.y + oy, px2y1.x + ox, px2y1.y + oy, px2y2.x + ox, px2y2.y + oy, px1y2.x + ox, px1y2.y + oy];\n if (pointInsidePolygonPoints(x, y, points)) {\n addEle(ele);\n return true;\n }\n } else {\n // do a cheaper bb check\n if (inBoundingBox(bb, x, y)) {\n addEle(ele);\n return true;\n }\n }\n }\n for (var i = eles.length - 1; i >= 0; i--) {\n // reverse order for precedence\n var ele = eles[i];\n if (ele.isNode()) {\n checkNode(ele) || checkLabel(ele);\n } else {\n // then edge\n checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target');\n }\n }\n return near;\n };\n\n // 'Give me everything from this box'\n BRp$e.getAllInBox = function (x1, y1, x2, y2) {\n var eles = this.getCachedZSortedEles().interactive;\n var box = [];\n var x1c = Math.min(x1, x2);\n var x2c = Math.max(x1, x2);\n var y1c = Math.min(y1, y2);\n var y2c = Math.max(y1, y2);\n x1 = x1c;\n x2 = x2c;\n y1 = y1c;\n y2 = y2c;\n var boxBb = makeBoundingBox({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n for (var e = 0; e < eles.length; e++) {\n var ele = eles[e];\n if (ele.isNode()) {\n var node = ele;\n var nodeBb = node.boundingBox({\n includeNodes: true,\n includeEdges: false,\n includeLabels: false\n });\n if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {\n box.push(node);\n }\n } else {\n var edge = ele;\n var _p = edge._private;\n var rs = _p.rscratch;\n if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {\n continue;\n }\n if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {\n continue;\n }\n if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') {\n var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;\n var allInside = true;\n for (var i = 0; i < pts.length; i++) {\n if (!pointInBoundingBox(boxBb, pts[i])) {\n allInside = false;\n break;\n }\n }\n if (allInside) {\n box.push(edge);\n }\n } else if (rs.edgeType === 'haystack' || rs.edgeType === 'straight') {\n box.push(edge);\n }\n }\n }\n return box;\n };\n\n var BRp$d = {};\n BRp$d.calculateArrowAngles = function (edge) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n var isBezier = rs.edgeType === 'bezier';\n var isMultibezier = rs.edgeType === 'multibezier';\n var isSegments = rs.edgeType === 'segments';\n var isCompound = rs.edgeType === 'compound';\n var isSelf = rs.edgeType === 'self';\n\n // Displacement gives direction for arrowhead orientation\n var dispX, dispY;\n var startX, startY, endX, endY, midX, midY;\n if (isHaystack) {\n startX = rs.haystackPts[0];\n startY = rs.haystackPts[1];\n endX = rs.haystackPts[2];\n endY = rs.haystackPts[3];\n } else {\n startX = rs.arrowStartX;\n startY = rs.arrowStartY;\n endX = rs.arrowEndX;\n endY = rs.arrowEndY;\n }\n midX = rs.midX;\n midY = rs.midY;\n\n // source\n //\n\n if (isSegments) {\n dispX = startX - rs.segpts[0];\n dispY = startY - rs.segpts[1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var bX = qbezierAt(pts[0], pts[2], pts[4], 0.1);\n var bY = qbezierAt(pts[1], pts[3], pts[5], 0.1);\n dispX = startX - bX;\n dispY = startY - bY;\n } else {\n dispX = startX - midX;\n dispY = startY - midY;\n }\n rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // mid target\n //\n\n var midX = rs.midX;\n var midY = rs.midY;\n if (isHaystack) {\n midX = (startX + endX) / 2;\n midY = (startY + endY) / 2;\n }\n dispX = endX - startX;\n dispY = endY - startY;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) {\n var i2 = pts.length / 2;\n var i1 = i2 - 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n } else {\n var i2 = pts.length / 2 - 1;\n var i1 = i2 - 2;\n var i3 = i2 + 2;\n dispX = pts[i2] - pts[i1];\n dispY = pts[i2 + 1] - pts[i1 + 1];\n }\n } else if (isMultibezier || isCompound || isSelf) {\n var pts = rs.allpts;\n var cpts = rs.ctrlpts;\n var bp0x, bp0y;\n var bp1x, bp1y;\n if (cpts.length / 2 % 2 === 0) {\n var p0 = pts.length / 2 - 1; // startpt\n var ic = p0 + 2;\n var p1 = ic + 2;\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001);\n } else {\n var ic = pts.length / 2 - 1; // ctrpt\n var p0 = ic - 2; // startpt\n var p1 = ic + 2; // endpt\n\n bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999);\n bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999);\n bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.5);\n bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5);\n }\n dispX = bp1x - bp0x;\n dispY = bp1y - bp0y;\n }\n rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);\n rs.midDispX = dispX;\n rs.midDispY = dispY;\n\n // mid source\n //\n\n dispX *= -1;\n dispY *= -1;\n if (isSegments) {\n var pts = rs.allpts;\n if (pts.length / 2 % 2 === 0) ; else {\n var i2 = pts.length / 2 - 1;\n var i3 = i2 + 2;\n dispX = -(pts[i3] - pts[i2]);\n dispY = -(pts[i3 + 1] - pts[i2 + 1]);\n }\n }\n rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);\n\n // target\n //\n\n if (isSegments) {\n dispX = endX - rs.segpts[rs.segpts.length - 2];\n dispY = endY - rs.segpts[rs.segpts.length - 1];\n } else if (isMultibezier || isCompound || isSelf || isBezier) {\n var pts = rs.allpts;\n var l = pts.length;\n var bX = qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9);\n var bY = qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9);\n dispX = endX - bX;\n dispY = endY - bY;\n } else {\n dispX = endX - midX;\n dispY = endY - midY;\n }\n rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);\n };\n BRp$d.getArrowWidth = BRp$d.getArrowHeight = function (edgeWidth, scale) {\n var cache = this.arrowWidthCache = this.arrowWidthCache || {};\n var cachedVal = cache[edgeWidth + ', ' + scale];\n if (cachedVal) {\n return cachedVal;\n }\n cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;\n cache[edgeWidth + ', ' + scale] = cachedVal;\n return cachedVal;\n };\n\n var BRp$c = {};\n BRp$c.findMidptPtsEtc = function (edge, pairInfo) {\n var posPts = pairInfo.posPts,\n intersectionPts = pairInfo.intersectionPts,\n vectorNormInverse = pairInfo.vectorNormInverse;\n var midptPts;\n\n // n.b. assumes all edges in bezier bundle have same endpoints specified\n var srcManEndpt = edge.pstyle('source-endpoint');\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var haveManualEndPts = srcManEndpt.units != null && tgtManEndpt.units != null;\n var recalcVectorNormInverse = function recalcVectorNormInverse(x1, y1, x2, y2) {\n var dy = y2 - y1;\n var dx = x2 - x1;\n var l = Math.sqrt(dx * dx + dy * dy);\n return {\n x: -dy / l,\n y: dx / l\n };\n };\n var edgeDistances = edge.pstyle('edge-distances').value;\n switch (edgeDistances) {\n case 'node-position':\n midptPts = posPts;\n break;\n case 'intersection':\n midptPts = intersectionPts;\n break;\n case 'endpoints':\n {\n if (haveManualEndPts) {\n var _this$manualEndptToPx = this.manualEndptToPx(edge.source()[0], srcManEndpt),\n _this$manualEndptToPx2 = _slicedToArray(_this$manualEndptToPx, 2),\n x1 = _this$manualEndptToPx2[0],\n y1 = _this$manualEndptToPx2[1];\n var _this$manualEndptToPx3 = this.manualEndptToPx(edge.target()[0], tgtManEndpt),\n _this$manualEndptToPx4 = _slicedToArray(_this$manualEndptToPx3, 2),\n x2 = _this$manualEndptToPx4[0],\n y2 = _this$manualEndptToPx4[1];\n var endPts = {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n };\n vectorNormInverse = recalcVectorNormInverse(x1, y1, x2, y2);\n midptPts = endPts;\n } else {\n warn(\"Edge \".concat(edge.id(), \" has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).\"));\n midptPts = intersectionPts; // back to default\n }\n\n break;\n }\n }\n return {\n midptPts: midptPts,\n vectorNormInverse: vectorNormInverse\n };\n };\n BRp$c.findHaystackPoints = function (edges) {\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var rs = _p.rscratch;\n if (!rs.haystack) {\n var angle = Math.random() * 2 * Math.PI;\n rs.source = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n angle = Math.random() * 2 * Math.PI;\n rs.target = {\n x: Math.cos(angle),\n y: Math.sin(angle)\n };\n }\n var src = _p.source;\n var tgt = _p.target;\n var srcPos = src.position();\n var tgtPos = tgt.position();\n var srcW = src.width();\n var tgtW = tgt.width();\n var srcH = src.height();\n var tgtH = tgt.height();\n var radius = edge.pstyle('haystack-radius').value;\n var halfRadius = radius / 2; // b/c have to half width/height\n\n rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];\n rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;\n rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;\n\n // always override as haystack in case set to different type previously\n rs.edgeType = 'haystack';\n rs.haystack = true;\n this.storeEdgeProjections(edge);\n this.calculateArrowAngles(edge);\n this.recalculateEdgeLabelProjections(edge);\n this.calculateLabelAngles(edge);\n }\n };\n BRp$c.findSegmentsPoints = function (edge, pairInfo) {\n // Segments (multiple straight lines)\n\n var rs = edge._private.rscratch;\n var segmentWs = edge.pstyle('segment-weights');\n var segmentDs = edge.pstyle('segment-distances');\n var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);\n rs.edgeType = 'segments';\n rs.segpts = [];\n for (var s = 0; s < segmentsN; s++) {\n var w = segmentWs.pfValue[s];\n var d = segmentDs.pfValue[s];\n var w1 = 1 - w;\n var w2 = w;\n var _this$findMidptPtsEtc = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);\n }\n };\n BRp$c.findLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Self-edge\n\n var rs = edge._private.rscratch;\n var dirCounts = pairInfo.dirCounts,\n srcPos = pairInfo.srcPos;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var loopDir = edge.pstyle('loop-direction').pfValue;\n var loopSwp = edge.pstyle('loop-sweep').pfValue;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n rs.edgeType = 'self';\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopAngle = loopDir - Math.PI / 2;\n var outAngle = loopAngle - loopSwp / 2;\n var inAngle = loopAngle + loopSwp / 2;\n\n // increase by step size for overlapping loops, keyed on direction and sweep values\n var dc = String(loopDir + '_' + loopSwp);\n j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc];\n rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];\n };\n BRp$c.findCompoundLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) {\n // Compound edge\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'compound';\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var j = i;\n var loopDist = stepSize;\n if (edgeIsUnbundled) {\n j = 0;\n loopDist = ctrlptDist;\n }\n var loopW = 50;\n var loopaPos = {\n x: srcPos.x - srcW / 2,\n y: srcPos.y - srcH / 2\n };\n var loopbPos = {\n x: tgtPos.x - tgtW / 2,\n y: tgtPos.y - tgtH / 2\n };\n var loopPos = {\n x: Math.min(loopaPos.x, loopbPos.x),\n y: Math.min(loopaPos.y, loopbPos.y)\n };\n\n // avoids cases with impossible beziers\n var minCompoundStretch = 0.5;\n var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));\n var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));\n rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];\n };\n BRp$c.findStraightEdgePoints = function (edge) {\n // Straight edge within bundle\n\n edge._private.rscratch.edgeType = 'straight';\n };\n BRp$c.findBezierPoints = function (edge, pairInfo, i, edgeIsUnbundled, edgeIsSwapped) {\n var rs = edge._private.rscratch;\n var stepSize = edge.pstyle('control-point-step-size').pfValue;\n var ctrlptDists = edge.pstyle('control-point-distances');\n var ctrlptWs = edge.pstyle('control-point-weights');\n var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;\n var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined;\n var ctrlptWeight = ctrlptWs.value[0];\n\n // (Multi)bezier\n\n var multi = edgeIsUnbundled;\n rs.edgeType = multi ? 'multibezier' : 'bezier';\n rs.ctrlpts = [];\n for (var b = 0; b < bezierN; b++) {\n var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i) * stepSize * (edgeIsSwapped ? -1 : 1);\n var manctrlptDist = void 0;\n var sign = signum(normctrlptDist);\n if (multi) {\n ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size\n ctrlptWeight = ctrlptWs.value[b];\n }\n if (edgeIsUnbundled) {\n // multi or single unbundled\n manctrlptDist = ctrlptDist;\n } else {\n manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined;\n }\n var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist;\n var w1 = 1 - ctrlptWeight;\n var w2 = ctrlptWeight;\n var _this$findMidptPtsEtc2 = this.findMidptPtsEtc(edge, pairInfo),\n midptPts = _this$findMidptPtsEtc2.midptPts,\n vectorNormInverse = _this$findMidptPtsEtc2.vectorNormInverse;\n var adjustedMidpt = {\n x: midptPts.x1 * w1 + midptPts.x2 * w2,\n y: midptPts.y1 * w1 + midptPts.y2 * w2\n };\n rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);\n }\n };\n BRp$c.findTaxiPoints = function (edge, pairInfo) {\n // Taxicab geometry with two turns maximum\n\n var rs = edge._private.rscratch;\n rs.edgeType = 'segments';\n var VERTICAL = 'vertical';\n var HORIZONTAL = 'horizontal';\n var LEFTWARD = 'leftward';\n var RIGHTWARD = 'rightward';\n var DOWNWARD = 'downward';\n var UPWARD = 'upward';\n var AUTO = 'auto';\n var posPts = pairInfo.posPts,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH;\n var edgeDistances = edge.pstyle('edge-distances').value;\n var dIncludesNodeBody = edgeDistances !== 'node-position';\n var taxiDir = edge.pstyle('taxi-direction').value;\n var rawTaxiDir = taxiDir; // unprocessed value\n var taxiTurn = edge.pstyle('taxi-turn');\n var turnIsPercent = taxiTurn.units === '%';\n var taxiTurnPfVal = taxiTurn.pfValue;\n var turnIsNegative = taxiTurnPfVal < 0; // i.e. from target side\n var minD = edge.pstyle('taxi-turn-min-distance').pfValue;\n var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;\n var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;\n var pdx = posPts.x2 - posPts.x1;\n var pdy = posPts.y2 - posPts.y1;\n\n // take away the effective w/h from the magnitude of the delta value\n var subDWH = function subDWH(dxy, dwh) {\n if (dxy > 0) {\n return Math.max(dxy - dwh, 0);\n } else {\n return Math.min(dxy + dwh, 0);\n }\n };\n var dx = subDWH(pdx, dw);\n var dy = subDWH(pdy, dh);\n var isExplicitDir = false;\n if (rawTaxiDir === AUTO) {\n taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;\n } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {\n taxiDir = VERTICAL;\n isExplicitDir = true;\n } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {\n taxiDir = HORIZONTAL;\n isExplicitDir = true;\n }\n var isVert = taxiDir === VERTICAL;\n var l = isVert ? dy : dx;\n var pl = isVert ? pdy : pdx;\n var sgnL = signum(pl);\n var forcedDir = false;\n if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) // forcing in this case would cause weird growing in the opposite direction\n && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {\n sgnL *= -1;\n l = sgnL * Math.abs(l);\n forcedDir = true;\n }\n var d;\n if (turnIsPercent) {\n var p = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;\n d = p * l;\n } else {\n var k = taxiTurnPfVal < 0 ? l : 0;\n d = k + taxiTurnPfVal * sgnL;\n }\n var getIsTooClose = function getIsTooClose(d) {\n return Math.abs(d) < minD || Math.abs(d) >= Math.abs(l);\n };\n var isTooCloseSrc = getIsTooClose(d);\n var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));\n var isTooClose = isTooCloseSrc || isTooCloseTgt;\n if (isTooClose && !forcedDir) {\n // non-ideal routing\n if (isVert) {\n // vertical fallbacks\n var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;\n var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;\n if (lShapeInsideSrc) {\n // horizontal Z-shape (direction not respected)\n var x = (posPts.x1 + posPts.x2) / 2;\n var y1 = posPts.y1,\n y2 = posPts.y2;\n rs.segpts = [x, y1, x, y2];\n } else if (lShapeInsideTgt) {\n // vertical Z-shape (distance not respected)\n var y = (posPts.y1 + posPts.y2) / 2;\n var x1 = posPts.x1,\n x2 = posPts.x2;\n rs.segpts = [x1, y, x2, y];\n } else {\n // L-shape fallback (turn distance not respected, but works well with tree siblings)\n rs.segpts = [posPts.x1, posPts.y2];\n }\n } else {\n // horizontal fallbacks\n var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;\n var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;\n if (_lShapeInsideSrc) {\n // vertical Z-shape (direction not respected)\n var _y = (posPts.y1 + posPts.y2) / 2;\n var _x = posPts.x1,\n _x2 = posPts.x2;\n rs.segpts = [_x, _y, _x2, _y];\n } else if (_lShapeInsideTgt) {\n // horizontal Z-shape (turn distance not respected)\n var _x3 = (posPts.x1 + posPts.x2) / 2;\n var _y2 = posPts.y1,\n _y3 = posPts.y2;\n rs.segpts = [_x3, _y2, _x3, _y3];\n } else {\n // L-shape (turn distance not respected, but works well for tree siblings)\n rs.segpts = [posPts.x2, posPts.y1];\n }\n }\n } else {\n // ideal routing\n if (isVert) {\n var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);\n var _x4 = posPts.x1,\n _x5 = posPts.x2;\n rs.segpts = [_x4, _y4, _x5, _y4];\n } else {\n // horizontal\n var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);\n var _y5 = posPts.y1,\n _y6 = posPts.y2;\n rs.segpts = [_x6, _y5, _x6, _y6];\n }\n }\n };\n BRp$c.tryToCorrectInvalidPoints = function (edge, pairInfo) {\n var rs = edge._private.rscratch;\n\n // can only correct beziers for now...\n if (rs.edgeType === 'bezier') {\n var srcPos = pairInfo.srcPos,\n tgtPos = pairInfo.tgtPos,\n srcW = pairInfo.srcW,\n srcH = pairInfo.srcH,\n tgtW = pairInfo.tgtW,\n tgtH = pairInfo.tgtH,\n srcShape = pairInfo.srcShape,\n tgtShape = pairInfo.tgtShape;\n var badStart = !number$1(rs.startX) || !number$1(rs.startY);\n var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY);\n var badEnd = !number$1(rs.endX) || !number$1(rs.endY);\n var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY);\n var minCpADistFactor = 3;\n var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n var minCpADist = minCpADistFactor * arrowW;\n var startACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.startX,\n y: rs.startY\n });\n var closeStartACp = startACpDist < minCpADist;\n var endACpDist = dist({\n x: rs.ctrlpts[0],\n y: rs.ctrlpts[1]\n }, {\n x: rs.endX,\n y: rs.endY\n });\n var closeEndACp = endACpDist < minCpADist;\n var overlapping = false;\n if (badStart || badAStart || closeStartACp) {\n overlapping = true;\n\n // project control point along line from src centre to outside the src shape\n // (otherwise intersection will yield nothing)\n var cpD = {\n // delta\n x: rs.ctrlpts[0] - srcPos.x,\n y: rs.ctrlpts[1] - srcPos.y\n };\n var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line\n var cpM = {\n // normalised delta\n x: cpD.x / cpL,\n y: cpD.y / cpL\n };\n var radius = Math.max(srcW, srcH);\n var cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + cpM.x * 2 * radius,\n y: rs.ctrlpts[1] + cpM.y * 2 * radius\n };\n var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0);\n if (closeStartACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);\n } else {\n rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;\n rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;\n }\n }\n if (badEnd || badAEnd || closeEndACp) {\n overlapping = true;\n\n // project control point along line from tgt centre to outside the tgt shape\n // (otherwise intersection will yield nothing)\n var _cpD = {\n // delta\n x: rs.ctrlpts[0] - tgtPos.x,\n y: rs.ctrlpts[1] - tgtPos.y\n };\n var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); // length of line\n var _cpM = {\n // normalised delta\n x: _cpD.x / _cpL,\n y: _cpD.y / _cpL\n };\n var _radius = Math.max(srcW, srcH);\n var _cpProj = {\n // *2 radius guarantees outside shape\n x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,\n y: rs.ctrlpts[1] + _cpM.y * 2 * _radius\n };\n var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0);\n if (closeEndACp) {\n rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);\n rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);\n } else {\n rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;\n rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;\n }\n }\n if (overlapping) {\n // recalc endpts\n this.findEndpoints(edge);\n }\n }\n };\n BRp$c.storeAllpts = function (edge) {\n var rs = edge._private.rscratch;\n if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {\n // ctrl pt itself\n rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);\n\n // the midpt between ctrlpts as intermediate destination pts\n if (b + 3 < rs.ctrlpts.length) {\n rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);\n }\n }\n rs.allpts.push(rs.endX, rs.endY);\n var m, mt;\n if (rs.ctrlpts.length / 2 % 2 === 0) {\n m = rs.allpts.length / 2 - 1;\n rs.midX = rs.allpts[m];\n rs.midY = rs.allpts[m + 1];\n } else {\n m = rs.allpts.length / 2 - 3;\n mt = 0.5;\n rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);\n rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);\n }\n } else if (rs.edgeType === 'straight') {\n // need to calc these after endpts\n rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];\n\n // default midpt for labels etc\n rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;\n rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;\n } else if (rs.edgeType === 'segments') {\n rs.allpts = [];\n rs.allpts.push(rs.startX, rs.startY);\n rs.allpts.push.apply(rs.allpts, rs.segpts);\n rs.allpts.push(rs.endX, rs.endY);\n if (rs.segpts.length % 4 === 0) {\n var i2 = rs.segpts.length / 2;\n var i1 = i2 - 2;\n rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2;\n rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2;\n } else {\n var _i = rs.segpts.length / 2 - 1;\n rs.midX = rs.segpts[_i];\n rs.midY = rs.segpts[_i + 1];\n }\n }\n };\n BRp$c.checkForInvalidEdgeWarning = function (edge) {\n var rs = edge[0]._private.rscratch;\n if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) {\n rs.loggedErr = false;\n } else {\n if (!rs.loggedErr) {\n rs.loggedErr = true;\n warn('Edge `' + edge.id() + '` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.');\n }\n }\n };\n BRp$c.findEdgeControlPoints = function (edges) {\n var _this = this;\n if (!edges || edges.length === 0) {\n return;\n }\n var r = this;\n var cy = r.cy;\n var hasCompounds = cy.hasCompoundNodes();\n var hashTable = {\n map: new Map$2(),\n get: function get(pairId) {\n var map2 = this.map.get(pairId[0]);\n if (map2 != null) {\n return map2.get(pairId[1]);\n } else {\n return null;\n }\n },\n set: function set(pairId, val) {\n var map2 = this.map.get(pairId[0]);\n if (map2 == null) {\n map2 = new Map$2();\n this.map.set(pairId[0], map2);\n }\n map2.set(pairId[1], val);\n }\n };\n var pairIds = [];\n var haystackEdges = [];\n\n // create a table of edge (src, tgt) => list of edges between them\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var _p = edge._private;\n var curveStyle = edge.pstyle('curve-style').value;\n\n // ignore edges who are not to be displayed\n // they shouldn't take up space\n if (edge.removed() || !edge.takesUpSpace()) {\n continue;\n }\n if (curveStyle === 'haystack') {\n haystackEdges.push(edge);\n continue;\n }\n var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'straight' || curveStyle === 'straight-triangle' || curveStyle === 'taxi';\n var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier';\n var src = _p.source;\n var tgt = _p.target;\n var srcIndex = src.poolIndex();\n var tgtIndex = tgt.poolIndex();\n var pairId = [srcIndex, tgtIndex].sort();\n var tableEntry = hashTable.get(pairId);\n if (tableEntry == null) {\n tableEntry = {\n eles: []\n };\n hashTable.set(pairId, tableEntry);\n pairIds.push(pairId);\n }\n tableEntry.eles.push(edge);\n if (edgeIsUnbundled) {\n tableEntry.hasUnbundled = true;\n }\n if (edgeIsBezier) {\n tableEntry.hasBezier = true;\n }\n }\n\n // for each pair (src, tgt), create the ctrl pts\n // Nested for loop is OK; total number of iterations for both loops = edgeCount\n var _loop = function _loop(p) {\n var pairId = pairIds[p];\n var pairInfo = hashTable.get(pairId);\n var swappedpairInfo = void 0;\n if (!pairInfo.hasUnbundled) {\n var pllEdges = pairInfo.eles[0].parallelEdges().filter(function (e) {\n return e.isBundledBezier();\n });\n clearArray(pairInfo.eles);\n pllEdges.forEach(function (edge) {\n return pairInfo.eles.push(edge);\n });\n\n // for each pair id, the edges should be sorted by index\n pairInfo.eles.sort(function (edge1, edge2) {\n return edge1.poolIndex() - edge2.poolIndex();\n });\n }\n var firstEdge = pairInfo.eles[0];\n var src = firstEdge.source();\n var tgt = firstEdge.target();\n\n // make sure src/tgt distinction is consistent w.r.t. pairId\n if (src.poolIndex() > tgt.poolIndex()) {\n var temp = src;\n src = tgt;\n tgt = temp;\n }\n var srcPos = pairInfo.srcPos = src.position();\n var tgtPos = pairInfo.tgtPos = tgt.position();\n var srcW = pairInfo.srcW = src.outerWidth();\n var srcH = pairInfo.srcH = src.outerHeight();\n var tgtW = pairInfo.tgtW = tgt.outerWidth();\n var tgtH = pairInfo.tgtH = tgt.outerHeight();\n var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src)];\n var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt)];\n pairInfo.dirCounts = {\n 'north': 0,\n 'west': 0,\n 'south': 0,\n 'east': 0,\n 'northwest': 0,\n 'southwest': 0,\n 'northeast': 0,\n 'southeast': 0\n };\n for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {\n var _edge = pairInfo.eles[_i2];\n var rs = _edge[0]._private.rscratch;\n var _curveStyle = _edge.pstyle('curve-style').value;\n var _edgeIsUnbundled = _curveStyle === 'unbundled-bezier' || _curveStyle === 'segments' || _curveStyle === 'taxi';\n\n // whether the normalised pair order is the reverse of the edge's src-tgt order\n var edgeIsSwapped = !src.same(_edge.source());\n if (!pairInfo.calculatedIntersection && src !== tgt && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {\n pairInfo.calculatedIntersection = true;\n\n // pt outside src shape to calc distance/displacement from src to tgt\n var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0);\n var srcIntn = pairInfo.srcIntn = srcOutside;\n\n // pt outside tgt shape to calc distance/displacement from src to tgt\n var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0);\n var tgtIntn = pairInfo.tgtIntn = tgtOutside;\n var intersectionPts = pairInfo.intersectionPts = {\n x1: srcOutside[0],\n x2: tgtOutside[0],\n y1: srcOutside[1],\n y2: tgtOutside[1]\n };\n var posPts = pairInfo.posPts = {\n x1: srcPos.x,\n x2: tgtPos.x,\n y1: srcPos.y,\n y2: tgtPos.y\n };\n var dy = tgtOutside[1] - srcOutside[1];\n var dx = tgtOutside[0] - srcOutside[0];\n var l = Math.sqrt(dx * dx + dy * dy);\n var vector = pairInfo.vector = {\n x: dx,\n y: dy\n };\n var vectorNorm = pairInfo.vectorNorm = {\n x: vector.x / l,\n y: vector.y / l\n };\n var vectorNormInverse = {\n x: -vectorNorm.y,\n y: vectorNorm.x\n };\n\n // if node shapes overlap, then no ctrl pts to draw\n pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y);\n pairInfo.vectorNormInverse = vectorNormInverse;\n swappedpairInfo = {\n nodesOverlap: pairInfo.nodesOverlap,\n dirCounts: pairInfo.dirCounts,\n calculatedIntersection: true,\n hasBezier: pairInfo.hasBezier,\n hasUnbundled: pairInfo.hasUnbundled,\n eles: pairInfo.eles,\n srcPos: tgtPos,\n tgtPos: srcPos,\n srcW: tgtW,\n srcH: tgtH,\n tgtW: srcW,\n tgtH: srcH,\n srcIntn: tgtIntn,\n tgtIntn: srcIntn,\n srcShape: tgtShape,\n tgtShape: srcShape,\n posPts: {\n x1: posPts.x2,\n y1: posPts.y2,\n x2: posPts.x1,\n y2: posPts.y1\n },\n intersectionPts: {\n x1: intersectionPts.x2,\n y1: intersectionPts.y2,\n x2: intersectionPts.x1,\n y2: intersectionPts.y1\n },\n vector: {\n x: -vector.x,\n y: -vector.y\n },\n vectorNorm: {\n x: -vectorNorm.x,\n y: -vectorNorm.y\n },\n vectorNormInverse: {\n x: -vectorNormInverse.x,\n y: -vectorNormInverse.y\n }\n };\n }\n var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;\n rs.nodesOverlap = passedPairInfo.nodesOverlap;\n rs.srcIntn = passedPairInfo.srcIntn;\n rs.tgtIntn = passedPairInfo.tgtIntn;\n if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src) || src.same(tgt) && src.isParent())) {\n _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (src === tgt) {\n _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);\n } else if (_curveStyle === 'segments') {\n _this.findSegmentsPoints(_edge, passedPairInfo);\n } else if (_curveStyle === 'taxi') {\n _this.findTaxiPoints(_edge, passedPairInfo);\n } else if (_curveStyle === 'straight' || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {\n _this.findStraightEdgePoints(_edge);\n } else {\n _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);\n }\n _this.findEndpoints(_edge);\n _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);\n _this.checkForInvalidEdgeWarning(_edge);\n _this.storeAllpts(_edge);\n _this.storeEdgeProjections(_edge);\n _this.calculateArrowAngles(_edge);\n _this.recalculateEdgeLabelProjections(_edge);\n _this.calculateLabelAngles(_edge);\n } // for pair edges\n };\n for (var p = 0; p < pairIds.length; p++) {\n _loop(p);\n } // for pair ids\n\n // haystacks avoid the expense of pairInfo stuff (intersections etc.)\n this.findHaystackPoints(haystackEdges);\n };\n function getPts(pts) {\n var retPts = [];\n if (pts == null) {\n return;\n }\n for (var i = 0; i < pts.length; i += 2) {\n var x = pts[i];\n var y = pts[i + 1];\n retPts.push({\n x: x,\n y: y\n });\n }\n return retPts;\n }\n BRp$c.getSegmentPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n var type = rs.edgeType;\n if (type === 'segments') {\n this.recalculateRenderedStyle(edge);\n return getPts(rs.segpts);\n }\n };\n BRp$c.getControlPoints = function (edge) {\n var rs = edge[0]._private.rscratch;\n var type = rs.edgeType;\n if (type === 'bezier' || type === 'multibezier' || type === 'self' || type === 'compound') {\n this.recalculateRenderedStyle(edge);\n return getPts(rs.ctrlpts);\n }\n };\n BRp$c.getEdgeMidpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n return {\n x: rs.midX,\n y: rs.midY\n };\n };\n\n var BRp$b = {};\n BRp$b.manualEndptToPx = function (node, prop) {\n var r = this;\n var npos = node.position();\n var w = node.outerWidth();\n var h = node.outerHeight();\n if (prop.value.length === 2) {\n var p = [prop.pfValue[0], prop.pfValue[1]];\n if (prop.units[0] === '%') {\n p[0] = p[0] * w;\n }\n if (prop.units[1] === '%') {\n p[1] = p[1] * h;\n }\n p[0] += npos.x;\n p[1] += npos.y;\n return p;\n } else {\n var angle = prop.pfValue[0];\n angle = -Math.PI / 2 + angle; // start at 12 o'clock\n\n var l = 2 * Math.max(w, h);\n var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];\n return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0);\n }\n };\n BRp$b.findEndpoints = function (edge) {\n var r = this;\n var intersect;\n var source = edge.source()[0];\n var target = edge.target()[0];\n var srcPos = source.position();\n var tgtPos = target.position();\n var tgtArShape = edge.pstyle('target-arrow-shape').value;\n var srcArShape = edge.pstyle('source-arrow-shape').value;\n var tgtDist = edge.pstyle('target-distance-from-node').pfValue;\n var srcDist = edge.pstyle('source-distance-from-node').pfValue;\n var curveStyle = edge.pstyle('curve-style').value;\n var rs = edge._private.rscratch;\n var et = rs.edgeType;\n var taxi = curveStyle === 'taxi';\n var self = et === 'self' || et === 'compound';\n var bezier = et === 'bezier' || et === 'multibezier' || self;\n var multi = et !== 'bezier';\n var lines = et === 'straight' || et === 'segments';\n var segments = et === 'segments';\n var hasEndpts = bezier || multi || lines;\n var overrideEndpts = self || taxi;\n var srcManEndpt = edge.pstyle('source-endpoint');\n var srcManEndptVal = overrideEndpts ? 'outside-to-node' : srcManEndpt.value;\n var tgtManEndpt = edge.pstyle('target-endpoint');\n var tgtManEndptVal = overrideEndpts ? 'outside-to-node' : tgtManEndpt.value;\n rs.srcManEndpt = srcManEndpt;\n rs.tgtManEndpt = tgtManEndpt;\n var p1; // last known point of edge on target side\n var p2; // last known point of edge on source side\n\n var p1_i; // point to intersect with target shape\n var p2_i; // point to intersect with source shape\n\n if (bezier) {\n var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];\n var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;\n p1 = cpEnd;\n p2 = cpStart;\n } else if (lines) {\n var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);\n var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);\n p1 = tgtArrowFromPt;\n p2 = srcArrowFromPt;\n }\n if (tgtManEndptVal === 'inside-to-node') {\n intersect = [tgtPos.x, tgtPos.y];\n } else if (tgtManEndpt.units) {\n intersect = this.manualEndptToPx(target, tgtManEndpt);\n } else if (tgtManEndptVal === 'outside-to-line') {\n intersect = rs.tgtIntn; // use cached value from ctrlpt calc\n } else {\n if (tgtManEndptVal === 'outside-to-node' || tgtManEndptVal === 'outside-to-node-or-label') {\n p1_i = p1;\n } else if (tgtManEndptVal === 'outside-to-line' || tgtManEndptVal === 'outside-to-line-or-label') {\n p1_i = [srcPos.x, srcPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0);\n if (tgtManEndptVal === 'outside-to-node-or-label' || tgtManEndptVal === 'outside-to-line-or-label') {\n var trs = target._private.rscratch;\n var lw = trs.labelWidth;\n var lh = trs.labelHeight;\n var lx = trs.labelX;\n var ly = trs.labelY;\n var lw2 = lw / 2;\n var lh2 = lh / 2;\n var va = target.pstyle('text-valign').value;\n if (va === 'top') {\n ly -= lh2;\n } else if (va === 'bottom') {\n ly += lh2;\n }\n var ha = target.pstyle('text-halign').value;\n if (ha === 'left') {\n lx -= lw2;\n } else if (ha === 'right') {\n lx += lw2;\n }\n var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);\n if (labelIntersect.length > 0) {\n var refPt = srcPos;\n var intSqdist = sqdist(refPt, array2point(intersect));\n var labIntSqdist = sqdist(refPt, array2point(labelIntersect));\n var minSqDist = intSqdist;\n if (labIntSqdist < intSqdist) {\n intersect = labelIntersect;\n minSqDist = labIntSqdist;\n }\n if (labelIntersect.length > 2) {\n var labInt2SqDist = sqdist(refPt, {\n x: labelIntersect[2],\n y: labelIntersect[3]\n });\n if (labInt2SqDist < minSqDist) {\n intersect = [labelIntersect[2], labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);\n var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);\n rs.endX = edgeEnd[0];\n rs.endY = edgeEnd[1];\n rs.arrowEndX = arrowEnd[0];\n rs.arrowEndY = arrowEnd[1];\n if (srcManEndptVal === 'inside-to-node') {\n intersect = [srcPos.x, srcPos.y];\n } else if (srcManEndpt.units) {\n intersect = this.manualEndptToPx(source, srcManEndpt);\n } else if (srcManEndptVal === 'outside-to-line') {\n intersect = rs.srcIntn; // use cached value from ctrlpt calc\n } else {\n if (srcManEndptVal === 'outside-to-node' || srcManEndptVal === 'outside-to-node-or-label') {\n p2_i = p2;\n } else if (srcManEndptVal === 'outside-to-line' || srcManEndptVal === 'outside-to-line-or-label') {\n p2_i = [tgtPos.x, tgtPos.y];\n }\n intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0);\n if (srcManEndptVal === 'outside-to-node-or-label' || srcManEndptVal === 'outside-to-line-or-label') {\n var srs = source._private.rscratch;\n var _lw = srs.labelWidth;\n var _lh = srs.labelHeight;\n var _lx = srs.labelX;\n var _ly = srs.labelY;\n var _lw2 = _lw / 2;\n var _lh2 = _lh / 2;\n var _va = source.pstyle('text-valign').value;\n if (_va === 'top') {\n _ly -= _lh2;\n } else if (_va === 'bottom') {\n _ly += _lh2;\n }\n var _ha = source.pstyle('text-halign').value;\n if (_ha === 'left') {\n _lx -= _lw2;\n } else if (_ha === 'right') {\n _lx += _lw2;\n }\n var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);\n if (_labelIntersect.length > 0) {\n var _refPt = tgtPos;\n var _intSqdist = sqdist(_refPt, array2point(intersect));\n var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));\n var _minSqDist = _intSqdist;\n if (_labIntSqdist < _intSqdist) {\n intersect = [_labelIntersect[0], _labelIntersect[1]];\n _minSqDist = _labIntSqdist;\n }\n if (_labelIntersect.length > 2) {\n var _labInt2SqDist = sqdist(_refPt, {\n x: _labelIntersect[2],\n y: _labelIntersect[3]\n });\n if (_labInt2SqDist < _minSqDist) {\n intersect = [_labelIntersect[2], _labelIntersect[3]];\n }\n }\n }\n }\n }\n var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);\n var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);\n rs.startX = edgeStart[0];\n rs.startY = edgeStart[1];\n rs.arrowStartX = arrowStart[0];\n rs.arrowStartY = arrowStart[1];\n if (hasEndpts) {\n if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) {\n rs.badLine = true;\n } else {\n rs.badLine = false;\n }\n }\n };\n BRp$b.getSourceEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[0],\n y: rs.haystackPts[1]\n };\n default:\n return {\n x: rs.arrowStartX,\n y: rs.arrowStartY\n };\n }\n };\n BRp$b.getTargetEndpoint = function (edge) {\n var rs = edge[0]._private.rscratch;\n this.recalculateRenderedStyle(edge);\n switch (rs.edgeType) {\n case 'haystack':\n return {\n x: rs.haystackPts[2],\n y: rs.haystackPts[3]\n };\n default:\n return {\n x: rs.arrowEndX,\n y: rs.arrowEndY\n };\n }\n };\n\n var BRp$a = {};\n function pushBezierPts(r, edge, pts) {\n var qbezierAt$1 = function qbezierAt$1(p1, p2, p3, t) {\n return qbezierAt(p1, p2, p3, t);\n };\n var _p = edge._private;\n var bpts = _p.rstyle.bezierPts;\n for (var i = 0; i < r.bezierProjPcts.length; i++) {\n var p = r.bezierProjPcts[i];\n bpts.push({\n x: qbezierAt$1(pts[0], pts[2], pts[4], p),\n y: qbezierAt$1(pts[1], pts[3], pts[5], p)\n });\n }\n }\n BRp$a.storeEdgeProjections = function (edge) {\n var _p = edge._private;\n var rs = _p.rscratch;\n var et = rs.edgeType;\n\n // clear the cached points state\n _p.rstyle.bezierPts = null;\n _p.rstyle.linePts = null;\n _p.rstyle.haystackPts = null;\n if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') {\n _p.rstyle.bezierPts = [];\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n pushBezierPts(this, edge, rs.allpts.slice(i, i + 6));\n }\n } else if (et === 'segments') {\n var lpts = _p.rstyle.linePts = [];\n for (var i = 0; i + 1 < rs.allpts.length; i += 2) {\n lpts.push({\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n });\n }\n } else if (et === 'haystack') {\n var hpts = rs.haystackPts;\n _p.rstyle.haystackPts = [{\n x: hpts[0],\n y: hpts[1]\n }, {\n x: hpts[2],\n y: hpts[3]\n }];\n }\n _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth;\n };\n BRp$a.recalculateEdgeProjections = function (edges) {\n this.findEdgeControlPoints(edges);\n };\n\n /* global document */\n\n var BRp$9 = {};\n BRp$9.recalculateNodeLabelProjection = function (node) {\n var content = node.pstyle('label').strValue;\n if (emptyString(content)) {\n return;\n }\n var textX, textY;\n var _p = node._private;\n var nodeWidth = node.width();\n var nodeHeight = node.height();\n var padding = node.padding();\n var nodePos = node.position();\n var textHalign = node.pstyle('text-halign').strValue;\n var textValign = node.pstyle('text-valign').strValue;\n var rs = _p.rscratch;\n var rstyle = _p.rstyle;\n switch (textHalign) {\n case 'left':\n textX = nodePos.x - nodeWidth / 2 - padding;\n break;\n case 'right':\n textX = nodePos.x + nodeWidth / 2 + padding;\n break;\n default:\n // e.g. center\n textX = nodePos.x;\n }\n switch (textValign) {\n case 'top':\n textY = nodePos.y - nodeHeight / 2 - padding;\n break;\n case 'bottom':\n textY = nodePos.y + nodeHeight / 2 + padding;\n break;\n default:\n // e.g. middle\n textY = nodePos.y;\n }\n rs.labelX = textX;\n rs.labelY = textY;\n rstyle.labelX = textX;\n rstyle.labelY = textY;\n this.calculateLabelAngles(node);\n this.applyLabelDimensions(node);\n };\n var lineAngleFromDelta = function lineAngleFromDelta(dx, dy) {\n var angle = Math.atan(dy / dx);\n if (dx === 0 && angle < 0) {\n angle = angle * -1;\n }\n return angle;\n };\n var lineAngle = function lineAngle(p0, p1) {\n var dx = p1.x - p0.x;\n var dy = p1.y - p0.y;\n return lineAngleFromDelta(dx, dy);\n };\n var bezierAngle = function bezierAngle(p0, p1, p2, t) {\n var t0 = bound(0, t - 0.001, 1);\n var t1 = bound(0, t + 0.001, 1);\n var lp0 = qbezierPtAt(p0, p1, p2, t0);\n var lp1 = qbezierPtAt(p0, p1, p2, t1);\n return lineAngle(lp0, lp1);\n };\n BRp$9.recalculateEdgeLabelProjections = function (edge) {\n var p;\n var _p = edge._private;\n var rs = _p.rscratch;\n var r = this;\n var content = {\n mid: edge.pstyle('label').strValue,\n source: edge.pstyle('source-label').strValue,\n target: edge.pstyle('target-label').strValue\n };\n if (content.mid || content.source || content.target) ; else {\n return; // no labels => no calcs\n }\n\n // add center point to style so bounding box calculations can use it\n //\n p = {\n x: rs.midX,\n y: rs.midY\n };\n var setRs = function setRs(propName, prefix, value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n setPrefixedProperty(_p.rstyle, propName, prefix, value);\n };\n setRs('labelX', null, p.x);\n setRs('labelY', null, p.y);\n var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);\n setRs('labelAutoAngle', null, midAngle);\n var createControlPointInfo = function createControlPointInfo() {\n if (createControlPointInfo.cache) {\n return createControlPointInfo.cache;\n } // use cache so only 1x per edge\n\n var ctrlpts = [];\n\n // store each ctrlpt info init\n for (var i = 0; i + 5 < rs.allpts.length; i += 4) {\n var p0 = {\n x: rs.allpts[i],\n y: rs.allpts[i + 1]\n };\n var p1 = {\n x: rs.allpts[i + 2],\n y: rs.allpts[i + 3]\n }; // ctrlpt\n var p2 = {\n x: rs.allpts[i + 4],\n y: rs.allpts[i + 5]\n };\n ctrlpts.push({\n p0: p0,\n p1: p1,\n p2: p2,\n startDist: 0,\n length: 0,\n segments: []\n });\n }\n var bpts = _p.rstyle.bezierPts;\n var nProjs = r.bezierProjPcts.length;\n function addSegment(cp, p0, p1, t0, t1) {\n var length = dist(p0, p1);\n var prevSegment = cp.segments[cp.segments.length - 1];\n var segment = {\n p0: p0,\n p1: p1,\n t0: t0,\n t1: t1,\n startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,\n length: length\n };\n cp.segments.push(segment);\n cp.length += length;\n }\n\n // update each ctrlpt with segment info\n for (var _i = 0; _i < ctrlpts.length; _i++) {\n var cp = ctrlpts[_i];\n var prevCp = ctrlpts[_i - 1];\n if (prevCp) {\n cp.startDist = prevCp.startDist + prevCp.length;\n }\n addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); // first\n\n for (var j = 0; j < nProjs - 1; j++) {\n addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);\n }\n addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last\n }\n\n return createControlPointInfo.cache = ctrlpts;\n };\n var calculateEndProjection = function calculateEndProjection(prefix) {\n var angle;\n var isSrc = prefix === 'source';\n if (!content[prefix]) {\n return;\n }\n var offset = edge.pstyle(prefix + '-text-offset').pfValue;\n switch (rs.edgeType) {\n case 'self':\n case 'compound':\n case 'bezier':\n case 'multibezier':\n {\n var cps = createControlPointInfo();\n var selected;\n var startDist = 0;\n var totalDist = 0;\n\n // find the segment we're on\n for (var i = 0; i < cps.length; i++) {\n var _cp = cps[isSrc ? i : cps.length - 1 - i];\n for (var j = 0; j < _cp.segments.length; j++) {\n var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];\n var lastSeg = i === cps.length - 1 && j === _cp.segments.length - 1;\n startDist = totalDist;\n totalDist += _seg.length;\n if (totalDist >= offset || lastSeg) {\n selected = {\n cp: _cp,\n segment: _seg\n };\n break;\n }\n }\n if (selected) {\n break;\n }\n }\n var cp = selected.cp;\n var seg = selected.segment;\n var tSegment = (offset - startDist) / seg.length;\n var segDt = seg.t1 - seg.t0;\n var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;\n t = bound(0, t, 1);\n p = qbezierPtAt(cp.p0, cp.p1, cp.p2, t);\n angle = bezierAngle(cp.p0, cp.p1, cp.p2, t);\n break;\n }\n case 'straight':\n case 'segments':\n case 'haystack':\n {\n var d = 0,\n di,\n d0;\n var p0, p1;\n var l = rs.allpts.length;\n for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {\n if (isSrc) {\n p0 = {\n x: rs.allpts[_i2],\n y: rs.allpts[_i2 + 1]\n };\n p1 = {\n x: rs.allpts[_i2 + 2],\n y: rs.allpts[_i2 + 3]\n };\n } else {\n p0 = {\n x: rs.allpts[l - 2 - _i2],\n y: rs.allpts[l - 1 - _i2]\n };\n p1 = {\n x: rs.allpts[l - 4 - _i2],\n y: rs.allpts[l - 3 - _i2]\n };\n }\n di = dist(p0, p1);\n d0 = d;\n d += di;\n if (d >= offset) {\n break;\n }\n }\n var pD = offset - d0;\n var _t = pD / di;\n _t = bound(0, _t, 1);\n p = lineAt(p0, p1, _t);\n angle = lineAngle(p0, p1);\n break;\n }\n }\n setRs('labelX', prefix, p.x);\n setRs('labelY', prefix, p.y);\n setRs('labelAutoAngle', prefix, angle);\n };\n calculateEndProjection('source');\n calculateEndProjection('target');\n this.applyLabelDimensions(edge);\n };\n BRp$9.applyLabelDimensions = function (ele) {\n this.applyPrefixedLabelDimensions(ele);\n if (ele.isEdge()) {\n this.applyPrefixedLabelDimensions(ele, 'source');\n this.applyPrefixedLabelDimensions(ele, 'target');\n }\n };\n BRp$9.applyPrefixedLabelDimensions = function (ele, prefix) {\n var _p = ele._private;\n var text = this.getLabelText(ele, prefix);\n var labelDims = this.calculateLabelDimensions(ele, text);\n var lineHeight = ele.pstyle('line-height').pfValue;\n var textWrap = ele.pstyle('text-wrap').strValue;\n var lines = getPrefixedProperty(_p.rscratch, 'labelWrapCachedLines', prefix) || [];\n var numLines = textWrap !== 'wrap' ? 1 : Math.max(lines.length, 1);\n var normPerLineHeight = labelDims.height / numLines;\n var labelLineHeight = normPerLineHeight * lineHeight;\n var width = labelDims.width;\n var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;\n setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, width);\n setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, height);\n setPrefixedProperty(_p.rscratch, 'labelLineHeight', prefix, labelLineHeight);\n };\n BRp$9.getLabelText = function (ele, prefix) {\n var _p = ele._private;\n var pfd = prefix ? prefix + '-' : '';\n var text = ele.pstyle(pfd + 'label').strValue;\n var textTransform = ele.pstyle('text-transform').value;\n var rscratch = function rscratch(propName, value) {\n if (value) {\n setPrefixedProperty(_p.rscratch, propName, prefix, value);\n return value;\n } else {\n return getPrefixedProperty(_p.rscratch, propName, prefix);\n }\n };\n\n // for empty text, skip all processing\n if (!text) {\n return '';\n }\n if (textTransform == 'none') ; else if (textTransform == 'uppercase') {\n text = text.toUpperCase();\n } else if (textTransform == 'lowercase') {\n text = text.toLowerCase();\n }\n var wrapStyle = ele.pstyle('text-wrap').value;\n if (wrapStyle === 'wrap') {\n var labelKey = rscratch('labelKey');\n\n // save recalc if the label is the same as before\n if (labelKey != null && rscratch('labelWrapKey') === labelKey) {\n return rscratch('labelWrapCachedText');\n }\n var zwsp = \"\\u200B\";\n var lines = text.split('\\n');\n var maxW = ele.pstyle('text-max-width').pfValue;\n var overflow = ele.pstyle('text-overflow-wrap').value;\n var overflowAny = overflow === 'anywhere';\n var wrappedLines = [];\n var wordsRegex = /[\\s\\u200b]+/;\n var wordSeparator = overflowAny ? '' : ' ';\n for (var l = 0; l < lines.length; l++) {\n var line = lines[l];\n var lineDims = this.calculateLabelDimensions(ele, line);\n var lineW = lineDims.width;\n if (overflowAny) {\n var processedLine = line.split('').join(zwsp);\n line = processedLine;\n }\n if (lineW > maxW) {\n // line is too long\n var words = line.split(wordsRegex);\n var subline = '';\n for (var w = 0; w < words.length; w++) {\n var word = words[w];\n var testLine = subline.length === 0 ? word : subline + wordSeparator + word;\n var testDims = this.calculateLabelDimensions(ele, testLine);\n var testW = testDims.width;\n if (testW <= maxW) {\n // word fits on current line\n subline += word + wordSeparator;\n } else {\n // word starts new line\n if (subline) {\n wrappedLines.push(subline);\n }\n subline = word + wordSeparator;\n }\n }\n\n // if there's remaining text, put it in a wrapped line\n if (!subline.match(/^[\\s\\u200b]+$/)) {\n wrappedLines.push(subline);\n }\n } else {\n // line is already short enough\n wrappedLines.push(line);\n }\n } // for\n\n rscratch('labelWrapCachedLines', wrappedLines);\n text = rscratch('labelWrapCachedText', wrappedLines.join('\\n'));\n rscratch('labelWrapKey', labelKey);\n } else if (wrapStyle === 'ellipsis') {\n var _maxW = ele.pstyle('text-max-width').pfValue;\n var ellipsized = '';\n var ellipsis = \"\\u2026\";\n var incLastCh = false;\n if (this.calculateLabelDimensions(ele, text).width < _maxW) {\n // the label already fits\n return text;\n }\n for (var i = 0; i < text.length; i++) {\n var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width;\n if (widthWithNextCh > _maxW) {\n break;\n }\n ellipsized += text[i];\n if (i === text.length - 1) {\n incLastCh = true;\n }\n }\n if (!incLastCh) {\n ellipsized += ellipsis;\n }\n return ellipsized;\n } // if ellipsize\n\n return text;\n };\n BRp$9.getLabelJustification = function (ele) {\n var justification = ele.pstyle('text-justification').strValue;\n var textHalign = ele.pstyle('text-halign').strValue;\n if (justification === 'auto') {\n if (ele.isNode()) {\n switch (textHalign) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n return 'center';\n }\n } else {\n return 'center';\n }\n } else {\n return justification;\n }\n };\n BRp$9.calculateLabelDimensions = function (ele, text) {\n var r = this;\n var cacheKey = hashString(text, ele._private.labelDimsKey);\n var cache = r.labelDimCache || (r.labelDimCache = []);\n var existingVal = cache[cacheKey];\n if (existingVal != null) {\n return existingVal;\n }\n var padding = 0; // add padding around text dims, as the measurement isn't that accurate\n var fStyle = ele.pstyle('font-style').strValue;\n var size = ele.pstyle('font-size').pfValue;\n var family = ele.pstyle('font-family').strValue;\n var weight = ele.pstyle('font-weight').strValue;\n var canvas = this.labelCalcCanvas;\n var c2d = this.labelCalcCanvasContext;\n if (!canvas) {\n canvas = this.labelCalcCanvas = document.createElement('canvas');\n c2d = this.labelCalcCanvasContext = canvas.getContext('2d');\n var ds = canvas.style;\n ds.position = 'absolute';\n ds.left = '-9999px';\n ds.top = '-9999px';\n ds.zIndex = '-1';\n ds.visibility = 'hidden';\n ds.pointerEvents = 'none';\n }\n c2d.font = \"\".concat(fStyle, \" \").concat(weight, \" \").concat(size, \"px \").concat(family);\n var width = 0;\n var height = 0;\n var lines = text.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var metrics = c2d.measureText(line);\n var w = Math.ceil(metrics.width);\n var h = size;\n width = Math.max(w, width);\n height += h;\n }\n width += padding;\n height += padding;\n return cache[cacheKey] = {\n width: width,\n height: height\n };\n };\n BRp$9.calculateLabelAngle = function (ele, prefix) {\n var _p = ele._private;\n var rs = _p.rscratch;\n var isEdge = ele.isEdge();\n var prefixDash = prefix ? prefix + '-' : '';\n var rot = ele.pstyle(prefixDash + 'text-rotation');\n var rotStr = rot.strValue;\n if (rotStr === 'none') {\n return 0;\n } else if (isEdge && rotStr === 'autorotate') {\n return rs.labelAutoAngle;\n } else if (rotStr === 'autorotate') {\n return 0;\n } else {\n return rot.pfValue;\n }\n };\n BRp$9.calculateLabelAngles = function (ele) {\n var r = this;\n var isEdge = ele.isEdge();\n var _p = ele._private;\n var rs = _p.rscratch;\n rs.labelAngle = r.calculateLabelAngle(ele);\n if (isEdge) {\n rs.sourceLabelAngle = r.calculateLabelAngle(ele, 'source');\n rs.targetLabelAngle = r.calculateLabelAngle(ele, 'target');\n }\n };\n\n var BRp$8 = {};\n var TOO_SMALL_CUT_RECT = 28;\n var warnedCutRect = false;\n BRp$8.getNodeShape = function (node) {\n var r = this;\n var shape = node.pstyle('shape').value;\n if (shape === 'cutrectangle' && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) {\n if (!warnedCutRect) {\n warn('The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead');\n warnedCutRect = true;\n }\n return 'rectangle';\n }\n if (node.isParent()) {\n if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'round-rectangle' || shape === 'cutrectangle' || shape === 'cut-rectangle' || shape === 'barrel') {\n return shape;\n } else {\n return 'rectangle';\n }\n }\n if (shape === 'polygon') {\n var points = node.pstyle('shape-polygon-points').value;\n return r.nodeShapes.makePolygon(points).name;\n }\n return shape;\n };\n\n var BRp$7 = {};\n BRp$7.registerCalculationListeners = function () {\n var cy = this.cy;\n var elesToUpdate = cy.collection();\n var r = this;\n var enqueue = function enqueue(eles) {\n var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n elesToUpdate.merge(eles);\n if (dirtyStyleCaches) {\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n rstyle.clean = false;\n rstyle.cleanConnected = false;\n }\n }\n };\n r.binder(cy).on('bounds.* dirty.*', function onDirtyBounds(e) {\n var ele = e.target;\n enqueue(ele);\n }).on('style.* background.*', function onDirtyStyle(e) {\n var ele = e.target;\n enqueue(ele, false);\n });\n var updateEleCalcs = function updateEleCalcs(willDraw) {\n if (willDraw) {\n var fns = r.onUpdateEleCalcsFns;\n\n // because we need to have up-to-date style (e.g. stylesheet mappers)\n // before calculating rendered style (and pstyle might not be called yet)\n elesToUpdate.cleanStyle();\n for (var i = 0; i < elesToUpdate.length; i++) {\n var ele = elesToUpdate[i];\n var rstyle = ele._private.rstyle;\n if (ele.isNode() && !rstyle.cleanConnected) {\n enqueue(ele.connectedEdges());\n rstyle.cleanConnected = true;\n }\n }\n if (fns) {\n for (var _i = 0; _i < fns.length; _i++) {\n var fn = fns[_i];\n fn(willDraw, elesToUpdate);\n }\n }\n r.recalculateRenderedStyle(elesToUpdate);\n elesToUpdate = cy.collection();\n }\n };\n r.flushRenderedStyleQueue = function () {\n updateEleCalcs(true);\n };\n r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);\n };\n BRp$7.onUpdateEleCalcs = function (fn) {\n var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];\n fns.push(fn);\n };\n BRp$7.recalculateRenderedStyle = function (eles, useCache) {\n var isCleanConnected = function isCleanConnected(ele) {\n return ele._private.rstyle.cleanConnected;\n };\n var edges = [];\n var nodes = [];\n\n // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox()\n if (this.destroyed) {\n return;\n }\n\n // use cache by default for perf\n if (useCache === undefined) {\n useCache = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var _p = ele._private;\n var rstyle = _p.rstyle;\n\n // an edge may be implicitly dirty b/c of one of its connected nodes\n // (and a request for recalc may come in between frames)\n if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {\n rstyle.clean = false;\n }\n\n // only update if dirty and in graph\n if (useCache && rstyle.clean || ele.removed()) {\n continue;\n }\n\n // only update if not display: none\n if (ele.pstyle('display').value === 'none') {\n continue;\n }\n if (_p.group === 'nodes') {\n nodes.push(ele);\n } else {\n // edges\n edges.push(ele);\n }\n rstyle.clean = true;\n }\n\n // update node data from projections\n for (var _i2 = 0; _i2 < nodes.length; _i2++) {\n var _ele = nodes[_i2];\n var _p2 = _ele._private;\n var _rstyle = _p2.rstyle;\n var pos = _ele.position();\n this.recalculateNodeLabelProjection(_ele);\n _rstyle.nodeX = pos.x;\n _rstyle.nodeY = pos.y;\n _rstyle.nodeW = _ele.pstyle('width').pfValue;\n _rstyle.nodeH = _ele.pstyle('height').pfValue;\n }\n this.recalculateEdgeProjections(edges);\n\n // update edge data from projections\n for (var _i3 = 0; _i3 < edges.length; _i3++) {\n var _ele2 = edges[_i3];\n var _p3 = _ele2._private;\n var _rstyle2 = _p3.rstyle;\n var rs = _p3.rscratch;\n\n // update rstyle positions\n _rstyle2.srcX = rs.arrowStartX;\n _rstyle2.srcY = rs.arrowStartY;\n _rstyle2.tgtX = rs.arrowEndX;\n _rstyle2.tgtY = rs.arrowEndY;\n _rstyle2.midX = rs.midX;\n _rstyle2.midY = rs.midY;\n _rstyle2.labelAngle = rs.labelAngle;\n _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;\n _rstyle2.targetLabelAngle = rs.targetLabelAngle;\n }\n };\n\n var BRp$6 = {};\n BRp$6.updateCachedGrabbedEles = function () {\n var eles = this.cachedZSortedEles;\n if (!eles) {\n // just let this be recalculated on the next z sort tick\n return;\n }\n eles.drag = [];\n eles.nondrag = [];\n var grabTargets = [];\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n if (ele.grabbed() && !ele.isParent()) {\n grabTargets.push(ele);\n } else if (rs.inDragLayer) {\n eles.drag.push(ele);\n } else {\n eles.nondrag.push(ele);\n }\n }\n\n // put the grab target nodes last so it's on top of its neighbourhood\n for (var i = 0; i < grabTargets.length; i++) {\n var ele = grabTargets[i];\n eles.drag.push(ele);\n }\n };\n BRp$6.invalidateCachedZSortedEles = function () {\n this.cachedZSortedEles = null;\n };\n BRp$6.getCachedZSortedEles = function (forceRecalc) {\n if (forceRecalc || !this.cachedZSortedEles) {\n var eles = this.cy.mutableElements().toArray();\n eles.sort(zIndexSort);\n eles.interactive = eles.filter(function (ele) {\n return ele.interactive();\n });\n this.cachedZSortedEles = eles;\n this.updateCachedGrabbedEles();\n } else {\n eles = this.cachedZSortedEles;\n }\n return eles;\n };\n\n var BRp$5 = {};\n [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function (props) {\n extend(BRp$5, props);\n });\n\n var BRp$4 = {};\n BRp$4.getCachedImage = function (url, crossOrigin, onLoad) {\n var r = this;\n var imageCache = r.imageCache = r.imageCache || {};\n var cache = imageCache[url];\n if (cache) {\n if (!cache.image.complete) {\n cache.image.addEventListener('load', onLoad);\n }\n return cache.image;\n } else {\n cache = imageCache[url] = imageCache[url] || {};\n var image = cache.image = new Image(); // eslint-disable-line no-undef\n\n image.addEventListener('load', onLoad);\n image.addEventListener('error', function () {\n image.error = true;\n });\n\n // #1582 safari doesn't load data uris with crossOrigin properly\n // https://bugs.webkit.org/show_bug.cgi?id=123978\n var dataUriPrefix = 'data:';\n var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;\n if (!isDataUri) {\n // if crossorigin is 'null'(stringified), then manually set it to null \n crossOrigin = crossOrigin === 'null' ? null : crossOrigin;\n image.crossOrigin = crossOrigin; // prevent tainted canvas\n }\n\n image.src = url;\n return image;\n }\n };\n\n var BRp$3 = {};\n\n /* global document, window, ResizeObserver, MutationObserver */\n\n BRp$3.registerBinding = function (target, event, handler, useCapture) {\n // eslint-disable-line no-unused-vars\n var args = Array.prototype.slice.apply(arguments, [1]); // copy\n var b = this.binder(target);\n return b.on.apply(b, args);\n };\n BRp$3.binder = function (tgt) {\n var r = this;\n var containerWindow = r.cy.window();\n var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt);\n if (r.supportsPassiveEvents == null) {\n // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n return true;\n }\n });\n containerWindow.addEventListener('test', null, opts);\n } catch (err) {\n // not supported\n }\n r.supportsPassiveEvents = supportsPassive;\n }\n var on = function on(event, handler, useCapture) {\n var args = Array.prototype.slice.call(arguments);\n if (tgtIsDom && r.supportsPassiveEvents) {\n // replace useCapture w/ opts obj\n args[2] = {\n capture: useCapture != null ? useCapture : false,\n passive: false,\n once: false\n };\n }\n r.bindings.push({\n target: tgt,\n args: args\n });\n (tgt.addEventListener || tgt.on).apply(tgt, args);\n return this;\n };\n return {\n on: on,\n addEventListener: on,\n addListener: on,\n bind: on\n };\n };\n BRp$3.nodeIsDraggable = function (node) {\n return node && node.isNode() && !node.locked() && node.grabbable();\n };\n BRp$3.nodeIsGrabbable = function (node) {\n return this.nodeIsDraggable(node) && node.interactive();\n };\n BRp$3.load = function () {\n var r = this;\n var containerWindow = r.cy.window();\n var isSelected = function isSelected(ele) {\n return ele.selected();\n };\n var triggerEvents = function triggerEvents(target, names, e, position) {\n if (target == null) {\n target = r.cy;\n }\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n target.emit({\n originalEvent: e,\n type: name,\n position: position\n });\n }\n };\n var isMultSelKeyDown = function isMultSelKeyDown(e) {\n return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey\n };\n\n var allowPanningPassthrough = function allowPanningPassthrough(down, downs) {\n var allowPassthrough = true;\n if (r.cy.hasCompoundNodes() && down && down.pannable()) {\n // a grabbable compound node below the ele => no passthrough panning\n for (var i = 0; downs && i < downs.length; i++) {\n var down = downs[i];\n\n //if any parent node in event hierarchy isn't pannable, reject passthrough\n if (down.isNode() && down.isParent() && !down.pannable()) {\n allowPassthrough = false;\n break;\n }\n }\n } else {\n allowPassthrough = true;\n }\n return allowPassthrough;\n };\n var setGrabbed = function setGrabbed(ele) {\n ele[0]._private.grabbed = true;\n };\n var setFreed = function setFreed(ele) {\n ele[0]._private.grabbed = false;\n };\n var setInDragLayer = function setInDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = true;\n };\n var setOutDragLayer = function setOutDragLayer(ele) {\n ele[0]._private.rscratch.inDragLayer = false;\n };\n var setGrabTarget = function setGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = true;\n };\n var removeGrabTarget = function removeGrabTarget(ele) {\n ele[0]._private.rscratch.isGrabTarget = false;\n };\n var addToDragList = function addToDragList(ele, opts) {\n var list = opts.addToList;\n var listHasEle = list.has(ele);\n if (!listHasEle && ele.grabbable() && !ele.locked()) {\n list.merge(ele);\n setGrabbed(ele);\n }\n };\n\n // helper function to determine which child nodes and inner edges\n // of a compound node to be dragged as well as the grabbed and selected nodes\n var addDescendantsToDrag = function addDescendantsToDrag(node, opts) {\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n var innerNodes = node.descendants();\n if (opts.inDragLayer) {\n innerNodes.forEach(setInDragLayer);\n innerNodes.connectedEdges().forEach(setInDragLayer);\n }\n if (opts.addToList) {\n addToDragList(innerNodes, opts);\n }\n };\n\n // adds the given nodes and its neighbourhood to the drag layer\n var addNodesToDrag = function addNodesToDrag(nodes, opts) {\n opts = opts || {};\n var hasCompoundNodes = nodes.cy().hasCompoundNodes();\n if (opts.inDragLayer) {\n nodes.forEach(setInDragLayer);\n nodes.neighborhood().stdFilter(function (ele) {\n return !hasCompoundNodes || ele.isEdge();\n }).forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n addDescendantsToDrag(nodes, opts); // always add to drag\n\n // also add nodes and edges related to the topmost ancestor\n updateAncestorsInDragLayer(nodes, {\n inDragLayer: opts.inDragLayer\n });\n r.updateCachedGrabbedEles();\n };\n var addNodeToDrag = addNodesToDrag;\n var freeDraggedElements = function freeDraggedElements(grabbedEles) {\n if (!grabbedEles) {\n return;\n }\n\n // just go over all elements rather than doing a bunch of (possibly expensive) traversals\n r.getCachedZSortedEles().forEach(function (ele) {\n setFreed(ele);\n setOutDragLayer(ele);\n removeGrabTarget(ele);\n });\n r.updateCachedGrabbedEles();\n };\n\n // helper function to determine which ancestor nodes and edges should go\n // to the drag layer (or should be removed from drag layer).\n var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) {\n if (opts.inDragLayer == null && opts.addToList == null) {\n return;\n } // nothing to do\n\n if (!node.cy().hasCompoundNodes()) {\n return;\n }\n\n // find top-level parent\n var parent = node.ancestors().orphans();\n\n // no parent node: no nodes to add to the drag layer\n if (parent.same(node)) {\n return;\n }\n var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants());\n var edges = nodes.connectedEdges();\n if (opts.inDragLayer) {\n edges.forEach(setInDragLayer);\n nodes.forEach(setInDragLayer);\n }\n if (opts.addToList) {\n nodes.forEach(function (ele) {\n addToDragList(ele, opts);\n });\n }\n };\n var blurActiveDomElement = function blurActiveDomElement() {\n if (document.activeElement != null && document.activeElement.blur != null) {\n document.activeElement.blur();\n }\n };\n var haveMutationsApi = typeof MutationObserver !== 'undefined';\n var haveResizeObserverApi = typeof ResizeObserver !== 'undefined';\n\n // watch for when the cy container is removed from the dom\n if (haveMutationsApi) {\n r.removeObserver = new MutationObserver(function (mutns) {\n // eslint-disable-line no-undef\n for (var i = 0; i < mutns.length; i++) {\n var mutn = mutns[i];\n var rNodes = mutn.removedNodes;\n if (rNodes) {\n for (var j = 0; j < rNodes.length; j++) {\n var rNode = rNodes[j];\n if (rNode === r.container) {\n r.destroy();\n break;\n }\n }\n }\n }\n });\n if (r.container.parentNode) {\n r.removeObserver.observe(r.container.parentNode, {\n childList: true\n });\n }\n } else {\n r.registerBinding(r.container, 'DOMNodeRemoved', function (e) {\n // eslint-disable-line no-unused-vars\n r.destroy();\n });\n }\n var onResize = debounce_1(function () {\n r.cy.resize();\n }, 100);\n if (haveMutationsApi) {\n r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef\n\n r.styleObserver.observe(r.container, {\n attributes: true\n });\n }\n\n // auto resize\n r.registerBinding(containerWindow, 'resize', onResize); // eslint-disable-line no-undef\n\n if (haveResizeObserverApi) {\n r.resizeObserver = new ResizeObserver(onResize); // eslint-disable-line no-undef\n\n r.resizeObserver.observe(r.container);\n }\n var forEachUp = function forEachUp(domEle, fn) {\n while (domEle != null) {\n fn(domEle);\n domEle = domEle.parentNode;\n }\n };\n var invalidateCoords = function invalidateCoords() {\n r.invalidateContainerClientCoordsCache();\n };\n forEachUp(r.container, function (domEle) {\n r.registerBinding(domEle, 'transitionend', invalidateCoords);\n r.registerBinding(domEle, 'animationend', invalidateCoords);\n r.registerBinding(domEle, 'scroll', invalidateCoords);\n });\n\n // stop right click menu from appearing on cy\n r.registerBinding(r.container, 'contextmenu', function (e) {\n e.preventDefault();\n });\n var inBoxSelection = function inBoxSelection() {\n return r.selection[4] !== 0;\n };\n var eventInContainer = function eventInContainer(e) {\n // save cycles if mouse events aren't to be captured\n var containerPageCoords = r.findContainerClientCoords();\n var x = containerPageCoords[0];\n var y = containerPageCoords[1];\n var width = containerPageCoords[2];\n var height = containerPageCoords[3];\n var positions = e.touches ? e.touches : [e];\n var atLeastOnePosInside = false;\n for (var i = 0; i < positions.length; i++) {\n var p = positions[i];\n if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) {\n atLeastOnePosInside = true;\n break;\n }\n }\n if (!atLeastOnePosInside) {\n return false;\n }\n var container = r.container;\n var target = e.target;\n var tParent = target.parentNode;\n var containerIsTarget = false;\n while (tParent) {\n if (tParent === container) {\n containerIsTarget = true;\n break;\n }\n tParent = tParent.parentNode;\n }\n if (!containerIsTarget) {\n return false;\n } // if target is outisde cy container, then this event is not for us\n\n return true;\n };\n\n // Primary key\n r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) {\n if (!eventInContainer(e)) {\n return;\n }\n e.preventDefault();\n blurActiveDomElement();\n r.hoverData.capture = true;\n r.hoverData.which = e.which;\n var cy = r.cy;\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var select = r.selection;\n var nears = r.findNearestElements(pos[0], pos[1], true, false);\n var near = nears[0];\n var draggedElements = r.dragData.possibleDragElements;\n r.hoverData.mdownPos = pos;\n r.hoverData.mdownGPos = gpos;\n var checkForTaphold = function checkForTaphold() {\n r.hoverData.tapholdCancelled = false;\n clearTimeout(r.hoverData.tapholdTimeout);\n r.hoverData.tapholdTimeout = setTimeout(function () {\n if (r.hoverData.tapholdCancelled) {\n return;\n } else {\n var ele = r.hoverData.down;\n if (ele) {\n ele.emit({\n originalEvent: e,\n type: 'taphold',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n } else {\n cy.emit({\n originalEvent: e,\n type: 'taphold',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n }\n }, r.tapholdDuration);\n };\n\n // Right click button\n if (e.which == 3) {\n r.hoverData.cxtStarted = true;\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (near) {\n near.activate();\n near.emit(cxtEvt);\n r.hoverData.down = near;\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.downTime = new Date().getTime();\n r.hoverData.cxtDragged = false;\n\n // Primary button\n } else if (e.which == 1) {\n if (near) {\n near.activate();\n }\n\n // Element dragging\n {\n // If something is under the cursor and it is draggable, prepare to grab it\n if (near != null) {\n if (r.nodeIsGrabbable(near)) {\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n };\n var triggerGrab = function triggerGrab(ele) {\n ele.emit(makeEvent('grab'));\n };\n setGrabTarget(near);\n if (!near.selected()) {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n addNodeToDrag(near, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon')).emit(makeEvent('grab'));\n } else {\n draggedElements = r.dragData.possibleDragElements = cy.collection();\n var selectedNodes = cy.$(function (ele) {\n return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedElements\n });\n near.emit(makeEvent('grabon'));\n selectedNodes.forEach(triggerGrab);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n }\n r.hoverData.down = near;\n r.hoverData.downs = nears;\n r.hoverData.downTime = new Date().getTime();\n }\n triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (near == null) {\n select[4] = 1;\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n } else if (near.pannable()) {\n select[4] = 1; // for future pan\n }\n\n checkForTaphold();\n }\n\n // Initialize selection box coordinates\n select[0] = select[2] = pos[0];\n select[1] = select[3] = pos[1];\n }, false);\n r.registerBinding(containerWindow, 'mousemove', function mousemoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.hoverData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var preventDefault = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var gpos = [e.clientX, e.clientY];\n var pos = r.projectIntoViewport(gpos[0], gpos[1]);\n var mdownPos = r.hoverData.mdownPos;\n var mdownGPos = r.hoverData.mdownGPos;\n var select = r.selection;\n var near = null;\n if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {\n near = r.findNearestElement(pos[0], pos[1], true, false);\n }\n var last = r.hoverData.last;\n var down = r.hoverData.down;\n var disp = [pos[0] - select[2], pos[1] - select[3]];\n var draggedElements = r.dragData.possibleDragElements;\n var isOverThresholdDrag;\n if (mdownGPos) {\n var dx = gpos[0] - mdownGPos[0];\n var dx2 = dx * dx;\n var dy = gpos[1] - mdownGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2;\n }\n var multSelKeyDown = isMultSelKeyDown(e);\n if (isOverThresholdDrag) {\n r.hoverData.tapholdCancelled = true;\n }\n var updateDragDelta = function updateDragDelta() {\n var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n };\n preventDefault = true;\n triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, {\n x: pos[0],\n y: pos[1]\n });\n var goIntoBoxMode = function goIntoBoxMode() {\n r.data.bgActivePosistion = undefined;\n if (!r.hoverData.selecting) {\n cy.emit({\n originalEvent: e,\n type: 'boxstart',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n select[4] = 1;\n r.hoverData.selecting = true;\n r.redrawHint('select', true);\n r.redraw();\n };\n\n // trigger context drag if rmouse down\n if (r.hoverData.which === 3) {\n // but only if over threshold\n if (isOverThresholdDrag) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxtdrag',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n r.hoverData.cxtDragged = true;\n if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {\n if (r.hoverData.cxtOver) {\n r.hoverData.cxtOver.emit({\n originalEvent: e,\n type: 'cxtdragout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n r.hoverData.cxtOver = near;\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'cxtdragover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }\n }\n }\n\n // Check if we are drag panning the entire graph\n } else if (r.hoverData.dragging) {\n preventDefault = true;\n if (cy.panningEnabled() && cy.userPanningEnabled()) {\n var deltaP;\n if (r.hoverData.justStartedPan) {\n var mdPos = r.hoverData.mdownPos;\n deltaP = {\n x: (pos[0] - mdPos[0]) * zoom,\n y: (pos[1] - mdPos[1]) * zoom\n };\n r.hoverData.justStartedPan = false;\n } else {\n deltaP = {\n x: disp[0] * zoom,\n y: disp[1] * zoom\n };\n }\n cy.panBy(deltaP);\n cy.emit('dragpan');\n r.hoverData.dragged = true;\n }\n\n // Needs reproject due to pan changing viewport\n pos = r.projectIntoViewport(e.clientX, e.clientY);\n\n // Checks primary button down & out of time & mouse not moved much\n } else if (select[4] == 1 && (down == null || down.pannable())) {\n if (isOverThresholdDrag) {\n if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {\n goIntoBoxMode();\n } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);\n if (allowPassthrough) {\n r.hoverData.dragging = true;\n r.hoverData.justStartedPan = true;\n select[4] = 0;\n r.data.bgActivePosistion = array2point(mdownPos);\n r.redrawHint('select', true);\n r.redraw();\n }\n }\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n }\n } else {\n if (down && down.pannable() && down.active()) {\n down.unactivate();\n }\n if ((!down || !down.grabbed()) && near != last) {\n if (last) {\n triggerEvents(last, ['mouseout', 'tapdragout'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n if (near) {\n triggerEvents(near, ['mouseover', 'tapdragover'], e, {\n x: pos[0],\n y: pos[1]\n });\n }\n r.hoverData.last = near;\n }\n if (down) {\n if (isOverThresholdDrag) {\n // then we can take action\n\n if (cy.boxSelectionEnabled() && multSelKeyDown) {\n // then selection overrides\n if (down && down.grabbed()) {\n freeDraggedElements(draggedElements);\n down.emit('freeon');\n draggedElements.emit('free');\n if (r.dragData.didDrag) {\n down.emit('dragfreeon');\n draggedElements.emit('dragfree');\n }\n }\n goIntoBoxMode();\n } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {\n // drag node\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n }\n r.dragData.didDrag = true; // indicate that we actually did drag the node\n\n // now, add the elements to the drag layer if not done already\n if (!r.hoverData.draggingEles) {\n addNodesToDrag(draggedElements, {\n inDragLayer: true\n });\n }\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n var dragDelta = r.hoverData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedElements.silentShift(totalShift).emit('position drag');\n r.redrawHint('drag', true);\n r.redraw();\n }\n } else {\n // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant\n updateDragDelta();\n }\n }\n\n // prevent the dragging from triggering text selection on the page\n preventDefault = true;\n }\n select[2] = pos[0];\n select[3] = pos[1];\n if (preventDefault) {\n if (e.stopPropagation) e.stopPropagation();\n if (e.preventDefault) e.preventDefault();\n return false;\n }\n }, false);\n var clickTimeout, didDoubleClick, prevClickTimeStamp;\n r.registerBinding(containerWindow, 'mouseup', function mouseupHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.hoverData.capture;\n if (!capture) {\n return;\n }\n r.hoverData.capture = false;\n var cy = r.cy;\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var select = r.selection;\n var near = r.findNearestElement(pos[0], pos[1], true, false);\n var draggedElements = r.dragData.possibleDragElements;\n var down = r.hoverData.down;\n var multSelKeyDown = isMultSelKeyDown(e);\n if (r.data.bgActivePosistion) {\n r.redrawHint('select', true);\n r.redraw();\n }\n r.hoverData.tapholdCancelled = true;\n r.data.bgActivePosistion = undefined; // not active bg now\n\n if (down) {\n down.unactivate();\n }\n if (r.hoverData.which === 3) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (!r.hoverData.cxtDragged) {\n var cxtTap = {\n originalEvent: e,\n type: 'cxttap',\n position: {\n x: pos[0],\n y: pos[1]\n }\n };\n if (down) {\n down.emit(cxtTap);\n } else {\n cy.emit(cxtTap);\n }\n }\n r.hoverData.cxtDragged = false;\n r.hoverData.which = null;\n } else if (r.hoverData.which === 1) {\n triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, {\n x: pos[0],\n y: pos[1]\n });\n if (!r.dragData.didDrag &&\n // didn't move a node around\n !r.hoverData.dragged &&\n // didn't pan\n !r.hoverData.selecting &&\n // not box selection\n !r.hoverData.isOverThresholdDrag // didn't move too much\n ) {\n triggerEvents(down, [\"click\", \"tap\", \"vclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n didDoubleClick = false;\n if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {\n clickTimeout && clearTimeout(clickTimeout);\n didDoubleClick = true;\n prevClickTimeStamp = null;\n triggerEvents(down, [\"dblclick\", \"dbltap\", \"vdblclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n } else {\n clickTimeout = setTimeout(function () {\n if (didDoubleClick) return;\n triggerEvents(down, [\"oneclick\", \"onetap\", \"voneclick\"], e, {\n x: pos[0],\n y: pos[1]\n });\n }, cy.multiClickDebounceTime());\n prevClickTimeStamp = e.timeStamp;\n }\n }\n\n // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something\n if (down == null // not mousedown on node\n && !r.dragData.didDrag // didn't move the node around\n && !r.hoverData.selecting // not box selection\n && !r.hoverData.dragged // didn't pan\n && !isMultSelKeyDown(e)) {\n cy.$(isSelected).unselect(['tapunselect']);\n if (draggedElements.length > 0) {\n r.redrawHint('eles', true);\n }\n r.dragData.possibleDragElements = draggedElements = cy.collection();\n }\n\n // Single selection\n if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {\n if (near != null && near._private.selectable) {\n if (r.hoverData.dragging) ; else if (cy.selectionType() === 'additive' || multSelKeyDown) {\n if (near.selected()) {\n near.unselect(['tapunselect']);\n } else {\n near.select(['tapselect']);\n }\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(near).unselect(['tapunselect']);\n near.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n }\n if (r.hoverData.selecting) {\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n r.redrawHint('select', true);\n if (box.length > 0) {\n r.redrawHint('eles', true);\n }\n cy.emit({\n type: 'boxend',\n originalEvent: e,\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n if (cy.selectionType() === 'additive') {\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n } else {\n if (!multSelKeyDown) {\n cy.$(isSelected).unmerge(box).unselect();\n }\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n }\n\n // always need redraw in case eles unselectable\n r.redraw();\n }\n\n // Cancel drag pan\n if (r.hoverData.dragging) {\n r.hoverData.dragging = false;\n r.redrawHint('select', true);\n r.redrawHint('eles', true);\n r.redraw();\n }\n if (!select[4]) {\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n var downWasGrabbed = down && down.grabbed();\n freeDraggedElements(draggedElements);\n if (downWasGrabbed) {\n down.emit('freeon');\n draggedElements.emit('free');\n if (r.dragData.didDrag) {\n down.emit('dragfreeon');\n draggedElements.emit('dragfree');\n }\n }\n }\n } // else not right mouse\n\n select[4] = 0;\n r.hoverData.down = null;\n r.hoverData.cxtStarted = false;\n r.hoverData.draggingEles = false;\n r.hoverData.selecting = false;\n r.hoverData.isOverThresholdDrag = false;\n r.dragData.didDrag = false;\n r.hoverData.dragged = false;\n r.hoverData.dragDelta = [];\n r.hoverData.mdownPos = null;\n r.hoverData.mdownGPos = null;\n }, false);\n var wheelHandler = function wheelHandler(e) {\n if (r.scrollingPage) {\n return;\n } // while scrolling, ignore wheel-to-zoom\n\n var cy = r.cy;\n var zoom = cy.zoom();\n var pan = cy.pan();\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];\n if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {\n // if pan dragging or cxt dragging, wheel movements make no zoom\n e.preventDefault();\n return;\n }\n if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {\n e.preventDefault();\n r.data.wheelZooming = true;\n clearTimeout(r.data.wheelTimeout);\n r.data.wheelTimeout = setTimeout(function () {\n r.data.wheelZooming = false;\n r.redrawHint('eles', true);\n r.redraw();\n }, 150);\n var diff;\n if (e.deltaY != null) {\n diff = e.deltaY / -250;\n } else if (e.wheelDeltaY != null) {\n diff = e.wheelDeltaY / 1000;\n } else {\n diff = e.wheelDelta / 1000;\n }\n diff = diff * r.wheelSensitivity;\n var needsWheelFix = e.deltaMode === 1;\n if (needsWheelFix) {\n // fixes slow wheel events on ff/linux and ff/windows\n diff *= 33;\n }\n var newZoom = cy.zoom() * Math.pow(10, diff);\n if (e.type === 'gesturechange') {\n newZoom = r.gestureStartZoom * e.scale;\n }\n cy.zoom({\n level: newZoom,\n renderedPosition: {\n x: rpos[0],\n y: rpos[1]\n }\n });\n cy.emit(e.type === 'gesturechange' ? 'pinchzoom' : 'scrollzoom');\n }\n };\n\n // Functions to help with whether mouse wheel should trigger zooming\n // --\n r.registerBinding(r.container, 'wheel', wheelHandler, true);\n\n // disable nonstandard wheel events\n // r.registerBinding(r.container, 'mousewheel', wheelHandler, true);\n // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true);\n // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox\n\n r.registerBinding(containerWindow, 'scroll', function scrollHandler(e) {\n // eslint-disable-line no-unused-vars\n r.scrollingPage = true;\n clearTimeout(r.scrollingPageTimeout);\n r.scrollingPageTimeout = setTimeout(function () {\n r.scrollingPage = false;\n }, 250);\n }, true);\n\n // desktop safari pinch to zoom start\n r.registerBinding(r.container, 'gesturestart', function gestureStartHandler(e) {\n r.gestureStartZoom = r.cy.zoom();\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n e.preventDefault();\n }\n }, true);\n r.registerBinding(r.container, 'gesturechange', function (e) {\n if (!r.hasTouchStarted) {\n // don't affect touch devices like iphone\n wheelHandler(e);\n }\n }, true);\n\n // Functions to help with handling mouseout/mouseover on the Cytoscape container\n // Handle mouseout on Cytoscape container\n r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseout',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) {\n var pos = r.projectIntoViewport(e.clientX, e.clientY);\n r.cy.emit({\n originalEvent: e,\n type: 'mouseover',\n position: {\n x: pos[0],\n y: pos[1]\n }\n });\n }, false);\n var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom\n var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom\n var center1, modelCenter1; // center point on start pinch to zoom\n var offsetLeft, offsetTop;\n var containerWidth, containerHeight;\n var twoFingersStartInside;\n var distance = function distance(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n };\n var distanceSq = function distanceSq(x1, y1, x2, y2) {\n return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);\n };\n var touchstartHandler;\n r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) {\n r.hasTouchStarted = true;\n if (!eventInContainer(e)) {\n return;\n }\n blurActiveDomElement();\n r.touchData.capture = true;\n r.data.bgActivePosistion = undefined;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n\n // record starting points for pinch-to-zoom\n if (e.touches[1]) {\n r.touchData.singleTouchMoved = true;\n freeDraggedElements(r.dragData.touchDragEles);\n var offsets = r.findContainerClientCoords();\n offsetLeft = offsets[0];\n offsetTop = offsets[1];\n containerWidth = offsets[2];\n containerHeight = offsets[3];\n f1x1 = e.touches[0].clientX - offsetLeft;\n f1y1 = e.touches[0].clientY - offsetTop;\n f2x1 = e.touches[1].clientX - offsetLeft;\n f2y1 = e.touches[1].clientY - offsetTop;\n twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;\n var pan = cy.pan();\n var zoom = cy.zoom();\n distance1 = distance(f1x1, f1y1, f2x1, f2y1);\n distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);\n center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];\n modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];\n\n // consider context tap\n var cxtDistThreshold = 200;\n var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;\n if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {\n var near1 = r.findNearestElement(now[0], now[1], true, true);\n var near2 = r.findNearestElement(now[2], now[3], true, true);\n if (near1 && near1.isNode()) {\n near1.activate().emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n r.touchData.start = near1;\n } else if (near2 && near2.isNode()) {\n near2.activate().emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n r.touchData.start = near2;\n } else {\n cy.emit({\n originalEvent: e,\n type: 'cxttapstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = true;\n r.touchData.cxtDragged = false;\n r.data.bgActivePosistion = undefined;\n r.redraw();\n return;\n }\n }\n if (e.touches[2]) {\n // ignore\n\n // safari on ios pans the page otherwise (normally you should be able to preventdefault on touchmove...)\n if (cy.boxSelectionEnabled()) {\n e.preventDefault();\n }\n } else if (e.touches[1]) ; else if (e.touches[0]) {\n var nears = r.findNearestElements(now[0], now[1], true, true);\n var near = nears[0];\n if (near != null) {\n near.activate();\n r.touchData.start = near;\n r.touchData.starts = nears;\n if (r.nodeIsGrabbable(near)) {\n var draggedEles = r.dragData.touchDragEles = cy.collection();\n var selectedNodes = null;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n if (near.selected()) {\n // reset drag elements, since near will be added again\n\n selectedNodes = cy.$(function (ele) {\n return ele.selected() && r.nodeIsGrabbable(ele);\n });\n addNodesToDrag(selectedNodes, {\n addToList: draggedEles\n });\n } else {\n addNodeToDrag(near, {\n addToList: draggedEles\n });\n }\n setGrabTarget(near);\n var makeEvent = function makeEvent(type) {\n return {\n originalEvent: e,\n type: type,\n position: {\n x: now[0],\n y: now[1]\n }\n };\n };\n near.emit(makeEvent('grabon'));\n if (selectedNodes) {\n selectedNodes.forEach(function (n) {\n n.emit(makeEvent('grab'));\n });\n } else {\n near.emit(makeEvent('grab'));\n }\n }\n }\n triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, {\n x: now[0],\n y: now[1]\n });\n if (near == null) {\n r.data.bgActivePosistion = {\n x: pos[0],\n y: pos[1]\n };\n r.redrawHint('select', true);\n r.redraw();\n }\n\n // Tap, taphold\n // -----\n\n r.touchData.singleTouchMoved = false;\n r.touchData.singleTouchStartTime = +new Date();\n clearTimeout(r.touchData.tapholdTimeout);\n r.touchData.tapholdTimeout = setTimeout(function () {\n if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect\n && !r.touchData.selecting // box selection shouldn't allow taphold through\n ) {\n triggerEvents(r.touchData.start, ['taphold'], e, {\n x: now[0],\n y: now[1]\n });\n }\n }, r.tapholdDuration);\n }\n if (e.touches.length >= 1) {\n var sPos = r.touchData.startPosition = [null, null, null, null, null, null];\n for (var i = 0; i < now.length; i++) {\n sPos[i] = earlier[i] = now[i];\n }\n var touch0 = e.touches[0];\n r.touchData.startGPosition = [touch0.clientX, touch0.clientY];\n }\n }, false);\n var touchmoveHandler;\n r.registerBinding(window, 'touchmove', touchmoveHandler = function touchmoveHandler(e) {\n // eslint-disable-line no-undef\n var capture = r.touchData.capture;\n if (!capture && !eventInContainer(e)) {\n return;\n }\n var select = r.selection;\n var cy = r.cy;\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n var zoom = cy.zoom();\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n var startGPos = r.touchData.startGPosition;\n var isOverThresholdDrag;\n if (capture && e.touches[0] && startGPos) {\n var disp = [];\n for (var j = 0; j < now.length; j++) {\n disp[j] = now[j] - earlier[j];\n }\n var dx = e.touches[0].clientX - startGPos[0];\n var dx2 = dx * dx;\n var dy = e.touches[0].clientY - startGPos[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n isOverThresholdDrag = dist2 >= r.touchTapThreshold2;\n }\n\n // context swipe cancelling\n if (capture && r.touchData.cxt) {\n e.preventDefault();\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 );\n var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);\n var factorSq = distance2Sq / distance1Sq;\n var distThreshold = 150;\n var distThresholdSq = distThreshold * distThreshold;\n var factorThreshold = 1.5;\n var factorThresholdSq = factorThreshold * factorThreshold;\n\n // cancel ctx gestures if the distance b/t the fingers increases\n if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {\n r.touchData.cxt = false;\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var cxtEvt = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (r.touchData.start) {\n r.touchData.start.unactivate().emit(cxtEvt);\n r.touchData.start = null;\n } else {\n cy.emit(cxtEvt);\n }\n }\n }\n\n // context swipe\n if (capture && r.touchData.cxt) {\n var cxtEvt = {\n originalEvent: e,\n type: 'cxtdrag',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n if (r.touchData.start) {\n r.touchData.start.emit(cxtEvt);\n } else {\n cy.emit(cxtEvt);\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxtDragged = true;\n var near = r.findNearestElement(now[0], now[1], true, true);\n if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {\n if (r.touchData.cxtOver) {\n r.touchData.cxtOver.emit({\n originalEvent: e,\n type: 'cxtdragout',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n r.touchData.cxtOver = near;\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'cxtdragover',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n }\n\n // box selection\n } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n this.lastThreeTouch = +new Date();\n if (!r.touchData.selecting) {\n cy.emit({\n originalEvent: e,\n type: 'boxstart',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n r.touchData.selecting = true;\n r.touchData.didSelect = true;\n select[4] = 1;\n if (!select || select.length === 0 || select[0] === undefined) {\n select[0] = (now[0] + now[2] + now[4]) / 3;\n select[1] = (now[1] + now[3] + now[5]) / 3;\n select[2] = (now[0] + now[2] + now[4]) / 3 + 1;\n select[3] = (now[1] + now[3] + now[5]) / 3 + 1;\n } else {\n select[2] = (now[0] + now[2] + now[4]) / 3;\n select[3] = (now[1] + now[3] + now[5]) / 3;\n }\n r.redrawHint('select', true);\n r.redraw();\n\n // pinch to zoom\n } else if (capture && e.touches[1] && !r.touchData.didSelect // don't allow box selection to degrade to pinch-to-zoom\n && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {\n // two fingers => pinch to zoom\n e.preventDefault();\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (draggedEles) {\n r.redrawHint('drag', true);\n for (var i = 0; i < draggedEles.length; i++) {\n var de_p = draggedEles[i]._private;\n de_p.grabbed = false;\n de_p.rscratch.inDragLayer = false;\n }\n }\n var _start = r.touchData.start;\n\n // (x2, y2) for fingers 1 and 2\n var f1x2 = e.touches[0].clientX - offsetLeft,\n f1y2 = e.touches[0].clientY - offsetTop;\n var f2x2 = e.touches[1].clientX - offsetLeft,\n f2y2 = e.touches[1].clientY - offsetTop;\n var distance2 = distance(f1x2, f1y2, f2x2, f2y2);\n // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 );\n // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq );\n var factor = distance2 / distance1;\n if (twoFingersStartInside) {\n // delta finger1\n var df1x = f1x2 - f1x1;\n var df1y = f1y2 - f1y1;\n\n // delta finger 2\n var df2x = f2x2 - f2x1;\n var df2y = f2y2 - f2y1;\n\n // translation is the normalised vector of the two fingers movement\n // i.e. so pinching cancels out and moving together pans\n var tx = (df1x + df2x) / 2;\n var ty = (df1y + df2y) / 2;\n\n // now calculate the zoom\n var zoom1 = cy.zoom();\n var zoom2 = zoom1 * factor;\n var pan1 = cy.pan();\n\n // the model center point converted to the current rendered pos\n var ctrx = modelCenter1[0] * zoom1 + pan1.x;\n var ctry = modelCenter1[1] * zoom1 + pan1.y;\n var pan2 = {\n x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,\n y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry\n };\n\n // remove dragged eles\n if (_start && _start.active()) {\n var draggedEles = r.dragData.touchDragEles;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n _start.unactivate().emit('freeon');\n draggedEles.emit('free');\n if (r.dragData.didDrag) {\n _start.emit('dragfreeon');\n draggedEles.emit('dragfree');\n }\n }\n cy.viewport({\n zoom: zoom2,\n pan: pan2,\n cancelOnFailedZoom: true\n });\n cy.emit('pinchzoom');\n distance1 = distance2;\n f1x1 = f1x2;\n f1y1 = f1y2;\n f2x1 = f2x2;\n f2y1 = f2y2;\n r.pinching = true;\n }\n\n // Re-project\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n } else if (e.touches[0] && !r.touchData.didSelect // don't allow box selection to degrade to single finger events like panning\n ) {\n var start = r.touchData.start;\n var last = r.touchData.last;\n var near;\n if (!r.hoverData.draggingEles && !r.swipePanning) {\n near = r.findNearestElement(now[0], now[1], true, true);\n }\n if (capture && start != null) {\n e.preventDefault();\n }\n\n // dragging nodes\n if (capture && start != null && r.nodeIsDraggable(start)) {\n if (isOverThresholdDrag) {\n // then dragging can happen\n var draggedEles = r.dragData.touchDragEles;\n var justStartedDrag = !r.dragData.didDrag;\n if (justStartedDrag) {\n addNodesToDrag(draggedEles, {\n inDragLayer: true\n });\n }\n r.dragData.didDrag = true;\n var totalShift = {\n x: 0,\n y: 0\n };\n if (number$1(disp[0]) && number$1(disp[1])) {\n totalShift.x += disp[0];\n totalShift.y += disp[1];\n if (justStartedDrag) {\n r.redrawHint('eles', true);\n var dragDelta = r.touchData.dragDelta;\n if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) {\n totalShift.x += dragDelta[0];\n totalShift.y += dragDelta[1];\n }\n }\n }\n r.hoverData.draggingEles = true;\n draggedEles.silentShift(totalShift).emit('position drag');\n r.redrawHint('drag', true);\n if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n } else {\n // otherwise keep track of drag delta for later\n var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];\n if (dragDelta.length === 0) {\n dragDelta.push(disp[0]);\n dragDelta.push(disp[1]);\n } else {\n dragDelta[0] += disp[0];\n dragDelta[1] += disp[1];\n }\n }\n }\n\n // touchmove\n {\n triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, {\n x: now[0],\n y: now[1]\n });\n if ((!start || !start.grabbed()) && near != last) {\n if (last) {\n last.emit({\n originalEvent: e,\n type: 'tapdragout',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n if (near) {\n near.emit({\n originalEvent: e,\n type: 'tapdragover',\n position: {\n x: now[0],\n y: now[1]\n }\n });\n }\n }\n r.touchData.last = near;\n }\n\n // check to cancel taphold\n if (capture) {\n for (var i = 0; i < now.length; i++) {\n if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) {\n r.touchData.singleTouchMoved = true;\n }\n }\n }\n\n // panning\n if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {\n var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts);\n if (allowPassthrough) {\n e.preventDefault();\n if (!r.data.bgActivePosistion) {\n r.data.bgActivePosistion = array2point(r.touchData.startPosition);\n }\n if (r.swipePanning) {\n cy.panBy({\n x: disp[0] * zoom,\n y: disp[1] * zoom\n });\n cy.emit('dragpan');\n } else if (isOverThresholdDrag) {\n r.swipePanning = true;\n cy.panBy({\n x: dx * zoom,\n y: dy * zoom\n });\n cy.emit('dragpan');\n if (start) {\n start.unactivate();\n r.redrawHint('select', true);\n r.touchData.start = null;\n }\n }\n }\n\n // Re-project\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n\n // the active bg indicator should be removed when making a swipe that is neither for dragging nodes or panning\n if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n r.redraw();\n }\n }, false);\n var touchcancelHandler;\n r.registerBinding(containerWindow, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n r.touchData.capture = false;\n if (start) {\n start.unactivate();\n }\n });\n var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;\n r.registerBinding(containerWindow, 'touchend', touchendHandler = function touchendHandler(e) {\n // eslint-disable-line no-unused-vars\n var start = r.touchData.start;\n var capture = r.touchData.capture;\n if (capture) {\n if (e.touches.length === 0) {\n r.touchData.capture = false;\n }\n e.preventDefault();\n } else {\n return;\n }\n var select = r.selection;\n r.swipePanning = false;\n r.hoverData.draggingEles = false;\n var cy = r.cy;\n var zoom = cy.zoom();\n var now = r.touchData.now;\n var earlier = r.touchData.earlier;\n if (e.touches[0]) {\n var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);\n now[0] = pos[0];\n now[1] = pos[1];\n }\n if (e.touches[1]) {\n var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);\n now[2] = pos[0];\n now[3] = pos[1];\n }\n if (e.touches[2]) {\n var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);\n now[4] = pos[0];\n now[5] = pos[1];\n }\n if (start) {\n start.unactivate();\n }\n var ctxTapend;\n if (r.touchData.cxt) {\n ctxTapend = {\n originalEvent: e,\n type: 'cxttapend',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (start) {\n start.emit(ctxTapend);\n } else {\n cy.emit(ctxTapend);\n }\n if (!r.touchData.cxtDragged) {\n var ctxTap = {\n originalEvent: e,\n type: 'cxttap',\n position: {\n x: now[0],\n y: now[1]\n }\n };\n if (start) {\n start.emit(ctxTap);\n } else {\n cy.emit(ctxTap);\n }\n }\n if (r.touchData.start) {\n r.touchData.start._private.grabbed = false;\n }\n r.touchData.cxt = false;\n r.touchData.start = null;\n r.redraw();\n return;\n }\n\n // no more box selection if we don't have three fingers\n if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {\n r.touchData.selecting = false;\n var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3]));\n select[0] = undefined;\n select[1] = undefined;\n select[2] = undefined;\n select[3] = undefined;\n select[4] = 0;\n r.redrawHint('select', true);\n cy.emit({\n type: 'boxend',\n originalEvent: e,\n position: {\n x: now[0],\n y: now[1]\n }\n });\n var eleWouldBeSelected = function eleWouldBeSelected(ele) {\n return ele.selectable() && !ele.selected();\n };\n box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect');\n if (box.nonempty()) {\n r.redrawHint('eles', true);\n }\n r.redraw();\n }\n if (start != null) {\n start.unactivate();\n }\n if (e.touches[2]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n } else if (e.touches[1]) ; else if (e.touches[0]) ; else if (!e.touches[0]) {\n r.data.bgActivePosistion = undefined;\n r.redrawHint('select', true);\n var draggedEles = r.dragData.touchDragEles;\n if (start != null) {\n var startWasGrabbed = start._private.grabbed;\n freeDraggedElements(draggedEles);\n r.redrawHint('drag', true);\n r.redrawHint('eles', true);\n if (startWasGrabbed) {\n start.emit('freeon');\n draggedEles.emit('free');\n if (r.dragData.didDrag) {\n start.emit('dragfreeon');\n draggedEles.emit('dragfree');\n }\n }\n triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n start.unactivate();\n r.touchData.start = null;\n } else {\n var near = r.findNearestElement(now[0], now[1], true, true);\n triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, {\n x: now[0],\n y: now[1]\n });\n }\n var dx = r.touchData.startPosition[0] - now[0];\n var dx2 = dx * dx;\n var dy = r.touchData.startPosition[1] - now[1];\n var dy2 = dy * dy;\n var dist2 = dx2 + dy2;\n var rdist2 = dist2 * zoom * zoom;\n\n // Tap event, roughly same as mouse click event for touch\n if (!r.touchData.singleTouchMoved) {\n if (!start) {\n cy.$(':selected').unselect(['tapunselect']);\n }\n triggerEvents(start, ['tap', 'vclick'], e, {\n x: now[0],\n y: now[1]\n });\n didDoubleTouch = false;\n if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {\n touchTimeout && clearTimeout(touchTimeout);\n didDoubleTouch = true;\n prevTouchTimeStamp = null;\n triggerEvents(start, ['dbltap', 'vdblclick'], e, {\n x: now[0],\n y: now[1]\n });\n } else {\n touchTimeout = setTimeout(function () {\n if (didDoubleTouch) return;\n triggerEvents(start, ['onetap', 'voneclick'], e, {\n x: now[0],\n y: now[1]\n });\n }, cy.multiClickDebounceTime());\n prevTouchTimeStamp = e.timeStamp;\n }\n }\n\n // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance\n if (start != null && !r.dragData.didDrag // didn't drag nodes around\n && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection\n ) {\n if (cy.selectionType() === 'single') {\n cy.$(isSelected).unmerge(start).unselect(['tapunselect']);\n start.select(['tapselect']);\n } else {\n if (start.selected()) {\n start.unselect(['tapunselect']);\n } else {\n start.select(['tapselect']);\n }\n }\n r.redrawHint('eles', true);\n }\n r.touchData.singleTouchMoved = true;\n }\n for (var j = 0; j < now.length; j++) {\n earlier[j] = now[j];\n }\n r.dragData.didDrag = false; // reset for next touchstart\n\n if (e.touches.length === 0) {\n r.touchData.dragDelta = [];\n r.touchData.startPosition = [null, null, null, null, null, null];\n r.touchData.startGPosition = null;\n r.touchData.didSelect = false;\n }\n if (e.touches.length < 2) {\n if (e.touches.length === 1) {\n // the old start global pos'n may not be the same finger that remains\n r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];\n }\n r.pinching = false;\n r.redrawHint('eles', true);\n r.redraw();\n }\n\n //r.redraw();\n }, false);\n\n // fallback compatibility layer for ms pointer events\n if (typeof TouchEvent === 'undefined') {\n var pointers = [];\n var makeTouch = function makeTouch(e) {\n return {\n clientX: e.clientX,\n clientY: e.clientY,\n force: 1,\n identifier: e.pointerId,\n pageX: e.pageX,\n pageY: e.pageY,\n radiusX: e.width / 2,\n radiusY: e.height / 2,\n screenX: e.screenX,\n screenY: e.screenY,\n target: e.target\n };\n };\n var makePointer = function makePointer(e) {\n return {\n event: e,\n touch: makeTouch(e)\n };\n };\n var addPointer = function addPointer(e) {\n pointers.push(makePointer(e));\n };\n var removePointer = function removePointer(e) {\n for (var i = 0; i < pointers.length; i++) {\n var p = pointers[i];\n if (p.event.pointerId === e.pointerId) {\n pointers.splice(i, 1);\n return;\n }\n }\n };\n var updatePointer = function updatePointer(e) {\n var p = pointers.filter(function (p) {\n return p.event.pointerId === e.pointerId;\n })[0];\n p.event = e;\n p.touch = makeTouch(e);\n };\n var addTouchesToEvent = function addTouchesToEvent(e) {\n e.touches = pointers.map(function (p) {\n return p.touch;\n });\n };\n var pointerIsMouse = function pointerIsMouse(e) {\n return e.pointerType === 'mouse' || e.pointerType === 4;\n };\n r.registerBinding(r.container, 'pointerdown', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n addPointer(e);\n addTouchesToEvent(e);\n touchstartHandler(e);\n });\n r.registerBinding(r.container, 'pointerup', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchendHandler(e);\n });\n r.registerBinding(r.container, 'pointercancel', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n removePointer(e);\n addTouchesToEvent(e);\n touchcancelHandler(e);\n });\n r.registerBinding(r.container, 'pointermove', function (e) {\n if (pointerIsMouse(e)) {\n return;\n } // mouse already handled\n\n e.preventDefault();\n updatePointer(e);\n addTouchesToEvent(e);\n touchmoveHandler(e);\n });\n }\n };\n\n var BRp$2 = {};\n BRp$2.generatePolygon = function (name, points) {\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: points,\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding);\n }\n };\n };\n BRp$2.generateEllipse = function () {\n return this.nodeShapes['ellipse'] = {\n renderer: this,\n name: 'ellipse',\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n return checkInEllipse(x, y, width, height, centerX, centerY, padding);\n }\n };\n };\n BRp$2.generateRoundPolygon = function (name, points) {\n // Pre-compute control points\n // Since these points depend on the radius length (which in turns depend on the width/height of the node) we will only pre-compute\n // the unit vectors.\n // For simplicity the layout will be:\n // [ p0, UnitVectorP0P1, p1, UniVectorP1P2, ..., pn, UnitVectorPnP0 ]\n var allPoints = new Array(points.length * 2);\n for (var i = 0; i < points.length / 2; i++) {\n var sourceIndex = i * 2;\n var destIndex = void 0;\n if (i < points.length / 2 - 1) {\n destIndex = (i + 1) * 2;\n } else {\n destIndex = 0;\n }\n allPoints[i * 4] = points[sourceIndex];\n allPoints[i * 4 + 1] = points[sourceIndex + 1];\n var xDest = points[destIndex] - points[sourceIndex];\n var yDest = points[destIndex + 1] - points[sourceIndex + 1];\n var norm = Math.sqrt(xDest * xDest + yDest * yDest);\n allPoints[i * 4 + 2] = xDest / norm;\n allPoints[i * 4 + 3] = yDest / norm;\n }\n return this.nodeShapes[name] = {\n renderer: this,\n name: name,\n points: allPoints,\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl('round-polygon', context, centerX, centerY, width, height, this.points);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height);\n }\n };\n };\n BRp$2.generateRoundRectangle = function () {\n return this.nodeShapes['round-rectangle'] = this.nodeShapes['roundrectangle'] = {\n renderer: this,\n name: 'round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n var cornerRadius = getRoundRectangleRadius(width, height);\n var diam = cornerRadius * 2;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // Check top left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) {\n return true;\n }\n\n // Check top right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n };\n BRp$2.generateCutRectangle = function () {\n return this.nodeShapes['cut-rectangle'] = this.nodeShapes['cutrectangle'] = {\n renderer: this,\n name: 'cut-rectangle',\n cornerLength: getCutRectangleCornerLength(),\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) {\n var cl = this.cornerLength;\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n\n // points are in clockwise order, inner (imaginary) triangle pt on [4, 5]\n return {\n topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],\n topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],\n bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],\n bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]\n };\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);\n var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) {\n return true;\n }\n var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY);\n return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft);\n }\n };\n };\n BRp$2.generateBarrel = function () {\n return this.nodeShapes['barrel'] = {\n renderer: this,\n name: 'barrel',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n // use two fixed t values for the bezier curve approximation\n\n var t0 = 0.15;\n var t1 = 0.5;\n var t2 = 0.85;\n var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY);\n var approximateBarrelCurvePts = function approximateBarrelCurvePts(pts) {\n // approximate curve pts based on the two t values\n var m0 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t0);\n var m1 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t1);\n var m2 = qbezierPtAt({\n x: pts[0],\n y: pts[1]\n }, {\n x: pts[2],\n y: pts[3]\n }, {\n x: pts[4],\n y: pts[5]\n }, t2);\n return [pts[0], pts[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts[4], pts[5]];\n };\n var pts = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));\n return polygonIntersectLine(x, y, pts, nodeX, nodeY);\n },\n generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) {\n var hh = height / 2;\n var hw = width / 2;\n var xBegin = centerX - hw;\n var xEnd = centerX + hw;\n var yBegin = centerY - hh;\n var yEnd = centerY + hh;\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width;\n\n // points are in clockwise order, inner (imaginary) control pt on [4, 5]\n var pts = {\n topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],\n topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],\n bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],\n bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]\n };\n pts.topLeft.isTop = true;\n pts.topRight.isTop = true;\n pts.bottomLeft.isBottom = true;\n pts.bottomRight.isBottom = true;\n return pts;\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n var curveConstants = getBarrelCurveConstants(width, height);\n var hOffset = curveConstants.heightOffset;\n var wOffset = curveConstants.widthOffset;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) {\n return true;\n }\n var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY);\n var getCurveT = function getCurveT(x, y, curvePts) {\n var x0 = curvePts[4];\n var x1 = curvePts[2];\n var x2 = curvePts[0];\n var y0 = curvePts[5];\n // var y1 = curvePts[ 3 ];\n var y2 = curvePts[1];\n var xMin = Math.min(x0, x2);\n var xMax = Math.max(x0, x2);\n var yMin = Math.min(y0, y2);\n var yMax = Math.max(y0, y2);\n if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) {\n var coeff = bezierPtsToQuadCoeff(x0, x1, x2);\n var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x);\n var validRoots = roots.filter(function (r) {\n return 0 <= r && r <= 1;\n });\n if (validRoots.length > 0) {\n return validRoots[0];\n }\n }\n return null;\n };\n var curveRegions = Object.keys(barrelCurvePts);\n for (var i = 0; i < curveRegions.length; i++) {\n var corner = curveRegions[i];\n var cornerPts = barrelCurvePts[corner];\n var t = getCurveT(x, y, cornerPts);\n if (t == null) {\n continue;\n }\n var y0 = cornerPts[5];\n var y1 = cornerPts[3];\n var y2 = cornerPts[1];\n var bezY = qbezierAt(y0, y1, y2, t);\n if (cornerPts.isTop && bezY <= y) {\n return true;\n }\n if (cornerPts.isBottom && y <= bezY) {\n return true;\n }\n }\n return false;\n }\n };\n };\n BRp$2.generateBottomRoundrectangle = function () {\n return this.nodeShapes['bottom-round-rectangle'] = this.nodeShapes['bottomroundrectangle'] = {\n renderer: this,\n name: 'bottom-round-rectangle',\n points: generateUnitNgonPointsFitToSquare(4, 0),\n draw: function draw(context, centerX, centerY, width, height) {\n this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height);\n },\n intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) {\n var topStartX = nodeX - (width / 2 + padding);\n var topStartY = nodeY - (height / 2 + padding);\n var topEndY = topStartY;\n var topEndX = nodeX + (width / 2 + padding);\n var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);\n if (topIntersections.length > 0) {\n return topIntersections;\n }\n return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding);\n },\n checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) {\n var cornerRadius = getRoundRectangleRadius(width, height);\n var diam = 2 * cornerRadius;\n\n // Check hBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) {\n return true;\n }\n\n // Check vBox\n if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) {\n return true;\n }\n\n // check non-rounded top side\n var outerWidth = width / 2 + 2 * padding;\n var outerHeight = height / 2 + 2 * padding;\n var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];\n if (pointInsidePolygonPoints(x, y, points)) {\n return true;\n }\n\n // Check bottom right quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n\n // Check bottom left quarter circle\n if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) {\n return true;\n }\n return false;\n }\n };\n };\n BRp$2.registerNodeShapes = function () {\n var nodeShapes = this.nodeShapes = {};\n var renderer = this;\n this.generateEllipse();\n this.generatePolygon('triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generateRoundPolygon('round-triangle', generateUnitNgonPointsFitToSquare(3, 0));\n this.generatePolygon('rectangle', generateUnitNgonPointsFitToSquare(4, 0));\n nodeShapes['square'] = nodeShapes['rectangle'];\n this.generateRoundRectangle();\n this.generateCutRectangle();\n this.generateBarrel();\n this.generateBottomRoundrectangle();\n {\n var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];\n this.generatePolygon('diamond', diamondPoints);\n this.generateRoundPolygon('round-diamond', diamondPoints);\n }\n this.generatePolygon('pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generateRoundPolygon('round-pentagon', generateUnitNgonPointsFitToSquare(5, 0));\n this.generatePolygon('hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generateRoundPolygon('round-hexagon', generateUnitNgonPointsFitToSquare(6, 0));\n this.generatePolygon('heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generateRoundPolygon('round-heptagon', generateUnitNgonPointsFitToSquare(7, 0));\n this.generatePolygon('octagon', generateUnitNgonPointsFitToSquare(8, 0));\n this.generateRoundPolygon('round-octagon', generateUnitNgonPointsFitToSquare(8, 0));\n var star5Points = new Array(20);\n {\n var outerPoints = generateUnitNgonPoints(5, 0);\n var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);\n\n // Outer radius is 1; inner radius of star is smaller\n var innerRadius = 0.5 * (3 - Math.sqrt(5));\n innerRadius *= 1.57;\n for (var i = 0; i < innerPoints.length / 2; i++) {\n innerPoints[i * 2] *= innerRadius;\n innerPoints[i * 2 + 1] *= innerRadius;\n }\n for (var i = 0; i < 20 / 4; i++) {\n star5Points[i * 4] = outerPoints[i * 2];\n star5Points[i * 4 + 1] = outerPoints[i * 2 + 1];\n star5Points[i * 4 + 2] = innerPoints[i * 2];\n star5Points[i * 4 + 3] = innerPoints[i * 2 + 1];\n }\n }\n star5Points = fitPolygonToSquare(star5Points);\n this.generatePolygon('star', star5Points);\n this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]);\n this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);\n this.generatePolygon('right-rhomboid', [-0.333, -1, 1, -1, 0.333, 1, -1, 1]);\n this.nodeShapes['concavehexagon'] = this.generatePolygon('concave-hexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);\n {\n var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];\n this.generatePolygon('tag', tagPoints);\n this.generateRoundPolygon('round-tag', tagPoints);\n }\n nodeShapes.makePolygon = function (points) {\n // use caching on user-specified polygons so they are as fast as native shapes\n\n var key = points.join('$');\n var name = 'polygon-' + key;\n var shape;\n if (shape = this[name]) {\n // got cached shape\n return shape;\n }\n\n // create and cache new shape\n return renderer.generatePolygon(name, points);\n };\n };\n\n var BRp$1 = {};\n BRp$1.timeToRender = function () {\n return this.redrawTotalTime / this.redrawCount;\n };\n BRp$1.redraw = function (options) {\n options = options || staticEmptyObject();\n var r = this;\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = 0;\n }\n if (r.lastRedrawTime === undefined) {\n r.lastRedrawTime = 0;\n }\n if (r.lastDrawTime === undefined) {\n r.lastDrawTime = 0;\n }\n r.requestedFrame = true;\n r.renderOptions = options;\n };\n BRp$1.beforeRender = function (fn, priority) {\n // the renderer can't add tick callbacks when destroyed\n if (this.destroyed) {\n return;\n }\n if (priority == null) {\n error('Priority is not optional for beforeRender');\n }\n var cbs = this.beforeRenderCallbacks;\n cbs.push({\n fn: fn,\n priority: priority\n });\n\n // higher priority callbacks executed first\n cbs.sort(function (a, b) {\n return b.priority - a.priority;\n });\n };\n var beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) {\n var cbs = r.beforeRenderCallbacks;\n for (var i = 0; i < cbs.length; i++) {\n cbs[i].fn(willDraw, startTime);\n }\n };\n BRp$1.startRenderLoop = function () {\n var r = this;\n var cy = r.cy;\n if (r.renderLoopStarted) {\n return;\n } else {\n r.renderLoopStarted = true;\n }\n var renderFn = function renderFn(requestTime) {\n if (r.destroyed) {\n return;\n }\n if (cy.batching()) ; else if (r.requestedFrame && !r.skipFrame) {\n beforeRenderCallbacks(r, true, requestTime);\n var startTime = performanceNow();\n r.render(r.renderOptions);\n var endTime = r.lastDrawTime = performanceNow();\n if (r.averageRedrawTime === undefined) {\n r.averageRedrawTime = endTime - startTime;\n }\n if (r.redrawCount === undefined) {\n r.redrawCount = 0;\n }\n r.redrawCount++;\n if (r.redrawTotalTime === undefined) {\n r.redrawTotalTime = 0;\n }\n var duration = endTime - startTime;\n r.redrawTotalTime += duration;\n r.lastRedrawTime = duration;\n\n // use a weighted average with a bias from the previous average so we don't spike so easily\n r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;\n r.requestedFrame = false;\n } else {\n beforeRenderCallbacks(r, false, requestTime);\n }\n r.skipFrame = false;\n requestAnimationFrame(renderFn);\n };\n requestAnimationFrame(renderFn);\n };\n\n var BaseRenderer = function BaseRenderer(options) {\n this.init(options);\n };\n var BR = BaseRenderer;\n var BRp = BR.prototype;\n BRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl'];\n BRp.init = function (options) {\n var r = this;\n r.options = options;\n r.cy = options.cy;\n var ctr = r.container = options.cy.container();\n var containerWindow = r.cy.window();\n\n // prepend a stylesheet in the head such that\n if (containerWindow) {\n var document = containerWindow.document;\n var head = document.head;\n var stylesheetId = '__________cytoscape_stylesheet';\n var className = '__________cytoscape_container';\n var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null;\n if (ctr.className.indexOf(className) < 0) {\n ctr.className = (ctr.className || '') + ' ' + className;\n }\n if (!stylesheetAlreadyExists) {\n var stylesheet = document.createElement('style');\n stylesheet.id = stylesheetId;\n stylesheet.textContent = '.' + className + ' { position: relative; }';\n head.insertBefore(stylesheet, head.children[0]); // first so lowest priority\n }\n\n var computedStyle = containerWindow.getComputedStyle(ctr);\n var position = computedStyle.getPropertyValue('position');\n if (position === 'static') {\n warn('A Cytoscape container has style position:static and so can not use UI extensions properly');\n }\n }\n r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag\n\n r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];\n\n //--Pointer-related data\n r.hoverData = {\n down: null,\n last: null,\n downTime: null,\n triggerMode: null,\n dragging: false,\n initialPan: [null, null],\n capture: false\n };\n r.dragData = {\n possibleDragElements: []\n };\n r.touchData = {\n start: null,\n capture: false,\n // These 3 fields related to tap, taphold events\n startPosition: [null, null, null, null, null, null],\n singleTouchStartTime: null,\n singleTouchMoved: true,\n now: [null, null, null, null, null, null],\n earlier: [null, null, null, null, null, null]\n };\n r.redraws = 0;\n r.showFps = options.showFps;\n r.debug = options.debug;\n r.hideEdgesOnViewport = options.hideEdgesOnViewport;\n r.textureOnViewport = options.textureOnViewport;\n r.wheelSensitivity = options.wheelSensitivity;\n r.motionBlurEnabled = options.motionBlur; // on by default\n r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null;\n r.motionBlur = options.motionBlur; // for initial kick off\n r.motionBlurOpacity = options.motionBlurOpacity;\n r.motionBlurTransparency = 1 - r.motionBlurOpacity;\n r.motionBlurPxRatio = 1;\n r.mbPxRBlurry = 1; //0.8;\n r.minMbLowQualFrames = 4;\n r.fullQualityMb = false;\n r.clearedForMotionBlur = [];\n r.desktopTapThreshold = options.desktopTapThreshold;\n r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold;\n r.touchTapThreshold = options.touchTapThreshold;\n r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold;\n r.tapholdDuration = 500;\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.beforeRenderPriorities = {\n // higher priority execs before lower one\n animations: 400,\n eleCalcs: 300,\n eleTxrDeq: 200,\n lyrTxrDeq: 150,\n lyrTxrSkip: 100\n };\n r.registerNodeShapes();\n r.registerArrowShapes();\n r.registerCalculationListeners();\n };\n BRp.notify = function (eventName, eles) {\n var r = this;\n var cy = r.cy;\n\n // the renderer can't be notified after it's destroyed\n if (this.destroyed) {\n return;\n }\n if (eventName === 'init') {\n r.load();\n return;\n }\n if (eventName === 'destroy') {\n r.destroy();\n return;\n }\n if (eventName === 'add' || eventName === 'remove' || eventName === 'move' && cy.hasCompoundNodes() || eventName === 'load' || eventName === 'zorder' || eventName === 'mount') {\n r.invalidateCachedZSortedEles();\n }\n if (eventName === 'viewport') {\n r.redrawHint('select', true);\n }\n if (eventName === 'load' || eventName === 'resize' || eventName === 'mount') {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n }\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n this.startRenderLoop();\n this.redraw();\n };\n BRp.destroy = function () {\n var r = this;\n r.destroyed = true;\n r.cy.stopAnimationLoop();\n for (var i = 0; i < r.bindings.length; i++) {\n var binding = r.bindings[i];\n var b = binding;\n var tgt = b.target;\n (tgt.off || tgt.removeEventListener).apply(tgt, b.args);\n }\n r.bindings = [];\n r.beforeRenderCallbacks = [];\n r.onUpdateEleCalcsFns = [];\n if (r.removeObserver) {\n r.removeObserver.disconnect();\n }\n if (r.styleObserver) {\n r.styleObserver.disconnect();\n }\n if (r.resizeObserver) {\n r.resizeObserver.disconnect();\n }\n if (r.labelCalcDiv) {\n try {\n document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef\n } catch (e) {\n // ie10 issue #1014\n }\n }\n };\n BRp.isHeadless = function () {\n return false;\n };\n [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function (props) {\n extend(BRp, props);\n });\n\n var fullFpsTime = 1000 / 60; // assume 60 frames per second\n\n var defs = {\n setupDequeueing: function setupDequeueing(opts) {\n return function setupDequeueingImpl() {\n var self = this;\n var r = this.renderer;\n if (self.dequeueingSetup) {\n return;\n } else {\n self.dequeueingSetup = true;\n }\n var queueRedraw = debounce_1(function () {\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n }, opts.deqRedrawThreshold);\n var dequeue = function dequeue(willDraw, frameStartTime) {\n var startTime = performanceNow();\n var avgRenderTime = r.averageRedrawTime;\n var renderTime = r.lastRedrawTime;\n var deqd = [];\n var extent = r.cy.extent();\n var pixelRatio = r.getPixelRatio();\n\n // if we aren't in a tick that causes a draw, then the rendered style\n // queue won't automatically be flushed before dequeueing starts\n if (!willDraw) {\n r.flushRenderedStyleQueue();\n }\n while (true) {\n // eslint-disable-line no-constant-condition\n var now = performanceNow();\n var duration = now - startTime;\n var frameDuration = now - frameStartTime;\n if (renderTime < fullFpsTime) {\n // if we're rendering faster than the ideal fps, then do dequeueing\n // during all of the remaining frame time\n\n var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);\n if (frameDuration >= opts.deqFastCost * timeAvailable) {\n break;\n }\n } else {\n if (willDraw) {\n if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {\n break;\n }\n } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {\n break;\n }\n }\n var thisDeqd = opts.deq(self, pixelRatio, extent);\n if (thisDeqd.length > 0) {\n for (var i = 0; i < thisDeqd.length; i++) {\n deqd.push(thisDeqd[i]);\n }\n } else {\n break;\n }\n }\n\n // callbacks on dequeue\n if (deqd.length > 0) {\n opts.onDeqd(self, deqd);\n if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) {\n queueRedraw();\n }\n }\n };\n var priority = opts.priority || noop$1;\n r.beforeRender(dequeue, priority(self));\n };\n }\n };\n\n // Allows lookups for (ele, lvl) => cache.\n // Uses keys so elements may share the same cache.\n var ElementTextureCacheLookup = /*#__PURE__*/function () {\n function ElementTextureCacheLookup(getKey) {\n var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : falsify;\n _classCallCheck(this, ElementTextureCacheLookup);\n this.idsByKey = new Map$2();\n this.keyForId = new Map$2();\n this.cachesByLvl = new Map$2();\n this.lvls = [];\n this.getKey = getKey;\n this.doesEleInvalidateKey = doesEleInvalidateKey;\n }\n _createClass(ElementTextureCacheLookup, [{\n key: \"getIdsFor\",\n value: function getIdsFor(key) {\n if (key == null) {\n error(\"Can not get id list for null key\");\n }\n var idsByKey = this.idsByKey;\n var ids = this.idsByKey.get(key);\n if (!ids) {\n ids = new Set$1();\n idsByKey.set(key, ids);\n }\n return ids;\n }\n }, {\n key: \"addIdForKey\",\n value: function addIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key).add(id);\n }\n }\n }, {\n key: \"deleteIdForKey\",\n value: function deleteIdForKey(key, id) {\n if (key != null) {\n this.getIdsFor(key)[\"delete\"](id);\n }\n }\n }, {\n key: \"getNumberOfIdsForKey\",\n value: function getNumberOfIdsForKey(key) {\n if (key == null) {\n return 0;\n } else {\n return this.getIdsFor(key).size;\n }\n }\n }, {\n key: \"updateKeyMappingFor\",\n value: function updateKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var currKey = this.getKey(ele);\n this.deleteIdForKey(prevKey, id);\n this.addIdForKey(currKey, id);\n this.keyForId.set(id, currKey);\n }\n }, {\n key: \"deleteKeyMappingFor\",\n value: function deleteKeyMappingFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n this.deleteIdForKey(prevKey, id);\n this.keyForId[\"delete\"](id);\n }\n }, {\n key: \"keyHasChangedFor\",\n value: function keyHasChangedFor(ele) {\n var id = ele.id();\n var prevKey = this.keyForId.get(id);\n var newKey = this.getKey(ele);\n return prevKey !== newKey;\n }\n }, {\n key: \"isInvalid\",\n value: function isInvalid(ele) {\n return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);\n }\n }, {\n key: \"getCachesAt\",\n value: function getCachesAt(lvl) {\n var cachesByLvl = this.cachesByLvl,\n lvls = this.lvls;\n var caches = cachesByLvl.get(lvl);\n if (!caches) {\n caches = new Map$2();\n cachesByLvl.set(lvl, caches);\n lvls.push(lvl);\n }\n return caches;\n }\n }, {\n key: \"getCache\",\n value: function getCache(key, lvl) {\n return this.getCachesAt(lvl).get(key);\n }\n }, {\n key: \"get\",\n value: function get(ele, lvl) {\n var key = this.getKey(ele);\n var cache = this.getCache(key, lvl);\n\n // getting for an element may need to add to the id list b/c eles can share keys\n if (cache != null) {\n this.updateKeyMappingFor(ele);\n }\n return cache;\n }\n }, {\n key: \"getForCachedKey\",\n value: function getForCachedKey(ele, lvl) {\n var key = this.keyForId.get(ele.id()); // n.b. use cached key, not newly computed key\n var cache = this.getCache(key, lvl);\n return cache;\n }\n }, {\n key: \"hasCache\",\n value: function hasCache(key, lvl) {\n return this.getCachesAt(lvl).has(key);\n }\n }, {\n key: \"has\",\n value: function has(ele, lvl) {\n var key = this.getKey(ele);\n return this.hasCache(key, lvl);\n }\n }, {\n key: \"setCache\",\n value: function setCache(key, lvl, cache) {\n cache.key = key;\n this.getCachesAt(lvl).set(key, cache);\n }\n }, {\n key: \"set\",\n value: function set(ele, lvl, cache) {\n var key = this.getKey(ele);\n this.setCache(key, lvl, cache);\n this.updateKeyMappingFor(ele);\n }\n }, {\n key: \"deleteCache\",\n value: function deleteCache(key, lvl) {\n this.getCachesAt(lvl)[\"delete\"](key);\n }\n }, {\n key: \"delete\",\n value: function _delete(ele, lvl) {\n var key = this.getKey(ele);\n this.deleteCache(key, lvl);\n }\n }, {\n key: \"invalidateKey\",\n value: function invalidateKey(key) {\n var _this = this;\n this.lvls.forEach(function (lvl) {\n return _this.deleteCache(key, lvl);\n });\n }\n\n // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)\n }, {\n key: \"invalidate\",\n value: function invalidate(ele) {\n var id = ele.id();\n var key = this.keyForId.get(id); // n.b. use stored key rather than current (potential key)\n\n this.deleteKeyMappingFor(ele);\n var entireKeyInvalidated = this.doesEleInvalidateKey(ele);\n if (entireKeyInvalidated) {\n // clear mapping for current key\n this.invalidateKey(key);\n }\n return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;\n }\n }]);\n return ElementTextureCacheLookup;\n }();\n\n var minTxrH = 25; // the size of the texture cache for small height eles (special case)\n var txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up\n var minLvl$1 = -4; // when scaling smaller than that we don't need to re-render\n var maxLvl$1 = 3; // when larger than this scale just render directly (caching is not helpful)\n var maxZoom$1 = 7.99; // beyond this zoom level, layered textures are not used\n var eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps\n var defTxrWidth = 1024; // default/minimum texture width\n var maxTxrW = 1024; // the maximum width of a texture\n var maxTxrH = 1024; // the maximum height of a texture\n var minUtility = 0.2; // if usage of texture is less than this, it is retired\n var maxFullness = 0.8; // fullness of texture after which queue removal is checked\n var maxFullnessChecks = 10; // dequeued after this many checks\n var deqCost$1 = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\n var deqAvgCost$1 = 0.1; // % of add'l rendering cost compared to average overall redraw time\n var deqNoDrawCost$1 = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\n var deqFastCost$1 = 0.9; // % of frame time to be used when >60fps\n var deqRedrawThreshold$1 = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\n var maxDeqSize$1 = 1; // number of eles to dequeue and render at higher texture in each batch\n\n var getTxrReasons = {\n dequeue: 'dequeue',\n downscale: 'downscale',\n highQuality: 'highQuality'\n };\n var initDefaults = defaults$g({\n getKey: null,\n doesEleInvalidateKey: falsify,\n drawElement: null,\n getBoundingBox: null,\n getRotationPoint: null,\n getRotationOffset: null,\n isVisible: trueify,\n allowEdgeTxrCaching: true,\n allowParentTxrCaching: true\n });\n var ElementTextureCache = function ElementTextureCache(renderer, initOptions) {\n var self = this;\n self.renderer = renderer;\n self.onDequeues = [];\n var opts = initDefaults(initOptions);\n extend(self, opts);\n self.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);\n self.setupDequeueing();\n };\n var ETCp = ElementTextureCache.prototype;\n ETCp.reasons = getTxrReasons;\n\n // the list of textures in which new subtextures for elements can be placed\n ETCp.getTextureQueue = function (txrH) {\n var self = this;\n self.eleImgCaches = self.eleImgCaches || {};\n return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || [];\n };\n\n // the list of usused textures which can be recycled (in use in texture queue)\n ETCp.getRetiredTextureQueue = function (txrH) {\n var self = this;\n var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {};\n var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];\n return rtxtrQ;\n };\n\n // queue of element draw requests at different scale levels\n ETCp.getElementQueue = function () {\n var self = this;\n var q = self.eleCacheQueue = self.eleCacheQueue || new heap(function (a, b) {\n return b.reqs - a.reqs;\n });\n return q;\n };\n\n // queue of element draw requests at different scale levels (element id lookup)\n ETCp.getElementKeyToQueue = function () {\n var self = this;\n var k2q = self.eleKeyToCacheQueue = self.eleKeyToCacheQueue || {};\n return k2q;\n };\n ETCp.getElement = function (ele, bb, pxRatio, lvl, reason) {\n var self = this;\n var r = this.renderer;\n var zoom = r.cy.zoom();\n var lookup = this.lookup;\n if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {\n return null;\n }\n if (!self.allowEdgeTxrCaching && ele.isEdge() || !self.allowParentTxrCaching && ele.isParent()) {\n return null;\n }\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n }\n if (lvl < minLvl$1) {\n lvl = minLvl$1;\n } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {\n return null;\n }\n var scale = Math.pow(2, lvl);\n var eleScaledH = bb.h * scale;\n var eleScaledW = bb.w * scale;\n var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);\n if (!this.isVisible(ele, scaledLabelShown)) {\n return null;\n }\n var eleCache = lookup.get(ele, lvl);\n\n // if this get was on an unused/invalidated cache, then restore the texture usage metric\n if (eleCache && eleCache.invalidated) {\n eleCache.invalidated = false;\n eleCache.texture.invalidatedWidth -= eleCache.width;\n }\n if (eleCache) {\n return eleCache;\n }\n var txrH; // which texture height this ele belongs to\n\n if (eleScaledH <= minTxrH) {\n txrH = minTxrH;\n } else if (eleScaledH <= txrStepH) {\n txrH = txrStepH;\n } else {\n txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;\n }\n if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {\n return null; // caching large elements is not efficient\n }\n\n var txrQ = self.getTextureQueue(txrH);\n\n // first try the second last one in case it has space at the end\n var txr = txrQ[txrQ.length - 2];\n var addNewTxr = function addNewTxr() {\n return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW);\n };\n\n // try the last one if there is no second last one\n if (!txr) {\n txr = txrQ[txrQ.length - 1];\n }\n\n // if the last one doesn't exist, we need a first one\n if (!txr) {\n txr = addNewTxr();\n }\n\n // if there's no room in the current texture, we need a new one\n if (txr.width - txr.usedWidth < eleScaledW) {\n txr = addNewTxr();\n }\n var scalableFrom = function scalableFrom(otherCache) {\n return otherCache && otherCache.scaledLabelShown === scaledLabelShown;\n };\n var deqing = reason && reason === getTxrReasons.dequeue;\n var highQualityReq = reason && reason === getTxrReasons.highQuality;\n var downscaleReq = reason && reason === getTxrReasons.downscale;\n var higherCache; // the nearest cache with a higher level\n for (var l = lvl + 1; l <= maxLvl$1; l++) {\n var c = lookup.get(ele, l);\n if (c) {\n higherCache = c;\n break;\n }\n }\n var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;\n var downscale = function downscale() {\n txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);\n };\n\n // reset ele area in texture\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);\n if (scalableFrom(oneUpCache)) {\n // then we can relatively cheaply rescale the existing image w/o rerendering\n downscale();\n } else if (scalableFrom(higherCache)) {\n // then use the higher cache for now and queue the next level down\n // to cheaply scale towards the smaller level\n\n if (highQualityReq) {\n for (var _l = higherCache.level; _l > lvl; _l--) {\n oneUpCache = self.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);\n }\n downscale();\n } else {\n self.queueElement(ele, higherCache.level - 1);\n return higherCache;\n }\n } else {\n var lowerCache; // the nearest cache with a lower level\n if (!deqing && !highQualityReq && !downscaleReq) {\n for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {\n var _c = lookup.get(ele, _l2);\n if (_c) {\n lowerCache = _c;\n break;\n }\n }\n }\n if (scalableFrom(lowerCache)) {\n // then use the lower quality cache for now and queue the better one for later\n\n self.queueElement(ele, lvl);\n return lowerCache;\n }\n txr.context.translate(txr.usedWidth, 0);\n txr.context.scale(scale, scale);\n this.drawElement(txr.context, ele, bb, scaledLabelShown, false);\n txr.context.scale(1 / scale, 1 / scale);\n txr.context.translate(-txr.usedWidth, 0);\n }\n eleCache = {\n x: txr.usedWidth,\n texture: txr,\n level: lvl,\n scale: scale,\n width: eleScaledW,\n height: eleScaledH,\n scaledLabelShown: scaledLabelShown\n };\n txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);\n txr.eleCaches.push(eleCache);\n lookup.set(ele, lvl, eleCache);\n self.checkTextureFullness(txr);\n return eleCache;\n };\n ETCp.invalidateElements = function (eles) {\n for (var i = 0; i < eles.length; i++) {\n this.invalidateElement(eles[i]);\n }\n };\n ETCp.invalidateElement = function (ele) {\n var self = this;\n var lookup = self.lookup;\n var caches = [];\n var invalid = lookup.isInvalid(ele);\n if (!invalid) {\n return; // override the invalidation request if the element key has not changed\n }\n\n for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {\n var cache = lookup.getForCachedKey(ele, lvl);\n if (cache) {\n caches.push(cache);\n }\n }\n var noOtherElesUseCache = lookup.invalidate(ele);\n if (noOtherElesUseCache) {\n for (var i = 0; i < caches.length; i++) {\n var _cache = caches[i];\n var txr = _cache.texture;\n\n // remove space from the texture it belongs to\n txr.invalidatedWidth += _cache.width;\n\n // mark the cache as invalidated\n _cache.invalidated = true;\n\n // retire the texture if its utility is low\n self.checkTextureUtility(txr);\n }\n }\n\n // remove from queue since the old req was for the old state\n self.removeFromQueue(ele);\n };\n ETCp.checkTextureUtility = function (txr) {\n // invalidate all entries in the cache if the cache size is small\n if (txr.invalidatedWidth >= minUtility * txr.width) {\n this.retireTexture(txr);\n }\n };\n ETCp.checkTextureFullness = function (txr) {\n // if texture has been mostly filled and passed over several times, remove\n // it from the queue so we don't need to waste time looking at it to put new things\n\n var self = this;\n var txrQ = self.getTextureQueue(txr.height);\n if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {\n removeFromArray(txrQ, txr);\n } else {\n txr.fullnessChecks++;\n }\n };\n ETCp.retireTexture = function (txr) {\n var self = this;\n var txrH = txr.height;\n var txrQ = self.getTextureQueue(txrH);\n var lookup = this.lookup;\n\n // retire the texture from the active / searchable queue:\n\n removeFromArray(txrQ, txr);\n txr.retired = true;\n\n // remove the refs from the eles to the caches:\n\n var eleCaches = txr.eleCaches;\n for (var i = 0; i < eleCaches.length; i++) {\n var eleCache = eleCaches[i];\n lookup.deleteCache(eleCache.key, eleCache.level);\n }\n clearArray(eleCaches);\n\n // add the texture to a retired queue so it can be recycled in future:\n\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n rtxtrQ.push(txr);\n };\n ETCp.addTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var txr = {};\n txrQ.push(txr);\n txr.eleCaches = [];\n txr.height = txrH;\n txr.width = Math.max(defTxrWidth, minW);\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n txr.canvas = self.renderer.makeOffscreenCanvas(txr.width, txr.height);\n txr.context = txr.canvas.getContext('2d');\n return txr;\n };\n ETCp.recycleTexture = function (txrH, minW) {\n var self = this;\n var txrQ = self.getTextureQueue(txrH);\n var rtxtrQ = self.getRetiredTextureQueue(txrH);\n for (var i = 0; i < rtxtrQ.length; i++) {\n var txr = rtxtrQ[i];\n if (txr.width >= minW) {\n txr.retired = false;\n txr.usedWidth = 0;\n txr.invalidatedWidth = 0;\n txr.fullnessChecks = 0;\n clearArray(txr.eleCaches);\n txr.context.setTransform(1, 0, 0, 1, 0, 0);\n txr.context.clearRect(0, 0, txr.width, txr.height);\n removeFromArray(rtxtrQ, txr);\n txrQ.push(txr);\n return txr;\n }\n }\n };\n ETCp.queueElement = function (ele, lvl) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var existingReq = k2q[key];\n if (existingReq) {\n // use the max lvl b/c in between lvls are cheap to make\n existingReq.level = Math.max(existingReq.level, lvl);\n existingReq.eles.merge(ele);\n existingReq.reqs++;\n q.updateItem(existingReq);\n } else {\n var req = {\n eles: ele.spawn().merge(ele),\n level: lvl,\n reqs: 1,\n key: key\n };\n q.push(req);\n k2q[key] = req;\n }\n };\n ETCp.dequeue = function (pxRatio /*, extent*/) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var dequeued = [];\n var lookup = self.lookup;\n for (var i = 0; i < maxDeqSize$1; i++) {\n if (q.size() > 0) {\n var req = q.pop();\n var key = req.key;\n var ele = req.eles[0]; // all eles have the same key\n var cacheExists = lookup.hasCache(ele, req.level);\n\n // clear out the key to req lookup\n k2q[key] = null;\n\n // dequeueing isn't necessary with an existing cache\n if (cacheExists) {\n continue;\n }\n dequeued.push(req);\n var bb = self.getBoundingBox(ele);\n self.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);\n } else {\n break;\n }\n }\n return dequeued;\n };\n ETCp.removeFromQueue = function (ele) {\n var self = this;\n var q = self.getElementQueue();\n var k2q = self.getElementKeyToQueue();\n var key = this.getKey(ele);\n var req = k2q[key];\n if (req != null) {\n if (req.eles.length === 1) {\n // remove if last ele in the req\n // bring to front of queue\n req.reqs = MAX_INT$1;\n q.updateItem(req);\n q.pop(); // remove from queue\n\n k2q[key] = null; // remove from lookup map\n } else {\n // otherwise just remove ele from req\n req.eles.unmerge(ele);\n }\n }\n };\n ETCp.onDequeue = function (fn) {\n this.onDequeues.push(fn);\n };\n ETCp.offDequeue = function (fn) {\n removeFromArray(this.onDequeues, fn);\n };\n ETCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold$1,\n deqCost: deqCost$1,\n deqAvgCost: deqAvgCost$1,\n deqNoDrawCost: deqNoDrawCost$1,\n deqFastCost: deqFastCost$1,\n deq: function deq(self, pxRatio, extent) {\n return self.dequeue(pxRatio, extent);\n },\n onDeqd: function onDeqd(self, deqd) {\n for (var i = 0; i < self.onDequeues.length; i++) {\n var fn = self.onDequeues[i];\n fn(deqd);\n }\n },\n shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) {\n for (var i = 0; i < deqd.length; i++) {\n var eles = deqd[i].eles;\n for (var j = 0; j < eles.length; j++) {\n var bb = eles[j].boundingBox();\n if (boundingBoxesIntersect(bb, extent)) {\n return true;\n }\n }\n }\n return false;\n },\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.eleTxrDeq;\n }\n });\n\n var defNumLayers = 1; // default number of layers to use\n var minLvl = -4; // when scaling smaller than that we don't need to re-render\n var maxLvl = 2; // when larger than this scale just render directly (caching is not helpful)\n var maxZoom = 3.99; // beyond this zoom level, layered textures are not used\n var deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile\n var refineEleDebounceTime = 50; // time to debounce sharper ele texture updates\n var deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame\n var deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time\n var deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing\n var deqFastCost = 0.9; // % of frame time to be used when >60fps\n var maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch\n var invalidThreshold = 250; // time threshold for disabling b/c of invalidations\n var maxLayerArea = 4000 * 4000; // layers can't be bigger than this\n var useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm)\n\n // var log = function(){ console.log.apply( console, arguments ); };\n\n var LayeredTextureCache = function LayeredTextureCache(renderer) {\n var self = this;\n var r = self.renderer = renderer;\n var cy = r.cy;\n self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ]\n\n self.firstGet = true;\n self.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;\n self.skipping = false;\n self.eleTxrDeqs = cy.collection();\n self.scheduleElementRefinement = debounce_1(function () {\n self.refineElementTextures(self.eleTxrDeqs);\n self.eleTxrDeqs.unmerge(self.eleTxrDeqs);\n }, refineEleDebounceTime);\n r.beforeRender(function (willDraw, now) {\n if (now - self.lastInvalidationTime <= invalidThreshold) {\n self.skipping = true;\n } else {\n self.skipping = false;\n }\n }, r.beforeRenderPriorities.lyrTxrSkip);\n var qSort = function qSort(a, b) {\n return b.reqs - a.reqs;\n };\n self.layersQueue = new heap(qSort);\n self.setupDequeueing();\n };\n var LTCp = LayeredTextureCache.prototype;\n var layerIdPool = 0;\n var MAX_INT = Math.pow(2, 53) - 1;\n LTCp.makeLayer = function (bb, lvl) {\n var scale = Math.pow(2, lvl);\n var w = Math.ceil(bb.w * scale);\n var h = Math.ceil(bb.h * scale);\n var canvas = this.renderer.makeOffscreenCanvas(w, h);\n var layer = {\n id: layerIdPool = ++layerIdPool % MAX_INT,\n bb: bb,\n level: lvl,\n width: w,\n height: h,\n canvas: canvas,\n context: canvas.getContext('2d'),\n eles: [],\n elesQueue: [],\n reqs: 0\n };\n\n // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level);\n\n var cxt = layer.context;\n var dx = -layer.bb.x1;\n var dy = -layer.bb.y1;\n\n // do the transform on creation to save cycles (it's the same for all eles)\n cxt.scale(scale, scale);\n cxt.translate(dx, dy);\n return layer;\n };\n LTCp.getLayers = function (eles, pxRatio, lvl) {\n var self = this;\n var r = self.renderer;\n var cy = r.cy;\n var zoom = cy.zoom();\n var firstGet = self.firstGet;\n self.firstGet = false;\n\n // log('--\\nget layers with %s eles', eles.length);\n //log eles.map(function(ele){ return ele.id() }) );\n\n if (lvl == null) {\n lvl = Math.ceil(log2(zoom * pxRatio));\n if (lvl < minLvl) {\n lvl = minLvl;\n } else if (zoom >= maxZoom || lvl > maxLvl) {\n return null;\n }\n }\n self.validateLayersElesOrdering(lvl, eles);\n var layersByLvl = self.layersByLevel;\n var scale = Math.pow(2, lvl);\n var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];\n var bb;\n var lvlComplete = self.levelIsComplete(lvl, eles);\n var tmpLayers;\n var checkTempLevels = function checkTempLevels() {\n var canUseAsTmpLvl = function canUseAsTmpLvl(l) {\n self.validateLayersElesOrdering(l, eles);\n if (self.levelIsComplete(l, eles)) {\n tmpLayers = layersByLvl[l];\n return true;\n }\n };\n var checkLvls = function checkLvls(dir) {\n if (tmpLayers) {\n return;\n }\n for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {\n if (canUseAsTmpLvl(l)) {\n break;\n }\n }\n };\n checkLvls(+1);\n checkLvls(-1);\n\n // remove the invalid layers; they will be replaced as needed later in this function\n for (var i = layers.length - 1; i >= 0; i--) {\n var layer = layers[i];\n if (layer.invalid) {\n removeFromArray(layers, layer);\n }\n }\n };\n if (!lvlComplete) {\n // if the current level is incomplete, then use the closest, best quality layerset temporarily\n // and later queue the current layerset so we can get the proper quality level soon\n\n checkTempLevels();\n } else {\n // log('level complete, using existing layers\\n--');\n return layers;\n }\n var getBb = function getBb() {\n if (!bb) {\n bb = makeBoundingBox();\n for (var i = 0; i < eles.length; i++) {\n updateBoundingBox(bb, eles[i].boundingBox());\n }\n }\n return bb;\n };\n var makeLayer = function makeLayer(opts) {\n opts = opts || {};\n var after = opts.after;\n getBb();\n var area = bb.w * scale * (bb.h * scale);\n if (area > maxLayerArea) {\n return null;\n }\n var layer = self.makeLayer(bb, lvl);\n if (after != null) {\n var index = layers.indexOf(after) + 1;\n layers.splice(index, 0, layer);\n } else if (opts.insert === undefined || opts.insert) {\n // no after specified => first layer made so put at start\n layers.unshift(layer);\n }\n\n // if( tmpLayers ){\n //self.queueLayer( layer );\n // }\n\n return layer;\n };\n if (self.skipping && !firstGet) {\n // log('skip layers');\n return null;\n }\n\n // log('do layers');\n\n var layer = null;\n var maxElesPerLayer = eles.length / defNumLayers;\n var allowLazyQueueing = !firstGet;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n\n // log('look at ele', ele.id());\n\n var existingLayer = caches[lvl];\n if (existingLayer) {\n // reuse layer for later eles\n // log('reuse layer for', ele.id());\n layer = existingLayer;\n continue;\n }\n if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {\n // log('make new layer for ele %s', ele.id());\n\n layer = makeLayer({\n insert: true,\n after: layer\n });\n\n // if now layer can be built then we can't use layers at this level\n if (!layer) {\n return null;\n }\n\n // log('new layer with id %s', layer.id);\n }\n\n if (tmpLayers || allowLazyQueueing) {\n // log('queue ele %s in layer %s', ele.id(), layer.id);\n self.queueLayer(layer, ele);\n } else {\n // log('draw ele %s in layer %s', ele.id(), layer.id);\n self.drawEleInLayer(layer, ele, lvl, pxRatio);\n }\n layer.eles.push(ele);\n caches[lvl] = layer;\n }\n\n // log('--');\n\n if (tmpLayers) {\n // then we only queued the current layerset and can't draw it yet\n return tmpLayers;\n }\n if (allowLazyQueueing) {\n // log('lazy queue level', lvl);\n return null;\n }\n return layers;\n };\n\n // a layer may want to use an ele cache of a higher level to avoid blurriness\n // so the layer level might not equal the ele level\n LTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) {\n return lvl;\n };\n LTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) {\n var self = this;\n var r = this.renderer;\n var context = layer.context;\n var bb = ele.boundingBox();\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n lvl = self.getEleLevelForLayerLevel(lvl, pxRatio);\n {\n r.setImgSmoothing(context, false);\n }\n {\n r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);\n }\n {\n r.setImgSmoothing(context, true);\n }\n };\n LTCp.levelIsComplete = function (lvl, eles) {\n var self = this;\n var layers = self.layersByLevel[lvl];\n if (!layers || layers.length === 0) {\n return false;\n }\n var numElesInLayers = 0;\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n\n // if there are any eles needed to be drawn yet, the level is not complete\n if (layer.reqs > 0) {\n return false;\n }\n\n // if the layer is invalid, the level is not complete\n if (layer.invalid) {\n return false;\n }\n numElesInLayers += layer.eles.length;\n }\n\n // we should have exactly the number of eles passed in to be complete\n if (numElesInLayers !== eles.length) {\n return false;\n }\n return true;\n };\n LTCp.validateLayersElesOrdering = function (lvl, eles) {\n var layers = this.layersByLevel[lvl];\n if (!layers) {\n return;\n }\n\n // if in a layer the eles are not in the same order, then the layer is invalid\n // (i.e. there is an ele in between the eles in the layer)\n\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var offset = -1;\n\n // find the offset\n for (var j = 0; j < eles.length; j++) {\n if (layer.eles[0] === eles[j]) {\n offset = j;\n break;\n }\n }\n if (offset < 0) {\n // then the layer has nonexistent elements and is invalid\n this.invalidateLayer(layer);\n continue;\n }\n\n // the eles in the layer must be in the same continuous order, else the layer is invalid\n\n var o = offset;\n for (var j = 0; j < layer.eles.length; j++) {\n if (layer.eles[j] !== eles[o + j]) {\n // log('invalidate based on ordering', layer.id);\n\n this.invalidateLayer(layer);\n break;\n }\n }\n }\n };\n LTCp.updateElementsInLayers = function (eles, update) {\n var self = this;\n var isEles = element(eles[0]);\n\n // collect udpated elements (cascaded from the layers) and update each\n // layer itself along the way\n for (var i = 0; i < eles.length; i++) {\n var req = isEles ? null : eles[i];\n var ele = isEles ? eles[i] : eles[i].ele;\n var rs = ele._private.rscratch;\n var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};\n for (var l = minLvl; l <= maxLvl; l++) {\n var layer = caches[l];\n if (!layer) {\n continue;\n }\n\n // if update is a request from the ele cache, then it affects only\n // the matching level\n if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) {\n continue;\n }\n update(layer, ele, req);\n }\n }\n };\n LTCp.haveLayers = function () {\n var self = this;\n var haveLayers = false;\n for (var l = minLvl; l <= maxLvl; l++) {\n var layers = self.layersByLevel[l];\n if (layers && layers.length > 0) {\n haveLayers = true;\n break;\n }\n }\n return haveLayers;\n };\n LTCp.invalidateElements = function (eles) {\n var self = this;\n if (eles.length === 0) {\n return;\n }\n self.lastInvalidationTime = performanceNow();\n\n // log('update invalidate layer time from eles');\n\n if (eles.length === 0 || !self.haveLayers()) {\n return;\n }\n self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {\n self.invalidateLayer(layer);\n });\n };\n LTCp.invalidateLayer = function (layer) {\n // log('update invalidate layer time');\n\n this.lastInvalidationTime = performanceNow();\n if (layer.invalid) {\n return;\n } // save cycles\n\n var lvl = layer.level;\n var eles = layer.eles;\n var layers = this.layersByLevel[lvl];\n\n // log('invalidate layer', layer.id );\n\n removeFromArray(layers, layer);\n // layer.eles = [];\n\n layer.elesQueue = [];\n layer.invalid = true;\n if (layer.replacement) {\n layer.replacement.invalid = true;\n }\n for (var i = 0; i < eles.length; i++) {\n var caches = eles[i]._private.rscratch.imgLayerCaches;\n if (caches) {\n caches[lvl] = null;\n }\n }\n };\n LTCp.refineElementTextures = function (eles) {\n var self = this;\n\n // log('refine', eles.length);\n\n self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {\n var rLyr = layer.replacement;\n if (!rLyr) {\n rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level);\n rLyr.replaces = layer;\n rLyr.eles = layer.eles;\n\n // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level);\n }\n\n if (!rLyr.reqs) {\n for (var i = 0; i < rLyr.eles.length; i++) {\n self.queueLayer(rLyr, rLyr.eles[i]);\n }\n\n // log('queue replacement layer refinement', rLyr.id);\n }\n });\n };\n\n LTCp.enqueueElementRefinement = function (ele) {\n this.eleTxrDeqs.merge(ele);\n this.scheduleElementRefinement();\n };\n LTCp.queueLayer = function (layer, ele) {\n var self = this;\n var q = self.layersQueue;\n var elesQ = layer.elesQueue;\n var hasId = elesQ.hasId = elesQ.hasId || {};\n\n // if a layer is going to be replaced, queuing is a waste of time\n if (layer.replacement) {\n return;\n }\n if (ele) {\n if (hasId[ele.id()]) {\n return;\n }\n elesQ.push(ele);\n hasId[ele.id()] = true;\n }\n if (layer.reqs) {\n layer.reqs++;\n q.updateItem(layer);\n } else {\n layer.reqs = 1;\n q.push(layer);\n }\n };\n LTCp.dequeue = function (pxRatio) {\n var self = this;\n var q = self.layersQueue;\n var deqd = [];\n var eleDeqs = 0;\n while (eleDeqs < maxDeqSize) {\n if (q.size() === 0) {\n break;\n }\n var layer = q.peek();\n\n // if a layer has been or will be replaced, then don't waste time with it\n if (layer.replacement) {\n // log('layer %s in queue skipped b/c it already has a replacement', layer.id);\n q.pop();\n continue;\n }\n\n // if this is a replacement layer that has been superceded, then forget it\n if (layer.replaces && layer !== layer.replaces.replacement) {\n // log('layer is no longer the most uptodate replacement; dequeued', layer.id)\n q.pop();\n continue;\n }\n if (layer.invalid) {\n // log('replacement layer %s is invalid; dequeued', layer.id);\n q.pop();\n continue;\n }\n var ele = layer.elesQueue.shift();\n if (ele) {\n // log('dequeue layer %s', layer.id);\n\n self.drawEleInLayer(layer, ele, layer.level, pxRatio);\n eleDeqs++;\n }\n if (deqd.length === 0) {\n // we need only one entry in deqd to queue redrawing etc\n deqd.push(true);\n }\n\n // if the layer has all its eles done, then remove from the queue\n if (layer.elesQueue.length === 0) {\n q.pop();\n layer.reqs = 0;\n\n // log('dequeue of layer %s complete', layer.id);\n\n // when a replacement layer is dequeued, it replaces the old layer in the level\n if (layer.replaces) {\n self.applyLayerReplacement(layer);\n }\n self.requestRedraw();\n }\n }\n return deqd;\n };\n LTCp.applyLayerReplacement = function (layer) {\n var self = this;\n var layersInLevel = self.layersByLevel[layer.level];\n var replaced = layer.replaces;\n var index = layersInLevel.indexOf(replaced);\n\n // if the replaced layer is not in the active list for the level, then replacing\n // refs would be a mistake (i.e. overwriting the true active layer)\n if (index < 0 || replaced.invalid) {\n // log('replacement layer would have no effect', layer.id);\n return;\n }\n layersInLevel[index] = layer; // replace level ref\n\n // replace refs in eles\n for (var i = 0; i < layer.eles.length; i++) {\n var _p = layer.eles[i]._private;\n var cache = _p.imgLayerCaches = _p.imgLayerCaches || {};\n if (cache) {\n cache[layer.level] = layer;\n }\n }\n\n // log('apply replacement layer %s over %s', layer.id, replaced.id);\n\n self.requestRedraw();\n };\n LTCp.requestRedraw = debounce_1(function () {\n var r = this.renderer;\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n r.redraw();\n }, 100);\n LTCp.setupDequeueing = defs.setupDequeueing({\n deqRedrawThreshold: deqRedrawThreshold,\n deqCost: deqCost,\n deqAvgCost: deqAvgCost,\n deqNoDrawCost: deqNoDrawCost,\n deqFastCost: deqFastCost,\n deq: function deq(self, pxRatio) {\n return self.dequeue(pxRatio);\n },\n onDeqd: noop$1,\n shouldRedraw: trueify,\n priority: function priority(self) {\n return self.renderer.beforeRenderPriorities.lyrTxrDeq;\n }\n });\n\n var CRp$a = {};\n var impl;\n function polygon(context, points) {\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n context.lineTo(pt.x, pt.y);\n }\n }\n function triangleBackcurve(context, points, controlPoint) {\n var firstPt;\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n if (i === 0) {\n firstPt = pt;\n }\n context.lineTo(pt.x, pt.y);\n }\n context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);\n }\n function triangleTee(context, trianglePoints, teePoints) {\n if (context.beginPath) {\n context.beginPath();\n }\n var triPts = trianglePoints;\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n var teePts = teePoints;\n var firstTeePt = teePoints[0];\n context.moveTo(firstTeePt.x, firstTeePt.y);\n for (var i = 1; i < teePts.length; i++) {\n var pt = teePts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n function circleTriangle(context, trianglePoints, rx, ry, r) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n var triPts = trianglePoints;\n var firstTrPt = triPts[0];\n context.moveTo(firstTrPt.x, firstTrPt.y);\n for (var i = 0; i < triPts.length; i++) {\n var pt = triPts[i];\n context.lineTo(pt.x, pt.y);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n function circle(context, rx, ry, r) {\n context.arc(rx, ry, r, 0, Math.PI * 2, false);\n }\n CRp$a.arrowShapeImpl = function (name) {\n return (impl || (impl = {\n 'polygon': polygon,\n 'triangle-backcurve': triangleBackcurve,\n 'triangle-tee': triangleTee,\n 'circle-triangle': circleTriangle,\n 'triangle-cross': triangleTee,\n 'circle': circle\n }))[name];\n };\n\n var CRp$9 = {};\n CRp$9.drawElement = function (context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {\n var r = this;\n if (ele.isNode()) {\n r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n } else {\n r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);\n }\n };\n CRp$9.drawElementOverlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeOverlay(context, ele);\n } else {\n r.drawEdgeOverlay(context, ele);\n }\n };\n CRp$9.drawElementUnderlay = function (context, ele) {\n var r = this;\n if (ele.isNode()) {\n r.drawNodeUnderlay(context, ele);\n } else {\n r.drawEdgeUnderlay(context, ele);\n }\n };\n CRp$9.drawCachedElementPortion = function (context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity) {\n var r = this;\n var bb = eleTxrCache.getBoundingBox(ele);\n if (bb.w === 0 || bb.h === 0) {\n return;\n } // ignore zero size case\n\n var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);\n if (eleCache != null) {\n var opacity = getOpacity(r, ele);\n if (opacity === 0) {\n return;\n }\n var theta = getRotation(r, ele);\n var x1 = bb.x1,\n y1 = bb.y1,\n w = bb.w,\n h = bb.h;\n var x, y, sx, sy, smooth;\n if (theta !== 0) {\n var rotPt = eleTxrCache.getRotationPoint(ele);\n sx = rotPt.x;\n sy = rotPt.y;\n context.translate(sx, sy);\n context.rotate(theta);\n smooth = r.getImgSmoothing(context);\n if (!smooth) {\n r.setImgSmoothing(context, true);\n }\n var off = eleTxrCache.getRotationOffset(ele);\n x = off.x;\n y = off.y;\n } else {\n x = x1;\n y = y1;\n }\n var oldGlobalAlpha;\n if (opacity !== 1) {\n oldGlobalAlpha = context.globalAlpha;\n context.globalAlpha = oldGlobalAlpha * opacity;\n }\n context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h);\n if (opacity !== 1) {\n context.globalAlpha = oldGlobalAlpha;\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-sx, -sy);\n if (!smooth) {\n r.setImgSmoothing(context, false);\n }\n }\n } else {\n eleTxrCache.drawElement(context, ele); // direct draw fallback\n }\n };\n\n var getZeroRotation = function getZeroRotation() {\n return 0;\n };\n var getLabelRotation = function getLabelRotation(r, ele) {\n return r.getTextAngle(ele, null);\n };\n var getSourceLabelRotation = function getSourceLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'source');\n };\n var getTargetLabelRotation = function getTargetLabelRotation(r, ele) {\n return r.getTextAngle(ele, 'target');\n };\n var getOpacity = function getOpacity(r, ele) {\n return ele.effectiveOpacity();\n };\n var getTextOpacity = function getTextOpacity(e, ele) {\n return ele.pstyle('text-opacity').pfValue * ele.effectiveOpacity();\n };\n CRp$9.drawCachedElement = function (context, ele, pxRatio, extent, lvl, requestHighQuality) {\n var r = this;\n var _r$data = r.data,\n eleTxrCache = _r$data.eleTxrCache,\n lblTxrCache = _r$data.lblTxrCache,\n slbTxrCache = _r$data.slbTxrCache,\n tlbTxrCache = _r$data.tlbTxrCache;\n var bb = ele.boundingBox();\n var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;\n if (bb.w === 0 || bb.h === 0 || !ele.visible()) {\n return;\n }\n if (!extent || boundingBoxesIntersect(bb, extent)) {\n var isEdge = ele.isEdge();\n var badLine = ele.element()._private.rscratch.badLine;\n r.drawElementUnderlay(context, ele);\n r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);\n if (!isEdge || !badLine) {\n r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);\n }\n if (isEdge && !badLine) {\n r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);\n r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);\n }\n r.drawElementOverlay(context, ele);\n }\n };\n CRp$9.drawElements = function (context, eles) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawElement(context, ele);\n }\n };\n CRp$9.drawCachedElements = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n };\n CRp$9.drawCachedNodes = function (context, eles, pxRatio, extent) {\n var r = this;\n for (var i = 0; i < eles.length; i++) {\n var ele = eles[i];\n if (!ele.isNode()) {\n continue;\n }\n r.drawCachedElement(context, ele, pxRatio, extent);\n }\n };\n CRp$9.drawLayeredElements = function (context, eles, pxRatio, extent) {\n var r = this;\n var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);\n if (layers) {\n for (var i = 0; i < layers.length; i++) {\n var layer = layers[i];\n var bb = layer.bb;\n if (bb.w === 0 || bb.h === 0) {\n continue;\n }\n context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);\n }\n } else {\n // fall back on plain caching if no layers\n r.drawCachedElements(context, eles, pxRatio, extent);\n }\n };\n\n /* global Path2D */\n var CRp$8 = {};\n CRp$8.drawEdge = function (context, edge, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var rs = edge._private.rscratch;\n if (shouldDrawOpacity && !edge.visible()) {\n return;\n }\n\n // if bezier ctrl pts can not be calculated, then die\n if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {\n // isNaN in case edge is impossible and browser bugs (e.g. safari)\n return;\n }\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n var opacity = shouldDrawOpacity ? edge.pstyle('opacity').value : 1;\n var lineOpacity = shouldDrawOpacity ? edge.pstyle('line-opacity').value : 1;\n var curveStyle = edge.pstyle('curve-style').value;\n var lineStyle = edge.pstyle('line-style').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var lineCap = edge.pstyle('line-cap').value;\n var effectiveLineOpacity = opacity * lineOpacity;\n // separate arrow opacity would require arrow-opacity property\n var effectiveArrowOpacity = opacity * lineOpacity;\n var drawLine = function drawLine() {\n var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity;\n if (curveStyle === 'straight-triangle') {\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgeTrianglePath(edge, context, rs.allpts);\n } else {\n context.lineWidth = edgeWidth;\n context.lineCap = lineCap;\n r.eleStrokeStyle(context, edge, strokeOpacity);\n r.drawEdgePath(edge, context, rs.allpts, lineStyle);\n context.lineCap = 'butt'; // reset for other drawing functions\n }\n };\n\n var drawOverlay = function drawOverlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeOverlay(context, edge);\n };\n var drawUnderlay = function drawUnderlay() {\n if (!shouldDrawOverlay) {\n return;\n }\n r.drawEdgeUnderlay(context, edge);\n };\n var drawArrows = function drawArrows() {\n var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveArrowOpacity;\n r.drawArrowheads(context, edge, arrowOpacity);\n };\n var drawText = function drawText() {\n r.drawElementText(context, edge, null, drawLabel);\n };\n context.lineJoin = 'round';\n var ghost = edge.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = edge.pstyle('ghost-offset-x').pfValue;\n var gy = edge.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = edge.pstyle('ghost-opacity').value;\n var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;\n context.translate(gx, gy);\n drawLine(effectiveGhostOpacity);\n drawArrows(effectiveGhostOpacity);\n context.translate(-gx, -gy);\n }\n drawUnderlay();\n drawLine();\n drawArrows();\n drawOverlay();\n drawText();\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n };\n var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, edge) {\n if (!edge.visible()) {\n return;\n }\n var opacity = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n if (opacity === 0) {\n return;\n }\n var r = this;\n var usePaths = r.usePaths();\n var rs = edge._private.rscratch;\n var padding = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var width = 2 * padding;\n var color = edge.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n context.lineWidth = width;\n if (rs.edgeType === 'self' && !usePaths) {\n context.lineCap = 'butt';\n } else {\n context.lineCap = 'round';\n }\n r.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n r.drawEdgePath(edge, context, rs.allpts, 'solid');\n };\n };\n CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay('overlay');\n CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay('underlay');\n CRp$8.drawEdgePath = function (edge, context, pts, type) {\n var rs = edge._private.rscratch;\n var canvasCxt = context;\n var path;\n var pathCacheHit = false;\n var usePaths = this.usePaths();\n var lineDashPattern = edge.pstyle('line-dash-pattern').pfValue;\n var lineDashOffset = edge.pstyle('line-dash-offset').pfValue;\n if (usePaths) {\n var pathCacheKey = pts.join('$');\n var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;\n if (keyMatches) {\n path = context = rs.pathCache;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n rs.pathCacheKey = pathCacheKey;\n rs.pathCache = path;\n }\n }\n if (canvasCxt.setLineDash) {\n // for very outofdate browsers\n switch (type) {\n case 'dotted':\n canvasCxt.setLineDash([1, 1]);\n break;\n case 'dashed':\n canvasCxt.setLineDash(lineDashPattern);\n canvasCxt.lineDashOffset = lineDashOffset;\n break;\n case 'solid':\n canvasCxt.setLineDash([]);\n break;\n }\n }\n if (!pathCacheHit && !rs.badLine) {\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(pts[0], pts[1]);\n switch (rs.edgeType) {\n case 'bezier':\n case 'self':\n case 'compound':\n case 'multibezier':\n for (var i = 2; i + 3 < pts.length; i += 4) {\n context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]);\n }\n break;\n case 'straight':\n case 'segments':\n case 'haystack':\n for (var _i = 2; _i + 1 < pts.length; _i += 2) {\n context.lineTo(pts[_i], pts[_i + 1]);\n }\n break;\n }\n }\n context = canvasCxt;\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n\n // reset any line dashes\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n };\n CRp$8.drawEdgeTrianglePath = function (edge, context, pts) {\n // use line stroke style for triangle fill style\n context.fillStyle = context.strokeStyle;\n var edgeWidth = edge.pstyle('width').pfValue;\n for (var i = 0; i + 1 < pts.length; i += 2) {\n var vector = [pts[i + 2] - pts[i], pts[i + 3] - pts[i + 1]];\n var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);\n var normal = [vector[1] / length, -vector[0] / length];\n var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2];\n context.beginPath();\n context.moveTo(pts[i] - triangleHead[0], pts[i + 1] - triangleHead[1]);\n context.lineTo(pts[i] + triangleHead[0], pts[i + 1] + triangleHead[1]);\n context.lineTo(pts[i + 2], pts[i + 3]);\n context.closePath();\n context.fill();\n }\n };\n CRp$8.drawArrowheads = function (context, edge, opacity) {\n var rs = edge._private.rscratch;\n var isHaystack = rs.edgeType === 'haystack';\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);\n }\n this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);\n this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);\n if (!isHaystack) {\n this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);\n }\n };\n CRp$8.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) {\n if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) {\n return;\n }\n var self = this;\n var arrowShape = edge.pstyle(prefix + '-arrow-shape').value;\n if (arrowShape === 'none') {\n return;\n }\n var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled';\n var arrowFill = edge.pstyle(prefix + '-arrow-fill').value;\n var edgeWidth = edge.pstyle('width').pfValue;\n var pArrowWidth = edge.pstyle(prefix + '-arrow-width');\n var arrowWidth = pArrowWidth.value === 'match-line' ? edgeWidth : pArrowWidth.pfValue;\n if (pArrowWidth.units === '%') arrowWidth *= edgeWidth;\n var edgeOpacity = edge.pstyle('opacity').value;\n if (opacity === undefined) {\n opacity = edgeOpacity;\n }\n var gco = context.globalCompositeOperation;\n if (opacity !== 1 || arrowFill === 'hollow') {\n // then extra clear is needed\n context.globalCompositeOperation = 'destination-out';\n self.colorFillStyle(context, 255, 255, 255, 1);\n self.colorStrokeStyle(context, 255, 255, 255, 1);\n self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);\n context.globalCompositeOperation = gco;\n } // otherwise, the opaque arrow clears it for free :)\n\n var color = edge.pstyle(prefix + '-arrow-color').value;\n self.colorFillStyle(context, color[0], color[1], color[2], opacity);\n self.colorStrokeStyle(context, color[0], color[1], color[2], opacity);\n self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, arrowWidth, x, y, angle);\n };\n CRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, shapeWidth, x, y, angle) {\n var r = this;\n var usePaths = this.usePaths() && shape !== 'triangle-cross';\n var pathCacheHit = false;\n var path;\n var canvasContext = context;\n var translation = {\n x: x,\n y: y\n };\n var scale = edge.pstyle('arrow-scale').value;\n var size = this.getArrowWidth(edgeWidth, scale);\n var shapeImpl = r.arrowShapes[shape];\n if (usePaths) {\n var cache = r.arrowPathCache = r.arrowPathCache || [];\n var key = hashString(shape);\n var cachedPath = cache[key];\n if (cachedPath != null) {\n path = context = cachedPath;\n pathCacheHit = true;\n } else {\n path = context = new Path2D();\n cache[key] = path;\n }\n }\n if (!pathCacheHit) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (usePaths) {\n // store in the path cache with values easily manipulated later\n shapeImpl.draw(context, 1, 0, {\n x: 0,\n y: 0\n }, 1);\n } else {\n shapeImpl.draw(context, size, angle, translation, edgeWidth);\n }\n if (context.closePath) {\n context.closePath();\n }\n }\n context = canvasContext;\n if (usePaths) {\n // set transform to arrow position/orientation\n context.translate(x, y);\n context.rotate(angle);\n context.scale(size, size);\n }\n if (fill === 'filled' || fill === 'both') {\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n if (fill === 'hollow' || fill === 'both') {\n context.lineWidth = shapeWidth / (usePaths ? size : 1);\n context.lineJoin = 'miter';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n }\n if (usePaths) {\n // reset transform by applying inverse\n context.scale(1 / size, 1 / size);\n context.rotate(-angle);\n context.translate(-x, -y);\n }\n };\n\n var CRp$7 = {};\n CRp$7.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) {\n // detect problematic cases for old browsers with bad images (cheaper than try-catch)\n if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) {\n return;\n }\n try {\n context.drawImage(img, ix, iy, iw, ih, x, y, w, h);\n } catch (e) {\n warn(e);\n }\n };\n CRp$7.drawInscribedImage = function (context, img, node, index, nodeOpacity) {\n var r = this;\n var pos = node.position();\n var nodeX = pos.x;\n var nodeY = pos.y;\n var styleObj = node.cy().style();\n var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);\n var fit = getIndexedStyle(node, 'background-fit', 'value', index);\n var repeat = getIndexedStyle(node, 'background-repeat', 'value', index);\n var nodeW = node.width();\n var nodeH = node.height();\n var paddingX2 = node.padding() * 2;\n var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2);\n var rs = node._private.rscratch;\n var clip = getIndexedStyle(node, 'background-clip', 'value', index);\n var shouldClip = clip === 'node';\n var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity;\n var smooth = getIndexedStyle(node, 'background-image-smoothing', 'value', index);\n var imgW = img.width || img.cachedW;\n var imgH = img.height || img.cachedH;\n\n // workaround for broken browsers like ie\n if (null == imgW || null == imgH) {\n document.body.appendChild(img); // eslint-disable-line no-undef\n\n imgW = img.cachedW = img.width || img.offsetWidth;\n imgH = img.cachedH = img.height || img.offsetHeight;\n document.body.removeChild(img); // eslint-disable-line no-undef\n }\n\n var w = imgW;\n var h = imgH;\n if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-width', 'units', index) === '%') {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW;\n } else {\n w = getIndexedStyle(node, 'background-width', 'pfValue', index);\n }\n }\n if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') {\n if (getIndexedStyle(node, 'background-height', 'units', index) === '%') {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH;\n } else {\n h = getIndexedStyle(node, 'background-height', 'pfValue', index);\n }\n }\n if (w === 0 || h === 0) {\n return; // no point in drawing empty image (and chrome is broken in this case)\n }\n\n if (fit === 'contain') {\n var scale = Math.min(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n } else if (fit === 'cover') {\n var scale = Math.max(nodeTW / w, nodeTH / h);\n w *= scale;\n h *= scale;\n }\n var x = nodeX - nodeTW / 2; // left\n var posXUnits = getIndexedStyle(node, 'background-position-x', 'units', index);\n var posXPfVal = getIndexedStyle(node, 'background-position-x', 'pfValue', index);\n if (posXUnits === '%') {\n x += (nodeTW - w) * posXPfVal;\n } else {\n x += posXPfVal;\n }\n var offXUnits = getIndexedStyle(node, 'background-offset-x', 'units', index);\n var offXPfVal = getIndexedStyle(node, 'background-offset-x', 'pfValue', index);\n if (offXUnits === '%') {\n x += (nodeTW - w) * offXPfVal;\n } else {\n x += offXPfVal;\n }\n var y = nodeY - nodeTH / 2; // top\n var posYUnits = getIndexedStyle(node, 'background-position-y', 'units', index);\n var posYPfVal = getIndexedStyle(node, 'background-position-y', 'pfValue', index);\n if (posYUnits === '%') {\n y += (nodeTH - h) * posYPfVal;\n } else {\n y += posYPfVal;\n }\n var offYUnits = getIndexedStyle(node, 'background-offset-y', 'units', index);\n var offYPfVal = getIndexedStyle(node, 'background-offset-y', 'pfValue', index);\n if (offYUnits === '%') {\n y += (nodeTH - h) * offYPfVal;\n } else {\n y += offYPfVal;\n }\n if (rs.pathCache) {\n x -= nodeX;\n y -= nodeY;\n nodeX = 0;\n nodeY = 0;\n }\n var gAlpha = context.globalAlpha;\n context.globalAlpha = imgOpacity;\n var smoothingEnabled = r.getImgSmoothing(context);\n var isSmoothingSwitched = false;\n if (smooth === 'no' && smoothingEnabled) {\n r.setImgSmoothing(context, false);\n isSmoothingSwitched = true;\n } else if (smooth === 'yes' && !smoothingEnabled) {\n r.setImgSmoothing(context, true);\n isSmoothingSwitched = true;\n }\n if (repeat === 'no-repeat') {\n if (shouldClip) {\n context.save();\n if (rs.pathCache) {\n context.clip(rs.pathCache);\n } else {\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH);\n context.clip();\n }\n }\n r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h);\n if (shouldClip) {\n context.restore();\n }\n } else {\n var pattern = context.createPattern(img, repeat);\n context.fillStyle = pattern;\n r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH);\n context.translate(x, y);\n context.fill();\n context.translate(-x, -y);\n }\n context.globalAlpha = gAlpha;\n if (isSmoothingSwitched) {\n r.setImgSmoothing(context, smoothingEnabled);\n }\n };\n\n var CRp$6 = {};\n CRp$6.eleTextBiggerThanMin = function (ele, scale) {\n if (!scale) {\n var zoom = ele.cy().zoom();\n var pxRatio = this.getPixelRatio();\n var lvl = Math.ceil(log2(zoom * pxRatio)); // the effective texture level\n\n scale = Math.pow(2, lvl);\n }\n var computedSize = ele.pstyle('font-size').pfValue * scale;\n var minSize = ele.pstyle('min-zoomed-font-size').pfValue;\n if (computedSize < minSize) {\n return false;\n }\n return true;\n };\n CRp$6.drawElementText = function (context, ele, shiftToOriginWithBb, force, prefix) {\n var useEleOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n if (force == null) {\n if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {\n return;\n }\n } else if (force === false) {\n return;\n }\n if (ele.isNode()) {\n var label = ele.pstyle('label');\n if (!label || !label.value) {\n return;\n }\n var justification = r.getLabelJustification(ele);\n context.textAlign = justification;\n context.textBaseline = 'bottom';\n } else {\n var badLine = ele.element()._private.rscratch.badLine;\n var _label = ele.pstyle('label');\n var srcLabel = ele.pstyle('source-label');\n var tgtLabel = ele.pstyle('target-label');\n if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {\n return;\n }\n context.textAlign = 'center';\n context.textBaseline = 'bottom';\n }\n var applyRotation = !shiftToOriginWithBb;\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n if (prefix == null) {\n r.drawText(context, ele, null, applyRotation, useEleOpacity);\n if (ele.isEdge()) {\n r.drawText(context, ele, 'source', applyRotation, useEleOpacity);\n r.drawText(context, ele, 'target', applyRotation, useEleOpacity);\n }\n } else {\n r.drawText(context, ele, prefix, applyRotation, useEleOpacity);\n }\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n };\n CRp$6.getFontCache = function (context) {\n var cache;\n this.fontCaches = this.fontCaches || [];\n for (var i = 0; i < this.fontCaches.length; i++) {\n cache = this.fontCaches[i];\n if (cache.context === context) {\n return cache;\n }\n }\n cache = {\n context: context\n };\n this.fontCaches.push(cache);\n return cache;\n };\n\n // set up canvas context with font\n // returns transformed text string\n CRp$6.setupTextStyle = function (context, ele) {\n var useEleOpacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // Font style\n var labelStyle = ele.pstyle('font-style').strValue;\n var labelSize = ele.pstyle('font-size').pfValue + 'px';\n var labelFamily = ele.pstyle('font-family').strValue;\n var labelWeight = ele.pstyle('font-weight').strValue;\n var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle('text-opacity').value : 1;\n var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity;\n var color = ele.pstyle('color').value;\n var outlineColor = ele.pstyle('text-outline-color').value;\n context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily;\n context.lineJoin = 'round'; // so text outlines aren't jagged\n\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);\n };\n\n // TODO ensure re-used\n function roundRect(ctx, x, y, width, height) {\n var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5;\n var stroke = arguments.length > 6 ? arguments[6] : undefined;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n if (stroke) ctx.stroke();else ctx.fill();\n }\n CRp$6.getTextAngle = function (ele, prefix) {\n var theta;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var pdash = prefix ? prefix + '-' : '';\n var rotation = ele.pstyle(pdash + 'text-rotation');\n var textAngle = getPrefixedProperty(rscratch, 'labelAngle', prefix);\n if (rotation.strValue === 'autorotate') {\n theta = ele.isEdge() ? textAngle : 0;\n } else if (rotation.strValue === 'none') {\n theta = 0;\n } else {\n theta = rotation.pfValue;\n }\n return theta;\n };\n CRp$6.drawText = function (context, ele, prefix) {\n var applyRotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var useEleOpacity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var _p = ele._private;\n var rscratch = _p.rscratch;\n var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;\n if (useEleOpacity && (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0)) {\n return;\n }\n\n // use 'main' as an alias for the main label (i.e. null prefix)\n if (prefix === 'main') {\n prefix = null;\n }\n var textX = getPrefixedProperty(rscratch, 'labelX', prefix);\n var textY = getPrefixedProperty(rscratch, 'labelY', prefix);\n var orgTextX, orgTextY; // used for rotation\n var text = this.getLabelText(ele, prefix);\n if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) {\n this.setupTextStyle(context, ele, useEleOpacity);\n var pdash = prefix ? prefix + '-' : '';\n var textW = getPrefixedProperty(rscratch, 'labelWidth', prefix);\n var textH = getPrefixedProperty(rscratch, 'labelHeight', prefix);\n var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue;\n var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue;\n var isEdge = ele.isEdge();\n var halign = ele.pstyle('text-halign').value;\n var valign = ele.pstyle('text-valign').value;\n if (isEdge) {\n halign = 'center';\n valign = 'center';\n }\n textX += marginX;\n textY += marginY;\n var theta;\n if (!applyRotation) {\n theta = 0;\n } else {\n theta = this.getTextAngle(ele, prefix);\n }\n if (theta !== 0) {\n orgTextX = textX;\n orgTextY = textY;\n context.translate(orgTextX, orgTextY);\n context.rotate(theta);\n textX = 0;\n textY = 0;\n }\n switch (valign) {\n case 'top':\n break;\n case 'center':\n textY += textH / 2;\n break;\n case 'bottom':\n textY += textH;\n break;\n }\n var backgroundOpacity = ele.pstyle('text-background-opacity').value;\n var borderOpacity = ele.pstyle('text-border-opacity').value;\n var textBorderWidth = ele.pstyle('text-border-width').pfValue;\n var backgroundPadding = ele.pstyle('text-background-padding').pfValue;\n var styleShape = ele.pstyle('text-background-shape').strValue;\n var rounded = styleShape.indexOf('round') === 0;\n var roundRadius = 2;\n if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {\n var bgX = textX - backgroundPadding;\n switch (halign) {\n case 'left':\n bgX -= textW;\n break;\n case 'center':\n bgX -= textW / 2;\n break;\n }\n var bgY = textY - textH - backgroundPadding;\n var bgW = textW + 2 * backgroundPadding;\n var bgH = textH + 2 * backgroundPadding;\n if (backgroundOpacity > 0) {\n var textFill = context.fillStyle;\n var textBackgroundColor = ele.pstyle('text-background-color').value;\n context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')';\n if (rounded) {\n roundRect(context, bgX, bgY, bgW, bgH, roundRadius);\n } else {\n context.fillRect(bgX, bgY, bgW, bgH);\n }\n context.fillStyle = textFill;\n }\n if (textBorderWidth > 0 && borderOpacity > 0) {\n var textStroke = context.strokeStyle;\n var textLineWidth = context.lineWidth;\n var textBorderColor = ele.pstyle('text-border-color').value;\n var textBorderStyle = ele.pstyle('text-border-style').value;\n context.strokeStyle = 'rgba(' + textBorderColor[0] + ',' + textBorderColor[1] + ',' + textBorderColor[2] + ',' + borderOpacity * parentOpacity + ')';\n context.lineWidth = textBorderWidth;\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (textBorderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'double':\n context.lineWidth = textBorderWidth / 4; // 50% reserved for white between the two borders\n context.setLineDash([]);\n break;\n case 'solid':\n context.setLineDash([]);\n break;\n }\n }\n if (rounded) {\n roundRect(context, bgX, bgY, bgW, bgH, roundRadius, 'stroke');\n } else {\n context.strokeRect(bgX, bgY, bgW, bgH);\n }\n if (textBorderStyle === 'double') {\n var whiteWidth = textBorderWidth / 2;\n if (rounded) {\n roundRect(context, bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2, roundRadius, 'stroke');\n } else {\n context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);\n }\n }\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n context.lineWidth = textLineWidth;\n context.strokeStyle = textStroke;\n }\n }\n var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle\n\n if (lineWidth > 0) {\n context.lineWidth = lineWidth;\n }\n if (ele.pstyle('text-wrap').value === 'wrap') {\n var lines = getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix);\n var lineHeight = getPrefixedProperty(rscratch, 'labelLineHeight', prefix);\n var halfTextW = textW / 2;\n var justification = this.getLabelJustification(ele);\n if (justification === 'auto') ; else if (halign === 'left') {\n // auto justification : right\n if (justification === 'left') {\n textX += -textW;\n } else if (justification === 'center') {\n textX += -halfTextW;\n } // else same as auto\n } else if (halign === 'center') {\n // auto justfication : center\n if (justification === 'left') {\n textX += -halfTextW;\n } else if (justification === 'right') {\n textX += halfTextW;\n } // else same as auto\n } else if (halign === 'right') {\n // auto justification : left\n if (justification === 'center') {\n textX += halfTextW;\n } else if (justification === 'right') {\n textX += textW;\n } // else same as auto\n }\n\n switch (valign) {\n case 'top':\n textY -= (lines.length - 1) * lineHeight;\n break;\n case 'center':\n case 'bottom':\n textY -= (lines.length - 1) * lineHeight;\n break;\n }\n for (var l = 0; l < lines.length; l++) {\n if (lineWidth > 0) {\n context.strokeText(lines[l], textX, textY);\n }\n context.fillText(lines[l], textX, textY);\n textY += lineHeight;\n }\n } else {\n if (lineWidth > 0) {\n context.strokeText(text, textX, textY);\n }\n context.fillText(text, textX, textY);\n }\n if (theta !== 0) {\n context.rotate(-theta);\n context.translate(-orgTextX, -orgTextY);\n }\n }\n };\n\n /* global Path2D */\n var CRp$5 = {};\n CRp$5.drawNode = function (context, node, shiftToOriginWithBb) {\n var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var r = this;\n var nodeWidth, nodeHeight;\n var _p = node._private;\n var rs = _p.rscratch;\n var pos = node.position();\n if (!number$1(pos.x) || !number$1(pos.y)) {\n return; // can't draw node with undefined position\n }\n\n if (shouldDrawOpacity && !node.visible()) {\n return;\n }\n var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1;\n var usePaths = r.usePaths();\n var path;\n var pathCacheHit = false;\n var padding = node.padding();\n nodeWidth = node.width() + 2 * padding;\n nodeHeight = node.height() + 2 * padding;\n\n //\n // setup shift\n\n var bb;\n if (shiftToOriginWithBb) {\n bb = shiftToOriginWithBb;\n context.translate(-bb.x1, -bb.y1);\n }\n\n //\n // load bg image\n\n var bgImgProp = node.pstyle('background-image');\n var urls = bgImgProp.value;\n var urlDefined = new Array(urls.length);\n var image = new Array(urls.length);\n var numImages = 0;\n for (var i = 0; i < urls.length; i++) {\n var url = urls[i];\n var defd = urlDefined[i] = url != null && url !== 'none';\n if (defd) {\n var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i);\n numImages++;\n\n // get image, and if not loaded then ask to redraw when later loaded\n image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () {\n _p.backgroundTimestamp = Date.now();\n node.emitAndNotify('background');\n });\n }\n }\n\n //\n // setup styles\n\n var darkness = node.pstyle('background-blacken').value;\n var borderWidth = node.pstyle('border-width').pfValue;\n var bgOpacity = node.pstyle('background-opacity').value * eleOpacity;\n var borderColor = node.pstyle('border-color').value;\n var borderStyle = node.pstyle('border-style').value;\n var borderOpacity = node.pstyle('border-opacity').value * eleOpacity;\n var outlineWidth = node.pstyle('outline-width').pfValue;\n var outlineColor = node.pstyle('outline-color').value;\n var outlineStyle = node.pstyle('outline-style').value;\n var outlineOpacity = node.pstyle('outline-opacity').value * eleOpacity;\n var outlineOffset = node.pstyle('outline-offset').value;\n context.lineJoin = 'miter'; // so borders are square with the node shape\n\n var setupShapeColor = function setupShapeColor() {\n var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity;\n r.eleFillStyle(context, node, bgOpy);\n };\n var setupBorderColor = function setupBorderColor() {\n var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity;\n r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);\n };\n var setupOutlineColor = function setupOutlineColor() {\n var otlnOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : outlineOpacity;\n r.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], otlnOpy);\n };\n\n //\n // setup shape\n\n var getPath = function getPath(width, height, shape, points) {\n var pathCache = r.nodePathCache = r.nodePathCache || [];\n var key = hashStrings(shape === 'polygon' ? shape + ',' + points.join(',') : shape, '' + height, '' + width);\n var cachedPath = pathCache[key];\n var path;\n var cacheHit = false;\n if (cachedPath != null) {\n path = cachedPath;\n cacheHit = true;\n rs.pathCache = path;\n } else {\n path = new Path2D();\n pathCache[key] = rs.pathCache = path;\n }\n return {\n path: path,\n cacheHit: cacheHit\n };\n };\n var styleShape = node.pstyle('shape').strValue;\n var shapePts = node.pstyle('shape-polygon-points').pfValue;\n if (usePaths) {\n context.translate(pos.x, pos.y);\n var shapePath = getPath(nodeWidth, nodeHeight, styleShape, shapePts);\n path = shapePath.path;\n pathCacheHit = shapePath.cacheHit;\n }\n var drawShape = function drawShape() {\n if (!pathCacheHit) {\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight);\n }\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n };\n var drawImages = function drawImages() {\n var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var inside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var prevBging = _p.backgrounding;\n var totalCompleted = 0;\n for (var _i = 0; _i < image.length; _i++) {\n var bgContainment = node.cy().style().getIndexedStyle(node, 'background-image-containment', 'value', _i);\n if (inside && bgContainment === 'over' || !inside && bgContainment === 'inside') {\n totalCompleted++;\n continue;\n }\n if (urlDefined[_i] && image[_i].complete && !image[_i].error) {\n totalCompleted++;\n r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity);\n }\n }\n _p.backgrounding = !(totalCompleted === numImages);\n if (prevBging !== _p.backgrounding) {\n // update style b/c :backgrounding state changed\n node.updateStyle(false);\n }\n };\n var drawPie = function drawPie() {\n var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity;\n if (r.hasPie(node)) {\n r.drawPie(context, node, pieOpacity);\n\n // redraw/restore path if steps after pie need it\n if (redrawShape) {\n if (!usePaths) {\n r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight);\n }\n }\n }\n };\n var darken = function darken() {\n var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity;\n var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;\n var c = darkness > 0 ? 0 : 255;\n if (darkness !== 0) {\n r.colorFillStyle(context, c, c, c, opacity);\n if (usePaths) {\n context.fill(path);\n } else {\n context.fill();\n }\n }\n };\n var drawBorder = function drawBorder() {\n if (borderWidth > 0) {\n context.lineWidth = borderWidth;\n context.lineCap = 'butt';\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (borderStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n if (borderStyle === 'double') {\n context.lineWidth = borderWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOutline = function drawOutline() {\n if (outlineWidth > 0) {\n context.lineWidth = outlineWidth;\n context.lineCap = 'butt';\n if (context.setLineDash) {\n // for very outofdate browsers\n switch (outlineStyle) {\n case 'dotted':\n context.setLineDash([1, 1]);\n break;\n case 'dashed':\n context.setLineDash([4, 2]);\n break;\n case 'solid':\n case 'double':\n context.setLineDash([]);\n break;\n }\n }\n var npos = pos;\n if (usePaths) {\n npos = {\n x: 0,\n y: 0\n };\n }\n var shape = r.getNodeShape(node);\n var scaleX = (nodeWidth + borderWidth + (outlineWidth + outlineOffset)) / nodeWidth;\n var scaleY = (nodeHeight + borderWidth + (outlineWidth + outlineOffset)) / nodeHeight;\n var sWidth = nodeWidth * scaleX;\n var sHeight = nodeHeight * scaleY;\n var points = r.nodeShapes[shape].points;\n var _path;\n if (usePaths) {\n var outlinePath = getPath(sWidth, sHeight, shape, points);\n _path = outlinePath.path;\n }\n\n // draw the outline path, either by using expanded points or by scaling \n // the dimensions, depending on shape\n if (shape === \"ellipse\") {\n r.drawEllipsePath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (['round-diamond', 'round-heptagon', 'round-hexagon', 'round-octagon', 'round-pentagon', 'round-polygon', 'round-triangle', 'round-tag'].includes(shape)) {\n var sMult = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (shape === 'round-diamond') {\n sMult = (borderWidth + outlineOffset + outlineWidth) * 1.4;\n } else if (shape === 'round-heptagon') {\n sMult = (borderWidth + outlineOffset + outlineWidth) * 1.075;\n offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 35;\n } else if (shape === 'round-hexagon') {\n sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12;\n } else if (shape === 'round-pentagon') {\n sMult = (borderWidth + outlineOffset + outlineWidth) * 1.13;\n offsetY = -(borderWidth / 2 + outlineOffset + outlineWidth) / 15;\n } else if (shape === 'round-tag') {\n sMult = (borderWidth + outlineOffset + outlineWidth) * 1.12;\n offsetX = (borderWidth / 2 + outlineWidth + outlineOffset) * .07;\n } else if (shape === 'round-triangle') {\n sMult = (borderWidth + outlineOffset + outlineWidth) * (Math.PI / 2);\n offsetY = -(borderWidth + outlineOffset / 2 + outlineWidth) / Math.PI;\n }\n if (sMult !== 0) {\n scaleX = (nodeWidth + sMult) / nodeWidth;\n scaleY = (nodeHeight + sMult) / nodeHeight;\n }\n r.drawRoundPolygonPath(_path || context, npos.x + offsetX, npos.y + offsetY, nodeWidth * scaleX, nodeHeight * scaleY, points);\n } else if (['roundrectangle', 'round-rectangle'].includes(shape)) {\n r.drawRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (['cutrectangle', 'cut-rectangle'].includes(shape)) {\n r.drawCutRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (['bottomroundrectangle', 'bottom-round-rectangle'].includes(shape)) {\n r.drawBottomRoundRectanglePath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (shape === \"barrel\") {\n r.drawBarrelPath(_path || context, npos.x, npos.y, sWidth, sHeight);\n } else if (shape.startsWith(\"polygon\") || ['rhomboid', 'right-rhomboid', 'round-tag', 'tag', 'vee'].includes(shape)) {\n var pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth;\n points = joinLines(expandPolygon(points, pad));\n r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);\n } else {\n var _pad = (borderWidth + outlineWidth + outlineOffset) / nodeWidth;\n points = joinLines(expandPolygon(points, -_pad));\n r.drawPolygonPath(_path || context, npos.x, npos.y, nodeWidth, nodeHeight, points);\n }\n if (usePaths) {\n context.stroke(_path);\n } else {\n context.stroke();\n }\n if (outlineStyle === 'double') {\n context.lineWidth = borderWidth / 3;\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n if (usePaths) {\n context.stroke(_path);\n } else {\n context.stroke();\n }\n context.globalCompositeOperation = gco;\n }\n\n // reset in case we changed the border style\n if (context.setLineDash) {\n // for very outofdate browsers\n context.setLineDash([]);\n }\n }\n };\n var drawOverlay = function drawOverlay() {\n if (shouldDrawOverlay) {\n r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawUnderlay = function drawUnderlay() {\n if (shouldDrawOverlay) {\n r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight);\n }\n };\n var drawText = function drawText() {\n r.drawElementText(context, node, null, drawLabel);\n };\n var ghost = node.pstyle('ghost').value === 'yes';\n if (ghost) {\n var gx = node.pstyle('ghost-offset-x').pfValue;\n var gy = node.pstyle('ghost-offset-y').pfValue;\n var ghostOpacity = node.pstyle('ghost-opacity').value;\n var effGhostOpacity = ghostOpacity * eleOpacity;\n context.translate(gx, gy);\n setupOutlineColor();\n drawOutline();\n setupShapeColor(ghostOpacity * bgOpacity);\n drawShape();\n drawImages(effGhostOpacity, true);\n setupBorderColor(ghostOpacity * borderOpacity);\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawImages(effGhostOpacity, false);\n darken(effGhostOpacity);\n context.translate(-gx, -gy);\n }\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawUnderlay();\n if (usePaths) {\n context.translate(pos.x, pos.y);\n }\n setupOutlineColor();\n drawOutline();\n setupShapeColor();\n drawShape();\n drawImages(eleOpacity, true);\n setupBorderColor();\n drawBorder();\n drawPie(darkness !== 0 || borderWidth !== 0);\n drawImages(eleOpacity, false);\n darken();\n if (usePaths) {\n context.translate(-pos.x, -pos.y);\n }\n drawText();\n drawOverlay();\n\n //\n // clean up shift\n\n if (shiftToOriginWithBb) {\n context.translate(bb.x1, bb.y1);\n }\n };\n var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay(overlayOrUnderlay) {\n if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) {\n throw new Error('Invalid state');\n }\n return function (context, node, pos, nodeWidth, nodeHeight) {\n var r = this;\n if (!node.visible()) {\n return;\n }\n var padding = node.pstyle(\"\".concat(overlayOrUnderlay, \"-padding\")).pfValue;\n var opacity = node.pstyle(\"\".concat(overlayOrUnderlay, \"-opacity\")).value;\n var color = node.pstyle(\"\".concat(overlayOrUnderlay, \"-color\")).value;\n var shape = node.pstyle(\"\".concat(overlayOrUnderlay, \"-shape\")).value;\n if (opacity > 0) {\n pos = pos || node.position();\n if (nodeWidth == null || nodeHeight == null) {\n var _padding = node.padding();\n nodeWidth = node.width() + 2 * _padding;\n nodeHeight = node.height() + 2 * _padding;\n }\n r.colorFillStyle(context, color[0], color[1], color[2], opacity);\n r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2);\n context.fill();\n }\n };\n };\n CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay('overlay');\n CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay('underlay');\n\n // does the node have at least one pie piece?\n CRp$5.hasPie = function (node) {\n node = node[0]; // ensure ele ref\n\n return node._private.hasPie;\n };\n CRp$5.drawPie = function (context, node, nodeOpacity, pos) {\n node = node[0]; // ensure ele ref\n pos = pos || node.position();\n var cyStyle = node.cy().style();\n var pieSize = node.pstyle('pie-size');\n var x = pos.x;\n var y = pos.y;\n var nodeW = node.width();\n var nodeH = node.height();\n var radius = Math.min(nodeW, nodeH) / 2; // must fit in node\n var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1]\n var usePaths = this.usePaths();\n if (usePaths) {\n x = 0;\n y = 0;\n }\n if (pieSize.units === '%') {\n radius = radius * pieSize.pfValue;\n } else if (pieSize.pfValue !== undefined) {\n radius = pieSize.pfValue / 2;\n }\n for (var i = 1; i <= cyStyle.pieBackgroundN; i++) {\n // 1..N\n var size = node.pstyle('pie-' + i + '-background-size').value;\n var color = node.pstyle('pie-' + i + '-background-color').value;\n var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity;\n var percent = size / 100; // map integer range [0, 100] to [0, 1]\n\n // percent can't push beyond 1\n if (percent + lastPercent > 1) {\n percent = 1 - lastPercent;\n }\n var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise\n var angleDelta = 2 * Math.PI * percent;\n var angleEnd = angleStart + angleDelta;\n\n // ignore if\n // - zero size\n // - we're already beyond the full circle\n // - adding the current slice would go beyond the full circle\n if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) {\n continue;\n }\n context.beginPath();\n context.moveTo(x, y);\n context.arc(x, y, radius, angleStart, angleEnd);\n context.closePath();\n this.colorFillStyle(context, color[0], color[1], color[2], opacity);\n context.fill();\n lastPercent += percent;\n }\n };\n\n var CRp$4 = {};\n var motionBlurDelay = 100;\n\n // var isFirefox = typeof InstallTrigger !== 'undefined';\n\n CRp$4.getPixelRatio = function () {\n var context = this.data.contexts[0];\n if (this.forcedPixelRatio != null) {\n return this.forcedPixelRatio;\n }\n var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n return (window.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef\n };\n\n CRp$4.paintCache = function (context) {\n var caches = this.paintCaches = this.paintCaches || [];\n var needToCreateCache = true;\n var cache;\n for (var i = 0; i < caches.length; i++) {\n cache = caches[i];\n if (cache.context === context) {\n needToCreateCache = false;\n break;\n }\n }\n if (needToCreateCache) {\n cache = {\n context: context\n };\n caches.push(cache);\n }\n return cache;\n };\n CRp$4.createGradientStyleFor = function (context, shapeStyleName, ele, fill, opacity) {\n var gradientStyle;\n var usePaths = this.usePaths();\n var colors = ele.pstyle(shapeStyleName + '-gradient-stop-colors').value,\n positions = ele.pstyle(shapeStyleName + '-gradient-stop-positions').pfValue;\n if (fill === 'radial-gradient') {\n if (ele.isEdge()) {\n var start = ele.sourceEndpoint(),\n end = ele.targetEndpoint(),\n mid = ele.midpoint();\n var d1 = dist(start, mid);\n var d2 = dist(end, mid);\n gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));\n } else {\n var pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n width = ele.paddedWidth(),\n height = ele.paddedHeight();\n gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height));\n }\n } else {\n if (ele.isEdge()) {\n var _start = ele.sourceEndpoint(),\n _end = ele.targetEndpoint();\n gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);\n } else {\n var _pos = usePaths ? {\n x: 0,\n y: 0\n } : ele.position(),\n _width = ele.paddedWidth(),\n _height = ele.paddedHeight(),\n halfWidth = _width / 2,\n halfHeight = _height / 2;\n var direction = ele.pstyle('background-gradient-direction').value;\n switch (direction) {\n case 'to-bottom':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);\n break;\n case 'to-top':\n gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);\n break;\n case 'to-left':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);\n break;\n case 'to-right':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);\n break;\n case 'to-bottom-right':\n case 'to-right-bottom':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-right':\n case 'to-right-top':\n gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);\n break;\n case 'to-bottom-left':\n case 'to-left-bottom':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);\n break;\n case 'to-top-left':\n case 'to-left-top':\n gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);\n break;\n }\n }\n }\n if (!gradientStyle) return null; // invalid gradient style\n\n var hasPositions = positions.length === colors.length;\n var length = colors.length;\n for (var i = 0; i < length; i++) {\n gradientStyle.addColorStop(hasPositions ? positions[i] : i / (length - 1), 'rgba(' + colors[i][0] + ',' + colors[i][1] + ',' + colors[i][2] + ',' + opacity + ')');\n }\n return gradientStyle;\n };\n CRp$4.gradientFillStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'background', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.fillStyle = gradientStyle;\n };\n CRp$4.colorFillStyle = function (context, r, g, b, a) {\n context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.fillStyle !== fillStyle ){\n // context.fillStyle = cache.fillStyle = fillStyle;\n // }\n };\n\n CRp$4.eleFillStyle = function (context, ele, opacity) {\n var backgroundFill = ele.pstyle('background-fill').value;\n if (backgroundFill === 'linear-gradient' || backgroundFill === 'radial-gradient') {\n this.gradientFillStyle(context, ele, backgroundFill, opacity);\n } else {\n var backgroundColor = ele.pstyle('background-color').value;\n this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);\n }\n };\n CRp$4.gradientStrokeStyle = function (context, ele, fill, opacity) {\n var gradientStyle = this.createGradientStyleFor(context, 'line', ele, fill, opacity);\n if (!gradientStyle) return null; // error\n context.strokeStyle = gradientStyle;\n };\n CRp$4.colorStrokeStyle = function (context, r, g, b, a) {\n context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n // turn off for now, seems context does its own caching\n\n // var cache = this.paintCache(context);\n\n // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n\n // if( cache.strokeStyle !== strokeStyle ){\n // context.strokeStyle = cache.strokeStyle = strokeStyle;\n // }\n };\n\n CRp$4.eleStrokeStyle = function (context, ele, opacity) {\n var lineFill = ele.pstyle('line-fill').value;\n if (lineFill === 'linear-gradient' || lineFill === 'radial-gradient') {\n this.gradientStrokeStyle(context, ele, lineFill, opacity);\n } else {\n var lineColor = ele.pstyle('line-color').value;\n this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);\n }\n };\n\n // Resize canvas\n CRp$4.matchCanvasSize = function (container) {\n var r = this;\n var data = r.data;\n var bb = r.findContainerClientCoords();\n var width = bb[2];\n var height = bb[3];\n var pixelRatio = r.getPixelRatio();\n var mbPxRatio = r.motionBlurPxRatio;\n if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {\n pixelRatio = mbPxRatio;\n }\n var canvasWidth = width * pixelRatio;\n var canvasHeight = height * pixelRatio;\n var canvas;\n if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {\n return; // save cycles if same\n }\n\n r.fontCaches = null; // resizing resets the style\n\n var canvasContainer = data.canvasContainer;\n canvasContainer.style.width = width + 'px';\n canvasContainer.style.height = height + 'px';\n for (var i = 0; i < r.CANVAS_LAYERS; i++) {\n canvas = data.canvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n for (var i = 0; i < r.BUFFER_COUNT; i++) {\n canvas = data.bufferCanvases[i];\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n }\n r.textureMult = 1;\n if (pixelRatio <= 1) {\n canvas = data.bufferCanvases[r.TEXTURE_BUFFER];\n r.textureMult = 2;\n canvas.width = canvasWidth * r.textureMult;\n canvas.height = canvasHeight * r.textureMult;\n }\n r.canvasWidth = canvasWidth;\n r.canvasHeight = canvasHeight;\n };\n CRp$4.renderTo = function (cxt, zoom, pan, pxRatio) {\n this.render({\n forcedContext: cxt,\n forcedZoom: zoom,\n forcedPan: pan,\n drawAllLayers: true,\n forcedPxRatio: pxRatio\n });\n };\n CRp$4.render = function (options) {\n options = options || staticEmptyObject();\n var forcedContext = options.forcedContext;\n var drawAllLayers = options.drawAllLayers;\n var drawOnlyNodeLayer = options.drawOnlyNodeLayer;\n var forcedZoom = options.forcedZoom;\n var forcedPan = options.forcedPan;\n var r = this;\n var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio;\n var cy = r.cy;\n var data = r.data;\n var needDraw = data.canvasNeedsRedraw;\n var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);\n var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur;\n var mbPxRatio = r.motionBlurPxRatio;\n var hasCompoundNodes = cy.hasCompoundNodes();\n var inNodeDragGesture = r.hoverData.draggingEles;\n var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;\n motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;\n var motionBlurFadeEffect = motionBlur;\n if (!forcedContext) {\n if (r.prevPxRatio !== pixelRatio) {\n r.invalidateContainerClientCoordsCache();\n r.matchCanvasSize(r.container);\n r.redrawHint('eles', true);\n r.redrawHint('drag', true);\n }\n r.prevPxRatio = pixelRatio;\n }\n if (!forcedContext && r.motionBlurTimeout) {\n clearTimeout(r.motionBlurTimeout);\n }\n if (motionBlur) {\n if (r.mbFrames == null) {\n r.mbFrames = 0;\n }\n r.mbFrames++;\n if (r.mbFrames < 3) {\n // need several frames before even high quality motionblur\n motionBlurFadeEffect = false;\n }\n\n // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing)\n if (r.mbFrames > r.minMbLowQualFrames) {\n //r.fullQualityMb = false;\n r.motionBlurPxRatio = r.mbPxRBlurry;\n }\n }\n if (r.clearingMotionBlur) {\n r.motionBlurPxRatio = 1;\n }\n\n // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame\n // because a rogue async texture frame would clear needDraw\n if (r.textureDrawLastFrame && !textureDraw) {\n needDraw[r.NODE] = true;\n needDraw[r.SELECT_BOX] = true;\n }\n var style = cy.style();\n var zoom = cy.zoom();\n var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom;\n var pan = cy.pan();\n var effectivePan = {\n x: pan.x,\n y: pan.y\n };\n var vp = {\n zoom: zoom,\n pan: {\n x: pan.x,\n y: pan.y\n }\n };\n var prevVp = r.prevViewport;\n var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;\n\n // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed)\n if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {\n r.motionBlurPxRatio = 1;\n }\n if (forcedPan) {\n effectivePan = forcedPan;\n }\n\n // apply pixel ratio\n\n effectiveZoom *= pixelRatio;\n effectivePan.x *= pixelRatio;\n effectivePan.y *= pixelRatio;\n var eles = r.getCachedZSortedEles();\n function mbclear(context, x, y, w, h) {\n var gco = context.globalCompositeOperation;\n context.globalCompositeOperation = 'destination-out';\n r.colorFillStyle(context, 255, 255, 255, r.motionBlurTransparency);\n context.fillRect(x, y, w, h);\n context.globalCompositeOperation = gco;\n }\n function setContextTransform(context, clear) {\n var ePan, eZoom, w, h;\n if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {\n ePan = {\n x: pan.x * mbPxRatio,\n y: pan.y * mbPxRatio\n };\n eZoom = zoom * mbPxRatio;\n w = r.canvasWidth * mbPxRatio;\n h = r.canvasHeight * mbPxRatio;\n } else {\n ePan = effectivePan;\n eZoom = effectiveZoom;\n w = r.canvasWidth;\n h = r.canvasHeight;\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (clear === 'motionBlur') {\n mbclear(context, 0, 0, w, h);\n } else if (!forcedContext && (clear === undefined || clear)) {\n context.clearRect(0, 0, w, h);\n }\n if (!drawAllLayers) {\n context.translate(ePan.x, ePan.y);\n context.scale(eZoom, eZoom);\n }\n if (forcedPan) {\n context.translate(forcedPan.x, forcedPan.y);\n }\n if (forcedZoom) {\n context.scale(forcedZoom, forcedZoom);\n }\n }\n if (!textureDraw) {\n r.textureDrawLastFrame = false;\n }\n if (textureDraw) {\n r.textureDrawLastFrame = true;\n if (!r.textureCache) {\n r.textureCache = {};\n r.textureCache.bb = cy.mutableElements().boundingBox();\n r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];\n var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);\n r.render({\n forcedContext: cxt,\n drawOnlyNodeLayer: true,\n forcedPxRatio: pixelRatio * r.textureMult\n });\n var vp = r.textureCache.viewport = {\n zoom: cy.zoom(),\n pan: cy.pan(),\n width: r.canvasWidth,\n height: r.canvasHeight\n };\n vp.mpan = {\n x: (0 - vp.pan.x) / vp.zoom,\n y: (0 - vp.pan.y) / vp.zoom\n };\n }\n needDraw[r.DRAG] = false;\n needDraw[r.NODE] = false;\n var context = data.contexts[r.NODE];\n var texture = r.textureCache.texture;\n var vp = r.textureCache.viewport;\n context.setTransform(1, 0, 0, 1, 0, 0);\n if (motionBlur) {\n mbclear(context, 0, 0, vp.width, vp.height);\n } else {\n context.clearRect(0, 0, vp.width, vp.height);\n }\n var outsideBgColor = style.core('outside-texture-bg-color').value;\n var outsideBgOpacity = style.core('outside-texture-bg-opacity').value;\n r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);\n context.fillRect(0, 0, vp.width, vp.height);\n var zoom = cy.zoom();\n setContextTransform(context, false);\n context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);\n } else if (r.textureOnViewport && !forcedContext) {\n // clear the cache since we don't need it\n r.textureCache = null;\n }\n var extent = cy.extent();\n var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();\n var hideEdges = r.hideEdgesOnViewport && vpManip;\n var needMbClear = [];\n needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;\n if (needMbClear[r.NODE]) {\n r.clearedForMotionBlur[r.NODE] = true;\n }\n needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;\n if (needMbClear[r.DRAG]) {\n r.clearedForMotionBlur[r.DRAG] = true;\n }\n if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {\n var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]);\n var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined;\n setContextTransform(context, clear);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);\n } else {\n r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.nondrag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.NODE] = false;\n }\n }\n if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {\n var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;\n var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]);\n setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined);\n if (hideEdges) {\n r.drawCachedNodes(context, eles.drag, pixelRatio, extent);\n } else {\n r.drawCachedElements(context, eles.drag, pixelRatio, extent);\n }\n if (r.debug) {\n r.drawDebugPoints(context, eles.drag);\n }\n if (!drawAllLayers && !motionBlur) {\n needDraw[r.DRAG] = false;\n }\n }\n if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {\n var context = forcedContext || data.contexts[r.SELECT_BOX];\n setContextTransform(context);\n if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {\n var zoom = r.cy.zoom();\n var borderWidth = style.core('selection-box-border-width').value / zoom;\n context.lineWidth = borderWidth;\n context.fillStyle = 'rgba(' + style.core('selection-box-color').value[0] + ',' + style.core('selection-box-color').value[1] + ',' + style.core('selection-box-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n if (borderWidth > 0) {\n context.strokeStyle = 'rgba(' + style.core('selection-box-border-color').value[0] + ',' + style.core('selection-box-border-color').value[1] + ',' + style.core('selection-box-border-color').value[2] + ',' + style.core('selection-box-opacity').value + ')';\n context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);\n }\n }\n if (data.bgActivePosistion && !r.hoverData.selecting) {\n var zoom = r.cy.zoom();\n var pos = data.bgActivePosistion;\n context.fillStyle = 'rgba(' + style.core('active-bg-color').value[0] + ',' + style.core('active-bg-color').value[1] + ',' + style.core('active-bg-color').value[2] + ',' + style.core('active-bg-opacity').value + ')';\n context.beginPath();\n context.arc(pos.x, pos.y, style.core('active-bg-size').pfValue / zoom, 0, 2 * Math.PI);\n context.fill();\n }\n var timeToRender = r.lastRedrawTime;\n if (r.showFps && timeToRender) {\n timeToRender = Math.round(timeToRender);\n var fps = Math.round(1000 / timeToRender);\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.fillStyle = 'rgba(255, 0, 0, 0.75)';\n context.strokeStyle = 'rgba(255, 0, 0, 0.75)';\n context.lineWidth = 1;\n context.fillText('1 frame = ' + timeToRender + ' ms = ' + fps + ' fps', 0, 20);\n var maxFps = 60;\n context.strokeRect(0, 30, 250, 20);\n context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);\n }\n if (!drawAllLayers) {\n needDraw[r.SELECT_BOX] = false;\n }\n }\n\n // motionblur: blit rendered blurry frames\n if (motionBlur && mbPxRatio !== 1) {\n var cxtNode = data.contexts[r.NODE];\n var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];\n var cxtDrag = data.contexts[r.DRAG];\n var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];\n var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) {\n cxt.setTransform(1, 0, 0, 1, 0, 0);\n if (needClear || !motionBlurFadeEffect) {\n cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight);\n } else {\n mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight);\n }\n var pxr = mbPxRatio;\n cxt.drawImage(txt,\n // img\n 0, 0,\n // sx, sy\n r.canvasWidth * pxr, r.canvasHeight * pxr,\n // sw, sh\n 0, 0,\n // x, y\n r.canvasWidth, r.canvasHeight // w, h\n );\n };\n\n if (needDraw[r.NODE] || needMbClear[r.NODE]) {\n drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);\n needDraw[r.NODE] = false;\n }\n if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {\n drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);\n needDraw[r.DRAG] = false;\n }\n }\n r.prevViewport = vp;\n if (r.clearingMotionBlur) {\n r.clearingMotionBlur = false;\n r.motionBlurCleared = true;\n r.motionBlur = true;\n }\n if (motionBlur) {\n r.motionBlurTimeout = setTimeout(function () {\n r.motionBlurTimeout = null;\n r.clearedForMotionBlur[r.NODE] = false;\n r.clearedForMotionBlur[r.DRAG] = false;\n r.motionBlur = false;\n r.clearingMotionBlur = !textureDraw;\n r.mbFrames = 0;\n needDraw[r.NODE] = true;\n needDraw[r.DRAG] = true;\n r.redraw();\n }, motionBlurDelay);\n }\n if (!forcedContext) {\n cy.emit('render');\n }\n };\n\n var CRp$3 = {};\n\n // @O Polygon drawing\n CRp$3.drawPolygonPath = function (context, x, y, width, height, points) {\n var halfW = width / 2;\n var halfH = height / 2;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(x + halfW * points[0], y + halfH * points[1]);\n for (var i = 1; i < points.length / 2; i++) {\n context.lineTo(x + halfW * points[i * 2], y + halfH * points[i * 2 + 1]);\n }\n context.closePath();\n };\n CRp$3.drawRoundPolygonPath = function (context, x, y, width, height, points) {\n var halfW = width / 2;\n var halfH = height / 2;\n var cornerRadius = getRoundPolygonRadius(width, height);\n if (context.beginPath) {\n context.beginPath();\n }\n for (var _i = 0; _i < points.length / 4; _i++) {\n var sourceUv = void 0,\n destUv = void 0;\n if (_i === 0) {\n sourceUv = points.length - 2;\n } else {\n sourceUv = _i * 4 - 2;\n }\n destUv = _i * 4 + 2;\n var px = x + halfW * points[_i * 4];\n var py = y + halfH * points[_i * 4 + 1];\n var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1];\n var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);\n var cp0x = px - offset * points[sourceUv];\n var cp0y = py - offset * points[sourceUv + 1];\n var cp1x = px + offset * points[destUv];\n var cp1y = py + offset * points[destUv + 1];\n if (_i === 0) {\n context.moveTo(cp0x, cp0y);\n } else {\n context.lineTo(cp0x, cp0y);\n }\n context.arcTo(px, py, cp1x, cp1y, cornerRadius);\n }\n context.closePath();\n };\n\n // Round rectangle drawing\n CRp$3.drawRoundRectanglePath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerRadius = getRoundRectangleRadius(width, height);\n if (context.beginPath) {\n context.beginPath();\n }\n\n // Start at top middle\n context.moveTo(x, y - halfHeight);\n // Arc from middle top to right side\n context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius);\n // Arc from right side to bottom\n context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);\n // Arc from bottom to left side\n context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);\n // Arc from left side to topBorder\n context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius);\n // Join line\n context.lineTo(x, y - halfHeight);\n context.closePath();\n };\n CRp$3.drawBottomRoundRectanglePath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerRadius = getRoundRectangleRadius(width, height);\n if (context.beginPath) {\n context.beginPath();\n }\n\n // Start at top middle\n context.moveTo(x, y - halfHeight);\n context.lineTo(x + halfWidth, y - halfHeight);\n context.lineTo(x + halfWidth, y);\n context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius);\n context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius);\n context.lineTo(x - halfWidth, y - halfHeight);\n context.lineTo(x, y - halfHeight);\n context.closePath();\n };\n CRp$3.drawCutRectanglePath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var cornerLength = getCutRectangleCornerLength();\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(x - halfWidth + cornerLength, y - halfHeight);\n context.lineTo(x + halfWidth - cornerLength, y - halfHeight);\n context.lineTo(x + halfWidth, y - halfHeight + cornerLength);\n context.lineTo(x + halfWidth, y + halfHeight - cornerLength);\n context.lineTo(x + halfWidth - cornerLength, y + halfHeight);\n context.lineTo(x - halfWidth + cornerLength, y + halfHeight);\n context.lineTo(x - halfWidth, y + halfHeight - cornerLength);\n context.lineTo(x - halfWidth, y - halfHeight + cornerLength);\n context.closePath();\n };\n CRp$3.drawBarrelPath = function (context, x, y, width, height) {\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var xBegin = x - halfWidth;\n var xEnd = x + halfWidth;\n var yBegin = y - halfHeight;\n var yEnd = y + halfHeight;\n var barrelCurveConstants = getBarrelCurveConstants(width, height);\n var wOffset = barrelCurveConstants.widthOffset;\n var hOffset = barrelCurveConstants.heightOffset;\n var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;\n if (context.beginPath) {\n context.beginPath();\n }\n context.moveTo(xBegin, yBegin + hOffset);\n context.lineTo(xBegin, yEnd - hOffset);\n context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);\n context.lineTo(xEnd - wOffset, yEnd);\n context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);\n context.lineTo(xEnd, yBegin + hOffset);\n context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);\n context.lineTo(xBegin + wOffset, yBegin);\n context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);\n context.closePath();\n };\n var sin0 = Math.sin(0);\n var cos0 = Math.cos(0);\n var sin = {};\n var cos = {};\n var ellipseStepSize = Math.PI / 40;\n for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {\n sin[i] = Math.sin(i);\n cos[i] = Math.cos(i);\n }\n CRp$3.drawEllipsePath = function (context, centerX, centerY, width, height) {\n if (context.beginPath) {\n context.beginPath();\n }\n if (context.ellipse) {\n context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI);\n } else {\n var xPos, yPos;\n var rw = width / 2;\n var rh = height / 2;\n for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) {\n xPos = centerX - rw * sin[i] * sin0 + rw * cos[i] * cos0;\n yPos = centerY + rh * cos[i] * sin0 + rh * sin[i] * cos0;\n if (i === 0) {\n context.moveTo(xPos, yPos);\n } else {\n context.lineTo(xPos, yPos);\n }\n }\n }\n context.closePath();\n };\n\n /* global atob, ArrayBuffer, Uint8Array, Blob */\n var CRp$2 = {};\n CRp$2.createBuffer = function (w, h) {\n var buffer = document.createElement('canvas'); // eslint-disable-line no-undef\n buffer.width = w;\n buffer.height = h;\n return [buffer, buffer.getContext('2d')];\n };\n CRp$2.bufferCanvasImage = function (options) {\n var cy = this.cy;\n var eles = cy.mutableElements();\n var bb = eles.boundingBox();\n var ctrRect = this.findContainerClientCoords();\n var width = options.full ? Math.ceil(bb.w) : ctrRect[2];\n var height = options.full ? Math.ceil(bb.h) : ctrRect[3];\n var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight);\n var pxRatio = this.getPixelRatio();\n var scale = 1;\n if (options.scale !== undefined) {\n width *= options.scale;\n height *= options.scale;\n scale = options.scale;\n } else if (specdMaxDims) {\n var maxScaleW = Infinity;\n var maxScaleH = Infinity;\n if (number$1(options.maxWidth)) {\n maxScaleW = scale * options.maxWidth / width;\n }\n if (number$1(options.maxHeight)) {\n maxScaleH = scale * options.maxHeight / height;\n }\n scale = Math.min(maxScaleW, maxScaleH);\n width *= scale;\n height *= scale;\n }\n if (!specdMaxDims) {\n width *= pxRatio;\n height *= pxRatio;\n scale *= pxRatio;\n }\n var buffCanvas = document.createElement('canvas'); // eslint-disable-line no-undef\n\n buffCanvas.width = width;\n buffCanvas.height = height;\n buffCanvas.style.width = width + 'px';\n buffCanvas.style.height = height + 'px';\n var buffCxt = buffCanvas.getContext('2d');\n\n // Rasterize the layers, but only if container has nonzero size\n if (width > 0 && height > 0) {\n buffCxt.clearRect(0, 0, width, height);\n buffCxt.globalCompositeOperation = 'source-over';\n var zsortedEles = this.getCachedZSortedEles();\n if (options.full) {\n // draw the full bounds of the graph\n buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);\n buffCxt.scale(scale, scale);\n this.drawElements(buffCxt, zsortedEles);\n buffCxt.scale(1 / scale, 1 / scale);\n buffCxt.translate(bb.x1 * scale, bb.y1 * scale);\n } else {\n // draw the current view\n var pan = cy.pan();\n var translation = {\n x: pan.x * scale,\n y: pan.y * scale\n };\n scale *= cy.zoom();\n buffCxt.translate(translation.x, translation.y);\n buffCxt.scale(scale, scale);\n this.drawElements(buffCxt, zsortedEles);\n buffCxt.scale(1 / scale, 1 / scale);\n buffCxt.translate(-translation.x, -translation.y);\n }\n\n // need to fill bg at end like this in order to fill cleared transparent pixels in jpgs\n if (options.bg) {\n buffCxt.globalCompositeOperation = 'destination-over';\n buffCxt.fillStyle = options.bg;\n buffCxt.rect(0, 0, width, height);\n buffCxt.fill();\n }\n }\n return buffCanvas;\n };\n function b64ToBlob(b64, mimeType) {\n var bytes = atob(b64);\n var buff = new ArrayBuffer(bytes.length);\n var buffUint8 = new Uint8Array(buff);\n for (var i = 0; i < bytes.length; i++) {\n buffUint8[i] = bytes.charCodeAt(i);\n }\n return new Blob([buff], {\n type: mimeType\n });\n }\n function b64UriToB64(b64uri) {\n var i = b64uri.indexOf(',');\n return b64uri.substr(i + 1);\n }\n function output(options, canvas, mimeType) {\n var getB64Uri = function getB64Uri() {\n return canvas.toDataURL(mimeType, options.quality);\n };\n switch (options.output) {\n case 'blob-promise':\n return new Promise$1(function (resolve, reject) {\n try {\n canvas.toBlob(function (blob) {\n if (blob != null) {\n resolve(blob);\n } else {\n reject(new Error('`canvas.toBlob()` sent a null value in its callback'));\n }\n }, mimeType, options.quality);\n } catch (err) {\n reject(err);\n }\n });\n case 'blob':\n return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);\n case 'base64':\n return b64UriToB64(getB64Uri());\n case 'base64uri':\n default:\n return getB64Uri();\n }\n }\n CRp$2.png = function (options) {\n return output(options, this.bufferCanvasImage(options), 'image/png');\n };\n CRp$2.jpg = function (options) {\n return output(options, this.bufferCanvasImage(options), 'image/jpeg');\n };\n\n var CRp$1 = {};\n CRp$1.nodeShapeImpl = function (name, context, centerX, centerY, width, height, points) {\n switch (name) {\n case 'ellipse':\n return this.drawEllipsePath(context, centerX, centerY, width, height);\n case 'polygon':\n return this.drawPolygonPath(context, centerX, centerY, width, height, points);\n case 'round-polygon':\n return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points);\n case 'roundrectangle':\n case 'round-rectangle':\n return this.drawRoundRectanglePath(context, centerX, centerY, width, height);\n case 'cutrectangle':\n case 'cut-rectangle':\n return this.drawCutRectanglePath(context, centerX, centerY, width, height);\n case 'bottomroundrectangle':\n case 'bottom-round-rectangle':\n return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height);\n case 'barrel':\n return this.drawBarrelPath(context, centerX, centerY, width, height);\n }\n };\n\n var CR = CanvasRenderer;\n var CRp = CanvasRenderer.prototype;\n CRp.CANVAS_LAYERS = 3;\n //\n CRp.SELECT_BOX = 0;\n CRp.DRAG = 1;\n CRp.NODE = 2;\n CRp.BUFFER_COUNT = 3;\n //\n CRp.TEXTURE_BUFFER = 0;\n CRp.MOTIONBLUR_BUFFER_NODE = 1;\n CRp.MOTIONBLUR_BUFFER_DRAG = 2;\n function CanvasRenderer(options) {\n var r = this;\n r.data = {\n canvases: new Array(CRp.CANVAS_LAYERS),\n contexts: new Array(CRp.CANVAS_LAYERS),\n canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),\n bufferCanvases: new Array(CRp.BUFFER_COUNT),\n bufferContexts: new Array(CRp.CANVAS_LAYERS)\n };\n var tapHlOffAttr = '-webkit-tap-highlight-color';\n var tapHlOffStyle = 'rgba(0,0,0,0)';\n r.data.canvasContainer = document.createElement('div'); // eslint-disable-line no-undef\n var containerStyle = r.data.canvasContainer.style;\n r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;\n containerStyle.position = 'relative';\n containerStyle.zIndex = '0';\n containerStyle.overflow = 'hidden';\n var container = options.cy.container();\n container.appendChild(r.data.canvasContainer);\n container.style[tapHlOffAttr] = tapHlOffStyle;\n var styleMap = {\n '-webkit-user-select': 'none',\n '-moz-user-select': '-moz-none',\n 'user-select': 'none',\n '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',\n 'outline-style': 'none'\n };\n if (ms()) {\n styleMap['-ms-touch-action'] = 'none';\n styleMap['touch-action'] = 'none';\n }\n for (var i = 0; i < CRp.CANVAS_LAYERS; i++) {\n var canvas = r.data.canvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef\n r.data.contexts[i] = canvas.getContext('2d');\n Object.keys(styleMap).forEach(function (k) {\n canvas.style[k] = styleMap[k];\n });\n canvas.style.position = 'absolute';\n canvas.setAttribute('data-id', 'layer' + i);\n canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i);\n r.data.canvasContainer.appendChild(canvas);\n r.data.canvasNeedsRedraw[i] = false;\n }\n r.data.topCanvas = r.data.canvases[0];\n r.data.canvases[CRp.NODE].setAttribute('data-id', 'layer' + CRp.NODE + '-node');\n r.data.canvases[CRp.SELECT_BOX].setAttribute('data-id', 'layer' + CRp.SELECT_BOX + '-selectbox');\n r.data.canvases[CRp.DRAG].setAttribute('data-id', 'layer' + CRp.DRAG + '-drag');\n for (var i = 0; i < CRp.BUFFER_COUNT; i++) {\n r.data.bufferCanvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef\n r.data.bufferContexts[i] = r.data.bufferCanvases[i].getContext('2d');\n r.data.bufferCanvases[i].style.position = 'absolute';\n r.data.bufferCanvases[i].setAttribute('data-id', 'buffer' + i);\n r.data.bufferCanvases[i].style.zIndex = String(-i - 1);\n r.data.bufferCanvases[i].style.visibility = 'hidden';\n //r.data.canvasContainer.appendChild(r.data.bufferCanvases[i]);\n }\n\n r.pathsEnabled = true;\n var emptyBb = makeBoundingBox();\n var getBoxCenter = function getBoxCenter(bb) {\n return {\n x: (bb.x1 + bb.x2) / 2,\n y: (bb.y1 + bb.y2) / 2\n };\n };\n var getCenterOffset = function getCenterOffset(bb) {\n return {\n x: -bb.w / 2,\n y: -bb.h / 2\n };\n };\n var backgroundTimestampHasChanged = function backgroundTimestampHasChanged(ele) {\n var _p = ele[0]._private;\n var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;\n return !same;\n };\n var getStyleKey = function getStyleKey(ele) {\n return ele[0]._private.nodeKey;\n };\n var getLabelKey = function getLabelKey(ele) {\n return ele[0]._private.labelStyleKey;\n };\n var getSourceLabelKey = function getSourceLabelKey(ele) {\n return ele[0]._private.sourceLabelStyleKey;\n };\n var getTargetLabelKey = function getTargetLabelKey(ele) {\n return ele[0]._private.targetLabelStyleKey;\n };\n var drawElement = function drawElement(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElement(context, ele, bb, false, false, useEleOpacity);\n };\n var drawLabel = function drawLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'main', useEleOpacity);\n };\n var drawSourceLabel = function drawSourceLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'source', useEleOpacity);\n };\n var drawTargetLabel = function drawTargetLabel(context, ele, bb, scaledLabelShown, useEleOpacity) {\n return r.drawElementText(context, ele, bb, scaledLabelShown, 'target', useEleOpacity);\n };\n var getElementBox = function getElementBox(ele) {\n ele.boundingBox();\n return ele[0]._private.bodyBounds;\n };\n var getLabelBox = function getLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.main || emptyBb;\n };\n var getSourceLabelBox = function getSourceLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.source || emptyBb;\n };\n var getTargetLabelBox = function getTargetLabelBox(ele) {\n ele.boundingBox();\n return ele[0]._private.labelBounds.target || emptyBb;\n };\n var isLabelVisibleAtScale = function isLabelVisibleAtScale(ele, scaledLabelShown) {\n return scaledLabelShown;\n };\n var getElementRotationPoint = function getElementRotationPoint(ele) {\n return getBoxCenter(getElementBox(ele));\n };\n var addTextMargin = function addTextMargin(prefix, pt, ele) {\n var pre = prefix ? prefix + '-' : '';\n return {\n x: pt.x + ele.pstyle(pre + 'text-margin-x').pfValue,\n y: pt.y + ele.pstyle(pre + 'text-margin-y').pfValue\n };\n };\n var getRsPt = function getRsPt(ele, x, y) {\n var rs = ele[0]._private.rscratch;\n return {\n x: rs[x],\n y: rs[y]\n };\n };\n var getLabelRotationPoint = function getLabelRotationPoint(ele) {\n return addTextMargin('', getRsPt(ele, 'labelX', 'labelY'), ele);\n };\n var getSourceLabelRotationPoint = function getSourceLabelRotationPoint(ele) {\n return addTextMargin('source', getRsPt(ele, 'sourceLabelX', 'sourceLabelY'), ele);\n };\n var getTargetLabelRotationPoint = function getTargetLabelRotationPoint(ele) {\n return addTextMargin('target', getRsPt(ele, 'targetLabelX', 'targetLabelY'), ele);\n };\n var getElementRotationOffset = function getElementRotationOffset(ele) {\n return getCenterOffset(getElementBox(ele));\n };\n var getSourceLabelRotationOffset = function getSourceLabelRotationOffset(ele) {\n return getCenterOffset(getSourceLabelBox(ele));\n };\n var getTargetLabelRotationOffset = function getTargetLabelRotationOffset(ele) {\n return getCenterOffset(getTargetLabelBox(ele));\n };\n var getLabelRotationOffset = function getLabelRotationOffset(ele) {\n var bb = getLabelBox(ele);\n var p = getCenterOffset(getLabelBox(ele));\n if (ele.isNode()) {\n switch (ele.pstyle('text-halign').value) {\n case 'left':\n p.x = -bb.w;\n break;\n case 'right':\n p.x = 0;\n break;\n }\n switch (ele.pstyle('text-valign').value) {\n case 'top':\n p.y = -bb.h;\n break;\n case 'bottom':\n p.y = 0;\n break;\n }\n }\n return p;\n };\n var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, {\n getKey: getStyleKey,\n doesEleInvalidateKey: backgroundTimestampHasChanged,\n drawElement: drawElement,\n getBoundingBox: getElementBox,\n getRotationPoint: getElementRotationPoint,\n getRotationOffset: getElementRotationOffset,\n allowEdgeTxrCaching: false,\n allowParentTxrCaching: false\n });\n var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, {\n getKey: getLabelKey,\n drawElement: drawLabel,\n getBoundingBox: getLabelBox,\n getRotationPoint: getLabelRotationPoint,\n getRotationOffset: getLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, {\n getKey: getSourceLabelKey,\n drawElement: drawSourceLabel,\n getBoundingBox: getSourceLabelBox,\n getRotationPoint: getSourceLabelRotationPoint,\n getRotationOffset: getSourceLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, {\n getKey: getTargetLabelKey,\n drawElement: drawTargetLabel,\n getBoundingBox: getTargetLabelBox,\n getRotationPoint: getTargetLabelRotationPoint,\n getRotationOffset: getTargetLabelRotationOffset,\n isVisible: isLabelVisibleAtScale\n });\n var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r);\n r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) {\n // each cache should check for sub-key diff to see that the update affects that cache particularly\n eleTxrCache.invalidateElements(eles);\n lblTxrCache.invalidateElements(eles);\n slbTxrCache.invalidateElements(eles);\n tlbTxrCache.invalidateElements(eles);\n\n // any change invalidates the layers\n lyrTxrCache.invalidateElements(eles);\n\n // update the old bg timestamp so diffs can be done in the ele txr caches\n for (var _i = 0; _i < eles.length; _i++) {\n var _p = eles[_i]._private;\n _p.oldBackgroundTimestamp = _p.backgroundTimestamp;\n }\n });\n var refineInLayers = function refineInLayers(reqs) {\n for (var i = 0; i < reqs.length; i++) {\n lyrTxrCache.enqueueElementRefinement(reqs[i].ele);\n }\n };\n eleTxrCache.onDequeue(refineInLayers);\n lblTxrCache.onDequeue(refineInLayers);\n slbTxrCache.onDequeue(refineInLayers);\n tlbTxrCache.onDequeue(refineInLayers);\n }\n CRp.redrawHint = function (group, bool) {\n var r = this;\n switch (group) {\n case 'eles':\n r.data.canvasNeedsRedraw[CRp.NODE] = bool;\n break;\n case 'drag':\n r.data.canvasNeedsRedraw[CRp.DRAG] = bool;\n break;\n case 'select':\n r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool;\n break;\n }\n };\n\n // whether to use Path2D caching for drawing\n var pathsImpld = typeof Path2D !== 'undefined';\n CRp.path2dEnabled = function (on) {\n if (on === undefined) {\n return this.pathsEnabled;\n }\n this.pathsEnabled = on ? true : false;\n };\n CRp.usePaths = function () {\n return pathsImpld && this.pathsEnabled;\n };\n CRp.setImgSmoothing = function (context, bool) {\n if (context.imageSmoothingEnabled != null) {\n context.imageSmoothingEnabled = bool;\n } else {\n context.webkitImageSmoothingEnabled = bool;\n context.mozImageSmoothingEnabled = bool;\n context.msImageSmoothingEnabled = bool;\n }\n };\n CRp.getImgSmoothing = function (context) {\n if (context.imageSmoothingEnabled != null) {\n return context.imageSmoothingEnabled;\n } else {\n return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;\n }\n };\n CRp.makeOffscreenCanvas = function (width, height) {\n var canvas;\n if ((typeof OffscreenCanvas === \"undefined\" ? \"undefined\" : _typeof(OffscreenCanvas)) !== (\"undefined\" )) {\n canvas = new OffscreenCanvas(width, height);\n } else {\n canvas = document.createElement('canvas'); // eslint-disable-line no-undef\n canvas.width = width;\n canvas.height = height;\n }\n return canvas;\n };\n [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function (props) {\n extend(CRp, props);\n });\n\n var renderer = [{\n name: 'null',\n impl: NullRenderer\n }, {\n name: 'base',\n impl: BR\n }, {\n name: 'canvas',\n impl: CR\n }];\n\n var incExts = [{\n type: 'layout',\n extensions: layout\n }, {\n type: 'renderer',\n extensions: renderer\n }];\n\n // registered extensions to cytoscape, indexed by name\n var extensions = {};\n\n // registered modules for extensions, indexed by name\n var modules = {};\n function setExtension(type, name, registrant) {\n var ext = registrant;\n var overrideErr = function overrideErr(field) {\n warn('Can not register `' + name + '` for `' + type + '` since `' + field + '` already exists in the prototype and can not be overridden');\n };\n if (type === 'core') {\n if (Core.prototype[name]) {\n return overrideErr(name);\n } else {\n Core.prototype[name] = registrant;\n }\n } else if (type === 'collection') {\n if (Collection.prototype[name]) {\n return overrideErr(name);\n } else {\n Collection.prototype[name] = registrant;\n }\n } else if (type === 'layout') {\n // fill in missing layout functions in the prototype\n\n var Layout = function Layout(options) {\n this.options = options;\n registrant.call(this, options);\n\n // make sure layout has _private for use w/ std apis like .on()\n if (!plainObject(this._private)) {\n this._private = {};\n }\n this._private.cy = options.cy;\n this._private.listeners = [];\n this.createEmitter();\n };\n var layoutProto = Layout.prototype = Object.create(registrant.prototype);\n var optLayoutFns = [];\n for (var i = 0; i < optLayoutFns.length; i++) {\n var fnName = optLayoutFns[i];\n layoutProto[fnName] = layoutProto[fnName] || function () {\n return this;\n };\n }\n\n // either .start() or .run() is defined, so autogen the other\n if (layoutProto.start && !layoutProto.run) {\n layoutProto.run = function () {\n this.start();\n return this;\n };\n } else if (!layoutProto.start && layoutProto.run) {\n layoutProto.start = function () {\n this.run();\n return this;\n };\n }\n var regStop = registrant.prototype.stop;\n layoutProto.stop = function () {\n var opts = this.options;\n if (opts && opts.animate) {\n var anis = this.animations;\n if (anis) {\n for (var _i = 0; _i < anis.length; _i++) {\n anis[_i].stop();\n }\n }\n }\n if (regStop) {\n regStop.call(this);\n } else {\n this.emit('layoutstop');\n }\n return this;\n };\n if (!layoutProto.destroy) {\n layoutProto.destroy = function () {\n return this;\n };\n }\n layoutProto.cy = function () {\n return this._private.cy;\n };\n var getCy = function getCy(layout) {\n return layout._private.cy;\n };\n var emitterOpts = {\n addEventFields: function addEventFields(layout, evt) {\n evt.layout = layout;\n evt.cy = getCy(layout);\n evt.target = layout;\n },\n bubble: function bubble() {\n return true;\n },\n parent: function parent(layout) {\n return getCy(layout);\n }\n };\n extend(layoutProto, {\n createEmitter: function createEmitter() {\n this._private.emitter = new Emitter(emitterOpts, this);\n return this;\n },\n emitter: function emitter() {\n return this._private.emitter;\n },\n on: function on(evt, cb) {\n this.emitter().on(evt, cb);\n return this;\n },\n one: function one(evt, cb) {\n this.emitter().one(evt, cb);\n return this;\n },\n once: function once(evt, cb) {\n this.emitter().one(evt, cb);\n return this;\n },\n removeListener: function removeListener(evt, cb) {\n this.emitter().removeListener(evt, cb);\n return this;\n },\n removeAllListeners: function removeAllListeners() {\n this.emitter().removeAllListeners();\n return this;\n },\n emit: function emit(evt, params) {\n this.emitter().emit(evt, params);\n return this;\n }\n });\n define.eventAliasesOn(layoutProto);\n ext = Layout; // replace with our wrapped layout\n } else if (type === 'renderer' && name !== 'null' && name !== 'base') {\n // user registered renderers inherit from base\n\n var BaseRenderer = getExtension('renderer', 'base');\n var bProto = BaseRenderer.prototype;\n var RegistrantRenderer = registrant;\n var rProto = registrant.prototype;\n var Renderer = function Renderer() {\n BaseRenderer.apply(this, arguments);\n RegistrantRenderer.apply(this, arguments);\n };\n var proto = Renderer.prototype;\n for (var pName in bProto) {\n var pVal = bProto[pName];\n var existsInR = rProto[pName] != null;\n if (existsInR) {\n return overrideErr(pName);\n }\n proto[pName] = pVal; // take impl from base\n }\n\n for (var _pName in rProto) {\n proto[_pName] = rProto[_pName]; // take impl from registrant\n }\n\n bProto.clientFunctions.forEach(function (name) {\n proto[name] = proto[name] || function () {\n error('Renderer does not implement `renderer.' + name + '()` on its prototype');\n };\n });\n ext = Renderer;\n } else if (type === '__proto__' || type === 'constructor' || type === 'prototype') {\n // to avoid potential prototype pollution\n return error(type + ' is an illegal type to be registered, possibly lead to prototype pollutions');\n }\n return setMap({\n map: extensions,\n keys: [type, name],\n value: ext\n });\n }\n function getExtension(type, name) {\n return getMap({\n map: extensions,\n keys: [type, name]\n });\n }\n function setModule(type, name, moduleType, moduleName, registrant) {\n return setMap({\n map: modules,\n keys: [type, name, moduleType, moduleName],\n value: registrant\n });\n }\n function getModule(type, name, moduleType, moduleName) {\n return getMap({\n map: modules,\n keys: [type, name, moduleType, moduleName]\n });\n }\n var extension = function extension() {\n // e.g. extension('renderer', 'svg')\n if (arguments.length === 2) {\n return getExtension.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', { ... })\n else if (arguments.length === 3) {\n return setExtension.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse')\n else if (arguments.length === 4) {\n return getModule.apply(null, arguments);\n }\n\n // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse', { ... })\n else if (arguments.length === 5) {\n return setModule.apply(null, arguments);\n } else {\n error('Invalid extension access syntax');\n }\n };\n\n // allows a core instance to access extensions internally\n Core.prototype.extension = extension;\n\n // included extensions\n incExts.forEach(function (group) {\n group.extensions.forEach(function (ext) {\n setExtension(group.type, ext.name, ext.impl);\n });\n });\n\n // a dummy stylesheet object that doesn't need a reference to the core\n // (useful for init)\n var Stylesheet = function Stylesheet() {\n if (!(this instanceof Stylesheet)) {\n return new Stylesheet();\n }\n this.length = 0;\n };\n var sheetfn = Stylesheet.prototype;\n sheetfn.instanceString = function () {\n return 'stylesheet';\n };\n\n // just store the selector to be parsed later\n sheetfn.selector = function (selector) {\n var i = this.length++;\n this[i] = {\n selector: selector,\n properties: []\n };\n return this; // chaining\n };\n\n // just store the property to be parsed later\n sheetfn.css = function (name, value) {\n var i = this.length - 1;\n if (string(name)) {\n this[i].properties.push({\n name: name,\n value: value\n });\n } else if (plainObject(name)) {\n var map = name;\n var propNames = Object.keys(map);\n for (var j = 0; j < propNames.length; j++) {\n var key = propNames[j];\n var mapVal = map[key];\n if (mapVal == null) {\n continue;\n }\n var prop = Style.properties[key] || Style.properties[dash2camel(key)];\n if (prop == null) {\n continue;\n }\n var _name = prop.name;\n var _value = mapVal;\n this[i].properties.push({\n name: _name,\n value: _value\n });\n }\n }\n return this; // chaining\n };\n\n sheetfn.style = sheetfn.css;\n\n // generate a real style object from the dummy stylesheet\n sheetfn.generateStyle = function (cy) {\n var style = new Style(cy);\n return this.appendToStyle(style);\n };\n\n // append a dummy stylesheet object on a real style object\n sheetfn.appendToStyle = function (style) {\n for (var i = 0; i < this.length; i++) {\n var context = this[i];\n var selector = context.selector;\n var props = context.properties;\n style.selector(selector); // apply selector\n\n for (var j = 0; j < props.length; j++) {\n var prop = props[j];\n style.css(prop.name, prop.value); // apply property\n }\n }\n\n return style;\n };\n\n var version = \"3.28.1\";\n\n var cytoscape = function cytoscape(options) {\n // if no options specified, use default\n if (options === undefined) {\n options = {};\n }\n\n // create instance\n if (plainObject(options)) {\n return new Core(options);\n }\n\n // allow for registration of extensions\n else if (string(options)) {\n return extension.apply(extension, arguments);\n }\n };\n\n // e.g. cytoscape.use( require('cytoscape-foo'), bar )\n cytoscape.use = function (ext) {\n var args = Array.prototype.slice.call(arguments, 1); // args to pass to ext\n\n args.unshift(cytoscape); // cytoscape is first arg to ext\n\n ext.apply(null, args);\n return this;\n };\n cytoscape.warnings = function (bool) {\n return warnings(bool);\n };\n\n // replaced by build system\n cytoscape.version = version;\n\n // expose public apis (mostly for extensions)\n cytoscape.stylesheet = cytoscape.Stylesheet = Stylesheet;\n\n return cytoscape;\n\n}));\n", "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"layoutBase\"] = factory();\n\telse\n\t\troot[\"layoutBase\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 26);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LayoutConstants() {}\n\n/**\r\n * Layout Quality: 0:draft, 1:default, 2:proof\r\n */\nLayoutConstants.QUALITY = 1;\n\n/**\r\n * Default parameters\r\n */\nLayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;\nLayoutConstants.DEFAULT_INCREMENTAL = false;\nLayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;\nLayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;\nLayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;\nLayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;\n\n// -----------------------------------------------------------------------------\n// Section: General other constants\n// -----------------------------------------------------------------------------\n/*\r\n * Margins of a graph to be applied on bouding rectangle of its contents. We\r\n * assume margins on all four sides to be uniform.\r\n */\nLayoutConstants.DEFAULT_GRAPH_MARGIN = 15;\n\n/*\r\n * Whether to consider labels in node dimensions or not\r\n */\nLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_SIZE = 40;\n\n/*\r\n * Default dimension of a non-compound node.\r\n */\nLayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;\n\n/*\r\n * Empty compound node size. When a compound node is empty, its both\r\n * dimensions should be of this value.\r\n */\nLayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;\n\n/*\r\n * Minimum length that an edge should take during layout\r\n */\nLayoutConstants.MIN_EDGE_LENGTH = 1;\n\n/*\r\n * World boundaries that layout operates on\r\n */\nLayoutConstants.WORLD_BOUNDARY = 1000000;\n\n/*\r\n * World boundaries that random positioning can be performed with\r\n */\nLayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000;\n\n/*\r\n * Coordinates of the world center\r\n */\nLayoutConstants.WORLD_CENTER_X = 1200;\nLayoutConstants.WORLD_CENTER_Y = 900;\n\nmodule.exports = LayoutConstants;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction LEdge(source, target, vEdge) {\n LGraphObject.call(this, vEdge);\n\n this.isOverlapingSourceAndTarget = false;\n this.vGraphObject = vEdge;\n this.bendpoints = [];\n this.source = source;\n this.target = target;\n}\n\nLEdge.prototype = Object.create(LGraphObject.prototype);\n\nfor (var prop in LGraphObject) {\n LEdge[prop] = LGraphObject[prop];\n}\n\nLEdge.prototype.getSource = function () {\n return this.source;\n};\n\nLEdge.prototype.getTarget = function () {\n return this.target;\n};\n\nLEdge.prototype.isInterGraph = function () {\n return this.isInterGraph;\n};\n\nLEdge.prototype.getLength = function () {\n return this.length;\n};\n\nLEdge.prototype.isOverlapingSourceAndTarget = function () {\n return this.isOverlapingSourceAndTarget;\n};\n\nLEdge.prototype.getBendpoints = function () {\n return this.bendpoints;\n};\n\nLEdge.prototype.getLca = function () {\n return this.lca;\n};\n\nLEdge.prototype.getSourceInLca = function () {\n return this.sourceInLca;\n};\n\nLEdge.prototype.getTargetInLca = function () {\n return this.targetInLca;\n};\n\nLEdge.prototype.getOtherEnd = function (node) {\n if (this.source === node) {\n return this.target;\n } else if (this.target === node) {\n return this.source;\n } else {\n throw \"Node is not incident with this edge\";\n }\n};\n\nLEdge.prototype.getOtherEndInGraph = function (node, graph) {\n var otherEnd = this.getOtherEnd(node);\n var root = graph.getGraphManager().getRoot();\n\n while (true) {\n if (otherEnd.getOwner() == graph) {\n return otherEnd;\n }\n\n if (otherEnd.getOwner() == root) {\n break;\n }\n\n otherEnd = otherEnd.getOwner().getParent();\n }\n\n return null;\n};\n\nLEdge.prototype.updateLength = function () {\n var clipPointCoordinates = new Array(4);\n\n this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);\n\n if (!this.isOverlapingSourceAndTarget) {\n this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];\n this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n }\n};\n\nLEdge.prototype.updateLengthSimple = function () {\n this.lengthX = this.target.getCenterX() - this.source.getCenterX();\n this.lengthY = this.target.getCenterY() - this.source.getCenterY();\n\n if (Math.abs(this.lengthX) < 1.0) {\n this.lengthX = IMath.sign(this.lengthX);\n }\n\n if (Math.abs(this.lengthY) < 1.0) {\n this.lengthY = IMath.sign(this.lengthY);\n }\n\n this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);\n};\n\nmodule.exports = LEdge;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction LGraphObject(vGraphObject) {\n this.vGraphObject = vGraphObject;\n}\n\nmodule.exports = LGraphObject;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar RectangleD = __webpack_require__(13);\nvar LayoutConstants = __webpack_require__(0);\nvar RandomSeed = __webpack_require__(16);\nvar PointD = __webpack_require__(4);\n\nfunction LNode(gm, loc, size, vNode) {\n //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode)\n if (size == null && vNode == null) {\n vNode = loc;\n }\n\n LGraphObject.call(this, vNode);\n\n //Alternative constructor 2 : LNode(Layout layout, Object vNode)\n if (gm.graphManager != null) gm = gm.graphManager;\n\n this.estimatedSize = Integer.MIN_VALUE;\n this.inclusionTreeDepth = Integer.MAX_VALUE;\n this.vGraphObject = vNode;\n this.edges = [];\n this.graphManager = gm;\n\n if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD();\n}\n\nLNode.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LNode[prop] = LGraphObject[prop];\n}\n\nLNode.prototype.getEdges = function () {\n return this.edges;\n};\n\nLNode.prototype.getChild = function () {\n return this.child;\n};\n\nLNode.prototype.getOwner = function () {\n // if (this.owner != null) {\n // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) {\n // throw \"assert failed\";\n // }\n // }\n\n return this.owner;\n};\n\nLNode.prototype.getWidth = function () {\n return this.rect.width;\n};\n\nLNode.prototype.setWidth = function (width) {\n this.rect.width = width;\n};\n\nLNode.prototype.getHeight = function () {\n return this.rect.height;\n};\n\nLNode.prototype.setHeight = function (height) {\n this.rect.height = height;\n};\n\nLNode.prototype.getCenterX = function () {\n return this.rect.x + this.rect.width / 2;\n};\n\nLNode.prototype.getCenterY = function () {\n return this.rect.y + this.rect.height / 2;\n};\n\nLNode.prototype.getCenter = function () {\n return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);\n};\n\nLNode.prototype.getLocation = function () {\n return new PointD(this.rect.x, this.rect.y);\n};\n\nLNode.prototype.getRect = function () {\n return this.rect;\n};\n\nLNode.prototype.getDiagonal = function () {\n return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);\n};\n\n/**\n * This method returns half the diagonal length of this node.\n */\nLNode.prototype.getHalfTheDiagonal = function () {\n return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;\n};\n\nLNode.prototype.setRect = function (upperLeft, dimension) {\n this.rect.x = upperLeft.x;\n this.rect.y = upperLeft.y;\n this.rect.width = dimension.width;\n this.rect.height = dimension.height;\n};\n\nLNode.prototype.setCenter = function (cx, cy) {\n this.rect.x = cx - this.rect.width / 2;\n this.rect.y = cy - this.rect.height / 2;\n};\n\nLNode.prototype.setLocation = function (x, y) {\n this.rect.x = x;\n this.rect.y = y;\n};\n\nLNode.prototype.moveBy = function (dx, dy) {\n this.rect.x += dx;\n this.rect.y += dy;\n};\n\nLNode.prototype.getEdgeListToNode = function (to) {\n var edgeList = [];\n var edge;\n var self = this;\n\n self.edges.forEach(function (edge) {\n\n if (edge.target == to) {\n if (edge.source != self) throw \"Incorrect edge source!\";\n\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getEdgesBetween = function (other) {\n var edgeList = [];\n var edge;\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (!(edge.source == self || edge.target == self)) throw \"Incorrect edge source and/or target\";\n\n if (edge.target == other || edge.source == other) {\n edgeList.push(edge);\n }\n });\n\n return edgeList;\n};\n\nLNode.prototype.getNeighborsList = function () {\n var neighbors = new Set();\n\n var self = this;\n self.edges.forEach(function (edge) {\n\n if (edge.source == self) {\n neighbors.add(edge.target);\n } else {\n if (edge.target != self) {\n throw \"Incorrect incidency!\";\n }\n\n neighbors.add(edge.source);\n }\n });\n\n return neighbors;\n};\n\nLNode.prototype.withChildren = function () {\n var withNeighborsList = new Set();\n var childNode;\n var children;\n\n withNeighborsList.add(this);\n\n if (this.child != null) {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n children = childNode.withChildren();\n children.forEach(function (node) {\n withNeighborsList.add(node);\n });\n }\n }\n\n return withNeighborsList;\n};\n\nLNode.prototype.getNoOfChildren = function () {\n var noOfChildren = 0;\n var childNode;\n\n if (this.child == null) {\n noOfChildren = 1;\n } else {\n var nodes = this.child.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n childNode = nodes[i];\n\n noOfChildren += childNode.getNoOfChildren();\n }\n }\n\n if (noOfChildren == 0) {\n noOfChildren = 1;\n }\n return noOfChildren;\n};\n\nLNode.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLNode.prototype.calcEstimatedSize = function () {\n if (this.child == null) {\n return this.estimatedSize = (this.rect.width + this.rect.height) / 2;\n } else {\n this.estimatedSize = this.child.calcEstimatedSize();\n this.rect.width = this.estimatedSize;\n this.rect.height = this.estimatedSize;\n\n return this.estimatedSize;\n }\n};\n\nLNode.prototype.scatter = function () {\n var randomCenterX;\n var randomCenterY;\n\n var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;\n\n var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;\n var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;\n randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;\n\n this.rect.x = randomCenterX;\n this.rect.y = randomCenterY;\n};\n\nLNode.prototype.updateBounds = function () {\n if (this.getChild() == null) {\n throw \"assert failed\";\n }\n if (this.getChild().getNodes().length != 0) {\n // wrap the children nodes by re-arranging the boundaries\n var childGraph = this.getChild();\n childGraph.updateBounds(true);\n\n this.rect.x = childGraph.getLeft();\n this.rect.y = childGraph.getTop();\n\n this.setWidth(childGraph.getRight() - childGraph.getLeft());\n this.setHeight(childGraph.getBottom() - childGraph.getTop());\n\n // Update compound bounds considering its label properties \n if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {\n\n var width = childGraph.getRight() - childGraph.getLeft();\n var height = childGraph.getBottom() - childGraph.getTop();\n\n if (this.labelWidth > width) {\n this.rect.x -= (this.labelWidth - width) / 2;\n this.setWidth(this.labelWidth);\n }\n\n if (this.labelHeight > height) {\n if (this.labelPos == \"center\") {\n this.rect.y -= (this.labelHeight - height) / 2;\n } else if (this.labelPos == \"top\") {\n this.rect.y -= this.labelHeight - height;\n }\n this.setHeight(this.labelHeight);\n }\n }\n }\n};\n\nLNode.prototype.getInclusionTreeDepth = function () {\n if (this.inclusionTreeDepth == Integer.MAX_VALUE) {\n throw \"assert failed\";\n }\n return this.inclusionTreeDepth;\n};\n\nLNode.prototype.transform = function (trans) {\n var left = this.rect.x;\n\n if (left > LayoutConstants.WORLD_BOUNDARY) {\n left = LayoutConstants.WORLD_BOUNDARY;\n } else if (left < -LayoutConstants.WORLD_BOUNDARY) {\n left = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var top = this.rect.y;\n\n if (top > LayoutConstants.WORLD_BOUNDARY) {\n top = LayoutConstants.WORLD_BOUNDARY;\n } else if (top < -LayoutConstants.WORLD_BOUNDARY) {\n top = -LayoutConstants.WORLD_BOUNDARY;\n }\n\n var leftTop = new PointD(left, top);\n var vLeftTop = trans.inverseTransformPoint(leftTop);\n\n this.setLocation(vLeftTop.x, vLeftTop.y);\n};\n\nLNode.prototype.getLeft = function () {\n return this.rect.x;\n};\n\nLNode.prototype.getRight = function () {\n return this.rect.x + this.rect.width;\n};\n\nLNode.prototype.getTop = function () {\n return this.rect.y;\n};\n\nLNode.prototype.getBottom = function () {\n return this.rect.y + this.rect.height;\n};\n\nLNode.prototype.getParent = function () {\n if (this.owner == null) {\n return null;\n }\n\n return this.owner.getParent();\n};\n\nmodule.exports = LNode;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction PointD(x, y) {\n if (x == null && y == null) {\n this.x = 0;\n this.y = 0;\n } else {\n this.x = x;\n this.y = y;\n }\n}\n\nPointD.prototype.getX = function () {\n return this.x;\n};\n\nPointD.prototype.getY = function () {\n return this.y;\n};\n\nPointD.prototype.setX = function (x) {\n this.x = x;\n};\n\nPointD.prototype.setY = function (y) {\n this.y = y;\n};\n\nPointD.prototype.getDifference = function (pt) {\n return new DimensionD(this.x - pt.x, this.y - pt.y);\n};\n\nPointD.prototype.getCopy = function () {\n return new PointD(this.x, this.y);\n};\n\nPointD.prototype.translate = function (dim) {\n this.x += dim.width;\n this.y += dim.height;\n return this;\n};\n\nmodule.exports = PointD;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphObject = __webpack_require__(2);\nvar Integer = __webpack_require__(10);\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(6);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar RectangleD = __webpack_require__(13);\nvar Point = __webpack_require__(12);\nvar LinkedList = __webpack_require__(11);\n\nfunction LGraph(parent, obj2, vGraph) {\n LGraphObject.call(this, vGraph);\n this.estimatedSize = Integer.MIN_VALUE;\n this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;\n this.edges = [];\n this.nodes = [];\n this.isConnected = false;\n this.parent = parent;\n\n if (obj2 != null && obj2 instanceof LGraphManager) {\n this.graphManager = obj2;\n } else if (obj2 != null && obj2 instanceof Layout) {\n this.graphManager = obj2.graphManager;\n }\n}\n\nLGraph.prototype = Object.create(LGraphObject.prototype);\nfor (var prop in LGraphObject) {\n LGraph[prop] = LGraphObject[prop];\n}\n\nLGraph.prototype.getNodes = function () {\n return this.nodes;\n};\n\nLGraph.prototype.getEdges = function () {\n return this.edges;\n};\n\nLGraph.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLGraph.prototype.getParent = function () {\n return this.parent;\n};\n\nLGraph.prototype.getLeft = function () {\n return this.left;\n};\n\nLGraph.prototype.getRight = function () {\n return this.right;\n};\n\nLGraph.prototype.getTop = function () {\n return this.top;\n};\n\nLGraph.prototype.getBottom = function () {\n return this.bottom;\n};\n\nLGraph.prototype.isConnected = function () {\n return this.isConnected;\n};\n\nLGraph.prototype.add = function (obj1, sourceNode, targetNode) {\n if (sourceNode == null && targetNode == null) {\n var newNode = obj1;\n if (this.graphManager == null) {\n throw \"Graph has no graph mgr!\";\n }\n if (this.getNodes().indexOf(newNode) > -1) {\n throw \"Node already in graph!\";\n }\n newNode.owner = this;\n this.getNodes().push(newNode);\n\n return newNode;\n } else {\n var newEdge = obj1;\n if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {\n throw \"Source or target not in graph!\";\n }\n\n if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {\n throw \"Both owners must be this graph!\";\n }\n\n if (sourceNode.owner != targetNode.owner) {\n return null;\n }\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // set as intra-graph edge\n newEdge.isInterGraph = false;\n\n // add to graph edge list\n this.getEdges().push(newEdge);\n\n // add to incidency lists\n sourceNode.edges.push(newEdge);\n\n if (targetNode != sourceNode) {\n targetNode.edges.push(newEdge);\n }\n\n return newEdge;\n }\n};\n\nLGraph.prototype.remove = function (obj) {\n var node = obj;\n if (obj instanceof LNode) {\n if (node == null) {\n throw \"Node is null!\";\n }\n if (!(node.owner != null && node.owner == this)) {\n throw \"Owner graph is invalid!\";\n }\n if (this.graphManager == null) {\n throw \"Owner graph manager is invalid!\";\n }\n // remove incident edges first (make a copy to do it safely)\n var edgesToBeRemoved = node.edges.slice();\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n\n if (edge.isInterGraph) {\n this.graphManager.remove(edge);\n } else {\n edge.source.owner.remove(edge);\n }\n }\n\n // now the node itself\n var index = this.nodes.indexOf(node);\n if (index == -1) {\n throw \"Node not in owner node list!\";\n }\n\n this.nodes.splice(index, 1);\n } else if (obj instanceof LEdge) {\n var edge = obj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {\n throw \"Source and/or target owner is invalid!\";\n }\n\n var sourceIndex = edge.source.edges.indexOf(edge);\n var targetIndex = edge.target.edges.indexOf(edge);\n if (!(sourceIndex > -1 && targetIndex > -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n edge.source.edges.splice(sourceIndex, 1);\n\n if (edge.target != edge.source) {\n edge.target.edges.splice(targetIndex, 1);\n }\n\n var index = edge.source.owner.getEdges().indexOf(edge);\n if (index == -1) {\n throw \"Not in owner's edge list!\";\n }\n\n edge.source.owner.getEdges().splice(index, 1);\n }\n};\n\nLGraph.prototype.updateLeftTop = function () {\n var top = Integer.MAX_VALUE;\n var left = Integer.MAX_VALUE;\n var nodeTop;\n var nodeLeft;\n var margin;\n\n var nodes = this.getNodes();\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeTop = lNode.getTop();\n nodeLeft = lNode.getLeft();\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n }\n\n // Do we have any nodes in this graph?\n if (top == Integer.MAX_VALUE) {\n return null;\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = left - margin;\n this.top = top - margin;\n\n // Apply the margins and return the result\n return new Point(this.left, this.top);\n};\n\nLGraph.prototype.updateBounds = function (recursive) {\n // calculate bounds\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n var margin;\n\n var nodes = this.nodes;\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n\n if (recursive && lNode.child != null) {\n lNode.updateBounds();\n }\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n if (left == Integer.MAX_VALUE) {\n this.left = this.parent.getLeft();\n this.right = this.parent.getRight();\n this.top = this.parent.getTop();\n this.bottom = this.parent.getBottom();\n }\n\n if (nodes[0].getParent().paddingLeft != undefined) {\n margin = nodes[0].getParent().paddingLeft;\n } else {\n margin = this.margin;\n }\n\n this.left = boundingRect.x - margin;\n this.right = boundingRect.x + boundingRect.width + margin;\n this.top = boundingRect.y - margin;\n this.bottom = boundingRect.y + boundingRect.height + margin;\n};\n\nLGraph.calculateBounds = function (nodes) {\n var left = Integer.MAX_VALUE;\n var right = -Integer.MAX_VALUE;\n var top = Integer.MAX_VALUE;\n var bottom = -Integer.MAX_VALUE;\n var nodeLeft;\n var nodeRight;\n var nodeTop;\n var nodeBottom;\n\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n nodeLeft = lNode.getLeft();\n nodeRight = lNode.getRight();\n nodeTop = lNode.getTop();\n nodeBottom = lNode.getBottom();\n\n if (left > nodeLeft) {\n left = nodeLeft;\n }\n\n if (right < nodeRight) {\n right = nodeRight;\n }\n\n if (top > nodeTop) {\n top = nodeTop;\n }\n\n if (bottom < nodeBottom) {\n bottom = nodeBottom;\n }\n }\n\n var boundingRect = new RectangleD(left, top, right - left, bottom - top);\n\n return boundingRect;\n};\n\nLGraph.prototype.getInclusionTreeDepth = function () {\n if (this == this.graphManager.getRoot()) {\n return 1;\n } else {\n return this.parent.getInclusionTreeDepth();\n }\n};\n\nLGraph.prototype.getEstimatedSize = function () {\n if (this.estimatedSize == Integer.MIN_VALUE) {\n throw \"assert failed\";\n }\n return this.estimatedSize;\n};\n\nLGraph.prototype.calcEstimatedSize = function () {\n var size = 0;\n var nodes = this.nodes;\n var s = nodes.length;\n\n for (var i = 0; i < s; i++) {\n var lNode = nodes[i];\n size += lNode.calcEstimatedSize();\n }\n\n if (size == 0) {\n this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;\n } else {\n this.estimatedSize = size / Math.sqrt(this.nodes.length);\n }\n\n return this.estimatedSize;\n};\n\nLGraph.prototype.updateConnected = function () {\n var self = this;\n if (this.nodes.length == 0) {\n this.isConnected = true;\n return;\n }\n\n var queue = new LinkedList();\n var visited = new Set();\n var currentNode = this.nodes[0];\n var neighborEdges;\n var currentNeighbor;\n var childrenOfNode = currentNode.withChildren();\n childrenOfNode.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n\n while (queue.length !== 0) {\n currentNode = queue.shift();\n\n // Traverse all neighbors of this node\n neighborEdges = currentNode.getEdges();\n var size = neighborEdges.length;\n for (var i = 0; i < size; i++) {\n var neighborEdge = neighborEdges[i];\n currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);\n\n // Add unvisited neighbors to the list to visit\n if (currentNeighbor != null && !visited.has(currentNeighbor)) {\n var childrenOfNeighbor = currentNeighbor.withChildren();\n\n childrenOfNeighbor.forEach(function (node) {\n queue.push(node);\n visited.add(node);\n });\n }\n }\n }\n\n this.isConnected = false;\n\n if (visited.size >= this.nodes.length) {\n var noOfVisitedInThisGraph = 0;\n\n visited.forEach(function (visitedNode) {\n if (visitedNode.owner == self) {\n noOfVisitedInThisGraph++;\n }\n });\n\n if (noOfVisitedInThisGraph == this.nodes.length) {\n this.isConnected = true;\n }\n }\n};\n\nmodule.exports = LGraph;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph;\nvar LEdge = __webpack_require__(1);\n\nfunction LGraphManager(layout) {\n LGraph = __webpack_require__(5); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now.\n this.layout = layout;\n\n this.graphs = [];\n this.edges = [];\n}\n\nLGraphManager.prototype.addRoot = function () {\n var ngraph = this.layout.newGraph();\n var nnode = this.layout.newNode(null);\n var root = this.add(ngraph, nnode);\n this.setRootGraph(root);\n return this.rootGraph;\n};\n\nLGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) {\n //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge\n if (newEdge == null && sourceNode == null && targetNode == null) {\n if (newGraph == null) {\n throw \"Graph is null!\";\n }\n if (parentNode == null) {\n throw \"Parent node is null!\";\n }\n if (this.graphs.indexOf(newGraph) > -1) {\n throw \"Graph already in this graph mgr!\";\n }\n\n this.graphs.push(newGraph);\n\n if (newGraph.parent != null) {\n throw \"Already has a parent!\";\n }\n if (parentNode.child != null) {\n throw \"Already has a child!\";\n }\n\n newGraph.parent = parentNode;\n parentNode.child = newGraph;\n\n return newGraph;\n } else {\n //change the order of the parameters\n targetNode = newEdge;\n sourceNode = parentNode;\n newEdge = newGraph;\n var sourceGraph = sourceNode.getOwner();\n var targetGraph = targetNode.getOwner();\n\n if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {\n throw \"Source not in this graph mgr!\";\n }\n if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {\n throw \"Target not in this graph mgr!\";\n }\n\n if (sourceGraph == targetGraph) {\n newEdge.isInterGraph = false;\n return sourceGraph.add(newEdge, sourceNode, targetNode);\n } else {\n newEdge.isInterGraph = true;\n\n // set source and target\n newEdge.source = sourceNode;\n newEdge.target = targetNode;\n\n // add edge to inter-graph edge list\n if (this.edges.indexOf(newEdge) > -1) {\n throw \"Edge already in inter-graph edge list!\";\n }\n\n this.edges.push(newEdge);\n\n // add edge to source and target incidency lists\n if (!(newEdge.source != null && newEdge.target != null)) {\n throw \"Edge source and/or target is null!\";\n }\n\n if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {\n throw \"Edge already in source and/or target incidency list!\";\n }\n\n newEdge.source.edges.push(newEdge);\n newEdge.target.edges.push(newEdge);\n\n return newEdge;\n }\n }\n};\n\nLGraphManager.prototype.remove = function (lObj) {\n if (lObj instanceof LGraph) {\n var graph = lObj;\n if (graph.getGraphManager() != this) {\n throw \"Graph not in this graph mgr\";\n }\n if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {\n throw \"Invalid parent node!\";\n }\n\n // first the edges (make a copy to do it safely)\n var edgesToBeRemoved = [];\n\n edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());\n\n var edge;\n var s = edgesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n edge = edgesToBeRemoved[i];\n graph.remove(edge);\n }\n\n // then the nodes (make a copy to do it safely)\n var nodesToBeRemoved = [];\n\n nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());\n\n var node;\n s = nodesToBeRemoved.length;\n for (var i = 0; i < s; i++) {\n node = nodesToBeRemoved[i];\n graph.remove(node);\n }\n\n // check if graph is the root\n if (graph == this.rootGraph) {\n this.setRootGraph(null);\n }\n\n // now remove the graph itself\n var index = this.graphs.indexOf(graph);\n this.graphs.splice(index, 1);\n\n // also reset the parent of the graph\n graph.parent = null;\n } else if (lObj instanceof LEdge) {\n edge = lObj;\n if (edge == null) {\n throw \"Edge is null!\";\n }\n if (!edge.isInterGraph) {\n throw \"Not an inter-graph edge!\";\n }\n if (!(edge.source != null && edge.target != null)) {\n throw \"Source and/or target is null!\";\n }\n\n // remove edge from source and target nodes' incidency lists\n\n if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {\n throw \"Source and/or target doesn't know this edge!\";\n }\n\n var index = edge.source.edges.indexOf(edge);\n edge.source.edges.splice(index, 1);\n index = edge.target.edges.indexOf(edge);\n edge.target.edges.splice(index, 1);\n\n // remove edge from owner graph manager's inter-graph edge list\n\n if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {\n throw \"Edge owner graph or owner graph manager is null!\";\n }\n if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {\n throw \"Not in owner graph manager's edge list!\";\n }\n\n var index = edge.source.owner.getGraphManager().edges.indexOf(edge);\n edge.source.owner.getGraphManager().edges.splice(index, 1);\n }\n};\n\nLGraphManager.prototype.updateBounds = function () {\n this.rootGraph.updateBounds(true);\n};\n\nLGraphManager.prototype.getGraphs = function () {\n return this.graphs;\n};\n\nLGraphManager.prototype.getAllNodes = function () {\n if (this.allNodes == null) {\n var nodeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < s; i++) {\n nodeList = nodeList.concat(graphs[i].getNodes());\n }\n this.allNodes = nodeList;\n }\n return this.allNodes;\n};\n\nLGraphManager.prototype.resetAllNodes = function () {\n this.allNodes = null;\n};\n\nLGraphManager.prototype.resetAllEdges = function () {\n this.allEdges = null;\n};\n\nLGraphManager.prototype.resetAllNodesToApplyGravitation = function () {\n this.allNodesToApplyGravitation = null;\n};\n\nLGraphManager.prototype.getAllEdges = function () {\n if (this.allEdges == null) {\n var edgeList = [];\n var graphs = this.getGraphs();\n var s = graphs.length;\n for (var i = 0; i < graphs.length; i++) {\n edgeList = edgeList.concat(graphs[i].getEdges());\n }\n\n edgeList = edgeList.concat(this.edges);\n\n this.allEdges = edgeList;\n }\n return this.allEdges;\n};\n\nLGraphManager.prototype.getAllNodesToApplyGravitation = function () {\n return this.allNodesToApplyGravitation;\n};\n\nLGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) {\n if (this.allNodesToApplyGravitation != null) {\n throw \"assert failed\";\n }\n\n this.allNodesToApplyGravitation = nodeList;\n};\n\nLGraphManager.prototype.getRoot = function () {\n return this.rootGraph;\n};\n\nLGraphManager.prototype.setRootGraph = function (graph) {\n if (graph.getGraphManager() != this) {\n throw \"Root not in this graph mgr!\";\n }\n\n this.rootGraph = graph;\n // root graph must have a root node associated with it for convenience\n if (graph.parent == null) {\n graph.parent = this.layout.newNode(\"Root node\");\n }\n};\n\nLGraphManager.prototype.getLayout = function () {\n return this.layout;\n};\n\nLGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) {\n if (!(firstNode != null && secondNode != null)) {\n throw \"assert failed\";\n }\n\n if (firstNode == secondNode) {\n return true;\n }\n // Is second node an ancestor of the first one?\n var ownerGraph = firstNode.getOwner();\n var parentNode;\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == secondNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n // Is first node an ancestor of the second one?\n ownerGraph = secondNode.getOwner();\n\n do {\n parentNode = ownerGraph.getParent();\n\n if (parentNode == null) {\n break;\n }\n\n if (parentNode == firstNode) {\n return true;\n }\n\n ownerGraph = parentNode.getOwner();\n if (ownerGraph == null) {\n break;\n }\n } while (true);\n\n return false;\n};\n\nLGraphManager.prototype.calcLowestCommonAncestors = function () {\n var edge;\n var sourceNode;\n var targetNode;\n var sourceAncestorGraph;\n var targetAncestorGraph;\n\n var edges = this.getAllEdges();\n var s = edges.length;\n for (var i = 0; i < s; i++) {\n edge = edges[i];\n\n sourceNode = edge.source;\n targetNode = edge.target;\n edge.lca = null;\n edge.sourceInLca = sourceNode;\n edge.targetInLca = targetNode;\n\n if (sourceNode == targetNode) {\n edge.lca = sourceNode.getOwner();\n continue;\n }\n\n sourceAncestorGraph = sourceNode.getOwner();\n\n while (edge.lca == null) {\n edge.targetInLca = targetNode;\n targetAncestorGraph = targetNode.getOwner();\n\n while (edge.lca == null) {\n if (targetAncestorGraph == sourceAncestorGraph) {\n edge.lca = targetAncestorGraph;\n break;\n }\n\n if (targetAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca != null) {\n throw \"assert failed\";\n }\n edge.targetInLca = targetAncestorGraph.getParent();\n targetAncestorGraph = edge.targetInLca.getOwner();\n }\n\n if (sourceAncestorGraph == this.rootGraph) {\n break;\n }\n\n if (edge.lca == null) {\n edge.sourceInLca = sourceAncestorGraph.getParent();\n sourceAncestorGraph = edge.sourceInLca.getOwner();\n }\n }\n\n if (edge.lca == null) {\n throw \"assert failed\";\n }\n }\n};\n\nLGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) {\n if (firstNode == secondNode) {\n return firstNode.getOwner();\n }\n var firstOwnerGraph = firstNode.getOwner();\n\n do {\n if (firstOwnerGraph == null) {\n break;\n }\n var secondOwnerGraph = secondNode.getOwner();\n\n do {\n if (secondOwnerGraph == null) {\n break;\n }\n\n if (secondOwnerGraph == firstOwnerGraph) {\n return secondOwnerGraph;\n }\n secondOwnerGraph = secondOwnerGraph.getParent().getOwner();\n } while (true);\n\n firstOwnerGraph = firstOwnerGraph.getParent().getOwner();\n } while (true);\n\n return firstOwnerGraph;\n};\n\nLGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) {\n if (graph == null && depth == null) {\n graph = this.rootGraph;\n depth = 1;\n }\n var node;\n\n var nodes = graph.getNodes();\n var s = nodes.length;\n for (var i = 0; i < s; i++) {\n node = nodes[i];\n node.inclusionTreeDepth = depth;\n\n if (node.child != null) {\n this.calcInclusionTreeDepths(node.child, depth + 1);\n }\n }\n};\n\nLGraphManager.prototype.includesInvalidEdge = function () {\n var edge;\n\n var s = this.edges.length;\n for (var i = 0; i < s; i++) {\n edge = this.edges[i];\n\n if (this.isOneAncestorOfOther(edge.source, edge.target)) {\n return true;\n }\n }\n return false;\n};\n\nmodule.exports = LGraphManager;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0);\n\nfunction FDLayoutConstants() {}\n\n//FDLayoutConstants inherits static props in LayoutConstants\nfor (var prop in LayoutConstants) {\n FDLayoutConstants[prop] = LayoutConstants[prop];\n}\n\nFDLayoutConstants.MAX_ITERATIONS = 2500;\n\nFDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;\nFDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;\nFDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0;\nFDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0;\nFDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;\nFDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;\nFDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;\nFDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;\nFDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;\nFDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;\nFDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000;\nFDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0;\nFDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;\nFDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0;\nFDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;\nFDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;\nFDLayoutConstants.MIN_EDGE_LENGTH = 1;\nFDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;\n\nmodule.exports = FDLayoutConstants;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * This class maintains a list of static geometry related utility methods.\n *\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar Point = __webpack_require__(12);\n\nfunction IGeometry() {}\n\n/**\n * This method calculates *half* the amount in x and y directions of the two\n * input rectangles needed to separate them keeping their respective\n * positioning, and returns the result in the input array. An input\n * separation buffer added to the amount in both directions. We assume that\n * the two rectangles do intersect.\n */\nIGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) {\n if (!rectA.intersects(rectB)) {\n throw \"assert failed\";\n }\n\n var directions = new Array(2);\n\n this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);\n\n overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);\n overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);\n\n // update the overlapping amounts for the following cases:\n if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {\n /* Case x.1:\n *\n * rectA\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectB\n */\n overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());\n } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {\n /* Case x.2:\n *\n * rectB\n * \t| |\n * \t| _________ |\n * \t| | | |\n * \t|________|_______|______|\n * \t\t\t | |\n * | |\n * rectA\n */\n overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());\n }\n if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {\n /* Case y.1:\n * ________ rectA\n * |\n * |\n * ______|____ rectB\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());\n } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {\n /* Case y.2:\n * ________ rectB\n * |\n * |\n * ______|____ rectA\n * | |\n * | |\n * ______|____|\n * |\n * |\n * |________\n *\n */\n overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());\n }\n\n // find slope of the line passes two centers\n var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));\n // if centers are overlapped\n if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {\n // assume the slope is 1 (45 degree)\n slope = 1.0;\n }\n\n var moveByY = slope * overlapAmount[0];\n var moveByX = overlapAmount[1] / slope;\n if (overlapAmount[0] < moveByX) {\n moveByX = overlapAmount[0];\n } else {\n moveByY = overlapAmount[1];\n }\n // return half the amount so that if each rectangle is moved by these\n // amounts in opposite directions, overlap will be resolved\n overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);\n overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);\n};\n\n/**\n * This method decides the separation direction of overlapping nodes\n *\n * if directions[0] = -1, then rectA goes left\n * if directions[0] = 1, then rectA goes right\n * if directions[1] = -1, then rectA goes up\n * if directions[1] = 1, then rectA goes down\n */\nIGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) {\n if (rectA.getCenterX() < rectB.getCenterX()) {\n directions[0] = -1;\n } else {\n directions[0] = 1;\n }\n\n if (rectA.getCenterY() < rectB.getCenterY()) {\n directions[1] = -1;\n } else {\n directions[1] = 1;\n }\n};\n\n/**\n * This method calculates the intersection (clipping) points of the two\n * input rectangles with line segment defined by the centers of these two\n * rectangles. The clipping points are saved in the input double array and\n * whether or not the two rectangles overlap is returned.\n */\nIGeometry.getIntersection2 = function (rectA, rectB, result) {\n //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB\n var p1x = rectA.getCenterX();\n var p1y = rectA.getCenterY();\n var p2x = rectB.getCenterX();\n var p2y = rectB.getCenterY();\n\n //if two rectangles intersect, then clipping points are centers\n if (rectA.intersects(rectB)) {\n result[0] = p1x;\n result[1] = p1y;\n result[2] = p2x;\n result[3] = p2y;\n return true;\n }\n //variables for rectA\n var topLeftAx = rectA.getX();\n var topLeftAy = rectA.getY();\n var topRightAx = rectA.getRight();\n var bottomLeftAx = rectA.getX();\n var bottomLeftAy = rectA.getBottom();\n var bottomRightAx = rectA.getRight();\n var halfWidthA = rectA.getWidthHalf();\n var halfHeightA = rectA.getHeightHalf();\n //variables for rectB\n var topLeftBx = rectB.getX();\n var topLeftBy = rectB.getY();\n var topRightBx = rectB.getRight();\n var bottomLeftBx = rectB.getX();\n var bottomLeftBy = rectB.getBottom();\n var bottomRightBx = rectB.getRight();\n var halfWidthB = rectB.getWidthHalf();\n var halfHeightB = rectB.getHeightHalf();\n\n //flag whether clipping points are found\n var clipPointAFound = false;\n var clipPointBFound = false;\n\n // line is vertical\n if (p1x === p2x) {\n if (p1y > p2y) {\n result[0] = p1x;\n result[1] = topLeftAy;\n result[2] = p2x;\n result[3] = bottomLeftBy;\n return false;\n } else if (p1y < p2y) {\n result[0] = p1x;\n result[1] = bottomLeftAy;\n result[2] = p2x;\n result[3] = topLeftBy;\n return false;\n } else {\n //not line, return null;\n }\n }\n // line is horizontal\n else if (p1y === p2y) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = p1y;\n result[2] = topRightBx;\n result[3] = p2y;\n return false;\n } else if (p1x < p2x) {\n result[0] = topRightAx;\n result[1] = p1y;\n result[2] = topLeftBx;\n result[3] = p2y;\n return false;\n } else {\n //not valid line, return null;\n }\n } else {\n //slopes of rectA's and rectB's diagonals\n var slopeA = rectA.height / rectA.width;\n var slopeB = rectB.height / rectB.width;\n\n //slope of line between center of rectA and center of rectB\n var slopePrime = (p2y - p1y) / (p2x - p1x);\n var cardinalDirectionA = void 0;\n var cardinalDirectionB = void 0;\n var tempPointAx = void 0;\n var tempPointAy = void 0;\n var tempPointBx = void 0;\n var tempPointBy = void 0;\n\n //determine whether clipping point is the corner of nodeA\n if (-slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = bottomLeftAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = topRightAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n }\n } else if (slopeA === slopePrime) {\n if (p1x > p2x) {\n result[0] = topLeftAx;\n result[1] = topLeftAy;\n clipPointAFound = true;\n } else {\n result[0] = bottomRightAx;\n result[1] = bottomLeftAy;\n clipPointAFound = true;\n }\n }\n\n //determine whether clipping point is the corner of nodeB\n if (-slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = bottomLeftBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = topRightBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n }\n } else if (slopeB === slopePrime) {\n if (p2x > p1x) {\n result[2] = topLeftBx;\n result[3] = topLeftBy;\n clipPointBFound = true;\n } else {\n result[2] = bottomRightBx;\n result[3] = bottomLeftBy;\n clipPointBFound = true;\n }\n }\n\n //if both clipping points are corners\n if (clipPointAFound && clipPointBFound) {\n return false;\n }\n\n //determine Cardinal Direction of rectangles\n if (p1x > p2x) {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);\n } else {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);\n }\n } else {\n if (p1y > p2y) {\n cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);\n cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);\n } else {\n cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);\n cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);\n }\n }\n //calculate clipping Point if it is not found before\n if (!clipPointAFound) {\n switch (cardinalDirectionA) {\n case 1:\n tempPointAy = topLeftAy;\n tempPointAx = p1x + -halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 2:\n tempPointAx = bottomRightAx;\n tempPointAy = p1y + halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 3:\n tempPointAy = bottomLeftAy;\n tempPointAx = p1x + halfHeightA / slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n case 4:\n tempPointAx = bottomLeftAx;\n tempPointAy = p1y + -halfWidthA * slopePrime;\n result[0] = tempPointAx;\n result[1] = tempPointAy;\n break;\n }\n }\n if (!clipPointBFound) {\n switch (cardinalDirectionB) {\n case 1:\n tempPointBy = topLeftBy;\n tempPointBx = p2x + -halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 2:\n tempPointBx = bottomRightBx;\n tempPointBy = p2y + halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 3:\n tempPointBy = bottomLeftBy;\n tempPointBx = p2x + halfHeightB / slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n case 4:\n tempPointBx = bottomLeftBx;\n tempPointBy = p2y + -halfWidthB * slopePrime;\n result[2] = tempPointBx;\n result[3] = tempPointBy;\n break;\n }\n }\n }\n return false;\n};\n\n/**\n * This method returns in which cardinal direction does input point stays\n * 1: North\n * 2: East\n * 3: South\n * 4: West\n */\nIGeometry.getCardinalDirection = function (slope, slopePrime, line) {\n if (slope > slopePrime) {\n return line;\n } else {\n return 1 + line % 4;\n }\n};\n\n/**\n * This method calculates the intersection of the two lines defined by\n * point pairs (s1,s2) and (f1,f2).\n */\nIGeometry.getIntersection = function (s1, s2, f1, f2) {\n if (f2 == null) {\n return this.getIntersection2(s1, s2, f1);\n }\n\n var x1 = s1.x;\n var y1 = s1.y;\n var x2 = s2.x;\n var y2 = s2.y;\n var x3 = f1.x;\n var y3 = f1.y;\n var x4 = f2.x;\n var y4 = f2.y;\n var x = void 0,\n y = void 0; // intersection point\n var a1 = void 0,\n a2 = void 0,\n b1 = void 0,\n b2 = void 0,\n c1 = void 0,\n c2 = void 0; // coefficients of line eqns.\n var denom = void 0;\n\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 }\n\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 }\n\n denom = a1 * b2 - a2 * b1;\n\n if (denom === 0) {\n return null;\n }\n\n x = (b1 * c2 - b2 * c1) / denom;\n y = (a2 * c1 - a1 * c2) / denom;\n\n return new Point(x, y);\n};\n\n/**\n * This method finds and returns the angle of the vector from the + x-axis\n * in clockwise direction (compatible w/ Java coordinate system!).\n */\nIGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) {\n var C_angle = void 0;\n\n if (Cx !== Nx) {\n C_angle = Math.atan((Ny - Cy) / (Nx - Cx));\n\n if (Nx < Cx) {\n C_angle += Math.PI;\n } else if (Ny < Cy) {\n C_angle += this.TWO_PI;\n }\n } else if (Ny < Cy) {\n C_angle = this.ONE_AND_HALF_PI; // 270 degrees\n } else {\n C_angle = this.HALF_PI; // 90 degrees\n }\n\n return C_angle;\n};\n\n/**\n * This method checks whether the given two line segments (one with point\n * p1 and p2, the other with point p3 and p4) intersect at a point other\n * than these points.\n */\nIGeometry.doIntersect = function (p1, p2, p3, p4) {\n var a = p1.x;\n var b = p1.y;\n var c = p2.x;\n var d = p2.y;\n var p = p3.x;\n var q = p3.y;\n var r = p4.x;\n var s = p4.y;\n var det = (c - a) * (s - q) - (r - p) * (d - b);\n\n if (det === 0) {\n return false;\n } else {\n var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;\n var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det;\n return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1;\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Class Constants\n// -----------------------------------------------------------------------------\n/**\n * Some useful pre-calculated constants\n */\nIGeometry.HALF_PI = 0.5 * Math.PI;\nIGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;\nIGeometry.TWO_PI = 2.0 * Math.PI;\nIGeometry.THREE_PI = 3.0 * Math.PI;\n\nmodule.exports = IGeometry;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction IMath() {}\n\n/**\n * This method returns the sign of the input value.\n */\nIMath.sign = function (value) {\n if (value > 0) {\n return 1;\n } else if (value < 0) {\n return -1;\n } else {\n return 0;\n }\n};\n\nIMath.floor = function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n};\n\nIMath.ceil = function (value) {\n return value < 0 ? Math.floor(value) : Math.ceil(value);\n};\n\nmodule.exports = IMath;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Integer() {}\n\nInteger.MAX_VALUE = 2147483647;\nInteger.MIN_VALUE = -2147483648;\n\nmodule.exports = Integer;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar nodeFrom = function nodeFrom(value) {\n return { value: value, next: null, prev: null };\n};\n\nvar add = function add(prev, node, next, list) {\n if (prev !== null) {\n prev.next = node;\n } else {\n list.head = node;\n }\n\n if (next !== null) {\n next.prev = node;\n } else {\n list.tail = node;\n }\n\n node.prev = prev;\n node.next = next;\n\n list.length++;\n\n return node;\n};\n\nvar _remove = function _remove(node, list) {\n var prev = node.prev,\n next = node.next;\n\n\n if (prev !== null) {\n prev.next = next;\n } else {\n list.head = next;\n }\n\n if (next !== null) {\n next.prev = prev;\n } else {\n list.tail = prev;\n }\n\n node.prev = node.next = null;\n\n list.length--;\n\n return node;\n};\n\nvar LinkedList = function () {\n function LinkedList(vals) {\n var _this = this;\n\n _classCallCheck(this, LinkedList);\n\n this.length = 0;\n this.head = null;\n this.tail = null;\n\n if (vals != null) {\n vals.forEach(function (v) {\n return _this.push(v);\n });\n }\n }\n\n _createClass(LinkedList, [{\n key: \"size\",\n value: function size() {\n return this.length;\n }\n }, {\n key: \"insertBefore\",\n value: function insertBefore(val, otherNode) {\n return add(otherNode.prev, nodeFrom(val), otherNode, this);\n }\n }, {\n key: \"insertAfter\",\n value: function insertAfter(val, otherNode) {\n return add(otherNode, nodeFrom(val), otherNode.next, this);\n }\n }, {\n key: \"insertNodeBefore\",\n value: function insertNodeBefore(newNode, otherNode) {\n return add(otherNode.prev, newNode, otherNode, this);\n }\n }, {\n key: \"insertNodeAfter\",\n value: function insertNodeAfter(newNode, otherNode) {\n return add(otherNode, newNode, otherNode.next, this);\n }\n }, {\n key: \"push\",\n value: function push(val) {\n return add(this.tail, nodeFrom(val), null, this);\n }\n }, {\n key: \"unshift\",\n value: function unshift(val) {\n return add(null, nodeFrom(val), this.head, this);\n }\n }, {\n key: \"remove\",\n value: function remove(node) {\n return _remove(node, this);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n return _remove(this.tail, this).value;\n }\n }, {\n key: \"popNode\",\n value: function popNode() {\n return _remove(this.tail, this);\n }\n }, {\n key: \"shift\",\n value: function shift() {\n return _remove(this.head, this).value;\n }\n }, {\n key: \"shiftNode\",\n value: function shiftNode() {\n return _remove(this.head, this);\n }\n }, {\n key: \"get_object_at\",\n value: function get_object_at(index) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n return current.value;\n }\n }\n }, {\n key: \"set_object_at\",\n value: function set_object_at(index, value) {\n if (index <= this.length()) {\n var i = 1;\n var current = this.head;\n while (i < index) {\n current = current.next;\n i++;\n }\n current.value = value;\n }\n }\n }]);\n\n return LinkedList;\n}();\n\nmodule.exports = LinkedList;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\r\n *This class is the javascript implementation of the Point.java class in jdk\r\n */\nfunction Point(x, y, p) {\n this.x = null;\n this.y = null;\n if (x == null && y == null && p == null) {\n this.x = 0;\n this.y = 0;\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n this.x = x;\n this.y = y;\n } else if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.x = p.x;\n this.y = p.y;\n }\n}\n\nPoint.prototype.getX = function () {\n return this.x;\n};\n\nPoint.prototype.getY = function () {\n return this.y;\n};\n\nPoint.prototype.getLocation = function () {\n return new Point(this.x, this.y);\n};\n\nPoint.prototype.setLocation = function (x, y, p) {\n if (x.constructor.name == 'Point' && y == null && p == null) {\n p = x;\n this.setLocation(p.x, p.y);\n } else if (typeof x == 'number' && typeof y == 'number' && p == null) {\n //if both parameters are integer just move (x,y) location\n if (parseInt(x) == x && parseInt(y) == y) {\n this.move(x, y);\n } else {\n this.x = Math.floor(x + 0.5);\n this.y = Math.floor(y + 0.5);\n }\n }\n};\n\nPoint.prototype.move = function (x, y) {\n this.x = x;\n this.y = y;\n};\n\nPoint.prototype.translate = function (dx, dy) {\n this.x += dx;\n this.y += dy;\n};\n\nPoint.prototype.equals = function (obj) {\n if (obj.constructor.name == \"Point\") {\n var pt = obj;\n return this.x == pt.x && this.y == pt.y;\n }\n return this == obj;\n};\n\nPoint.prototype.toString = function () {\n return new Point().constructor.name + \"[x=\" + this.x + \",y=\" + this.y + \"]\";\n};\n\nmodule.exports = Point;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RectangleD(x, y, width, height) {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n\n if (x != null && y != null && width != null && height != null) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n}\n\nRectangleD.prototype.getX = function () {\n return this.x;\n};\n\nRectangleD.prototype.setX = function (x) {\n this.x = x;\n};\n\nRectangleD.prototype.getY = function () {\n return this.y;\n};\n\nRectangleD.prototype.setY = function (y) {\n this.y = y;\n};\n\nRectangleD.prototype.getWidth = function () {\n return this.width;\n};\n\nRectangleD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nRectangleD.prototype.getHeight = function () {\n return this.height;\n};\n\nRectangleD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nRectangleD.prototype.getRight = function () {\n return this.x + this.width;\n};\n\nRectangleD.prototype.getBottom = function () {\n return this.y + this.height;\n};\n\nRectangleD.prototype.intersects = function (a) {\n if (this.getRight() < a.x) {\n return false;\n }\n\n if (this.getBottom() < a.y) {\n return false;\n }\n\n if (a.getRight() < this.x) {\n return false;\n }\n\n if (a.getBottom() < this.y) {\n return false;\n }\n\n return true;\n};\n\nRectangleD.prototype.getCenterX = function () {\n return this.x + this.width / 2;\n};\n\nRectangleD.prototype.getMinX = function () {\n return this.getX();\n};\n\nRectangleD.prototype.getMaxX = function () {\n return this.getX() + this.width;\n};\n\nRectangleD.prototype.getCenterY = function () {\n return this.y + this.height / 2;\n};\n\nRectangleD.prototype.getMinY = function () {\n return this.getY();\n};\n\nRectangleD.prototype.getMaxY = function () {\n return this.getY() + this.height;\n};\n\nRectangleD.prototype.getWidthHalf = function () {\n return this.width / 2;\n};\n\nRectangleD.prototype.getHeightHalf = function () {\n return this.height / 2;\n};\n\nmodule.exports = RectangleD;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction UniqueIDGeneretor() {}\n\nUniqueIDGeneretor.lastID = 0;\n\nUniqueIDGeneretor.createID = function (obj) {\n if (UniqueIDGeneretor.isPrimitive(obj)) {\n return obj;\n }\n if (obj.uniqueID != null) {\n return obj.uniqueID;\n }\n obj.uniqueID = UniqueIDGeneretor.getString();\n UniqueIDGeneretor.lastID++;\n return obj.uniqueID;\n};\n\nUniqueIDGeneretor.getString = function (id) {\n if (id == null) id = UniqueIDGeneretor.lastID;\n return \"Object#\" + id + \"\";\n};\n\nUniqueIDGeneretor.isPrimitive = function (arg) {\n var type = typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg);\n return arg == null || type != \"object\" && type != \"function\";\n};\n\nmodule.exports = UniqueIDGeneretor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(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); } }\n\nvar LayoutConstants = __webpack_require__(0);\nvar LGraphManager = __webpack_require__(6);\nvar LNode = __webpack_require__(3);\nvar LEdge = __webpack_require__(1);\nvar LGraph = __webpack_require__(5);\nvar PointD = __webpack_require__(4);\nvar Transform = __webpack_require__(17);\nvar Emitter = __webpack_require__(27);\n\nfunction Layout(isRemoteUse) {\n Emitter.call(this);\n\n //Layout Quality: 0:draft, 1:default, 2:proof\n this.layoutQuality = LayoutConstants.QUALITY;\n //Whether layout should create bendpoints as needed or not\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n //Whether layout should be incremental or not\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n //Whether we animate from before to after layout node positions\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n //Whether we animate the layout process or not\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n //Number iterations that should be done between two successive animations\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n /**\r\n * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When\r\n * they are, both spring and repulsion forces between two leaf nodes can be\r\n * calculated without the expensive clipping point calculations, resulting\r\n * in major speed-up.\r\n */\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n /**\r\n * This is used for creation of bendpoints by using dummy nodes and edges.\r\n * Maps an LEdge to its dummy bendpoint path.\r\n */\n this.edgeToDummyNodes = new Map();\n this.graphManager = new LGraphManager(this);\n this.isLayoutFinished = false;\n this.isSubLayout = false;\n this.isRemoteUse = false;\n\n if (isRemoteUse != null) {\n this.isRemoteUse = isRemoteUse;\n }\n}\n\nLayout.RANDOM_SEED = 1;\n\nLayout.prototype = Object.create(Emitter.prototype);\n\nLayout.prototype.getGraphManager = function () {\n return this.graphManager;\n};\n\nLayout.prototype.getAllNodes = function () {\n return this.graphManager.getAllNodes();\n};\n\nLayout.prototype.getAllEdges = function () {\n return this.graphManager.getAllEdges();\n};\n\nLayout.prototype.getAllNodesToApplyGravitation = function () {\n return this.graphManager.getAllNodesToApplyGravitation();\n};\n\nLayout.prototype.newGraphManager = function () {\n var gm = new LGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nLayout.prototype.newGraph = function (vGraph) {\n return new LGraph(null, this.graphManager, vGraph);\n};\n\nLayout.prototype.newNode = function (vNode) {\n return new LNode(this.graphManager, vNode);\n};\n\nLayout.prototype.newEdge = function (vEdge) {\n return new LEdge(null, null, vEdge);\n};\n\nLayout.prototype.checkLayoutSuccess = function () {\n return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();\n};\n\nLayout.prototype.runLayout = function () {\n this.isLayoutFinished = false;\n\n if (this.tilingPreLayout) {\n this.tilingPreLayout();\n }\n\n this.initParameters();\n var isLayoutSuccessfull;\n\n if (this.checkLayoutSuccess()) {\n isLayoutSuccessfull = false;\n } else {\n isLayoutSuccessfull = this.layout();\n }\n\n if (LayoutConstants.ANIMATE === 'during') {\n // If this is a 'during' layout animation. Layout is not finished yet. \n // We need to perform these in index.js when layout is really finished.\n return false;\n }\n\n if (isLayoutSuccessfull) {\n if (!this.isSubLayout) {\n this.doPostLayout();\n }\n }\n\n if (this.tilingPostLayout) {\n this.tilingPostLayout();\n }\n\n this.isLayoutFinished = true;\n\n return isLayoutSuccessfull;\n};\n\n/**\r\n * This method performs the operations required after layout.\r\n */\nLayout.prototype.doPostLayout = function () {\n //assert !isSubLayout : \"Should not be called on sub-layout!\";\n // Propagate geometric changes to v-level objects\n if (!this.incremental) {\n this.transform();\n }\n this.update();\n};\n\n/**\r\n * This method updates the geometry of the target graph according to\r\n * calculated layout.\r\n */\nLayout.prototype.update2 = function () {\n // update bend points\n if (this.createBendsAsNeeded) {\n this.createBendpointsFromDummyNodes();\n\n // reset all edges, since the topology has changed\n this.graphManager.resetAllEdges();\n }\n\n // perform edge, node and root updates if layout is not called\n // remotely\n if (!this.isRemoteUse) {\n // update all edges\n var edge;\n var allEdges = this.graphManager.getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n // this.update(edge);\n }\n\n // recursively update nodes\n var node;\n var nodes = this.graphManager.getRoot().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n // this.update(node);\n }\n\n // update root graph\n this.update(this.graphManager.getRoot());\n }\n};\n\nLayout.prototype.update = function (obj) {\n if (obj == null) {\n this.update2();\n } else if (obj instanceof LNode) {\n var node = obj;\n if (node.getChild() != null) {\n // since node is compound, recursively update child nodes\n var nodes = node.getChild().getNodes();\n for (var i = 0; i < nodes.length; i++) {\n update(nodes[i]);\n }\n }\n\n // if the l-level node is associated with a v-level graph object,\n // then it is assumed that the v-level node implements the\n // interface Updatable.\n if (node.vGraphObject != null) {\n // cast to Updatable without any type check\n var vNode = node.vGraphObject;\n\n // call the update method of the interface\n vNode.update(node);\n }\n } else if (obj instanceof LEdge) {\n var edge = obj;\n // if the l-level edge is associated with a v-level graph object,\n // then it is assumed that the v-level edge implements the\n // interface Updatable.\n\n if (edge.vGraphObject != null) {\n // cast to Updatable without any type check\n var vEdge = edge.vGraphObject;\n\n // call the update method of the interface\n vEdge.update(edge);\n }\n } else if (obj instanceof LGraph) {\n var graph = obj;\n // if the l-level graph is associated with a v-level graph object,\n // then it is assumed that the v-level object implements the\n // interface Updatable.\n\n if (graph.vGraphObject != null) {\n // cast to Updatable without any type check\n var vGraph = graph.vGraphObject;\n\n // call the update method of the interface\n vGraph.update(graph);\n }\n }\n};\n\n/**\r\n * This method is used to set all layout parameters to default values\r\n * determined at compile time.\r\n */\nLayout.prototype.initParameters = function () {\n if (!this.isSubLayout) {\n this.layoutQuality = LayoutConstants.QUALITY;\n this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;\n this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;\n this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;\n this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;\n this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;\n }\n\n if (this.animationDuringLayout) {\n this.animationOnLayout = false;\n }\n};\n\nLayout.prototype.transform = function (newLeftTop) {\n if (newLeftTop == undefined) {\n this.transform(new PointD(0, 0));\n } else {\n // create a transformation object (from Eclipse to layout). When an\n // inverse transform is applied, we get upper-left coordinate of the\n // drawing or the root graph at given input coordinate (some margins\n // already included in calculation of left-top).\n\n var trans = new Transform();\n var leftTop = this.graphManager.getRoot().updateLeftTop();\n\n if (leftTop != null) {\n trans.setWorldOrgX(newLeftTop.x);\n trans.setWorldOrgY(newLeftTop.y);\n\n trans.setDeviceOrgX(leftTop.x);\n trans.setDeviceOrgY(leftTop.y);\n\n var nodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n node.transform(trans);\n }\n }\n }\n};\n\nLayout.prototype.positionNodesRandomly = function (graph) {\n\n if (graph == undefined) {\n //assert !this.incremental;\n this.positionNodesRandomly(this.getGraphManager().getRoot());\n this.getGraphManager().getRoot().updateBounds(true);\n } else {\n var lNode;\n var childGraph;\n\n var nodes = graph.getNodes();\n for (var i = 0; i < nodes.length; i++) {\n lNode = nodes[i];\n childGraph = lNode.getChild();\n\n if (childGraph == null) {\n lNode.scatter();\n } else if (childGraph.getNodes().length == 0) {\n lNode.scatter();\n } else {\n this.positionNodesRandomly(childGraph);\n lNode.updateBounds();\n }\n }\n }\n};\n\n/**\r\n * This method returns a list of trees where each tree is represented as a\r\n * list of l-nodes. The method returns a list of size 0 when:\r\n * - The graph is not flat or\r\n * - One of the component(s) of the graph is not a tree.\r\n */\nLayout.prototype.getFlatForest = function () {\n var flatForest = [];\n var isForest = true;\n\n // Quick reference for all nodes in the graph manager associated with\n // this layout. The list should not be changed.\n var allNodes = this.graphManager.getRoot().getNodes();\n\n // First be sure that the graph is flat\n var isFlat = true;\n\n for (var i = 0; i < allNodes.length; i++) {\n if (allNodes[i].getChild() != null) {\n isFlat = false;\n }\n }\n\n // Return empty forest if the graph is not flat.\n if (!isFlat) {\n return flatForest;\n }\n\n // Run BFS for each component of the graph.\n\n var visited = new Set();\n var toBeVisited = [];\n var parents = new Map();\n var unProcessedNodes = [];\n\n unProcessedNodes = unProcessedNodes.concat(allNodes);\n\n // Each iteration of this loop finds a component of the graph and\n // decides whether it is a tree or not. If it is a tree, adds it to the\n // forest and continued with the next component.\n\n while (unProcessedNodes.length > 0 && isForest) {\n toBeVisited.push(unProcessedNodes[0]);\n\n // Start the BFS. Each iteration of this loop visits a node in a\n // BFS manner.\n while (toBeVisited.length > 0 && isForest) {\n //pool operation\n var currentNode = toBeVisited[0];\n toBeVisited.splice(0, 1);\n visited.add(currentNode);\n\n // Traverse all neighbors of this node\n var neighborEdges = currentNode.getEdges();\n\n for (var i = 0; i < neighborEdges.length; i++) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode);\n\n // If BFS is not growing from this neighbor.\n if (parents.get(currentNode) != currentNeighbor) {\n // We haven't previously visited this neighbor.\n if (!visited.has(currentNeighbor)) {\n toBeVisited.push(currentNeighbor);\n parents.set(currentNeighbor, currentNode);\n }\n // Since we have previously visited this neighbor and\n // this neighbor is not parent of currentNode, given\n // graph contains a component that is not tree, hence\n // it is not a forest.\n else {\n isForest = false;\n break;\n }\n }\n }\n }\n\n // The graph contains a component that is not a tree. Empty\n // previously found trees. The method will end.\n if (!isForest) {\n flatForest = [];\n }\n // Save currently visited nodes as a tree in our forest. Reset\n // visited and parents lists. Continue with the next component of\n // the graph, if any.\n else {\n var temp = [].concat(_toConsumableArray(visited));\n flatForest.push(temp);\n //flatForest = flatForest.concat(temp);\n //unProcessedNodes.removeAll(visited);\n for (var i = 0; i < temp.length; i++) {\n var value = temp[i];\n var index = unProcessedNodes.indexOf(value);\n if (index > -1) {\n unProcessedNodes.splice(index, 1);\n }\n }\n visited = new Set();\n parents = new Map();\n }\n }\n\n return flatForest;\n};\n\n/**\r\n * This method creates dummy nodes (an l-level node with minimal dimensions)\r\n * for the given edge (one per bendpoint). The existing l-level structure\r\n * is updated accordingly.\r\n */\nLayout.prototype.createDummyNodesForBendpoints = function (edge) {\n var dummyNodes = [];\n var prev = edge.source;\n\n var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);\n\n for (var i = 0; i < edge.bendpoints.length; i++) {\n // create new dummy node\n var dummyNode = this.newNode(null);\n dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));\n\n graph.add(dummyNode);\n\n // create new dummy edge between prev and dummy node\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, dummyNode);\n\n dummyNodes.add(dummyNode);\n prev = dummyNode;\n }\n\n var dummyEdge = this.newEdge(null);\n this.graphManager.add(dummyEdge, prev, edge.target);\n\n this.edgeToDummyNodes.set(edge, dummyNodes);\n\n // remove real edge from graph manager if it is inter-graph\n if (edge.isInterGraph()) {\n this.graphManager.remove(edge);\n }\n // else, remove the edge from the current graph\n else {\n graph.remove(edge);\n }\n\n return dummyNodes;\n};\n\n/**\r\n * This method creates bendpoints for edges from the dummy nodes\r\n * at l-level.\r\n */\nLayout.prototype.createBendpointsFromDummyNodes = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges);\n\n for (var k = 0; k < edges.length; k++) {\n var lEdge = edges[k];\n\n if (lEdge.bendpoints.length > 0) {\n var path = this.edgeToDummyNodes.get(lEdge);\n\n for (var i = 0; i < path.length; i++) {\n var dummyNode = path[i];\n var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());\n\n // update bendpoint's location according to dummy node\n var ebp = lEdge.bendpoints.get(i);\n ebp.x = p.x;\n ebp.y = p.y;\n\n // remove the dummy node, dummy edges incident with this\n // dummy node is also removed (within the remove method)\n dummyNode.getOwner().remove(dummyNode);\n }\n\n // add the real edge to graph\n this.graphManager.add(lEdge, lEdge.source, lEdge.target);\n }\n }\n};\n\nLayout.transform = function (sliderValue, defaultValue, minDiv, maxMul) {\n if (minDiv != undefined && maxMul != undefined) {\n var value = defaultValue;\n\n if (sliderValue <= 50) {\n var minValue = defaultValue / minDiv;\n value -= (defaultValue - minValue) / 50 * (50 - sliderValue);\n } else {\n var maxValue = defaultValue * maxMul;\n value += (maxValue - defaultValue) / 50 * (sliderValue - 50);\n }\n\n return value;\n } else {\n var a, b;\n\n if (sliderValue <= 50) {\n a = 9.0 * defaultValue / 500.0;\n b = defaultValue / 10.0;\n } else {\n a = 9.0 * defaultValue / 50.0;\n b = -8 * defaultValue;\n }\n\n return a * sliderValue + b;\n }\n};\n\n/**\r\n * This method finds and returns the center of the given nodes, assuming\r\n * that the given nodes form a tree in themselves.\r\n */\nLayout.findCenterOfTree = function (nodes) {\n var list = [];\n list = list.concat(nodes);\n\n var removedNodes = [];\n var remainingDegrees = new Map();\n var foundCenter = false;\n var centerNode = null;\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n var degree = node.getNeighborsList().size;\n remainingDegrees.set(node, node.getNeighborsList().size);\n\n if (degree == 1) {\n removedNodes.push(node);\n }\n }\n\n var tempList = [];\n tempList = tempList.concat(removedNodes);\n\n while (!foundCenter) {\n var tempList2 = [];\n tempList2 = tempList2.concat(tempList);\n tempList = [];\n\n for (var i = 0; i < list.length; i++) {\n var node = list[i];\n\n var index = list.indexOf(node);\n if (index >= 0) {\n list.splice(index, 1);\n }\n\n var neighbours = node.getNeighborsList();\n\n neighbours.forEach(function (neighbour) {\n if (removedNodes.indexOf(neighbour) < 0) {\n var otherDegree = remainingDegrees.get(neighbour);\n var newDegree = otherDegree - 1;\n\n if (newDegree == 1) {\n tempList.push(neighbour);\n }\n\n remainingDegrees.set(neighbour, newDegree);\n }\n });\n }\n\n removedNodes = removedNodes.concat(tempList);\n\n if (list.length == 1 || list.length == 2) {\n foundCenter = true;\n centerNode = list[0];\n }\n }\n\n return centerNode;\n};\n\n/**\r\n * During the coarsening process, this layout may be referenced by two graph managers\r\n * this setter function grants access to change the currently being used graph manager\r\n */\nLayout.prototype.setGraphManager = function (gm) {\n this.graphManager = gm;\n};\n\nmodule.exports = Layout;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction RandomSeed() {}\n// adapted from: https://stackoverflow.com/a/19303725\nRandomSeed.seed = 1;\nRandomSeed.x = 0;\n\nRandomSeed.nextDouble = function () {\n RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000;\n return RandomSeed.x - Math.floor(RandomSeed.x);\n};\n\nmodule.exports = RandomSeed;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar PointD = __webpack_require__(4);\n\nfunction Transform(x, y) {\n this.lworldOrgX = 0.0;\n this.lworldOrgY = 0.0;\n this.ldeviceOrgX = 0.0;\n this.ldeviceOrgY = 0.0;\n this.lworldExtX = 1.0;\n this.lworldExtY = 1.0;\n this.ldeviceExtX = 1.0;\n this.ldeviceExtY = 1.0;\n}\n\nTransform.prototype.getWorldOrgX = function () {\n return this.lworldOrgX;\n};\n\nTransform.prototype.setWorldOrgX = function (wox) {\n this.lworldOrgX = wox;\n};\n\nTransform.prototype.getWorldOrgY = function () {\n return this.lworldOrgY;\n};\n\nTransform.prototype.setWorldOrgY = function (woy) {\n this.lworldOrgY = woy;\n};\n\nTransform.prototype.getWorldExtX = function () {\n return this.lworldExtX;\n};\n\nTransform.prototype.setWorldExtX = function (wex) {\n this.lworldExtX = wex;\n};\n\nTransform.prototype.getWorldExtY = function () {\n return this.lworldExtY;\n};\n\nTransform.prototype.setWorldExtY = function (wey) {\n this.lworldExtY = wey;\n};\n\n/* Device related */\n\nTransform.prototype.getDeviceOrgX = function () {\n return this.ldeviceOrgX;\n};\n\nTransform.prototype.setDeviceOrgX = function (dox) {\n this.ldeviceOrgX = dox;\n};\n\nTransform.prototype.getDeviceOrgY = function () {\n return this.ldeviceOrgY;\n};\n\nTransform.prototype.setDeviceOrgY = function (doy) {\n this.ldeviceOrgY = doy;\n};\n\nTransform.prototype.getDeviceExtX = function () {\n return this.ldeviceExtX;\n};\n\nTransform.prototype.setDeviceExtX = function (dex) {\n this.ldeviceExtX = dex;\n};\n\nTransform.prototype.getDeviceExtY = function () {\n return this.ldeviceExtY;\n};\n\nTransform.prototype.setDeviceExtY = function (dey) {\n this.ldeviceExtY = dey;\n};\n\nTransform.prototype.transformX = function (x) {\n var xDevice = 0.0;\n var worldExtX = this.lworldExtX;\n if (worldExtX != 0.0) {\n xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX;\n }\n\n return xDevice;\n};\n\nTransform.prototype.transformY = function (y) {\n var yDevice = 0.0;\n var worldExtY = this.lworldExtY;\n if (worldExtY != 0.0) {\n yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY;\n }\n\n return yDevice;\n};\n\nTransform.prototype.inverseTransformX = function (x) {\n var xWorld = 0.0;\n var deviceExtX = this.ldeviceExtX;\n if (deviceExtX != 0.0) {\n xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;\n }\n\n return xWorld;\n};\n\nTransform.prototype.inverseTransformY = function (y) {\n var yWorld = 0.0;\n var deviceExtY = this.ldeviceExtY;\n if (deviceExtY != 0.0) {\n yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;\n }\n return yWorld;\n};\n\nTransform.prototype.inverseTransformPoint = function (inPoint) {\n var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));\n return outPoint;\n};\n\nmodule.exports = Transform;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _toConsumableArray(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); } }\n\nvar Layout = __webpack_require__(15);\nvar FDLayoutConstants = __webpack_require__(7);\nvar LayoutConstants = __webpack_require__(0);\nvar IGeometry = __webpack_require__(8);\nvar IMath = __webpack_require__(9);\n\nfunction FDLayout() {\n Layout.call(this);\n\n this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n this.totalDisplacement = 0.0;\n this.oldTotalDisplacement = 0.0;\n this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;\n}\n\nFDLayout.prototype = Object.create(Layout.prototype);\n\nfor (var prop in Layout) {\n FDLayout[prop] = Layout[prop];\n}\n\nFDLayout.prototype.initParameters = function () {\n Layout.prototype.initParameters.call(this, arguments);\n\n this.totalIterations = 0;\n this.notAnimatedIterations = 0;\n\n this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;\n\n this.grid = [];\n};\n\nFDLayout.prototype.calcIdealEdgeLengths = function () {\n var edge;\n var lcaDepth;\n var source;\n var target;\n var sizeOfSourceInLca;\n var sizeOfTargetInLca;\n\n var allEdges = this.getGraphManager().getAllEdges();\n for (var i = 0; i < allEdges.length; i++) {\n edge = allEdges[i];\n\n edge.idealLength = this.idealEdgeLength;\n\n if (edge.isInterGraph) {\n source = edge.getSource();\n target = edge.getTarget();\n\n sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();\n sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();\n\n if (this.useSmartIdealEdgeLengthCalculation) {\n edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;\n }\n\n lcaDepth = edge.getLca().getInclusionTreeDepth();\n\n edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);\n }\n }\n};\n\nFDLayout.prototype.initSpringEmbedder = function () {\n\n var s = this.getAllNodes().length;\n if (this.incremental) {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n }\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;\n } else {\n if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {\n this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));\n } else {\n this.coolingFactor = 1.0;\n }\n this.initialCoolingFactor = this.coolingFactor;\n this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;\n }\n\n this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);\n\n this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;\n\n this.repulsionRange = this.calcRepulsionRange();\n};\n\nFDLayout.prototype.calcSpringForces = function () {\n var lEdges = this.getAllEdges();\n var edge;\n\n for (var i = 0; i < lEdges.length; i++) {\n edge = lEdges[i];\n\n this.calcSpringForce(edge, edge.idealLength);\n }\n};\n\nFDLayout.prototype.calcRepulsionForces = function () {\n var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var i, j;\n var nodeA, nodeB;\n var lNodes = this.getAllNodes();\n var processedNodeSet;\n\n if (this.useFRGridVariant) {\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {\n this.updateGrid();\n }\n\n processedNodeSet = new Set();\n\n // calculate repulsion forces between each nodes and its surrounding\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);\n processedNodeSet.add(nodeA);\n }\n } else {\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n\n for (j = i + 1; j < lNodes.length; j++) {\n nodeB = lNodes[j];\n\n // If both nodes are not members of the same graph, skip.\n if (nodeA.getOwner() != nodeB.getOwner()) {\n continue;\n }\n\n this.calcRepulsionForce(nodeA, nodeB);\n }\n }\n }\n};\n\nFDLayout.prototype.calcGravitationalForces = function () {\n var node;\n var lNodes = this.getAllNodesToApplyGravitation();\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n this.calcGravitationalForce(node);\n }\n};\n\nFDLayout.prototype.moveNodes = function () {\n var lNodes = this.getAllNodes();\n var node;\n\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[i];\n node.move();\n }\n};\n\nFDLayout.prototype.calcSpringForce = function (edge, idealLength) {\n var sourceNode = edge.getSource();\n var targetNode = edge.getTarget();\n\n var length;\n var springForce;\n var springForceX;\n var springForceY;\n\n // Update edge length\n if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {\n edge.updateLengthSimple();\n } else {\n edge.updateLength();\n\n if (edge.isOverlapingSourceAndTarget) {\n return;\n }\n }\n\n length = edge.getLength();\n\n if (length == 0) return;\n\n // Calculate spring forces\n springForce = this.springConstant * (length - idealLength);\n\n // Project force onto x and y axes\n springForceX = springForce * (edge.lengthX / length);\n springForceY = springForce * (edge.lengthY / length);\n\n // Apply forces on the end nodes\n sourceNode.springForceX += springForceX;\n sourceNode.springForceY += springForceY;\n targetNode.springForceX -= springForceX;\n targetNode.springForceY -= springForceY;\n};\n\nFDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) {\n var rectA = nodeA.getRect();\n var rectB = nodeB.getRect();\n var overlapAmount = new Array(2);\n var clipPoints = new Array(4);\n var distanceX;\n var distanceY;\n var distanceSquared;\n var distance;\n var repulsionForce;\n var repulsionForceX;\n var repulsionForceY;\n\n if (rectA.intersects(rectB)) // two nodes overlap\n {\n // calculate separation amount in x and y directions\n IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0);\n\n repulsionForceX = 2 * overlapAmount[0];\n repulsionForceY = 2 * overlapAmount[1];\n\n var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);\n\n // Apply forces on the two nodes\n nodeA.repulsionForceX -= childrenConstant * repulsionForceX;\n nodeA.repulsionForceY -= childrenConstant * repulsionForceY;\n nodeB.repulsionForceX += childrenConstant * repulsionForceX;\n nodeB.repulsionForceY += childrenConstant * repulsionForceY;\n } else // no overlap\n {\n // calculate distance\n\n if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers\n {\n distanceX = rectB.getCenterX() - rectA.getCenterX();\n distanceY = rectB.getCenterY() - rectA.getCenterY();\n } else // use clipping points\n {\n IGeometry.getIntersection(rectA, rectB, clipPoints);\n\n distanceX = clipPoints[2] - clipPoints[0];\n distanceY = clipPoints[3] - clipPoints[1];\n }\n\n // No repulsion range. FR grid variant should take care of this.\n if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {\n distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;\n }\n\n distanceSquared = distanceX * distanceX + distanceY * distanceY;\n distance = Math.sqrt(distanceSquared);\n\n repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;\n\n // Project force onto x and y axes\n repulsionForceX = repulsionForce * distanceX / distance;\n repulsionForceY = repulsionForce * distanceY / distance;\n\n // Apply forces on the two nodes \n nodeA.repulsionForceX -= repulsionForceX;\n nodeA.repulsionForceY -= repulsionForceY;\n nodeB.repulsionForceX += repulsionForceX;\n nodeB.repulsionForceY += repulsionForceY;\n }\n};\n\nFDLayout.prototype.calcGravitationalForce = function (node) {\n var ownerGraph;\n var ownerCenterX;\n var ownerCenterY;\n var distanceX;\n var distanceY;\n var absDistanceX;\n var absDistanceY;\n var estimatedSize;\n ownerGraph = node.getOwner();\n\n ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;\n ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;\n distanceX = node.getCenterX() - ownerCenterX;\n distanceY = node.getCenterY() - ownerCenterY;\n absDistanceX = Math.abs(distanceX) + node.getWidth() / 2;\n absDistanceY = Math.abs(distanceY) + node.getHeight() / 2;\n\n if (node.getOwner() == this.graphManager.getRoot()) // in the root graph\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX;\n node.gravitationForceY = -this.gravityConstant * distanceY;\n }\n } else // inside a compound\n {\n estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;\n\n if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {\n node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;\n node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;\n }\n }\n};\n\nFDLayout.prototype.isConverged = function () {\n var converged;\n var oscilating = false;\n\n if (this.totalIterations > this.maxIterations / 3) {\n oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;\n }\n\n converged = this.totalDisplacement < this.totalDisplacementThreshold;\n\n this.oldTotalDisplacement = this.totalDisplacement;\n\n return converged || oscilating;\n};\n\nFDLayout.prototype.animate = function () {\n if (this.animationDuringLayout && !this.isSubLayout) {\n if (this.notAnimatedIterations == this.animationPeriod) {\n this.update();\n this.notAnimatedIterations = 0;\n } else {\n this.notAnimatedIterations++;\n }\n }\n};\n\n//This method calculates the number of children (weight) for all nodes\nFDLayout.prototype.calcNoOfChildrenForAllNodes = function () {\n var node;\n var allNodes = this.graphManager.getAllNodes();\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n node.noOfChildren = node.getNoOfChildren();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: FR-Grid Variant Repulsion Force Calculation\n// -----------------------------------------------------------------------------\n\nFDLayout.prototype.calcGrid = function (graph) {\n\n var sizeX = 0;\n var sizeY = 0;\n\n sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));\n sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));\n\n var grid = new Array(sizeX);\n\n for (var i = 0; i < sizeX; i++) {\n grid[i] = new Array(sizeY);\n }\n\n for (var i = 0; i < sizeX; i++) {\n for (var j = 0; j < sizeY; j++) {\n grid[i][j] = new Array();\n }\n }\n\n return grid;\n};\n\nFDLayout.prototype.addNodeToGrid = function (v, left, top) {\n\n var startX = 0;\n var finishX = 0;\n var startY = 0;\n var finishY = 0;\n\n startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange));\n finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange));\n startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange));\n finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange));\n\n for (var i = startX; i <= finishX; i++) {\n for (var j = startY; j <= finishY; j++) {\n this.grid[i][j].push(v);\n v.setGridCoordinates(startX, finishX, startY, finishY);\n }\n }\n};\n\nFDLayout.prototype.updateGrid = function () {\n var i;\n var nodeA;\n var lNodes = this.getAllNodes();\n\n this.grid = this.calcGrid(this.graphManager.getRoot());\n\n // put all nodes to proper grid cells\n for (i = 0; i < lNodes.length; i++) {\n nodeA = lNodes[i];\n this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());\n }\n};\n\nFDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {\n\n if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {\n var surrounding = new Set();\n nodeA.surrounding = new Array();\n var nodeB;\n var grid = this.grid;\n\n for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) {\n for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {\n if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) {\n for (var k = 0; k < grid[i][j].length; k++) {\n nodeB = grid[i][j][k];\n\n // If both nodes are not members of the same graph, \n // or both nodes are the same, skip.\n if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {\n continue;\n }\n\n // check if the repulsion force between\n // nodeA and nodeB has already been calculated\n if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {\n var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);\n var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);\n\n // if the distance between nodeA and nodeB \n // is less then calculation range\n if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {\n //then add nodeB to surrounding of nodeA\n surrounding.add(nodeB);\n }\n }\n }\n }\n }\n }\n\n nodeA.surrounding = [].concat(_toConsumableArray(surrounding));\n }\n for (i = 0; i < nodeA.surrounding.length; i++) {\n this.calcRepulsionForce(nodeA, nodeA.surrounding[i]);\n }\n};\n\nFDLayout.prototype.calcRepulsionRange = function () {\n return 0.0;\n};\n\nmodule.exports = FDLayout;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEdge = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(7);\n\nfunction FDLayoutEdge(source, target, vEdge) {\n LEdge.call(this, source, target, vEdge);\n this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\n}\n\nFDLayoutEdge.prototype = Object.create(LEdge.prototype);\n\nfor (var prop in LEdge) {\n FDLayoutEdge[prop] = LEdge[prop];\n}\n\nmodule.exports = FDLayoutEdge;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LNode = __webpack_require__(3);\n\nfunction FDLayoutNode(gm, loc, size, vNode) {\n // alternative constructor is handled inside LNode\n LNode.call(this, gm, loc, size, vNode);\n //Spring, repulsion and gravitational forces acting on this node\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n //Amount by which this node is to be moved in this iteration\n this.displacementX = 0;\n this.displacementY = 0;\n\n //Start and finish grid coordinates that this node is fallen into\n this.startX = 0;\n this.finishX = 0;\n this.startY = 0;\n this.finishY = 0;\n\n //Geometric neighbors of this node\n this.surrounding = [];\n}\n\nFDLayoutNode.prototype = Object.create(LNode.prototype);\n\nfor (var prop in LNode) {\n FDLayoutNode[prop] = LNode[prop];\n}\n\nFDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) {\n this.startX = _startX;\n this.finishX = _finishX;\n this.startY = _startY;\n this.finishY = _finishY;\n};\n\nmodule.exports = FDLayoutNode;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction DimensionD(width, height) {\n this.width = 0;\n this.height = 0;\n if (width !== null && height !== null) {\n this.height = height;\n this.width = width;\n }\n}\n\nDimensionD.prototype.getWidth = function () {\n return this.width;\n};\n\nDimensionD.prototype.setWidth = function (width) {\n this.width = width;\n};\n\nDimensionD.prototype.getHeight = function () {\n return this.height;\n};\n\nDimensionD.prototype.setHeight = function (height) {\n this.height = height;\n};\n\nmodule.exports = DimensionD;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashMap() {\n this.map = {};\n this.keys = [];\n}\n\nHashMap.prototype.put = function (key, value) {\n var theId = UniqueIDGeneretor.createID(key);\n if (!this.contains(theId)) {\n this.map[theId] = value;\n this.keys.push(key);\n }\n};\n\nHashMap.prototype.contains = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[key] != null;\n};\n\nHashMap.prototype.get = function (key) {\n var theId = UniqueIDGeneretor.createID(key);\n return this.map[theId];\n};\n\nHashMap.prototype.keySet = function () {\n return this.keys;\n};\n\nmodule.exports = HashMap;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UniqueIDGeneretor = __webpack_require__(14);\n\nfunction HashSet() {\n this.set = {};\n}\n;\n\nHashSet.prototype.add = function (obj) {\n var theId = UniqueIDGeneretor.createID(obj);\n if (!this.contains(theId)) this.set[theId] = obj;\n};\n\nHashSet.prototype.remove = function (obj) {\n delete this.set[UniqueIDGeneretor.createID(obj)];\n};\n\nHashSet.prototype.clear = function () {\n this.set = {};\n};\n\nHashSet.prototype.contains = function (obj) {\n return this.set[UniqueIDGeneretor.createID(obj)] == obj;\n};\n\nHashSet.prototype.isEmpty = function () {\n return this.size() === 0;\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\n//concats this.set to the given list\nHashSet.prototype.addAllTo = function (list) {\n var keys = Object.keys(this.set);\n var length = keys.length;\n for (var i = 0; i < length; i++) {\n list.push(this.set[keys[i]]);\n }\n};\n\nHashSet.prototype.size = function () {\n return Object.keys(this.set).length;\n};\n\nHashSet.prototype.addAll = function (list) {\n var s = list.length;\n for (var i = 0; i < s; i++) {\n var v = list[i];\n this.add(v);\n }\n};\n\nmodule.exports = HashSet;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * A classic Quicksort algorithm with Hoare's partition\n * - Works also on LinkedList objects\n *\n * Copyright: i-Vis Research Group, Bilkent University, 2007 - present\n */\n\nvar LinkedList = __webpack_require__(11);\n\nvar Quicksort = function () {\n function Quicksort(A, compareFunction) {\n _classCallCheck(this, Quicksort);\n\n if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction;\n\n var length = void 0;\n if (A instanceof LinkedList) length = A.size();else length = A.length;\n\n this._quicksort(A, 0, length - 1);\n }\n\n _createClass(Quicksort, [{\n key: '_quicksort',\n value: function _quicksort(A, p, r) {\n if (p < r) {\n var q = this._partition(A, p, r);\n this._quicksort(A, p, q);\n this._quicksort(A, q + 1, r);\n }\n }\n }, {\n key: '_partition',\n value: function _partition(A, p, r) {\n var x = this._get(A, p);\n var i = p;\n var j = r;\n while (true) {\n while (this.compareFunction(x, this._get(A, j))) {\n j--;\n }while (this.compareFunction(this._get(A, i), x)) {\n i++;\n }if (i < j) {\n this._swap(A, i, j);\n i++;\n j--;\n } else return j;\n }\n }\n }, {\n key: '_get',\n value: function _get(object, index) {\n if (object instanceof LinkedList) return object.get_object_at(index);else return object[index];\n }\n }, {\n key: '_set',\n value: function _set(object, index, value) {\n if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value;\n }\n }, {\n key: '_swap',\n value: function _swap(A, i, j) {\n var temp = this._get(A, i);\n this._set(A, i, this._get(A, j));\n this._set(A, j, temp);\n }\n }, {\n key: '_defaultCompareFunction',\n value: function _defaultCompareFunction(a, b) {\n return b > a;\n }\n }]);\n\n return Quicksort;\n}();\n\nmodule.exports = Quicksort;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string\n * sequences by S.B.Needleman and C.D.Wunsch (1970).\n *\n * Aside from the inputs, you can assign the scores for,\n * - Match: The two characters at the current index are same.\n * - Mismatch: The two characters at the current index are different.\n * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string.\n */\n\nvar NeedlemanWunsch = function () {\n function NeedlemanWunsch(sequence1, sequence2) {\n var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\n\n _classCallCheck(this, NeedlemanWunsch);\n\n this.sequence1 = sequence1;\n this.sequence2 = sequence2;\n this.match_score = match_score;\n this.mismatch_penalty = mismatch_penalty;\n this.gap_penalty = gap_penalty;\n\n // Just the remove redundancy\n this.iMax = sequence1.length + 1;\n this.jMax = sequence2.length + 1;\n\n // Grid matrix of scores\n this.grid = new Array(this.iMax);\n for (var i = 0; i < this.iMax; i++) {\n this.grid[i] = new Array(this.jMax);\n\n for (var j = 0; j < this.jMax; j++) {\n this.grid[i][j] = 0;\n }\n }\n\n // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions)\n this.tracebackGrid = new Array(this.iMax);\n for (var _i = 0; _i < this.iMax; _i++) {\n this.tracebackGrid[_i] = new Array(this.jMax);\n\n for (var _j = 0; _j < this.jMax; _j++) {\n this.tracebackGrid[_i][_j] = [null, null, null];\n }\n }\n\n // The aligned sequences (return multiple possibilities)\n this.alignments = [];\n\n // Final alignment score\n this.score = -1;\n\n // Calculate scores and tracebacks\n this.computeGrids();\n }\n\n _createClass(NeedlemanWunsch, [{\n key: \"getScore\",\n value: function getScore() {\n return this.score;\n }\n }, {\n key: \"getAlignments\",\n value: function getAlignments() {\n return this.alignments;\n }\n\n // Main dynamic programming procedure\n\n }, {\n key: \"computeGrids\",\n value: function computeGrids() {\n // Fill in the first row\n for (var j = 1; j < this.jMax; j++) {\n this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;\n this.tracebackGrid[0][j] = [false, false, true];\n }\n\n // Fill in the first column\n for (var i = 1; i < this.iMax; i++) {\n this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty;\n this.tracebackGrid[i][0] = [false, true, false];\n }\n\n // Fill the rest of the grid\n for (var _i2 = 1; _i2 < this.iMax; _i2++) {\n for (var _j2 = 1; _j2 < this.jMax; _j2++) {\n // Find the max score(s) among [`Diag`, `Up`, `Left`]\n var diag = void 0;\n if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;\n\n var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;\n var left = this.grid[_i2][_j2 - 1] + this.gap_penalty;\n\n // If there exists multiple max values, capture them for multiple paths\n var maxOf = [diag, up, left];\n var indices = this.arrayAllMaxIndexes(maxOf);\n\n // Update Grids\n this.grid[_i2][_j2] = maxOf[indices[0]];\n this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];\n }\n }\n\n // Update alignment score\n this.score = this.grid[this.iMax - 1][this.jMax - 1];\n }\n\n // Gets all possible valid sequence combinations\n\n }, {\n key: \"alignmentTraceback\",\n value: function alignmentTraceback() {\n var inProcessAlignments = [];\n\n inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length],\n seq1: \"\",\n seq2: \"\"\n });\n\n while (inProcessAlignments[0]) {\n var current = inProcessAlignments[0];\n var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];\n\n if (directions[0]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n if (directions[1]) {\n inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]],\n seq1: this.sequence1[current.pos[0] - 1] + current.seq1,\n seq2: '-' + current.seq2\n });\n }\n if (directions[2]) {\n inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1],\n seq1: '-' + current.seq1,\n seq2: this.sequence2[current.pos[1] - 1] + current.seq2\n });\n }\n\n if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1,\n sequence2: current.seq2\n });\n\n inProcessAlignments.shift();\n }\n\n return this.alignments;\n }\n\n // Helper Functions\n\n }, {\n key: \"getAllIndexes\",\n value: function getAllIndexes(arr, val) {\n var indexes = [],\n i = -1;\n while ((i = arr.indexOf(val, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n }\n }, {\n key: \"arrayAllMaxIndexes\",\n value: function arrayAllMaxIndexes(array) {\n return this.getAllIndexes(array, Math.max.apply(null, array));\n }\n }]);\n\n return NeedlemanWunsch;\n}();\n\nmodule.exports = NeedlemanWunsch;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar layoutBase = function layoutBase() {\n return;\n};\n\nlayoutBase.FDLayout = __webpack_require__(18);\nlayoutBase.FDLayoutConstants = __webpack_require__(7);\nlayoutBase.FDLayoutEdge = __webpack_require__(19);\nlayoutBase.FDLayoutNode = __webpack_require__(20);\nlayoutBase.DimensionD = __webpack_require__(21);\nlayoutBase.HashMap = __webpack_require__(22);\nlayoutBase.HashSet = __webpack_require__(23);\nlayoutBase.IGeometry = __webpack_require__(8);\nlayoutBase.IMath = __webpack_require__(9);\nlayoutBase.Integer = __webpack_require__(10);\nlayoutBase.Point = __webpack_require__(12);\nlayoutBase.PointD = __webpack_require__(4);\nlayoutBase.RandomSeed = __webpack_require__(16);\nlayoutBase.RectangleD = __webpack_require__(13);\nlayoutBase.Transform = __webpack_require__(17);\nlayoutBase.UniqueIDGeneretor = __webpack_require__(14);\nlayoutBase.Quicksort = __webpack_require__(24);\nlayoutBase.LinkedList = __webpack_require__(11);\nlayoutBase.LGraphObject = __webpack_require__(2);\nlayoutBase.LGraph = __webpack_require__(5);\nlayoutBase.LEdge = __webpack_require__(1);\nlayoutBase.LGraphManager = __webpack_require__(6);\nlayoutBase.LNode = __webpack_require__(3);\nlayoutBase.Layout = __webpack_require__(15);\nlayoutBase.LayoutConstants = __webpack_require__(0);\nlayoutBase.NeedlemanWunsch = __webpack_require__(25);\n\nmodule.exports = layoutBase;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction Emitter() {\n this.listeners = [];\n}\n\nvar p = Emitter.prototype;\n\np.addListener = function (event, callback) {\n this.listeners.push({\n event: event,\n callback: callback\n });\n};\n\np.removeListener = function (event, callback) {\n for (var i = this.listeners.length; i >= 0; i--) {\n var l = this.listeners[i];\n\n if (l.event === event && l.callback === callback) {\n this.listeners.splice(i, 1);\n }\n }\n};\n\np.emit = function (event, data) {\n for (var i = 0; i < this.listeners.length; i++) {\n var l = this.listeners[i];\n\n if (event === l.event) {\n l.callback(data);\n }\n }\n};\n\nmodule.exports = Emitter;\n\n/***/ })\n/******/ ]);\n});", "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"layout-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"layout-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"coseBase\"] = factory(require(\"layout-base\"));\n\telse\n\t\troot[\"coseBase\"] = factory(root[\"layoutBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\n\nfunction CoSEConstants() {}\n\n//CoSEConstants inherits static props in FDLayoutConstants\nfor (var prop in FDLayoutConstants) {\n CoSEConstants[prop] = FDLayoutConstants[prop];\n}\n\nCoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;\nCoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\nCoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;\nCoSEConstants.TILE = true;\nCoSEConstants.TILING_PADDING_VERTICAL = 10;\nCoSEConstants.TILING_PADDING_HORIZONTAL = 10;\nCoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; // make this true when cose is used incrementally as a part of other non-incremental layout\n\nmodule.exports = CoSEConstants;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;\n\nfunction CoSEEdge(source, target, vEdge) {\n FDLayoutEdge.call(this, source, target, vEdge);\n}\n\nCoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);\nfor (var prop in FDLayoutEdge) {\n CoSEEdge[prop] = FDLayoutEdge[prop];\n}\n\nmodule.exports = CoSEEdge;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph = __webpack_require__(0).LGraph;\n\nfunction CoSEGraph(parent, graphMgr, vGraph) {\n LGraph.call(this, parent, graphMgr, vGraph);\n}\n\nCoSEGraph.prototype = Object.create(LGraph.prototype);\nfor (var prop in LGraph) {\n CoSEGraph[prop] = LGraph[prop];\n}\n\nmodule.exports = CoSEGraph;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphManager = __webpack_require__(0).LGraphManager;\n\nfunction CoSEGraphManager(layout) {\n LGraphManager.call(this, layout);\n}\n\nCoSEGraphManager.prototype = Object.create(LGraphManager.prototype);\nfor (var prop in LGraphManager) {\n CoSEGraphManager[prop] = LGraphManager[prop];\n}\n\nmodule.exports = CoSEGraphManager;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutNode = __webpack_require__(0).FDLayoutNode;\nvar IMath = __webpack_require__(0).IMath;\n\nfunction CoSENode(gm, loc, size, vNode) {\n FDLayoutNode.call(this, gm, loc, size, vNode);\n}\n\nCoSENode.prototype = Object.create(FDLayoutNode.prototype);\nfor (var prop in FDLayoutNode) {\n CoSENode[prop] = FDLayoutNode[prop];\n}\n\nCoSENode.prototype.move = function () {\n var layout = this.graphManager.getLayout();\n this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;\n this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;\n\n if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);\n }\n\n if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);\n }\n\n // a simple node, just move it\n if (this.child == null) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // an empty compound node, again just move it\n else if (this.child.getNodes().length == 0) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // non-empty compound node, propogate movement to children as well\n else {\n this.propogateDisplacementToChildren(this.displacementX, this.displacementY);\n }\n\n layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);\n\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n this.displacementX = 0;\n this.displacementY = 0;\n};\n\nCoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) {\n var nodes = this.getChild().getNodes();\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n node.moveBy(dX, dY);\n node.displacementX += dX;\n node.displacementY += dY;\n } else {\n node.propogateDisplacementToChildren(dX, dY);\n }\n }\n};\n\nCoSENode.prototype.setPred1 = function (pred1) {\n this.pred1 = pred1;\n};\n\nCoSENode.prototype.getPred1 = function () {\n return pred1;\n};\n\nCoSENode.prototype.getPred2 = function () {\n return pred2;\n};\n\nCoSENode.prototype.setNext = function (next) {\n this.next = next;\n};\n\nCoSENode.prototype.getNext = function () {\n return next;\n};\n\nCoSENode.prototype.setProcessed = function (processed) {\n this.processed = processed;\n};\n\nCoSENode.prototype.isProcessed = function () {\n return processed;\n};\n\nmodule.exports = CoSENode;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayout = __webpack_require__(0).FDLayout;\nvar CoSEGraphManager = __webpack_require__(4);\nvar CoSEGraph = __webpack_require__(3);\nvar CoSENode = __webpack_require__(5);\nvar CoSEEdge = __webpack_require__(2);\nvar CoSEConstants = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\nvar LayoutConstants = __webpack_require__(0).LayoutConstants;\nvar Point = __webpack_require__(0).Point;\nvar PointD = __webpack_require__(0).PointD;\nvar Layout = __webpack_require__(0).Layout;\nvar Integer = __webpack_require__(0).Integer;\nvar IGeometry = __webpack_require__(0).IGeometry;\nvar LGraph = __webpack_require__(0).LGraph;\nvar Transform = __webpack_require__(0).Transform;\n\nfunction CoSELayout() {\n FDLayout.call(this);\n\n this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled\n}\n\nCoSELayout.prototype = Object.create(FDLayout.prototype);\n\nfor (var prop in FDLayout) {\n CoSELayout[prop] = FDLayout[prop];\n}\n\nCoSELayout.prototype.newGraphManager = function () {\n var gm = new CoSEGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nCoSELayout.prototype.newGraph = function (vGraph) {\n return new CoSEGraph(null, this.graphManager, vGraph);\n};\n\nCoSELayout.prototype.newNode = function (vNode) {\n return new CoSENode(this.graphManager, vNode);\n};\n\nCoSELayout.prototype.newEdge = function (vEdge) {\n return new CoSEEdge(null, null, vEdge);\n};\n\nCoSELayout.prototype.initParameters = function () {\n FDLayout.prototype.initParameters.call(this, arguments);\n if (!this.isSubLayout) {\n if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {\n this.idealEdgeLength = 10;\n } else {\n this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;\n }\n\n this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n\n // variables for tree reduction support\n this.prunedNodesAll = [];\n this.growTreeIterations = 0;\n this.afterGrowthIterations = 0;\n this.isTreeGrowing = false;\n this.isGrowthFinished = false;\n\n // variables for cooling\n this.coolingCycle = 0;\n this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;\n this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;\n this.coolingAdjuster = 1;\n }\n};\n\nCoSELayout.prototype.layout = function () {\n var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n if (createBendsAsNeeded) {\n this.createBendpoints();\n this.graphManager.resetAllEdges();\n }\n\n this.level = 0;\n return this.classicLayout();\n};\n\nCoSELayout.prototype.classicLayout = function () {\n this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();\n this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);\n this.calcNoOfChildrenForAllNodes();\n this.graphManager.calcLowestCommonAncestors();\n this.graphManager.calcInclusionTreeDepths();\n this.graphManager.getRoot().calcEstimatedSize();\n this.calcIdealEdgeLengths();\n\n if (!this.incremental) {\n var forest = this.getFlatForest();\n\n // The graph associated with this layout is flat and a forest\n if (forest.length > 0) {\n this.positionNodesRadially(forest);\n }\n // The graph associated with this layout is not flat or a forest\n else {\n // Reduce the trees when incremental mode is not enabled and graph is not a forest \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.positionNodesRandomly();\n }\n } else {\n if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {\n // Reduce the trees in incremental mode if only this constant is set to true \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n }\n }\n\n this.initSpringEmbedder();\n this.runSpringEmbedder();\n\n return true;\n};\n\nCoSELayout.prototype.tick = function () {\n this.totalIterations++;\n\n if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.isConverged()) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n this.coolingCycle++;\n\n if (this.layoutQuality == 0) {\n // quality - \"draft\"\n this.coolingAdjuster = this.coolingCycle;\n } else if (this.layoutQuality == 1) {\n // quality - \"default\"\n this.coolingAdjuster = this.coolingCycle / 3;\n }\n\n // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3\n this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);\n this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));\n }\n // Operations while tree is growing again \n if (this.isTreeGrowing) {\n if (this.growTreeIterations % 10 == 0) {\n if (this.prunedNodesAll.length > 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n this.growTree(this.prunedNodesAll);\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.graphManager.updateBounds();\n this.updateGrid();\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n } else {\n this.isTreeGrowing = false;\n this.isGrowthFinished = true;\n }\n }\n this.growTreeIterations++;\n }\n // Operations after growth is finished\n if (this.isGrowthFinished) {\n if (this.isConverged()) {\n return true;\n }\n if (this.afterGrowthIterations % 10 == 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n }\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);\n this.afterGrowthIterations++;\n }\n\n var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;\n var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;\n\n this.totalDisplacement = 0;\n this.graphManager.updateBounds();\n this.calcSpringForces();\n this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);\n this.calcGravitationalForces();\n this.moveNodes();\n this.animate();\n\n return false; // Layout is not ended yet return false\n};\n\nCoSELayout.prototype.getPositionsData = function () {\n var allNodes = this.graphManager.getAllNodes();\n var pData = {};\n for (var i = 0; i < allNodes.length; i++) {\n var rect = allNodes[i].rect;\n var id = allNodes[i].id;\n pData[id] = {\n id: id,\n x: rect.getCenterX(),\n y: rect.getCenterY(),\n w: rect.width,\n h: rect.height\n };\n }\n\n return pData;\n};\n\nCoSELayout.prototype.runSpringEmbedder = function () {\n this.initialAnimationPeriod = 25;\n this.animationPeriod = this.initialAnimationPeriod;\n var layoutEnded = false;\n\n // If aminate option is 'during' signal that layout is supposed to start iterating\n if (FDLayoutConstants.ANIMATE === 'during') {\n this.emit('layoutstarted');\n } else {\n // If aminate option is 'during' tick() function will be called on index.js\n while (!layoutEnded) {\n layoutEnded = this.tick();\n }\n\n this.graphManager.updateBounds();\n }\n};\n\nCoSELayout.prototype.calculateNodesToApplyGravitationTo = function () {\n var nodeList = [];\n var graph;\n\n var graphs = this.graphManager.getGraphs();\n var size = graphs.length;\n var i;\n for (i = 0; i < size; i++) {\n graph = graphs[i];\n\n graph.updateConnected();\n\n if (!graph.isConnected) {\n nodeList = nodeList.concat(graph.getNodes());\n }\n }\n\n return nodeList;\n};\n\nCoSELayout.prototype.createBendpoints = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n var visited = new Set();\n var i;\n for (i = 0; i < edges.length; i++) {\n var edge = edges[i];\n\n if (!visited.has(edge)) {\n var source = edge.getSource();\n var target = edge.getTarget();\n\n if (source == target) {\n edge.getBendpoints().push(new PointD());\n edge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(edge);\n visited.add(edge);\n } else {\n var edgeList = [];\n\n edgeList = edgeList.concat(source.getEdgeListToNode(target));\n edgeList = edgeList.concat(target.getEdgeListToNode(source));\n\n if (!visited.has(edgeList[0])) {\n if (edgeList.length > 1) {\n var k;\n for (k = 0; k < edgeList.length; k++) {\n var multiEdge = edgeList[k];\n multiEdge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(multiEdge);\n }\n }\n edgeList.forEach(function (edge) {\n visited.add(edge);\n });\n }\n }\n }\n\n if (visited.size == edges.length) {\n break;\n }\n }\n};\n\nCoSELayout.prototype.positionNodesRadially = function (forest) {\n // We tile the trees to a grid row by row; first tree starts at (0,0)\n var currentStartingPoint = new Point(0, 0);\n var numberOfColumns = Math.ceil(Math.sqrt(forest.length));\n var height = 0;\n var currentY = 0;\n var currentX = 0;\n var point = new PointD(0, 0);\n\n for (var i = 0; i < forest.length; i++) {\n if (i % numberOfColumns == 0) {\n // Start of a new row, make the x coordinate 0, increment the\n // y coordinate with the max height of the previous row\n currentX = 0;\n currentY = height;\n\n if (i != 0) {\n currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;\n }\n\n height = 0;\n }\n\n var tree = forest[i];\n\n // Find the center of the tree\n var centerNode = Layout.findCenterOfTree(tree);\n\n // Set the staring point of the next tree\n currentStartingPoint.x = currentX;\n currentStartingPoint.y = currentY;\n\n // Do a radial layout starting with the center\n point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);\n\n if (point.y > height) {\n height = Math.floor(point.y);\n }\n\n currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);\n }\n\n this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));\n};\n\nCoSELayout.radialLayout = function (tree, centerNode, startingPoint) {\n var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);\n CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);\n var bounds = LGraph.calculateBounds(tree);\n\n var transform = new Transform();\n transform.setDeviceOrgX(bounds.getMinX());\n transform.setDeviceOrgY(bounds.getMinY());\n transform.setWorldOrgX(startingPoint.x);\n transform.setWorldOrgY(startingPoint.y);\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n node.transform(transform);\n }\n\n var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());\n\n return transform.inverseTransformPoint(bottomRight);\n};\n\nCoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {\n // First, position this node by finding its angle.\n var halfInterval = (endAngle - startAngle + 1) / 2;\n\n if (halfInterval < 0) {\n halfInterval += 180;\n }\n\n var nodeAngle = (halfInterval + startAngle) % 360;\n var teta = nodeAngle * IGeometry.TWO_PI / 360;\n\n // Make polar to java cordinate conversion.\n var cos_teta = Math.cos(teta);\n var x_ = distance * Math.cos(teta);\n var y_ = distance * Math.sin(teta);\n\n node.setCenter(x_, y_);\n\n // Traverse all neighbors of this node and recursively call this\n // function.\n var neighborEdges = [];\n neighborEdges = neighborEdges.concat(node.getEdges());\n var childCount = neighborEdges.length;\n\n if (parentOfNode != null) {\n childCount--;\n }\n\n var branchCount = 0;\n\n var incEdgesCount = neighborEdges.length;\n var startIndex;\n\n var edges = node.getEdgesBetween(parentOfNode);\n\n // If there are multiple edges, prune them until there remains only one\n // edge.\n while (edges.length > 1) {\n //neighborEdges.remove(edges.remove(0));\n var temp = edges[0];\n edges.splice(0, 1);\n var index = neighborEdges.indexOf(temp);\n if (index >= 0) {\n neighborEdges.splice(index, 1);\n }\n incEdgesCount--;\n childCount--;\n }\n\n if (parentOfNode != null) {\n //assert edges.length == 1;\n startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;\n } else {\n startIndex = 0;\n }\n\n var stepAngle = Math.abs(endAngle - startAngle) / childCount;\n\n for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(node);\n\n // Don't back traverse to root node in current tree.\n if (currentNeighbor == parentOfNode) {\n continue;\n }\n\n var childStartAngle = (startAngle + branchCount * stepAngle) % 360;\n var childEndAngle = (childStartAngle + stepAngle) % 360;\n\n CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);\n\n branchCount++;\n }\n};\n\nCoSELayout.maxDiagonalInTree = function (tree) {\n var maxDiagonal = Integer.MIN_VALUE;\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n var diagonal = node.getDiagonal();\n\n if (diagonal > maxDiagonal) {\n maxDiagonal = diagonal;\n }\n }\n\n return maxDiagonal;\n};\n\nCoSELayout.prototype.calcRepulsionRange = function () {\n // formula is 2 x (level + 1) x idealEdgeLength\n return 2 * (this.level + 1) * this.idealEdgeLength;\n};\n\n// Tiling methods\n\n// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's\nCoSELayout.prototype.groupZeroDegreeMembers = function () {\n var self = this;\n // array of [parent_id x oneDegreeNode_id]\n var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members\n this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled\n this.idToDummyNode = {}; // A map of id to dummy node \n\n var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled\n var allNodes = this.graphManager.getAllNodes();\n\n // Fill zero degree list\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n var parent = node.getParent();\n // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list\n if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) {\n zeroDegree.push(node);\n }\n }\n\n // Create a map of parent node and its zero degree members\n for (var i = 0; i < zeroDegree.length; i++) {\n var node = zeroDegree[i]; // Zero degree node itself\n var p_id = node.getParent().id; // Parent id\n\n if (typeof tempMemberGroups[p_id] === \"undefined\") tempMemberGroups[p_id] = [];\n\n tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups\n }\n\n // If there are at least two nodes at a level, create a dummy compound for them\n Object.keys(tempMemberGroups).forEach(function (p_id) {\n if (tempMemberGroups[p_id].length > 1) {\n var dummyCompoundId = \"DummyCompound_\" + p_id; // The id of dummy compound which will be created soon\n self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups\n\n var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound\n\n // Create a dummy compound with calculated id\n var dummyCompound = new CoSENode(self.graphManager);\n dummyCompound.id = dummyCompoundId;\n dummyCompound.paddingLeft = parent.paddingLeft || 0;\n dummyCompound.paddingRight = parent.paddingRight || 0;\n dummyCompound.paddingBottom = parent.paddingBottom || 0;\n dummyCompound.paddingTop = parent.paddingTop || 0;\n\n self.idToDummyNode[dummyCompoundId] = dummyCompound;\n\n var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound);\n var parentGraph = parent.getChild();\n\n // Add dummy compound to parent the graph\n parentGraph.add(dummyCompound);\n\n // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent\n for (var i = 0; i < tempMemberGroups[p_id].length; i++) {\n var node = tempMemberGroups[p_id][i];\n\n parentGraph.remove(node);\n dummyParentGraph.add(node);\n }\n }\n });\n};\n\nCoSELayout.prototype.clearCompounds = function () {\n var childGraphMap = {};\n var idToNode = {};\n\n // Get compound ordering by finding the inner one first\n this.performDFSOnCompounds();\n\n for (var i = 0; i < this.compoundOrder.length; i++) {\n\n idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];\n childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());\n\n // Remove children of compounds\n this.graphManager.remove(this.compoundOrder[i].getChild());\n this.compoundOrder[i].child = null;\n }\n\n this.graphManager.resetAllNodes();\n\n // Tile the removed children\n this.tileCompoundMembers(childGraphMap, idToNode);\n};\n\nCoSELayout.prototype.clearZeroDegreeMembers = function () {\n var self = this;\n var tiledZeroDegreePack = this.tiledZeroDegreePack = [];\n\n Object.keys(this.memberGroups).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound\n\n tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n // Set the width and height of the dummy compound as calculated\n compoundNode.rect.width = tiledZeroDegreePack[id].width;\n compoundNode.rect.height = tiledZeroDegreePack[id].height;\n });\n};\n\nCoSELayout.prototype.repopulateCompounds = function () {\n for (var i = this.compoundOrder.length - 1; i >= 0; i--) {\n var lCompoundNode = this.compoundOrder[i];\n var id = lCompoundNode.id;\n var horizontalMargin = lCompoundNode.paddingLeft;\n var verticalMargin = lCompoundNode.paddingTop;\n\n this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);\n }\n};\n\nCoSELayout.prototype.repopulateZeroDegreeMembers = function () {\n var self = this;\n var tiledPack = this.tiledZeroDegreePack;\n\n Object.keys(tiledPack).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id\n var horizontalMargin = compoundNode.paddingLeft;\n var verticalMargin = compoundNode.paddingTop;\n\n // Adjust the positions of nodes wrt its compound\n self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);\n });\n};\n\nCoSELayout.prototype.getToBeTiled = function (node) {\n var id = node.id;\n //firstly check the previous results\n if (this.toBeTiled[id] != null) {\n return this.toBeTiled[id];\n }\n\n //only compound nodes are to be tiled\n var childGraph = node.getChild();\n if (childGraph == null) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n var children = childGraph.getNodes(); // Get the children nodes\n\n //a compound node is not to be tiled if all of its compound children are not to be tiled\n for (var i = 0; i < children.length; i++) {\n var theChild = children[i];\n\n if (this.getNodeDegree(theChild) > 0) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n //pass the children not having the compound structure\n if (theChild.getChild() == null) {\n this.toBeTiled[theChild.id] = false;\n continue;\n }\n\n if (!this.getToBeTiled(theChild)) {\n this.toBeTiled[id] = false;\n return false;\n }\n }\n this.toBeTiled[id] = true;\n return true;\n};\n\n// Get degree of a node depending of its edges and independent of its children\nCoSELayout.prototype.getNodeDegree = function (node) {\n var id = node.id;\n var edges = node.getEdges();\n var degree = 0;\n\n // For the edges connected\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n if (edge.getSource().id !== edge.getTarget().id) {\n degree = degree + 1;\n }\n }\n return degree;\n};\n\n// Get degree of a node with its children\nCoSELayout.prototype.getNodeDegreeWithChildren = function (node) {\n var degree = this.getNodeDegree(node);\n if (node.getChild() == null) {\n return degree;\n }\n var children = node.getChild().getNodes();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n degree += this.getNodeDegreeWithChildren(child);\n }\n return degree;\n};\n\nCoSELayout.prototype.performDFSOnCompounds = function () {\n this.compoundOrder = [];\n this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());\n};\n\nCoSELayout.prototype.fillCompexOrderByDFS = function (children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.getChild() != null) {\n this.fillCompexOrderByDFS(child.getChild().getNodes());\n }\n if (this.getToBeTiled(child)) {\n this.compoundOrder.push(child);\n }\n }\n};\n\n/**\n* This method places each zero degree member wrt given (x,y) coordinates (top left).\n*/\nCoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) {\n x += compoundHorizontalMargin;\n y += compoundVerticalMargin;\n\n var left = x;\n\n for (var i = 0; i < organization.rows.length; i++) {\n var row = organization.rows[i];\n x = left;\n var maxHeight = 0;\n\n for (var j = 0; j < row.length; j++) {\n var lnode = row[j];\n\n lnode.rect.x = x; // + lnode.rect.width / 2;\n lnode.rect.y = y; // + lnode.rect.height / 2;\n\n x += lnode.rect.width + organization.horizontalPadding;\n\n if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;\n }\n\n y += maxHeight + organization.verticalPadding;\n }\n};\n\nCoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) {\n var self = this;\n this.tiledMemberPack = [];\n\n Object.keys(childGraphMap).forEach(function (id) {\n // Get the compound node\n var compoundNode = idToNode[id];\n\n self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n compoundNode.rect.width = self.tiledMemberPack[id].width;\n compoundNode.rect.height = self.tiledMemberPack[id].height;\n });\n};\n\nCoSELayout.prototype.tileNodes = function (nodes, minWidth) {\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n var organization = {\n rows: [],\n rowWidth: [],\n rowHeight: [],\n width: 0,\n height: minWidth, // assume minHeight equals to minWidth\n verticalPadding: verticalPadding,\n horizontalPadding: horizontalPadding\n };\n\n // Sort the nodes in ascending order of their areas\n nodes.sort(function (n1, n2) {\n if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1;\n if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1;\n return 0;\n });\n\n // Create the organization -> tile members\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n if (organization.rows.length == 0) {\n this.insertNodeToRow(organization, lNode, 0, minWidth);\n } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {\n this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);\n } else {\n this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);\n }\n\n this.shiftToLastRow(organization);\n }\n\n return organization;\n};\n\nCoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) {\n var minCompoundSize = minWidth;\n\n // Add new row if needed\n if (rowIndex == organization.rows.length) {\n var secondDimension = [];\n\n organization.rows.push(secondDimension);\n organization.rowWidth.push(minCompoundSize);\n organization.rowHeight.push(0);\n }\n\n // Update row width\n var w = organization.rowWidth[rowIndex] + node.rect.width;\n\n if (organization.rows[rowIndex].length > 0) {\n w += organization.horizontalPadding;\n }\n\n organization.rowWidth[rowIndex] = w;\n // Update compound width\n if (organization.width < w) {\n organization.width = w;\n }\n\n // Update height\n var h = node.rect.height;\n if (rowIndex > 0) h += organization.verticalPadding;\n\n var extraHeight = 0;\n if (h > organization.rowHeight[rowIndex]) {\n extraHeight = organization.rowHeight[rowIndex];\n organization.rowHeight[rowIndex] = h;\n extraHeight = organization.rowHeight[rowIndex] - extraHeight;\n }\n\n organization.height += extraHeight;\n\n // Insert node\n organization.rows[rowIndex].push(node);\n};\n\n//Scans the rows of an organization and returns the one with the min width\nCoSELayout.prototype.getShortestRowIndex = function (organization) {\n var r = -1;\n var min = Number.MAX_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n if (organization.rowWidth[i] < min) {\n r = i;\n min = organization.rowWidth[i];\n }\n }\n return r;\n};\n\n//Scans the rows of an organization and returns the one with the max width\nCoSELayout.prototype.getLongestRowIndex = function (organization) {\n var r = -1;\n var max = Number.MIN_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n\n if (organization.rowWidth[i] > max) {\n r = i;\n max = organization.rowWidth[i];\n }\n }\n\n return r;\n};\n\n/**\n* This method checks whether adding extra width to the organization violates\n* the aspect ratio(1) or not.\n*/\nCoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) {\n\n var sri = this.getShortestRowIndex(organization);\n\n if (sri < 0) {\n return true;\n }\n\n var min = organization.rowWidth[sri];\n\n if (min + organization.horizontalPadding + extraWidth <= organization.width) return true;\n\n var hDiff = 0;\n\n // Adding to an existing row\n if (organization.rowHeight[sri] < extraHeight) {\n if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];\n }\n\n var add_to_row_ratio;\n if (organization.width - min >= extraWidth + organization.horizontalPadding) {\n add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);\n } else {\n add_to_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n // Adding a new row for this node\n hDiff = extraHeight + organization.verticalPadding;\n var add_new_row_ratio;\n if (organization.width < extraWidth) {\n add_new_row_ratio = (organization.height + hDiff) / extraWidth;\n } else {\n add_new_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;\n\n if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;\n\n return add_to_row_ratio < add_new_row_ratio;\n};\n\n//If moving the last node from the longest row and adding it to the last\n//row makes the bounding box smaller, do it.\nCoSELayout.prototype.shiftToLastRow = function (organization) {\n var longest = this.getLongestRowIndex(organization);\n var last = organization.rowWidth.length - 1;\n var row = organization.rows[longest];\n var node = row[row.length - 1];\n\n var diff = node.width + organization.horizontalPadding;\n\n // Check if there is enough space on the last row\n if (organization.width - organization.rowWidth[last] > diff && longest != last) {\n // Remove the last element of the longest row\n row.splice(-1, 1);\n\n // Push it to the last row\n organization.rows[last].push(node);\n\n organization.rowWidth[longest] = organization.rowWidth[longest] - diff;\n organization.rowWidth[last] = organization.rowWidth[last] + diff;\n organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];\n\n // Update heights of the organization\n var maxHeight = Number.MIN_VALUE;\n for (var i = 0; i < row.length; i++) {\n if (row[i].height > maxHeight) maxHeight = row[i].height;\n }\n if (longest > 0) maxHeight += organization.verticalPadding;\n\n var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n\n organization.rowHeight[longest] = maxHeight;\n if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding;\n\n var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n organization.height += finalTotal - prevTotal;\n\n this.shiftToLastRow(organization);\n }\n};\n\nCoSELayout.prototype.tilingPreLayout = function () {\n if (CoSEConstants.TILE) {\n // Find zero degree nodes and create a compound for each level\n this.groupZeroDegreeMembers();\n // Tile and clear children of each compound\n this.clearCompounds();\n // Separately tile and clear zero degree nodes for each level\n this.clearZeroDegreeMembers();\n }\n};\n\nCoSELayout.prototype.tilingPostLayout = function () {\n if (CoSEConstants.TILE) {\n this.repopulateZeroDegreeMembers();\n this.repopulateCompounds();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Tree Reduction methods\n// -----------------------------------------------------------------------------\n// Reduce trees \nCoSELayout.prototype.reduceTrees = function () {\n var prunedNodesAll = [];\n var containsLeaf = true;\n var node;\n\n while (containsLeaf) {\n var allNodes = this.graphManager.getAllNodes();\n var prunedNodesInStepTemp = [];\n containsLeaf = false;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);\n containsLeaf = true;\n }\n }\n if (containsLeaf == true) {\n var prunedNodesInStep = [];\n for (var j = 0; j < prunedNodesInStepTemp.length; j++) {\n if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {\n prunedNodesInStep.push(prunedNodesInStepTemp[j]);\n prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);\n }\n }\n prunedNodesAll.push(prunedNodesInStep);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n }\n }\n this.prunedNodesAll = prunedNodesAll;\n};\n\n// Grow tree one step \nCoSELayout.prototype.growTree = function (prunedNodesAll) {\n var lengthOfPrunedNodesInStep = prunedNodesAll.length;\n var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];\n\n var nodeData;\n for (var i = 0; i < prunedNodesInStep.length; i++) {\n nodeData = prunedNodesInStep[i];\n\n this.findPlaceforPrunedNode(nodeData);\n\n nodeData[2].add(nodeData[0]);\n nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);\n }\n\n prunedNodesAll.splice(prunedNodesAll.length - 1, 1);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n};\n\n// Find an appropriate position to replace pruned node, this method can be improved\nCoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) {\n\n var gridForPrunedNode;\n var nodeToConnect;\n var prunedNode = nodeData[0];\n if (prunedNode == nodeData[1].source) {\n nodeToConnect = nodeData[1].target;\n } else {\n nodeToConnect = nodeData[1].source;\n }\n var startGridX = nodeToConnect.startX;\n var finishGridX = nodeToConnect.finishX;\n var startGridY = nodeToConnect.startY;\n var finishGridY = nodeToConnect.finishY;\n\n var upNodeCount = 0;\n var downNodeCount = 0;\n var rightNodeCount = 0;\n var leftNodeCount = 0;\n var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];\n\n if (startGridY > 0) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;\n }\n }\n if (finishGridX < this.grid.length - 1) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;\n }\n }\n if (finishGridY < this.grid[0].length - 1) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;\n }\n }\n if (startGridX > 0) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;\n }\n }\n var min = Integer.MAX_VALUE;\n var minCount;\n var minIndex;\n for (var j = 0; j < controlRegions.length; j++) {\n if (controlRegions[j] < min) {\n min = controlRegions[j];\n minCount = 1;\n minIndex = j;\n } else if (controlRegions[j] == min) {\n minCount++;\n }\n }\n\n if (minCount == 3 && min == 0) {\n if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {\n gridForPrunedNode = 1;\n } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 0;\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 3;\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 2;\n }\n } else if (minCount == 2 && min == 0) {\n var random = Math.floor(Math.random() * 2);\n if (controlRegions[0] == 0 && controlRegions[1] == 0) {\n ;\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 1;\n }\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 3;\n }\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 3;\n }\n } else {\n if (random == 0) {\n gridForPrunedNode = 2;\n } else {\n gridForPrunedNode = 3;\n }\n }\n } else if (minCount == 4 && min == 0) {\n var random = Math.floor(Math.random() * 4);\n gridForPrunedNode = random;\n } else {\n gridForPrunedNode = minIndex;\n }\n\n if (gridForPrunedNode == 0) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);\n } else if (gridForPrunedNode == 1) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n } else if (gridForPrunedNode == 2) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);\n } else {\n prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n }\n};\n\nmodule.exports = CoSELayout;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar coseBase = {};\n\ncoseBase.layoutBase = __webpack_require__(0);\ncoseBase.CoSEConstants = __webpack_require__(1);\ncoseBase.CoSEEdge = __webpack_require__(2);\ncoseBase.CoSEGraph = __webpack_require__(3);\ncoseBase.CoSEGraphManager = __webpack_require__(4);\ncoseBase.CoSELayout = __webpack_require__(6);\ncoseBase.CoSENode = __webpack_require__(5);\n\nmodule.exports = coseBase;\n\n/***/ })\n/******/ ]);\n});", "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"cose-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"cose-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapeCoseBilkent\"] = factory(require(\"cose-base\"));\n\telse\n\t\troot[\"cytoscapeCoseBilkent\"] = factory(root[\"coseBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;\nvar FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;\nvar CoSEConstants = __webpack_require__(0).CoSEConstants;\nvar CoSELayout = __webpack_require__(0).CoSELayout;\nvar CoSENode = __webpack_require__(0).CoSENode;\nvar PointD = __webpack_require__(0).layoutBase.PointD;\nvar DimensionD = __webpack_require__(0).layoutBase.DimensionD;\n\nvar defaults = {\n // Called on `layoutready`\n ready: function ready() {},\n // Called on `layoutstop`\n stop: function stop() {},\n // 'draft', 'default' or 'proof\" \n // - 'draft' fast cooling rate \n // - 'default' moderate cooling rate \n // - \"proof\" slow cooling rate\n quality: 'default',\n // include labels in node dimensions\n nodeDimensionsIncludeLabels: false,\n // number of ticks per frame; higher is faster but more jerky\n refresh: 30,\n // Whether to fit the network view after when done\n fit: true,\n // Padding on fit\n padding: 10,\n // Whether to enable incremental mode\n randomize: true,\n // Node repulsion (non overlapping) multiplier\n nodeRepulsion: 4500,\n // Ideal edge (non nested) length\n idealEdgeLength: 50,\n // Divisor to compute edge forces\n edgeElasticity: 0.45,\n // Nesting factor (multiplier) to compute ideal edge length for nested edges\n nestingFactor: 0.1,\n // Gravity force (constant)\n gravity: 0.25,\n // Maximum number of iterations to perform\n numIter: 2500,\n // For enabling tiling\n tile: true,\n // Type of layout animation. The option set is {'during', 'end', false}\n animate: 'end',\n // Duration for animate:end\n animationDuration: 500,\n // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingVertical: 10,\n // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)\n tilingPaddingHorizontal: 10,\n // Gravity range (constant) for compounds\n gravityRangeCompound: 1.5,\n // Gravity force (constant) for compounds\n gravityCompound: 1.0,\n // Gravity range (constant)\n gravityRange: 3.8,\n // Initial cooling factor for incremental layout\n initialEnergyOnIncremental: 0.5\n};\n\nfunction extend(defaults, options) {\n var obj = {};\n\n for (var i in defaults) {\n obj[i] = defaults[i];\n }\n\n for (var i in options) {\n obj[i] = options[i];\n }\n\n return obj;\n};\n\nfunction _CoSELayout(_options) {\n this.options = extend(defaults, _options);\n getUserOptions(this.options);\n}\n\nvar getUserOptions = function getUserOptions(options) {\n if (options.nodeRepulsion != null) CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion;\n if (options.idealEdgeLength != null) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength;\n if (options.edgeElasticity != null) CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity;\n if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor;\n if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity;\n if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter;\n if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange;\n if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound;\n if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound;\n if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental;\n\n if (options.quality == 'draft') LayoutConstants.QUALITY = 0;else if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 1;\n\n CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels;\n CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize;\n CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate;\n CoSEConstants.TILE = options.tile;\n CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical;\n CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal;\n};\n\n_CoSELayout.prototype.run = function () {\n var ready;\n var frameId;\n var options = this.options;\n var idToLNode = this.idToLNode = {};\n var layout = this.layout = new CoSELayout();\n var self = this;\n\n self.stopped = false;\n\n this.cy = this.options.cy;\n\n this.cy.trigger({ type: 'layoutstart', layout: this });\n\n var gm = layout.newGraphManager();\n this.gm = gm;\n\n var nodes = this.options.eles.nodes();\n var edges = this.options.eles.edges();\n\n this.root = gm.addRoot();\n this.processChildrenList(this.root, this.getTopMostNodes(nodes), layout);\n\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n var sourceNode = this.idToLNode[edge.data(\"source\")];\n var targetNode = this.idToLNode[edge.data(\"target\")];\n if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {\n var e1 = gm.add(layout.newEdge(), sourceNode, targetNode);\n e1.id = edge.id();\n }\n }\n\n var getPositions = function getPositions(ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var theId = ele.data('id');\n var lNode = self.idToLNode[theId];\n\n return {\n x: lNode.getRect().getCenterX(),\n y: lNode.getRect().getCenterY()\n };\n };\n\n /*\n * Reposition nodes in iterations animatedly\n */\n var iterateAnimated = function iterateAnimated() {\n // Thigs to perform after nodes are repositioned on screen\n var afterReposition = function afterReposition() {\n if (options.fit) {\n options.cy.fit(options.eles, options.padding);\n }\n\n if (!ready) {\n ready = true;\n self.cy.one('layoutready', options.ready);\n self.cy.trigger({ type: 'layoutready', layout: self });\n }\n };\n\n var ticksPerFrame = self.options.refresh;\n var isDone;\n\n for (var i = 0; i < ticksPerFrame && !isDone; i++) {\n isDone = self.stopped || self.layout.tick();\n }\n\n // If layout is done\n if (isDone) {\n // If the layout is not a sublayout and it is successful perform post layout.\n if (layout.checkLayoutSuccess() && !layout.isSubLayout) {\n layout.doPostLayout();\n }\n\n // If layout has a tilingPostLayout function property call it.\n if (layout.tilingPostLayout) {\n layout.tilingPostLayout();\n }\n\n layout.isLayoutFinished = true;\n\n self.options.eles.nodes().positions(getPositions);\n\n afterReposition();\n\n // trigger layoutstop when the layout stops (e.g. finishes)\n self.cy.one('layoutstop', self.options.stop);\n self.cy.trigger({ type: 'layoutstop', layout: self });\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n\n ready = false;\n return;\n }\n\n var animationData = self.layout.getPositionsData(); // Get positions of layout nodes note that all nodes may not be layout nodes because of tiling\n\n // Position nodes, for the nodes whose id does not included in data (because they are removed from their parents and included in dummy compounds)\n // use position of their ancestors or dummy ancestors\n options.eles.nodes().positions(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n // If ele is a compound node, then its position will be defined by its children\n if (!ele.isParent()) {\n var theId = ele.id();\n var pNode = animationData[theId];\n var temp = ele;\n // If pNode is undefined search until finding position data of its first ancestor (It may be dummy as well)\n while (pNode == null) {\n pNode = animationData[temp.data('parent')] || animationData['DummyCompound_' + temp.data('parent')];\n animationData[theId] = pNode;\n temp = temp.parent()[0];\n if (temp == undefined) {\n break;\n }\n }\n if (pNode != null) {\n return {\n x: pNode.x,\n y: pNode.y\n };\n } else {\n return {\n x: ele.position('x'),\n y: ele.position('y')\n };\n }\n }\n });\n\n afterReposition();\n\n frameId = requestAnimationFrame(iterateAnimated);\n };\n\n /*\n * Listen 'layoutstarted' event and start animated iteration if animate option is 'during'\n */\n layout.addListener('layoutstarted', function () {\n if (self.options.animate === 'during') {\n frameId = requestAnimationFrame(iterateAnimated);\n }\n });\n\n layout.runLayout(); // Run cose layout\n\n /*\n * If animate option is not 'during' ('end' or false) perform these here (If it is 'during' similar things are already performed)\n */\n if (this.options.animate !== \"during\") {\n self.options.eles.nodes().not(\":parent\").layoutPositions(self, self.options, getPositions); // Use layout positions to reposition the nodes it considers the options parameter\n ready = false;\n }\n\n return this; // chaining\n};\n\n//Get the top most ones of a list of nodes\n_CoSELayout.prototype.getTopMostNodes = function (nodes) {\n var nodesMap = {};\n for (var i = 0; i < nodes.length; i++) {\n nodesMap[nodes[i].id()] = true;\n }\n var roots = nodes.filter(function (ele, i) {\n if (typeof ele === \"number\") {\n ele = i;\n }\n var parent = ele.parent()[0];\n while (parent != null) {\n if (nodesMap[parent.id()]) {\n return false;\n }\n parent = parent.parent()[0];\n }\n return true;\n });\n\n return roots;\n};\n\n_CoSELayout.prototype.processChildrenList = function (parent, children, layout) {\n var size = children.length;\n for (var i = 0; i < size; i++) {\n var theChild = children[i];\n var children_of_children = theChild.children();\n var theNode;\n\n var dimensions = theChild.layoutDimensions({\n nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels\n });\n\n if (theChild.outerWidth() != null && theChild.outerHeight() != null) {\n theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h))));\n } else {\n theNode = parent.add(new CoSENode(this.graphManager));\n }\n // Attach id to the layout node\n theNode.id = theChild.data(\"id\");\n // Attach the paddings of cy node to layout node\n theNode.paddingLeft = parseInt(theChild.css('padding'));\n theNode.paddingTop = parseInt(theChild.css('padding'));\n theNode.paddingRight = parseInt(theChild.css('padding'));\n theNode.paddingBottom = parseInt(theChild.css('padding'));\n\n //Attach the label properties to compound if labels will be included in node dimensions \n if (this.options.nodeDimensionsIncludeLabels) {\n if (theChild.isParent()) {\n var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;\n var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;\n var labelPos = theChild.css(\"text-halign\");\n theNode.labelWidth = labelWidth;\n theNode.labelHeight = labelHeight;\n theNode.labelPos = labelPos;\n }\n }\n\n // Map the layout node\n this.idToLNode[theChild.data(\"id\")] = theNode;\n\n if (isNaN(theNode.rect.x)) {\n theNode.rect.x = 0;\n }\n\n if (isNaN(theNode.rect.y)) {\n theNode.rect.y = 0;\n }\n\n if (children_of_children != null && children_of_children.length > 0) {\n var theNewGraph;\n theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode);\n this.processChildrenList(theNewGraph, children_of_children, layout);\n }\n }\n};\n\n/**\n * @brief : called on continuous layouts to stop them before they finish\n */\n_CoSELayout.prototype.stop = function () {\n this.stopped = true;\n\n return this; // chaining\n};\n\nvar register = function register(cytoscape) {\n // var Layout = getLayout( cytoscape );\n\n cytoscape('layout', 'cose-bilkent', _CoSELayout);\n};\n\n// auto reg for globals\nif (typeof cytoscape !== 'undefined') {\n register(cytoscape);\n}\n\nmodule.exports = register;\n\n/***/ })\n/******/ ]);\n});", "import { d as sanitizeText$1, c as getConfig, l as log, o as setupGraphViewbox } from \"./mermaid-934d9bea.js\";\nimport { select } from \"d3\";\nimport { a as createText } from \"./createText-aebacdfe.js\";\nimport cytoscape from \"cytoscape/dist/cytoscape.umd.js\";\nimport coseBilkent from \"cytoscape-cose-bilkent\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"mindMap\": 4, \"spaceLines\": 5, \"SPACELINE\": 6, \"NL\": 7, \"MINDMAP\": 8, \"document\": 9, \"stop\": 10, \"EOF\": 11, \"statement\": 12, \"SPACELIST\": 13, \"node\": 14, \"ICON\": 15, \"CLASS\": 16, \"nodeWithId\": 17, \"nodeWithoutId\": 18, \"NODE_DSTART\": 19, \"NODE_DESCR\": 20, \"NODE_DEND\": 21, \"NODE_ID\": 22, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 6: \"SPACELINE\", 7: \"NL\", 8: \"MINDMAP\", 11: \"EOF\", 13: \"SPACELIST\", 15: \"ICON\", 16: \"CLASS\", 19: \"NODE_DSTART\", 20: \"NODE_DESCR\", 21: \"NODE_DEND\", 22: \"NODE_ID\" },\n productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 6:\n case 7:\n return yy;\n case 8:\n yy.getLogger().trace(\"Stop NL \");\n break;\n case 9:\n yy.getLogger().trace(\"Stop EOF \");\n break;\n case 11:\n yy.getLogger().trace(\"Stop NL2 \");\n break;\n case 12:\n yy.getLogger().trace(\"Stop EOF2 \");\n break;\n case 15:\n yy.getLogger().info(\"Node: \", $$[$0].id);\n yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 16:\n yy.getLogger().trace(\"Icon: \", $$[$0]);\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 17:\n case 21:\n yy.decorateNode({ class: $$[$0] });\n break;\n case 18:\n yy.getLogger().trace(\"SPACELIST\");\n break;\n case 19:\n yy.getLogger().trace(\"Node: \", $$[$0].id);\n yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);\n break;\n case 20:\n yy.decorateNode({ icon: $$[$0] });\n break;\n case 25:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 2]);\n this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n case 26:\n this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };\n break;\n case 27:\n yy.getLogger().trace(\"node found ..\", $$[$0 - 3]);\n this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],\n defaultActions: { 2: [2, 1], 6: [2, 2] },\n parseError: function parseError2(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError2(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n yy.getLogger().trace(\"Found comment\", yy_.yytext);\n return 6;\n case 1:\n return 8;\n case 2:\n this.begin(\"CLASS\");\n break;\n case 3:\n this.popState();\n return 16;\n case 4:\n this.popState();\n break;\n case 5:\n yy.getLogger().trace(\"Begin icon\");\n this.begin(\"ICON\");\n break;\n case 6:\n yy.getLogger().trace(\"SPACELINE\");\n return 6;\n case 7:\n return 7;\n case 8:\n return 15;\n case 9:\n yy.getLogger().trace(\"end icon\");\n this.popState();\n break;\n case 10:\n yy.getLogger().trace(\"Exploding node\");\n this.begin(\"NODE\");\n return 19;\n case 11:\n yy.getLogger().trace(\"Cloud\");\n this.begin(\"NODE\");\n return 19;\n case 12:\n yy.getLogger().trace(\"Explosion Bang\");\n this.begin(\"NODE\");\n return 19;\n case 13:\n yy.getLogger().trace(\"Cloud Bang\");\n this.begin(\"NODE\");\n return 19;\n case 14:\n this.begin(\"NODE\");\n return 19;\n case 15:\n this.begin(\"NODE\");\n return 19;\n case 16:\n this.begin(\"NODE\");\n return 19;\n case 17:\n this.begin(\"NODE\");\n return 19;\n case 18:\n return 13;\n case 19:\n return 22;\n case 20:\n return 11;\n case 21:\n this.begin(\"NSTR2\");\n break;\n case 22:\n return \"NODE_DESCR\";\n case 23:\n this.popState();\n break;\n case 24:\n yy.getLogger().trace(\"Starting NSTR\");\n this.begin(\"NSTR\");\n break;\n case 25:\n yy.getLogger().trace(\"description:\", yy_.yytext);\n return \"NODE_DESCR\";\n case 26:\n this.popState();\n break;\n case 27:\n this.popState();\n yy.getLogger().trace(\"node end ))\");\n return \"NODE_DEND\";\n case 28:\n this.popState();\n yy.getLogger().trace(\"node end )\");\n return \"NODE_DEND\";\n case 29:\n this.popState();\n yy.getLogger().trace(\"node end ...\", yy_.yytext);\n return \"NODE_DEND\";\n case 30:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 31:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 32:\n this.popState();\n yy.getLogger().trace(\"node end (-\");\n return \"NODE_DEND\";\n case 33:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 34:\n this.popState();\n yy.getLogger().trace(\"node end ((\");\n return \"NODE_DEND\";\n case 35:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n case 36:\n yy.getLogger().trace(\"Long description:\", yy_.yytext);\n return 20;\n }\n },\n rules: [/^(?:\\s*%%.*)/i, /^(?:mindmap\\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\\n)/i, /^(?:::icon\\()/i, /^(?:[\\s]+[\\n])/i, /^(?:[\\n]+)/i, /^(?:[^\\)]+)/i, /^(?:\\))/i, /^(?:-\\))/i, /^(?:\\(-)/i, /^(?:\\)\\))/i, /^(?:\\))/i, /^(?:\\(\\()/i, /^(?:\\{\\{)/i, /^(?:\\()/i, /^(?:\\[)/i, /^(?:[\\s]+)/i, /^(?:[^\\(\\[\\n\\)\\{\\}]+)/i, /^(?:$)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[^\"]+)/i, /^(?:[\"])/i, /^(?:[\\)]\\))/i, /^(?:[\\)])/i, /^(?:[\\]])/i, /^(?:\\}\\})/i, /^(?:\\(-)/i, /^(?:-\\))/i, /^(?:\\(\\()/i, /^(?:\\()/i, /^(?:[^\\)\\]\\(\\}]+)/i, /^(?:.+(?!\\(\\())/i],\n conditions: { \"CLASS\": { \"rules\": [3, 4], \"inclusive\": false }, \"ICON\": { \"rules\": [8, 9], \"inclusive\": false }, \"NSTR2\": { \"rules\": [22, 23], \"inclusive\": false }, \"NSTR\": { \"rules\": [25, 26], \"inclusive\": false }, \"NODE\": { \"rules\": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst mindmapParser = parser;\nconst sanitizeText = (text) => sanitizeText$1(text, getConfig());\nlet nodes = [];\nlet cnt = 0;\nlet elements = {};\nconst clear = () => {\n nodes = [];\n cnt = 0;\n elements = {};\n};\nconst getParent = function(level) {\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (nodes[i].level < level) {\n return nodes[i];\n }\n }\n return null;\n};\nconst getMindmap = () => {\n return nodes.length > 0 ? nodes[0] : null;\n};\nconst addNode = (level, id, descr, type) => {\n log.info(\"addNode\", level, id, descr, type);\n const conf = getConfig();\n const node = {\n id: cnt++,\n nodeId: sanitizeText(id),\n level,\n descr: sanitizeText(descr),\n type,\n children: [],\n width: getConfig().mindmap.maxNodeWidth\n };\n switch (node.type) {\n case nodeType.ROUNDED_RECT:\n node.padding = 2 * conf.mindmap.padding;\n break;\n case nodeType.RECT:\n node.padding = 2 * conf.mindmap.padding;\n break;\n case nodeType.HEXAGON:\n node.padding = 2 * conf.mindmap.padding;\n break;\n default:\n node.padding = conf.mindmap.padding;\n }\n const parent = getParent(level);\n if (parent) {\n parent.children.push(node);\n nodes.push(node);\n } else {\n if (nodes.length === 0) {\n nodes.push(node);\n } else {\n let error = new Error(\n 'There can be only one root. No parent could be found for (\"' + node.descr + '\")'\n );\n error.hash = {\n text: \"branch \" + name,\n token: \"branch \" + name,\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: ['\"checkout ' + name + '\"']\n };\n throw error;\n }\n }\n};\nconst nodeType = {\n DEFAULT: 0,\n NO_BORDER: 0,\n ROUNDED_RECT: 1,\n RECT: 2,\n CIRCLE: 3,\n CLOUD: 4,\n BANG: 5,\n HEXAGON: 6\n};\nconst getType = (startStr, endStr) => {\n log.debug(\"In get type\", startStr, endStr);\n switch (startStr) {\n case \"[\":\n return nodeType.RECT;\n case \"(\":\n return endStr === \")\" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;\n case \"((\":\n return nodeType.CIRCLE;\n case \")\":\n return nodeType.CLOUD;\n case \"))\":\n return nodeType.BANG;\n case \"{{\":\n return nodeType.HEXAGON;\n default:\n return nodeType.DEFAULT;\n }\n};\nconst setElementForId = (id, element) => {\n elements[id] = element;\n};\nconst decorateNode = (decoration) => {\n const node = nodes[nodes.length - 1];\n if (decoration && decoration.icon) {\n node.icon = sanitizeText(decoration.icon);\n }\n if (decoration && decoration.class) {\n node.class = sanitizeText(decoration.class);\n }\n};\nconst type2Str = (type) => {\n switch (type) {\n case nodeType.DEFAULT:\n return \"no-border\";\n case nodeType.RECT:\n return \"rect\";\n case nodeType.ROUNDED_RECT:\n return \"rounded-rect\";\n case nodeType.CIRCLE:\n return \"circle\";\n case nodeType.CLOUD:\n return \"cloud\";\n case nodeType.BANG:\n return \"bang\";\n case nodeType.HEXAGON:\n return \"hexgon\";\n default:\n return \"no-border\";\n }\n};\nlet parseError;\nconst setErrorHandler = (handler) => {\n parseError = handler;\n};\nconst getLogger = () => log;\nconst getNodeById = (id) => nodes[id];\nconst getElementById = (id) => elements[id];\nconst mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addNode,\n clear,\n decorateNode,\n getElementById,\n getLogger,\n getMindmap,\n getNodeById,\n getType,\n nodeType,\n get parseError() {\n return parseError;\n },\n sanitizeText,\n setElementForId,\n setErrorHandler,\n type2Str\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst MAX_SECTIONS = 12;\nconst defaultBkg = function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n};\nconst rectBkg = function(elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\"height\", node.height).attr(\"width\", node.width);\n};\nconst cloudBkg = function(elem, node) {\n const w = node.width;\n const h = node.height;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0}\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n\n H0 V0 Z`\n );\n};\nconst bangBkg = function(elem, node) {\n const w = node.width;\n const h = node.height;\n const r = 0.15 * w;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\n \"d\",\n `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${0}\n a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1}\n\n a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}\n a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${0}\n a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}\n a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33}\n\n H0 V0 Z`\n );\n};\nconst circleBkg = function(elem, node) {\n elem.append(\"circle\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\"r\", node.width / 2);\n};\nfunction insertPolygonShape(parent, w, h, points, node) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"transform\", \"translate(\" + (node.width - w) / 2 + \", \" + h + \")\");\n}\nconst hexagonBkg = function(elem, node) {\n const h = node.height;\n const f = 4;\n const m = h / f;\n const w = node.width - node.padding + 2 * m;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 }\n ];\n insertPolygonShape(elem, w, h, points, node);\n};\nconst roundedRectBkg = function(elem, node) {\n elem.append(\"rect\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + type2Str(node.type)).attr(\"height\", node.height).attr(\"rx\", node.padding).attr(\"ry\", node.padding).attr(\"width\", node.width);\n};\nconst drawNode = function(elem, node, fullSection, conf) {\n const htmlLabels = conf.htmlLabels;\n const section = fullSection % (MAX_SECTIONS - 1);\n const nodeElem = elem.append(\"g\");\n node.section = section;\n let sectionClass = \"section-\" + section;\n if (section < 0) {\n sectionClass += \" section-root\";\n }\n nodeElem.attr(\"class\", (node.class ? node.class + \" \" : \"\") + \"mindmap-node \" + sectionClass);\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const description = node.descr.replace(/()/g, \"\\n\");\n createText(textElem, description, {\n useHtmlLabels: htmlLabels,\n width: node.width,\n classes: \"mindmap-node-label\"\n });\n if (!htmlLabels) {\n textElem.attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\");\n }\n const bbox = textElem.node().getBBox();\n const fontSize = conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.width = bbox.width + 2 * node.padding;\n if (node.icon) {\n if (node.type === nodeType.CIRCLE) {\n node.height += 50;\n node.width += 50;\n const icon = nodeElem.append(\"foreignObject\").attr(\"height\", \"50px\").attr(\"width\", node.width).attr(\"style\", \"text-align: center;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + node.width / 2 + \", \" + (node.height / 2 - 1.5 * node.padding) + \")\"\n );\n } else {\n node.width += 50;\n const orgHeight = node.height;\n node.height = Math.max(orgHeight, 60);\n const heightDiff = Math.abs(node.height - orgHeight);\n const icon = nodeElem.append(\"foreignObject\").attr(\"width\", \"60px\").attr(\"height\", node.height).attr(\"style\", \"text-align: center;margin-top:\" + heightDiff / 2 + \"px;\");\n icon.append(\"div\").attr(\"class\", \"icon-container\").append(\"i\").attr(\"class\", \"node-icon-\" + section + \" \" + node.icon);\n textElem.attr(\n \"transform\",\n \"translate(\" + (25 + node.width / 2) + \", \" + (heightDiff / 2 + node.padding / 2) + \")\"\n );\n }\n } else {\n if (!htmlLabels) {\n const dx = node.width / 2;\n const dy = node.padding / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n } else {\n const dx = (node.width - bbox.width) / 2;\n const dy = (node.height - bbox.height) / 2;\n textElem.attr(\"transform\", \"translate(\" + dx + \", \" + dy + \")\");\n }\n }\n switch (node.type) {\n case nodeType.DEFAULT:\n defaultBkg(bkgElem, node, section);\n break;\n case nodeType.ROUNDED_RECT:\n roundedRectBkg(bkgElem, node);\n break;\n case nodeType.RECT:\n rectBkg(bkgElem, node);\n break;\n case nodeType.CIRCLE:\n bkgElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + +node.height / 2 + \")\");\n circleBkg(bkgElem, node);\n break;\n case nodeType.CLOUD:\n cloudBkg(bkgElem, node);\n break;\n case nodeType.BANG:\n bangBkg(bkgElem, node);\n break;\n case nodeType.HEXAGON:\n hexagonBkg(bkgElem, node);\n break;\n }\n setElementForId(node.id, nodeElem);\n return node.height;\n};\nconst drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) {\n const section = fullSection % (MAX_SECTIONS - 1);\n const sx = parent.x + parent.width / 2;\n const sy = parent.y + parent.height / 2;\n const ex = mindmap.x + mindmap.width / 2;\n const ey = mindmap.y + mindmap.height / 2;\n const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;\n const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;\n const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;\n const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;\n edgesElem.append(\"path\").attr(\n \"d\",\n parent.direction === \"TB\" || parent.direction === \"BT\" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`\n ).attr(\"class\", \"edge section-edge-\" + section + \" edge-depth-\" + depth);\n};\nconst positionNode = function(node) {\n const nodeElem = getElementById(node.id);\n const x = node.x || 0;\n const y = node.y || 0;\n nodeElem.attr(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n};\nconst svgDraw = { drawNode, positionNode, drawEdge };\ncytoscape.use(coseBilkent);\nfunction drawNodes(svg, mindmap, section, conf) {\n svgDraw.drawNode(svg, mindmap, section, conf);\n if (mindmap.children) {\n mindmap.children.forEach((child, index) => {\n drawNodes(svg, child, section < 0 ? index : section, conf);\n });\n }\n}\nfunction drawEdges(edgesEl, cy) {\n cy.edges().map((edge, id) => {\n const data = edge.data();\n if (edge[0]._private.bodyBounds) {\n const bounds = edge[0]._private.rscratch;\n log.trace(\"Edge: \", id, data);\n edgesEl.insert(\"path\").attr(\n \"d\",\n `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} `\n ).attr(\"class\", \"edge section-edge-\" + data.section + \" edge-depth-\" + data.depth);\n }\n });\n}\nfunction addNodes(mindmap, cy, conf, level) {\n cy.add({\n group: \"nodes\",\n data: {\n id: mindmap.id,\n labelText: mindmap.descr,\n height: mindmap.height,\n width: mindmap.width,\n level,\n nodeId: mindmap.id,\n padding: mindmap.padding,\n type: mindmap.type\n },\n position: {\n x: mindmap.x,\n y: mindmap.y\n }\n });\n if (mindmap.children) {\n mindmap.children.forEach((child) => {\n addNodes(child, cy, conf, level + 1);\n cy.add({\n group: \"edges\",\n data: {\n id: `${mindmap.id}_${child.id}`,\n source: mindmap.id,\n target: child.id,\n depth: level,\n section: child.section\n }\n });\n });\n }\n}\nfunction layoutMindmap(node, conf) {\n return new Promise((resolve) => {\n const renderEl = select(\"body\").append(\"div\").attr(\"id\", \"cy\").attr(\"style\", \"display:none\");\n const cy = cytoscape({\n container: document.getElementById(\"cy\"),\n // container to render in\n style: [\n {\n selector: \"edge\",\n style: {\n \"curve-style\": \"bezier\"\n }\n }\n ]\n });\n renderEl.remove();\n addNodes(node, cy, conf, 0);\n cy.nodes().forEach(function(n) {\n n.layoutDimensions = () => {\n const data = n.data();\n return { w: data.width, h: data.height };\n };\n });\n cy.layout({\n name: \"cose-bilkent\",\n quality: \"proof\",\n // headless: true,\n styleEnabled: false,\n animate: false\n }).run();\n cy.ready((e) => {\n log.info(\"Ready\", e);\n resolve(cy);\n });\n });\n}\nfunction positionNodes(cy) {\n cy.nodes().map((node, id) => {\n const data = node.data();\n data.x = node.position().x;\n data.y = node.position().y;\n svgDraw.positionNode(data);\n const el = getElementById(data.nodeId);\n log.info(\"Id:\", id, \"Position: (\", node.position().x, \", \", node.position().y, \")\", data);\n el.attr(\n \"transform\",\n `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})`\n );\n el.attr(\"attr\", `apa-${id})`);\n });\n}\nconst draw = async (text, id, version, diagObj) => {\n const conf = getConfig();\n conf.htmlLabels = false;\n log.debug(\"Rendering mindmap diagram\\n\" + text, diagObj.parser);\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const mm = diagObj.db.getMindmap();\n const edgesElem = svg.append(\"g\");\n edgesElem.attr(\"class\", \"mindmap-edges\");\n const nodesElem = svg.append(\"g\");\n nodesElem.attr(\"class\", \"mindmap-nodes\");\n drawNodes(nodesElem, mm, -1, conf);\n const cy = await layoutMindmap(mm, conf);\n drawEdges(edgesElem, cy);\n positionNodes(cy);\n setupGraphViewbox(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth);\n};\nconst mindmapRenderer = {\n draw\n};\nconst genSections = (options) => {\n let sections = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .mindmap-node-label {\n dy: 1em;\n alignment-baseline: middle;\n text-anchor: middle;\n dominant-baseline: middle;\n text-align: center;\n }\n`;\nconst mindmapStyles = getStyles;\nconst diagram = {\n db: mindmapDb,\n renderer: mindmapRenderer,\n parser: mindmapParser,\n styles: mindmapStyles\n};\nexport {\n diagram\n};\n"], - "mappings": "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KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,IACvqC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE;AAAA,IACvC,YAAY,SAAS,YAAY,KAAK,MAAM;AAC1C,UAAI,KAAK,aAAa;AACpB,aAAK,MAAM,GAAG;AAAA,MAChB,OAAO;AACL,YAAI,QAAQ,IAAI,MAAM,GAAG;AACzB,cAAM,OAAO;AACb,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,OAAO,SAAS,MAAM,OAAO;AAC3B,UAAIc,QAAO,MAAM,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,QAAQ,KAAK,OAAO,SAAS,IAAI,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM;AACtJ,UAAI,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACzC,UAAI,SAAS,OAAO,OAAO,KAAK,KAAK;AACrC,UAAI,cAAc,EAAE,IAAI,CAAC,EAAE;AAC3B,eAAS,KAAK,KAAK,IAAI;AACrB,YAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI,CAAC,GAAG;AACpD,sBAAY,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;AAAA,QAC/B;AAAA,MACF;AACA,aAAO,SAAS,OAAO,YAAY,EAAE;AACrC,kBAAY,GAAG,QAAQ;AACvB,kBAAY,GAAG,SAAS;AACxB,UAAI,OAAO,OAAO,UAAU,aAAa;AACvC,eAAO,SAAS,CAAC;AAAA,MACnB;AACA,UAAI,QAAQ,OAAO;AACnB,aAAO,KAAK,KAAK;AACjB,UAAI,SAAS,OAAO,WAAW,OAAO,QAAQ;AAC9C,UAAI,OAAO,YAAY,GAAG,eAAe,YAAY;AACnD,aAAK,aAAa,YAAY,GAAG;AAAA,MACnC,OAAO;AACL,aAAK,aAAa,OAAO,eAAe,IAAI,EAAE;AAAA,MAChD;AACA,eAAS,MAAM;AACb,YAAI;AACJ,gBAAQ,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK;AACxC,YAAI,OAAO,UAAU,UAAU;AAC7B,cAAI,iBAAiB,OAAO;AAC1B,qBAAS;AACT,oBAAQ,OAAO,IAAI;AAAA,UACrB;AACA,kBAAQA,MAAK,SAAS,KAAK,KAAK;AAAA,QAClC;AACA,eAAO;AAAA,MACT;AACA,UAAI,QAAQ,OAAO,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,KAAK,UAAU;AAC5D,aAAO,MAAM;AACX,gBAAQ,MAAM,MAAM,SAAS,CAAC;AAC9B,YAAI,KAAK,eAAe,KAAK,GAAG;AAC9B,mBAAS,KAAK,eAAe,KAAK;AAAA,QACpC,OAAO;AACL,cAAI,WAAW,QAAQ,OAAO,UAAU,aAAa;AACnD,qBAAS,IAAI;AAAA,UACf;AACA,mBAAS,MAAM,KAAK,KAAK,MAAM,KAAK,EAAE,MAAM;AAAA,QAC9C;AACA,YAAI,OAAO,WAAW,eAAe,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;AACjE,cAAI,SAAS;AACb,qBAAW,CAAC;AACZ,eAAK,KAAK,MAAM,KAAK,GAAG;AACtB,gBAAI,KAAK,WAAW,CAAC,KAAK,IAAI,QAAQ;AACpC,uBAAS,KAAK,MAAM,KAAK,WAAW,CAAC,IAAI,GAAG;AAAA,YAC9C;AAAA,UACF;AACA,cAAI,OAAO,cAAc;AACvB,qBAAS,0BAA0B,WAAW,KAAK,QAAQ,OAAO,aAAa,IAAI,iBAAiB,SAAS,KAAK,IAAI,IAAI,aAAa,KAAK,WAAW,MAAM,KAAK,UAAU;AAAA,UAC9K,OAAO;AACL,qBAAS,0BAA0B,WAAW,KAAK,mBAAmB,UAAU,MAAM,iBAAiB,OAAO,KAAK,WAAW,MAAM,KAAK,UAAU;AAAA,UACrJ;AACA,eAAK,WAAW,QAAQ;AAAA,YACtB,MAAM,OAAO;AAAA,YACb,OAAO,KAAK,WAAW,MAAM,KAAK;AAAA,YAClC,MAAM,OAAO;AAAA,YACb,KAAK;AAAA,YACL;AAAA,UACF,CAAC;AAAA,QACH;AACA,YAAI,OAAO,CAAC,aAAa,SAAS,OAAO,SAAS,GAAG;AACnD,gBAAM,IAAI,MAAM,sDAAsD,QAAQ,cAAc,MAAM;AAAA,QACpG;AACA,gBAAQ,OAAO,CAAC,GAAG;AAAA,UACjB,KAAK;AACH,kBAAM,KAAK,MAAM;AACjB,mBAAO,KAAK,OAAO,MAAM;AACzB,mBAAO,KAAK,OAAO,MAAM;AACzB,kBAAM,KAAK,OAAO,CAAC,CAAC;AACpB,qBAAS;AACT;AACE,uBAAS,OAAO;AAChB,uBAAS,OAAO;AAChB,yBAAW,OAAO;AAClB,sBAAQ,OAAO;AAAA,YACjB;AACA;AAAA,UACF,KAAK;AACH,kBAAM,KAAK,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC;AACpC,kBAAM,IAAI,OAAO,OAAO,SAAS,GAAG;AACpC,kBAAM,KAAK;AAAA,cACT,YAAY,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE;AAAA,cAC/C,WAAW,OAAO,OAAO,SAAS,CAAC,EAAE;AAAA,cACrC,cAAc,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE;AAAA,cACjD,aAAa,OAAO,OAAO,SAAS,CAAC,EAAE;AAAA,YACzC;AACA,gBAAI,QAAQ;AACV,oBAAM,GAAG,QAAQ;AAAA,gBACf,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE,MAAM,CAAC;AAAA,gBAC1C,OAAO,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,cACnC;AAAA,YACF;AACA,gBAAI,KAAK,cAAc,MAAM,OAAO;AAAA,cAClC;AAAA,cACA;AAAA,cACA;AAAA,cACA,YAAY;AAAA,cACZ,OAAO,CAAC;AAAA,cACR;AAAA,cACA;AAAA,YACF,EAAE,OAAO,IAAI,CAAC;AACd,gBAAI,OAAO,MAAM,aAAa;AAC5B,qBAAO;AAAA,YACT;AACA,gBAAI,KAAK;AACP,sBAAQ,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC;AACnC,uBAAS,OAAO,MAAM,GAAG,KAAK,GAAG;AACjC,uBAAS,OAAO,MAAM,GAAG,KAAK,GAAG;AAAA,YACnC;AACA,kBAAM,KAAK,KAAK,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,mBAAO,KAAK,MAAM,CAAC;AACnB,mBAAO,KAAK,MAAM,EAAE;AACpB,uBAAW,MAAM,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,MAAM,MAAM,SAAS,CAAC,CAAC;AACjE,kBAAM,KAAK,QAAQ;AACnB;AAAA,UACF,KAAK;AACH,mBAAO;AAAA,QACX;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI,QAAQ,2BAAW;AACrB,QAAI,SAAS;AAAA,MACX,KAAK;AAAA,MACL,YAAY,SAAS,YAAY,KAAK,MAAM;AAC1C,YAAI,KAAK,GAAG,QAAQ;AAClB,eAAK,GAAG,OAAO,WAAW,KAAK,IAAI;AAAA,QACrC,OAAO;AACL,gBAAM,IAAI,MAAM,GAAG;AAAA,QACrB;AAAA,MACF;AAAA;AAAA,MAEA,UAAU,SAAS,OAAO,IAAI;AAC5B,aAAK,KAAK,MAAM,KAAK,MAAM,CAAC;AAC5B,aAAK,SAAS;AACd,aAAK,QAAQ,KAAK,aAAa,KAAK,OAAO;AAC3C,aAAK,WAAW,KAAK,SAAS;AAC9B,aAAK,SAAS,KAAK,UAAU,KAAK,QAAQ;AAC1C,aAAK,iBAAiB,CAAC,SAAS;AAChC,aAAK,SAAS;AAAA,UACZ,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,WAAW;AAAA,UACX,aAAa;AAAA,QACf;AACA,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,QAAQ,CAAC,GAAG,CAAC;AAAA,QAC3B;AACA,aAAK,SAAS;AACd,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,OAAO,WAAW;AAChB,YAAI,KAAK,KAAK,OAAO,CAAC;AACtB,aAAK,UAAU;AACf,aAAK;AACL,aAAK;AACL,aAAK,SAAS;AACd,aAAK,WAAW;AAChB,YAAI,QAAQ,GAAG,MAAM,iBAAiB;AACtC,YAAI,OAAO;AACT,eAAK;AACL,eAAK,OAAO;AAAA,QACd,OAAO;AACL,eAAK,OAAO;AAAA,QACd;AACA,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,MAAM,CAAC;AAAA,QACrB;AACA,aAAK,SAAS,KAAK,OAAO,MAAM,CAAC;AACjC,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,OAAO,SAAS,IAAI;AAClB,YAAI,MAAM,GAAG;AACb,YAAI,QAAQ,GAAG,MAAM,eAAe;AACpC,aAAK,SAAS,KAAK,KAAK;AACxB,aAAK,SAAS,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,SAAS,GAAG;AAC5D,aAAK,UAAU;AACf,YAAI,WAAW,KAAK,MAAM,MAAM,eAAe;AAC/C,aAAK,QAAQ,KAAK,MAAM,OAAO,GAAG,KAAK,MAAM,SAAS,CAAC;AACvD,aAAK,UAAU,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,CAAC;AAC7D,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,YAAY,MAAM,SAAS;AAAA,QAClC;AACA,YAAI,IAAI,KAAK,OAAO;AACpB,aAAK,SAAS;AAAA,UACZ,YAAY,KAAK,OAAO;AAAA,UACxB,WAAW,KAAK,WAAW;AAAA,UAC3B,cAAc,KAAK,OAAO;AAAA,UAC1B,aAAa,SAAS,MAAM,WAAW,SAAS,SAAS,KAAK,OAAO,eAAe,KAAK,SAAS,SAAS,SAAS,MAAM,MAAM,EAAE,SAAS,MAAM,CAAC,EAAE,SAAS,KAAK,OAAO,eAAe;AAAA,QAC1L;AACA,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,SAAS,GAAG;AAAA,QACrD;AACA,aAAK,SAAS,KAAK,OAAO;AAC1B,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,MAAM,WAAW;AACf,aAAK,QAAQ;AACb,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,QAAQ,WAAW;AACjB,YAAI,KAAK,QAAQ,iBAAiB;AAChC,eAAK,aAAa;AAAA,QACpB,OAAO;AACL,iBAAO,KAAK,WAAW,4BAA4B,KAAK,WAAW,KAAK,qIAAqI,KAAK,aAAa,GAAG;AAAA,YAChO,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM,KAAK;AAAA,UACb,CAAC;AAAA,QACH;AACA,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,MAAM,SAAS,GAAG;AAChB,aAAK,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC;AAAA,MAChC;AAAA;AAAA,MAEA,WAAW,WAAW;AACpB,YAAI,OAAO,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,KAAK,MAAM,MAAM;AACzE,gBAAQ,KAAK,SAAS,KAAK,QAAQ,MAAM,KAAK,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;AAAA,MAC7E;AAAA;AAAA,MAEA,eAAe,WAAW;AACxB,YAAIC,QAAO,KAAK;AAChB,YAAIA,MAAK,SAAS,IAAI;AACpB,UAAAA,SAAQ,KAAK,OAAO,OAAO,GAAG,KAAKA,MAAK,MAAM;AAAA,QAChD;AACA,gBAAQA,MAAK,OAAO,GAAG,EAAE,KAAKA,MAAK,SAAS,KAAK,QAAQ,KAAK,QAAQ,OAAO,EAAE;AAAA,MACjF;AAAA;AAAA,MAEA,cAAc,WAAW;AACvB,YAAI,MAAM,KAAK,UAAU;AACzB,YAAI,IAAI,IAAI,MAAM,IAAI,SAAS,CAAC,EAAE,KAAK,GAAG;AAC1C,eAAO,MAAM,KAAK,cAAc,IAAI,OAAO,IAAI;AAAA,MACjD;AAAA;AAAA,MAEA,YAAY,SAAS,OAAO,cAAc;AACxC,YAAI,OAAO,OAAO;AAClB,YAAI,KAAK,QAAQ,iBAAiB;AAChC,mBAAS;AAAA,YACP,UAAU,KAAK;AAAA,YACf,QAAQ;AAAA,cACN,YAAY,KAAK,OAAO;AAAA,cACxB,WAAW,KAAK;AAAA,cAChB,cAAc,KAAK,OAAO;AAAA,cAC1B,aAAa,KAAK,OAAO;AAAA,YAC3B;AAAA,YACA,QAAQ,KAAK;AAAA,YACb,OAAO,KAAK;AAAA,YACZ,SAAS,KAAK;AAAA,YACd,SAAS,KAAK;AAAA,YACd,QAAQ,KAAK;AAAA,YACb,QAAQ,KAAK;AAAA,YACb,OAAO,KAAK;AAAA,YACZ,QAAQ,KAAK;AAAA,YACb,IAAI,KAAK;AAAA,YACT,gBAAgB,KAAK,eAAe,MAAM,CAAC;AAAA,YAC3C,MAAM,KAAK;AAAA,UACb;AACA,cAAI,KAAK,QAAQ,QAAQ;AACvB,mBAAO,OAAO,QAAQ,KAAK,OAAO,MAAM,MAAM,CAAC;AAAA,UACjD;AAAA,QACF;AACA,gBAAQ,MAAM,CAAC,EAAE,MAAM,iBAAiB;AACxC,YAAI,OAAO;AACT,eAAK,YAAY,MAAM;AAAA,QACzB;AACA,aAAK,SAAS;AAAA,UACZ,YAAY,KAAK,OAAO;AAAA,UACxB,WAAW,KAAK,WAAW;AAAA,UAC3B,cAAc,KAAK,OAAO;AAAA,UAC1B,aAAa,QAAQ,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,SAAS,KAAK,OAAO,cAAc,MAAM,CAAC,EAAE;AAAA,QAC/I;AACA,aAAK,UAAU,MAAM,CAAC;AACtB,aAAK,SAAS,MAAM,CAAC;AACrB,aAAK,UAAU;AACf,aAAK,SAAS,KAAK,OAAO;AAC1B,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,QAAQ,CAAC,KAAK,QAAQ,KAAK,UAAU,KAAK,MAAM;AAAA,QAC9D;AACA,aAAK,QAAQ;AACb,aAAK,aAAa;AAClB,aAAK,SAAS,KAAK,OAAO,MAAM,MAAM,CAAC,EAAE,MAAM;AAC/C,aAAK,WAAW,MAAM,CAAC;AACvB,gBAAQ,KAAK,cAAc,KAAK,MAAM,KAAK,IAAI,MAAM,cAAc,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC;AACtH,YAAI,KAAK,QAAQ,KAAK,QAAQ;AAC5B,eAAK,OAAO;AAAA,QACd;AACA,YAAI,OAAO;AACT,iBAAO;AAAA,QACT,WAAW,KAAK,YAAY;AAC1B,mBAAS,KAAK,QAAQ;AACpB,iBAAK,CAAC,IAAI,OAAO,CAAC;AAAA,UACpB;AACA,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,MAAM,WAAW;AACf,YAAI,KAAK,MAAM;AACb,iBAAO,KAAK;AAAA,QACd;AACA,YAAI,CAAC,KAAK,QAAQ;AAChB,eAAK,OAAO;AAAA,QACd;AACA,YAAI,OAAO,OAAO,WAAW;AAC7B,YAAI,CAAC,KAAK,OAAO;AACf,eAAK,SAAS;AACd,eAAK,QAAQ;AAAA,QACf;AACA,YAAI,QAAQ,KAAK,cAAc;AAC/B,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,sBAAY,KAAK,OAAO,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC;AAClD,cAAI,cAAc,CAAC,SAAS,UAAU,CAAC,EAAE,SAAS,MAAM,CAAC,EAAE,SAAS;AAClE,oBAAQ;AACR,oBAAQ;AACR,gBAAI,KAAK,QAAQ,iBAAiB;AAChC,sBAAQ,KAAK,WAAW,WAAW,MAAM,CAAC,CAAC;AAC3C,kBAAI,UAAU,OAAO;AACnB,uBAAO;AAAA,cACT,WAAW,KAAK,YAAY;AAC1B,wBAAQ;AACR;AAAA,cACF,OAAO;AACL,uBAAO;AAAA,cACT;AAAA,YACF,WAAW,CAAC,KAAK,QAAQ,MAAM;AAC7B;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,YAAI,OAAO;AACT,kBAAQ,KAAK,WAAW,OAAO,MAAM,KAAK,CAAC;AAC3C,cAAI,UAAU,OAAO;AACnB,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AACA,YAAI,KAAK,WAAW,IAAI;AACtB,iBAAO,KAAK;AAAA,QACd,OAAO;AACL,iBAAO,KAAK,WAAW,4BAA4B,KAAK,WAAW,KAAK,2BAA2B,KAAK,aAAa,GAAG;AAAA,YACtH,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM,KAAK;AAAA,UACb,CAAC;AAAA,QACH;AAAA,MACF;AAAA;AAAA,MAEA,KAAK,SAAS,MAAM;AAClB,YAAI,IAAI,KAAK,KAAK;AAClB,YAAI,GAAG;AACL,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO,KAAK,IAAI;AAAA,QAClB;AAAA,MACF;AAAA;AAAA,MAEA,OAAO,SAAS,MAAM,WAAW;AAC/B,aAAK,eAAe,KAAK,SAAS;AAAA,MACpC;AAAA;AAAA,MAEA,UAAU,SAAS,WAAW;AAC5B,YAAI,IAAI,KAAK,eAAe,SAAS;AACrC,YAAI,IAAI,GAAG;AACT,iBAAO,KAAK,eAAe,IAAI;AAAA,QACjC,OAAO;AACL,iBAAO,KAAK,eAAe,CAAC;AAAA,QAC9B;AAAA,MACF;AAAA;AAAA,MAEA,eAAe,SAAS,gBAAgB;AACtC,YAAI,KAAK,eAAe,UAAU,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,GAAG;AACrF,iBAAO,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC,EAAE;AAAA,QAC9E,OAAO;AACL,iBAAO,KAAK,WAAW,SAAS,EAAE;AAAA,QACpC;AAAA,MACF;AAAA;AAAA,MAEA,UAAU,SAAS,SAAS,GAAG;AAC7B,YAAI,KAAK,eAAe,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC;AACpD,YAAI,KAAK,GAAG;AACV,iBAAO,KAAK,eAAe,CAAC;AAAA,QAC9B,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF;AAAA;AAAA,MAEA,WAAW,SAAS,UAAU,WAAW;AACvC,aAAK,MAAM,SAAS;AAAA,MACtB;AAAA;AAAA,MAEA,gBAAgB,SAAS,iBAAiB;AACxC,eAAO,KAAK,eAAe;AAAA,MAC7B;AAAA,MACA,SAAS,EAAE,oBAAoB,KAAK;AAAA,MACpC,eAAe,SAAS,UAAU,IAAI,KAAK,2BAA2B,UAAU;AAC9E,gBAAQ,2BAA2B;AAAA,UACjC,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,iBAAiB,IAAI,MAAM;AAChD,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,MAAM,OAAO;AAClB;AAAA,UACF,KAAK;AACH,iBAAK,SAAS;AACd,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd;AAAA,UACF,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,YAAY;AACjC,iBAAK,MAAM,MAAM;AACjB;AAAA,UACF,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,WAAW;AAChC,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,UAAU;AAC/B,iBAAK,SAAS;AACd;AAAA,UACF,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,gBAAgB;AACrC,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,OAAO;AAC5B,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,gBAAgB;AACrC,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,YAAY;AACjC,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,MAAM,MAAM;AACjB,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,MAAM,OAAO;AAClB;AAAA,UACF,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd;AAAA,UACF,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,eAAe;AACpC,iBAAK,MAAM,MAAM;AACjB;AAAA,UACF,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,gBAAgB,IAAI,MAAM;AAC/C,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd;AAAA,UACF,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,aAAa;AAClC,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,YAAY;AACjC,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,gBAAgB,IAAI,MAAM;AAC/C,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,aAAa;AAClC,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,aAAa;AAClC,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,aAAa;AAClC,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,aAAa;AAClC,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS;AACd,eAAG,UAAU,EAAE,MAAM,aAAa;AAClC,mBAAO;AAAA,UACT,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,qBAAqB,IAAI,MAAM;AACpD,mBAAO;AAAA,UACT,KAAK;AACH,eAAG,UAAU,EAAE,MAAM,qBAAqB,IAAI,MAAM;AACpD,mBAAO;AAAA,QACX;AAAA,MACF;AAAA,MACA,OAAO,CAAC,iBAAiB,mBAAmB,aAAa,YAAY,YAAY,kBAAkB,mBAAmB,eAAe,gBAAgB,YAAY,aAAa,aAAa,cAAc,YAAY,cAAc,cAAc,YAAY,YAAY,eAAe,0BAA0B,WAAW,gBAAgB,gBAAgB,gBAAgB,aAAa,eAAe,aAAa,gBAAgB,cAAc,cAAc,cAAc,aAAa,aAAa,cAAc,YAAY,sBAAsB,kBAAkB;AAAA,MAC5iB,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,MAAM,GAAG,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,aAAa,MAAM,GAAG,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,aAAa,MAAM,GAAG,QAAQ,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,aAAa,MAAM,GAAG,WAAW,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,aAAa,KAAK,EAAE;AAAA,IAC/Z;AACA,WAAO;AAAA,EACT,EAAE;AACF,UAAQ,QAAQ;AAChB,WAAS,SAAS;AAChB,SAAK,KAAK,CAAC;AAAA,EACb;AACA,SAAO,YAAY;AACnB,UAAQ,SAAS;AACjB,SAAO,IAAI,OAAO;AACpB,EAAE;AACF,OAAO,SAAS;AAChB,IAAM,gBAAgB;AACtB,IAAM,eAAe,CAAC,SAAS,eAAe,MAAM,UAAU,CAAC;AAC/D,IAAI,QAAQ,CAAC;AACb,IAAI,MAAM;AACV,IAAI,WAAW,CAAC;AAChB,IAAM,QAAQ,MAAM;AAClB,UAAQ,CAAC;AACT,QAAM;AACN,aAAW,CAAC;AACd;AACA,IAAM,YAAY,SAAS,OAAO;AAChC,WAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,QAAI,MAAM,CAAC,EAAE,QAAQ,OAAO;AAC1B,aAAO,MAAM,CAAC;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;AACA,IAAM,aAAa,MAAM;AACvB,SAAO,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI;AACvC;AACA,IAAM,UAAU,CAAC,OAAO,IAAI,OAAO,SAAS;AAC1C,QAAI,KAAK,WAAW,OAAO,IAAI,OAAO,IAAI;AAC1C,QAAM,OAAO,UAAU;AACvB,QAAM,OAAO;AAAA,IACX,IAAI;AAAA,IACJ,QAAQ,aAAa,EAAE;AAAA,IACvB;AAAA,IACA,OAAO,aAAa,KAAK;AAAA,IACzB;AAAA,IACA,UAAU,CAAC;AAAA,IACX,OAAO,UAAU,EAAE,QAAQ;AAAA,EAC7B;AACA,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK,SAAS;AACZ,WAAK,UAAU,IAAI,KAAK,QAAQ;AAChC;AAAA,IACF,KAAK,SAAS;AACZ,WAAK,UAAU,IAAI,KAAK,QAAQ;AAChC;AAAA,IACF,KAAK,SAAS;AACZ,WAAK,UAAU,IAAI,KAAK,QAAQ;AAChC;AAAA,IACF;AACE,WAAK,UAAU,KAAK,QAAQ;AAAA,EAChC;AACA,QAAM,SAAS,UAAU,KAAK;AAC9B,MAAI,QAAQ;AACV,WAAO,SAAS,KAAK,IAAI;AACzB,UAAM,KAAK,IAAI;AAAA,EACjB,OAAO;AACL,QAAI,MAAM,WAAW,GAAG;AACtB,YAAM,KAAK,IAAI;AAAA,IACjB,OAAO;AACL,UAAI,QAAQ,IAAI;AAAA,QACd,gEAAgE,KAAK,QAAQ;AAAA,MAC/E;AACA,YAAM,OAAO;AAAA,QACX,MAAM,YAAY;AAAA,QAClB,OAAO,YAAY;AAAA,QACnB,MAAM;AAAA,QACN,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,EAAE;AAAA,QACpE,UAAU,CAAC,eAAe,OAAO,GAAG;AAAA,MACtC;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACF;AACA,IAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,WAAW;AAAA,EACX,cAAc;AAAA,EACd,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AACX;AACA,IAAM,UAAU,CAAC,UAAU,WAAW;AACpC,QAAI,MAAM,eAAe,UAAU,MAAM;AACzC,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,WAAW,MAAM,SAAS,eAAe,SAAS;AAAA,IAC3D,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB,KAAK;AACH,aAAO,SAAS;AAAA,IAClB;AACE,aAAO,SAAS;AAAA,EACpB;AACF;AACA,IAAM,kBAAkB,CAAC,IAAI,YAAY;AACvC,WAAS,EAAE,IAAI;AACjB;AACA,IAAM,eAAe,CAAC,eAAe;AACnC,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,MAAI,cAAc,WAAW,MAAM;AACjC,SAAK,OAAO,aAAa,WAAW,IAAI;AAAA,EAC1C;AACA,MAAI,cAAc,WAAW,OAAO;AAClC,SAAK,QAAQ,aAAa,WAAW,KAAK;AAAA,EAC5C;AACF;AACA,IAAM,WAAW,CAAC,SAAS;AACzB,UAAQ,MAAM;AAAA,IACZ,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT,KAAK,SAAS;AACZ,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AACA,IAAI;AACJ,IAAM,kBAAkB,CAAC,YAAY;AACnC,eAAa;AACf;AACA,IAAM,YAAY,MAAM;AACxB,IAAM,cAAc,CAAC,OAAO,MAAM,EAAE;AACpC,IAAM,iBAAiB,CAAC,OAAO,SAAS,EAAE;AAC1C,IAAM,YAA4B,OAAO,OAAuB,OAAO,eAAe;AAAA,EACpF,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,IAAI,aAAa;AACf,WAAO;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAG,OAAO,aAAa,EAAE,OAAO,SAAS,CAAC,CAAC;AAC3C,IAAM,eAAe;AACrB,IAAM,aAAa,SAAS,MAAM,MAAM,SAAS;AAC/C,QAAM,KAAK;AACX,OAAK,OAAO,MAAM,EAAE,KAAK,MAAM,UAAU,KAAK,EAAE,EAAE,KAAK,SAAS,mBAAmB,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,IACA,MAAM,KAAK,SAAS,EAAE,KAAK,CAAC,KAAK,SAAS,IAAI,EAAE,gBAAgB,KAAK,QAAQ,IAAI,EAAE,cAAc,KAAK,SAAS,EAAE;AAAA,EACnH;AACA,OAAK,OAAO,MAAM,EAAE,KAAK,SAAS,eAAe,OAAO,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,KAAK,MAAM,EAAE,KAAK,MAAM,KAAK,KAAK,EAAE,KAAK,MAAM,KAAK,MAAM;AAC/I;AACA,IAAM,UAAU,SAAS,MAAM,MAAM;AACnC,OAAK,OAAO,MAAM,EAAE,KAAK,MAAM,UAAU,KAAK,EAAE,EAAE,KAAK,SAAS,mBAAmB,SAAS,KAAK,IAAI,CAAC,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,KAAK,SAAS,KAAK,KAAK;AAC9J;AACA,IAAM,WAAW,SAAS,MAAM,MAAM;AACpC,QAAM,IAAI,KAAK;AACf,QAAM,IAAI,KAAK;AACf,QAAM,KAAK,OAAO;AAClB,QAAM,KAAK,OAAO;AAClB,QAAM,KAAK,OAAO;AAClB,QAAM,KAAK,MAAM;AACjB,OAAK,OAAO,MAAM,EAAE,KAAK,MAAM,UAAU,KAAK,EAAE,EAAE,KAAK,SAAS,mBAAmB,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,IACA,SAAS,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG;AAAA,SAC9C,EAAE,IAAI,EAAE,UAAU,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG;AAAA,SACzC,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAAA;AAAA,SAEzC,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,SAC1C,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA;AAAA,SAE/C,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,SAC3C,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;AAAA,SACnC,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;AAAA;AAAA,SAEhD,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI;AAAA,SAC/C,EAAE,IAAI,EAAE,UAAU,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI;AAAA;AAAA;AAAA,EAGjD;AACF;AACA,IAAM,UAAU,SAAS,MAAM,MAAM;AACnC,QAAM,IAAI,KAAK;AACf,QAAM,IAAI,KAAK;AACf,QAAM,IAAI,OAAO;AACjB,OAAK,OAAO,MAAM,EAAE,KAAK,MAAM,UAAU,KAAK,EAAE,EAAE,KAAK,SAAS,mBAAmB,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,IACA,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG;AAAA,SAC5C,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC;AAAA,SAC7B,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC;AAAA,SAC7B,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG;AAAA;AAAA,SAEvC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,SACxC,IAAI,GAAG,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,IAAI;AAAA,SAC7C,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA;AAAA,SAE7C,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,SACzC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC;AAAA,SAClC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC;AAAA,SAClC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;AAAA;AAAA,SAE9C,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI;AAAA,SAC7C,IAAI,GAAG,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,KAAK,IAAI,IAAI;AAAA,SAC9C,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI;AAAA;AAAA;AAAA,EAG/C;AACF;AACA,IAAM,YAAY,SAAS,MAAM,MAAM;AACrC,OAAK,OAAO,QAAQ,EAAE,KAAK,MAAM,UAAU,KAAK,EAAE,EAAE,KAAK,SAAS,mBAAmB,SAAS,KAAK,IAAI,CAAC,EAAE,KAAK,KAAK,KAAK,QAAQ,CAAC;AACpI;AACA,SAAS,mBAAmB,QAAQ,GAAG,GAAG,QAAQ,MAAM;AACtD,SAAO,OAAO,OAAO,WAAW,cAAc,EAAE;AAAA,IAC9C;AAAA,IACA,OAAO,IAAI,SAAS,GAAG;AACrB,aAAO,EAAE,IAAI,MAAM,EAAE;AAAA,IACvB,CAAC,EAAE,KAAK,GAAG;AAAA,EACb,EAAE,KAAK,aAAa,gBAAgB,KAAK,QAAQ,KAAK,IAAI,OAAO,IAAI,GAAG;AAC1E;AACA,IAAM,aAAa,SAAS,MAAM,MAAM;AACtC,QAAM,IAAI,KAAK;AACf,QAAM,IAAI;AACV,QAAM,IAAI,IAAI;AACd,QAAM,IAAI,KAAK,QAAQ,KAAK,UAAU,IAAI;AAC1C,QAAM,SAAS;AAAA,IACb,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,IACb,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE;AAAA,IACjB,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE;AAAA,IAClB,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE;AAAA,IAClB,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE;AAAA,IACd,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE;AAAA,EACpB;AACA,qBAAmB,MAAM,GAAG,GAAG,QAAQ,IAAI;AAC7C;AACA,IAAM,iBAAiB,SAAS,MAAM,MAAM;AAC1C,OAAK,OAAO,MAAM,EAAE,KAAK,MAAM,UAAU,KAAK,EAAE,EAAE,KAAK,SAAS,mBAAmB,SAAS,KAAK,IAAI,CAAC,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,KAAK,MAAM,KAAK,OAAO,EAAE,KAAK,MAAM,KAAK,OAAO,EAAE,KAAK,SAAS,KAAK,KAAK;AAChN;AACA,IAAM,WAAW,SAAS,MAAM,MAAM,aAAa,MAAM;AACvD,QAAM,aAAa,KAAK;AACxB,QAAM,UAAU,eAAe,eAAe;AAC9C,QAAM,WAAW,KAAK,OAAO,GAAG;AAChC,OAAK,UAAU;AACf,MAAI,eAAe,aAAa;AAChC,MAAI,UAAU,GAAG;AACf,oBAAgB;AAAA,EAClB;AACA,WAAS,KAAK,UAAU,KAAK,QAAQ,KAAK,QAAQ,MAAM,MAAM,kBAAkB,YAAY;AAC5F,QAAM,UAAU,SAAS,OAAO,GAAG;AACnC,QAAM,WAAW,SAAS,OAAO,GAAG;AACpC,QAAM,cAAc,KAAK,MAAM,QAAQ,cAAc,IAAI;AACzD,aAAW,UAAU,aAAa;AAAA,IAChC,eAAe;AAAA,IACf,OAAO,KAAK;AAAA,IACZ,SAAS;AAAA,EACX,CAAC;AACD,MAAI,CAAC,YAAY;AACf,aAAS,KAAK,MAAM,KAAK,EAAE,KAAK,sBAAsB,QAAQ,EAAE,KAAK,qBAAqB,QAAQ,EAAE,KAAK,eAAe,QAAQ;AAAA,EAClI;AACA,QAAM,OAAO,SAAS,KAAK,EAAE,QAAQ;AACrC,QAAM,WAAW,KAAK,SAAS,UAAU,KAAK,SAAS,QAAQ,MAAM,EAAE,IAAI,KAAK;AAChF,OAAK,SAAS,KAAK,SAAS,WAAW,MAAM,MAAM,KAAK;AACxD,OAAK,QAAQ,KAAK,QAAQ,IAAI,KAAK;AACnC,MAAI,KAAK,MAAM;AACb,QAAI,KAAK,SAAS,SAAS,QAAQ;AACjC,WAAK,UAAU;AACf,WAAK,SAAS;AACd,YAAM,OAAO,SAAS,OAAO,eAAe,EAAE,KAAK,UAAU,MAAM,EAAE,KAAK,SAAS,KAAK,KAAK,EAAE,KAAK,SAAS,qBAAqB;AAClI,WAAK,OAAO,KAAK,EAAE,KAAK,SAAS,gBAAgB,EAAE,OAAO,GAAG,EAAE,KAAK,SAAS,eAAe,UAAU,MAAM,KAAK,IAAI;AACrH,eAAS;AAAA,QACP;AAAA,QACA,eAAe,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW;AAAA,MAClF;AAAA,IACF,OAAO;AACL,WAAK,SAAS;AACd,YAAM,YAAY,KAAK;AACvB,WAAK,SAAS,KAAK,IAAI,WAAW,EAAE;AACpC,YAAM,aAAa,KAAK,IAAI,KAAK,SAAS,SAAS;AACnD,YAAM,OAAO,SAAS,OAAO,eAAe,EAAE,KAAK,SAAS,MAAM,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,KAAK,SAAS,mCAAmC,aAAa,IAAI,KAAK;AACvK,WAAK,OAAO,KAAK,EAAE,KAAK,SAAS,gBAAgB,EAAE,OAAO,GAAG,EAAE,KAAK,SAAS,eAAe,UAAU,MAAM,KAAK,IAAI;AACrH,eAAS;AAAA,QACP;AAAA,QACA,gBAAgB,KAAK,KAAK,QAAQ,KAAK,QAAQ,aAAa,IAAI,KAAK,UAAU,KAAK;AAAA,MACtF;AAAA,IACF;AAAA,EACF,OAAO;AACL,QAAI,CAAC,YAAY;AACf,YAAM,KAAK,KAAK,QAAQ;AACxB,YAAM,KAAK,KAAK,UAAU;AAC1B,eAAS,KAAK,aAAa,eAAe,KAAK,OAAO,KAAK,GAAG;AAAA,IAChE,OAAO;AACL,YAAM,MAAM,KAAK,QAAQ,KAAK,SAAS;AACvC,YAAM,MAAM,KAAK,SAAS,KAAK,UAAU;AACzC,eAAS,KAAK,aAAa,eAAe,KAAK,OAAO,KAAK,GAAG;AAAA,IAChE;AAAA,EACF;AACA,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK,SAAS;AACZ,iBAAW,SAAS,MAAM,OAAO;AACjC;AAAA,IACF,KAAK,SAAS;AACZ,qBAAe,SAAS,IAAI;AAC5B;AAAA,IACF,KAAK,SAAS;AACZ,cAAQ,SAAS,IAAI;AACrB;AAAA,IACF,KAAK,SAAS;AACZ,cAAQ,KAAK,aAAa,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,GAAG;AACvF,gBAAU,SAAS,IAAI;AACvB;AAAA,IACF,KAAK,SAAS;AACZ,eAAS,SAAS,IAAI;AACtB;AAAA,IACF,KAAK,SAAS;AACZ,cAAQ,SAAS,IAAI;AACrB;AAAA,IACF,KAAK,SAAS;AACZ,iBAAW,SAAS,IAAI;AACxB;AAAA,EACJ;AACA,kBAAgB,KAAK,IAAI,QAAQ;AACjC,SAAO,KAAK;AACd;AACA,IAAM,WAAW,SAAS,UAAU,WAAW,SAAS,QAAQ,OAAO,aAAa;AAClF,QAAM,UAAU,eAAe,eAAe;AAC9C,QAAM,KAAK,OAAO,IAAI,OAAO,QAAQ;AACrC,QAAM,KAAK,OAAO,IAAI,OAAO,SAAS;AACtC,QAAM,KAAK,QAAQ,IAAI,QAAQ,QAAQ;AACvC,QAAM,KAAK,QAAQ,IAAI,QAAQ,SAAS;AACxC,QAAM,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI;AAC3E,QAAM,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI;AAC3E,QAAM,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI;AAC3E,QAAM,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI;AAC3E,YAAU,OAAO,MAAM,EAAE;AAAA,IACvB;AAAA,IACA,OAAO,cAAc,QAAQ,OAAO,cAAc,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAAA,EACpK,EAAE,KAAK,SAAS,uBAAuB,UAAU,iBAAiB,KAAK;AACzE;AACA,IAAM,eAAe,SAAS,MAAM;AAClC,QAAM,WAAW,eAAe,KAAK,EAAE;AACvC,QAAM,IAAI,KAAK,KAAK;AACpB,QAAM,IAAI,KAAK,KAAK;AACpB,WAAS,KAAK,aAAa,eAAe,IAAI,MAAM,IAAI,GAAG;AAC7D;AACA,IAAM,UAAU,EAAE,UAAU,cAAc,SAAS;AACnD,qBAAAC,QAAU,IAAI,8BAAAC,OAAW;AACzB,SAAS,UAAU,KAAK,SAAS,SAAS,MAAM;AAC9C,UAAQ,SAAS,KAAK,SAAS,SAAS,IAAI;AAC5C,MAAI,QAAQ,UAAU;AACpB,YAAQ,SAAS,QAAQ,CAAC,OAAO,UAAU;AACzC,gBAAU,KAAK,OAAO,UAAU,IAAI,QAAQ,SAAS,IAAI;AAAA,IAC3D,CAAC;AAAA,EACH;AACF;AACA,SAAS,UAAU,SAAS,IAAI;AAC9B,KAAG,MAAM,EAAE,IAAI,CAAC,MAAM,OAAO;AAC3B,UAAM,OAAO,KAAK,KAAK;AACvB,QAAI,KAAK,CAAC,EAAE,SAAS,YAAY;AAC/B,YAAM,SAAS,KAAK,CAAC,EAAE,SAAS;AAChC,YAAI,MAAM,UAAU,IAAI,IAAI;AAC5B,cAAQ,OAAO,MAAM,EAAE;AAAA,QACrB;AAAA,QACA,KAAK,OAAO,MAAM,IAAI,OAAO,MAAM,MAAM,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,OAAO,IAAI;AAAA,MACpG,EAAE,KAAK,SAAS,uBAAuB,KAAK,UAAU,iBAAiB,KAAK,KAAK;AAAA,IACnF;AAAA,EACF,CAAC;AACH;AACA,SAAS,SAAS,SAAS,IAAI,MAAM,OAAO;AAC1C,KAAG,IAAI;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,IAAI,QAAQ;AAAA,MACZ,WAAW,QAAQ;AAAA,MACnB,QAAQ,QAAQ;AAAA,MAChB,OAAO,QAAQ;AAAA,MACf;AAAA,MACA,QAAQ,QAAQ;AAAA,MAChB,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ;AAAA,IAChB;AAAA,IACA,UAAU;AAAA,MACR,GAAG,QAAQ;AAAA,MACX,GAAG,QAAQ;AAAA,IACb;AAAA,EACF,CAAC;AACD,MAAI,QAAQ,UAAU;AACpB,YAAQ,SAAS,QAAQ,CAAC,UAAU;AAClC,eAAS,OAAO,IAAI,MAAM,QAAQ,CAAC;AACnC,SAAG,IAAI;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,UACJ,IAAI,GAAG,QAAQ,EAAE,IAAI,MAAM,EAAE;AAAA,UAC7B,QAAQ,QAAQ;AAAA,UAChB,QAAQ,MAAM;AAAA,UACd,OAAO;AAAA,UACP,SAAS,MAAM;AAAA,QACjB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AACA,SAAS,cAAc,MAAM,MAAM;AACjC,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,WAAW,eAAO,MAAM,EAAE,OAAO,KAAK,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,cAAc;AAC3F,UAAM,SAAK,qBAAAD,SAAU;AAAA,MACnB,WAAW,SAAS,eAAe,IAAI;AAAA;AAAA,MAEvC,OAAO;AAAA,QACL;AAAA,UACE,UAAU;AAAA,UACV,OAAO;AAAA,YACL,eAAe;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AACD,aAAS,OAAO;AAChB,aAAS,MAAM,IAAI,MAAM,CAAC;AAC1B,OAAG,MAAM,EAAE,QAAQ,SAAS,GAAG;AAC7B,QAAE,mBAAmB,MAAM;AACzB,cAAM,OAAO,EAAE,KAAK;AACpB,eAAO,EAAE,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO;AAAA,MACzC;AAAA,IACF,CAAC;AACD,OAAG,OAAO;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,MAET,cAAc;AAAA,MACd,SAAS;AAAA,IACX,CAAC,EAAE,IAAI;AACP,OAAG,MAAM,CAAC,MAAM;AACd,YAAI,KAAK,SAAS,CAAC;AACnB,cAAQ,EAAE;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AACH;AACA,SAAS,cAAc,IAAI;AACzB,KAAG,MAAM,EAAE,IAAI,CAAC,MAAM,OAAO;AAC3B,UAAM,OAAO,KAAK,KAAK;AACvB,SAAK,IAAI,KAAK,SAAS,EAAE;AACzB,SAAK,IAAI,KAAK,SAAS,EAAE;AACzB,YAAQ,aAAa,IAAI;AACzB,UAAM,KAAK,eAAe,KAAK,MAAM;AACrC,UAAI,KAAK,OAAO,IAAI,eAAe,KAAK,SAAS,EAAE,GAAG,MAAM,KAAK,SAAS,EAAE,GAAG,KAAK,IAAI;AACxF,OAAG;AAAA,MACD;AAAA,MACA,aAAa,KAAK,SAAS,EAAE,IAAI,KAAK,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,IAAI,KAAK,SAAS,CAAC;AAAA,IACzF;AACA,OAAG,KAAK,QAAQ,OAAO,EAAE,GAAG;AAAA,EAC9B,CAAC;AACH;AACA,IAAM,OAAO,OAAO,MAAM,IAAI,SAAS,YAAY;AACjD,QAAM,OAAO,UAAU;AACvB,OAAK,aAAa;AAClB,QAAI,MAAM,gCAAgC,MAAM,QAAQ,MAAM;AAC9D,QAAM,gBAAgB,UAAU,EAAE;AAClC,MAAI;AACJ,MAAI,kBAAkB,WAAW;AAC/B,qBAAiB,eAAO,OAAO,EAAE;AAAA,EACnC;AACA,QAAM,OAAO,kBAAkB,YAAY,eAAO,eAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,IAAI,eAAO,MAAM;AACjH,QAAM,MAAM,KAAK,OAAO,MAAM,EAAE;AAChC,MAAI,OAAO,GAAG;AACd,QAAM,KAAK,QAAQ,GAAG,WAAW;AACjC,QAAM,YAAY,IAAI,OAAO,GAAG;AAChC,YAAU,KAAK,SAAS,eAAe;AACvC,QAAM,YAAY,IAAI,OAAO,GAAG;AAChC,YAAU,KAAK,SAAS,eAAe;AACvC,YAAU,WAAW,IAAI,IAAI,IAAI;AACjC,QAAM,KAAK,MAAM,cAAc,IAAI,IAAI;AACvC,YAAU,WAAW,EAAE;AACvB,gBAAc,EAAE;AAChB,sBAAkB,QAAQ,KAAK,KAAK,QAAQ,SAAS,KAAK,QAAQ,WAAW;AAC/E;AACA,IAAM,kBAAkB;AAAA,EACtB;AACF;AACA,IAAM,cAAc,CAAC,YAAY;AAC/B,MAAI,WAAW;AACf,WAAS,IAAI,GAAG,IAAI,QAAQ,mBAAmB,KAAK;AAClD,YAAQ,cAAc,CAAC,IAAI,QAAQ,cAAc,CAAC,KAAK,QAAQ,cAAc,CAAC;AAC9E,QAAI,gBAAO,QAAQ,cAAc,CAAC,CAAC,GAAG;AACpC,cAAQ,cAAc,CAAC,IAAI,gBAAQ,QAAQ,cAAc,CAAC,GAAG,EAAE;AAAA,IACjE,OAAO;AACL,cAAQ,cAAc,CAAC,IAAI,eAAO,QAAQ,cAAc,CAAC,GAAG,EAAE;AAAA,IAChE;AAAA,EACF;AACA,WAAS,IAAI,GAAG,IAAI,QAAQ,mBAAmB,KAAK;AAClD,UAAM,KAAK,MAAM,KAAK,IAAI;AAC1B,gBAAY;AAAA,eACD,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,IAAI,CAAC,qBAAqB,IAAI,CAAC,sBAAsB,IAAI,CAAC;AAAA,cAC3G,QAAQ,WAAW,CAAC,CAAC;AAAA;AAAA,eAEpB,IAAI,CAAC;AAAA,aACP,QAAQ,gBAAgB,CAAC,CAAC;AAAA;AAAA,iBAEtB,IAAI,CAAC;AAAA;AAAA,eAEP,QAAQ,gBAAgB,CAAC,CAAC;AAAA;AAAA,oBAErB,IAAI,CAAC;AAAA,gBACT,QAAQ,WAAW,CAAC,CAAC;AAAA;AAAA,kBAEnB,IAAI,CAAC;AAAA,sBACD,EAAE;AAAA;AAAA,eAET,IAAI,CAAC;AAAA,gBACJ,QAAQ,cAAc,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWtC;AACA,SAAO;AACT;AACA,IAAM,YAAY,CAAC,YAAY;AAAA;AAAA;AAAA;AAAA,IAI3B,YAAY,OAAO,CAAC;AAAA;AAAA,YAEZ,QAAQ,IAAI;AAAA;AAAA;AAAA,YAGZ,QAAQ,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBnC,IAAM,gBAAgB;AACtB,IAAM,UAAU;AAAA,EACd,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AACV;", - "names": ["global", "obj", "instance", "i", "instanceStr", "string", "fn", "array", "plainObject", "object", "number", "integer", "htmlElement", "elementOrCollection", "element", "collection", "core", "stylesheet", "event", "emptyString", "domElement", "boundingBox", "promise", "ms", "memoize", "keyFn", "memoizedFn", "self", "cache", "capitalize", "ascending", "descending", "hex2tuple", "hsl2tuple", "p", "q", "rgb2tuple", "colorname2tuple", "color2tuple", "setMap", "getMap", "module", "requestAnimationFrame", "hashIterableInts", "hashInt", "hashIntAlt", "combineHashes", "combineHashesArray", "hashArrays", "hashIntsArray", "next", "hashString", "hashStrings", "hashStringsArray", "trueify", "falsify", "zeroify", "noop", "error", "warnings", "warn", "clone", "copy", "copyArray", "uuid", "staticEmptyObject", "defaults", "removeFromArray", "clearArray", "push", "getPrefixedProperty", "setPrefixedProperty", "ObjectMap", "set", "clear", "get", "ObjectSet", "Element", "defineSearch", "nodes", "_loop", "v", "e", "exports", "min", "Heap", "heap", "root", "dist", "getDist", "node", "setDist", "distBetween", "u", "uid", "edge", "findSetIndex", "addToOpenSet", "popFromOpenSet", "isInOpenSet", "indexOf", "atIndex", "getArgEle", "indexOfArgEle", "j", "path", "getInfo", "getNodeFromTo", "distanceTo", "pathTo", "checkForEdgeReplacement", "weight", "collapse", "contractUntil", "copyNodesMap", "constructComponent", "copyPosition", "modelToRenderedPosition", "renderedToModelPosition", "array2point", "max", "mean", "median", "deg2rad", "getAngleFromDisp", "signum", "sqdist", "inPlaceSumNormalize", "qbezierAt", "qbezierPtAt", "lineAt", "bound", "makeBoundingBox", "copyBoundingBox", "clearBoundingBox", "shiftBoundingBox", "updateBoundingBox", "expandBoundingBoxByPoint", "expandBoundingBox", "expandBoundingBoxSides", "assignBoundingBox", "boundingBoxesIntersect", "inBoundingBox", "pointInBoundingBox", "boundingBoxInBoundingBox", "roundRectangleIntersectLine", "inLineVicinity", "inBezierVicinity", "solveQuadratic", "solveCubic", "sqdistToQuadraticBezier", "sqdistToFiniteLine", "pointInsidePolygonPoints", "pointInsidePolygon", "cos", "sin", "pointInsideRoundPolygon", "joinLines", "expandPolygon", "intersectLineEllipse", "checkInEllipse", "intersectLineCircle", "midOfThree", "finiteLinesIntersect", "polygonIntersectLine", "roundPolygonIntersectLine", "shortenIntersection", "generateUnitNgonPointsFitToSquare", "fitPolygonToSquare", "generateUnitNgonPoints", "getRoundRectangleRadius", "getRoundPolygonRadius", "getCutRectangleCornerLength", "bezierPtsToQuadCoeff", "getBarrelCurveConstants", "s", "setOptions", "getSimilarity", "addLoops", "normalize", "mmult", "expand", "inflate", "hasConverged", "assign", "isDuplicate", "removeDuplicates", "markovClustering", "identity", "absDiff", "addAbsDiff", "addSquaredDiff", "sqrt", "maxAbsDiff", "getDistance", "impl", "getQ", "randomCentroids", "classify", "buildCluster", "haveValuesConverged", "haveMatricesConverged", "seenBefore", "randomMedoids", "findCost", "kMeans", "kMedoids", "updateCentroids", "updateMembership", "fuzzyCMeans", "mergeClosest", "getAllChildren", "buildDendrogram", "buildClustersFromTree", "hierarchicalClustering", "cluster", "attr", "getPreference", "findExemplars", "assignClusters", "affinityPropagation", "max2", "K", "d", "walk", "subtour", "hopcroftTarjanBiconnected", "buildComponent", "biconnectedSearch", "id", "tarjanStronglyConnected", "stronglyConnectedSearch", "api", "deliver", "name", "execute", "execute_handlers", "func", "resolver", "resolve", "fulfill", "val", "Animation", "swap", "data", "match", "valid", "callback", "define", "cls", "newQuery", "matches", "stateSelectorMatches", "cleanMetaChars", "replaceLastQuery", "meta", "consumeExpr", "consumeWhitespace", "parse", "toString", "clean", "cleanVal", "space", "checkToString", "queryToString", "query", "str", "valCmp", "boolCmp", "existCmp", "filter", "selectorFunction", "Selector", "parent", "parents", "elements", "beforePositionSet", "update", "_p", "noninf", "updateBounds", "updateBoundsFromBox", "prefixedProperty", "updateBoundsFromArrow", "bounds", "updateBoundsFromLabel", "rotate", "updateBoundsFromOutline", "boundingBoxImpl", "isDisplayed", "ele", "pts", "getKey", "tf", "getBoundingBoxPosKey", "r", "cachedBoundingBoxImpl", "isDirty", "storeOldPos", "getOldPos", "defineDimFns", "ifEdge", "getValue", "ifEdgeRenderedPosition", "ifEdgeRenderedPositions", "controlPoints", "segmentPoints", "sourceEndpoint", "targetEndpoint", "midpoint", "renderedName", "Event", "forEachEvent", "makeEventObj", "forEachEventObj", "qualifier", "conf", "_loop2", "argSelector", "add", "other", "zIndexSort", "eq", "defineSymbolIterator", "layout", "getMemoizeKey", "calculateSpacing", "spacingBb", "bb", "newPos", "ani", "selfFn", "renderer", "dirty", "style", "defineDagExtremity", "defineDagOneHop", "defineDagAllHops", "components", "visitInComponent", "Collection", "eles", "checkSwitch", "removeFromElements", "addChildren", "pllEdge", "f", "cubicBezier", "spring", "now", "callbacks", "Layout", "edges", "propHash", "propNames", "updateGrKey1", "grKey", "updateGrKey2", "updateGrKey", "updateGrKeyWStr", "cleanNum", "getVal", "checkTriggers", "printMappingErr", "getRenderedValue", "getValueStringWithUnits", "units", "number$1", "rgba", "hsla", "mapData", "nodeSizeHashOverride", "prop", "checkEnums", "Style", "pan", "maxZoom", "Core", "defVal", "loadExtData", "setElesAndLayout", "getElementById", "window", "getFreshRef", "updateEles", "gr", "json", "position", "setInfo", "n", "_i", "addToDepth", "changeDepth", "assignDepthsAt", "assignDepths", "adjustMaximally", "shifted", "enqueue", "dequeue", "getWeightedPercent", "sortFn", "getPosition", "getPos", "nodeRepulsion", "refresh", "mainLoop", "done", "frame", "createLayoutInfo", "findLCA", "findLCA_aux", "randomizePositions", "getScaleInBoundsFn", "refreshPositions", "step", "calculateNodeForces", "randomDistance", "nodesOverlap", "findClippingPoint", "calculateEdgeForces", "calculateGravityForces", "propagateForces", "updatePositions", "limitForce", "updateAncestryBoundaries", "separateComponents", "small", "large", "used", "row", "col", "use", "moveToNextCell", "rcPos", "throwImgErr", "bbCollide", "transform", "transformPoints", "pointsToArr", "standardGap", "defineArrowShape", "draw", "styleValue", "x", "y", "recalcVectorNormInverse", "x1", "y1", "x2", "y2", "subDWH", "getIsTooClose", "pairId", "src", "tgt", "qbezierAt$1", "p2", "lineAngleFromDelta", "lineAngle", "bezierAngle", "setRs", "createControlPointInfo", "cp", "p0", "p1", "calculateEndProjection", "rscratch", "updateEleCalcs", "isCleanConnected", "on", "isSelected", "triggerEvents", "isMultSelKeyDown", "allowPanningPassthrough", "setGrabbed", "setFreed", "setInDragLayer", "setOutDragLayer", "setGrabTarget", "removeGrabTarget", "addToDragList", "addDescendantsToDrag", "addNodesToDrag", "freeDraggedElements", "updateAncestorsInDragLayer", "blurActiveDomElement", "forEachUp", "invalidateCoords", "inBoxSelection", "eventInContainer", "checkForTaphold", "makeEvent", "triggerGrab", "updateDragDelta", "dragDelta", "goIntoBoxMode", "eleWouldBeSelected", "wheelHandler", "distance", "distanceSq", "touchstartHandler", "touchmoveHandler", "touchcancelHandler", "touchendHandler", "makeTouch", "makePointer", "addPointer", "removePointer", "updatePointer", "addTouchesToEvent", "pointerIsMouse", "approximateBarrelCurvePts", "getCurveT", "y0", "beforeRenderCallbacks", "renderFn", "BaseRenderer", "document", "ElementTextureCacheLookup", "ElementTextureCache", "lookup", "addNewTxr", "scalableFrom", "downscale", "LayeredTextureCache", "qSort", "checkTempLevels", "canUseAsTmpLvl", "checkLvls", "layer", "getBb", "makeLayer", "getOpacity", "getZeroRotation", "getLabelRotation", "getSourceLabelRotation", "getTargetLabelRotation", "getTextOpacity", "drawLine", "drawOverlay", "drawUnderlay", "drawArrows", "drawText", "drawEdgeOverlayUnderlay", "setupShapeColor", "setupBorderColor", "setupOutlineColor", "getPath", "drawShape", "drawImages", "drawPie", "darken", "drawBorder", "drawOutline", "drawNodeOverlayUnderlay", "colors", "context", "drawMotionBlur", "cxt", "getB64Uri", "getBoxCenter", "getCenterOffset", "backgroundTimestampHasChanged", "getStyleKey", "getLabelKey", "getSourceLabelKey", "getTargetLabelKey", "drawElement", "drawLabel", "drawSourceLabel", "drawTargetLabel", "getElementBox", "getLabelBox", "getSourceLabelBox", "getTargetLabelBox", "isLabelVisibleAtScale", "getElementRotationPoint", "addTextMargin", "getRsPt", "getLabelRotationPoint", "getSourceLabelRotationPoint", "getTargetLabelRotationPoint", "getElementRotationOffset", "getSourceLabelRotationOffset", "getTargetLabelRotationOffset", "getLabelRotationOffset", "refineInLayers", "overrideErr", "getCy", "Renderer", "extension", "Stylesheet", "cytoscape", "module", "exports", "name", "self", "edge", "nodes", "Point", "instance", "nodeFrom", "add", "next", "_remove", "LinkedList", "Layout", "DimensionD", "Quicksort", "NeedlemanWunsch", "layoutBase", "module", "exports", "name", "nodes", "pred1", "next", "processed", "Point", "Layout", "edge", "self", "p_id", "parent", "i", "node", "module", "exports", "name", "DimensionD", "defaults", "getUserOptions", "self", "nodes", "getPositions", "i", "iterateAnimated", "afterReposition", "register", "cytoscape", "self", "next", "cytoscape", "coseBilkent"] -} diff --git a/.vuepress/.cache/deps/package.json b/.vuepress/.cache/deps/package.json deleted file mode 100644 index 3dbc1ca59..000000000 --- a/.vuepress/.cache/deps/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/.vuepress/.cache/deps/pieDiagram-a5166659-DTYQJWHS.js b/.vuepress/.cache/deps/pieDiagram-a5166659-DTYQJWHS.js deleted file mode 100644 index 0b575c3a0..000000000 --- a/.vuepress/.cache/deps/pieDiagram-a5166659-DTYQJWHS.js +++ /dev/null @@ -1,738 +0,0 @@ -import { - arc_default, - cleanAndMerge, - clear, - configureSvgSize, - defaultConfig$2, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - log$1, - ordinal, - parseFontSize, - pie_default, - require_dayjs_min, - require_dist, - sanitizeText$2, - selectSvgElement, - setAccDescription, - setAccTitle, - setDiagramTitle -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/pieDiagram-a5166659.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V5 = [2, 4], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V7 = [20, 21, 22], $V8 = [2, 7], $V9 = [1, 12], $Va = [1, 13], $Vb = [1, 14], $Vc = [1, 15], $Vd = [1, 16], $Ve = [1, 17]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "eol": 4, "PIE": 5, "document": 6, "showData": 7, "line": 8, "statement": 9, "txt": 10, "value": 11, "title": 12, "title_value": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "section": 19, "NEWLINE": 20, ";": 21, "EOF": 22, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "PIE", 7: "showData", 10: "txt", 11: "value", 12: "title", 13: "title_value", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "section", 20: "NEWLINE", 21: ";", 22: "EOF" }, - productions_: [0, [3, 2], [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [9, 0], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [4, 1], [4, 1], [4, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 3: - yy.setShowData(true); - break; - case 6: - this.$ = $$[$0 - 1]; - break; - case 8: - yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0])); - break; - case 9: - this.$ = $$[$0].trim(); - yy.setDiagramTitle(this.$); - break; - case 10: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 11: - case 12: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 13: - yy.addSection($$[$0].substr(8)); - this.$ = $$[$0].substr(8); - break; - } - }, - table: [{ 3: 1, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, o($V4, $V5, { 6: 8, 7: [1, 9] }), o($V6, [2, 14]), o($V6, [2, 15]), o($V6, [2, 16]), { 1: [2, 1] }, o($V7, $V8, { 8: 10, 9: 11, 1: [2, 2], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, $V5, { 6: 18 }), o($V4, [2, 5]), { 4: 19, 20: $V1, 21: $V2, 22: $V3 }, { 11: [1, 20] }, { 13: [1, 21] }, { 15: [1, 22] }, { 17: [1, 23] }, o($V7, [2, 12]), o($V7, [2, 13]), o($V7, $V8, { 8: 10, 9: 11, 1: [2, 3], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, [2, 6]), o($V7, [2, 8]), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11])], - defaultActions: { 7: [2, 1] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - break; - case 1: - break; - case 2: - return 20; - case 3: - break; - case 4: - break; - case 5: - this.begin("title"); - return 12; - case 6: - this.popState(); - return "title_value"; - case 7: - this.begin("acc_title"); - return 14; - case 8: - this.popState(); - return "acc_title_value"; - case 9: - this.begin("acc_descr"); - return 16; - case 10: - this.popState(); - return "acc_descr_value"; - case 11: - this.begin("acc_descr_multiline"); - break; - case 12: - this.popState(); - break; - case 13: - return "acc_descr_multiline_value"; - case 14: - this.begin("string"); - break; - case 15: - this.popState(); - break; - case 16: - return "txt"; - case 17: - return 5; - case 18: - return 7; - case 19: - return "value"; - case 20: - return 22; - } - }, - rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i], - conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [6], "inclusive": false }, "string": { "rules": [15, 16], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 18, 19, 20], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var DEFAULT_PIE_CONFIG = defaultConfig$2.pie; -var DEFAULT_PIE_DB = { - sections: {}, - showData: false, - config: DEFAULT_PIE_CONFIG -}; -var sections = DEFAULT_PIE_DB.sections; -var showData = DEFAULT_PIE_DB.showData; -var config = structuredClone(DEFAULT_PIE_CONFIG); -var getConfig2 = () => structuredClone(config); -var clear2 = () => { - sections = structuredClone(DEFAULT_PIE_DB.sections); - showData = DEFAULT_PIE_DB.showData; - clear(); -}; -var addSection = (label, value) => { - label = sanitizeText$2(label, getConfig()); - if (sections[label] === void 0) { - sections[label] = value; - log$1.debug(`added new section: ${label}, with value: ${value}`); - } -}; -var getSections = () => sections; -var cleanupValue = (value) => { - if (value.substring(0, 1) === ":") { - value = value.substring(1).trim(); - } - return Number(value.trim()); -}; -var setShowData = (toggle) => { - showData = toggle; -}; -var getShowData = () => showData; -var db = { - getConfig: getConfig2, - clear: clear2, - setDiagramTitle, - getDiagramTitle, - setAccTitle, - getAccTitle, - setAccDescription, - getAccDescription, - addSection, - getSections, - cleanupValue, - setShowData, - getShowData -}; -var getStyles = (options) => ` - .pieCircle{ - stroke: ${options.pieStrokeColor}; - stroke-width : ${options.pieStrokeWidth}; - opacity : ${options.pieOpacity}; - } - .pieOuterCircle{ - stroke: ${options.pieOuterStrokeColor}; - stroke-width: ${options.pieOuterStrokeWidth}; - fill: none; - } - .pieTitleText { - text-anchor: middle; - font-size: ${options.pieTitleTextSize}; - fill: ${options.pieTitleTextColor}; - font-family: ${options.fontFamily}; - } - .slice { - font-family: ${options.fontFamily}; - fill: ${options.pieSectionTextColor}; - font-size:${options.pieSectionTextSize}; - // fill: white; - } - .legend text { - fill: ${options.pieLegendTextColor}; - font-family: ${options.fontFamily}; - font-size: ${options.pieLegendTextSize}; - } -`; -var styles = getStyles; -var createPieArcs = (sections2) => { - const pieData = Object.entries(sections2).map((element) => { - return { - label: element[0], - value: element[1] - }; - }).sort((a, b) => { - return b.value - a.value; - }); - const pie$1 = pie_default().value( - (d3Section) => d3Section.value - ); - return pie$1(pieData); -}; -var draw = (text, id, _version, diagObj) => { - var _a, _b; - log$1.debug("rendering pie chart\n" + text); - const db2 = diagObj.db; - const globalConfig = getConfig(); - const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie); - const height = 450; - const width = ((_b = (_a = document.getElementById(id)) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.offsetWidth) ?? pieConfig.useWidth; - const svg = selectSvgElement(id); - svg.attr("viewBox", `0 0 ${width} ${height}`); - configureSvgSize(svg, height, width, pieConfig.useMaxWidth); - const MARGIN = 40; - const LEGEND_RECT_SIZE = 18; - const LEGEND_SPACING = 4; - const group = svg.append("g"); - group.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")"); - const { themeVariables } = globalConfig; - let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth); - outerStrokeWidth ?? (outerStrokeWidth = 2); - const textPosition = pieConfig.textPosition; - const radius = Math.min(width, height) / 2 - MARGIN; - const arcGenerator = arc_default().innerRadius(0).outerRadius(radius); - const labelArcGenerator = arc_default().innerRadius(radius * textPosition).outerRadius(radius * textPosition); - group.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle"); - const sections2 = db2.getSections(); - const arcs = createPieArcs(sections2); - const myGeneratedColors = [ - themeVariables.pie1, - themeVariables.pie2, - themeVariables.pie3, - themeVariables.pie4, - themeVariables.pie5, - themeVariables.pie6, - themeVariables.pie7, - themeVariables.pie8, - themeVariables.pie9, - themeVariables.pie10, - themeVariables.pie11, - themeVariables.pie12 - ]; - const color = ordinal(myGeneratedColors); - group.selectAll("mySlices").data(arcs).enter().append("path").attr("d", arcGenerator).attr("fill", (datum) => { - return color(datum.data.label); - }).attr("class", "pieCircle"); - let sum = 0; - Object.keys(sections2).forEach((key) => { - sum += sections2[key]; - }); - group.selectAll("mySlices").data(arcs).enter().append("text").text((datum) => { - return (datum.data.value / sum * 100).toFixed(0) + "%"; - }).attr("transform", (datum) => { - return "translate(" + labelArcGenerator.centroid(datum) + ")"; - }).style("text-anchor", "middle").attr("class", "slice"); - group.append("text").text(db2.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText"); - const legend = group.selectAll(".legend").data(color.domain()).enter().append("g").attr("class", "legend").attr("transform", (_datum, index) => { - const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING; - const offset = height2 * color.domain().length / 2; - const horizontal = 12 * LEGEND_RECT_SIZE; - const vertical = index * height2 - offset; - return "translate(" + horizontal + "," + vertical + ")"; - }); - legend.append("rect").attr("width", LEGEND_RECT_SIZE).attr("height", LEGEND_RECT_SIZE).style("fill", color).style("stroke", color); - legend.data(arcs).append("text").attr("x", LEGEND_RECT_SIZE + LEGEND_SPACING).attr("y", LEGEND_RECT_SIZE - LEGEND_SPACING).text((datum) => { - const { label, value } = datum.data; - if (db2.getShowData()) { - return `${label} [${value}]`; - } - return label; - }); -}; -var renderer = { draw }; -var diagram = { - parser: parser$1, - db, - renderer, - styles -}; -export { - diagram -}; -//# sourceMappingURL=pieDiagram-a5166659-DTYQJWHS.js.map diff --git a/.vuepress/.cache/deps/pieDiagram-a5166659-DTYQJWHS.js.map b/.vuepress/.cache/deps/pieDiagram-a5166659-DTYQJWHS.js.map deleted file mode 100644 index 1022756d2..000000000 --- a/.vuepress/.cache/deps/pieDiagram-a5166659-DTYQJWHS.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/pieDiagram-a5166659.js"], - "sourcesContent": ["import { A as defaultConfig, q as setDiagramTitle, r as getDiagramTitle, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, t as clear$1, d as sanitizeText, c as getConfig$1, l as log, B as cleanAndMerge, z as selectSvgElement, i as configureSvgSize, C as parseFontSize } from \"./mermaid-934d9bea.js\";\nimport { arc, scaleOrdinal, pie } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V5 = [2, 4], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 20, 21, 22], $V7 = [20, 21, 22], $V8 = [2, 7], $V9 = [1, 12], $Va = [1, 13], $Vb = [1, 14], $Vc = [1, 15], $Vd = [1, 16], $Ve = [1, 17];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"PIE\": 5, \"document\": 6, \"showData\": 7, \"line\": 8, \"statement\": 9, \"txt\": 10, \"value\": 11, \"title\": 12, \"title_value\": 13, \"acc_title\": 14, \"acc_title_value\": 15, \"acc_descr\": 16, \"acc_descr_value\": 17, \"acc_descr_multiline_value\": 18, \"section\": 19, \"NEWLINE\": 20, \";\": 21, \"EOF\": 22, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"PIE\", 7: \"showData\", 10: \"txt\", 11: \"value\", 12: \"title\", 13: \"title_value\", 14: \"acc_title\", 15: \"acc_title_value\", 16: \"acc_descr\", 17: \"acc_descr_value\", 18: \"acc_descr_multiline_value\", 19: \"section\", 20: \"NEWLINE\", 21: \";\", 22: \"EOF\" },\n productions_: [0, [3, 2], [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [9, 0], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [4, 1], [4, 1], [4, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.setShowData(true);\n break;\n case 6:\n this.$ = $$[$0 - 1];\n break;\n case 8:\n yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 10:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 11:\n case 12:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 13:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, { 1: [3] }, { 3: 7, 4: 2, 5: $V0, 20: $V1, 21: $V2, 22: $V3 }, o($V4, $V5, { 6: 8, 7: [1, 9] }), o($V6, [2, 14]), o($V6, [2, 15]), o($V6, [2, 16]), { 1: [2, 1] }, o($V7, $V8, { 8: 10, 9: 11, 1: [2, 2], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, $V5, { 6: 18 }), o($V4, [2, 5]), { 4: 19, 20: $V1, 21: $V2, 22: $V3 }, { 11: [1, 20] }, { 13: [1, 21] }, { 15: [1, 22] }, { 17: [1, 23] }, o($V7, [2, 12]), o($V7, [2, 13]), o($V7, $V8, { 8: 10, 9: 11, 1: [2, 3], 10: $V9, 12: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 19: $Ve }), o($V4, [2, 6]), o($V7, [2, 8]), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11])],\n defaultActions: { 7: [2, 1] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 20;\n case 3:\n break;\n case 4:\n break;\n case 5:\n this.begin(\"title\");\n return 12;\n case 6:\n this.popState();\n return \"title_value\";\n case 7:\n this.begin(\"acc_title\");\n return 14;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.begin(\"acc_descr\");\n return 16;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n this.begin(\"string\");\n break;\n case 15:\n this.popState();\n break;\n case 16:\n return \"txt\";\n case 17:\n return 5;\n case 18:\n return 7;\n case 19:\n return \"value\";\n case 20:\n return 22;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:[\\s]+)/i, /^(?:title\\b)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:pie\\b)/i, /^(?:showData\\b)/i, /^(?::[\\s]*[\\d]+(?:\\.[\\d]+)?)/i, /^(?:$)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [6], \"inclusive\": false }, \"string\": { \"rules\": [15, 16], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 7, 9, 11, 14, 17, 18, 19, 20], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst DEFAULT_PIE_CONFIG = defaultConfig.pie;\nconst DEFAULT_PIE_DB = {\n sections: {},\n showData: false,\n config: DEFAULT_PIE_CONFIG\n};\nlet sections = DEFAULT_PIE_DB.sections;\nlet showData = DEFAULT_PIE_DB.showData;\nconst config = structuredClone(DEFAULT_PIE_CONFIG);\nconst getConfig = () => structuredClone(config);\nconst clear = () => {\n sections = structuredClone(DEFAULT_PIE_DB.sections);\n showData = DEFAULT_PIE_DB.showData;\n clear$1();\n};\nconst addSection = (label, value) => {\n label = sanitizeText(label, getConfig$1());\n if (sections[label] === void 0) {\n sections[label] = value;\n log.debug(`added new section: ${label}, with value: ${value}`);\n }\n};\nconst getSections = () => sections;\nconst cleanupValue = (value) => {\n if (value.substring(0, 1) === \":\") {\n value = value.substring(1).trim();\n }\n return Number(value.trim());\n};\nconst setShowData = (toggle) => {\n showData = toggle;\n};\nconst getShowData = () => showData;\nconst db = {\n getConfig,\n clear,\n setDiagramTitle,\n getDiagramTitle,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addSection,\n getSections,\n cleanupValue,\n setShowData,\n getShowData\n};\nconst getStyles = (options) => `\n .pieCircle{\n stroke: ${options.pieStrokeColor};\n stroke-width : ${options.pieStrokeWidth};\n opacity : ${options.pieOpacity};\n }\n .pieOuterCircle{\n stroke: ${options.pieOuterStrokeColor};\n stroke-width: ${options.pieOuterStrokeWidth};\n fill: none;\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${options.pieTitleTextSize};\n fill: ${options.pieTitleTextColor};\n font-family: ${options.fontFamily};\n }\n .slice {\n font-family: ${options.fontFamily};\n fill: ${options.pieSectionTextColor};\n font-size:${options.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${options.pieLegendTextColor};\n font-family: ${options.fontFamily};\n font-size: ${options.pieLegendTextSize};\n }\n`;\nconst styles = getStyles;\nconst createPieArcs = (sections2) => {\n const pieData = Object.entries(sections2).map((element) => {\n return {\n label: element[0],\n value: element[1]\n };\n }).sort((a, b) => {\n return b.value - a.value;\n });\n const pie$1 = pie().value(\n (d3Section) => d3Section.value\n );\n return pie$1(pieData);\n};\nconst draw = (text, id, _version, diagObj) => {\n var _a, _b;\n log.debug(\"rendering pie chart\\n\" + text);\n const db2 = diagObj.db;\n const globalConfig = getConfig$1();\n const pieConfig = cleanAndMerge(db2.getConfig(), globalConfig.pie);\n const height = 450;\n const width = ((_b = (_a = document.getElementById(id)) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.offsetWidth) ?? pieConfig.useWidth;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${width} ${height}`);\n configureSvgSize(svg, height, width, pieConfig.useMaxWidth);\n const MARGIN = 40;\n const LEGEND_RECT_SIZE = 18;\n const LEGEND_SPACING = 4;\n const group = svg.append(\"g\");\n group.attr(\"transform\", \"translate(\" + width / 2 + \",\" + height / 2 + \")\");\n const { themeVariables } = globalConfig;\n let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);\n outerStrokeWidth ?? (outerStrokeWidth = 2);\n const textPosition = pieConfig.textPosition;\n const radius = Math.min(width, height) / 2 - MARGIN;\n const arcGenerator = arc().innerRadius(0).outerRadius(radius);\n const labelArcGenerator = arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);\n group.append(\"circle\").attr(\"cx\", 0).attr(\"cy\", 0).attr(\"r\", radius + outerStrokeWidth / 2).attr(\"class\", \"pieOuterCircle\");\n const sections2 = db2.getSections();\n const arcs = createPieArcs(sections2);\n const myGeneratedColors = [\n themeVariables.pie1,\n themeVariables.pie2,\n themeVariables.pie3,\n themeVariables.pie4,\n themeVariables.pie5,\n themeVariables.pie6,\n themeVariables.pie7,\n themeVariables.pie8,\n themeVariables.pie9,\n themeVariables.pie10,\n themeVariables.pie11,\n themeVariables.pie12\n ];\n const color = scaleOrdinal(myGeneratedColors);\n group.selectAll(\"mySlices\").data(arcs).enter().append(\"path\").attr(\"d\", arcGenerator).attr(\"fill\", (datum) => {\n return color(datum.data.label);\n }).attr(\"class\", \"pieCircle\");\n let sum = 0;\n Object.keys(sections2).forEach((key) => {\n sum += sections2[key];\n });\n group.selectAll(\"mySlices\").data(arcs).enter().append(\"text\").text((datum) => {\n return (datum.data.value / sum * 100).toFixed(0) + \"%\";\n }).attr(\"transform\", (datum) => {\n return \"translate(\" + labelArcGenerator.centroid(datum) + \")\";\n }).style(\"text-anchor\", \"middle\").attr(\"class\", \"slice\");\n group.append(\"text\").text(db2.getDiagramTitle()).attr(\"x\", 0).attr(\"y\", -(height - 50) / 2).attr(\"class\", \"pieTitleText\");\n const legend = group.selectAll(\".legend\").data(color.domain()).enter().append(\"g\").attr(\"class\", \"legend\").attr(\"transform\", (_datum, index) => {\n const height2 = LEGEND_RECT_SIZE + LEGEND_SPACING;\n const offset = height2 * color.domain().length / 2;\n const horizontal = 12 * LEGEND_RECT_SIZE;\n const vertical = index * height2 - offset;\n return \"translate(\" + horizontal + \",\" + vertical + \")\";\n });\n legend.append(\"rect\").attr(\"width\", LEGEND_RECT_SIZE).attr(\"height\", LEGEND_RECT_SIZE).style(\"fill\", color).style(\"stroke\", color);\n legend.data(arcs).append(\"text\").attr(\"x\", LEGEND_RECT_SIZE + LEGEND_SPACING).attr(\"y\", LEGEND_RECT_SIZE - LEGEND_SPACING).text((datum) => {\n const { label, value } = datum.data;\n if (db2.getShowData()) {\n return `${label} [${value}]`;\n }\n return label;\n });\n};\nconst renderer = { draw };\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": ["getConfig", "clear"] -} diff --git a/.vuepress/.cache/deps/quadrantDiagram-6c355bbc-4YFRCJXD.js b/.vuepress/.cache/deps/quadrantDiagram-6c355bbc-4YFRCJXD.js deleted file mode 100644 index 9966abde7..000000000 --- a/.vuepress/.cache/deps/quadrantDiagram-6c355bbc-4YFRCJXD.js +++ /dev/null @@ -1,1223 +0,0 @@ -import { - clear, - configureSvgSize, - defaultConfig$2, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - getThemeVariables$2, - linear, - log$1, - require_dayjs_min, - require_dist, - sanitizeText$2, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/quadrantDiagram-6c355bbc.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V6 = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "eol": 4, "SPACE": 5, "QUADRANT": 6, "document": 7, "line": 8, "statement": 9, "axisDetails": 10, "quadrantDetails": 11, "points": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "text": 21, "point_start": 22, "point_x": 23, "point_y": 24, "X-AXIS": 25, "AXIS-TEXT-DELIMITER": 26, "Y-AXIS": 27, "QUADRANT_1": 28, "QUADRANT_2": 29, "QUADRANT_3": 30, "QUADRANT_4": 31, "NEWLINE": 32, "SEMI": 33, "EOF": 34, "alphaNumToken": 35, "textNoTagsToken": 36, "STR": 37, "MD_STR": 38, "alphaNum": 39, "PUNCTUATION": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "COMMA": 44, "PLUS": 45, "EQUALS": 46, "MULT": 47, "DOT": 48, "BRKT": 49, "UNDERSCORE": 50, "MINUS": 51, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "SPACE", 6: "QUADRANT", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 22: "point_start", 23: "point_x", 24: "point_y", 25: "X-AXIS", 26: "AXIS-TEXT-DELIMITER", 27: "Y-AXIS", 28: "QUADRANT_1", 29: "QUADRANT_2", 30: "QUADRANT_3", 31: "QUADRANT_4", 32: "NEWLINE", 33: "SEMI", 34: "EOF", 37: "STR", 38: "MD_STR", 40: "PUNCTUATION", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "COMMA", 45: "PLUS", 46: "EQUALS", 47: "MULT", 48: "DOT", 49: "BRKT", 50: "UNDERSCORE", 51: "MINUS" }, - productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 12: - this.$ = $$[$0].trim(); - yy.setDiagramTitle(this.$); - break; - case 13: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 14: - case 15: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 16: - yy.addSection($$[$0].substr(8)); - this.$ = $$[$0].substr(8); - break; - case 17: - yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]); - break; - case 18: - yy.setXAxisLeftText($$[$0 - 2]); - yy.setXAxisRightText($$[$0]); - break; - case 19: - $$[$0 - 1].text += " ⟶ "; - yy.setXAxisLeftText($$[$0 - 1]); - break; - case 20: - yy.setXAxisLeftText($$[$0]); - break; - case 21: - yy.setYAxisBottomText($$[$0 - 2]); - yy.setYAxisTopText($$[$0]); - break; - case 22: - $$[$0 - 1].text += " ⟶ "; - yy.setYAxisBottomText($$[$0 - 1]); - break; - case 23: - yy.setYAxisBottomText($$[$0]); - break; - case 24: - yy.setQuadrant1Text($$[$0]); - break; - case 25: - yy.setQuadrant2Text($$[$0]); - break; - case 26: - yy.setQuadrant3Text($$[$0]); - break; - case 27: - yy.setQuadrant4Text($$[$0]); - break; - case 31: - this.$ = { text: $$[$0], type: "text" }; - break; - case 32: - this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type }; - break; - case 33: - this.$ = { text: $$[$0], type: "text" }; - break; - case 34: - this.$ = { text: $$[$0], type: "markdown" }; - break; - case 35: - this.$ = $$[$0]; - break; - case 36: - this.$ = $$[$0 - 1] + "" + $$[$0]; - break; - } - }, - table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])], - defaultActions: { 8: [2, 1], 9: [2, 2] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - break; - case 1: - break; - case 2: - return 32; - case 3: - break; - case 4: - this.begin("title"); - return 13; - case 5: - this.popState(); - return "title_value"; - case 6: - this.begin("acc_title"); - return 15; - case 7: - this.popState(); - return "acc_title_value"; - case 8: - this.begin("acc_descr"); - return 17; - case 9: - this.popState(); - return "acc_descr_value"; - case 10: - this.begin("acc_descr_multiline"); - break; - case 11: - this.popState(); - break; - case 12: - return "acc_descr_multiline_value"; - case 13: - return 25; - case 14: - return 27; - case 15: - return 26; - case 16: - return 28; - case 17: - return 29; - case 18: - return 30; - case 19: - return 31; - case 20: - this.begin("md_string"); - break; - case 21: - return "MD_STR"; - case 22: - this.popState(); - break; - case 23: - this.begin("string"); - break; - case 24: - this.popState(); - break; - case 25: - return "STR"; - case 26: - this.begin("point_start"); - return 22; - case 27: - this.begin("point_x"); - return 23; - case 28: - this.popState(); - break; - case 29: - this.popState(); - this.begin("point_y"); - break; - case 30: - this.popState(); - return 24; - case 31: - return 6; - case 32: - return 43; - case 33: - return "COLON"; - case 34: - return 45; - case 35: - return 44; - case 36: - return 46; - case 37: - return 46; - case 38: - return 47; - case 39: - return 49; - case 40: - return 50; - case 41: - return 48; - case 42: - return 41; - case 43: - return 51; - case 44: - return 42; - case 45: - return 5; - case 46: - return 33; - case 47: - return 40; - case 48: - return 34; - } - }, - rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\s*:\s*\[\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?:\s*\] *)/i, /^(?:\s*,\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s)/i, /^(?:;)/i, /^(?:[!"#$%&'*+,-.`?\\_/])/i, /^(?:$)/i], - conditions: { "point_y": { "rules": [30], "inclusive": false }, "point_x": { "rules": [29], "inclusive": false }, "point_start": { "rules": [27, 28], "inclusive": false }, "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "title": { "rules": [5], "inclusive": false }, "md_string": { "rules": [21, 22], "inclusive": false }, "string": { "rules": [24, 25], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var defaultThemeVariables = getThemeVariables$2(); -var QuadrantBuilder = class { - constructor() { - this.config = this.getDefaultConfig(); - this.themeConfig = this.getDefaultThemeConfig(); - this.data = this.getDefaultData(); - } - getDefaultData() { - return { - titleText: "", - quadrant1Text: "", - quadrant2Text: "", - quadrant3Text: "", - quadrant4Text: "", - xAxisLeftText: "", - xAxisRightText: "", - yAxisBottomText: "", - yAxisTopText: "", - points: [] - }; - } - getDefaultConfig() { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r; - return { - showXAxis: true, - showYAxis: true, - showTitle: true, - chartHeight: ((_a = defaultConfig$2.quadrantChart) == null ? void 0 : _a.chartWidth) || 500, - chartWidth: ((_b = defaultConfig$2.quadrantChart) == null ? void 0 : _b.chartHeight) || 500, - titlePadding: ((_c = defaultConfig$2.quadrantChart) == null ? void 0 : _c.titlePadding) || 10, - titleFontSize: ((_d = defaultConfig$2.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20, - quadrantPadding: ((_e = defaultConfig$2.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5, - xAxisLabelPadding: ((_f = defaultConfig$2.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5, - yAxisLabelPadding: ((_g = defaultConfig$2.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5, - xAxisLabelFontSize: ((_h = defaultConfig$2.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16, - yAxisLabelFontSize: ((_i = defaultConfig$2.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16, - quadrantLabelFontSize: ((_j = defaultConfig$2.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16, - quadrantTextTopPadding: ((_k = defaultConfig$2.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5, - pointTextPadding: ((_l = defaultConfig$2.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5, - pointLabelFontSize: ((_m = defaultConfig$2.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12, - pointRadius: ((_n = defaultConfig$2.quadrantChart) == null ? void 0 : _n.pointRadius) || 5, - xAxisPosition: ((_o = defaultConfig$2.quadrantChart) == null ? void 0 : _o.xAxisPosition) || "top", - yAxisPosition: ((_p = defaultConfig$2.quadrantChart) == null ? void 0 : _p.yAxisPosition) || "left", - quadrantInternalBorderStrokeWidth: ((_q = defaultConfig$2.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1, - quadrantExternalBorderStrokeWidth: ((_r = defaultConfig$2.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2 - }; - } - getDefaultThemeConfig() { - return { - quadrant1Fill: defaultThemeVariables.quadrant1Fill, - quadrant2Fill: defaultThemeVariables.quadrant2Fill, - quadrant3Fill: defaultThemeVariables.quadrant3Fill, - quadrant4Fill: defaultThemeVariables.quadrant4Fill, - quadrant1TextFill: defaultThemeVariables.quadrant1TextFill, - quadrant2TextFill: defaultThemeVariables.quadrant2TextFill, - quadrant3TextFill: defaultThemeVariables.quadrant3TextFill, - quadrant4TextFill: defaultThemeVariables.quadrant4TextFill, - quadrantPointFill: defaultThemeVariables.quadrantPointFill, - quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill, - quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill, - quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill, - quadrantTitleFill: defaultThemeVariables.quadrantTitleFill, - quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill, - quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill - }; - } - clear() { - this.config = this.getDefaultConfig(); - this.themeConfig = this.getDefaultThemeConfig(); - this.data = this.getDefaultData(); - log$1.info("clear called"); - } - setData(data) { - this.data = { ...this.data, ...data }; - } - addPoints(points) { - this.data.points = [...points, ...this.data.points]; - } - setConfig(config2) { - log$1.trace("setConfig called with: ", config2); - this.config = { ...this.config, ...config2 }; - } - setThemeConfig(themeConfig) { - log$1.trace("setThemeConfig called with: ", themeConfig); - this.themeConfig = { ...this.themeConfig, ...themeConfig }; - } - calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) { - const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize; - const xAxisSpace = { - top: xAxisPosition === "top" && showXAxis ? xAxisSpaceCalculation : 0, - bottom: xAxisPosition === "bottom" && showXAxis ? xAxisSpaceCalculation : 0 - }; - const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize; - const yAxisSpace = { - left: this.config.yAxisPosition === "left" && showYAxis ? yAxisSpaceCalculation : 0, - right: this.config.yAxisPosition === "right" && showYAxis ? yAxisSpaceCalculation : 0 - }; - const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2; - const titleSpace = { - top: showTitle ? titleSpaceCalculation : 0 - }; - const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left; - const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top; - const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right; - const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top; - const quadrantHalfWidth = quadrantWidth / 2; - const quadrantHalfHeight = quadrantHeight / 2; - const quadrantSpace = { - quadrantLeft, - quadrantTop, - quadrantWidth, - quadrantHalfWidth, - quadrantHeight, - quadrantHalfHeight - }; - return { - xAxisSpace, - yAxisSpace, - titleSpace, - quadrantSpace - }; - } - getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) { - const { quadrantSpace, titleSpace } = spaceData; - const { - quadrantHalfHeight, - quadrantHeight, - quadrantLeft, - quadrantHalfWidth, - quadrantTop, - quadrantWidth - } = quadrantSpace; - const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText); - const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText); - const axisLabels = []; - if (this.data.xAxisLeftText && showXAxis) { - axisLabels.push({ - text: this.data.xAxisLeftText, - fill: this.themeConfig.quadrantXAxisTextFill, - x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0), - y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding, - fontSize: this.config.xAxisLabelFontSize, - verticalPos: drawXAxisLabelsInMiddle ? "center" : "left", - horizontalPos: "top", - rotation: 0 - }); - } - if (this.data.xAxisRightText && showXAxis) { - axisLabels.push({ - text: this.data.xAxisRightText, - fill: this.themeConfig.quadrantXAxisTextFill, - x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0), - y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding, - fontSize: this.config.xAxisLabelFontSize, - verticalPos: drawXAxisLabelsInMiddle ? "center" : "left", - horizontalPos: "top", - rotation: 0 - }); - } - if (this.data.yAxisBottomText && showYAxis) { - axisLabels.push({ - text: this.data.yAxisBottomText, - fill: this.themeConfig.quadrantYAxisTextFill, - x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding, - y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0), - fontSize: this.config.yAxisLabelFontSize, - verticalPos: drawYAxisLabelsInMiddle ? "center" : "left", - horizontalPos: "top", - rotation: -90 - }); - } - if (this.data.yAxisTopText && showYAxis) { - axisLabels.push({ - text: this.data.yAxisTopText, - fill: this.themeConfig.quadrantYAxisTextFill, - x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding, - y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0), - fontSize: this.config.yAxisLabelFontSize, - verticalPos: drawYAxisLabelsInMiddle ? "center" : "left", - horizontalPos: "top", - rotation: -90 - }); - } - return axisLabels; - } - getQuadrants(spaceData) { - const { quadrantSpace } = spaceData; - const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace; - const quadrants = [ - { - text: { - text: this.data.quadrant1Text, - fill: this.themeConfig.quadrant1TextFill, - x: 0, - y: 0, - fontSize: this.config.quadrantLabelFontSize, - verticalPos: "center", - horizontalPos: "middle", - rotation: 0 - }, - x: quadrantLeft + quadrantHalfWidth, - y: quadrantTop, - width: quadrantHalfWidth, - height: quadrantHalfHeight, - fill: this.themeConfig.quadrant1Fill - }, - { - text: { - text: this.data.quadrant2Text, - fill: this.themeConfig.quadrant2TextFill, - x: 0, - y: 0, - fontSize: this.config.quadrantLabelFontSize, - verticalPos: "center", - horizontalPos: "middle", - rotation: 0 - }, - x: quadrantLeft, - y: quadrantTop, - width: quadrantHalfWidth, - height: quadrantHalfHeight, - fill: this.themeConfig.quadrant2Fill - }, - { - text: { - text: this.data.quadrant3Text, - fill: this.themeConfig.quadrant3TextFill, - x: 0, - y: 0, - fontSize: this.config.quadrantLabelFontSize, - verticalPos: "center", - horizontalPos: "middle", - rotation: 0 - }, - x: quadrantLeft, - y: quadrantTop + quadrantHalfHeight, - width: quadrantHalfWidth, - height: quadrantHalfHeight, - fill: this.themeConfig.quadrant3Fill - }, - { - text: { - text: this.data.quadrant4Text, - fill: this.themeConfig.quadrant4TextFill, - x: 0, - y: 0, - fontSize: this.config.quadrantLabelFontSize, - verticalPos: "center", - horizontalPos: "middle", - rotation: 0 - }, - x: quadrantLeft + quadrantHalfWidth, - y: quadrantTop + quadrantHalfHeight, - width: quadrantHalfWidth, - height: quadrantHalfHeight, - fill: this.themeConfig.quadrant4Fill - } - ]; - for (const quadrant of quadrants) { - quadrant.text.x = quadrant.x + quadrant.width / 2; - if (this.data.points.length === 0) { - quadrant.text.y = quadrant.y + quadrant.height / 2; - quadrant.text.horizontalPos = "middle"; - } else { - quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding; - quadrant.text.horizontalPos = "top"; - } - } - return quadrants; - } - getQuadrantPoints(spaceData) { - const { quadrantSpace } = spaceData; - const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace; - const xAxis = linear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]); - const yAxis = linear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]); - const points = this.data.points.map((point) => { - const props = { - x: xAxis(point.x), - y: yAxis(point.y), - fill: this.themeConfig.quadrantPointFill, - radius: this.config.pointRadius, - text: { - text: point.text, - fill: this.themeConfig.quadrantPointTextFill, - x: xAxis(point.x), - y: yAxis(point.y) + this.config.pointTextPadding, - verticalPos: "center", - horizontalPos: "top", - fontSize: this.config.pointLabelFontSize, - rotation: 0 - } - }; - return props; - }); - return points; - } - getBorders(spaceData) { - const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2; - const { quadrantSpace } = spaceData; - const { - quadrantHalfHeight, - quadrantHeight, - quadrantLeft, - quadrantHalfWidth, - quadrantTop, - quadrantWidth - } = quadrantSpace; - const borderLines = [ - // top border - { - strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, - strokeWidth: this.config.quadrantExternalBorderStrokeWidth, - x1: quadrantLeft - halfExternalBorderWidth, - y1: quadrantTop, - x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth, - y2: quadrantTop - }, - // right border - { - strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, - strokeWidth: this.config.quadrantExternalBorderStrokeWidth, - x1: quadrantLeft + quadrantWidth, - y1: quadrantTop + halfExternalBorderWidth, - x2: quadrantLeft + quadrantWidth, - y2: quadrantTop + quadrantHeight - halfExternalBorderWidth - }, - // bottom border - { - strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, - strokeWidth: this.config.quadrantExternalBorderStrokeWidth, - x1: quadrantLeft - halfExternalBorderWidth, - y1: quadrantTop + quadrantHeight, - x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth, - y2: quadrantTop + quadrantHeight - }, - // left border - { - strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill, - strokeWidth: this.config.quadrantExternalBorderStrokeWidth, - x1: quadrantLeft, - y1: quadrantTop + halfExternalBorderWidth, - x2: quadrantLeft, - y2: quadrantTop + quadrantHeight - halfExternalBorderWidth - }, - // vertical inner border - { - strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, - strokeWidth: this.config.quadrantInternalBorderStrokeWidth, - x1: quadrantLeft + quadrantHalfWidth, - y1: quadrantTop + halfExternalBorderWidth, - x2: quadrantLeft + quadrantHalfWidth, - y2: quadrantTop + quadrantHeight - halfExternalBorderWidth - }, - // horizontal inner border - { - strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill, - strokeWidth: this.config.quadrantInternalBorderStrokeWidth, - x1: quadrantLeft + halfExternalBorderWidth, - y1: quadrantTop + quadrantHalfHeight, - x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth, - y2: quadrantTop + quadrantHalfHeight - } - ]; - return borderLines; - } - getTitle(showTitle) { - if (showTitle) { - return { - text: this.data.titleText, - fill: this.themeConfig.quadrantTitleFill, - fontSize: this.config.titleFontSize, - horizontalPos: "top", - verticalPos: "center", - rotation: 0, - y: this.config.titlePadding, - x: this.config.chartWidth / 2 - }; - } - return; - } - build() { - const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText); - const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText); - const showTitle = this.config.showTitle && !!this.data.titleText; - const xAxisPosition = this.data.points.length > 0 ? "bottom" : this.config.xAxisPosition; - const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle); - return { - points: this.getQuadrantPoints(calculatedSpace), - quadrants: this.getQuadrants(calculatedSpace), - axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace), - borderLines: this.getBorders(calculatedSpace), - title: this.getTitle(showTitle) - }; - } -}; -var config = getConfig(); -function textSanitizer(text) { - return sanitizeText$2(text.trim(), config); -} -var quadrantBuilder = new QuadrantBuilder(); -function setQuadrant1Text(textObj) { - quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) }); -} -function setQuadrant2Text(textObj) { - quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) }); -} -function setQuadrant3Text(textObj) { - quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) }); -} -function setQuadrant4Text(textObj) { - quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) }); -} -function setXAxisLeftText(textObj) { - quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) }); -} -function setXAxisRightText(textObj) { - quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) }); -} -function setYAxisTopText(textObj) { - quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) }); -} -function setYAxisBottomText(textObj) { - quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) }); -} -function addPoint(textObj, x, y) { - quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]); -} -function setWidth(width) { - quadrantBuilder.setConfig({ chartWidth: width }); -} -function setHeight(height) { - quadrantBuilder.setConfig({ chartHeight: height }); -} -function getQuadrantData() { - const config2 = getConfig(); - const { themeVariables, quadrantChart: quadrantChartConfig } = config2; - if (quadrantChartConfig) { - quadrantBuilder.setConfig(quadrantChartConfig); - } - quadrantBuilder.setThemeConfig({ - quadrant1Fill: themeVariables.quadrant1Fill, - quadrant2Fill: themeVariables.quadrant2Fill, - quadrant3Fill: themeVariables.quadrant3Fill, - quadrant4Fill: themeVariables.quadrant4Fill, - quadrant1TextFill: themeVariables.quadrant1TextFill, - quadrant2TextFill: themeVariables.quadrant2TextFill, - quadrant3TextFill: themeVariables.quadrant3TextFill, - quadrant4TextFill: themeVariables.quadrant4TextFill, - quadrantPointFill: themeVariables.quadrantPointFill, - quadrantPointTextFill: themeVariables.quadrantPointTextFill, - quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill, - quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill, - quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill, - quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill, - quadrantTitleFill: themeVariables.quadrantTitleFill - }); - quadrantBuilder.setData({ titleText: getDiagramTitle() }); - return quadrantBuilder.build(); -} -var clear2 = function() { - quadrantBuilder.clear(); - clear(); -}; -var db = { - setWidth, - setHeight, - setQuadrant1Text, - setQuadrant2Text, - setQuadrant3Text, - setQuadrant4Text, - setXAxisLeftText, - setXAxisRightText, - setYAxisTopText, - setYAxisBottomText, - addPoint, - getQuadrantData, - clear: clear2, - setAccTitle, - getAccTitle, - setDiagramTitle, - getDiagramTitle, - getAccDescription, - setAccDescription -}; -var draw = (txt, id, _version, diagObj) => { - var _a, _b, _c; - function getDominantBaseLine(horizontalPos) { - return horizontalPos === "top" ? "hanging" : "middle"; - } - function getTextAnchor(verticalPos) { - return verticalPos === "left" ? "start" : "middle"; - } - function getTransformation(data) { - return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`; - } - const conf = getConfig(); - log$1.debug("Rendering quadrant chart\n" + txt); - const securityLevel = conf.securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select(`[id="${id}"]`); - const group = svg.append("g").attr("class", "main"); - const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500; - const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500; - configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true); - svg.attr("viewBox", "0 0 " + width + " " + height); - diagObj.db.setHeight(height); - diagObj.db.setWidth(width); - const quadrantData = diagObj.db.getQuadrantData(); - const quadrantsGroup = group.append("g").attr("class", "quadrants"); - const borderGroup = group.append("g").attr("class", "border"); - const dataPointGroup = group.append("g").attr("class", "data-points"); - const labelGroup = group.append("g").attr("class", "labels"); - const titleGroup = group.append("g").attr("class", "title"); - if (quadrantData.title) { - titleGroup.append("text").attr("x", 0).attr("y", 0).attr("fill", quadrantData.title.fill).attr("font-size", quadrantData.title.fontSize).attr("dominant-baseline", getDominantBaseLine(quadrantData.title.horizontalPos)).attr("text-anchor", getTextAnchor(quadrantData.title.verticalPos)).attr("transform", getTransformation(quadrantData.title)).text(quadrantData.title.text); - } - if (quadrantData.borderLines) { - borderGroup.selectAll("line").data(quadrantData.borderLines).enter().append("line").attr("x1", (data) => data.x1).attr("y1", (data) => data.y1).attr("x2", (data) => data.x2).attr("y2", (data) => data.y2).style("stroke", (data) => data.strokeFill).style("stroke-width", (data) => data.strokeWidth); - } - const quadrants = quadrantsGroup.selectAll("g.quadrant").data(quadrantData.quadrants).enter().append("g").attr("class", "quadrant"); - quadrants.append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill); - quadrants.append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr( - "dominant-baseline", - (data) => getDominantBaseLine(data.text.horizontalPos) - ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)).text((data) => data.text.text); - const labels = labelGroup.selectAll("g.label").data(quadrantData.axisLabels).enter().append("g").attr("class", "label"); - labels.append("text").attr("x", 0).attr("y", 0).text((data) => data.text).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.horizontalPos)).attr("text-anchor", (data) => getTextAnchor(data.verticalPos)).attr("transform", (data) => getTransformation(data)); - const dataPoints = dataPointGroup.selectAll("g.data-point").data(quadrantData.points).enter().append("g").attr("class", "data-point"); - dataPoints.append("circle").attr("cx", (data) => data.x).attr("cy", (data) => data.y).attr("r", (data) => data.radius).attr("fill", (data) => data.fill); - dataPoints.append("text").attr("x", 0).attr("y", 0).text((data) => data.text.text).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr( - "dominant-baseline", - (data) => getDominantBaseLine(data.text.horizontalPos) - ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)); -}; -var renderer = { - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles: () => "" -}; -export { - diagram -}; -//# sourceMappingURL=quadrantDiagram-6c355bbc-4YFRCJXD.js.map diff --git a/.vuepress/.cache/deps/quadrantDiagram-6c355bbc-4YFRCJXD.js.map b/.vuepress/.cache/deps/quadrantDiagram-6c355bbc-4YFRCJXD.js.map deleted file mode 100644 index e1807bf4c..000000000 --- a/.vuepress/.cache/deps/quadrantDiagram-6c355bbc-4YFRCJXD.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/quadrantDiagram-6c355bbc.js"], - "sourcesContent": ["import { D as getThemeVariables, A as defaultConfig, l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, a as getAccDescription, b as setAccDescription, c as getConfig, t as clear$1, d as sanitizeText, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport { scaleLinear, select } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [1, 7], $V5 = [1, 5, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V6 = [1, 5, 6, 13, 15, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $V7 = [32, 33, 34], $V8 = [2, 7], $V9 = [1, 13], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 21], $Vf = [1, 22], $Vg = [1, 23], $Vh = [1, 24], $Vi = [1, 25], $Vj = [1, 26], $Vk = [1, 27], $Vl = [1, 30], $Vm = [1, 31], $Vn = [1, 32], $Vo = [1, 33], $Vp = [1, 34], $Vq = [1, 35], $Vr = [1, 36], $Vs = [1, 37], $Vt = [1, 38], $Vu = [1, 39], $Vv = [1, 40], $Vw = [1, 41], $Vx = [1, 42], $Vy = [1, 57], $Vz = [1, 58], $VA = [5, 22, 26, 32, 33, 34, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"SPACE\": 5, \"QUADRANT\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"axisDetails\": 10, \"quadrantDetails\": 11, \"points\": 12, \"title\": 13, \"title_value\": 14, \"acc_title\": 15, \"acc_title_value\": 16, \"acc_descr\": 17, \"acc_descr_value\": 18, \"acc_descr_multiline_value\": 19, \"section\": 20, \"text\": 21, \"point_start\": 22, \"point_x\": 23, \"point_y\": 24, \"X-AXIS\": 25, \"AXIS-TEXT-DELIMITER\": 26, \"Y-AXIS\": 27, \"QUADRANT_1\": 28, \"QUADRANT_2\": 29, \"QUADRANT_3\": 30, \"QUADRANT_4\": 31, \"NEWLINE\": 32, \"SEMI\": 33, \"EOF\": 34, \"alphaNumToken\": 35, \"textNoTagsToken\": 36, \"STR\": 37, \"MD_STR\": 38, \"alphaNum\": 39, \"PUNCTUATION\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"COMMA\": 44, \"PLUS\": 45, \"EQUALS\": 46, \"MULT\": 47, \"DOT\": 48, \"BRKT\": 49, \"UNDERSCORE\": 50, \"MINUS\": 51, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"SPACE\", 6: \"QUADRANT\", 13: \"title\", 14: \"title_value\", 15: \"acc_title\", 16: \"acc_title_value\", 17: \"acc_descr\", 18: \"acc_descr_value\", 19: \"acc_descr_multiline_value\", 20: \"section\", 22: \"point_start\", 23: \"point_x\", 24: \"point_y\", 25: \"X-AXIS\", 26: \"AXIS-TEXT-DELIMITER\", 27: \"Y-AXIS\", 28: \"QUADRANT_1\", 29: \"QUADRANT_2\", 30: \"QUADRANT_3\", 31: \"QUADRANT_4\", 32: \"NEWLINE\", 33: \"SEMI\", 34: \"EOF\", 37: \"STR\", 38: \"MD_STR\", 40: \"PUNCTUATION\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"COMMA\", 45: \"PLUS\", 46: \"EQUALS\", 47: \"MULT\", 48: \"DOT\", 49: \"BRKT\", 50: \"UNDERSCORE\", 51: \"MINUS\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [9, 0], [9, 2], [9, 1], [9, 1], [9, 1], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [12, 4], [10, 4], [10, 3], [10, 2], [10, 4], [10, 3], [10, 2], [11, 2], [11, 2], [11, 2], [11, 2], [4, 1], [4, 1], [4, 1], [21, 1], [21, 2], [21, 1], [21, 1], [39, 1], [39, 2], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [35, 1], [36, 1], [36, 1], [36, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 12:\n this.$ = $$[$0].trim();\n yy.setDiagramTitle(this.$);\n break;\n case 13:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 14:\n case 15:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 16:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 17:\n yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);\n break;\n case 18:\n yy.setXAxisLeftText($$[$0 - 2]);\n yy.setXAxisRightText($$[$0]);\n break;\n case 19:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setXAxisLeftText($$[$0 - 1]);\n break;\n case 20:\n yy.setXAxisLeftText($$[$0]);\n break;\n case 21:\n yy.setYAxisBottomText($$[$0 - 2]);\n yy.setYAxisTopText($$[$0]);\n break;\n case 22:\n $$[$0 - 1].text += \" ⟶ \";\n yy.setYAxisBottomText($$[$0 - 1]);\n break;\n case 23:\n yy.setYAxisBottomText($$[$0]);\n break;\n case 24:\n yy.setQuadrant1Text($$[$0]);\n break;\n case 25:\n yy.setQuadrant2Text($$[$0]);\n break;\n case 26:\n yy.setQuadrant3Text($$[$0]);\n break;\n case 27:\n yy.setQuadrant4Text($$[$0]);\n break;\n case 31:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 32:\n this.$ = { text: $$[$0 - 1].text + \"\" + $$[$0], type: $$[$0 - 1].type };\n break;\n case 33:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 34:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 35:\n this.$ = $$[$0];\n break;\n case 36:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 1: [3] }, { 3: 8, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, { 3: 9, 4: 2, 5: $V0, 6: $V1, 32: $V2, 33: $V3, 34: $V4 }, o($V5, [2, 4], { 7: 10 }), o($V6, [2, 28]), o($V6, [2, 29]), o($V6, [2, 30]), { 1: [2, 1] }, { 1: [2, 2] }, o($V7, $V8, { 8: 11, 9: 12, 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 1: [2, 3], 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V5, [2, 5]), { 4: 43, 32: $V2, 33: $V3, 34: $V4 }, o($V7, $V8, { 10: 14, 11: 15, 12: 16, 21: 28, 35: 29, 9: 44, 5: $V9, 13: $Va, 15: $Vb, 17: $Vc, 19: $Vd, 20: $Ve, 25: $Vf, 27: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 9]), o($V7, [2, 10]), o($V7, [2, 11]), { 14: [1, 45] }, { 16: [1, 46] }, { 18: [1, 47] }, o($V7, [2, 15]), o($V7, [2, 16]), { 21: 48, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 49, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 50, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 51, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 52, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 21: 53, 35: 29, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }, { 5: $Vy, 22: [1, 54], 35: 56, 36: 55, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }, o($VA, [2, 31]), o($VA, [2, 33]), o($VA, [2, 34]), o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), o($VA, [2, 40]), o($VA, [2, 41]), o($VA, [2, 42]), o($VA, [2, 43]), o($VA, [2, 44]), o($VA, [2, 45]), o($VA, [2, 46]), o($VA, [2, 47]), o($V5, [2, 6]), o($V7, [2, 8]), o($V7, [2, 12]), o($V7, [2, 13]), o($V7, [2, 14]), o($V7, [2, 20], { 36: 55, 35: 56, 5: $Vy, 26: [1, 59], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 23], { 36: 55, 35: 56, 5: $Vy, 26: [1, 60], 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 24], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 25], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 26], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 27], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), { 23: [1, 61] }, o($VA, [2, 32]), o($VA, [2, 48]), o($VA, [2, 49]), o($VA, [2, 50]), o($V7, [2, 19], { 35: 29, 21: 62, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), o($V7, [2, 22], { 35: 29, 21: 63, 37: $Vl, 38: $Vm, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx }), { 24: [1, 64] }, o($V7, [2, 18], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 21], { 36: 55, 35: 56, 5: $Vy, 40: $Vn, 41: $Vo, 42: $Vp, 43: $Vq, 44: $Vr, 45: $Vs, 46: $Vt, 47: $Vu, 48: $Vv, 49: $Vw, 50: $Vx, 51: $Vz }), o($V7, [2, 17])],\n defaultActions: { 8: [2, 1], 9: [2, 2] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 32;\n case 3:\n break;\n case 4:\n this.begin(\"title\");\n return 13;\n case 5:\n this.popState();\n return \"title_value\";\n case 6:\n this.begin(\"acc_title\");\n return 15;\n case 7:\n this.popState();\n return \"acc_title_value\";\n case 8:\n this.begin(\"acc_descr\");\n return 17;\n case 9:\n this.popState();\n return \"acc_descr_value\";\n case 10:\n this.begin(\"acc_descr_multiline\");\n break;\n case 11:\n this.popState();\n break;\n case 12:\n return \"acc_descr_multiline_value\";\n case 13:\n return 25;\n case 14:\n return 27;\n case 15:\n return 26;\n case 16:\n return 28;\n case 17:\n return 29;\n case 18:\n return 30;\n case 19:\n return 31;\n case 20:\n this.begin(\"md_string\");\n break;\n case 21:\n return \"MD_STR\";\n case 22:\n this.popState();\n break;\n case 23:\n this.begin(\"string\");\n break;\n case 24:\n this.popState();\n break;\n case 25:\n return \"STR\";\n case 26:\n this.begin(\"point_start\");\n return 22;\n case 27:\n this.begin(\"point_x\");\n return 23;\n case 28:\n this.popState();\n break;\n case 29:\n this.popState();\n this.begin(\"point_y\");\n break;\n case 30:\n this.popState();\n return 24;\n case 31:\n return 6;\n case 32:\n return 43;\n case 33:\n return \"COLON\";\n case 34:\n return 45;\n case 35:\n return 44;\n case 36:\n return 46;\n case 37:\n return 46;\n case 38:\n return 47;\n case 39:\n return 49;\n case 40:\n return 50;\n case 41:\n return 48;\n case 42:\n return 41;\n case 43:\n return 51;\n case 44:\n return 42;\n case 45:\n return 5;\n case 46:\n return 33;\n case 47:\n return 40;\n case 48:\n return 34;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:[\"][`])/i, /^(?:[^`\"]+)/i, /^(?:[`][\"])/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\s*:\\s*\\[\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?:\\s*\\] *)/i, /^(?:\\s*,\\s*)/i, /^(?:(1)|(0(.\\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s)/i, /^(?:;)/i, /^(?:[!\"#$%&'*+,-.`?\\\\_/])/i, /^(?:$)/i],\n conditions: { \"point_y\": { \"rules\": [30], \"inclusive\": false }, \"point_x\": { \"rules\": [29], \"inclusive\": false }, \"point_start\": { \"rules\": [27, 28], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [11, 12], \"inclusive\": false }, \"acc_descr\": { \"rules\": [9], \"inclusive\": false }, \"acc_title\": { \"rules\": [7], \"inclusive\": false }, \"title\": { \"rules\": [5], \"inclusive\": false }, \"md_string\": { \"rules\": [21, 22], \"inclusive\": false }, \"string\": { \"rules\": [24, 25], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 26, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nconst defaultThemeVariables = getThemeVariables();\nclass QuadrantBuilder {\n constructor() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n }\n getDefaultData() {\n return {\n titleText: \"\",\n quadrant1Text: \"\",\n quadrant2Text: \"\",\n quadrant3Text: \"\",\n quadrant4Text: \"\",\n xAxisLeftText: \"\",\n xAxisRightText: \"\",\n yAxisBottomText: \"\",\n yAxisTopText: \"\",\n points: []\n };\n }\n getDefaultConfig() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n return {\n showXAxis: true,\n showYAxis: true,\n showTitle: true,\n chartHeight: ((_a = defaultConfig.quadrantChart) == null ? void 0 : _a.chartWidth) || 500,\n chartWidth: ((_b = defaultConfig.quadrantChart) == null ? void 0 : _b.chartHeight) || 500,\n titlePadding: ((_c = defaultConfig.quadrantChart) == null ? void 0 : _c.titlePadding) || 10,\n titleFontSize: ((_d = defaultConfig.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,\n quadrantPadding: ((_e = defaultConfig.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,\n xAxisLabelPadding: ((_f = defaultConfig.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,\n yAxisLabelPadding: ((_g = defaultConfig.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,\n xAxisLabelFontSize: ((_h = defaultConfig.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,\n yAxisLabelFontSize: ((_i = defaultConfig.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,\n quadrantLabelFontSize: ((_j = defaultConfig.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,\n quadrantTextTopPadding: ((_k = defaultConfig.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,\n pointTextPadding: ((_l = defaultConfig.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,\n pointLabelFontSize: ((_m = defaultConfig.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,\n pointRadius: ((_n = defaultConfig.quadrantChart) == null ? void 0 : _n.pointRadius) || 5,\n xAxisPosition: ((_o = defaultConfig.quadrantChart) == null ? void 0 : _o.xAxisPosition) || \"top\",\n yAxisPosition: ((_p = defaultConfig.quadrantChart) == null ? void 0 : _p.yAxisPosition) || \"left\",\n quadrantInternalBorderStrokeWidth: ((_q = defaultConfig.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,\n quadrantExternalBorderStrokeWidth: ((_r = defaultConfig.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2\n };\n }\n getDefaultThemeConfig() {\n return {\n quadrant1Fill: defaultThemeVariables.quadrant1Fill,\n quadrant2Fill: defaultThemeVariables.quadrant2Fill,\n quadrant3Fill: defaultThemeVariables.quadrant3Fill,\n quadrant4Fill: defaultThemeVariables.quadrant4Fill,\n quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,\n quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,\n quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,\n quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,\n quadrantPointFill: defaultThemeVariables.quadrantPointFill,\n quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,\n quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,\n quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,\n quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill\n };\n }\n clear() {\n this.config = this.getDefaultConfig();\n this.themeConfig = this.getDefaultThemeConfig();\n this.data = this.getDefaultData();\n log.info(\"clear called\");\n }\n setData(data) {\n this.data = { ...this.data, ...data };\n }\n addPoints(points) {\n this.data.points = [...points, ...this.data.points];\n }\n setConfig(config2) {\n log.trace(\"setConfig called with: \", config2);\n this.config = { ...this.config, ...config2 };\n }\n setThemeConfig(themeConfig) {\n log.trace(\"setThemeConfig called with: \", themeConfig);\n this.themeConfig = { ...this.themeConfig, ...themeConfig };\n }\n calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {\n const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;\n const xAxisSpace = {\n top: xAxisPosition === \"top\" && showXAxis ? xAxisSpaceCalculation : 0,\n bottom: xAxisPosition === \"bottom\" && showXAxis ? xAxisSpaceCalculation : 0\n };\n const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;\n const yAxisSpace = {\n left: this.config.yAxisPosition === \"left\" && showYAxis ? yAxisSpaceCalculation : 0,\n right: this.config.yAxisPosition === \"right\" && showYAxis ? yAxisSpaceCalculation : 0\n };\n const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;\n const titleSpace = {\n top: showTitle ? titleSpaceCalculation : 0\n };\n const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;\n const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;\n const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;\n const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;\n const quadrantHalfWidth = quadrantWidth / 2;\n const quadrantHalfHeight = quadrantHeight / 2;\n const quadrantSpace = {\n quadrantLeft,\n quadrantTop,\n quadrantWidth,\n quadrantHalfWidth,\n quadrantHeight,\n quadrantHalfHeight\n };\n return {\n xAxisSpace,\n yAxisSpace,\n titleSpace,\n quadrantSpace\n };\n }\n getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {\n const { quadrantSpace, titleSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const drawXAxisLabelsInMiddle = Boolean(this.data.xAxisRightText);\n const drawYAxisLabelsInMiddle = Boolean(this.data.yAxisTopText);\n const axisLabels = [];\n if (this.data.xAxisLeftText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisLeftText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.xAxisRightText && showXAxis) {\n axisLabels.push({\n text: this.data.xAxisRightText,\n fill: this.themeConfig.quadrantXAxisTextFill,\n x: quadrantLeft + quadrantHalfWidth + (drawXAxisLabelsInMiddle ? quadrantHalfWidth / 2 : 0),\n y: xAxisPosition === \"top\" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,\n fontSize: this.config.xAxisLabelFontSize,\n verticalPos: drawXAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: 0\n });\n }\n if (this.data.yAxisBottomText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisBottomText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n if (this.data.yAxisTopText && showYAxis) {\n axisLabels.push({\n text: this.data.yAxisTopText,\n fill: this.themeConfig.quadrantYAxisTextFill,\n x: this.config.yAxisPosition === \"left\" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,\n y: quadrantTop + quadrantHalfHeight - (drawYAxisLabelsInMiddle ? quadrantHalfHeight / 2 : 0),\n fontSize: this.config.yAxisLabelFontSize,\n verticalPos: drawYAxisLabelsInMiddle ? \"center\" : \"left\",\n horizontalPos: \"top\",\n rotation: -90\n });\n }\n return axisLabels;\n }\n getQuadrants(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;\n const quadrants = [\n {\n text: {\n text: this.data.quadrant1Text,\n fill: this.themeConfig.quadrant1TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant1Fill\n },\n {\n text: {\n text: this.data.quadrant2Text,\n fill: this.themeConfig.quadrant2TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant2Fill\n },\n {\n text: {\n text: this.data.quadrant3Text,\n fill: this.themeConfig.quadrant3TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant3Fill\n },\n {\n text: {\n text: this.data.quadrant4Text,\n fill: this.themeConfig.quadrant4TextFill,\n x: 0,\n y: 0,\n fontSize: this.config.quadrantLabelFontSize,\n verticalPos: \"center\",\n horizontalPos: \"middle\",\n rotation: 0\n },\n x: quadrantLeft + quadrantHalfWidth,\n y: quadrantTop + quadrantHalfHeight,\n width: quadrantHalfWidth,\n height: quadrantHalfHeight,\n fill: this.themeConfig.quadrant4Fill\n }\n ];\n for (const quadrant of quadrants) {\n quadrant.text.x = quadrant.x + quadrant.width / 2;\n if (this.data.points.length === 0) {\n quadrant.text.y = quadrant.y + quadrant.height / 2;\n quadrant.text.horizontalPos = \"middle\";\n } else {\n quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;\n quadrant.text.horizontalPos = \"top\";\n }\n }\n return quadrants;\n }\n getQuadrantPoints(spaceData) {\n const { quadrantSpace } = spaceData;\n const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;\n const xAxis = scaleLinear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);\n const yAxis = scaleLinear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);\n const points = this.data.points.map((point) => {\n const props = {\n x: xAxis(point.x),\n y: yAxis(point.y),\n fill: this.themeConfig.quadrantPointFill,\n radius: this.config.pointRadius,\n text: {\n text: point.text,\n fill: this.themeConfig.quadrantPointTextFill,\n x: xAxis(point.x),\n y: yAxis(point.y) + this.config.pointTextPadding,\n verticalPos: \"center\",\n horizontalPos: \"top\",\n fontSize: this.config.pointLabelFontSize,\n rotation: 0\n }\n };\n return props;\n });\n return points;\n }\n getBorders(spaceData) {\n const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;\n const { quadrantSpace } = spaceData;\n const {\n quadrantHalfHeight,\n quadrantHeight,\n quadrantLeft,\n quadrantHalfWidth,\n quadrantTop,\n quadrantWidth\n } = quadrantSpace;\n const borderLines = [\n // top border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop\n },\n // right border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // bottom border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft - halfExternalBorderWidth,\n y1: quadrantTop + quadrantHeight,\n x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,\n y2: quadrantTop + quadrantHeight\n },\n // left border\n {\n strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,\n strokeWidth: this.config.quadrantExternalBorderStrokeWidth,\n x1: quadrantLeft,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // vertical inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + quadrantHalfWidth,\n y1: quadrantTop + halfExternalBorderWidth,\n x2: quadrantLeft + quadrantHalfWidth,\n y2: quadrantTop + quadrantHeight - halfExternalBorderWidth\n },\n // horizontal inner border\n {\n strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,\n strokeWidth: this.config.quadrantInternalBorderStrokeWidth,\n x1: quadrantLeft + halfExternalBorderWidth,\n y1: quadrantTop + quadrantHalfHeight,\n x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,\n y2: quadrantTop + quadrantHalfHeight\n }\n ];\n return borderLines;\n }\n getTitle(showTitle) {\n if (showTitle) {\n return {\n text: this.data.titleText,\n fill: this.themeConfig.quadrantTitleFill,\n fontSize: this.config.titleFontSize,\n horizontalPos: \"top\",\n verticalPos: \"center\",\n rotation: 0,\n y: this.config.titlePadding,\n x: this.config.chartWidth / 2\n };\n }\n return;\n }\n build() {\n const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);\n const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);\n const showTitle = this.config.showTitle && !!this.data.titleText;\n const xAxisPosition = this.data.points.length > 0 ? \"bottom\" : this.config.xAxisPosition;\n const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);\n return {\n points: this.getQuadrantPoints(calculatedSpace),\n quadrants: this.getQuadrants(calculatedSpace),\n axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),\n borderLines: this.getBorders(calculatedSpace),\n title: this.getTitle(showTitle)\n };\n }\n}\nconst config = getConfig();\nfunction textSanitizer(text) {\n return sanitizeText(text.trim(), config);\n}\nconst quadrantBuilder = new QuadrantBuilder();\nfunction setQuadrant1Text(textObj) {\n quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant2Text(textObj) {\n quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant3Text(textObj) {\n quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });\n}\nfunction setQuadrant4Text(textObj) {\n quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });\n}\nfunction setXAxisLeftText(textObj) {\n quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });\n}\nfunction setXAxisRightText(textObj) {\n quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });\n}\nfunction setYAxisTopText(textObj) {\n quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });\n}\nfunction setYAxisBottomText(textObj) {\n quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });\n}\nfunction addPoint(textObj, x, y) {\n quadrantBuilder.addPoints([{ x, y, text: textSanitizer(textObj.text) }]);\n}\nfunction setWidth(width) {\n quadrantBuilder.setConfig({ chartWidth: width });\n}\nfunction setHeight(height) {\n quadrantBuilder.setConfig({ chartHeight: height });\n}\nfunction getQuadrantData() {\n const config2 = getConfig();\n const { themeVariables, quadrantChart: quadrantChartConfig } = config2;\n if (quadrantChartConfig) {\n quadrantBuilder.setConfig(quadrantChartConfig);\n }\n quadrantBuilder.setThemeConfig({\n quadrant1Fill: themeVariables.quadrant1Fill,\n quadrant2Fill: themeVariables.quadrant2Fill,\n quadrant3Fill: themeVariables.quadrant3Fill,\n quadrant4Fill: themeVariables.quadrant4Fill,\n quadrant1TextFill: themeVariables.quadrant1TextFill,\n quadrant2TextFill: themeVariables.quadrant2TextFill,\n quadrant3TextFill: themeVariables.quadrant3TextFill,\n quadrant4TextFill: themeVariables.quadrant4TextFill,\n quadrantPointFill: themeVariables.quadrantPointFill,\n quadrantPointTextFill: themeVariables.quadrantPointTextFill,\n quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,\n quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,\n quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,\n quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,\n quadrantTitleFill: themeVariables.quadrantTitleFill\n });\n quadrantBuilder.setData({ titleText: getDiagramTitle() });\n return quadrantBuilder.build();\n}\nconst clear = function() {\n quadrantBuilder.clear();\n clear$1();\n};\nconst db = {\n setWidth,\n setHeight,\n setQuadrant1Text,\n setQuadrant2Text,\n setQuadrant3Text,\n setQuadrant4Text,\n setXAxisLeftText,\n setXAxisRightText,\n setYAxisTopText,\n setYAxisBottomText,\n addPoint,\n getQuadrantData,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\nconst draw = (txt, id, _version, diagObj) => {\n var _a, _b, _c;\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"hanging\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : \"middle\";\n }\n function getTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n const conf = getConfig();\n log.debug(\"Rendering quadrant chart\\n\" + txt);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const width = ((_a = conf.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;\n const height = ((_b = conf.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;\n configureSvgSize(svg, height, width, ((_c = conf.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n diagObj.db.setHeight(height);\n diagObj.db.setWidth(width);\n const quadrantData = diagObj.db.getQuadrantData();\n const quadrantsGroup = group.append(\"g\").attr(\"class\", \"quadrants\");\n const borderGroup = group.append(\"g\").attr(\"class\", \"border\");\n const dataPointGroup = group.append(\"g\").attr(\"class\", \"data-points\");\n const labelGroup = group.append(\"g\").attr(\"class\", \"labels\");\n const titleGroup = group.append(\"g\").attr(\"class\", \"title\");\n if (quadrantData.title) {\n titleGroup.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", quadrantData.title.fill).attr(\"font-size\", quadrantData.title.fontSize).attr(\"dominant-baseline\", getDominantBaseLine(quadrantData.title.horizontalPos)).attr(\"text-anchor\", getTextAnchor(quadrantData.title.verticalPos)).attr(\"transform\", getTransformation(quadrantData.title)).text(quadrantData.title.text);\n }\n if (quadrantData.borderLines) {\n borderGroup.selectAll(\"line\").data(quadrantData.borderLines).enter().append(\"line\").attr(\"x1\", (data) => data.x1).attr(\"y1\", (data) => data.y1).attr(\"x2\", (data) => data.x2).attr(\"y2\", (data) => data.y2).style(\"stroke\", (data) => data.strokeFill).style(\"stroke-width\", (data) => data.strokeWidth);\n }\n const quadrants = quadrantsGroup.selectAll(\"g.quadrant\").data(quadrantData.quadrants).enter().append(\"g\").attr(\"class\", \"quadrant\");\n quadrants.append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill);\n quadrants.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text)).text((data) => data.text.text);\n const labels = labelGroup.selectAll(\"g.label\").data(quadrantData.axisLabels).enter().append(\"g\").attr(\"class\", \"label\");\n labels.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.horizontalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.verticalPos)).attr(\"transform\", (data) => getTransformation(data));\n const dataPoints = dataPointGroup.selectAll(\"g.data-point\").data(quadrantData.points).enter().append(\"g\").attr(\"class\", \"data-point\");\n dataPoints.append(\"circle\").attr(\"cx\", (data) => data.x).attr(\"cy\", (data) => data.y).attr(\"r\", (data) => data.radius).attr(\"fill\", (data) => data.fill);\n dataPoints.append(\"text\").attr(\"x\", 0).attr(\"y\", 0).text((data) => data.text.text).attr(\"fill\", (data) => data.text.fill).attr(\"font-size\", (data) => data.text.fontSize).attr(\n \"dominant-baseline\",\n (data) => getDominantBaseLine(data.text.horizontalPos)\n ).attr(\"text-anchor\", (data) => getTextAnchor(data.text.verticalPos)).attr(\"transform\", (data) => getTransformation(data.text));\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles: () => \"\"\n};\nexport {\n diagram\n};\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAGA,mBAAO;AACP,0BAAO;AAOP,IAAI,SAAS,WAAW;AACtB,MAAI,IAAI,SAAS,GAAG,GAAG,IAAI,GAAG;AAC5B,SAAK,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI;AAChD;AACF,WAAO;AAAA,EACT,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AACn0B,MAAI,UAAU;AAAA,IACZ,OAAO,SAAS,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,CAAC;AAAA,IACL,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,IAAI,mBAAmB,IAAI,UAAU,IAAI,SAAS,IAAI,eAAe,IAAI,aAAa,IAAI,mBAAmB,IAAI,aAAa,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,WAAW,IAAI,QAAQ,IAAI,eAAe,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,uBAAuB,IAAI,UAAU,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,OAAO,IAAI,UAAU,IAAI,YAAY,IAAI,eAAe,IAAI,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,cAAc,IAAI,SAAS,IAAI,WAAW,GAAG,QAAQ,EAAE;AAAA,IACzzB,YAAY,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,IAAI,SAAS,IAAI,eAAe,IAAI,aAAa,IAAI,mBAAmB,IAAI,aAAa,IAAI,mBAAmB,IAAI,6BAA6B,IAAI,WAAW,IAAI,eAAe,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU,IAAI,uBAAuB,IAAI,UAAU,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,UAAU,IAAI,eAAe,IAAI,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,cAAc,IAAI,QAAQ;AAAA,IAClmB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAAA,IAC/b,eAAe,SAAS,UAAU,QAAQ,QAAQ,UAAU,IAAI,SAAS,IAAI,IAAI;AAC/E,UAAI,KAAK,GAAG,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,KAAK;AACH,eAAK,IAAI,GAAG,EAAE,EAAE,KAAK;AACrB,aAAG,gBAAgB,KAAK,CAAC;AACzB;AAAA,QACF,KAAK;AACH,eAAK,IAAI,GAAG,EAAE,EAAE,KAAK;AACrB,aAAG,YAAY,KAAK,CAAC;AACrB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,IAAI,GAAG,EAAE,EAAE,KAAK;AACrB,aAAG,kBAAkB,KAAK,CAAC;AAC3B;AAAA,QACF,KAAK;AACH,aAAG,WAAW,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9B,eAAK,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC;AACxB;AAAA,QACF,KAAK;AACH,aAAG,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;AAC1C;AAAA,QACF,KAAK;AACH,aAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC;AAC9B,aAAG,kBAAkB,GAAG,EAAE,CAAC;AAC3B;AAAA,QACF,KAAK;AACH,aAAG,KAAK,CAAC,EAAE,QAAQ;AACnB,aAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC;AAC9B;AAAA,QACF,KAAK;AACH,aAAG,iBAAiB,GAAG,EAAE,CAAC;AAC1B;AAAA,QACF,KAAK;AACH,aAAG,mBAAmB,GAAG,KAAK,CAAC,CAAC;AAChC,aAAG,gBAAgB,GAAG,EAAE,CAAC;AACzB;AAAA,QACF,KAAK;AACH,aAAG,KAAK,CAAC,EAAE,QAAQ;AACnB,aAAG,mBAAmB,GAAG,KAAK,CAAC,CAAC;AAChC;AAAA,QACF,KAAK;AACH,aAAG,mBAAmB,GAAG,EAAE,CAAC;AAC5B;AAAA,QACF,KAAK;AACH,aAAG,iBAAiB,GAAG,EAAE,CAAC;AAC1B;AAAA,QACF,KAAK;AACH,aAAG,iBAAiB,GAAG,EAAE,CAAC;AAC1B;AAAA,QACF,KAAK;AACH,aAAG,iBAAiB,GAAG,EAAE,CAAC;AAC1B;AAAA,QACF,KAAK;AACH,aAAG,iBAAiB,GAAG,EAAE,CAAC;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM,OAAO;AACtC;AAAA,QACF,KAAK;AACH,eAAK,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK;AACtE;AAAA,QACF,KAAK;AACH,eAAK,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM,OAAO;AACtC;AAAA,QACF,KAAK;AACH,eAAK,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM,WAAW;AAC1C;AAAA,QACF,KAAK;AACH,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,eAAK,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;AAChC;AAAA,MACJ;AAAA,IACF;AAAA,IACA,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAA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", - "names": ["clear"] -} diff --git a/.vuepress/.cache/deps/requirementDiagram-4038b16c-DFS7JDTC.js b/.vuepress/.cache/deps/requirementDiagram-4038b16c-DFS7JDTC.js deleted file mode 100644 index b6d15d0b5..000000000 --- a/.vuepress/.cache/deps/requirementDiagram-4038b16c-DFS7JDTC.js +++ /dev/null @@ -1,1112 +0,0 @@ -import { - Graph, - layout -} from "./chunk-C55JCHDM.js"; -import { - clear, - common$1, - configureSvgSize, - getAccDescription, - getAccTitle, - getConfig, - line_default, - log$1, - require_dayjs_min, - require_dist, - select_default, - setAccDescription, - setAccTitle -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/requirementDiagram-4038b16c.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], $V5 = [1, 18], $V6 = [2, 7], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 20], $Ve = [1, 28], $Vf = [1, 29], $Vg = [62, 63], $Vh = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], $Vi = [1, 47], $Vj = [1, 48], $Vk = [1, 49], $Vl = [1, 50], $Vm = [1, 51], $Vn = [1, 52], $Vo = [1, 53], $Vp = [53, 54], $Vq = [1, 64], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 65], $Vw = [1, 69], $Vx = [1, 70], $Vy = [1, 67], $Vz = [1, 68], $VA = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "acc_title": 9, "acc_title_value": 10, "acc_descr": 11, "acc_descr_value": 12, "acc_descr_multiline_value": 13, "requirementDef": 14, "elementDef": 15, "relationshipDef": 16, "requirementType": 17, "requirementName": 18, "STRUCT_START": 19, "requirementBody": 20, "ID": 21, "COLONSEP": 22, "id": 23, "TEXT": 24, "text": 25, "RISK": 26, "riskLevel": 27, "VERIFYMTHD": 28, "verifyType": 29, "STRUCT_STOP": 30, "REQUIREMENT": 31, "FUNCTIONAL_REQUIREMENT": 32, "INTERFACE_REQUIREMENT": 33, "PERFORMANCE_REQUIREMENT": 34, "PHYSICAL_REQUIREMENT": 35, "DESIGN_CONSTRAINT": 36, "LOW_RISK": 37, "MED_RISK": 38, "HIGH_RISK": 39, "VERIFY_ANALYSIS": 40, "VERIFY_DEMONSTRATION": 41, "VERIFY_INSPECTION": 42, "VERIFY_TEST": 43, "ELEMENT": 44, "elementName": 45, "elementBody": 46, "TYPE": 47, "type": 48, "DOCREF": 49, "ref": 50, "END_ARROW_L": 51, "relationship": 52, "LINE": 53, "END_ARROW_R": 54, "CONTAINS": 55, "COPIES": 56, "DERIVES": 57, "SATISFIES": 58, "VERIFIES": 59, "REFINES": 60, "TRACES": 61, "unqString": 62, "qString": 63, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 9: "acc_title", 10: "acc_title_value", 11: "acc_descr", 12: "acc_descr_value", 13: "acc_descr_multiline_value", 19: "STRUCT_START", 21: "ID", 22: "COLONSEP", 24: "TEXT", 26: "RISK", 28: "VERIFYMTHD", 30: "STRUCT_STOP", 31: "REQUIREMENT", 32: "FUNCTIONAL_REQUIREMENT", 33: "INTERFACE_REQUIREMENT", 34: "PERFORMANCE_REQUIREMENT", 35: "PHYSICAL_REQUIREMENT", 36: "DESIGN_CONSTRAINT", 37: "LOW_RISK", 38: "MED_RISK", 39: "HIGH_RISK", 40: "VERIFY_ANALYSIS", 41: "VERIFY_DEMONSTRATION", 42: "VERIFY_INSPECTION", 43: "VERIFY_TEST", 44: "ELEMENT", 47: "TYPE", 49: "DOCREF", 51: "END_ARROW_L", 53: "LINE", 54: "END_ARROW_R", 55: "CONTAINS", 56: "COPIES", 57: "DERIVES", 58: "SATISFIES", 59: "VERIFIES", 60: "REFINES", 61: "TRACES", 62: "unqString", 63: "qString" }, - productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [14, 5], [20, 5], [20, 5], [20, 5], [20, 5], [20, 2], [20, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [27, 1], [27, 1], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [15, 5], [46, 5], [46, 5], [46, 2], [46, 1], [16, 5], [16, 5], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [18, 1], [18, 1], [23, 1], [23, 1], [25, 1], [25, 1], [45, 1], [45, 1], [48, 1], [48, 1], [50, 1], [50, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 4: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 5: - case 6: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 7: - this.$ = []; - break; - case 13: - yy.addRequirement($$[$0 - 3], $$[$0 - 4]); - break; - case 14: - yy.setNewReqId($$[$0 - 2]); - break; - case 15: - yy.setNewReqText($$[$0 - 2]); - break; - case 16: - yy.setNewReqRisk($$[$0 - 2]); - break; - case 17: - yy.setNewReqVerifyMethod($$[$0 - 2]); - break; - case 20: - this.$ = yy.RequirementType.REQUIREMENT; - break; - case 21: - this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT; - break; - case 22: - this.$ = yy.RequirementType.INTERFACE_REQUIREMENT; - break; - case 23: - this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT; - break; - case 24: - this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT; - break; - case 25: - this.$ = yy.RequirementType.DESIGN_CONSTRAINT; - break; - case 26: - this.$ = yy.RiskLevel.LOW_RISK; - break; - case 27: - this.$ = yy.RiskLevel.MED_RISK; - break; - case 28: - this.$ = yy.RiskLevel.HIGH_RISK; - break; - case 29: - this.$ = yy.VerifyType.VERIFY_ANALYSIS; - break; - case 30: - this.$ = yy.VerifyType.VERIFY_DEMONSTRATION; - break; - case 31: - this.$ = yy.VerifyType.VERIFY_INSPECTION; - break; - case 32: - this.$ = yy.VerifyType.VERIFY_TEST; - break; - case 33: - yy.addElement($$[$0 - 3]); - break; - case 34: - yy.setNewElementType($$[$0 - 2]); - break; - case 35: - yy.setNewElementDocRef($$[$0 - 2]); - break; - case 38: - yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]); - break; - case 39: - yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]); - break; - case 40: - this.$ = yy.Relationships.CONTAINS; - break; - case 41: - this.$ = yy.Relationships.COPIES; - break; - case 42: - this.$ = yy.Relationships.DERIVES; - break; - case 43: - this.$ = yy.Relationships.SATISFIES; - break; - case 44: - this.$ = yy.Relationships.VERIFIES; - break; - case 45: - this.$ = yy.Relationships.REFINES; - break; - case 46: - this.$ = yy.Relationships.TRACES; - break; - } - }, - table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, o($V4, [2, 4]), o($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: $V5, 7: 31, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 32, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 33, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 34, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 35, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, o($Vg, [2, 20]), o($Vg, [2, 21]), o($Vg, [2, 22]), o($Vg, [2, 23]), o($Vg, [2, 24]), o($Vg, [2, 25]), o($Vh, [2, 49]), o($Vh, [2, 50]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 19: [1, 44] }, { 19: [2, 47] }, { 19: [2, 48] }, { 19: [1, 45] }, { 19: [2, 53] }, { 19: [2, 54] }, { 52: 46, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 52: 54, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, o($Vp, [2, 40]), o($Vp, [2, 41]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), { 54: [1, 58] }, { 5: $Vq, 20: 59, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 66, 47: $Vy, 49: $Vz }, { 23: 71, 62: $Ve, 63: $Vf }, { 23: 72, 62: $Ve, 63: $Vf }, o($VA, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: $Vq, 20: 77, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, o($VA, [2, 19]), o($VA, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: $Vw, 30: $Vx, 46: 80, 47: $Vy, 49: $Vz }, o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), { 23: 81, 62: $Ve, 63: $Vf }, { 25: 82, 62: [1, 83], 63: [1, 84] }, { 27: 85, 37: [1, 86], 38: [1, 87], 39: [1, 88] }, { 29: 89, 40: [1, 90], 41: [1, 91], 42: [1, 92], 43: [1, 93] }, o($VA, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, o($VA, [2, 36]), { 5: [1, 100] }, { 5: [1, 101] }, { 5: [2, 51] }, { 5: [2, 52] }, { 5: [1, 102] }, { 5: [2, 26] }, { 5: [2, 27] }, { 5: [2, 28] }, { 5: [1, 103] }, { 5: [2, 29] }, { 5: [2, 30] }, { 5: [2, 31] }, { 5: [2, 32] }, { 5: [1, 104] }, { 5: [2, 55] }, { 5: [2, 56] }, { 5: [1, 105] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: $Vq, 20: 106, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 107, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 108, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 109, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 110, 47: $Vy, 49: $Vz }, { 5: $Vw, 30: $Vx, 46: 111, 47: $Vy, 49: $Vz }, o($VA, [2, 14]), o($VA, [2, 15]), o($VA, [2, 16]), o($VA, [2, 17]), o($VA, [2, 34]), o($VA, [2, 35])], - defaultActions: { 8: [2, 2], 12: [2, 1], 30: [2, 3], 31: [2, 8], 32: [2, 9], 33: [2, 10], 34: [2, 11], 35: [2, 12], 37: [2, 47], 38: [2, 48], 40: [2, 53], 41: [2, 54], 83: [2, 51], 84: [2, 52], 86: [2, 26], 87: [2, 27], 88: [2, 28], 90: [2, 29], 91: [2, 30], 92: [2, 31], 93: [2, 32], 95: [2, 55], 96: [2, 56], 98: [2, 57], 99: [2, 58] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - return "title"; - case 1: - this.begin("acc_title"); - return 9; - case 2: - this.popState(); - return "acc_title_value"; - case 3: - this.begin("acc_descr"); - return 11; - case 4: - this.popState(); - return "acc_descr_value"; - case 5: - this.begin("acc_descr_multiline"); - break; - case 6: - this.popState(); - break; - case 7: - return "acc_descr_multiline_value"; - case 8: - return 5; - case 9: - break; - case 10: - break; - case 11: - break; - case 12: - return 8; - case 13: - return 6; - case 14: - return 19; - case 15: - return 30; - case 16: - return 22; - case 17: - return 21; - case 18: - return 24; - case 19: - return 26; - case 20: - return 28; - case 21: - return 31; - case 22: - return 32; - case 23: - return 33; - case 24: - return 34; - case 25: - return 35; - case 26: - return 36; - case 27: - return 37; - case 28: - return 38; - case 29: - return 39; - case 30: - return 40; - case 31: - return 41; - case 32: - return 42; - case 33: - return 43; - case 34: - return 44; - case 35: - return 55; - case 36: - return 56; - case 37: - return 57; - case 38: - return 58; - case 39: - return 59; - case 40: - return 60; - case 41: - return 61; - case 42: - return 47; - case 43: - return 49; - case 44: - return 51; - case 45: - return 54; - case 46: - return 53; - case 47: - this.begin("string"); - break; - case 48: - this.popState(); - break; - case 49: - return "qString"; - case 50: - yy_.yytext = yy_.yytext.trim(); - return 62; - } - }, - rules: [/^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i], - conditions: { "acc_descr_multiline": { "rules": [6, 7], "inclusive": false }, "acc_descr": { "rules": [4], "inclusive": false }, "acc_title": { "rules": [2], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [48, 49], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var relations = []; -var latestRequirement = {}; -var requirements = {}; -var latestElement = {}; -var elements = {}; -var RequirementType = { - REQUIREMENT: "Requirement", - FUNCTIONAL_REQUIREMENT: "Functional Requirement", - INTERFACE_REQUIREMENT: "Interface Requirement", - PERFORMANCE_REQUIREMENT: "Performance Requirement", - PHYSICAL_REQUIREMENT: "Physical Requirement", - DESIGN_CONSTRAINT: "Design Constraint" -}; -var RiskLevel = { - LOW_RISK: "Low", - MED_RISK: "Medium", - HIGH_RISK: "High" -}; -var VerifyType = { - VERIFY_ANALYSIS: "Analysis", - VERIFY_DEMONSTRATION: "Demonstration", - VERIFY_INSPECTION: "Inspection", - VERIFY_TEST: "Test" -}; -var Relationships = { - CONTAINS: "contains", - COPIES: "copies", - DERIVES: "derives", - SATISFIES: "satisfies", - VERIFIES: "verifies", - REFINES: "refines", - TRACES: "traces" -}; -var addRequirement = (name, type) => { - if (requirements[name] === void 0) { - requirements[name] = { - name, - type, - id: latestRequirement.id, - text: latestRequirement.text, - risk: latestRequirement.risk, - verifyMethod: latestRequirement.verifyMethod - }; - } - latestRequirement = {}; - return requirements[name]; -}; -var getRequirements = () => requirements; -var setNewReqId = (id) => { - if (latestRequirement !== void 0) { - latestRequirement.id = id; - } -}; -var setNewReqText = (text) => { - if (latestRequirement !== void 0) { - latestRequirement.text = text; - } -}; -var setNewReqRisk = (risk) => { - if (latestRequirement !== void 0) { - latestRequirement.risk = risk; - } -}; -var setNewReqVerifyMethod = (verifyMethod) => { - if (latestRequirement !== void 0) { - latestRequirement.verifyMethod = verifyMethod; - } -}; -var addElement = (name) => { - if (elements[name] === void 0) { - elements[name] = { - name, - type: latestElement.type, - docRef: latestElement.docRef - }; - log$1.info("Added new requirement: ", name); - } - latestElement = {}; - return elements[name]; -}; -var getElements = () => elements; -var setNewElementType = (type) => { - if (latestElement !== void 0) { - latestElement.type = type; - } -}; -var setNewElementDocRef = (docRef) => { - if (latestElement !== void 0) { - latestElement.docRef = docRef; - } -}; -var addRelationship = (type, src, dst) => { - relations.push({ - type, - src, - dst - }); -}; -var getRelationships = () => relations; -var clear2 = () => { - relations = []; - latestRequirement = {}; - requirements = {}; - latestElement = {}; - elements = {}; - clear(); -}; -var db = { - RequirementType, - RiskLevel, - VerifyType, - Relationships, - getConfig: () => getConfig().req, - addRequirement, - getRequirements, - setNewReqId, - setNewReqText, - setNewReqRisk, - setNewReqVerifyMethod, - setAccTitle, - getAccTitle, - setAccDescription, - getAccDescription, - addElement, - getElements, - setNewElementType, - setNewElementDocRef, - addRelationship, - getRelationships, - clear: clear2 -}; -var getStyles = (options) => ` - - marker { - fill: ${options.relationColor}; - stroke: ${options.relationColor}; - } - - marker.cross { - stroke: ${options.lineColor}; - } - - svg { - font-family: ${options.fontFamily}; - font-size: ${options.fontSize}; - } - - .reqBox { - fill: ${options.requirementBackground}; - fill-opacity: 1.0; - stroke: ${options.requirementBorderColor}; - stroke-width: ${options.requirementBorderSize}; - } - - .reqTitle, .reqLabel{ - fill: ${options.requirementTextColor}; - } - .reqLabelBox { - fill: ${options.relationLabelBackground}; - fill-opacity: 1.0; - } - - .req-title-line { - stroke: ${options.requirementBorderColor}; - stroke-width: ${options.requirementBorderSize}; - } - .relationshipLine { - stroke: ${options.relationColor}; - stroke-width: 1; - } - .relationshipLabel { - fill: ${options.relationLabelColor}; - } - -`; -var styles = getStyles; -var ReqMarkers = { - CONTAINS: "contains", - ARROW: "arrow" -}; -var insertLineEndings = (parentNode, conf2) => { - let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g"); - containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none"); - containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1); - containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1); - parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr( - "d", - `M0,0 - L${conf2.line_height},${conf2.line_height / 2} - M${conf2.line_height},${conf2.line_height / 2} - L0,${conf2.line_height}` - ).attr("stroke-width", 1); -}; -var markers = { - ReqMarkers, - insertLineEndings -}; -var conf = {}; -var relCnt = 0; -var newRectNode = (parentNode, id) => { - return parentNode.insert("rect", "#" + id).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf.rect_min_width + "px").attr("height", conf.rect_min_height + "px"); -}; -var newTitleNode = (parentNode, id, txts) => { - let x = conf.rect_min_width / 2; - let title = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id).attr("x", x).attr("y", conf.rect_padding).attr("dominant-baseline", "hanging"); - let i = 0; - txts.forEach((textStr) => { - if (i == 0) { - title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", 0).text(textStr); - } else { - title.append("tspan").attr("text-anchor", "middle").attr("x", conf.rect_min_width / 2).attr("dy", conf.line_height * 0.75).text(textStr); - } - i++; - }); - let yPadding = 1.5 * conf.rect_padding; - let linePadding = i * conf.line_height * 0.75; - let totalY = yPadding + linePadding; - parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf.rect_min_width).attr("y1", totalY).attr("y2", totalY); - return { - titleNode: title, - y: totalY - }; -}; -var newBodyNode = (parentNode, id, txts, yStart) => { - let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id).attr("x", conf.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging"); - let currentRow = 0; - const charLimit = 30; - let wrappedTxts = []; - txts.forEach((textStr) => { - let currentTextLen = textStr.length; - while (currentTextLen > charLimit && currentRow < 3) { - let firstPart = textStr.substring(0, charLimit); - textStr = textStr.substring(charLimit, textStr.length); - currentTextLen = textStr.length; - wrappedTxts[wrappedTxts.length] = firstPart; - currentRow++; - } - if (currentRow == 3) { - let lastStr = wrappedTxts[wrappedTxts.length - 1]; - wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "..."; - } else { - wrappedTxts[wrappedTxts.length] = textStr; - } - currentRow = 0; - }); - wrappedTxts.forEach((textStr) => { - body.append("tspan").attr("x", conf.rect_padding).attr("dy", conf.line_height).text(textStr); - }); - return body; -}; -var addEdgeLabel = (parentNode, svgPath, conf2, txt) => { - const len = svgPath.node().getTotalLength(); - const labelPoint = svgPath.node().getPointAtLength(len * 0.5); - const labelId = "rel" + relCnt; - relCnt++; - const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt); - const labelBBox = labelNode.node().getBBox(); - parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%"); -}; -var drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) { - const edge = g.edge(elementString(rel.src), elementString(rel.dst)); - const lineFunction = line_default().x(function(d) { - return d.x; - }).y(function(d) { - return d.y; - }); - const svgPath = svg.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none"); - if (rel.type == diagObj.db.Relationships.CONTAINS) { - svgPath.attr( - "marker-start", - "url(" + common$1.getUrl(conf.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)" - ); - } else { - svgPath.attr("stroke-dasharray", "10,7"); - svgPath.attr( - "marker-end", - "url(" + common$1.getUrl(conf.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)" - ); - } - addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`); - return; -}; -var drawReqs = (reqs, graph, svgNode) => { - Object.keys(reqs).forEach((reqName) => { - let req = reqs[reqName]; - reqName = elementString(reqName); - log$1.info("Added new requirement: ", reqName); - const groupNode = svgNode.append("g").attr("id", reqName); - const textId = "req-" + reqName; - const rectNode = newRectNode(groupNode, textId); - let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [ - `<<${req.type}>>`, - `${req.name}` - ]); - newBodyNode( - groupNode, - reqName + "_body", - [ - `Id: ${req.id}`, - `Text: ${req.text}`, - `Risk: ${req.risk}`, - `Verification: ${req.verifyMethod}` - ], - titleNodeInfo.y - ); - const rectBBox = rectNode.node().getBBox(); - graph.setNode(reqName, { - width: rectBBox.width, - height: rectBBox.height, - shape: "rect", - id: reqName - }); - }); -}; -var drawElements = (els, graph, svgNode) => { - Object.keys(els).forEach((elName) => { - let el = els[elName]; - const id = elementString(elName); - const groupNode = svgNode.append("g").attr("id", id); - const textId = "element-" + id; - const rectNode = newRectNode(groupNode, textId); - let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<>`, `${elName}`]); - newBodyNode( - groupNode, - textId + "_body", - [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`], - titleNodeInfo.y - ); - const rectBBox = rectNode.node().getBBox(); - graph.setNode(id, { - width: rectBBox.width, - height: rectBBox.height, - shape: "rect", - id - }); - }); -}; -var addRelationships = (relationships, g) => { - relationships.forEach(function(r) { - let src = elementString(r.src); - let dst = elementString(r.dst); - g.setEdge(src, dst, { relationship: r }); - }); - return relationships; -}; -var adjustEntities = function(svgNode, graph) { - graph.nodes().forEach(function(v) { - if (v !== void 0 && graph.node(v) !== void 0) { - svgNode.select("#" + v); - svgNode.select("#" + v).attr( - "transform", - "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )" - ); - } - }); - return; -}; -var elementString = (str) => { - return str.replace(/\s/g, "").replace(/\./g, "_"); -}; -var draw = (text, id, _version, diagObj) => { - conf = getConfig().requirement; - const securityLevel = conf.securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select(`[id='${id}']`); - markers.insertLineEndings(svg, conf); - const g = new Graph({ - multigraph: false, - compound: false, - directed: true - }).setGraph({ - rankdir: conf.layoutDirection, - marginx: 20, - marginy: 20, - nodesep: 100, - edgesep: 100, - ranksep: 100 - }).setDefaultEdgeLabel(function() { - return {}; - }); - let requirements2 = diagObj.db.getRequirements(); - let elements2 = diagObj.db.getElements(); - let relationships = diagObj.db.getRelationships(); - drawReqs(requirements2, g, svg); - drawElements(elements2, g, svg); - addRelationships(relationships, g); - layout(g); - adjustEntities(svg, g); - relationships.forEach(function(rel) { - drawRelationshipFromLayout(svg, rel, g, id, diagObj); - }); - const padding = conf.rect_padding; - const svgBounds = svg.node().getBBox(); - const width = svgBounds.width + padding * 2; - const height = svgBounds.height + padding * 2; - configureSvgSize(svg, height, width, conf.useMaxWidth); - svg.attr("viewBox", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`); -}; -var renderer = { - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles -}; -export { - diagram -}; -//# sourceMappingURL=requirementDiagram-4038b16c-DFS7JDTC.js.map diff --git a/.vuepress/.cache/deps/requirementDiagram-4038b16c-DFS7JDTC.js.map b/.vuepress/.cache/deps/requirementDiagram-4038b16c-DFS7JDTC.js.map deleted file mode 100644 index 240b7a41d..000000000 --- a/.vuepress/.cache/deps/requirementDiagram-4038b16c-DFS7JDTC.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/requirementDiagram-4038b16c.js"], - "sourcesContent": ["import { c as getConfig, s as setAccTitle, g as getAccTitle, b as setAccDescription, a as getAccDescription, l as log, t as clear$1, i as configureSvgSize, e as common } from \"./mermaid-934d9bea.js\";\nimport { select, line } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 3], $V1 = [1, 4], $V2 = [1, 5], $V3 = [1, 6], $V4 = [5, 6, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63], $V5 = [1, 18], $V6 = [2, 7], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 25], $Vb = [1, 26], $Vc = [1, 27], $Vd = [1, 20], $Ve = [1, 28], $Vf = [1, 29], $Vg = [62, 63], $Vh = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 51, 53, 62, 63], $Vi = [1, 47], $Vj = [1, 48], $Vk = [1, 49], $Vl = [1, 50], $Vm = [1, 51], $Vn = [1, 52], $Vo = [1, 53], $Vp = [53, 54], $Vq = [1, 64], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 65], $Vw = [1, 69], $Vx = [1, 70], $Vy = [1, 67], $Vz = [1, 68], $VA = [5, 8, 9, 11, 13, 31, 32, 33, 34, 35, 36, 44, 62, 63];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"directive\": 4, \"NEWLINE\": 5, \"RD\": 6, \"diagram\": 7, \"EOF\": 8, \"acc_title\": 9, \"acc_title_value\": 10, \"acc_descr\": 11, \"acc_descr_value\": 12, \"acc_descr_multiline_value\": 13, \"requirementDef\": 14, \"elementDef\": 15, \"relationshipDef\": 16, \"requirementType\": 17, \"requirementName\": 18, \"STRUCT_START\": 19, \"requirementBody\": 20, \"ID\": 21, \"COLONSEP\": 22, \"id\": 23, \"TEXT\": 24, \"text\": 25, \"RISK\": 26, \"riskLevel\": 27, \"VERIFYMTHD\": 28, \"verifyType\": 29, \"STRUCT_STOP\": 30, \"REQUIREMENT\": 31, \"FUNCTIONAL_REQUIREMENT\": 32, \"INTERFACE_REQUIREMENT\": 33, \"PERFORMANCE_REQUIREMENT\": 34, \"PHYSICAL_REQUIREMENT\": 35, \"DESIGN_CONSTRAINT\": 36, \"LOW_RISK\": 37, \"MED_RISK\": 38, \"HIGH_RISK\": 39, \"VERIFY_ANALYSIS\": 40, \"VERIFY_DEMONSTRATION\": 41, \"VERIFY_INSPECTION\": 42, \"VERIFY_TEST\": 43, \"ELEMENT\": 44, \"elementName\": 45, \"elementBody\": 46, \"TYPE\": 47, \"type\": 48, \"DOCREF\": 49, \"ref\": 50, \"END_ARROW_L\": 51, \"relationship\": 52, \"LINE\": 53, \"END_ARROW_R\": 54, \"CONTAINS\": 55, \"COPIES\": 56, \"DERIVES\": 57, \"SATISFIES\": 58, \"VERIFIES\": 59, \"REFINES\": 60, \"TRACES\": 61, \"unqString\": 62, \"qString\": 63, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"NEWLINE\", 6: \"RD\", 8: \"EOF\", 9: \"acc_title\", 10: \"acc_title_value\", 11: \"acc_descr\", 12: \"acc_descr_value\", 13: \"acc_descr_multiline_value\", 19: \"STRUCT_START\", 21: \"ID\", 22: \"COLONSEP\", 24: \"TEXT\", 26: \"RISK\", 28: \"VERIFYMTHD\", 30: \"STRUCT_STOP\", 31: \"REQUIREMENT\", 32: \"FUNCTIONAL_REQUIREMENT\", 33: \"INTERFACE_REQUIREMENT\", 34: \"PERFORMANCE_REQUIREMENT\", 35: \"PHYSICAL_REQUIREMENT\", 36: \"DESIGN_CONSTRAINT\", 37: \"LOW_RISK\", 38: \"MED_RISK\", 39: \"HIGH_RISK\", 40: \"VERIFY_ANALYSIS\", 41: \"VERIFY_DEMONSTRATION\", 42: \"VERIFY_INSPECTION\", 43: \"VERIFY_TEST\", 44: \"ELEMENT\", 47: \"TYPE\", 49: \"DOCREF\", 51: \"END_ARROW_L\", 53: \"LINE\", 54: \"END_ARROW_R\", 55: \"CONTAINS\", 56: \"COPIES\", 57: \"DERIVES\", 58: \"SATISFIES\", 59: \"VERIFIES\", 60: \"REFINES\", 61: \"TRACES\", 62: \"unqString\", 63: \"qString\" },\n productions_: [0, [3, 3], [3, 2], [3, 4], [4, 2], [4, 2], [4, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [14, 5], [20, 5], [20, 5], [20, 5], [20, 5], [20, 2], [20, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [17, 1], [27, 1], [27, 1], [27, 1], [29, 1], [29, 1], [29, 1], [29, 1], [15, 5], [46, 5], [46, 5], [46, 2], [46, 1], [16, 5], [16, 5], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [52, 1], [18, 1], [18, 1], [23, 1], [23, 1], [25, 1], [25, 1], [45, 1], [45, 1], [48, 1], [48, 1], [50, 1], [50, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 4:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 5:\n case 6:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 7:\n this.$ = [];\n break;\n case 13:\n yy.addRequirement($$[$0 - 3], $$[$0 - 4]);\n break;\n case 14:\n yy.setNewReqId($$[$0 - 2]);\n break;\n case 15:\n yy.setNewReqText($$[$0 - 2]);\n break;\n case 16:\n yy.setNewReqRisk($$[$0 - 2]);\n break;\n case 17:\n yy.setNewReqVerifyMethod($$[$0 - 2]);\n break;\n case 20:\n this.$ = yy.RequirementType.REQUIREMENT;\n break;\n case 21:\n this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;\n break;\n case 22:\n this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;\n break;\n case 23:\n this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;\n break;\n case 24:\n this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;\n break;\n case 25:\n this.$ = yy.RequirementType.DESIGN_CONSTRAINT;\n break;\n case 26:\n this.$ = yy.RiskLevel.LOW_RISK;\n break;\n case 27:\n this.$ = yy.RiskLevel.MED_RISK;\n break;\n case 28:\n this.$ = yy.RiskLevel.HIGH_RISK;\n break;\n case 29:\n this.$ = yy.VerifyType.VERIFY_ANALYSIS;\n break;\n case 30:\n this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;\n break;\n case 31:\n this.$ = yy.VerifyType.VERIFY_INSPECTION;\n break;\n case 32:\n this.$ = yy.VerifyType.VERIFY_TEST;\n break;\n case 33:\n yy.addElement($$[$0 - 3]);\n break;\n case 34:\n yy.setNewElementType($$[$0 - 2]);\n break;\n case 35:\n yy.setNewElementDocRef($$[$0 - 2]);\n break;\n case 38:\n yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);\n break;\n case 39:\n yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);\n break;\n case 40:\n this.$ = yy.Relationships.CONTAINS;\n break;\n case 41:\n this.$ = yy.Relationships.COPIES;\n break;\n case 42:\n this.$ = yy.Relationships.DERIVES;\n break;\n case 43:\n this.$ = yy.Relationships.SATISFIES;\n break;\n case 44:\n this.$ = yy.Relationships.VERIFIES;\n break;\n case 45:\n this.$ = yy.Relationships.REFINES;\n break;\n case 46:\n this.$ = yy.Relationships.TRACES;\n break;\n }\n },\n table: [{ 3: 1, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [3] }, { 3: 8, 4: 2, 5: [1, 7], 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 5: [1, 9] }, { 10: [1, 10] }, { 12: [1, 11] }, o($V4, [2, 6]), { 3: 12, 4: 2, 6: $V0, 9: $V1, 11: $V2, 13: $V3 }, { 1: [2, 2] }, { 4: 17, 5: $V5, 7: 13, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, o($V4, [2, 4]), o($V4, [2, 5]), { 1: [2, 1] }, { 8: [1, 30] }, { 4: 17, 5: $V5, 7: 31, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 32, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 33, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 34, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 4: 17, 5: $V5, 7: 35, 8: $V6, 9: $V1, 11: $V2, 13: $V3, 14: 14, 15: 15, 16: 16, 17: 19, 23: 21, 31: $V7, 32: $V8, 33: $V9, 34: $Va, 35: $Vb, 36: $Vc, 44: $Vd, 62: $Ve, 63: $Vf }, { 18: 36, 62: [1, 37], 63: [1, 38] }, { 45: 39, 62: [1, 40], 63: [1, 41] }, { 51: [1, 42], 53: [1, 43] }, o($Vg, [2, 20]), o($Vg, [2, 21]), o($Vg, [2, 22]), o($Vg, [2, 23]), o($Vg, [2, 24]), o($Vg, [2, 25]), o($Vh, [2, 49]), o($Vh, [2, 50]), { 1: [2, 3] }, { 8: [2, 8] }, { 8: [2, 9] }, { 8: [2, 10] }, { 8: [2, 11] }, { 8: [2, 12] }, { 19: [1, 44] }, { 19: [2, 47] }, { 19: [2, 48] }, { 19: [1, 45] }, { 19: [2, 53] }, { 19: [2, 54] }, { 52: 46, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 52: 54, 55: $Vi, 56: $Vj, 57: $Vk, 58: $Vl, 59: $Vm, 60: $Vn, 61: $Vo }, { 5: [1, 55] }, { 5: [1, 56] }, { 53: [1, 57] }, o($Vp, [2, 40]), o($Vp, [2, 41]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), { 54: [1, 58] }, { 5: $Vq, 20: 59, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 66, 47: $Vy, 49: $Vz }, { 23: 71, 62: $Ve, 63: $Vf }, { 23: 72, 62: $Ve, 63: $Vf }, o($VA, [2, 13]), { 22: [1, 73] }, { 22: [1, 74] }, { 22: [1, 75] }, { 22: [1, 76] }, { 5: $Vq, 20: 77, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, o($VA, [2, 19]), o($VA, [2, 33]), { 22: [1, 78] }, { 22: [1, 79] }, { 5: $Vw, 30: $Vx, 46: 80, 47: $Vy, 49: $Vz }, o($VA, [2, 37]), o($VA, [2, 38]), o($VA, [2, 39]), { 23: 81, 62: $Ve, 63: $Vf }, { 25: 82, 62: [1, 83], 63: [1, 84] }, { 27: 85, 37: [1, 86], 38: [1, 87], 39: [1, 88] }, { 29: 89, 40: [1, 90], 41: [1, 91], 42: [1, 92], 43: [1, 93] }, o($VA, [2, 18]), { 48: 94, 62: [1, 95], 63: [1, 96] }, { 50: 97, 62: [1, 98], 63: [1, 99] }, o($VA, [2, 36]), { 5: [1, 100] }, { 5: [1, 101] }, { 5: [2, 51] }, { 5: [2, 52] }, { 5: [1, 102] }, { 5: [2, 26] }, { 5: [2, 27] }, { 5: [2, 28] }, { 5: [1, 103] }, { 5: [2, 29] }, { 5: [2, 30] }, { 5: [2, 31] }, { 5: [2, 32] }, { 5: [1, 104] }, { 5: [2, 55] }, { 5: [2, 56] }, { 5: [1, 105] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: $Vq, 20: 106, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 107, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 108, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vq, 20: 109, 21: $Vr, 24: $Vs, 26: $Vt, 28: $Vu, 30: $Vv }, { 5: $Vw, 30: $Vx, 46: 110, 47: $Vy, 49: $Vz }, { 5: $Vw, 30: $Vx, 46: 111, 47: $Vy, 49: $Vz }, o($VA, [2, 14]), o($VA, [2, 15]), o($VA, [2, 16]), o($VA, [2, 17]), o($VA, [2, 34]), o($VA, [2, 35])],\n defaultActions: { 8: [2, 2], 12: [2, 1], 30: [2, 3], 31: [2, 8], 32: [2, 9], 33: [2, 10], 34: [2, 11], 35: [2, 12], 37: [2, 47], 38: [2, 48], 40: [2, 53], 41: [2, 54], 83: [2, 51], 84: [2, 52], 86: [2, 26], 87: [2, 27], 88: [2, 28], 90: [2, 29], 91: [2, 30], 92: [2, 31], 93: [2, 32], 95: [2, 55], 96: [2, 56], 98: [2, 57], 99: [2, 58] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return \"title\";\n case 1:\n this.begin(\"acc_title\");\n return 9;\n case 2:\n this.popState();\n return \"acc_title_value\";\n case 3:\n this.begin(\"acc_descr\");\n return 11;\n case 4:\n this.popState();\n return \"acc_descr_value\";\n case 5:\n this.begin(\"acc_descr_multiline\");\n break;\n case 6:\n this.popState();\n break;\n case 7:\n return \"acc_descr_multiline_value\";\n case 8:\n return 5;\n case 9:\n break;\n case 10:\n break;\n case 11:\n break;\n case 12:\n return 8;\n case 13:\n return 6;\n case 14:\n return 19;\n case 15:\n return 30;\n case 16:\n return 22;\n case 17:\n return 21;\n case 18:\n return 24;\n case 19:\n return 26;\n case 20:\n return 28;\n case 21:\n return 31;\n case 22:\n return 32;\n case 23:\n return 33;\n case 24:\n return 34;\n case 25:\n return 35;\n case 26:\n return 36;\n case 27:\n return 37;\n case 28:\n return 38;\n case 29:\n return 39;\n case 30:\n return 40;\n case 31:\n return 41;\n case 32:\n return 42;\n case 33:\n return 43;\n case 34:\n return 44;\n case 35:\n return 55;\n case 36:\n return 56;\n case 37:\n return 57;\n case 38:\n return 58;\n case 39:\n return 59;\n case 40:\n return 60;\n case 41:\n return 61;\n case 42:\n return 47;\n case 43:\n return 49;\n case 44:\n return 51;\n case 45:\n return 54;\n case 46:\n return 53;\n case 47:\n this.begin(\"string\");\n break;\n case 48:\n this.popState();\n break;\n case 49:\n return \"qString\";\n case 50:\n yy_.yytext = yy_.yytext.trim();\n return 62;\n }\n },\n rules: [/^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:(\\r?\\n)+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:%[^\\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\\b)/i, /^(?:\\{)/i, /^(?:\\})/i, /^(?::)/i, /^(?:id\\b)/i, /^(?:text\\b)/i, /^(?:risk\\b)/i, /^(?:verifyMethod\\b)/i, /^(?:requirement\\b)/i, /^(?:functionalRequirement\\b)/i, /^(?:interfaceRequirement\\b)/i, /^(?:performanceRequirement\\b)/i, /^(?:physicalRequirement\\b)/i, /^(?:designConstraint\\b)/i, /^(?:low\\b)/i, /^(?:medium\\b)/i, /^(?:high\\b)/i, /^(?:analysis\\b)/i, /^(?:demonstration\\b)/i, /^(?:inspection\\b)/i, /^(?:test\\b)/i, /^(?:element\\b)/i, /^(?:contains\\b)/i, /^(?:copies\\b)/i, /^(?:derives\\b)/i, /^(?:satisfies\\b)/i, /^(?:verifies\\b)/i, /^(?:refines\\b)/i, /^(?:traces\\b)/i, /^(?:type\\b)/i, /^(?:docref\\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:[\\w][^\\r\\n\\{\\<\\>\\-\\=]*)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [6, 7], \"inclusive\": false }, \"acc_descr\": { \"rules\": [4], \"inclusive\": false }, \"acc_title\": { \"rules\": [2], \"inclusive\": false }, \"unqString\": { \"rules\": [], \"inclusive\": false }, \"token\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [48, 49], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet relations = [];\nlet latestRequirement = {};\nlet requirements = {};\nlet latestElement = {};\nlet elements = {};\nconst RequirementType = {\n REQUIREMENT: \"Requirement\",\n FUNCTIONAL_REQUIREMENT: \"Functional Requirement\",\n INTERFACE_REQUIREMENT: \"Interface Requirement\",\n PERFORMANCE_REQUIREMENT: \"Performance Requirement\",\n PHYSICAL_REQUIREMENT: \"Physical Requirement\",\n DESIGN_CONSTRAINT: \"Design Constraint\"\n};\nconst RiskLevel = {\n LOW_RISK: \"Low\",\n MED_RISK: \"Medium\",\n HIGH_RISK: \"High\"\n};\nconst VerifyType = {\n VERIFY_ANALYSIS: \"Analysis\",\n VERIFY_DEMONSTRATION: \"Demonstration\",\n VERIFY_INSPECTION: \"Inspection\",\n VERIFY_TEST: \"Test\"\n};\nconst Relationships = {\n CONTAINS: \"contains\",\n COPIES: \"copies\",\n DERIVES: \"derives\",\n SATISFIES: \"satisfies\",\n VERIFIES: \"verifies\",\n REFINES: \"refines\",\n TRACES: \"traces\"\n};\nconst addRequirement = (name, type) => {\n if (requirements[name] === void 0) {\n requirements[name] = {\n name,\n type,\n id: latestRequirement.id,\n text: latestRequirement.text,\n risk: latestRequirement.risk,\n verifyMethod: latestRequirement.verifyMethod\n };\n }\n latestRequirement = {};\n return requirements[name];\n};\nconst getRequirements = () => requirements;\nconst setNewReqId = (id) => {\n if (latestRequirement !== void 0) {\n latestRequirement.id = id;\n }\n};\nconst setNewReqText = (text) => {\n if (latestRequirement !== void 0) {\n latestRequirement.text = text;\n }\n};\nconst setNewReqRisk = (risk) => {\n if (latestRequirement !== void 0) {\n latestRequirement.risk = risk;\n }\n};\nconst setNewReqVerifyMethod = (verifyMethod) => {\n if (latestRequirement !== void 0) {\n latestRequirement.verifyMethod = verifyMethod;\n }\n};\nconst addElement = (name) => {\n if (elements[name] === void 0) {\n elements[name] = {\n name,\n type: latestElement.type,\n docRef: latestElement.docRef\n };\n log.info(\"Added new requirement: \", name);\n }\n latestElement = {};\n return elements[name];\n};\nconst getElements = () => elements;\nconst setNewElementType = (type) => {\n if (latestElement !== void 0) {\n latestElement.type = type;\n }\n};\nconst setNewElementDocRef = (docRef) => {\n if (latestElement !== void 0) {\n latestElement.docRef = docRef;\n }\n};\nconst addRelationship = (type, src, dst) => {\n relations.push({\n type,\n src,\n dst\n });\n};\nconst getRelationships = () => relations;\nconst clear = () => {\n relations = [];\n latestRequirement = {};\n requirements = {};\n latestElement = {};\n elements = {};\n clear$1();\n};\nconst db = {\n RequirementType,\n RiskLevel,\n VerifyType,\n Relationships,\n getConfig: () => getConfig().req,\n addRequirement,\n getRequirements,\n setNewReqId,\n setNewReqText,\n setNewReqRisk,\n setNewReqVerifyMethod,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n addElement,\n getElements,\n setNewElementType,\n setNewElementDocRef,\n addRelationship,\n getRelationships,\n clear\n};\nconst getStyles = (options) => `\n\n marker {\n fill: ${options.relationColor};\n stroke: ${options.relationColor};\n }\n\n marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n .reqBox {\n fill: ${options.requirementBackground};\n fill-opacity: 1.0;\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${options.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${options.relationLabelBackground};\n fill-opacity: 1.0;\n }\n\n .req-title-line {\n stroke: ${options.requirementBorderColor};\n stroke-width: ${options.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${options.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${options.relationLabelColor};\n }\n\n`;\nconst styles = getStyles;\nconst ReqMarkers = {\n CONTAINS: \"contains\",\n ARROW: \"arrow\"\n};\nconst insertLineEndings = (parentNode, conf2) => {\n let containsNode = parentNode.append(\"defs\").append(\"marker\").attr(\"id\", ReqMarkers.CONTAINS + \"_line_ending\").attr(\"refX\", 0).attr(\"refY\", conf2.line_height / 2).attr(\"markerWidth\", conf2.line_height).attr(\"markerHeight\", conf2.line_height).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", conf2.line_height / 2).attr(\"cy\", conf2.line_height / 2).attr(\"r\", conf2.line_height / 2).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 0).attr(\"x2\", conf2.line_height).attr(\"y1\", conf2.line_height / 2).attr(\"y2\", conf2.line_height / 2).attr(\"stroke-width\", 1);\n containsNode.append(\"line\").attr(\"y1\", 0).attr(\"y2\", conf2.line_height).attr(\"x1\", conf2.line_height / 2).attr(\"x2\", conf2.line_height / 2).attr(\"stroke-width\", 1);\n parentNode.append(\"defs\").append(\"marker\").attr(\"id\", ReqMarkers.ARROW + \"_line_ending\").attr(\"refX\", conf2.line_height).attr(\"refY\", 0.5 * conf2.line_height).attr(\"markerWidth\", conf2.line_height).attr(\"markerHeight\", conf2.line_height).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L${conf2.line_height},${conf2.line_height / 2}\n M${conf2.line_height},${conf2.line_height / 2}\n L0,${conf2.line_height}`\n ).attr(\"stroke-width\", 1);\n};\nconst markers = {\n ReqMarkers,\n insertLineEndings\n};\nlet conf = {};\nlet relCnt = 0;\nconst newRectNode = (parentNode, id) => {\n return parentNode.insert(\"rect\", \"#\" + id).attr(\"class\", \"req reqBox\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", conf.rect_min_width + \"px\").attr(\"height\", conf.rect_min_height + \"px\");\n};\nconst newTitleNode = (parentNode, id, txts) => {\n let x = conf.rect_min_width / 2;\n let title = parentNode.append(\"text\").attr(\"class\", \"req reqLabel reqTitle\").attr(\"id\", id).attr(\"x\", x).attr(\"y\", conf.rect_padding).attr(\"dominant-baseline\", \"hanging\");\n let i = 0;\n txts.forEach((textStr) => {\n if (i == 0) {\n title.append(\"tspan\").attr(\"text-anchor\", \"middle\").attr(\"x\", conf.rect_min_width / 2).attr(\"dy\", 0).text(textStr);\n } else {\n title.append(\"tspan\").attr(\"text-anchor\", \"middle\").attr(\"x\", conf.rect_min_width / 2).attr(\"dy\", conf.line_height * 0.75).text(textStr);\n }\n i++;\n });\n let yPadding = 1.5 * conf.rect_padding;\n let linePadding = i * conf.line_height * 0.75;\n let totalY = yPadding + linePadding;\n parentNode.append(\"line\").attr(\"class\", \"req-title-line\").attr(\"x1\", \"0\").attr(\"x2\", conf.rect_min_width).attr(\"y1\", totalY).attr(\"y2\", totalY);\n return {\n titleNode: title,\n y: totalY\n };\n};\nconst newBodyNode = (parentNode, id, txts, yStart) => {\n let body = parentNode.append(\"text\").attr(\"class\", \"req reqLabel\").attr(\"id\", id).attr(\"x\", conf.rect_padding).attr(\"y\", yStart).attr(\"dominant-baseline\", \"hanging\");\n let currentRow = 0;\n const charLimit = 30;\n let wrappedTxts = [];\n txts.forEach((textStr) => {\n let currentTextLen = textStr.length;\n while (currentTextLen > charLimit && currentRow < 3) {\n let firstPart = textStr.substring(0, charLimit);\n textStr = textStr.substring(charLimit, textStr.length);\n currentTextLen = textStr.length;\n wrappedTxts[wrappedTxts.length] = firstPart;\n currentRow++;\n }\n if (currentRow == 3) {\n let lastStr = wrappedTxts[wrappedTxts.length - 1];\n wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + \"...\";\n } else {\n wrappedTxts[wrappedTxts.length] = textStr;\n }\n currentRow = 0;\n });\n wrappedTxts.forEach((textStr) => {\n body.append(\"tspan\").attr(\"x\", conf.rect_padding).attr(\"dy\", conf.line_height).text(textStr);\n });\n return body;\n};\nconst addEdgeLabel = (parentNode, svgPath, conf2, txt) => {\n const len = svgPath.node().getTotalLength();\n const labelPoint = svgPath.node().getPointAtLength(len * 0.5);\n const labelId = \"rel\" + relCnt;\n relCnt++;\n const labelNode = parentNode.append(\"text\").attr(\"class\", \"req relationshipLabel\").attr(\"id\", labelId).attr(\"x\", labelPoint.x).attr(\"y\", labelPoint.y).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(txt);\n const labelBBox = labelNode.node().getBBox();\n parentNode.insert(\"rect\", \"#\" + labelId).attr(\"class\", \"req reqLabelBox\").attr(\"x\", labelPoint.x - labelBBox.width / 2).attr(\"y\", labelPoint.y - labelBBox.height / 2).attr(\"width\", labelBBox.width).attr(\"height\", labelBBox.height).attr(\"fill\", \"white\").attr(\"fill-opacity\", \"85%\");\n};\nconst drawRelationshipFromLayout = function(svg, rel, g, insert, diagObj) {\n const edge = g.edge(elementString(rel.src), elementString(rel.dst));\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n });\n const svgPath = svg.insert(\"path\", \"#\" + insert).attr(\"class\", \"er relationshipLine\").attr(\"d\", lineFunction(edge.points)).attr(\"fill\", \"none\");\n if (rel.type == diagObj.db.Relationships.CONTAINS) {\n svgPath.attr(\n \"marker-start\",\n \"url(\" + common.getUrl(conf.arrowMarkerAbsolute) + \"#\" + rel.type + \"_line_ending)\"\n );\n } else {\n svgPath.attr(\"stroke-dasharray\", \"10,7\");\n svgPath.attr(\n \"marker-end\",\n \"url(\" + common.getUrl(conf.arrowMarkerAbsolute) + \"#\" + markers.ReqMarkers.ARROW + \"_line_ending)\"\n );\n }\n addEdgeLabel(svg, svgPath, conf, `<<${rel.type}>>`);\n return;\n};\nconst drawReqs = (reqs, graph, svgNode) => {\n Object.keys(reqs).forEach((reqName) => {\n let req = reqs[reqName];\n reqName = elementString(reqName);\n log.info(\"Added new requirement: \", reqName);\n const groupNode = svgNode.append(\"g\").attr(\"id\", reqName);\n const textId = \"req-\" + reqName;\n const rectNode = newRectNode(groupNode, textId);\n let titleNodeInfo = newTitleNode(groupNode, reqName + \"_title\", [\n `<<${req.type}>>`,\n `${req.name}`\n ]);\n newBodyNode(\n groupNode,\n reqName + \"_body\",\n [\n `Id: ${req.id}`,\n `Text: ${req.text}`,\n `Risk: ${req.risk}`,\n `Verification: ${req.verifyMethod}`\n ],\n titleNodeInfo.y\n );\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(reqName, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id: reqName\n });\n });\n};\nconst drawElements = (els, graph, svgNode) => {\n Object.keys(els).forEach((elName) => {\n let el = els[elName];\n const id = elementString(elName);\n const groupNode = svgNode.append(\"g\").attr(\"id\", id);\n const textId = \"element-\" + id;\n const rectNode = newRectNode(groupNode, textId);\n let titleNodeInfo = newTitleNode(groupNode, textId + \"_title\", [`<>`, `${elName}`]);\n newBodyNode(\n groupNode,\n textId + \"_body\",\n [`Type: ${el.type || \"Not Specified\"}`, `Doc Ref: ${el.docRef || \"None\"}`],\n titleNodeInfo.y\n );\n const rectBBox = rectNode.node().getBBox();\n graph.setNode(id, {\n width: rectBBox.width,\n height: rectBBox.height,\n shape: \"rect\",\n id\n });\n });\n};\nconst addRelationships = (relationships, g) => {\n relationships.forEach(function(r) {\n let src = elementString(r.src);\n let dst = elementString(r.dst);\n g.setEdge(src, dst, { relationship: r });\n });\n return relationships;\n};\nconst adjustEntities = function(svgNode, graph) {\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n svgNode.select(\"#\" + v);\n svgNode.select(\"#\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y - graph.node(v).height / 2) + \" )\"\n );\n }\n });\n return;\n};\nconst elementString = (str) => {\n return str.replace(/\\s/g, \"\").replace(/\\./g, \"_\");\n};\nconst draw = (text, id, _version, diagObj) => {\n conf = getConfig().requirement;\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id='${id}']`);\n markers.insertLineEndings(svg, conf);\n const g = new graphlib.Graph({\n multigraph: false,\n compound: false,\n directed: true\n }).setGraph({\n rankdir: conf.layoutDirection,\n marginx: 20,\n marginy: 20,\n nodesep: 100,\n edgesep: 100,\n ranksep: 100\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n let requirements2 = diagObj.db.getRequirements();\n let elements2 = diagObj.db.getElements();\n let relationships = diagObj.db.getRelationships();\n drawReqs(requirements2, g, svg);\n drawElements(elements2, g, svg);\n addRelationships(relationships, g);\n layout(g);\n adjustEntities(svg, g);\n relationships.forEach(function(rel) {\n drawRelationshipFromLayout(svg, rel, g, id, diagObj);\n });\n const padding = conf.rect_padding;\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n svg.attr(\"viewBox\", `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`);\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"], - "mappings": "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AI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,IACtpH,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAA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", - "names": ["clear"] -} diff --git a/.vuepress/.cache/deps/sankeyDiagram-6db3d513-EPD5B7EB.js b/.vuepress/.cache/deps/sankeyDiagram-6db3d513-EPD5B7EB.js deleted file mode 100644 index bdd0b9418..000000000 --- a/.vuepress/.cache/deps/sankeyDiagram-6db3d513-EPD5B7EB.js +++ /dev/null @@ -1,2254 +0,0 @@ -import { - Tableau10_default, - clear, - common$1, - configureSvgSize, - defaultConfig, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - ordinal, - require_dayjs_min, - require_dist, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/d3-sankey/node_modules/d3-array/src/ascending.js -function ascending_default(a2, b) { - return a2 < b ? -1 : a2 > b ? 1 : a2 >= b ? 0 : NaN; -} - -// node_modules/d3-sankey/node_modules/d3-array/src/bisector.js -function bisector_default(f) { - let delta = f; - let compare = f; - if (f.length === 1) { - delta = (d, x2) => f(d) - x2; - compare = ascendingComparator(f); - } - function left2(a2, x2, lo, hi) { - if (lo == null) - lo = 0; - if (hi == null) - hi = a2.length; - while (lo < hi) { - const mid = lo + hi >>> 1; - if (compare(a2[mid], x2) < 0) - lo = mid + 1; - else - hi = mid; - } - return lo; - } - function right2(a2, x2, lo, hi) { - if (lo == null) - lo = 0; - if (hi == null) - hi = a2.length; - while (lo < hi) { - const mid = lo + hi >>> 1; - if (compare(a2[mid], x2) > 0) - hi = mid; - else - lo = mid + 1; - } - return lo; - } - function center2(a2, x2, lo, hi) { - if (lo == null) - lo = 0; - if (hi == null) - hi = a2.length; - const i = left2(a2, x2, lo, hi - 1); - return i > lo && delta(a2[i - 1], x2) > -delta(a2[i], x2) ? i - 1 : i; - } - return { left: left2, center: center2, right: right2 }; -} -function ascendingComparator(f) { - return (d, x2) => ascending_default(f(d), x2); -} - -// node_modules/d3-sankey/node_modules/d3-array/src/number.js -function number_default(x2) { - return x2 === null ? NaN : +x2; -} - -// node_modules/d3-sankey/node_modules/d3-array/src/bisect.js -var ascendingBisect = bisector_default(ascending_default); -var bisectRight = ascendingBisect.right; -var bisectLeft = ascendingBisect.left; -var bisectCenter = bisector_default(number_default).center; - -// node_modules/d3-sankey/node_modules/d3-array/src/array.js -var array = Array.prototype; -var slice = array.slice; -var map = array.map; - -// node_modules/d3-sankey/node_modules/d3-array/src/ticks.js -var e10 = Math.sqrt(50); -var e5 = Math.sqrt(10); -var e2 = Math.sqrt(2); - -// node_modules/d3-sankey/node_modules/d3-array/src/max.js -function max(values, valueof) { - let max3; - if (valueof === void 0) { - for (const value2 of values) { - if (value2 != null && (max3 < value2 || max3 === void 0 && value2 >= value2)) { - max3 = value2; - } - } - } else { - let index2 = -1; - for (let value2 of values) { - if ((value2 = valueof(value2, ++index2, values)) != null && (max3 < value2 || max3 === void 0 && value2 >= value2)) { - max3 = value2; - } - } - } - return max3; -} - -// node_modules/d3-sankey/node_modules/d3-array/src/min.js -function min(values, valueof) { - let min3; - if (valueof === void 0) { - for (const value2 of values) { - if (value2 != null && (min3 > value2 || min3 === void 0 && value2 >= value2)) { - min3 = value2; - } - } - } else { - let index2 = -1; - for (let value2 of values) { - if ((value2 = valueof(value2, ++index2, values)) != null && (min3 > value2 || min3 === void 0 && value2 >= value2)) { - min3 = value2; - } - } - } - return min3; -} - -// node_modules/d3-sankey/node_modules/d3-array/src/shuffle.js -var shuffle_default = shuffler(Math.random); -function shuffler(random) { - return function shuffle(array2, i0 = 0, i1 = array2.length) { - let m = i1 - (i0 = +i0); - while (m) { - const i = random() * m-- | 0, t = array2[m + i0]; - array2[m + i0] = array2[i + i0]; - array2[i + i0] = t; - } - return array2; - }; -} - -// node_modules/d3-sankey/node_modules/d3-array/src/sum.js -function sum(values, valueof) { - let sum3 = 0; - if (valueof === void 0) { - for (let value2 of values) { - if (value2 = +value2) { - sum3 += value2; - } - } - } else { - let index2 = -1; - for (let value2 of values) { - if (value2 = +valueof(value2, ++index2, values)) { - sum3 += value2; - } - } - } - return sum3; -} - -// node_modules/d3-sankey/src/align.js -function targetDepth(d) { - return d.target.depth; -} -function left(node) { - return node.depth; -} -function right(node, n) { - return n - 1 - node.height; -} -function justify(node, n) { - return node.sourceLinks.length ? node.depth : n - 1; -} -function center(node) { - return node.targetLinks.length ? node.depth : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1 : 0; -} - -// node_modules/d3-sankey/src/constant.js -function constant(x2) { - return function() { - return x2; - }; -} - -// node_modules/d3-sankey/src/sankey.js -function ascendingSourceBreadth(a2, b) { - return ascendingBreadth(a2.source, b.source) || a2.index - b.index; -} -function ascendingTargetBreadth(a2, b) { - return ascendingBreadth(a2.target, b.target) || a2.index - b.index; -} -function ascendingBreadth(a2, b) { - return a2.y0 - b.y0; -} -function value(d) { - return d.value; -} -function defaultId(d) { - return d.index; -} -function defaultNodes(graph) { - return graph.nodes; -} -function defaultLinks(graph) { - return graph.links; -} -function find(nodeById, id) { - const node = nodeById.get(id); - if (!node) - throw new Error("missing: " + id); - return node; -} -function computeLinkBreadths({ nodes: nodes2 }) { - for (const node of nodes2) { - let y0 = node.y0; - let y1 = y0; - for (const link2 of node.sourceLinks) { - link2.y0 = y0 + link2.width / 2; - y0 += link2.width; - } - for (const link2 of node.targetLinks) { - link2.y1 = y1 + link2.width / 2; - y1 += link2.width; - } - } -} -function Sankey() { - let x0 = 0, y0 = 0, x1 = 1, y1 = 1; - let dx = 24; - let dy = 8, py; - let id = defaultId; - let align = justify; - let sort2; - let linkSort; - let nodes2 = defaultNodes; - let links2 = defaultLinks; - let iterations = 6; - function sankey() { - const graph = { nodes: nodes2.apply(null, arguments), links: links2.apply(null, arguments) }; - computeNodeLinks(graph); - computeNodeValues(graph); - computeNodeDepths(graph); - computeNodeHeights(graph); - computeNodeBreadths(graph); - computeLinkBreadths(graph); - return graph; - } - sankey.update = function(graph) { - computeLinkBreadths(graph); - return graph; - }; - sankey.nodeId = function(_) { - return arguments.length ? (id = typeof _ === "function" ? _ : constant(_), sankey) : id; - }; - sankey.nodeAlign = function(_) { - return arguments.length ? (align = typeof _ === "function" ? _ : constant(_), sankey) : align; - }; - sankey.nodeSort = function(_) { - return arguments.length ? (sort2 = _, sankey) : sort2; - }; - sankey.nodeWidth = function(_) { - return arguments.length ? (dx = +_, sankey) : dx; - }; - sankey.nodePadding = function(_) { - return arguments.length ? (dy = py = +_, sankey) : dy; - }; - sankey.nodes = function(_) { - return arguments.length ? (nodes2 = typeof _ === "function" ? _ : constant(_), sankey) : nodes2; - }; - sankey.links = function(_) { - return arguments.length ? (links2 = typeof _ === "function" ? _ : constant(_), sankey) : links2; - }; - sankey.linkSort = function(_) { - return arguments.length ? (linkSort = _, sankey) : linkSort; - }; - sankey.size = function(_) { - return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0]; - }; - sankey.extent = function(_) { - return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]]; - }; - sankey.iterations = function(_) { - return arguments.length ? (iterations = +_, sankey) : iterations; - }; - function computeNodeLinks({ nodes: nodes3, links: links3 }) { - for (const [i, node] of nodes3.entries()) { - node.index = i; - node.sourceLinks = []; - node.targetLinks = []; - } - const nodeById = new Map(nodes3.map((d, i) => [id(d, i, nodes3), d])); - for (const [i, link2] of links3.entries()) { - link2.index = i; - let { source, target } = link2; - if (typeof source !== "object") - source = link2.source = find(nodeById, source); - if (typeof target !== "object") - target = link2.target = find(nodeById, target); - source.sourceLinks.push(link2); - target.targetLinks.push(link2); - } - if (linkSort != null) { - for (const { sourceLinks, targetLinks } of nodes3) { - sourceLinks.sort(linkSort); - targetLinks.sort(linkSort); - } - } - } - function computeNodeValues({ nodes: nodes3 }) { - for (const node of nodes3) { - node.value = node.fixedValue === void 0 ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value)) : node.fixedValue; - } - } - function computeNodeDepths({ nodes: nodes3 }) { - const n = nodes3.length; - let current = new Set(nodes3); - let next = /* @__PURE__ */ new Set(); - let x2 = 0; - while (current.size) { - for (const node of current) { - node.depth = x2; - for (const { target } of node.sourceLinks) { - next.add(target); - } - } - if (++x2 > n) - throw new Error("circular link"); - current = next; - next = /* @__PURE__ */ new Set(); - } - } - function computeNodeHeights({ nodes: nodes3 }) { - const n = nodes3.length; - let current = new Set(nodes3); - let next = /* @__PURE__ */ new Set(); - let x2 = 0; - while (current.size) { - for (const node of current) { - node.height = x2; - for (const { source } of node.targetLinks) { - next.add(source); - } - } - if (++x2 > n) - throw new Error("circular link"); - current = next; - next = /* @__PURE__ */ new Set(); - } - } - function computeNodeLayers({ nodes: nodes3 }) { - const x2 = max(nodes3, (d) => d.depth) + 1; - const kx2 = (x1 - x0 - dx) / (x2 - 1); - const columns = new Array(x2); - for (const node of nodes3) { - const i = Math.max(0, Math.min(x2 - 1, Math.floor(align.call(null, node, x2)))); - node.layer = i; - node.x0 = x0 + i * kx2; - node.x1 = node.x0 + dx; - if (columns[i]) - columns[i].push(node); - else - columns[i] = [node]; - } - if (sort2) - for (const column of columns) { - column.sort(sort2); - } - return columns; - } - function initializeNodeBreadths(columns) { - const ky2 = min(columns, (c) => (y1 - y0 - (c.length - 1) * py) / sum(c, value)); - for (const nodes3 of columns) { - let y2 = y0; - for (const node of nodes3) { - node.y0 = y2; - node.y1 = y2 + node.value * ky2; - y2 = node.y1 + py; - for (const link2 of node.sourceLinks) { - link2.width = link2.value * ky2; - } - } - y2 = (y1 - y2 + py) / (nodes3.length + 1); - for (let i = 0; i < nodes3.length; ++i) { - const node = nodes3[i]; - node.y0 += y2 * (i + 1); - node.y1 += y2 * (i + 1); - } - reorderLinks(nodes3); - } - } - function computeNodeBreadths(graph) { - const columns = computeNodeLayers(graph); - py = Math.min(dy, (y1 - y0) / (max(columns, (c) => c.length) - 1)); - initializeNodeBreadths(columns); - for (let i = 0; i < iterations; ++i) { - const alpha = Math.pow(0.99, i); - const beta = Math.max(1 - alpha, (i + 1) / iterations); - relaxRightToLeft(columns, alpha, beta); - relaxLeftToRight(columns, alpha, beta); - } - } - function relaxLeftToRight(columns, alpha, beta) { - for (let i = 1, n = columns.length; i < n; ++i) { - const column = columns[i]; - for (const target of column) { - let y2 = 0; - let w = 0; - for (const { source, value: value2 } of target.targetLinks) { - let v = value2 * (target.layer - source.layer); - y2 += targetTop(source, target) * v; - w += v; - } - if (!(w > 0)) - continue; - let dy2 = (y2 / w - target.y0) * alpha; - target.y0 += dy2; - target.y1 += dy2; - reorderNodeLinks(target); - } - if (sort2 === void 0) - column.sort(ascendingBreadth); - resolveCollisions(column, beta); - } - } - function relaxRightToLeft(columns, alpha, beta) { - for (let n = columns.length, i = n - 2; i >= 0; --i) { - const column = columns[i]; - for (const source of column) { - let y2 = 0; - let w = 0; - for (const { target, value: value2 } of source.sourceLinks) { - let v = value2 * (target.layer - source.layer); - y2 += sourceTop(source, target) * v; - w += v; - } - if (!(w > 0)) - continue; - let dy2 = (y2 / w - source.y0) * alpha; - source.y0 += dy2; - source.y1 += dy2; - reorderNodeLinks(source); - } - if (sort2 === void 0) - column.sort(ascendingBreadth); - resolveCollisions(column, beta); - } - } - function resolveCollisions(nodes3, alpha) { - const i = nodes3.length >> 1; - const subject = nodes3[i]; - resolveCollisionsBottomToTop(nodes3, subject.y0 - py, i - 1, alpha); - resolveCollisionsTopToBottom(nodes3, subject.y1 + py, i + 1, alpha); - resolveCollisionsBottomToTop(nodes3, y1, nodes3.length - 1, alpha); - resolveCollisionsTopToBottom(nodes3, y0, 0, alpha); - } - function resolveCollisionsTopToBottom(nodes3, y2, i, alpha) { - for (; i < nodes3.length; ++i) { - const node = nodes3[i]; - const dy2 = (y2 - node.y0) * alpha; - if (dy2 > 1e-6) - node.y0 += dy2, node.y1 += dy2; - y2 = node.y1 + py; - } - } - function resolveCollisionsBottomToTop(nodes3, y2, i, alpha) { - for (; i >= 0; --i) { - const node = nodes3[i]; - const dy2 = (node.y1 - y2) * alpha; - if (dy2 > 1e-6) - node.y0 -= dy2, node.y1 -= dy2; - y2 = node.y0 - py; - } - } - function reorderNodeLinks({ sourceLinks, targetLinks }) { - if (linkSort === void 0) { - for (const { source: { sourceLinks: sourceLinks2 } } of targetLinks) { - sourceLinks2.sort(ascendingTargetBreadth); - } - for (const { target: { targetLinks: targetLinks2 } } of sourceLinks) { - targetLinks2.sort(ascendingSourceBreadth); - } - } - } - function reorderLinks(nodes3) { - if (linkSort === void 0) { - for (const { sourceLinks, targetLinks } of nodes3) { - sourceLinks.sort(ascendingTargetBreadth); - targetLinks.sort(ascendingSourceBreadth); - } - } - } - function targetTop(source, target) { - let y2 = source.y0 - (source.sourceLinks.length - 1) * py / 2; - for (const { target: node, width } of source.sourceLinks) { - if (node === target) - break; - y2 += width + py; - } - for (const { source: node, width } of target.targetLinks) { - if (node === source) - break; - y2 -= width; - } - return y2; - } - function sourceTop(source, target) { - let y2 = target.y0 - (target.targetLinks.length - 1) * py / 2; - for (const { source: node, width } of target.targetLinks) { - if (node === source) - break; - y2 += width + py; - } - for (const { target: node, width } of source.sourceLinks) { - if (node === target) - break; - y2 -= width; - } - return y2; - } - return sankey; -} - -// node_modules/d3-sankey/node_modules/d3-path/src/path.js -var pi = Math.PI; -var tau = 2 * pi; -var epsilon = 1e-6; -var tauEpsilon = tau - epsilon; -function Path() { - this._x0 = this._y0 = // start of current subpath - this._x1 = this._y1 = null; - this._ = ""; -} -function path() { - return new Path(); -} -Path.prototype = path.prototype = { - constructor: Path, - moveTo: function(x2, y2) { - this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2); - }, - closePath: function() { - if (this._x1 !== null) { - this._x1 = this._x0, this._y1 = this._y0; - this._ += "Z"; - } - }, - lineTo: function(x2, y2) { - this._ += "L" + (this._x1 = +x2) + "," + (this._y1 = +y2); - }, - quadraticCurveTo: function(x1, y1, x2, y2) { - this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x2) + "," + (this._y1 = +y2); - }, - bezierCurveTo: function(x1, y1, x2, y2, x3, y3) { - this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x3) + "," + (this._y1 = +y3); - }, - arcTo: function(x1, y1, x2, y2, r) { - x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r; - var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01; - if (r < 0) - throw new Error("negative radius: " + r); - if (this._x1 === null) { - this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1); - } else if (!(l01_2 > epsilon)) - ; - else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) { - this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1); - } else { - var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21; - if (Math.abs(t01 - 1) > epsilon) { - this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01); - } - this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21); - } - }, - arc: function(x2, y2, r, a0, a1, ccw) { - x2 = +x2, y2 = +y2, r = +r, ccw = !!ccw; - var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x2 + dx, y0 = y2 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0; - if (r < 0) - throw new Error("negative radius: " + r); - if (this._x1 === null) { - this._ += "M" + x0 + "," + y0; - } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) { - this._ += "L" + x0 + "," + y0; - } - if (!r) - return; - if (da < 0) - da = da % tau + tau; - if (da > tauEpsilon) { - this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x2 - dx) + "," + (y2 - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0); - } else if (da > epsilon) { - this._ += "A" + r + "," + r + ",0," + +(da >= pi) + "," + cw + "," + (this._x1 = x2 + r * Math.cos(a1)) + "," + (this._y1 = y2 + r * Math.sin(a1)); - } - }, - rect: function(x2, y2, w, h) { - this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2) + "h" + +w + "v" + +h + "h" + -w + "Z"; - }, - toString: function() { - return this._; - } -}; -var path_default = path; - -// node_modules/d3-sankey/node_modules/d3-shape/src/constant.js -function constant_default2(x2) { - return function constant2() { - return x2; - }; -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/math.js -var epsilon2 = 1e-12; -var pi2 = Math.PI; -var halfPi = pi2 / 2; -var tau2 = 2 * pi2; - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/linear.js -function Linear(context) { - this._context = context; -} -Linear.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._line || this._line !== 0 && this._point === 1) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2); - break; - case 1: - this._point = 2; - default: - this._context.lineTo(x2, y2); - break; - } - } -}; -function linear_default(context) { - return new Linear(context); -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/point.js -function x(p) { - return p[0]; -} -function y(p) { - return p[1]; -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/radial.js -var curveRadialLinear = curveRadial(linear_default); -function Radial(curve) { - this._curve = curve; -} -Radial.prototype = { - areaStart: function() { - this._curve.areaStart(); - }, - areaEnd: function() { - this._curve.areaEnd(); - }, - lineStart: function() { - this._curve.lineStart(); - }, - lineEnd: function() { - this._curve.lineEnd(); - }, - point: function(a2, r) { - this._curve.point(r * Math.sin(a2), r * -Math.cos(a2)); - } -}; -function curveRadial(curve) { - function radial(context) { - return new Radial(curve(context)); - } - radial._curve = curve; - return radial; -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/array.js -var slice2 = Array.prototype.slice; - -// node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js -function linkSource(d) { - return d.source; -} -function linkTarget(d) { - return d.target; -} -function link(curve) { - var source = linkSource, target = linkTarget, x2 = x, y2 = y, context = null; - function link2() { - var buffer, argv = slice2.call(arguments), s2 = source.apply(this, argv), t = target.apply(this, argv); - if (!context) - context = buffer = path_default(); - curve(context, +x2.apply(this, (argv[0] = s2, argv)), +y2.apply(this, argv), +x2.apply(this, (argv[0] = t, argv)), +y2.apply(this, argv)); - if (buffer) - return context = null, buffer + "" || null; - } - link2.source = function(_) { - return arguments.length ? (source = _, link2) : source; - }; - link2.target = function(_) { - return arguments.length ? (target = _, link2) : target; - }; - link2.x = function(_) { - return arguments.length ? (x2 = typeof _ === "function" ? _ : constant_default2(+_), link2) : x2; - }; - link2.y = function(_) { - return arguments.length ? (y2 = typeof _ === "function" ? _ : constant_default2(+_), link2) : y2; - }; - link2.context = function(_) { - return arguments.length ? (context = _ == null ? null : _, link2) : context; - }; - return link2; -} -function curveHorizontal(context, x0, y0, x1, y1) { - context.moveTo(x0, y0); - context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1); -} -function linkHorizontal() { - return link(curveHorizontal); -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/symbol/diamond.js -var tan30 = Math.sqrt(1 / 3); -var tan30_2 = tan30 * 2; - -// node_modules/d3-sankey/node_modules/d3-shape/src/symbol/star.js -var kr = Math.sin(pi2 / 10) / Math.sin(7 * pi2 / 10); -var kx = Math.sin(tau2 / 10) * kr; -var ky = -Math.cos(tau2 / 10) * kr; - -// node_modules/d3-sankey/node_modules/d3-shape/src/symbol/triangle.js -var sqrt3 = Math.sqrt(3); - -// node_modules/d3-sankey/node_modules/d3-shape/src/symbol/wye.js -var s = Math.sqrt(3) / 2; -var k = 1 / Math.sqrt(12); -var a = (k / 2 + 1) * 3; - -// node_modules/d3-sankey/node_modules/d3-shape/src/noop.js -function noop_default() { -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/basis.js -function point(that, x2, y2) { - that._context.bezierCurveTo( - (2 * that._x0 + that._x1) / 3, - (2 * that._y0 + that._y1) / 3, - (that._x0 + 2 * that._x1) / 3, - (that._y0 + 2 * that._y1) / 3, - (that._x0 + 4 * that._x1 + x2) / 6, - (that._y0 + 4 * that._y1 + y2) / 6 - ); -} -function Basis(context) { - this._context = context; -} -Basis.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._y0 = this._y1 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 3: - point(this, this._x1, this._y1); - case 2: - this._context.lineTo(this._x1, this._y1); - break; - } - if (this._line || this._line !== 0 && this._point === 1) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2); - break; - case 1: - this._point = 2; - break; - case 2: - this._point = 3; - this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); - default: - point(this, x2, y2); - break; - } - this._x0 = this._x1, this._x1 = x2; - this._y0 = this._y1, this._y1 = y2; - } -}; - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/basisClosed.js -function BasisClosed(context) { - this._context = context; -} -BasisClosed.prototype = { - areaStart: noop_default, - areaEnd: noop_default, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x2, this._y2); - this._context.closePath(); - break; - } - case 2: { - this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3); - this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x2, this._y2); - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - break; - } - } - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - this._x2 = x2, this._y2 = y2; - break; - case 1: - this._point = 2; - this._x3 = x2, this._y3 = y2; - break; - case 2: - this._point = 3; - this._x4 = x2, this._y4 = y2; - this._context.moveTo((this._x0 + 4 * this._x1 + x2) / 6, (this._y0 + 4 * this._y1 + y2) / 6); - break; - default: - point(this, x2, y2); - break; - } - this._x0 = this._x1, this._x1 = x2; - this._y0 = this._y1, this._y1 = y2; - } -}; - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/basisOpen.js -function BasisOpen(context) { - this._context = context; -} -BasisOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._y0 = this._y1 = NaN; - this._point = 0; - }, - lineEnd: function() { - if (this._line || this._line !== 0 && this._point === 3) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - break; - case 1: - this._point = 2; - break; - case 2: - this._point = 3; - var x0 = (this._x0 + 4 * this._x1 + x2) / 6, y0 = (this._y0 + 4 * this._y1 + y2) / 6; - this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); - break; - case 3: - this._point = 4; - default: - point(this, x2, y2); - break; - } - this._x0 = this._x1, this._x1 = x2; - this._y0 = this._y1, this._y1 = y2; - } -}; - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/bundle.js -function Bundle(context, beta) { - this._basis = new Basis(context); - this._beta = beta; -} -Bundle.prototype = { - lineStart: function() { - this._x = []; - this._y = []; - this._basis.lineStart(); - }, - lineEnd: function() { - var x2 = this._x, y2 = this._y, j = x2.length - 1; - if (j > 0) { - var x0 = x2[0], y0 = y2[0], dx = x2[j] - x0, dy = y2[j] - y0, i = -1, t; - while (++i <= j) { - t = i / j; - this._basis.point( - this._beta * x2[i] + (1 - this._beta) * (x0 + t * dx), - this._beta * y2[i] + (1 - this._beta) * (y0 + t * dy) - ); - } - } - this._x = this._y = null; - this._basis.lineEnd(); - }, - point: function(x2, y2) { - this._x.push(+x2); - this._y.push(+y2); - } -}; -var bundle_default = function custom(beta) { - function bundle(context) { - return beta === 1 ? new Basis(context) : new Bundle(context, beta); - } - bundle.beta = function(beta2) { - return custom(+beta2); - }; - return bundle; -}(0.85); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinal.js -function point2(that, x2, y2) { - that._context.bezierCurveTo( - that._x1 + that._k * (that._x2 - that._x0), - that._y1 + that._k * (that._y2 - that._y0), - that._x2 + that._k * (that._x1 - x2), - that._y2 + that._k * (that._y1 - y2), - that._x2, - that._y2 - ); -} -function Cardinal(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} -Cardinal.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: - this._context.lineTo(this._x2, this._y2); - break; - case 3: - point2(this, this._x1, this._y1); - break; - } - if (this._line || this._line !== 0 && this._point === 1) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2); - break; - case 1: - this._point = 2; - this._x1 = x2, this._y1 = y2; - break; - case 2: - this._point = 3; - default: - point2(this, x2, y2); - break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2; - } -}; -var cardinal_default = function custom2(tension) { - function cardinal(context) { - return new Cardinal(context, tension); - } - cardinal.tension = function(tension2) { - return custom2(+tension2); - }; - return cardinal; -}(0); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalClosed.js -function CardinalClosed(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} -CardinalClosed.prototype = { - areaStart: noop_default, - areaEnd: noop_default, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 2: { - this._context.lineTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - this.point(this._x5, this._y5); - break; - } - } - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - this._x3 = x2, this._y3 = y2; - break; - case 1: - this._point = 2; - this._context.moveTo(this._x4 = x2, this._y4 = y2); - break; - case 2: - this._point = 3; - this._x5 = x2, this._y5 = y2; - break; - default: - point2(this, x2, y2); - break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2; - } -}; -var cardinalClosed_default = function custom3(tension) { - function cardinal(context) { - return new CardinalClosed(context, tension); - } - cardinal.tension = function(tension2) { - return custom3(+tension2); - }; - return cardinal; -}(0); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalOpen.js -function CardinalOpen(context, tension) { - this._context = context; - this._k = (1 - tension) / 6; -} -CardinalOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; - this._point = 0; - }, - lineEnd: function() { - if (this._line || this._line !== 0 && this._point === 3) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - break; - case 1: - this._point = 2; - break; - case 2: - this._point = 3; - this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); - break; - case 3: - this._point = 4; - default: - point2(this, x2, y2); - break; - } - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2; - } -}; -var cardinalOpen_default = function custom4(tension) { - function cardinal(context) { - return new CardinalOpen(context, tension); - } - cardinal.tension = function(tension2) { - return custom4(+tension2); - }; - return cardinal; -}(0); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRom.js -function point3(that, x2, y2) { - var x1 = that._x1, y1 = that._y1, x22 = that._x2, y22 = that._y2; - if (that._l01_a > epsilon2) { - var a2 = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a); - x1 = (x1 * a2 - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n; - y1 = (y1 * a2 - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n; - } - if (that._l23_a > epsilon2) { - var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a); - x22 = (x22 * b + that._x1 * that._l23_2a - x2 * that._l12_2a) / m; - y22 = (y22 * b + that._y1 * that._l23_2a - y2 * that._l12_2a) / m; - } - that._context.bezierCurveTo(x1, y1, x22, y22, that._x2, that._y2); -} -function CatmullRom(context, alpha) { - this._context = context; - this._alpha = alpha; -} -CatmullRom.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; - this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: - this._context.lineTo(this._x2, this._y2); - break; - case 3: - this.point(this._x2, this._y2); - break; - } - if (this._line || this._line !== 0 && this._point === 1) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - if (this._point) { - var x23 = this._x2 - x2, y23 = this._y2 - y2; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - switch (this._point) { - case 0: - this._point = 1; - this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2); - break; - case 1: - this._point = 2; - break; - case 2: - this._point = 3; - default: - point3(this, x2, y2); - break; - } - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2; - } -}; -var catmullRom_default = function custom5(alpha) { - function catmullRom(context) { - return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0); - } - catmullRom.alpha = function(alpha2) { - return custom5(+alpha2); - }; - return catmullRom; -}(0.5); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomClosed.js -function CatmullRomClosed(context, alpha) { - this._context = context; - this._alpha = alpha; -} -CatmullRomClosed.prototype = { - areaStart: noop_default, - areaEnd: noop_default, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN; - this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 1: { - this._context.moveTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 2: { - this._context.lineTo(this._x3, this._y3); - this._context.closePath(); - break; - } - case 3: { - this.point(this._x3, this._y3); - this.point(this._x4, this._y4); - this.point(this._x5, this._y5); - break; - } - } - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - if (this._point) { - var x23 = this._x2 - x2, y23 = this._y2 - y2; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - switch (this._point) { - case 0: - this._point = 1; - this._x3 = x2, this._y3 = y2; - break; - case 1: - this._point = 2; - this._context.moveTo(this._x4 = x2, this._y4 = y2); - break; - case 2: - this._point = 3; - this._x5 = x2, this._y5 = y2; - break; - default: - point3(this, x2, y2); - break; - } - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2; - } -}; -var catmullRomClosed_default = function custom6(alpha) { - function catmullRom(context) { - return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0); - } - catmullRom.alpha = function(alpha2) { - return custom6(+alpha2); - }; - return catmullRom; -}(0.5); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomOpen.js -function CatmullRomOpen(context, alpha) { - this._context = context; - this._alpha = alpha; -} -CatmullRomOpen.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN; - this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0; - }, - lineEnd: function() { - if (this._line || this._line !== 0 && this._point === 3) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - if (this._point) { - var x23 = this._x2 - x2, y23 = this._y2 - y2; - this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha)); - } - switch (this._point) { - case 0: - this._point = 1; - break; - case 1: - this._point = 2; - break; - case 2: - this._point = 3; - this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); - break; - case 3: - this._point = 4; - default: - point3(this, x2, y2); - break; - } - this._l01_a = this._l12_a, this._l12_a = this._l23_a; - this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a; - this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2; - this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2; - } -}; -var catmullRomOpen_default = function custom7(alpha) { - function catmullRom(context) { - return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0); - } - catmullRom.alpha = function(alpha2) { - return custom7(+alpha2); - }; - return catmullRom; -}(0.5); - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/linearClosed.js -function LinearClosed(context) { - this._context = context; -} -LinearClosed.prototype = { - areaStart: noop_default, - areaEnd: noop_default, - lineStart: function() { - this._point = 0; - }, - lineEnd: function() { - if (this._point) - this._context.closePath(); - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - if (this._point) - this._context.lineTo(x2, y2); - else - this._point = 1, this._context.moveTo(x2, y2); - } -}; - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/monotone.js -function sign(x2) { - return x2 < 0 ? -1 : 1; -} -function slope3(that, x2, y2) { - var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1); - return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0; -} -function slope2(that, t) { - var h = that._x1 - that._x0; - return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t; -} -function point4(that, t0, t1) { - var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3; - that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1); -} -function MonotoneX(context) { - this._context = context; -} -MonotoneX.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN; - this._point = 0; - }, - lineEnd: function() { - switch (this._point) { - case 2: - this._context.lineTo(this._x1, this._y1); - break; - case 3: - point4(this, this._t0, slope2(this, this._t0)); - break; - } - if (this._line || this._line !== 0 && this._point === 1) - this._context.closePath(); - this._line = 1 - this._line; - }, - point: function(x2, y2) { - var t1 = NaN; - x2 = +x2, y2 = +y2; - if (x2 === this._x1 && y2 === this._y1) - return; - switch (this._point) { - case 0: - this._point = 1; - this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2); - break; - case 1: - this._point = 2; - break; - case 2: - this._point = 3; - point4(this, slope2(this, t1 = slope3(this, x2, y2)), t1); - break; - default: - point4(this, this._t0, t1 = slope3(this, x2, y2)); - break; - } - this._x0 = this._x1, this._x1 = x2; - this._y0 = this._y1, this._y1 = y2; - this._t0 = t1; - } -}; -function MonotoneY(context) { - this._context = new ReflectContext(context); -} -(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x2, y2) { - MonotoneX.prototype.point.call(this, y2, x2); -}; -function ReflectContext(context) { - this._context = context; -} -ReflectContext.prototype = { - moveTo: function(x2, y2) { - this._context.moveTo(y2, x2); - }, - closePath: function() { - this._context.closePath(); - }, - lineTo: function(x2, y2) { - this._context.lineTo(y2, x2); - }, - bezierCurveTo: function(x1, y1, x2, y2, x3, y3) { - this._context.bezierCurveTo(y1, x1, y2, x2, y3, x3); - } -}; - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/natural.js -function Natural(context) { - this._context = context; -} -Natural.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = []; - this._y = []; - }, - lineEnd: function() { - var x2 = this._x, y2 = this._y, n = x2.length; - if (n) { - this._line ? this._context.lineTo(x2[0], y2[0]) : this._context.moveTo(x2[0], y2[0]); - if (n === 2) { - this._context.lineTo(x2[1], y2[1]); - } else { - var px = controlPoints(x2), py = controlPoints(y2); - for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) { - this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x2[i1], y2[i1]); - } - } - } - if (this._line || this._line !== 0 && n === 1) - this._context.closePath(); - this._line = 1 - this._line; - this._x = this._y = null; - }, - point: function(x2, y2) { - this._x.push(+x2); - this._y.push(+y2); - } -}; -function controlPoints(x2) { - var i, n = x2.length - 1, m, a2 = new Array(n), b = new Array(n), r = new Array(n); - a2[0] = 0, b[0] = 2, r[0] = x2[0] + 2 * x2[1]; - for (i = 1; i < n - 1; ++i) - a2[i] = 1, b[i] = 4, r[i] = 4 * x2[i] + 2 * x2[i + 1]; - a2[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x2[n - 1] + x2[n]; - for (i = 1; i < n; ++i) - m = a2[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1]; - a2[n - 1] = r[n - 1] / b[n - 1]; - for (i = n - 2; i >= 0; --i) - a2[i] = (r[i] - a2[i + 1]) / b[i]; - b[n - 1] = (x2[n] + a2[n - 1]) / 2; - for (i = 0; i < n - 1; ++i) - b[i] = 2 * x2[i + 1] - a2[i + 1]; - return [a2, b]; -} - -// node_modules/d3-sankey/node_modules/d3-shape/src/curve/step.js -function Step(context, t) { - this._context = context; - this._t = t; -} -Step.prototype = { - areaStart: function() { - this._line = 0; - }, - areaEnd: function() { - this._line = NaN; - }, - lineStart: function() { - this._x = this._y = NaN; - this._point = 0; - }, - lineEnd: function() { - if (0 < this._t && this._t < 1 && this._point === 2) - this._context.lineTo(this._x, this._y); - if (this._line || this._line !== 0 && this._point === 1) - this._context.closePath(); - if (this._line >= 0) - this._t = 1 - this._t, this._line = 1 - this._line; - }, - point: function(x2, y2) { - x2 = +x2, y2 = +y2; - switch (this._point) { - case 0: - this._point = 1; - this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2); - break; - case 1: - this._point = 2; - default: { - if (this._t <= 0) { - this._context.lineTo(this._x, y2); - this._context.lineTo(x2, y2); - } else { - var x1 = this._x * (1 - this._t) + x2 * this._t; - this._context.lineTo(x1, this._y); - this._context.lineTo(x1, y2); - } - break; - } - } - this._x = x2, this._y = y2; - } -}; - -// node_modules/d3-sankey/src/sankeyLinkHorizontal.js -function horizontalSource(d) { - return [d.source.x1, d.y0]; -} -function horizontalTarget(d) { - return [d.target.x0, d.y1]; -} -function sankeyLinkHorizontal_default() { - return linkHorizontal().source(horizontalSource).target(horizontalTarget); -} - -// node_modules/mermaid/dist/sankeyDiagram-6db3d513.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k2, v, o2, l) { - for (o2 = o2 || {}, l = k2.length; l--; o2[k2[l]] = v) - ; - return o2; - }, $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "SANKEY": 4, "NEWLINE": 5, "csv": 6, "opt_eof": 7, "record": 8, "csv_tail": 9, "EOF": 10, "field[source]": 11, "COMMA": 12, "field[target]": 13, "field[value]": 14, "field": 15, "escaped": 16, "non_escaped": 17, "DQUOTE": 18, "ESCAPED_TEXT": 19, "NON_ESCAPED_TEXT": 20, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "SANKEY", 5: "NEWLINE", 10: "EOF", 11: "field[source]", 12: "COMMA", 13: "field[target]", 14: "field[value]", 18: "DQUOTE", 19: "ESCAPED_TEXT", 20: "NON_ESCAPED_TEXT" }, - productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 7: - const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('""', '"')); - const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('""', '"')); - const value2 = parseFloat($$[$0].trim()); - yy.addLink(source, target, value2); - break; - case 8: - case 9: - case 11: - this.$ = $$[$0]; - break; - case 10: - this.$ = $$[$0 - 1]; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])], - defaultActions: { 11: [2, 1], 12: [2, 5] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k2 in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k2)) { - sharedState.yy[k2] = this.yy[k2]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k2 in backup) { - this[k2] = backup[k2]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index2; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index2 = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index2]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "easy_keword_rules": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - this.pushState("csv"); - return 4; - case 1: - return 10; - case 2: - return 5; - case 3: - return 12; - case 4: - this.pushState("escaped_text"); - return 18; - case 5: - return 20; - case 6: - this.popState("escaped_text"); - return 18; - case 7: - return 19; - } - }, - rules: [/^(?:sankey-beta\b)/, /^(?:$)/, /^(?:((\u000D\u000A)|(\u000A)))/, /^(?:(\u002C))/, /^(?:(\u0022))/, /^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/, /^(?:(\u0022)(?!(\u0022)))/, /^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/], - conditions: { "csv": { "rules": [1, 2, 3, 4, 5, 6, 7], "inclusive": false }, "escaped_text": { "rules": [6, 7], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var links = []; -var nodes = []; -var nodesMap = {}; -var clear2 = () => { - links = []; - nodes = []; - nodesMap = {}; - clear(); -}; -var SankeyLink = class { - constructor(source, target, value2 = 0) { - this.source = source; - this.target = target; - this.value = value2; - } -}; -var addLink = (source, target, value2) => { - links.push(new SankeyLink(source, target, value2)); -}; -var SankeyNode = class { - constructor(ID) { - this.ID = ID; - } -}; -var findOrCreateNode = (ID) => { - ID = common$1.sanitizeText(ID, getConfig()); - if (!nodesMap[ID]) { - nodesMap[ID] = new SankeyNode(ID); - nodes.push(nodesMap[ID]); - } - return nodesMap[ID]; -}; -var getNodes = () => nodes; -var getLinks = () => links; -var getGraph = () => ({ - nodes: nodes.map((node) => ({ id: node.ID })), - links: links.map((link2) => ({ - source: link2.source.ID, - target: link2.target.ID, - value: link2.value - })) -}); -var db = { - nodesMap, - getConfig: () => getConfig().sankey, - getNodes, - getLinks, - getGraph, - addLink, - findOrCreateNode, - getAccTitle, - setAccTitle, - getAccDescription, - setAccDescription, - getDiagramTitle, - setDiagramTitle, - clear: clear2 -}; -var _Uid = class _Uid2 { - static next(name) { - return new _Uid2(name + ++_Uid2.count); - } - constructor(id) { - this.id = id; - this.href = `#${id}`; - } - toString() { - return "url(" + this.href + ")"; - } -}; -_Uid.count = 0; -var Uid = _Uid; -var alignmentsMap = { - left, - right, - center, - justify -}; -var draw = function(text, id, _version, diagObj) { - const { securityLevel, sankey: conf } = getConfig(); - const defaultSankeyConfig = defaultConfig.sankey; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select_default(`[id="${id}"]`); - const width = (conf == null ? void 0 : conf.width) ?? defaultSankeyConfig.width; - const height = (conf == null ? void 0 : conf.height) ?? defaultSankeyConfig.width; - const useMaxWidth = (conf == null ? void 0 : conf.useMaxWidth) ?? defaultSankeyConfig.useMaxWidth; - const nodeAlignment = (conf == null ? void 0 : conf.nodeAlignment) ?? defaultSankeyConfig.nodeAlignment; - const prefix = (conf == null ? void 0 : conf.prefix) ?? defaultSankeyConfig.prefix; - const suffix = (conf == null ? void 0 : conf.suffix) ?? defaultSankeyConfig.suffix; - const showValues = (conf == null ? void 0 : conf.showValues) ?? defaultSankeyConfig.showValues; - configureSvgSize(svg, height, width, useMaxWidth); - const graph = diagObj.db.getGraph(); - const nodeAlign = alignmentsMap[nodeAlignment]; - const nodeWidth = 10; - const sankey$1 = Sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([ - [0, 0], - [width, height] - ]); - sankey$1(graph); - const colorScheme = ordinal(Tableau10_default); - svg.append("g").attr("class", "nodes").selectAll(".node").data(graph.nodes).join("g").attr("class", "node").attr("id", (d) => (d.uid = Uid.next("node-")).id).attr("transform", function(d) { - return "translate(" + d.x0 + "," + d.y0 + ")"; - }).attr("x", (d) => d.x0).attr("y", (d) => d.y0).append("rect").attr("height", (d) => { - return d.y1 - d.y0; - }).attr("width", (d) => d.x1 - d.x0).attr("fill", (d) => colorScheme(d.id)); - const getText = ({ id: id2, value: value2 }) => { - if (!showValues) { - return id2; - } - return `${id2} -${prefix}${Math.round(value2 * 100) / 100}${suffix}`; - }; - svg.append("g").attr("class", "node-labels").attr("font-family", "sans-serif").attr("font-size", 14).selectAll("text").data(graph.nodes).join("text").attr("x", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr("y", (d) => (d.y1 + d.y0) / 2).attr("dy", `${showValues ? "0" : "0.35"}em`).attr("text-anchor", (d) => d.x0 < width / 2 ? "start" : "end").text(getText); - const link2 = svg.append("g").attr("class", "links").attr("fill", "none").attr("stroke-opacity", 0.5).selectAll(".link").data(graph.links).join("g").attr("class", "link").style("mix-blend-mode", "multiply"); - const linkColor = (conf == null ? void 0 : conf.linkColor) || "gradient"; - if (linkColor === "gradient") { - const gradient = link2.append("linearGradient").attr("id", (d) => (d.uid = Uid.next("linearGradient-")).id).attr("gradientUnits", "userSpaceOnUse").attr("x1", (d) => d.source.x1).attr("x2", (d) => d.target.x0); - gradient.append("stop").attr("offset", "0%").attr("stop-color", (d) => colorScheme(d.source.id)); - gradient.append("stop").attr("offset", "100%").attr("stop-color", (d) => colorScheme(d.target.id)); - } - let coloring; - switch (linkColor) { - case "gradient": - coloring = (d) => d.uid; - break; - case "source": - coloring = (d) => colorScheme(d.source.id); - break; - case "target": - coloring = (d) => colorScheme(d.target.id); - break; - default: - coloring = linkColor; - } - link2.append("path").attr("d", sankeyLinkHorizontal_default()).attr("stroke", coloring).attr("stroke-width", (d) => Math.max(1, d.width)); -}; -var renderer = { - draw -}; -var prepareTextForParsing = (text) => { - const textToParse = text.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g, "").replaceAll(/([\n\r])+/g, "\n").trim(); - return textToParse; -}; -var originalParse = parser$1.parse.bind(parser$1); -parser$1.parse = (text) => originalParse(prepareTextForParsing(text)); -var diagram = { - parser: parser$1, - db, - renderer -}; -export { - diagram -}; -//# sourceMappingURL=sankeyDiagram-6db3d513-EPD5B7EB.js.map diff --git a/.vuepress/.cache/deps/sankeyDiagram-6db3d513-EPD5B7EB.js.map b/.vuepress/.cache/deps/sankeyDiagram-6db3d513-EPD5B7EB.js.map deleted file mode 100644 index 4ea8d14c3..000000000 --- a/.vuepress/.cache/deps/sankeyDiagram-6db3d513-EPD5B7EB.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/d3-sankey/node_modules/d3-array/src/ascending.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/bisector.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/number.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/bisect.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/array.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/ticks.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/max.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/min.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/shuffle.js", "../../../../node_modules/d3-sankey/node_modules/d3-array/src/sum.js", "../../../../node_modules/d3-sankey/src/align.js", "../../../../node_modules/d3-sankey/src/constant.js", "../../../../node_modules/d3-sankey/src/sankey.js", "../../../../node_modules/d3-sankey/node_modules/d3-path/src/path.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/constant.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/math.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/linear.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/point.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/radial.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/array.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/symbol/diamond.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/symbol/star.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/symbol/triangle.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/symbol/wye.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/noop.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/basis.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/basisClosed.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/basisOpen.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/bundle.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinal.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalClosed.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/cardinalOpen.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRom.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomClosed.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/catmullRomOpen.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/linearClosed.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/monotone.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/natural.js", "../../../../node_modules/d3-sankey/node_modules/d3-shape/src/curve/step.js", "../../../../node_modules/d3-sankey/src/sankeyLinkHorizontal.js", "../../../../node_modules/mermaid/dist/sankeyDiagram-6db3d513.js"], - "sourcesContent": ["export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n", "export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n", "import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n", "var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n", "var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n", "export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n", "export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n", "export default shuffler(Math.random);\n\nexport function shuffler(random) {\n return function shuffle(array, i0 = 0, i1 = array.length) {\n let m = i1 - (i0 = +i0);\n while (m) {\n const i = random() * m-- | 0, t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n return array;\n };\n}\n", "export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n", "import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n", "export default function constant(x) {\n return function() {\n return x;\n };\n}\n", "import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n", "var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n", "export default function(x) {\n return function constant() {\n return x;\n };\n}\n", "export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n", "function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n", "export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n", "import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n", "export var slice = Array.prototype.slice;\n", "import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n", "var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n", "import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n", "var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n", "var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n", "export default function() {}\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n", "import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n", "import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n", "import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n", "export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n", "import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n", "import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n", "function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n", "function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n", "function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n", "import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n", "import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, r as getDiagramTitle, q as setDiagramTitle, t as clear$1, e as common, I as defaultConfig, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport { select, scaleOrdinal, schemeTableau10 } from \"d3\";\nimport { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from \"d3-sankey\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SANKEY\": 4, \"NEWLINE\": 5, \"csv\": 6, \"opt_eof\": 7, \"record\": 8, \"csv_tail\": 9, \"EOF\": 10, \"field[source]\": 11, \"COMMA\": 12, \"field[target]\": 13, \"field[value]\": 14, \"field\": 15, \"escaped\": 16, \"non_escaped\": 17, \"DQUOTE\": 18, \"ESCAPED_TEXT\": 19, \"NON_ESCAPED_TEXT\": 20, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SANKEY\", 5: \"NEWLINE\", 10: \"EOF\", 11: \"field[source]\", 12: \"COMMA\", 13: \"field[target]\", 14: \"field[value]\", 18: \"DQUOTE\", 19: \"ESCAPED_TEXT\", 20: \"NON_ESCAPED_TEXT\" },\n productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 7:\n const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('\"\"', '\"'));\n const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('\"\"', '\"'));\n const value = parseFloat($$[$0].trim());\n yy.addLink(source, target, value);\n break;\n case 8:\n case 9:\n case 11:\n this.$ = $$[$0];\n break;\n case 10:\n this.$ = $$[$0 - 1];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])],\n defaultActions: { 11: [2, 1], 12: [2, 5] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"easy_keword_rules\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n this.pushState(\"csv\");\n return 4;\n case 1:\n return 10;\n case 2:\n return 5;\n case 3:\n return 12;\n case 4:\n this.pushState(\"escaped_text\");\n return 18;\n case 5:\n return 20;\n case 6:\n this.popState(\"escaped_text\");\n return 18;\n case 7:\n return 19;\n }\n },\n rules: [/^(?:sankey-beta\\b)/, /^(?:$)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:(\\u002C))/, /^(?:(\\u0022))/, /^(?:([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])*)/, /^(?:(\\u0022)(?!(\\u0022)))/, /^(?:(([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])|(\\u002C)|(\\u000D)|(\\u000A)|(\\u0022)(\\u0022))*)/],\n conditions: { \"csv\": { \"rules\": [1, 2, 3, 4, 5, 6, 7], \"inclusive\": false }, \"escaped_text\": { \"rules\": [6, 7], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet links = [];\nlet nodes = [];\nlet nodesMap = {};\nconst clear = () => {\n links = [];\n nodes = [];\n nodesMap = {};\n clear$1();\n};\nclass SankeyLink {\n constructor(source, target, value = 0) {\n this.source = source;\n this.target = target;\n this.value = value;\n }\n}\nconst addLink = (source, target, value) => {\n links.push(new SankeyLink(source, target, value));\n};\nclass SankeyNode {\n constructor(ID) {\n this.ID = ID;\n }\n}\nconst findOrCreateNode = (ID) => {\n ID = common.sanitizeText(ID, getConfig());\n if (!nodesMap[ID]) {\n nodesMap[ID] = new SankeyNode(ID);\n nodes.push(nodesMap[ID]);\n }\n return nodesMap[ID];\n};\nconst getNodes = () => nodes;\nconst getLinks = () => links;\nconst getGraph = () => ({\n nodes: nodes.map((node) => ({ id: node.ID })),\n links: links.map((link) => ({\n source: link.source.ID,\n target: link.target.ID,\n value: link.value\n }))\n});\nconst db = {\n nodesMap,\n getConfig: () => getConfig().sankey,\n getNodes,\n getLinks,\n getGraph,\n addLink,\n findOrCreateNode,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n getDiagramTitle,\n setDiagramTitle,\n clear\n};\nconst _Uid = class _Uid2 {\n static next(name) {\n return new _Uid2(name + ++_Uid2.count);\n }\n constructor(id) {\n this.id = id;\n this.href = `#${id}`;\n }\n toString() {\n return \"url(\" + this.href + \")\";\n }\n};\n_Uid.count = 0;\nlet Uid = _Uid;\nconst alignmentsMap = {\n left: sankeyLeft,\n right: sankeyRight,\n center: sankeyCenter,\n justify: sankeyJustify\n};\nconst draw = function(text, id, _version, diagObj) {\n const { securityLevel, sankey: conf } = getConfig();\n const defaultSankeyConfig = defaultConfig.sankey;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const width = (conf == null ? void 0 : conf.width) ?? defaultSankeyConfig.width;\n const height = (conf == null ? void 0 : conf.height) ?? defaultSankeyConfig.width;\n const useMaxWidth = (conf == null ? void 0 : conf.useMaxWidth) ?? defaultSankeyConfig.useMaxWidth;\n const nodeAlignment = (conf == null ? void 0 : conf.nodeAlignment) ?? defaultSankeyConfig.nodeAlignment;\n const prefix = (conf == null ? void 0 : conf.prefix) ?? defaultSankeyConfig.prefix;\n const suffix = (conf == null ? void 0 : conf.suffix) ?? defaultSankeyConfig.suffix;\n const showValues = (conf == null ? void 0 : conf.showValues) ?? defaultSankeyConfig.showValues;\n configureSvgSize(svg, height, width, useMaxWidth);\n const graph = diagObj.db.getGraph();\n const nodeAlign = alignmentsMap[nodeAlignment];\n const nodeWidth = 10;\n const sankey$1 = sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([\n [0, 0],\n [width, height]\n ]);\n sankey$1(graph);\n const colorScheme = scaleOrdinal(schemeTableau10);\n svg.append(\"g\").attr(\"class\", \"nodes\").selectAll(\".node\").data(graph.nodes).join(\"g\").attr(\"class\", \"node\").attr(\"id\", (d) => (d.uid = Uid.next(\"node-\")).id).attr(\"transform\", function(d) {\n return \"translate(\" + d.x0 + \",\" + d.y0 + \")\";\n }).attr(\"x\", (d) => d.x0).attr(\"y\", (d) => d.y0).append(\"rect\").attr(\"height\", (d) => {\n return d.y1 - d.y0;\n }).attr(\"width\", (d) => d.x1 - d.x0).attr(\"fill\", (d) => colorScheme(d.id));\n const getText = ({ id: id2, value }) => {\n if (!showValues) {\n return id2;\n }\n return `${id2}\n${prefix}${Math.round(value * 100) / 100}${suffix}`;\n };\n svg.append(\"g\").attr(\"class\", \"node-labels\").attr(\"font-family\", \"sans-serif\").attr(\"font-size\", 14).selectAll(\"text\").data(graph.nodes).join(\"text\").attr(\"x\", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr(\"y\", (d) => (d.y1 + d.y0) / 2).attr(\"dy\", `${showValues ? \"0\" : \"0.35\"}em`).attr(\"text-anchor\", (d) => d.x0 < width / 2 ? \"start\" : \"end\").text(getText);\n const link = svg.append(\"g\").attr(\"class\", \"links\").attr(\"fill\", \"none\").attr(\"stroke-opacity\", 0.5).selectAll(\".link\").data(graph.links).join(\"g\").attr(\"class\", \"link\").style(\"mix-blend-mode\", \"multiply\");\n const linkColor = (conf == null ? void 0 : conf.linkColor) || \"gradient\";\n if (linkColor === \"gradient\") {\n const gradient = link.append(\"linearGradient\").attr(\"id\", (d) => (d.uid = Uid.next(\"linearGradient-\")).id).attr(\"gradientUnits\", \"userSpaceOnUse\").attr(\"x1\", (d) => d.source.x1).attr(\"x2\", (d) => d.target.x0);\n gradient.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", (d) => colorScheme(d.source.id));\n gradient.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", (d) => colorScheme(d.target.id));\n }\n let coloring;\n switch (linkColor) {\n case \"gradient\":\n coloring = (d) => d.uid;\n break;\n case \"source\":\n coloring = (d) => colorScheme(d.source.id);\n break;\n case \"target\":\n coloring = (d) => colorScheme(d.target.id);\n break;\n default:\n coloring = linkColor;\n }\n link.append(\"path\").attr(\"d\", sankeyLinkHorizontal()).attr(\"stroke\", coloring).attr(\"stroke-width\", (d) => Math.max(1, d.width));\n};\nconst renderer = {\n draw\n};\nconst prepareTextForParsing = (text) => {\n const textToParse = text.replaceAll(/^[^\\S\\n\\r]+|[^\\S\\n\\r]+$/g, \"\").replaceAll(/([\\n\\r])+/g, \"\\n\").trim();\n return textToParse;\n};\nconst originalParse = parser$1.parse.bind(parser$1);\nparser$1.parse = (text) => originalParse(prepareTextForParsing(text));\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n"], - "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAe,SAAR,kBAAiBA,IAAG,GAAG;AAC5B,SAAOA,KAAI,IAAI,KAAKA,KAAI,IAAI,IAAIA,MAAK,IAAI,IAAI;AAC/C;;;ACAe,SAAR,iBAAiB,GAAG;AACzB,MAAI,QAAQ;AACZ,MAAI,UAAU;AAEd,MAAI,EAAE,WAAW,GAAG;AAClB,YAAQ,CAAC,GAAGC,OAAM,EAAE,CAAC,IAAIA;AACzB,cAAU,oBAAoB,CAAC;AAAA,EACjC;AAEA,WAASC,MAAKC,IAAGF,IAAG,IAAI,IAAI;AAC1B,QAAI,MAAM;AAAM,WAAK;AACrB,QAAI,MAAM;AAAM,WAAKE,GAAE;AACvB,WAAO,KAAK,IAAI;AACd,YAAM,MAAO,KAAK,OAAQ;AAC1B,UAAI,QAAQA,GAAE,GAAG,GAAGF,EAAC,IAAI;AAAG,aAAK,MAAM;AAAA;AAClC,aAAK;AAAA,IACZ;AACA,WAAO;AAAA,EACT;AAEA,WAASG,OAAMD,IAAGF,IAAG,IAAI,IAAI;AAC3B,QAAI,MAAM;AAAM,WAAK;AACrB,QAAI,MAAM;AAAM,WAAKE,GAAE;AACvB,WAAO,KAAK,IAAI;AACd,YAAM,MAAO,KAAK,OAAQ;AAC1B,UAAI,QAAQA,GAAE,GAAG,GAAGF,EAAC,IAAI;AAAG,aAAK;AAAA;AAC5B,aAAK,MAAM;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAEA,WAASI,QAAOF,IAAGF,IAAG,IAAI,IAAI;AAC5B,QAAI,MAAM;AAAM,WAAK;AACrB,QAAI,MAAM;AAAM,WAAKE,GAAE;AACvB,UAAM,IAAID,MAAKC,IAAGF,IAAG,IAAI,KAAK,CAAC;AAC/B,WAAO,IAAI,MAAM,MAAME,GAAE,IAAI,CAAC,GAAGF,EAAC,IAAI,CAAC,MAAME,GAAE,CAAC,GAAGF,EAAC,IAAI,IAAI,IAAI;AAAA,EAClE;AAEA,SAAO,EAAC,MAAAC,OAAM,QAAAG,SAAQ,OAAAD,OAAK;AAC7B;AAEA,SAAS,oBAAoB,GAAG;AAC9B,SAAO,CAAC,GAAGH,OAAM,kBAAU,EAAE,CAAC,GAAGA,EAAC;AACpC;;;AC7Ce,SAAR,eAAiBK,IAAG;AACzB,SAAOA,OAAM,OAAO,MAAM,CAACA;AAC7B;;;ACEA,IAAM,kBAAkB,iBAAS,iBAAS;AACnC,IAAM,cAAc,gBAAgB;AACpC,IAAM,aAAa,gBAAgB;AACnC,IAAM,eAAe,iBAAS,cAAM,EAAE;;;ACP7C,IAAI,QAAQ,MAAM;AAEX,IAAI,QAAQ,MAAM;AAClB,IAAI,MAAM,MAAM;;;ACHvB,IAAI,MAAM,KAAK,KAAK,EAAE;AAAtB,IACI,KAAK,KAAK,KAAK,EAAE;AADrB,IAEI,KAAK,KAAK,KAAK,CAAC;;;ACFL,SAAR,IAAqB,QAAQ,SAAS;AAC3C,MAAIC;AACJ,MAAI,YAAY,QAAW;AACzB,eAAWC,UAAS,QAAQ;AAC1B,UAAIA,UAAS,SACLD,OAAMC,UAAUD,SAAQ,UAAaC,UAASA,SAAS;AAC7D,QAAAD,OAAMC;AAAA,MACR;AAAA,IACF;AAAA,EACF,OAAO;AACL,QAAIC,SAAQ;AACZ,aAASD,UAAS,QAAQ;AACxB,WAAKA,SAAQ,QAAQA,QAAO,EAAEC,QAAO,MAAM,MAAM,SACzCF,OAAMC,UAAUD,SAAQ,UAAaC,UAASA,SAAS;AAC7D,QAAAD,OAAMC;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAOD;AACT;;;ACnBe,SAAR,IAAqB,QAAQ,SAAS;AAC3C,MAAIG;AACJ,MAAI,YAAY,QAAW;AACzB,eAAWC,UAAS,QAAQ;AAC1B,UAAIA,UAAS,SACLD,OAAMC,UAAUD,SAAQ,UAAaC,UAASA,SAAS;AAC7D,QAAAD,OAAMC;AAAA,MACR;AAAA,IACF;AAAA,EACF,OAAO;AACL,QAAIC,SAAQ;AACZ,aAASD,UAAS,QAAQ;AACxB,WAAKA,SAAQ,QAAQA,QAAO,EAAEC,QAAO,MAAM,MAAM,SACzCF,OAAMC,UAAUD,SAAQ,UAAaC,UAASA,SAAS;AAC7D,QAAAD,OAAMC;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAOD;AACT;;;ACnBA,IAAO,kBAAQ,SAAS,KAAK,MAAM;AAE5B,SAAS,SAAS,QAAQ;AAC/B,SAAO,SAAS,QAAQG,QAAO,KAAK,GAAG,KAAKA,OAAM,QAAQ;AACxD,QAAI,IAAI,MAAM,KAAK,CAAC;AACpB,WAAO,GAAG;AACR,YAAM,IAAI,OAAO,IAAI,MAAM,GAAG,IAAIA,OAAM,IAAI,EAAE;AAC9C,MAAAA,OAAM,IAAI,EAAE,IAAIA,OAAM,IAAI,EAAE;AAC5B,MAAAA,OAAM,IAAI,EAAE,IAAI;AAAA,IAClB;AACA,WAAOA;AAAA,EACT;AACF;;;ACZe,SAAR,IAAqB,QAAQ,SAAS;AAC3C,MAAIC,OAAM;AACV,MAAI,YAAY,QAAW;AACzB,aAASC,UAAS,QAAQ;AACxB,UAAIA,SAAQ,CAACA,QAAO;AAClB,QAAAD,QAAOC;AAAA,MACT;AAAA,IACF;AAAA,EACF,OAAO;AACL,QAAIC,SAAQ;AACZ,aAASD,UAAS,QAAQ;AACxB,UAAIA,SAAQ,CAAC,QAAQA,QAAO,EAAEC,QAAO,MAAM,GAAG;AAC5C,QAAAF,QAAOC;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,SAAOD;AACT;;;ACfA,SAAS,YAAY,GAAG;AACtB,SAAO,EAAE,OAAO;AAClB;AAEO,SAAS,KAAK,MAAM;AACzB,SAAO,KAAK;AACd;AAEO,SAAS,MAAM,MAAM,GAAG;AAC7B,SAAO,IAAI,IAAI,KAAK;AACtB;AAEO,SAAS,QAAQ,MAAM,GAAG;AAC/B,SAAO,KAAK,YAAY,SAAS,KAAK,QAAQ,IAAI;AACpD;AAEO,SAAS,OAAO,MAAM;AAC3B,SAAO,KAAK,YAAY,SAAS,KAAK,QAChC,KAAK,YAAY,SAAS,IAAI,KAAK,aAAa,WAAW,IAAI,IAC/D;AACR;;;ACtBe,SAAR,SAA0BG,IAAG;AAClC,SAAO,WAAW;AAChB,WAAOA;AAAA,EACT;AACF;;;ACAA,SAAS,uBAAuBC,IAAG,GAAG;AACpC,SAAO,iBAAiBA,GAAE,QAAQ,EAAE,MAAM,KAAKA,GAAE,QAAQ,EAAE;AAC7D;AAEA,SAAS,uBAAuBA,IAAG,GAAG;AACpC,SAAO,iBAAiBA,GAAE,QAAQ,EAAE,MAAM,KAAKA,GAAE,QAAQ,EAAE;AAC7D;AAEA,SAAS,iBAAiBA,IAAG,GAAG;AAC9B,SAAOA,GAAE,KAAK,EAAE;AAClB;AAEA,SAAS,MAAM,GAAG;AAChB,SAAO,EAAE;AACX;AAEA,SAAS,UAAU,GAAG;AACpB,SAAO,EAAE;AACX;AAEA,SAAS,aAAa,OAAO;AAC3B,SAAO,MAAM;AACf;AAEA,SAAS,aAAa,OAAO;AAC3B,SAAO,MAAM;AACf;AAEA,SAAS,KAAK,UAAU,IAAI;AAC1B,QAAM,OAAO,SAAS,IAAI,EAAE;AAC5B,MAAI,CAAC;AAAM,UAAM,IAAI,MAAM,cAAc,EAAE;AAC3C,SAAO;AACT;AAEA,SAAS,oBAAoB,EAAC,OAAAC,OAAK,GAAG;AACpC,aAAW,QAAQA,QAAO;AACxB,QAAI,KAAK,KAAK;AACd,QAAI,KAAK;AACT,eAAWC,SAAQ,KAAK,aAAa;AACnC,MAAAA,MAAK,KAAK,KAAKA,MAAK,QAAQ;AAC5B,YAAMA,MAAK;AAAA,IACb;AACA,eAAWA,SAAQ,KAAK,aAAa;AACnC,MAAAA,MAAK,KAAK,KAAKA,MAAK,QAAQ;AAC5B,YAAMA,MAAK;AAAA,IACb;AAAA,EACF;AACF;AAEe,SAAR,SAA0B;AAC/B,MAAI,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK;AACjC,MAAI,KAAK;AACT,MAAI,KAAK,GAAG;AACZ,MAAI,KAAK;AACT,MAAI,QAAQ;AACZ,MAAIC;AACJ,MAAI;AACJ,MAAIF,SAAQ;AACZ,MAAIG,SAAQ;AACZ,MAAI,aAAa;AAEjB,WAAS,SAAS;AAChB,UAAM,QAAQ,EAAC,OAAOH,OAAM,MAAM,MAAM,SAAS,GAAG,OAAOG,OAAM,MAAM,MAAM,SAAS,EAAC;AACvF,qBAAiB,KAAK;AACtB,sBAAkB,KAAK;AACvB,sBAAkB,KAAK;AACvB,uBAAmB,KAAK;AACxB,wBAAoB,KAAK;AACzB,wBAAoB,KAAK;AACzB,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,SAAS,OAAO;AAC9B,wBAAoB,KAAK;AACzB,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,SAAS,GAAG;AAC1B,WAAO,UAAU,UAAU,KAAK,OAAO,MAAM,aAAa,IAAI,SAAS,CAAC,GAAG,UAAU;AAAA,EACvF;AAEA,SAAO,YAAY,SAAS,GAAG;AAC7B,WAAO,UAAU,UAAU,QAAQ,OAAO,MAAM,aAAa,IAAI,SAAS,CAAC,GAAG,UAAU;AAAA,EAC1F;AAEA,SAAO,WAAW,SAAS,GAAG;AAC5B,WAAO,UAAU,UAAUD,QAAO,GAAG,UAAUA;AAAA,EACjD;AAEA,SAAO,YAAY,SAAS,GAAG;AAC7B,WAAO,UAAU,UAAU,KAAK,CAAC,GAAG,UAAU;AAAA,EAChD;AAEA,SAAO,cAAc,SAAS,GAAG;AAC/B,WAAO,UAAU,UAAU,KAAK,KAAK,CAAC,GAAG,UAAU;AAAA,EACrD;AAEA,SAAO,QAAQ,SAAS,GAAG;AACzB,WAAO,UAAU,UAAUF,SAAQ,OAAO,MAAM,aAAa,IAAI,SAAS,CAAC,GAAG,UAAUA;AAAA,EAC1F;AAEA,SAAO,QAAQ,SAAS,GAAG;AACzB,WAAO,UAAU,UAAUG,SAAQ,OAAO,MAAM,aAAa,IAAI,SAAS,CAAC,GAAG,UAAUA;AAAA,EAC1F;AAEA,SAAO,WAAW,SAAS,GAAG;AAC5B,WAAO,UAAU,UAAU,WAAW,GAAG,UAAU;AAAA,EACrD;AAEA,SAAO,OAAO,SAAS,GAAG;AACxB,WAAO,UAAU,UAAU,KAAK,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,KAAK,EAAE;AAAA,EAC7F;AAEA,SAAO,SAAS,SAAS,GAAG;AAC1B,WAAO,UAAU,UAAU,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AAAA,EACtH;AAEA,SAAO,aAAa,SAAS,GAAG;AAC9B,WAAO,UAAU,UAAU,aAAa,CAAC,GAAG,UAAU;AAAA,EACxD;AAEA,WAAS,iBAAiB,EAAC,OAAAH,QAAO,OAAAG,OAAK,GAAG;AACxC,eAAW,CAAC,GAAG,IAAI,KAAKH,OAAM,QAAQ,GAAG;AACvC,WAAK,QAAQ;AACb,WAAK,cAAc,CAAC;AACpB,WAAK,cAAc,CAAC;AAAA,IACtB;AACA,UAAM,WAAW,IAAI,IAAIA,OAAM,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAGA,MAAK,GAAG,CAAC,CAAC,CAAC;AAClE,eAAW,CAAC,GAAGC,KAAI,KAAKE,OAAM,QAAQ,GAAG;AACvC,MAAAF,MAAK,QAAQ;AACb,UAAI,EAAC,QAAQ,OAAM,IAAIA;AACvB,UAAI,OAAO,WAAW;AAAU,iBAASA,MAAK,SAAS,KAAK,UAAU,MAAM;AAC5E,UAAI,OAAO,WAAW;AAAU,iBAASA,MAAK,SAAS,KAAK,UAAU,MAAM;AAC5E,aAAO,YAAY,KAAKA,KAAI;AAC5B,aAAO,YAAY,KAAKA,KAAI;AAAA,IAC9B;AACA,QAAI,YAAY,MAAM;AACpB,iBAAW,EAAC,aAAa,YAAW,KAAKD,QAAO;AAC9C,oBAAY,KAAK,QAAQ;AACzB,oBAAY,KAAK,QAAQ;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAEA,WAAS,kBAAkB,EAAC,OAAAA,OAAK,GAAG;AAClC,eAAW,QAAQA,QAAO;AACxB,WAAK,QAAQ,KAAK,eAAe,SAC3B,KAAK,IAAI,IAAI,KAAK,aAAa,KAAK,GAAG,IAAI,KAAK,aAAa,KAAK,CAAC,IACnE,KAAK;AAAA,IACb;AAAA,EACF;AAEA,WAAS,kBAAkB,EAAC,OAAAA,OAAK,GAAG;AAClC,UAAM,IAAIA,OAAM;AAChB,QAAI,UAAU,IAAI,IAAIA,MAAK;AAC3B,QAAI,OAAO,oBAAI;AACf,QAAII,KAAI;AACR,WAAO,QAAQ,MAAM;AACnB,iBAAW,QAAQ,SAAS;AAC1B,aAAK,QAAQA;AACb,mBAAW,EAAC,OAAM,KAAK,KAAK,aAAa;AACvC,eAAK,IAAI,MAAM;AAAA,QACjB;AAAA,MACF;AACA,UAAI,EAAEA,KAAI;AAAG,cAAM,IAAI,MAAM,eAAe;AAC5C,gBAAU;AACV,aAAO,oBAAI;AAAA,IACb;AAAA,EACF;AAEA,WAAS,mBAAmB,EAAC,OAAAJ,OAAK,GAAG;AACnC,UAAM,IAAIA,OAAM;AAChB,QAAI,UAAU,IAAI,IAAIA,MAAK;AAC3B,QAAI,OAAO,oBAAI;AACf,QAAII,KAAI;AACR,WAAO,QAAQ,MAAM;AACnB,iBAAW,QAAQ,SAAS;AAC1B,aAAK,SAASA;AACd,mBAAW,EAAC,OAAM,KAAK,KAAK,aAAa;AACvC,eAAK,IAAI,MAAM;AAAA,QACjB;AAAA,MACF;AACA,UAAI,EAAEA,KAAI;AAAG,cAAM,IAAI,MAAM,eAAe;AAC5C,gBAAU;AACV,aAAO,oBAAI;AAAA,IACb;AAAA,EACF;AAEA,WAAS,kBAAkB,EAAC,OAAAJ,OAAK,GAAG;AAClC,UAAMI,KAAI,IAAIJ,QAAO,OAAK,EAAE,KAAK,IAAI;AACrC,UAAMK,OAAM,KAAK,KAAK,OAAOD,KAAI;AACjC,UAAM,UAAU,IAAI,MAAMA,EAAC;AAC3B,eAAW,QAAQJ,QAAO;AACxB,YAAM,IAAI,KAAK,IAAI,GAAG,KAAK,IAAII,KAAI,GAAG,KAAK,MAAM,MAAM,KAAK,MAAM,MAAMA,EAAC,CAAC,CAAC,CAAC;AAC5E,WAAK,QAAQ;AACb,WAAK,KAAK,KAAK,IAAIC;AACnB,WAAK,KAAK,KAAK,KAAK;AACpB,UAAI,QAAQ,CAAC;AAAG,gBAAQ,CAAC,EAAE,KAAK,IAAI;AAAA;AAC/B,gBAAQ,CAAC,IAAI,CAAC,IAAI;AAAA,IACzB;AACA,QAAIH;AAAM,iBAAW,UAAU,SAAS;AACtC,eAAO,KAAKA,KAAI;AAAA,MAClB;AACA,WAAO;AAAA,EACT;AAEA,WAAS,uBAAuB,SAAS;AACvC,UAAMI,MAAK,IAAI,SAAS,QAAM,KAAK,MAAM,EAAE,SAAS,KAAK,MAAM,IAAI,GAAG,KAAK,CAAC;AAC5E,eAAWN,UAAS,SAAS;AAC3B,UAAIO,KAAI;AACR,iBAAW,QAAQP,QAAO;AACxB,aAAK,KAAKO;AACV,aAAK,KAAKA,KAAI,KAAK,QAAQD;AAC3B,QAAAC,KAAI,KAAK,KAAK;AACd,mBAAWN,SAAQ,KAAK,aAAa;AACnC,UAAAA,MAAK,QAAQA,MAAK,QAAQK;AAAA,QAC5B;AAAA,MACF;AACA,MAAAC,MAAK,KAAKA,KAAI,OAAOP,OAAM,SAAS;AACpC,eAAS,IAAI,GAAG,IAAIA,OAAM,QAAQ,EAAE,GAAG;AACrC,cAAM,OAAOA,OAAM,CAAC;AACpB,aAAK,MAAMO,MAAK,IAAI;AACpB,aAAK,MAAMA,MAAK,IAAI;AAAA,MACtB;AACA,mBAAaP,MAAK;AAAA,IACpB;AAAA,EACF;AAEA,WAAS,oBAAoB,OAAO;AAClC,UAAM,UAAU,kBAAkB,KAAK;AACvC,SAAK,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,SAAS,OAAK,EAAE,MAAM,IAAI,EAAE;AAC/D,2BAAuB,OAAO;AAC9B,aAAS,IAAI,GAAG,IAAI,YAAY,EAAE,GAAG;AACnC,YAAM,QAAQ,KAAK,IAAI,MAAM,CAAC;AAC9B,YAAM,OAAO,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,UAAU;AACrD,uBAAiB,SAAS,OAAO,IAAI;AACrC,uBAAiB,SAAS,OAAO,IAAI;AAAA,IACvC;AAAA,EACF;AAGA,WAAS,iBAAiB,SAAS,OAAO,MAAM;AAC9C,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,IAAI,GAAG,EAAE,GAAG;AAC9C,YAAM,SAAS,QAAQ,CAAC;AACxB,iBAAW,UAAU,QAAQ;AAC3B,YAAIO,KAAI;AACR,YAAI,IAAI;AACR,mBAAW,EAAC,QAAQ,OAAAC,OAAK,KAAK,OAAO,aAAa;AAChD,cAAI,IAAIA,UAAS,OAAO,QAAQ,OAAO;AACvC,UAAAD,MAAK,UAAU,QAAQ,MAAM,IAAI;AACjC,eAAK;AAAA,QACP;AACA,YAAI,EAAE,IAAI;AAAI;AACd,YAAIE,OAAMF,KAAI,IAAI,OAAO,MAAM;AAC/B,eAAO,MAAME;AACb,eAAO,MAAMA;AACb,yBAAiB,MAAM;AAAA,MACzB;AACA,UAAIP,UAAS;AAAW,eAAO,KAAK,gBAAgB;AACpD,wBAAkB,QAAQ,IAAI;AAAA,IAChC;AAAA,EACF;AAGA,WAAS,iBAAiB,SAAS,OAAO,MAAM;AAC9C,aAAS,IAAI,QAAQ,QAAQ,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG;AACnD,YAAM,SAAS,QAAQ,CAAC;AACxB,iBAAW,UAAU,QAAQ;AAC3B,YAAIK,KAAI;AACR,YAAI,IAAI;AACR,mBAAW,EAAC,QAAQ,OAAAC,OAAK,KAAK,OAAO,aAAa;AAChD,cAAI,IAAIA,UAAS,OAAO,QAAQ,OAAO;AACvC,UAAAD,MAAK,UAAU,QAAQ,MAAM,IAAI;AACjC,eAAK;AAAA,QACP;AACA,YAAI,EAAE,IAAI;AAAI;AACd,YAAIE,OAAMF,KAAI,IAAI,OAAO,MAAM;AAC/B,eAAO,MAAME;AACb,eAAO,MAAMA;AACb,yBAAiB,MAAM;AAAA,MACzB;AACA,UAAIP,UAAS;AAAW,eAAO,KAAK,gBAAgB;AACpD,wBAAkB,QAAQ,IAAI;AAAA,IAChC;AAAA,EACF;AAEA,WAAS,kBAAkBF,QAAO,OAAO;AACvC,UAAM,IAAIA,OAAM,UAAU;AAC1B,UAAM,UAAUA,OAAM,CAAC;AACvB,iCAA6BA,QAAO,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK;AACjE,iCAA6BA,QAAO,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK;AACjE,iCAA6BA,QAAO,IAAIA,OAAM,SAAS,GAAG,KAAK;AAC/D,iCAA6BA,QAAO,IAAI,GAAG,KAAK;AAAA,EAClD;AAGA,WAAS,6BAA6BA,QAAOO,IAAG,GAAG,OAAO;AACxD,WAAO,IAAIP,OAAM,QAAQ,EAAE,GAAG;AAC5B,YAAM,OAAOA,OAAM,CAAC;AACpB,YAAMS,OAAMF,KAAI,KAAK,MAAM;AAC3B,UAAIE,MAAK;AAAM,aAAK,MAAMA,KAAI,KAAK,MAAMA;AACzC,MAAAF,KAAI,KAAK,KAAK;AAAA,IAChB;AAAA,EACF;AAGA,WAAS,6BAA6BP,QAAOO,IAAG,GAAG,OAAO;AACxD,WAAO,KAAK,GAAG,EAAE,GAAG;AAClB,YAAM,OAAOP,OAAM,CAAC;AACpB,YAAMS,OAAM,KAAK,KAAKF,MAAK;AAC3B,UAAIE,MAAK;AAAM,aAAK,MAAMA,KAAI,KAAK,MAAMA;AACzC,MAAAF,KAAI,KAAK,KAAK;AAAA,IAChB;AAAA,EACF;AAEA,WAAS,iBAAiB,EAAC,aAAa,YAAW,GAAG;AACpD,QAAI,aAAa,QAAW;AAC1B,iBAAW,EAAC,QAAQ,EAAC,aAAAG,aAAW,EAAC,KAAK,aAAa;AACjD,QAAAA,aAAY,KAAK,sBAAsB;AAAA,MACzC;AACA,iBAAW,EAAC,QAAQ,EAAC,aAAAC,aAAW,EAAC,KAAK,aAAa;AACjD,QAAAA,aAAY,KAAK,sBAAsB;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAEA,WAAS,aAAaX,QAAO;AAC3B,QAAI,aAAa,QAAW;AAC1B,iBAAW,EAAC,aAAa,YAAW,KAAKA,QAAO;AAC9C,oBAAY,KAAK,sBAAsB;AACvC,oBAAY,KAAK,sBAAsB;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAGA,WAAS,UAAU,QAAQ,QAAQ;AACjC,QAAIO,KAAI,OAAO,MAAM,OAAO,YAAY,SAAS,KAAK,KAAK;AAC3D,eAAW,EAAC,QAAQ,MAAM,MAAK,KAAK,OAAO,aAAa;AACtD,UAAI,SAAS;AAAQ;AACrB,MAAAA,MAAK,QAAQ;AAAA,IACf;AACA,eAAW,EAAC,QAAQ,MAAM,MAAK,KAAK,OAAO,aAAa;AACtD,UAAI,SAAS;AAAQ;AACrB,MAAAA,MAAK;AAAA,IACP;AACA,WAAOA;AAAA,EACT;AAGA,WAAS,UAAU,QAAQ,QAAQ;AACjC,QAAIA,KAAI,OAAO,MAAM,OAAO,YAAY,SAAS,KAAK,KAAK;AAC3D,eAAW,EAAC,QAAQ,MAAM,MAAK,KAAK,OAAO,aAAa;AACtD,UAAI,SAAS;AAAQ;AACrB,MAAAA,MAAK,QAAQ;AAAA,IACf;AACA,eAAW,EAAC,QAAQ,MAAM,MAAK,KAAK,OAAO,aAAa;AACtD,UAAI,SAAS;AAAQ;AACrB,MAAAA,MAAK;AAAA,IACP;AACA,WAAOA;AAAA,EACT;AAEA,SAAO;AACT;;;AChXA,IAAI,KAAK,KAAK;AAAd,IACI,MAAM,IAAI;AADd,IAEI,UAAU;AAFd,IAGI,aAAa,MAAM;AAEvB,SAAS,OAAO;AACd,OAAK,MAAM,KAAK;AAAA,EAChB,KAAK,MAAM,KAAK,MAAM;AACtB,OAAK,IAAI;AACX;AAEA,SAAS,OAAO;AACd,SAAO,IAAI;AACb;AAEA,KAAK,YAAY,KAAK,YAAY;AAAA,EAChC,aAAa;AAAA,EACb,QAAQ,SAASK,IAAGC,IAAG;AACrB,SAAK,KAAK,OAAO,KAAK,MAAM,KAAK,MAAM,CAACD,MAAK,OAAO,KAAK,MAAM,KAAK,MAAM,CAACC;AAAA,EAC7E;AAAA,EACA,WAAW,WAAW;AACpB,QAAI,KAAK,QAAQ,MAAM;AACrB,WAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK;AACrC,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EACA,QAAQ,SAASD,IAAGC,IAAG;AACrB,SAAK,KAAK,OAAO,KAAK,MAAM,CAACD,MAAK,OAAO,KAAK,MAAM,CAACC;AAAA,EACvD;AAAA,EACA,kBAAkB,SAAS,IAAI,IAAID,IAAGC,IAAG;AACvC,SAAK,KAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAO,KAAK,MAAM,CAACD,MAAK,OAAO,KAAK,MAAM,CAACC;AAAA,EACnF;AAAA,EACA,eAAe,SAAS,IAAI,IAAI,IAAI,IAAID,IAAGC,IAAG;AAC5C,SAAK,KAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAO,KAAK,MAAM,CAACD,MAAK,OAAO,KAAK,MAAM,CAACC;AAAA,EAC/G;AAAA,EACA,OAAO,SAAS,IAAI,IAAI,IAAI,IAAI,GAAG;AACjC,SAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC;AAC7C,QAAI,KAAK,KAAK,KACV,KAAK,KAAK,KACV,MAAM,KAAK,IACX,MAAM,KAAK,IACX,MAAM,KAAK,IACX,MAAM,KAAK,IACX,QAAQ,MAAM,MAAM,MAAM;AAG9B,QAAI,IAAI;AAAG,YAAM,IAAI,MAAM,sBAAsB,CAAC;AAGlD,QAAI,KAAK,QAAQ,MAAM;AACrB,WAAK,KAAK,OAAO,KAAK,MAAM,MAAM,OAAO,KAAK,MAAM;AAAA,IACtD,WAGS,EAAE,QAAQ;AAAS;AAAA,aAKnB,EAAE,KAAK,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG;AAC3D,WAAK,KAAK,OAAO,KAAK,MAAM,MAAM,OAAO,KAAK,MAAM;AAAA,IACtD,OAGK;AACH,UAAI,MAAM,KAAK,IACX,MAAM,KAAK,IACX,QAAQ,MAAM,MAAM,MAAM,KAC1B,QAAQ,MAAM,MAAM,MAAM,KAC1B,MAAM,KAAK,KAAK,KAAK,GACrB,MAAM,KAAK,KAAK,KAAK,GACrB,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,QAAQ,QAAQ,UAAU,IAAI,MAAM,IAAI,KAAK,CAAC,GAChF,MAAM,IAAI,KACV,MAAM,IAAI;AAGd,UAAI,KAAK,IAAI,MAAM,CAAC,IAAI,SAAS;AAC/B,aAAK,KAAK,OAAO,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM;AAAA,MACvD;AAEA,WAAK,KAAK,MAAM,IAAI,MAAM,IAAI,UAAW,EAAE,MAAM,MAAM,MAAM,OAAQ,OAAO,KAAK,MAAM,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,KAAK,MAAM;AAAA,IACxI;AAAA,EACF;AAAA,EACA,KAAK,SAASD,IAAGC,IAAG,GAAG,IAAI,IAAI,KAAK;AAClC,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA,IAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;AAChC,QAAI,KAAK,IAAI,KAAK,IAAI,EAAE,GACpB,KAAK,IAAI,KAAK,IAAI,EAAE,GACpB,KAAKD,KAAI,IACT,KAAKC,KAAI,IACT,KAAK,IAAI,KACT,KAAK,MAAM,KAAK,KAAK,KAAK;AAG9B,QAAI,IAAI;AAAG,YAAM,IAAI,MAAM,sBAAsB,CAAC;AAGlD,QAAI,KAAK,QAAQ,MAAM;AACrB,WAAK,KAAK,MAAM,KAAK,MAAM;AAAA,IAC7B,WAGS,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI,WAAW,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI,SAAS;AAC/E,WAAK,KAAK,MAAM,KAAK,MAAM;AAAA,IAC7B;AAGA,QAAI,CAAC;AAAG;AAGR,QAAI,KAAK;AAAG,WAAK,KAAK,MAAM;AAG5B,QAAI,KAAK,YAAY;AACnB,WAAK,KAAK,MAAM,IAAI,MAAM,IAAI,UAAU,KAAK,OAAOD,KAAI,MAAM,OAAOC,KAAI,MAAM,MAAM,IAAI,MAAM,IAAI,UAAU,KAAK,OAAO,KAAK,MAAM,MAAM,OAAO,KAAK,MAAM;AAAA,IAC9J,WAGS,KAAK,SAAS;AACrB,WAAK,KAAK,MAAM,IAAI,MAAM,IAAI,QAAS,EAAE,MAAM,MAAO,MAAM,KAAK,OAAO,KAAK,MAAMD,KAAI,IAAI,KAAK,IAAI,EAAE,KAAK,OAAO,KAAK,MAAMC,KAAI,IAAI,KAAK,IAAI,EAAE;AAAA,IAClJ;AAAA,EACF;AAAA,EACA,MAAM,SAASD,IAAGC,IAAG,GAAG,GAAG;AACzB,SAAK,KAAK,OAAO,KAAK,MAAM,KAAK,MAAM,CAACD,MAAK,OAAO,KAAK,MAAM,KAAK,MAAM,CAACC,MAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK;AAAA,EACzH;AAAA,EACA,UAAU,WAAW;AACnB,WAAO,KAAK;AAAA,EACd;AACF;AAEA,IAAO,eAAQ;;;ACjIA,SAARC,kBAAiBC,IAAG;AACzB,SAAO,SAASC,YAAW;AACzB,WAAOD;AAAA,EACT;AACF;;;ACIO,IAAIE,WAAU;AACd,IAAIC,MAAK,KAAK;AACd,IAAI,SAASA,MAAK;AAClB,IAAIC,OAAM,IAAID;;;ACXrB,SAAS,OAAO,SAAS;AACvB,OAAK,WAAW;AAClB;AAEA,OAAO,YAAY;AAAA,EACjB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASE,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAOD,IAAGC,EAAC,IAAI,KAAK,SAAS,OAAOD,IAAGC,EAAC;AAAG;AAAA,MAC/F,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB;AAAS,aAAK,SAAS,OAAOD,IAAGC,EAAC;AAAG;AAAA,IACvC;AAAA,EACF;AACF;AAEe,SAAR,eAAiB,SAAS;AAC/B,SAAO,IAAI,OAAO,OAAO;AAC3B;;;AC9BO,SAAS,EAAE,GAAG;AACnB,SAAO,EAAE,CAAC;AACZ;AAEO,SAAS,EAAE,GAAG;AACnB,SAAO,EAAE,CAAC;AACZ;;;ACJO,IAAI,oBAAoB,YAAY,cAAW;AAEtD,SAAS,OAAO,OAAO;AACrB,OAAK,SAAS;AAChB;AAEA,OAAO,YAAY;AAAA,EACjB,WAAW,WAAW;AACpB,SAAK,OAAO,UAAU;AAAA,EACxB;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,OAAO,QAAQ;AAAA,EACtB;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,OAAO,UAAU;AAAA,EACxB;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,OAAO,QAAQ;AAAA,EACtB;AAAA,EACA,OAAO,SAASC,IAAG,GAAG;AACpB,SAAK,OAAO,MAAM,IAAI,KAAK,IAAIA,EAAC,GAAG,IAAI,CAAC,KAAK,IAAIA,EAAC,CAAC;AAAA,EACrD;AACF;AAEe,SAAR,YAA6B,OAAO;AAEzC,WAAS,OAAO,SAAS;AACvB,WAAO,IAAI,OAAO,MAAM,OAAO,CAAC;AAAA,EAClC;AAEA,SAAO,SAAS;AAEhB,SAAO;AACT;;;ACnCO,IAAIC,SAAQ,MAAM,UAAU;;;ACMnC,SAAS,WAAW,GAAG;AACrB,SAAO,EAAE;AACX;AAEA,SAAS,WAAW,GAAG;AACrB,SAAO,EAAE;AACX;AAEA,SAAS,KAAK,OAAO;AACnB,MAAI,SAAS,YACT,SAAS,YACTC,KAAI,GACJC,KAAI,GACJ,UAAU;AAEd,WAASC,QAAO;AACd,QAAI,QAAQ,OAAOC,OAAM,KAAK,SAAS,GAAGC,KAAI,OAAO,MAAM,MAAM,IAAI,GAAG,IAAI,OAAO,MAAM,MAAM,IAAI;AACnG,QAAI,CAAC;AAAS,gBAAU,SAAS,aAAK;AACtC,UAAM,SAAS,CAACJ,GAAE,MAAM,OAAO,KAAK,CAAC,IAAII,IAAG,KAAK,GAAG,CAACH,GAAE,MAAM,MAAM,IAAI,GAAG,CAACD,GAAE,MAAM,OAAO,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,CAACC,GAAE,MAAM,MAAM,IAAI,CAAC;AACnI,QAAI;AAAQ,aAAO,UAAU,MAAM,SAAS,MAAM;AAAA,EACpD;AAEA,EAAAC,MAAK,SAAS,SAAS,GAAG;AACxB,WAAO,UAAU,UAAU,SAAS,GAAGA,SAAQ;AAAA,EACjD;AAEA,EAAAA,MAAK,SAAS,SAAS,GAAG;AACxB,WAAO,UAAU,UAAU,SAAS,GAAGA,SAAQ;AAAA,EACjD;AAEA,EAAAA,MAAK,IAAI,SAAS,GAAG;AACnB,WAAO,UAAU,UAAUF,KAAI,OAAO,MAAM,aAAa,IAAIK,kBAAS,CAAC,CAAC,GAAGH,SAAQF;AAAA,EACrF;AAEA,EAAAE,MAAK,IAAI,SAAS,GAAG;AACnB,WAAO,UAAU,UAAUD,KAAI,OAAO,MAAM,aAAa,IAAII,kBAAS,CAAC,CAAC,GAAGH,SAAQD;AAAA,EACrF;AAEA,EAAAC,MAAK,UAAU,SAAS,GAAG;AACzB,WAAO,UAAU,UAAW,UAAU,KAAK,OAAO,OAAO,GAAIA,SAAQ;AAAA,EACvE;AAEA,SAAOA;AACT;AAEA,SAAS,gBAAgB,SAAS,IAAI,IAAI,IAAI,IAAI;AAChD,UAAQ,OAAO,IAAI,EAAE;AACrB,UAAQ,cAAc,MAAM,KAAK,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9D;AAgBO,SAAS,iBAAiB;AAC/B,SAAO,KAAK,eAAe;AAC7B;;;ACxEA,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC;AAA3B,IACI,UAAU,QAAQ;;;ACCtB,IACI,KAAK,KAAK,IAAII,MAAK,EAAE,IAAI,KAAK,IAAI,IAAIA,MAAK,EAAE;AADjD,IAEI,KAAK,KAAK,IAAIC,OAAM,EAAE,IAAI;AAF9B,IAGI,KAAK,CAAC,KAAK,IAAIA,OAAM,EAAE,IAAI;;;ACL/B,IAAI,QAAQ,KAAK,KAAK,CAAC;;;ACAvB,IACI,IAAI,KAAK,KAAK,CAAC,IAAI;AADvB,IAEI,IAAI,IAAI,KAAK,KAAK,EAAE;AAFxB,IAGI,KAAK,IAAI,IAAI,KAAK;;;ACHP,SAAR,eAAmB;AAAC;;;ACApB,SAAS,MAAM,MAAMC,IAAGC,IAAG;AAChC,OAAK,SAAS;AAAA,KACX,IAAI,KAAK,MAAM,KAAK,OAAO;AAAA,KAC3B,IAAI,KAAK,MAAM,KAAK,OAAO;AAAA,KAC3B,KAAK,MAAM,IAAI,KAAK,OAAO;AAAA,KAC3B,KAAK,MAAM,IAAI,KAAK,OAAO;AAAA,KAC3B,KAAK,MAAM,IAAI,KAAK,MAAMD,MAAK;AAAA,KAC/B,KAAK,MAAM,IAAI,KAAK,MAAMC,MAAK;AAAA,EAClC;AACF;AAEO,SAAS,MAAM,SAAS;AAC7B,OAAK,WAAW;AAClB;AAEA,MAAM,YAAY;AAAA,EAChB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAAM;AACtB,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,cAAM,MAAM,KAAK,KAAK,KAAK,GAAG;AAAA,MACtC,KAAK;AAAG,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,IACpD;AACA,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASD,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAOD,IAAGC,EAAC,IAAI,KAAK,SAAS,OAAOD,IAAGC,EAAC;AAAG;AAAA,MAC/F,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,SAAS,QAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC;AAAA,MAC1G;AAAS,cAAM,MAAMD,IAAGC,EAAC;AAAG;AAAA,IAC9B;AACA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AAChC,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EAClC;AACF;;;AC3CA,SAAS,YAAY,SAAS;AAC5B,OAAK,WAAW;AAClB;AAEA,YAAY,YAAY;AAAA,EACtB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MACjD,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACvD,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK,GAAG;AACN,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AACvC,aAAK,SAAS,UAAU;AACxB;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,aAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO,CAAC;AACjF,aAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO,CAAC;AACjF,aAAK,SAAS,UAAU;AACxB;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG,aAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,KAAK,MAAMD,MAAK,IAAI,KAAK,MAAM,IAAI,KAAK,MAAMC,MAAK,CAAC;AAAG;AAAA,MACjJ;AAAS,cAAM,MAAMD,IAAGC,EAAC;AAAG;AAAA,IAC9B;AACA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AAChC,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EAClC;AACF;;;AC7CA,SAAS,UAAU,SAAS;AAC1B,OAAK,WAAW;AAClB;AAEA,UAAU,YAAY;AAAA,EACpB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAAM;AACtB,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG,YAAI,MAAM,KAAK,MAAM,IAAI,KAAK,MAAMD,MAAK,GAAG,MAAM,KAAK,MAAM,IAAI,KAAK,MAAMC,MAAK;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAO,IAAI,EAAE,IAAI,KAAK,SAAS,OAAO,IAAI,EAAE;AAAG;AAAA,MACvL,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB;AAAS,cAAM,MAAMD,IAAGC,EAAC;AAAG;AAAA,IAC9B;AACA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AAChC,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EAClC;AACF;;;AChCA,SAAS,OAAO,SAAS,MAAM;AAC7B,OAAK,SAAS,IAAI,MAAM,OAAO;AAC/B,OAAK,QAAQ;AACf;AAEA,OAAO,YAAY;AAAA,EACjB,WAAW,WAAW;AACpB,SAAK,KAAK,CAAC;AACX,SAAK,KAAK,CAAC;AACX,SAAK,OAAO,UAAU;AAAA,EACxB;AAAA,EACA,SAAS,WAAW;AAClB,QAAIC,KAAI,KAAK,IACTC,KAAI,KAAK,IACT,IAAID,GAAE,SAAS;AAEnB,QAAI,IAAI,GAAG;AACT,UAAI,KAAKA,GAAE,CAAC,GACR,KAAKC,GAAE,CAAC,GACR,KAAKD,GAAE,CAAC,IAAI,IACZ,KAAKC,GAAE,CAAC,IAAI,IACZ,IAAI,IACJ;AAEJ,aAAO,EAAE,KAAK,GAAG;AACf,YAAI,IAAI;AACR,aAAK,OAAO;AAAA,UACV,KAAK,QAAQD,GAAE,CAAC,KAAK,IAAI,KAAK,UAAU,KAAK,IAAI;AAAA,UACjD,KAAK,QAAQC,GAAE,CAAC,KAAK,IAAI,KAAK,UAAU,KAAK,IAAI;AAAA,QACnD;AAAA,MACF;AAAA,IACF;AAEA,SAAK,KAAK,KAAK,KAAK;AACpB,SAAK,OAAO,QAAQ;AAAA,EACtB;AAAA,EACA,OAAO,SAASD,IAAGC,IAAG;AACpB,SAAK,GAAG,KAAK,CAACD,EAAC;AACf,SAAK,GAAG,KAAK,CAACC,EAAC;AAAA,EACjB;AACF;AAEA,IAAO,iBAAS,SAAS,OAAO,MAAM;AAEpC,WAAS,OAAO,SAAS;AACvB,WAAO,SAAS,IAAI,IAAI,MAAM,OAAO,IAAI,IAAI,OAAO,SAAS,IAAI;AAAA,EACnE;AAEA,SAAO,OAAO,SAASC,OAAM;AAC3B,WAAO,OAAO,CAACA,KAAI;AAAA,EACrB;AAEA,SAAO;AACT,EAAG,IAAI;;;ACvDA,SAASC,OAAM,MAAMC,IAAGC,IAAG;AAChC,OAAK,SAAS;AAAA,IACZ,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK;AAAA,IACtC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK;AAAA,IACtC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAMD;AAAA,IACjC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAMC;AAAA,IACjC,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACF;AAEO,SAAS,SAAS,SAAS,SAAS;AACzC,OAAK,WAAW;AAChB,OAAK,MAAM,IAAI,WAAW;AAC5B;AAEA,SAAS,YAAY;AAAA,EACnB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAC3B,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACjC,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,MAClD,KAAK;AAAG,QAAAF,OAAM,MAAM,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,IAC3C;AACA,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAOD,IAAGC,EAAC,IAAI,KAAK,SAAS,OAAOD,IAAGC,EAAC;AAAG;AAAA,MAC/F,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB;AAAS,QAAAF,OAAM,MAAMC,IAAGC,EAAC;AAAG;AAAA,IAC9B;AACA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AACrD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EACvD;AACF;AAEA,IAAO,mBAAS,SAASC,QAAO,SAAS;AAEvC,WAAS,SAAS,SAAS;AACzB,WAAO,IAAI,SAAS,SAAS,OAAO;AAAA,EACtC;AAEA,WAAS,UAAU,SAASC,UAAS;AACnC,WAAOD,QAAO,CAACC,QAAO;AAAA,EACxB;AAEA,SAAO;AACT,EAAG,CAAC;;;ACzDG,SAAS,eAAe,SAAS,SAAS;AAC/C,OAAK,WAAW;AAChB,OAAK,MAAM,IAAI,WAAW;AAC5B;AAEA,eAAe,YAAY;AAAA,EACzB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAC5D,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AAClE,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK,GAAG;AACN,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AACvC,aAAK,SAAS,UAAU;AACxB;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AACvC,aAAK,SAAS,UAAU;AACxB;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,SAAS,OAAO,KAAK,MAAMD,IAAG,KAAK,MAAMC,EAAC;AAAG;AAAA,MAC3E,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD;AAAS,QAAAC,OAAM,MAAMF,IAAGC,EAAC;AAAG;AAAA,IAC9B;AACA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AACrD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EACvD;AACF;AAEA,IAAO,yBAAS,SAASE,QAAO,SAAS;AAEvC,WAAS,SAAS,SAAS;AACzB,WAAO,IAAI,eAAe,SAAS,OAAO;AAAA,EAC5C;AAEA,WAAS,UAAU,SAASC,UAAS;AACnC,WAAOD,QAAO,CAACC,QAAO;AAAA,EACxB;AAEA,SAAO;AACT,EAAG,CAAC;;;AC1DG,SAAS,aAAa,SAAS,SAAS;AAC7C,OAAK,WAAW;AAChB,OAAK,MAAM,IAAI,WAAW;AAC5B;AAEA,aAAa,YAAY;AAAA,EACvB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAC3B,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACjC,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG,IAAI,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,MAC3H,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB;AAAS,QAAAC,OAAM,MAAMF,IAAGC,EAAC;AAAG;AAAA,IAC9B;AACA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AACrD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EACvD;AACF;AAEA,IAAO,uBAAS,SAASE,QAAO,SAAS;AAEvC,WAAS,SAAS,SAAS;AACzB,WAAO,IAAI,aAAa,SAAS,OAAO;AAAA,EAC1C;AAEA,WAAS,UAAU,SAASC,UAAS;AACnC,WAAOD,QAAO,CAACC,QAAO;AAAA,EACxB;AAEA,SAAO;AACT,EAAG,CAAC;;;AC7CG,SAASC,OAAM,MAAMC,IAAGC,IAAG;AAChC,MAAI,KAAK,KAAK,KACV,KAAK,KAAK,KACVC,MAAK,KAAK,KACVC,MAAK,KAAK;AAEd,MAAI,KAAK,SAASC,UAAS;AACzB,QAAIC,KAAI,IAAI,KAAK,UAAU,IAAI,KAAK,SAAS,KAAK,SAAS,KAAK,SAC5D,IAAI,IAAI,KAAK,UAAU,KAAK,SAAS,KAAK;AAC9C,UAAM,KAAKA,KAAI,KAAK,MAAM,KAAK,UAAU,KAAK,MAAM,KAAK,WAAW;AACpE,UAAM,KAAKA,KAAI,KAAK,MAAM,KAAK,UAAU,KAAK,MAAM,KAAK,WAAW;AAAA,EACtE;AAEA,MAAI,KAAK,SAASD,UAAS;AACzB,QAAI,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,SAAS,KAAK,SAAS,KAAK,SAC5D,IAAI,IAAI,KAAK,UAAU,KAAK,SAAS,KAAK;AAC9C,IAAAF,OAAMA,MAAK,IAAI,KAAK,MAAM,KAAK,UAAUF,KAAI,KAAK,WAAW;AAC7D,IAAAG,OAAMA,MAAK,IAAI,KAAK,MAAM,KAAK,UAAUF,KAAI,KAAK,WAAW;AAAA,EAC/D;AAEA,OAAK,SAAS,cAAc,IAAI,IAAIC,KAAIC,KAAI,KAAK,KAAK,KAAK,GAAG;AAChE;AAEA,SAAS,WAAW,SAAS,OAAO;AAClC,OAAK,WAAW;AAChB,OAAK,SAAS;AAChB;AAEA,WAAW,YAAY;AAAA,EACrB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAC3B,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACjC,SAAK,SAAS,KAAK,SAAS,KAAK,SACjC,KAAK,UAAU,KAAK,UAAU,KAAK,UACnC,KAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,MAClD,KAAK;AAAG,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,IAC1C;AACA,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASH,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AAEb,QAAI,KAAK,QAAQ;AACf,UAAI,MAAM,KAAK,MAAMD,IACjB,MAAM,KAAK,MAAMC;AACrB,WAAK,SAAS,KAAK,KAAK,KAAK,UAAU,KAAK,IAAI,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,CAAC;AAAA,IACrF;AAEA,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAOD,IAAGC,EAAC,IAAI,KAAK,SAAS,OAAOD,IAAGC,EAAC;AAAG;AAAA,MAC/F,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB;AAAS,QAAAF,OAAM,MAAMC,IAAGC,EAAC;AAAG;AAAA,IAC9B;AAEA,SAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,KAAK;AAC9C,SAAK,UAAU,KAAK,SAAS,KAAK,UAAU,KAAK;AACjD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AACrD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EACvD;AACF;AAEA,IAAO,qBAAS,SAASK,QAAO,OAAO;AAErC,WAAS,WAAW,SAAS;AAC3B,WAAO,QAAQ,IAAI,WAAW,SAAS,KAAK,IAAI,IAAI,SAAS,SAAS,CAAC;AAAA,EACzE;AAEA,aAAW,QAAQ,SAASC,QAAO;AACjC,WAAOD,QAAO,CAACC,MAAK;AAAA,EACtB;AAEA,SAAO;AACT,EAAG,GAAG;;;ACnFN,SAAS,iBAAiB,SAAS,OAAO;AACxC,OAAK,WAAW;AAChB,OAAK,SAAS;AAChB;AAEA,iBAAiB,YAAY;AAAA,EAC3B,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAC5D,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AAClE,SAAK,SAAS,KAAK,SAAS,KAAK,SACjC,KAAK,UAAU,KAAK,UAAU,KAAK,UACnC,KAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK,GAAG;AACN,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AACvC,aAAK,SAAS,UAAU;AACxB;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AACvC,aAAK,SAAS,UAAU;AACxB;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B,aAAK,MAAM,KAAK,KAAK,KAAK,GAAG;AAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AAEb,QAAI,KAAK,QAAQ;AACf,UAAI,MAAM,KAAK,MAAMD,IACjB,MAAM,KAAK,MAAMC;AACrB,WAAK,SAAS,KAAK,KAAK,KAAK,UAAU,KAAK,IAAI,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,CAAC;AAAA,IACrF;AAEA,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,SAAS,OAAO,KAAK,MAAMD,IAAG,KAAK,MAAMC,EAAC;AAAG;AAAA,MAC3E,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,MAAMD,IAAG,KAAK,MAAMC;AAAG;AAAA,MACrD;AAAS,QAAAC,OAAM,MAAMF,IAAGC,EAAC;AAAG;AAAA,IAC9B;AAEA,SAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,KAAK;AAC9C,SAAK,UAAU,KAAK,SAAS,KAAK,UAAU,KAAK;AACjD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AACrD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EACvD;AACF;AAEA,IAAO,2BAAS,SAASE,QAAO,OAAO;AAErC,WAAS,WAAW,SAAS;AAC3B,WAAO,QAAQ,IAAI,iBAAiB,SAAS,KAAK,IAAI,IAAI,eAAe,SAAS,CAAC;AAAA,EACrF;AAEA,aAAW,QAAQ,SAASC,QAAO;AACjC,WAAOD,QAAO,CAACC,MAAK;AAAA,EACtB;AAEA,SAAO;AACT,EAAG,GAAG;;;ACtEN,SAAS,eAAe,SAAS,OAAO;AACtC,OAAK,WAAW;AAChB,OAAK,SAAS;AAChB;AAEA,eAAe,YAAY;AAAA,EACzB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAAM,KAAK,MAC3B,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM;AACjC,SAAK,SAAS,KAAK,SAAS,KAAK,SACjC,KAAK,UAAU,KAAK,UAAU,KAAK,UACnC,KAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AAEb,QAAI,KAAK,QAAQ;AACf,UAAI,MAAM,KAAK,MAAMD,IACjB,MAAM,KAAK,MAAMC;AACrB,WAAK,SAAS,KAAK,KAAK,KAAK,UAAU,KAAK,IAAI,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,CAAC;AAAA,IACrF;AAEA,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG,IAAI,KAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,MAC3H,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB;AAAS,QAAAC,OAAM,MAAMF,IAAGC,EAAC;AAAG;AAAA,IAC9B;AAEA,SAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,KAAK;AAC9C,SAAK,UAAU,KAAK,SAAS,KAAK,UAAU,KAAK;AACjD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMD;AACrD,SAAK,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MAAMC;AAAA,EACvD;AACF;AAEA,IAAO,yBAAS,SAASE,QAAO,OAAO;AAErC,WAAS,WAAW,SAAS;AAC3B,WAAO,QAAQ,IAAI,eAAe,SAAS,KAAK,IAAI,IAAI,aAAa,SAAS,CAAC;AAAA,EACjF;AAEA,aAAW,QAAQ,SAASC,QAAO;AACjC,WAAOD,QAAO,CAACC,MAAK;AAAA,EACtB;AAEA,SAAO;AACT,EAAG,GAAG;;;AC3DN,SAAS,aAAa,SAAS;AAC7B,OAAK,WAAW;AAClB;AAEA,aAAa,YAAY;AAAA,EACvB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW,WAAW;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,QAAI,KAAK;AAAQ,WAAK,SAAS,UAAU;AAAA,EAC3C;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,QAAI,KAAK;AAAQ,WAAK,SAAS,OAAOD,IAAGC,EAAC;AAAA;AACrC,WAAK,SAAS,GAAG,KAAK,SAAS,OAAOD,IAAGC,EAAC;AAAA,EACjD;AACF;;;ACpBA,SAAS,KAAKC,IAAG;AACf,SAAOA,KAAI,IAAI,KAAK;AACtB;AAMA,SAAS,OAAO,MAAM,IAAI,IAAI;AAC5B,MAAI,KAAK,KAAK,MAAM,KAAK,KACrB,KAAK,KAAK,KAAK,KACf,MAAM,KAAK,MAAM,KAAK,QAAQ,MAAM,KAAK,KAAK,KAC9C,MAAM,KAAK,KAAK,QAAQ,MAAM,KAAK,KAAK,KACxC,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK;AACpC,UAAQ,KAAK,EAAE,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,KAAK;AAC5F;AAGA,SAAS,OAAO,MAAM,GAAG;AACvB,MAAI,IAAI,KAAK,MAAM,KAAK;AACxB,SAAO,KAAK,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI;AACvD;AAKA,SAASC,OAAM,MAAM,IAAI,IAAI;AAC3B,MAAI,KAAK,KAAK,KACV,KAAK,KAAK,KACV,KAAK,KAAK,KACV,KAAK,KAAK,KACV,MAAM,KAAK,MAAM;AACrB,OAAK,SAAS,cAAc,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE;AAClF;AAEA,SAAS,UAAU,SAAS;AAC1B,OAAK,WAAW;AAClB;AAEA,UAAU,YAAY;AAAA,EACpB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,MAAM,KAAK,MAChB,KAAK,MAAM,KAAK,MAChB,KAAK,MAAM;AACX,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS,OAAO,KAAK,KAAK,KAAK,GAAG;AAAG;AAAA,MAClD,KAAK;AAAG,QAAAA,OAAM,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK,GAAG,CAAC;AAAG;AAAA,IACzD;AACA,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,SAAK,QAAQ,IAAI,KAAK;AAAA,EACxB;AAAA,EACA,OAAO,SAASD,IAAGE,IAAG;AACpB,QAAI,KAAK;AAET,IAAAF,KAAI,CAACA,IAAGE,KAAI,CAACA;AACb,QAAIF,OAAM,KAAK,OAAOE,OAAM,KAAK;AAAK;AACtC,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAOF,IAAGE,EAAC,IAAI,KAAK,SAAS,OAAOF,IAAGE,EAAC;AAAG;AAAA,MAC/F,KAAK;AAAG,aAAK,SAAS;AAAG;AAAA,MACzB,KAAK;AAAG,aAAK,SAAS;AAAG,QAAAD,OAAM,MAAM,OAAO,MAAM,KAAK,OAAO,MAAMD,IAAGE,EAAC,CAAC,GAAG,EAAE;AAAG;AAAA,MACjF;AAAS,QAAAD,OAAM,MAAM,KAAK,KAAK,KAAK,OAAO,MAAMD,IAAGE,EAAC,CAAC;AAAG;AAAA,IAC3D;AAEA,SAAK,MAAM,KAAK,KAAK,KAAK,MAAMF;AAChC,SAAK,MAAM,KAAK,KAAK,KAAK,MAAME;AAChC,SAAK,MAAM;AAAA,EACb;AACF;AAEA,SAAS,UAAU,SAAS;AAC1B,OAAK,WAAW,IAAI,eAAe,OAAO;AAC5C;AAAA,CAEC,UAAU,YAAY,OAAO,OAAO,UAAU,SAAS,GAAG,QAAQ,SAASF,IAAGE,IAAG;AAChF,YAAU,UAAU,MAAM,KAAK,MAAMA,IAAGF,EAAC;AAC3C;AAEA,SAAS,eAAe,SAAS;AAC/B,OAAK,WAAW;AAClB;AAEA,eAAe,YAAY;AAAA,EACzB,QAAQ,SAASA,IAAGE,IAAG;AAAE,SAAK,SAAS,OAAOA,IAAGF,EAAC;AAAA,EAAG;AAAA,EACrD,WAAW,WAAW;AAAE,SAAK,SAAS,UAAU;AAAA,EAAG;AAAA,EACnD,QAAQ,SAASA,IAAGE,IAAG;AAAE,SAAK,SAAS,OAAOA,IAAGF,EAAC;AAAA,EAAG;AAAA,EACrD,eAAe,SAAS,IAAI,IAAI,IAAI,IAAIA,IAAGE,IAAG;AAAE,SAAK,SAAS,cAAc,IAAI,IAAI,IAAI,IAAIA,IAAGF,EAAC;AAAA,EAAG;AACrG;;;AC/FA,SAAS,QAAQ,SAAS;AACxB,OAAK,WAAW;AAClB;AAEA,QAAQ,YAAY;AAAA,EAClB,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,KAAK,CAAC;AACX,SAAK,KAAK,CAAC;AAAA,EACb;AAAA,EACA,SAAS,WAAW;AAClB,QAAIG,KAAI,KAAK,IACTC,KAAI,KAAK,IACT,IAAID,GAAE;AAEV,QAAI,GAAG;AACL,WAAK,QAAQ,KAAK,SAAS,OAAOA,GAAE,CAAC,GAAGC,GAAE,CAAC,CAAC,IAAI,KAAK,SAAS,OAAOD,GAAE,CAAC,GAAGC,GAAE,CAAC,CAAC;AAC/E,UAAI,MAAM,GAAG;AACX,aAAK,SAAS,OAAOD,GAAE,CAAC,GAAGC,GAAE,CAAC,CAAC;AAAA,MACjC,OAAO;AACL,YAAI,KAAK,cAAcD,EAAC,GACpB,KAAK,cAAcC,EAAC;AACxB,iBAAS,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI;AAC3C,eAAK,SAAS,cAAc,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAGD,GAAE,EAAE,GAAGC,GAAE,EAAE,CAAC;AAAA,QACtF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,MAAM;AAAI,WAAK,SAAS,UAAU;AACzE,SAAK,QAAQ,IAAI,KAAK;AACtB,SAAK,KAAK,KAAK,KAAK;AAAA,EACtB;AAAA,EACA,OAAO,SAASD,IAAGC,IAAG;AACpB,SAAK,GAAG,KAAK,CAACD,EAAC;AACf,SAAK,GAAG,KAAK,CAACC,EAAC;AAAA,EACjB;AACF;AAGA,SAAS,cAAcD,IAAG;AACxB,MAAI,GACA,IAAIA,GAAE,SAAS,GACf,GACAE,KAAI,IAAI,MAAM,CAAC,GACf,IAAI,IAAI,MAAM,CAAC,GACf,IAAI,IAAI,MAAM,CAAC;AACnB,EAAAA,GAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAIF,GAAE,CAAC,IAAI,IAAIA,GAAE,CAAC;AACzC,OAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE;AAAG,IAAAE,GAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAIF,GAAE,CAAC,IAAI,IAAIA,GAAE,IAAI,CAAC;AAC7E,EAAAE,GAAE,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,IAAIF,GAAE,IAAI,CAAC,IAAIA,GAAE,CAAC;AACzD,OAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AAAG,QAAIE,GAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC;AAC3E,EAAAA,GAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7B,OAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE;AAAG,IAAAA,GAAE,CAAC,KAAK,EAAE,CAAC,IAAIA,GAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3D,IAAE,IAAI,CAAC,KAAKF,GAAE,CAAC,IAAIE,GAAE,IAAI,CAAC,KAAK;AAC/B,OAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE;AAAG,MAAE,CAAC,IAAI,IAAIF,GAAE,IAAI,CAAC,IAAIE,GAAE,IAAI,CAAC;AACzD,SAAO,CAACA,IAAG,CAAC;AACd;;;AC5DA,SAAS,KAAK,SAAS,GAAG;AACxB,OAAK,WAAW;AAChB,OAAK,KAAK;AACZ;AAEA,KAAK,YAAY;AAAA,EACf,WAAW,WAAW;AACpB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,SAAS,WAAW;AAClB,SAAK,QAAQ;AAAA,EACf;AAAA,EACA,WAAW,WAAW;AACpB,SAAK,KAAK,KAAK,KAAK;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS,WAAW;AAClB,QAAI,IAAI,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,WAAW;AAAG,WAAK,SAAS,OAAO,KAAK,IAAI,KAAK,EAAE;AAC1F,QAAI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAI,WAAK,SAAS,UAAU;AACnF,QAAI,KAAK,SAAS;AAAG,WAAK,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAK;AAAA,EACpE;AAAA,EACA,OAAO,SAASC,IAAGC,IAAG;AACpB,IAAAD,KAAI,CAACA,IAAGC,KAAI,CAACA;AACb,YAAQ,KAAK,QAAQ;AAAA,MACnB,KAAK;AAAG,aAAK,SAAS;AAAG,aAAK,QAAQ,KAAK,SAAS,OAAOD,IAAGC,EAAC,IAAI,KAAK,SAAS,OAAOD,IAAGC,EAAC;AAAG;AAAA,MAC/F,KAAK;AAAG,aAAK,SAAS;AAAA,MACtB,SAAS;AACP,YAAI,KAAK,MAAM,GAAG;AAChB,eAAK,SAAS,OAAO,KAAK,IAAIA,EAAC;AAC/B,eAAK,SAAS,OAAOD,IAAGC,EAAC;AAAA,QAC3B,OAAO;AACL,cAAI,KAAK,KAAK,MAAM,IAAI,KAAK,MAAMD,KAAI,KAAK;AAC5C,eAAK,SAAS,OAAO,IAAI,KAAK,EAAE;AAChC,eAAK,SAAS,OAAO,IAAIC,EAAC;AAAA,QAC5B;AACA;AAAA,MACF;AAAA,IACF;AACA,SAAK,KAAKD,IAAG,KAAK,KAAKC;AAAA,EACzB;AACF;;;ACtCA,SAAS,iBAAiB,GAAG;AAC3B,SAAO,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE;AAC3B;AAEA,SAAS,iBAAiB,GAAG;AAC3B,SAAO,CAAC,EAAE,OAAO,IAAI,EAAE,EAAE;AAC3B;AAEe,SAAR,+BAAmB;AACxB,SAAO,eAAe,EACjB,OAAO,gBAAgB,EACvB,OAAO,gBAAgB;AAC9B;;;ACVA,mBAAO;AACP,0BAAO;AAOP,IAAI,SAAS,WAAW;AACtB,MAAI,IAAI,SAASC,IAAG,GAAG,IAAI,GAAG;AAC5B,SAAK,KAAK,MAAM,CAAC,GAAG,IAAIA,GAAE,QAAQ,KAAK,GAAGA,GAAE,CAAC,CAAC,IAAI;AAChD;AACF,WAAO;AAAA,EACT,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE;AACnD,MAAI,UAAU;AAAA,IACZ,OAAO,SAAS,QAAQ;AAAA,IACxB;AAAA,IACA,IAAI,CAAC;AAAA,IACL,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,IAAI,iBAAiB,IAAI,SAAS,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,SAAS,IAAI,WAAW,IAAI,eAAe,IAAI,UAAU,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,WAAW,GAAG,QAAQ,EAAE;AAAA,IAC1U,YAAY,EAAE,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,IAAI,OAAO,IAAI,iBAAiB,IAAI,SAAS,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,UAAU,IAAI,gBAAgB,IAAI,mBAAmB;AAAA,IACpM,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAAA,IAC5G,eAAe,SAAS,UAAU,QAAQ,QAAQ,UAAU,IAAI,SAAS,IAAI,IAAI;AAC/E,UAAI,KAAK,GAAG,SAAS;AACrB,cAAQ,SAAS;AAAA,QACf,KAAK;AACH,gBAAM,SAAS,GAAG,iBAAiB,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,MAAM,GAAG,CAAC;AAC1E,gBAAM,SAAS,GAAG,iBAAiB,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,MAAM,GAAG,CAAC;AAC1E,gBAAMC,SAAQ,WAAW,GAAG,EAAE,EAAE,KAAK,CAAC;AACtC,aAAG,QAAQ,QAAQ,QAAQA,MAAK;AAChC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,eAAK,IAAI,GAAG,EAAE;AACd;AAAA,QACF,KAAK;AACH,eAAK,IAAI,GAAG,KAAK,CAAC;AAClB;AAAA,MACJ;AAAA,IACF;AAAA,IACA,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,IACliB,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;AAAA,IACzC,YAAY,SAAS,WAAW,KAAK,MAAM;AACzC,UAAI,KAAK,aAAa;AACpB,aAAK,MAAM,GAAG;AAAA,MAChB,OAAO;AACL,YAAI,QAAQ,IAAI,MAAM,GAAG;AACzB,cAAM,OAAO;AACb,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,OAAO,SAAS,MAAM,OAAO;AAC3B,UAAI,OAAO,MAAM,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,QAAQ,KAAK,OAAO,SAAS,IAAI,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM;AACtJ,UAAI,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACzC,UAAI,SAAS,OAAO,OAAO,KAAK,KAAK;AACrC,UAAI,cAAc,EAAE,IAAI,CAAC,EAAE;AAC3B,eAASD,MAAK,KAAK,IAAI;AACrB,YAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAIA,EAAC,GAAG;AACpD,sBAAY,GAAGA,EAAC,IAAI,KAAK,GAAGA,EAAC;AAAA,QAC/B;AAAA,MACF;AACA,aAAO,SAAS,OAAO,YAAY,EAAE;AACrC,kBAAY,GAAG,QAAQ;AACvB,kBAAY,GAAG,SAAS;AACxB,UAAI,OAAO,OAAO,UAAU,aAAa;AACvC,eAAO,SAAS,CAAC;AAAA,MACnB;AACA,UAAI,QAAQ,OAAO;AACnB,aAAO,KAAK,KAAK;AACjB,UAAI,SAAS,OAAO,WAAW,OAAO,QAAQ;AAC9C,UAAI,OAAO,YAAY,GAAG,eAAe,YAAY;AACnD,aAAK,aAAa,YAAY,GAAG;AAAA,MACnC,OAAO;AACL,aAAK,aAAa,OAAO,eAAe,IAAI,EAAE;AAAA,MAChD;AACA,eAAS,MAAM;AACb,YAAI;AACJ,gBAAQ,OAAO,IAAI,KAAK,OAAO,IAAI,KAAK;AACxC,YAAI,OAAO,UAAU,UAAU;AAC7B,cAAI,iBAAiB,OAAO;AAC1B,qBAAS;AACT,oBAAQ,OAAO,IAAI;AAAA,UACrB;AACA,kBAAQ,KAAK,SAAS,KAAK,KAAK;AAAA,QAClC;AACA,eAAO;AAAA,MACT;AACA,UAAI,QAAQ,OAAO,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,KAAK,UAAU;AAC5D,aAAO,MAAM;AACX,gBAAQ,MAAM,MAAM,SAAS,CAAC;AAC9B,YAAI,KAAK,eAAe,KAAK,GAAG;AAC9B,mBAAS,KAAK,eAAe,KAAK;AAAA,QACpC,OAAO;AACL,cAAI,WAAW,QAAQ,OAAO,UAAU,aAAa;AACnD,qBAAS,IAAI;AAAA,UACf;AACA,mBAAS,MAAM,KAAK,KAAK,MAAM,KAAK,EAAE,MAAM;AAAA,QAC9C;AACA,YAAI,OAAO,WAAW,eAAe,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;AACjE,cAAI,SAAS;AACb,qBAAW,CAAC;AACZ,eAAK,KAAK,MAAM,KAAK,GAAG;AACtB,gBAAI,KAAK,WAAW,CAAC,KAAK,IAAI,QAAQ;AACpC,uBAAS,KAAK,MAAM,KAAK,WAAW,CAAC,IAAI,GAAG;AAAA,YAC9C;AAAA,UACF;AACA,cAAI,OAAO,cAAc;AACvB,qBAAS,0BAA0B,WAAW,KAAK,QAAQ,OAAO,aAAa,IAAI,iBAAiB,SAAS,KAAK,IAAI,IAAI,aAAa,KAAK,WAAW,MAAM,KAAK,UAAU;AAAA,UAC9K,OAAO;AACL,qBAAS,0BAA0B,WAAW,KAAK,mBAAmB,UAAU,MAAM,iBAAiB,OAAO,KAAK,WAAW,MAAM,KAAK,UAAU;AAAA,UACrJ;AACA,eAAK,WAAW,QAAQ;AAAA,YACtB,MAAM,OAAO;AAAA,YACb,OAAO,KAAK,WAAW,MAAM,KAAK;AAAA,YAClC,MAAM,OAAO;AAAA,YACb,KAAK;AAAA,YACL;AAAA,UACF,CAAC;AAAA,QACH;AACA,YAAI,OAAO,CAAC,aAAa,SAAS,OAAO,SAAS,GAAG;AACnD,gBAAM,IAAI,MAAM,sDAAsD,QAAQ,cAAc,MAAM;AAAA,QACpG;AACA,gBAAQ,OAAO,CAAC,GAAG;AAAA,UACjB,KAAK;AACH,kBAAM,KAAK,MAAM;AACjB,mBAAO,KAAK,OAAO,MAAM;AACzB,mBAAO,KAAK,OAAO,MAAM;AACzB,kBAAM,KAAK,OAAO,CAAC,CAAC;AACpB,qBAAS;AACT;AACE,uBAAS,OAAO;AAChB,uBAAS,OAAO;AAChB,yBAAW,OAAO;AAClB,sBAAQ,OAAO;AAAA,YACjB;AACA;AAAA,UACF,KAAK;AACH,kBAAM,KAAK,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC;AACpC,kBAAM,IAAI,OAAO,OAAO,SAAS,GAAG;AACpC,kBAAM,KAAK;AAAA,cACT,YAAY,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE;AAAA,cAC/C,WAAW,OAAO,OAAO,SAAS,CAAC,EAAE;AAAA,cACrC,cAAc,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE;AAAA,cACjD,aAAa,OAAO,OAAO,SAAS,CAAC,EAAE;AAAA,YACzC;AACA,gBAAI,QAAQ;AACV,oBAAM,GAAG,QAAQ;AAAA,gBACf,OAAO,OAAO,UAAU,OAAO,EAAE,EAAE,MAAM,CAAC;AAAA,gBAC1C,OAAO,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC;AAAA,cACnC;AAAA,YACF;AACA,gBAAI,KAAK,cAAc,MAAM,OAAO;AAAA,cAClC;AAAA,cACA;AAAA,cACA;AAAA,cACA,YAAY;AAAA,cACZ,OAAO,CAAC;AAAA,cACR;AAAA,cACA;AAAA,YACF,EAAE,OAAO,IAAI,CAAC;AACd,gBAAI,OAAO,MAAM,aAAa;AAC5B,qBAAO;AAAA,YACT;AACA,gBAAI,KAAK;AACP,sBAAQ,MAAM,MAAM,GAAG,KAAK,MAAM,CAAC;AACnC,uBAAS,OAAO,MAAM,GAAG,KAAK,GAAG;AACjC,uBAAS,OAAO,MAAM,GAAG,KAAK,GAAG;AAAA,YACnC;AACA,kBAAM,KAAK,KAAK,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1C,mBAAO,KAAK,MAAM,CAAC;AACnB,mBAAO,KAAK,MAAM,EAAE;AACpB,uBAAW,MAAM,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,MAAM,MAAM,SAAS,CAAC,CAAC;AACjE,kBAAM,KAAK,QAAQ;AACnB;AAAA,UACF,KAAK;AACH,mBAAO;AAAA,QACX;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI,QAAQ,2BAAW;AACrB,QAAI,SAAS;AAAA,MACX,KAAK;AAAA,MACL,YAAY,SAAS,WAAW,KAAK,MAAM;AACzC,YAAI,KAAK,GAAG,QAAQ;AAClB,eAAK,GAAG,OAAO,WAAW,KAAK,IAAI;AAAA,QACrC,OAAO;AACL,gBAAM,IAAI,MAAM,GAAG;AAAA,QACrB;AAAA,MACF;AAAA;AAAA,MAEA,UAAU,SAAS,OAAO,IAAI;AAC5B,aAAK,KAAK,MAAM,KAAK,MAAM,CAAC;AAC5B,aAAK,SAAS;AACd,aAAK,QAAQ,KAAK,aAAa,KAAK,OAAO;AAC3C,aAAK,WAAW,KAAK,SAAS;AAC9B,aAAK,SAAS,KAAK,UAAU,KAAK,QAAQ;AAC1C,aAAK,iBAAiB,CAAC,SAAS;AAChC,aAAK,SAAS;AAAA,UACZ,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,WAAW;AAAA,UACX,aAAa;AAAA,QACf;AACA,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,QAAQ,CAAC,GAAG,CAAC;AAAA,QAC3B;AACA,aAAK,SAAS;AACd,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,OAAO,WAAW;AAChB,YAAI,KAAK,KAAK,OAAO,CAAC;AACtB,aAAK,UAAU;AACf,aAAK;AACL,aAAK;AACL,aAAK,SAAS;AACd,aAAK,WAAW;AAChB,YAAI,QAAQ,GAAG,MAAM,iBAAiB;AACtC,YAAI,OAAO;AACT,eAAK;AACL,eAAK,OAAO;AAAA,QACd,OAAO;AACL,eAAK,OAAO;AAAA,QACd;AACA,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,MAAM,CAAC;AAAA,QACrB;AACA,aAAK,SAAS,KAAK,OAAO,MAAM,CAAC;AACjC,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,OAAO,SAAS,IAAI;AAClB,YAAI,MAAM,GAAG;AACb,YAAI,QAAQ,GAAG,MAAM,eAAe;AACpC,aAAK,SAAS,KAAK,KAAK;AACxB,aAAK,SAAS,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,SAAS,GAAG;AAC5D,aAAK,UAAU;AACf,YAAI,WAAW,KAAK,MAAM,MAAM,eAAe;AAC/C,aAAK,QAAQ,KAAK,MAAM,OAAO,GAAG,KAAK,MAAM,SAAS,CAAC;AACvD,aAAK,UAAU,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,CAAC;AAC7D,YAAI,MAAM,SAAS,GAAG;AACpB,eAAK,YAAY,MAAM,SAAS;AAAA,QAClC;AACA,YAAI,IAAI,KAAK,OAAO;AACpB,aAAK,SAAS;AAAA,UACZ,YAAY,KAAK,OAAO;AAAA,UACxB,WAAW,KAAK,WAAW;AAAA,UAC3B,cAAc,KAAK,OAAO;AAAA,UAC1B,aAAa,SAAS,MAAM,WAAW,SAAS,SAAS,KAAK,OAAO,eAAe,KAAK,SAAS,SAAS,SAAS,MAAM,MAAM,EAAE,SAAS,MAAM,CAAC,EAAE,SAAS,KAAK,OAAO,eAAe;AAAA,QAC1L;AACA,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,SAAS,GAAG;AAAA,QACrD;AACA,aAAK,SAAS,KAAK,OAAO;AAC1B,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,MAAM,WAAW;AACf,aAAK,QAAQ;AACb,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,QAAQ,WAAW;AACjB,YAAI,KAAK,QAAQ,iBAAiB;AAChC,eAAK,aAAa;AAAA,QACpB,OAAO;AACL,iBAAO,KAAK,WAAW,4BAA4B,KAAK,WAAW,KAAK,qIAAqI,KAAK,aAAa,GAAG;AAAA,YAChO,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM,KAAK;AAAA,UACb,CAAC;AAAA,QACH;AACA,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,MAAM,SAAS,GAAG;AAChB,aAAK,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC;AAAA,MAChC;AAAA;AAAA,MAEA,WAAW,WAAW;AACpB,YAAI,OAAO,KAAK,QAAQ,OAAO,GAAG,KAAK,QAAQ,SAAS,KAAK,MAAM,MAAM;AACzE,gBAAQ,KAAK,SAAS,KAAK,QAAQ,MAAM,KAAK,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;AAAA,MAC7E;AAAA;AAAA,MAEA,eAAe,WAAW;AACxB,YAAI,OAAO,KAAK;AAChB,YAAI,KAAK,SAAS,IAAI;AACpB,kBAAQ,KAAK,OAAO,OAAO,GAAG,KAAK,KAAK,MAAM;AAAA,QAChD;AACA,gBAAQ,KAAK,OAAO,GAAG,EAAE,KAAK,KAAK,SAAS,KAAK,QAAQ,KAAK,QAAQ,OAAO,EAAE;AAAA,MACjF;AAAA;AAAA,MAEA,cAAc,WAAW;AACvB,YAAI,MAAM,KAAK,UAAU;AACzB,YAAI,IAAI,IAAI,MAAM,IAAI,SAAS,CAAC,EAAE,KAAK,GAAG;AAC1C,eAAO,MAAM,KAAK,cAAc,IAAI,OAAO,IAAI;AAAA,MACjD;AAAA;AAAA,MAEA,YAAY,SAAS,OAAO,cAAc;AACxC,YAAI,OAAO,OAAO;AAClB,YAAI,KAAK,QAAQ,iBAAiB;AAChC,mBAAS;AAAA,YACP,UAAU,KAAK;AAAA,YACf,QAAQ;AAAA,cACN,YAAY,KAAK,OAAO;AAAA,cACxB,WAAW,KAAK;AAAA,cAChB,cAAc,KAAK,OAAO;AAAA,cAC1B,aAAa,KAAK,OAAO;AAAA,YAC3B;AAAA,YACA,QAAQ,KAAK;AAAA,YACb,OAAO,KAAK;AAAA,YACZ,SAAS,KAAK;AAAA,YACd,SAAS,KAAK;AAAA,YACd,QAAQ,KAAK;AAAA,YACb,QAAQ,KAAK;AAAA,YACb,OAAO,KAAK;AAAA,YACZ,QAAQ,KAAK;AAAA,YACb,IAAI,KAAK;AAAA,YACT,gBAAgB,KAAK,eAAe,MAAM,CAAC;AAAA,YAC3C,MAAM,KAAK;AAAA,UACb;AACA,cAAI,KAAK,QAAQ,QAAQ;AACvB,mBAAO,OAAO,QAAQ,KAAK,OAAO,MAAM,MAAM,CAAC;AAAA,UACjD;AAAA,QACF;AACA,gBAAQ,MAAM,CAAC,EAAE,MAAM,iBAAiB;AACxC,YAAI,OAAO;AACT,eAAK,YAAY,MAAM;AAAA,QACzB;AACA,aAAK,SAAS;AAAA,UACZ,YAAY,KAAK,OAAO;AAAA,UACxB,WAAW,KAAK,WAAW;AAAA,UAC3B,cAAc,KAAK,OAAO;AAAA,UAC1B,aAAa,QAAQ,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,SAAS,KAAK,OAAO,cAAc,MAAM,CAAC,EAAE;AAAA,QAC/I;AACA,aAAK,UAAU,MAAM,CAAC;AACtB,aAAK,SAAS,MAAM,CAAC;AACrB,aAAK,UAAU;AACf,aAAK,SAAS,KAAK,OAAO;AAC1B,YAAI,KAAK,QAAQ,QAAQ;AACvB,eAAK,OAAO,QAAQ,CAAC,KAAK,QAAQ,KAAK,UAAU,KAAK,MAAM;AAAA,QAC9D;AACA,aAAK,QAAQ;AACb,aAAK,aAAa;AAClB,aAAK,SAAS,KAAK,OAAO,MAAM,MAAM,CAAC,EAAE,MAAM;AAC/C,aAAK,WAAW,MAAM,CAAC;AACvB,gBAAQ,KAAK,cAAc,KAAK,MAAM,KAAK,IAAI,MAAM,cAAc,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC;AACtH,YAAI,KAAK,QAAQ,KAAK,QAAQ;AAC5B,eAAK,OAAO;AAAA,QACd;AACA,YAAI,OAAO;AACT,iBAAO;AAAA,QACT,WAAW,KAAK,YAAY;AAC1B,mBAASA,MAAK,QAAQ;AACpB,iBAAKA,EAAC,IAAI,OAAOA,EAAC;AAAA,UACpB;AACA,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA;AAAA,MAEA,MAAM,WAAW;AACf,YAAI,KAAK,MAAM;AACb,iBAAO,KAAK;AAAA,QACd;AACA,YAAI,CAAC,KAAK,QAAQ;AAChB,eAAK,OAAO;AAAA,QACd;AACA,YAAI,OAAO,OAAO,WAAWE;AAC7B,YAAI,CAAC,KAAK,OAAO;AACf,eAAK,SAAS;AACd,eAAK,QAAQ;AAAA,QACf;AACA,YAAI,QAAQ,KAAK,cAAc;AAC/B,iBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,sBAAY,KAAK,OAAO,MAAM,KAAK,MAAM,MAAM,CAAC,CAAC,CAAC;AAClD,cAAI,cAAc,CAAC,SAAS,UAAU,CAAC,EAAE,SAAS,MAAM,CAAC,EAAE,SAAS;AAClE,oBAAQ;AACR,YAAAA,SAAQ;AACR,gBAAI,KAAK,QAAQ,iBAAiB;AAChC,sBAAQ,KAAK,WAAW,WAAW,MAAM,CAAC,CAAC;AAC3C,kBAAI,UAAU,OAAO;AACnB,uBAAO;AAAA,cACT,WAAW,KAAK,YAAY;AAC1B,wBAAQ;AACR;AAAA,cACF,OAAO;AACL,uBAAO;AAAA,cACT;AAAA,YACF,WAAW,CAAC,KAAK,QAAQ,MAAM;AAC7B;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,YAAI,OAAO;AACT,kBAAQ,KAAK,WAAW,OAAO,MAAMA,MAAK,CAAC;AAC3C,cAAI,UAAU,OAAO;AACnB,mBAAO;AAAA,UACT;AACA,iBAAO;AAAA,QACT;AACA,YAAI,KAAK,WAAW,IAAI;AACtB,iBAAO,KAAK;AAAA,QACd,OAAO;AACL,iBAAO,KAAK,WAAW,4BAA4B,KAAK,WAAW,KAAK,2BAA2B,KAAK,aAAa,GAAG;AAAA,YACtH,MAAM;AAAA,YACN,OAAO;AAAA,YACP,MAAM,KAAK;AAAA,UACb,CAAC;AAAA,QACH;AAAA,MACF;AAAA;AAAA,MAEA,KAAK,SAAS,MAAM;AAClB,YAAI,IAAI,KAAK,KAAK;AAClB,YAAI,GAAG;AACL,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO,KAAK,IAAI;AAAA,QAClB;AAAA,MACF;AAAA;AAAA,MAEA,OAAO,SAAS,MAAM,WAAW;AAC/B,aAAK,eAAe,KAAK,SAAS;AAAA,MACpC;AAAA;AAAA,MAEA,UAAU,SAAS,WAAW;AAC5B,YAAI,IAAI,KAAK,eAAe,SAAS;AACrC,YAAI,IAAI,GAAG;AACT,iBAAO,KAAK,eAAe,IAAI;AAAA,QACjC,OAAO;AACL,iBAAO,KAAK,eAAe,CAAC;AAAA,QAC9B;AAAA,MACF;AAAA;AAAA,MAEA,eAAe,SAAS,gBAAgB;AACtC,YAAI,KAAK,eAAe,UAAU,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,GAAG;AACrF,iBAAO,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC,EAAE;AAAA,QAC9E,OAAO;AACL,iBAAO,KAAK,WAAW,SAAS,EAAE;AAAA,QACpC;AAAA,MACF;AAAA;AAAA,MAEA,UAAU,SAAS,SAAS,GAAG;AAC7B,YAAI,KAAK,eAAe,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC;AACpD,YAAI,KAAK,GAAG;AACV,iBAAO,KAAK,eAAe,CAAC;AAAA,QAC9B,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF;AAAA;AAAA,MAEA,WAAW,SAAS,UAAU,WAAW;AACvC,aAAK,MAAM,SAAS;AAAA,MACtB;AAAA;AAAA,MAEA,gBAAgB,SAAS,iBAAiB;AACxC,eAAO,KAAK,eAAe;AAAA,MAC7B;AAAA,MACA,SAAS,EAAE,qBAAqB,KAAK;AAAA,MACrC,eAAe,SAAS,UAAU,IAAI,KAAK,2BAA2B,UAAU;AAC9E,gBAAQ,2BAA2B;AAAA,UACjC,KAAK;AACH,iBAAK,UAAU,KAAK;AACpB,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,UAAU,cAAc;AAC7B,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,iBAAK,SAAS,cAAc;AAC5B,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO;AAAA,QACX;AAAA,MACF;AAAA,MACA,OAAO,CAAC,sBAAsB,UAAU,kCAAkC,iBAAiB,iBAAiB,qDAAqD,6BAA6B,iGAAiG;AAAA,MAC/R,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,MAAM,GAAG,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,MAAM,GAAG,WAAW,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,KAAK,EAAE;AAAA,IAC5M;AACA,WAAO;AAAA,EACT,EAAE;AACF,UAAQ,QAAQ;AAChB,WAAS,SAAS;AAChB,SAAK,KAAK,CAAC;AAAA,EACb;AACA,SAAO,YAAY;AACnB,UAAQ,SAAS;AACjB,SAAO,IAAI,OAAO;AACpB,EAAE;AACF,OAAO,SAAS;AAChB,IAAM,WAAW;AACjB,IAAI,QAAQ,CAAC;AACb,IAAI,QAAQ,CAAC;AACb,IAAI,WAAW,CAAC;AAChB,IAAMC,SAAQ,MAAM;AAClB,UAAQ,CAAC;AACT,UAAQ,CAAC;AACT,aAAW,CAAC;AACZ,QAAQ;AACV;AACA,IAAM,aAAN,MAAiB;AAAA,EACf,YAAY,QAAQ,QAAQF,SAAQ,GAAG;AACrC,SAAK,SAAS;AACd,SAAK,SAAS;AACd,SAAK,QAAQA;AAAA,EACf;AACF;AACA,IAAM,UAAU,CAAC,QAAQ,QAAQA,WAAU;AACzC,QAAM,KAAK,IAAI,WAAW,QAAQ,QAAQA,MAAK,CAAC;AAClD;AACA,IAAM,aAAN,MAAiB;AAAA,EACf,YAAY,IAAI;AACd,SAAK,KAAK;AAAA,EACZ;AACF;AACA,IAAM,mBAAmB,CAAC,OAAO;AAC/B,OAAK,SAAO,aAAa,IAAI,UAAU,CAAC;AACxC,MAAI,CAAC,SAAS,EAAE,GAAG;AACjB,aAAS,EAAE,IAAI,IAAI,WAAW,EAAE;AAChC,UAAM,KAAK,SAAS,EAAE,CAAC;AAAA,EACzB;AACA,SAAO,SAAS,EAAE;AACpB;AACA,IAAM,WAAW,MAAM;AACvB,IAAM,WAAW,MAAM;AACvB,IAAM,WAAW,OAAO;AAAA,EACtB,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,GAAG,EAAE;AAAA,EAC5C,OAAO,MAAM,IAAI,CAACG,WAAU;AAAA,IAC1B,QAAQA,MAAK,OAAO;AAAA,IACpB,QAAQA,MAAK,OAAO;AAAA,IACpB,OAAOA,MAAK;AAAA,EACd,EAAE;AACJ;AACA,IAAM,KAAK;AAAA,EACT;AAAA,EACA,WAAW,MAAM,UAAU,EAAE;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAAD;AACF;AACA,IAAM,OAAO,MAAM,MAAM;AAAA,EACvB,OAAO,KAAK,MAAM;AAChB,WAAO,IAAI,MAAM,OAAO,EAAE,MAAM,KAAK;AAAA,EACvC;AAAA,EACA,YAAY,IAAI;AACd,SAAK,KAAK;AACV,SAAK,OAAO,IAAI,EAAE;AAAA,EACpB;AAAA,EACA,WAAW;AACT,WAAO,SAAS,KAAK,OAAO;AAAA,EAC9B;AACF;AACA,KAAK,QAAQ;AACb,IAAI,MAAM;AACV,IAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,OAAO,SAAS,MAAM,IAAI,UAAU,SAAS;AACjD,QAAM,EAAE,eAAe,QAAQ,KAAK,IAAI,UAAU;AAClD,QAAM,sBAAsB,cAAc;AAC1C,MAAI;AACJ,MAAI,kBAAkB,WAAW;AAC/B,qBAAiB,eAAO,OAAO,EAAE;AAAA,EACnC;AACA,QAAM,OAAO,kBAAkB,YAAY,eAAO,eAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,IAAI,eAAO,MAAM;AACjH,QAAM,MAAM,kBAAkB,YAAY,KAAK,OAAO,QAAQ,EAAE,IAAI,IAAI,eAAO,QAAQ,EAAE,IAAI;AAC7F,QAAM,SAAS,QAAQ,OAAO,SAAS,KAAK,UAAU,oBAAoB;AAC1E,QAAM,UAAU,QAAQ,OAAO,SAAS,KAAK,WAAW,oBAAoB;AAC5E,QAAM,eAAe,QAAQ,OAAO,SAAS,KAAK,gBAAgB,oBAAoB;AACtF,QAAM,iBAAiB,QAAQ,OAAO,SAAS,KAAK,kBAAkB,oBAAoB;AAC1F,QAAM,UAAU,QAAQ,OAAO,SAAS,KAAK,WAAW,oBAAoB;AAC5E,QAAM,UAAU,QAAQ,OAAO,SAAS,KAAK,WAAW,oBAAoB;AAC5E,QAAM,cAAc,QAAQ,OAAO,SAAS,KAAK,eAAe,oBAAoB;AACpF,mBAAiB,KAAK,QAAQ,OAAO,WAAW;AAChD,QAAM,QAAQ,QAAQ,GAAG,SAAS;AAClC,QAAM,YAAY,cAAc,aAAa;AAC7C,QAAM,YAAY;AAClB,QAAM,WAAW,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,SAAS,EAAE,YAAY,MAAM,aAAa,KAAK,EAAE,EAAE,UAAU,SAAS,EAAE,OAAO;AAAA,IACrI,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,OAAO,MAAM;AAAA,EAChB,CAAC;AACD,WAAS,KAAK;AACd,QAAM,cAAc,QAAa,iBAAe;AAChD,MAAI,OAAO,GAAG,EAAE,KAAK,SAAS,OAAO,EAAE,UAAU,OAAO,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,OAAO,GAAG,EAAE,EAAE,KAAK,aAAa,SAAS,GAAG;AAC1L,WAAO,eAAe,EAAE,KAAK,MAAM,EAAE,KAAK;AAAA,EAC5C,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,MAAM,EAAE,KAAK,UAAU,CAAC,MAAM;AACpF,WAAO,EAAE,KAAK,EAAE;AAAA,EAClB,CAAC,EAAE,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,QAAQ,CAAC,MAAM,YAAY,EAAE,EAAE,CAAC;AAC1E,QAAM,UAAU,CAAC,EAAE,IAAI,KAAK,OAAAF,OAAM,MAAM;AACtC,QAAI,CAAC,YAAY;AACf,aAAO;AAAA,IACT;AACA,WAAO,GAAG,GAAG;AAAA,EACf,MAAM,GAAG,KAAK,MAAMA,SAAQ,GAAG,IAAI,GAAG,GAAG,MAAM;AAAA,EAC/C;AACA,MAAI,OAAO,GAAG,EAAE,KAAK,SAAS,aAAa,EAAE,KAAK,eAAe,YAAY,EAAE,KAAK,aAAa,EAAE,EAAE,UAAU,MAAM,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,MAAM,GAAG,aAAa,MAAM,MAAM,IAAI,EAAE,KAAK,eAAe,CAAC,MAAM,EAAE,KAAK,QAAQ,IAAI,UAAU,KAAK,EAAE,KAAK,OAAO;AAC3W,QAAMG,QAAO,IAAI,OAAO,GAAG,EAAE,KAAK,SAAS,OAAO,EAAE,KAAK,QAAQ,MAAM,EAAE,KAAK,kBAAkB,GAAG,EAAE,UAAU,OAAO,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,SAAS,MAAM,EAAE,MAAM,kBAAkB,UAAU;AAC5M,QAAM,aAAa,QAAQ,OAAO,SAAS,KAAK,cAAc;AAC9D,MAAI,cAAc,YAAY;AAC5B,UAAM,WAAWA,MAAK,OAAO,gBAAgB,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,iBAAiB,GAAG,EAAE,EAAE,KAAK,iBAAiB,gBAAgB,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/M,aAAS,OAAO,MAAM,EAAE,KAAK,UAAU,IAAI,EAAE,KAAK,cAAc,CAAC,MAAM,YAAY,EAAE,OAAO,EAAE,CAAC;AAC/F,aAAS,OAAO,MAAM,EAAE,KAAK,UAAU,MAAM,EAAE,KAAK,cAAc,CAAC,MAAM,YAAY,EAAE,OAAO,EAAE,CAAC;AAAA,EACnG;AACA,MAAI;AACJ,UAAQ,WAAW;AAAA,IACjB,KAAK;AACH,iBAAW,CAAC,MAAM,EAAE;AACpB;AAAA,IACF,KAAK;AACH,iBAAW,CAAC,MAAM,YAAY,EAAE,OAAO,EAAE;AACzC;AAAA,IACF,KAAK;AACH,iBAAW,CAAC,MAAM,YAAY,EAAE,OAAO,EAAE;AACzC;AAAA,IACF;AACE,iBAAW;AAAA,EACf;AACA,EAAAA,MAAK,OAAO,MAAM,EAAE,KAAK,KAAK,6BAAqB,CAAC,EAAE,KAAK,UAAU,QAAQ,EAAE,KAAK,gBAAgB,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,KAAK,CAAC;AACjI;AACA,IAAM,WAAW;AAAA,EACf;AACF;AACA,IAAM,wBAAwB,CAAC,SAAS;AACtC,QAAM,cAAc,KAAK,WAAW,4BAA4B,EAAE,EAAE,WAAW,cAAc,IAAI,EAAE,KAAK;AACxG,SAAO;AACT;AACA,IAAM,gBAAgB,SAAS,MAAM,KAAK,QAAQ;AAClD,SAAS,QAAQ,CAAC,SAAS,cAAc,sBAAsB,IAAI,CAAC;AACpE,IAAM,UAAU;AAAA,EACd,QAAQ;AAAA,EACR;AAAA,EACA;AACF;", - "names": ["a", "x", "left", "a", "right", "center", "x", "max", "value", "index", "min", "value", "index", "array", "sum", "value", "index", "x", "a", "nodes", "link", "sort", "links", "x", "kx", "ky", "y", "value", "dy", "sourceLinks", "targetLinks", "x", "y", "constant_default", "x", "constant", "epsilon", "pi", "tau", "x", "y", "a", "slice", "x", "y", "link", "slice", "s", "constant_default", "pi", "tau", "x", "y", "x", "y", "x", "y", "x", "y", "beta", "point", "x", "y", "custom", "tension", "x", "y", "point", "custom", "tension", "x", "y", "point", "custom", "tension", "point", "x", "y", "x2", "y2", "epsilon", "a", "custom", "alpha", "x", "y", "point", "custom", "alpha", "x", "y", "point", "custom", "alpha", "x", "y", "x", "point", "y", "x", "y", "a", "x", "y", "k", "value", "index", "clear", "link"] -} diff --git a/.vuepress/.cache/deps/sequenceDiagram-465a088a-TV3IEBQJ.js b/.vuepress/.cache/deps/sequenceDiagram-465a088a-TV3IEBQJ.js deleted file mode 100644 index 16fac1a9f..000000000 --- a/.vuepress/.cache/deps/sequenceDiagram-465a088a-TV3IEBQJ.js +++ /dev/null @@ -1,3326 +0,0 @@ -import { - drawBackgroundRect, - drawEmbeddedImage, - drawImage, - drawRect, - getNoteRect, - getTextObj -} from "./chunk-UV6QJ4UL.js"; -import { - ZERO_WIDTH_SPACE, - addFunction, - assignWithDepth$1, - clear, - common$1, - configureSvgSize, - getAccDescription, - getAccTitle, - getConfig, - getDiagramTitle, - log$1, - parseFontSize, - require_dayjs_min, - require_dist, - sanitizeText$2, - select_default, - setAccDescription, - setAccTitle, - setDiagramTitle, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/sequenceDiagram-465a088a.js -var import_sanitize_url = __toESM(require_dist(), 1); -var import_dayjs = __toESM(require_dayjs_min(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $Vy = [4, 5, 16, 50, 52, 53], $Vz = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VA = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VB = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VC = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VD = [68, 69, 70], $VE = [1, 120]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "SD": 6, "document": 7, "line": 8, "statement": 9, "box_section": 10, "box_line": 11, "participant_statement": 12, "create": 13, "box": 14, "restOfLine": 15, "end": 16, "signal": 17, "autonumber": 18, "NUM": 19, "off": 20, "activate": 21, "actor": 22, "deactivate": 23, "note_statement": 24, "links_statement": 25, "link_statement": 26, "properties_statement": 27, "details_statement": 28, "title": 29, "legacy_title": 30, "acc_title": 31, "acc_title_value": 32, "acc_descr": 33, "acc_descr_value": 34, "acc_descr_multiline_value": 35, "loop": 36, "rect": 37, "opt": 38, "alt": 39, "else_sections": 40, "par": 41, "par_sections": 42, "par_over": 43, "critical": 44, "option_sections": 45, "break": 46, "option": 47, "and": 48, "else": 49, "participant": 50, "AS": 51, "participant_actor": 52, "destroy": 53, "note": 54, "placement": 55, "text2": 56, "over": 57, "actor_pair": 58, "links": 59, "link": 60, "properties": 61, "details": 62, "spaceList": 63, ",": 64, "left_of": 65, "right_of": 66, "signaltype": 67, "+": 68, "-": 69, "ACTOR": 70, "SOLID_OPEN_ARROW": 71, "DOTTED_OPEN_ARROW": 72, "SOLID_ARROW": 73, "DOTTED_ARROW": 74, "SOLID_CROSS": 75, "DOTTED_CROSS": 76, "SOLID_POINT": 77, "DOTTED_POINT": 78, "TXT": 79, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 6: "SD", 13: "create", 14: "box", 15: "restOfLine", 16: "end", 18: "autonumber", 19: "NUM", 20: "off", 21: "activate", 23: "deactivate", 29: "title", 30: "legacy_title", 31: "acc_title", 32: "acc_title_value", 33: "acc_descr", 34: "acc_descr_value", 35: "acc_descr_multiline_value", 36: "loop", 37: "rect", 38: "opt", 39: "alt", 41: "par", 43: "par_over", 44: "critical", 46: "break", 47: "option", 48: "and", 49: "else", 50: "participant", 51: "AS", 52: "participant_actor", 53: "destroy", 54: "note", 57: "over", 59: "links", 60: "link", 61: "properties", 62: "details", 64: ",", 65: "left_of", 66: "right_of", 68: "+", 69: "-", 70: "ACTOR", 71: "SOLID_OPEN_ARROW", 72: "DOTTED_OPEN_ARROW", 73: "SOLID_ARROW", 74: "DOTTED_ARROW", 75: "SOLID_CROSS", 76: "DOTTED_CROSS", 77: "SOLID_POINT", 78: "DOTTED_POINT", 79: "TXT" }, - productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [63, 2], [63, 1], [58, 3], [58, 1], [55, 1], [55, 1], [17, 5], [17, 5], [17, 4], [22, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [56, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 3: - yy.apply($$[$0]); - return $$[$0]; - case 4: - case 9: - this.$ = []; - break; - case 5: - case 10: - $$[$0 - 1].push($$[$0]); - this.$ = $$[$0 - 1]; - break; - case 6: - case 7: - case 11: - case 12: - this.$ = $$[$0]; - break; - case 8: - case 13: - this.$ = []; - break; - case 15: - $$[$0].type = "createParticipant"; - this.$ = $$[$0]; - break; - case 16: - $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) }); - $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] }); - this.$ = $$[$0 - 1]; - break; - case 18: - this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; - break; - case 19: - this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; - break; - case 20: - this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER }; - break; - case 21: - this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER }; - break; - case 22: - this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }; - break; - case 23: - this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] }; - break; - case 29: - yy.setDiagramTitle($$[$0].substring(6)); - this.$ = $$[$0].substring(6); - break; - case 30: - yy.setDiagramTitle($$[$0].substring(7)); - this.$ = $$[$0].substring(7); - break; - case 31: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 32: - case 33: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 34: - $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START }); - $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END }); - this.$ = $$[$0 - 1]; - break; - case 35: - $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START }); - $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END }); - this.$ = $$[$0 - 1]; - break; - case 36: - $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START }); - $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END }); - this.$ = $$[$0 - 1]; - break; - case 37: - $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START }); - $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END }); - this.$ = $$[$0 - 1]; - break; - case 38: - $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START }); - $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END }); - this.$ = $$[$0 - 1]; - break; - case 39: - $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START }); - $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END }); - this.$ = $$[$0 - 1]; - break; - case 40: - $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START }); - $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END }); - this.$ = $$[$0 - 1]; - break; - case 41: - $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START }); - $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END }); - this.$ = $$[$0 - 1]; - break; - case 43: - this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]); - break; - case 45: - this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]); - break; - case 47: - this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]); - break; - case 48: - $$[$0 - 3].draw = "participant"; - $$[$0 - 3].type = "addParticipant"; - $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]); - this.$ = $$[$0 - 3]; - break; - case 49: - $$[$0 - 1].draw = "participant"; - $$[$0 - 1].type = "addParticipant"; - this.$ = $$[$0 - 1]; - break; - case 50: - $$[$0 - 3].draw = "actor"; - $$[$0 - 3].type = "addParticipant"; - $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]); - this.$ = $$[$0 - 3]; - break; - case 51: - $$[$0 - 1].draw = "actor"; - $$[$0 - 1].type = "addParticipant"; - this.$ = $$[$0 - 1]; - break; - case 52: - $$[$0 - 1].type = "destroyParticipant"; - this.$ = $$[$0 - 1]; - break; - case 53: - this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }]; - break; - case 54: - $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2); - $$[$0 - 2][0] = $$[$0 - 2][0].actor; - $$[$0 - 2][1] = $$[$0 - 2][1].actor; - this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }]; - break; - case 55: - this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }]; - break; - case 56: - this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }]; - break; - case 57: - this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }]; - break; - case 58: - this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }]; - break; - case 61: - this.$ = [$$[$0 - 2], $$[$0]]; - break; - case 62: - this.$ = $$[$0]; - break; - case 63: - this.$ = yy.PLACEMENT.LEFTOF; - break; - case 64: - this.$ = yy.PLACEMENT.RIGHTOF; - break; - case 65: - this.$ = [ - $$[$0 - 4], - $$[$0 - 1], - { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true }, - { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] } - ]; - break; - case 66: - this.$ = [ - $$[$0 - 4], - $$[$0 - 1], - { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] }, - { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] } - ]; - break; - case 67: - this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }]; - break; - case 68: - this.$ = { type: "addParticipant", actor: $$[$0] }; - break; - case 69: - this.$ = yy.LINETYPE.SOLID_OPEN; - break; - case 70: - this.$ = yy.LINETYPE.DOTTED_OPEN; - break; - case 71: - this.$ = yy.LINETYPE.SOLID; - break; - case 72: - this.$ = yy.LINETYPE.DOTTED; - break; - case 73: - this.$ = yy.LINETYPE.SOLID_CROSS; - break; - case 74: - this.$ = yy.LINETYPE.DOTTED_CROSS; - break; - case 75: - this.$ = yy.LINETYPE.SOLID_POINT; - break; - case 76: - this.$ = yy.LINETYPE.DOTTED_POINT; - break; - case 77: - this.$ = yy.parseMessage($$[$0].trim().substring(1)); - break; - } - }, - table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 7]), o($Vx, [2, 8]), o($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: $Vw }, { 22: 55, 70: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o($Vx, [2, 29]), o($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o($Vx, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 70: $Vw }, { 22: 72, 70: $Vw }, { 22: 73, 70: $Vw }, { 67: 74, 71: [1, 75], 72: [1, 76], 73: [1, 77], 74: [1, 78], 75: [1, 79], 76: [1, 80], 77: [1, 81], 78: [1, 82] }, { 55: 83, 57: [1, 84], 65: [1, 85], 66: [1, 86] }, { 22: 87, 70: $Vw }, { 22: 88, 70: $Vw }, { 22: 89, 70: $Vw }, { 22: 90, 70: $Vw }, o([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79], [2, 68]), o($Vx, [2, 6]), o($Vx, [2, 15]), o($Vy, [2, 9], { 10: 91 }), o($Vx, [2, 17]), { 5: [1, 93], 19: [1, 92] }, { 5: [1, 94] }, o($Vx, [2, 21]), { 5: [1, 95] }, { 5: [1, 96] }, o($Vx, [2, 24]), o($Vx, [2, 25]), o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 31]), o($Vx, [2, 32]), o($Vz, $V3, { 7: 97 }), o($Vz, $V3, { 7: 98 }), o($Vz, $V3, { 7: 99 }), o($VA, $V3, { 40: 100, 7: 101 }), o($VB, $V3, { 42: 102, 7: 103 }), o($VB, $V3, { 7: 103, 42: 104 }), o($VC, $V3, { 45: 105, 7: 106 }), o($Vz, $V3, { 7: 107 }), { 5: [1, 109], 51: [1, 108] }, { 5: [1, 111], 51: [1, 110] }, { 5: [1, 112] }, { 22: 115, 68: [1, 113], 69: [1, 114], 70: $Vw }, o($VD, [2, 69]), o($VD, [2, 70]), o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), { 22: 116, 70: $Vw }, { 22: 118, 58: 117, 70: $Vw }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 119, 79: $VE }, { 56: 121, 79: $VE }, { 56: 122, 79: $VE }, { 56: 123, 79: $VE }, { 4: [1, 126], 5: [1, 128], 11: 125, 12: 127, 16: [1, 124], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 129] }, o($Vx, [2, 19]), o($Vx, [2, 20]), o($Vx, [2, 22]), o($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 130], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 131], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 132], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 133] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 134], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 135] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 136], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 137] }, { 16: [1, 138] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 139], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 140], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 15: [1, 141] }, o($Vx, [2, 49]), { 15: [1, 142] }, o($Vx, [2, 51]), o($Vx, [2, 52]), { 22: 143, 70: $Vw }, { 22: 144, 70: $Vw }, { 56: 145, 79: $VE }, { 56: 146, 79: $VE }, { 56: 147, 79: $VE }, { 64: [1, 148], 79: [2, 62] }, { 5: [2, 55] }, { 5: [2, 77] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, o($Vx, [2, 16]), o($Vy, [2, 10]), { 12: 149, 50: $Vo, 52: $Vp, 53: $Vq }, o($Vy, [2, 12]), o($Vy, [2, 13]), o($Vx, [2, 18]), o($Vx, [2, 34]), o($Vx, [2, 35]), o($Vx, [2, 36]), o($Vx, [2, 37]), { 15: [1, 150] }, o($Vx, [2, 38]), { 15: [1, 151] }, o($Vx, [2, 39]), o($Vx, [2, 40]), { 15: [1, 152] }, o($Vx, [2, 41]), { 5: [1, 153] }, { 5: [1, 154] }, { 56: 155, 79: $VE }, { 56: 156, 79: $VE }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 157, 70: $Vw }, o($Vy, [2, 11]), o($VA, $V3, { 7: 101, 40: 158 }), o($VB, $V3, { 7: 103, 42: 159 }), o($VC, $V3, { 7: 106, 45: 160 }), o($Vx, [2, 48]), o($Vx, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 79: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }], - defaultActions: { 5: [2, 1], 6: [2, 2], 85: [2, 63], 86: [2, 64], 119: [2, 55], 120: [2, 77], 121: [2, 56], 122: [2, 57], 123: [2, 58], 145: [2, 67], 146: [2, 53], 147: [2, 54], 155: [2, 65], 156: [2, 66], 157: [2, 61], 158: [2, 47], 159: [2, 45], 160: [2, 43] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - return 5; - case 1: - break; - case 2: - break; - case 3: - break; - case 4: - break; - case 5: - break; - case 6: - return 19; - case 7: - this.begin("LINE"); - return 14; - case 8: - this.begin("ID"); - return 50; - case 9: - this.begin("ID"); - return 52; - case 10: - return 13; - case 11: - this.begin("ID"); - return 53; - case 12: - yy_.yytext = yy_.yytext.trim(); - this.begin("ALIAS"); - return 70; - case 13: - this.popState(); - this.popState(); - this.begin("LINE"); - return 51; - case 14: - this.popState(); - this.popState(); - return 5; - case 15: - this.begin("LINE"); - return 36; - case 16: - this.begin("LINE"); - return 37; - case 17: - this.begin("LINE"); - return 38; - case 18: - this.begin("LINE"); - return 39; - case 19: - this.begin("LINE"); - return 49; - case 20: - this.begin("LINE"); - return 41; - case 21: - this.begin("LINE"); - return 43; - case 22: - this.begin("LINE"); - return 48; - case 23: - this.begin("LINE"); - return 44; - case 24: - this.begin("LINE"); - return 47; - case 25: - this.begin("LINE"); - return 46; - case 26: - this.popState(); - return 15; - case 27: - return 16; - case 28: - return 65; - case 29: - return 66; - case 30: - return 59; - case 31: - return 60; - case 32: - return 61; - case 33: - return 62; - case 34: - return 57; - case 35: - return 54; - case 36: - this.begin("ID"); - return 21; - case 37: - this.begin("ID"); - return 23; - case 38: - return 29; - case 39: - return 30; - case 40: - this.begin("acc_title"); - return 31; - case 41: - this.popState(); - return "acc_title_value"; - case 42: - this.begin("acc_descr"); - return 33; - case 43: - this.popState(); - return "acc_descr_value"; - case 44: - this.begin("acc_descr_multiline"); - break; - case 45: - this.popState(); - break; - case 46: - return "acc_descr_multiline_value"; - case 47: - return 6; - case 48: - return 18; - case 49: - return 20; - case 50: - return 64; - case 51: - return 5; - case 52: - yy_.yytext = yy_.yytext.trim(); - return 70; - case 53: - return 73; - case 54: - return 74; - case 55: - return 71; - case 56: - return 72; - case 57: - return 75; - case 58: - return 76; - case 59: - return 77; - case 60: - return 78; - case 61: - return 79; - case 62: - return 68; - case 63: - return 69; - case 64: - return 5; - case 65: - return "INVALID"; - } - }, - rules: [/^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:create\b)/i, /^(?:destroy\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:par_over\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "acc_descr_multiline": { "rules": [45, 46], "inclusive": false }, "acc_descr": { "rules": [43], "inclusive": false }, "acc_title": { "rules": [41], "inclusive": false }, "ID": { "rules": [2, 3, 12], "inclusive": false }, "ALIAS": { "rules": [2, 3, 13, 14], "inclusive": false }, "LINE": { "rules": [2, 3, 26], "inclusive": false }, "INITIAL": { "rules": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var prevActor = void 0; -var actors = {}; -var createdActors = {}; -var destroyedActors = {}; -var boxes = []; -var messages = []; -var sequenceNumbersEnabled = false; -var wrapEnabled; -var currentBox = void 0; -var lastCreated = void 0; -var lastDestroyed = void 0; -var addBox = function(data) { - boxes.push({ - name: data.text, - wrap: data.wrap === void 0 && autoWrap() || !!data.wrap, - fill: data.color, - actorKeys: [] - }); - currentBox = boxes.slice(-1)[0]; -}; -var addActor = function(id, name, description, type) { - let assignedBox = currentBox; - const old = actors[id]; - if (old) { - if (currentBox && old.box && currentBox !== old.box) { - throw new Error( - "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + currentBox.name + "' at the same time." - ); - } - assignedBox = old.box ? old.box : currentBox; - old.box = assignedBox; - if (old && name === old.name && description == null) { - return; - } - } - if (description == null || description.text == null) { - description = { text: name, wrap: null, type }; - } - if (type == null || description.text == null) { - description = { text: name, wrap: null, type }; - } - actors[id] = { - box: assignedBox, - name, - description: description.text, - wrap: description.wrap === void 0 && autoWrap() || !!description.wrap, - prevActor, - links: {}, - properties: {}, - actorCnt: null, - rectData: null, - type: type || "participant" - }; - if (prevActor && actors[prevActor]) { - actors[prevActor].nextActor = id; - } - if (currentBox) { - currentBox.actorKeys.push(id); - } - prevActor = id; -}; -var activationCount = (part) => { - let i; - let count = 0; - for (i = 0; i < messages.length; i++) { - if (messages[i].type === LINETYPE.ACTIVE_START && messages[i].from.actor === part) { - count++; - } - if (messages[i].type === LINETYPE.ACTIVE_END && messages[i].from.actor === part) { - count--; - } - } - return count; -}; -var addMessage = function(idFrom, idTo, message, answer) { - messages.push({ - from: idFrom, - to: idTo, - message: message.text, - wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, - answer - }); -}; -var addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType, activate = false) { - if (messageType === LINETYPE.ACTIVE_END) { - const cnt = activationCount(idFrom.actor); - if (cnt < 1) { - let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")"); - error.hash = { - text: "->>-", - token: "->>-", - line: "1", - loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, - expected: ["'ACTIVE_PARTICIPANT'"] - }; - throw error; - } - } - messages.push({ - from: idFrom, - to: idTo, - message: message.text, - wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, - type: messageType, - activate - }); - return true; -}; -var hasAtLeastOneBox = function() { - return boxes.length > 0; -}; -var hasAtLeastOneBoxWithTitle = function() { - return boxes.some((b) => b.name); -}; -var getMessages = function() { - return messages; -}; -var getBoxes = function() { - return boxes; -}; -var getActors = function() { - return actors; -}; -var getCreatedActors = function() { - return createdActors; -}; -var getDestroyedActors = function() { - return destroyedActors; -}; -var getActor = function(id) { - return actors[id]; -}; -var getActorKeys = function() { - return Object.keys(actors); -}; -var enableSequenceNumbers = function() { - sequenceNumbersEnabled = true; -}; -var disableSequenceNumbers = function() { - sequenceNumbersEnabled = false; -}; -var showSequenceNumbers = () => sequenceNumbersEnabled; -var setWrap = function(wrapSetting) { - wrapEnabled = wrapSetting; -}; -var autoWrap = () => { - if (wrapEnabled !== void 0) { - return wrapEnabled; - } - return getConfig().sequence.wrap; -}; -var clear2 = function() { - actors = {}; - createdActors = {}; - destroyedActors = {}; - boxes = []; - messages = []; - sequenceNumbersEnabled = false; - clear(); -}; -var parseMessage = function(str) { - const _str = str.trim(); - const message = { - text: _str.replace(/^:?(?:no)?wrap:/, "").trim(), - wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0 - }; - log$1.debug("parseMessage:", message); - return message; -}; -var parseBoxData = function(str) { - const match = str.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/); - let color = match != null && match[1] ? match[1].trim() : "transparent"; - let title = match != null && match[2] ? match[2].trim() : void 0; - if (window && window.CSS) { - if (!window.CSS.supports("color", color)) { - color = "transparent"; - title = str.trim(); - } - } else { - const style = new Option().style; - style.color = color; - if (style.color !== color) { - color = "transparent"; - title = str.trim(); - } - } - const boxData = { - color, - text: title !== void 0 ? sanitizeText$2(title.replace(/^:?(?:no)?wrap:/, ""), getConfig()) : void 0, - wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0 - }; - return boxData; -}; -var LINETYPE = { - SOLID: 0, - DOTTED: 1, - NOTE: 2, - SOLID_CROSS: 3, - DOTTED_CROSS: 4, - SOLID_OPEN: 5, - DOTTED_OPEN: 6, - LOOP_START: 10, - LOOP_END: 11, - ALT_START: 12, - ALT_ELSE: 13, - ALT_END: 14, - OPT_START: 15, - OPT_END: 16, - ACTIVE_START: 17, - ACTIVE_END: 18, - PAR_START: 19, - PAR_AND: 20, - PAR_END: 21, - RECT_START: 22, - RECT_END: 23, - SOLID_POINT: 24, - DOTTED_POINT: 25, - AUTONUMBER: 26, - CRITICAL_START: 27, - CRITICAL_OPTION: 28, - CRITICAL_END: 29, - BREAK_START: 30, - BREAK_END: 31, - PAR_OVER_START: 32 -}; -var ARROWTYPE = { - FILLED: 0, - OPEN: 1 -}; -var PLACEMENT = { - LEFTOF: 0, - RIGHTOF: 1, - OVER: 2 -}; -var addNote = function(actor, placement, message) { - ({ - actor, - placement, - message: message.text, - wrap: message.wrap === void 0 && autoWrap() || !!message.wrap - }); - const actors2 = [].concat(actor, actor); - messages.push({ - from: actors2[0], - to: actors2[1], - message: message.text, - wrap: message.wrap === void 0 && autoWrap() || !!message.wrap, - type: LINETYPE.NOTE, - placement - }); -}; -var addLinks = function(actorId, text) { - const actor = getActor(actorId); - try { - let sanitizedText = sanitizeText$2(text.text, getConfig()); - sanitizedText = sanitizedText.replace(/&/g, "&"); - sanitizedText = sanitizedText.replace(/=/g, "="); - const links = JSON.parse(sanitizedText); - insertLinks(actor, links); - } catch (e) { - log$1.error("error while parsing actor link text", e); - } -}; -var addALink = function(actorId, text) { - const actor = getActor(actorId); - try { - const links = {}; - let sanitizedText = sanitizeText$2(text.text, getConfig()); - var sep = sanitizedText.indexOf("@"); - sanitizedText = sanitizedText.replace(/&/g, "&"); - sanitizedText = sanitizedText.replace(/=/g, "="); - var label = sanitizedText.slice(0, sep - 1).trim(); - var link = sanitizedText.slice(sep + 1).trim(); - links[label] = link; - insertLinks(actor, links); - } catch (e) { - log$1.error("error while parsing actor link text", e); - } -}; -function insertLinks(actor, links) { - if (actor.links == null) { - actor.links = links; - } else { - for (let key in links) { - actor.links[key] = links[key]; - } - } -} -var addProperties = function(actorId, text) { - const actor = getActor(actorId); - try { - let sanitizedText = sanitizeText$2(text.text, getConfig()); - const properties = JSON.parse(sanitizedText); - insertProperties(actor, properties); - } catch (e) { - log$1.error("error while parsing actor properties text", e); - } -}; -function insertProperties(actor, properties) { - if (actor.properties == null) { - actor.properties = properties; - } else { - for (let key in properties) { - actor.properties[key] = properties[key]; - } - } -} -function boxEnd() { - currentBox = void 0; -} -var addDetails = function(actorId, text) { - const actor = getActor(actorId); - const elem = document.getElementById(text.text); - try { - const text2 = elem.innerHTML; - const details = JSON.parse(text2); - if (details["properties"]) { - insertProperties(actor, details["properties"]); - } - if (details["links"]) { - insertLinks(actor, details["links"]); - } - } catch (e) { - log$1.error("error while parsing actor details text", e); - } -}; -var getActorProperty = function(actor, key) { - if (actor !== void 0 && actor.properties !== void 0) { - return actor.properties[key]; - } - return void 0; -}; -var apply = function(param) { - if (Array.isArray(param)) { - param.forEach(function(item) { - apply(item); - }); - } else { - switch (param.type) { - case "sequenceIndex": - messages.push({ - from: void 0, - to: void 0, - message: { - start: param.sequenceIndex, - step: param.sequenceIndexStep, - visible: param.sequenceVisible - }, - wrap: false, - type: param.signalType - }); - break; - case "addParticipant": - addActor(param.actor, param.actor, param.description, param.draw); - break; - case "createParticipant": - if (actors[param.actor]) { - throw new Error( - "It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior" - ); - } - lastCreated = param.actor; - addActor(param.actor, param.actor, param.description, param.draw); - createdActors[param.actor] = messages.length; - break; - case "destroyParticipant": - lastDestroyed = param.actor; - destroyedActors[param.actor] = messages.length; - break; - case "activeStart": - addSignal(param.actor, void 0, void 0, param.signalType); - break; - case "activeEnd": - addSignal(param.actor, void 0, void 0, param.signalType); - break; - case "addNote": - addNote(param.actor, param.placement, param.text); - break; - case "addLinks": - addLinks(param.actor, param.text); - break; - case "addALink": - addALink(param.actor, param.text); - break; - case "addProperties": - addProperties(param.actor, param.text); - break; - case "addDetails": - addDetails(param.actor, param.text); - break; - case "addMessage": - if (lastCreated) { - if (param.to !== lastCreated) { - throw new Error( - "The created participant " + lastCreated + " does not have an associated creating message after its declaration. Please check the sequence diagram." - ); - } else { - lastCreated = void 0; - } - } else if (lastDestroyed) { - if (param.to !== lastDestroyed && param.from !== lastDestroyed) { - throw new Error( - "The destroyed participant " + lastDestroyed + " does not have an associated destroying message after its declaration. Please check the sequence diagram." - ); - } else { - lastDestroyed = void 0; - } - } - addSignal(param.from, param.to, param.msg, param.signalType, param.activate); - break; - case "boxStart": - addBox(param.boxData); - break; - case "boxEnd": - boxEnd(); - break; - case "loopStart": - addSignal(void 0, void 0, param.loopText, param.signalType); - break; - case "loopEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - case "rectStart": - addSignal(void 0, void 0, param.color, param.signalType); - break; - case "rectEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - case "optStart": - addSignal(void 0, void 0, param.optText, param.signalType); - break; - case "optEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - case "altStart": - addSignal(void 0, void 0, param.altText, param.signalType); - break; - case "else": - addSignal(void 0, void 0, param.altText, param.signalType); - break; - case "altEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - case "setAccTitle": - setAccTitle(param.text); - break; - case "parStart": - addSignal(void 0, void 0, param.parText, param.signalType); - break; - case "and": - addSignal(void 0, void 0, param.parText, param.signalType); - break; - case "parEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - case "criticalStart": - addSignal(void 0, void 0, param.criticalText, param.signalType); - break; - case "option": - addSignal(void 0, void 0, param.optionText, param.signalType); - break; - case "criticalEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - case "breakStart": - addSignal(void 0, void 0, param.breakText, param.signalType); - break; - case "breakEnd": - addSignal(void 0, void 0, void 0, param.signalType); - break; - } - } -}; -var db = { - addActor, - addMessage, - addSignal, - addLinks, - addDetails, - addProperties, - autoWrap, - setWrap, - enableSequenceNumbers, - disableSequenceNumbers, - showSequenceNumbers, - getMessages, - getActors, - getCreatedActors, - getDestroyedActors, - getActor, - getActorKeys, - getActorProperty, - getAccTitle, - getBoxes, - getDiagramTitle, - setDiagramTitle, - getConfig: () => getConfig().sequence, - clear: clear2, - parseMessage, - parseBoxData, - LINETYPE, - ARROWTYPE, - PLACEMENT, - addNote, - setAccTitle, - apply, - setAccDescription, - getAccDescription, - hasAtLeastOneBox, - hasAtLeastOneBoxWithTitle -}; -var getStyles = (options) => `.actor { - stroke: ${options.actorBorder}; - fill: ${options.actorBkg}; - } - - text.actor > tspan { - fill: ${options.actorTextColor}; - stroke: none; - } - - .actor-line { - stroke: ${options.actorLineColor}; - } - - .messageLine0 { - stroke-width: 1.5; - stroke-dasharray: none; - stroke: ${options.signalColor}; - } - - .messageLine1 { - stroke-width: 1.5; - stroke-dasharray: 2, 2; - stroke: ${options.signalColor}; - } - - #arrowhead path { - fill: ${options.signalColor}; - stroke: ${options.signalColor}; - } - - .sequenceNumber { - fill: ${options.sequenceNumberColor}; - } - - #sequencenumber { - fill: ${options.signalColor}; - } - - #crosshead path { - fill: ${options.signalColor}; - stroke: ${options.signalColor}; - } - - .messageText { - fill: ${options.signalTextColor}; - stroke: none; - } - - .labelBox { - stroke: ${options.labelBoxBorderColor}; - fill: ${options.labelBoxBkgColor}; - } - - .labelText, .labelText > tspan { - fill: ${options.labelTextColor}; - stroke: none; - } - - .loopText, .loopText > tspan { - fill: ${options.loopTextColor}; - stroke: none; - } - - .loopLine { - stroke-width: 2px; - stroke-dasharray: 2, 2; - stroke: ${options.labelBoxBorderColor}; - fill: ${options.labelBoxBorderColor}; - } - - .note { - //stroke: #decc93; - stroke: ${options.noteBorderColor}; - fill: ${options.noteBkgColor}; - } - - .noteText, .noteText > tspan { - fill: ${options.noteTextColor}; - stroke: none; - } - - .activation0 { - fill: ${options.activationBkgColor}; - stroke: ${options.activationBorderColor}; - } - - .activation1 { - fill: ${options.activationBkgColor}; - stroke: ${options.activationBorderColor}; - } - - .activation2 { - fill: ${options.activationBkgColor}; - stroke: ${options.activationBorderColor}; - } - - .actorPopupMenu { - position: absolute; - } - - .actorPopupMenuPanel { - position: absolute; - fill: ${options.actorBkg}; - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); -} - .actor-man line { - stroke: ${options.actorBorder}; - fill: ${options.actorBkg}; - } - .actor-man circle, line { - stroke: ${options.actorBorder}; - fill: ${options.actorBkg}; - stroke-width: 2px; - } -`; -var styles = getStyles; -var ACTOR_TYPE_WIDTH = 18 * 2; -var drawRect2 = function(elem, rectData) { - return drawRect(elem, rectData); -}; -var addPopupInteraction = (id, actorCnt2) => { - addFunction(() => { - const arr = document.querySelectorAll(id); - if (arr.length === 0) { - return; - } - arr[0].addEventListener("mouseover", function() { - popupMenuUpFunc("actor" + actorCnt2 + "_popup"); - }); - arr[0].addEventListener("mouseout", function() { - popupMenuDownFunc("actor" + actorCnt2 + "_popup"); - }); - }); -}; -var drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) { - if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) { - return { height: 0, width: 0 }; - } - const links = actor.links; - const actorCnt2 = actor.actorCnt; - const rectData = actor.rectData; - var displayValue = "none"; - if (forceMenus) { - displayValue = "block !important"; - } - const g = elem.append("g"); - g.attr("id", "actor" + actorCnt2 + "_popup"); - g.attr("class", "actorPopupMenu"); - g.attr("display", displayValue); - addPopupInteraction("#actor" + actorCnt2 + "_popup", actorCnt2); - var actorClass = ""; - if (rectData.class !== void 0) { - actorClass = " " + rectData.class; - } - let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth; - const rectElem = g.append("rect"); - rectElem.attr("class", "actorPopupMenuPanel" + actorClass); - rectElem.attr("x", rectData.x); - rectElem.attr("y", rectData.height); - rectElem.attr("fill", rectData.fill); - rectElem.attr("stroke", rectData.stroke); - rectElem.attr("width", menuWidth); - rectElem.attr("height", rectData.height); - rectElem.attr("rx", rectData.rx); - rectElem.attr("ry", rectData.ry); - if (links != null) { - var linkY = 20; - for (let key in links) { - var linkElem = g.append("a"); - var sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(links[key]); - linkElem.attr("xlink:href", sanitizedLink); - linkElem.attr("target", "_blank"); - _drawMenuItemTextCandidateFunc(textAttrs)( - key, - linkElem, - rectData.x + 10, - rectData.height + linkY, - menuWidth, - 20, - { class: "actor" }, - textAttrs - ); - linkY += 30; - } - } - rectElem.attr("height", linkY); - return { height: rectData.height + linkY, width: menuWidth }; -}; -var popupMenu = function(popid) { - return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'block'; }"; -}; -var popdownMenu = function(popid) { - return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'none'; }"; -}; -var popupMenuUpFunc = function(popupId) { - var pu = document.getElementById(popupId); - if (pu != null) { - pu.style.display = "block"; - } -}; -var popupMenuDownFunc = function(popupId) { - var pu = document.getElementById(popupId); - if (pu != null) { - pu.style.display = "none"; - } -}; -var drawText = function(elem, textData) { - let prevTextHeight = 0; - let textHeight = 0; - const lines = textData.text.split(common$1.lineBreakRegex); - const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize); - let textElems = []; - let dy = 0; - let yfunc = () => textData.y; - if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) { - switch (textData.valign) { - case "top": - case "start": - yfunc = () => Math.round(textData.y + textData.textMargin); - break; - case "middle": - case "center": - yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2); - break; - case "bottom": - case "end": - yfunc = () => Math.round( - textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin - ); - break; - } - } - if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) { - switch (textData.anchor) { - case "left": - case "start": - textData.x = Math.round(textData.x + textData.textMargin); - textData.anchor = "start"; - textData.dominantBaseline = "middle"; - textData.alignmentBaseline = "middle"; - break; - case "middle": - case "center": - textData.x = Math.round(textData.x + textData.width / 2); - textData.anchor = "middle"; - textData.dominantBaseline = "middle"; - textData.alignmentBaseline = "middle"; - break; - case "right": - case "end": - textData.x = Math.round(textData.x + textData.width - textData.textMargin); - textData.anchor = "end"; - textData.dominantBaseline = "middle"; - textData.alignmentBaseline = "middle"; - break; - } - } - for (let [i, line] of lines.entries()) { - if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) { - dy = i * _textFontSize; - } - const textElem = elem.append("text"); - textElem.attr("x", textData.x); - textElem.attr("y", yfunc()); - if (textData.anchor !== void 0) { - textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline); - } - if (textData.fontFamily !== void 0) { - textElem.style("font-family", textData.fontFamily); - } - if (_textFontSizePx !== void 0) { - textElem.style("font-size", _textFontSizePx); - } - if (textData.fontWeight !== void 0) { - textElem.style("font-weight", textData.fontWeight); - } - if (textData.fill !== void 0) { - textElem.attr("fill", textData.fill); - } - if (textData.class !== void 0) { - textElem.attr("class", textData.class); - } - if (textData.dy !== void 0) { - textElem.attr("dy", textData.dy); - } else if (dy !== 0) { - textElem.attr("dy", dy); - } - const text = line || ZERO_WIDTH_SPACE; - if (textData.tspan) { - const span = textElem.append("tspan"); - span.attr("x", textData.x); - if (textData.fill !== void 0) { - span.attr("fill", textData.fill); - } - span.text(text); - } else { - textElem.text(text); - } - if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) { - textHeight += (textElem._groups || textElem)[0][0].getBBox().height; - prevTextHeight = textHeight; - } - textElems.push(textElem); - } - return textElems; -}; -var drawLabel = function(elem, txtObject) { - function genPoints(x, y, width, height, cut) { - return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); - } - const polygon = elem.append("polygon"); - polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7)); - polygon.attr("class", "labelBox"); - txtObject.y = txtObject.y + txtObject.height / 2; - drawText(elem, txtObject); - return polygon; -}; -var actorCnt = -1; -var fixLifeLineHeights = (diagram2, actors2, actorKeys, conf2) => { - if (!diagram2.select) { - return; - } - actorKeys.forEach((actorKey) => { - const actor = actors2[actorKey]; - const actorDOM = diagram2.select("#actor" + actor.actorCnt); - if (!conf2.mirrorActors && actor.stopy) { - actorDOM.attr("y2", actor.stopy + actor.height / 2); - } else if (conf2.mirrorActors) { - actorDOM.attr("y2", actor.stopy); - } - }); -}; -var drawActorTypeParticipant = function(elem, actor, conf2, isFooter) { - const actorY = isFooter ? actor.stopy : actor.starty; - const center = actor.x + actor.width / 2; - const centerY = actorY + 5; - const boxpluslineGroup = elem.append("g").lower(); - var g = boxpluslineGroup; - if (!isFooter) { - actorCnt++; - g.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"); - g = boxpluslineGroup.append("g"); - actor.actorCnt = actorCnt; - if (actor.links != null) { - g.attr("id", "root-" + actorCnt); - addPopupInteraction("#root-" + actorCnt, actorCnt); - } - } - const rect = getNoteRect(); - var cssclass = "actor"; - if (actor.properties != null && actor.properties["class"]) { - cssclass = actor.properties["class"]; - } else { - rect.fill = "#eaeaea"; - } - rect.x = actor.x; - rect.y = actorY; - rect.width = actor.width; - rect.height = actor.height; - rect.class = cssclass; - rect.rx = 3; - rect.ry = 3; - const rectElem = drawRect2(g, rect); - actor.rectData = rect; - if (actor.properties != null && actor.properties["icon"]) { - const iconSrc = actor.properties["icon"].trim(); - if (iconSrc.charAt(0) === "@") { - drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1)); - } else { - drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc); - } - } - _drawTextCandidateFunc(conf2)( - actor.description, - g, - rect.x, - rect.y, - rect.width, - rect.height, - { class: "actor" }, - conf2 - ); - let height = actor.height; - if (rectElem.node) { - const bounds2 = rectElem.node().getBBox(); - actor.height = bounds2.height; - height = bounds2.height; - } - return height; -}; -var drawActorTypeActor = function(elem, actor, conf2, isFooter) { - const actorY = isFooter ? actor.stopy : actor.starty; - const center = actor.x + actor.width / 2; - const centerY = actorY + 80; - elem.lower(); - if (!isFooter) { - actorCnt++; - elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center).attr("y1", centerY).attr("x2", center).attr("y2", 2e3).attr("class", "actor-line").attr("class", "200").attr("stroke-width", "0.5px").attr("stroke", "#999"); - actor.actorCnt = actorCnt; - } - const actElem = elem.append("g"); - actElem.attr("class", "actor-man"); - const rect = getNoteRect(); - rect.x = actor.x; - rect.y = actorY; - rect.fill = "#eaeaea"; - rect.width = actor.width; - rect.height = actor.height; - rect.class = "actor"; - rect.rx = 3; - rect.ry = 3; - actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center).attr("y1", actorY + 25).attr("x2", center).attr("y2", actorY + 45); - actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 33).attr("x2", center + ACTOR_TYPE_WIDTH / 2).attr("y2", actorY + 33); - actElem.append("line").attr("x1", center - ACTOR_TYPE_WIDTH / 2).attr("y1", actorY + 60).attr("x2", center).attr("y2", actorY + 45); - actElem.append("line").attr("x1", center).attr("y1", actorY + 45).attr("x2", center + ACTOR_TYPE_WIDTH / 2 - 2).attr("y2", actorY + 60); - const circle = actElem.append("circle"); - circle.attr("cx", actor.x + actor.width / 2); - circle.attr("cy", actorY + 10); - circle.attr("r", 15); - circle.attr("width", actor.width); - circle.attr("height", actor.height); - const bounds2 = actElem.node().getBBox(); - actor.height = bounds2.height; - _drawTextCandidateFunc(conf2)( - actor.description, - actElem, - rect.x, - rect.y + 35, - rect.width, - rect.height, - { class: "actor" }, - conf2 - ); - return actor.height; -}; -var drawActor = function(elem, actor, conf2, isFooter) { - switch (actor.type) { - case "actor": - return drawActorTypeActor(elem, actor, conf2, isFooter); - case "participant": - return drawActorTypeParticipant(elem, actor, conf2, isFooter); - } -}; -var drawBox = function(elem, box, conf2) { - const boxplustextGroup = elem.append("g"); - const g = boxplustextGroup; - drawBackgroundRect2(g, box); - if (box.name) { - _drawTextCandidateFunc(conf2)( - box.name, - g, - box.x, - box.y + (box.textMaxHeight || 0) / 2, - box.width, - 0, - { class: "text" }, - conf2 - ); - } - g.lower(); -}; -var anchorElement = function(elem) { - return elem.append("g"); -}; -var drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) { - const rect = getNoteRect(); - const g = bounds2.anchored; - rect.x = bounds2.startx; - rect.y = bounds2.starty; - rect.class = "activation" + actorActivations2 % 3; - rect.width = bounds2.stopx - bounds2.startx; - rect.height = verticalPos - bounds2.starty; - drawRect2(g, rect); -}; -var drawLoop = function(elem, loopModel, labelText, conf2) { - const { - boxMargin, - boxTextMargin, - labelBoxHeight, - labelBoxWidth, - messageFontFamily: fontFamily, - messageFontSize: fontSize, - messageFontWeight: fontWeight - } = conf2; - const g = elem.append("g"); - const drawLoopLine = function(startx, starty, stopx, stopy) { - return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine"); - }; - drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty); - drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy); - drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy); - drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy); - if (loopModel.sections !== void 0) { - loopModel.sections.forEach(function(item) { - drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style( - "stroke-dasharray", - "3, 3" - ); - }); - } - let txt = getTextObj(); - txt.text = labelText; - txt.x = loopModel.startx; - txt.y = loopModel.starty; - txt.fontFamily = fontFamily; - txt.fontSize = fontSize; - txt.fontWeight = fontWeight; - txt.anchor = "middle"; - txt.valign = "middle"; - txt.tspan = false; - txt.width = labelBoxWidth || 50; - txt.height = labelBoxHeight || 20; - txt.textMargin = boxTextMargin; - txt.class = "labelText"; - drawLabel(g, txt); - txt = getTextObj2(); - txt.text = loopModel.title; - txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2; - txt.y = loopModel.starty + boxMargin + boxTextMargin; - txt.anchor = "middle"; - txt.valign = "middle"; - txt.textMargin = boxTextMargin; - txt.class = "loopText"; - txt.fontFamily = fontFamily; - txt.fontSize = fontSize; - txt.fontWeight = fontWeight; - txt.wrap = true; - let textElem = drawText(g, txt); - if (loopModel.sectionTitles !== void 0) { - loopModel.sectionTitles.forEach(function(item, idx) { - if (item.message) { - txt.text = item.message; - txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2; - txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin; - txt.class = "loopText"; - txt.anchor = "middle"; - txt.valign = "middle"; - txt.tspan = false; - txt.fontFamily = fontFamily; - txt.fontSize = fontSize; - txt.fontWeight = fontWeight; - txt.wrap = loopModel.wrap; - textElem = drawText(g, txt); - let sectionHeight = Math.round( - textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr) - ); - loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin); - } - }); - } - loopModel.height = Math.round(loopModel.stopy - loopModel.starty); - return g; -}; -var drawBackgroundRect2 = function(elem, bounds2) { - drawBackgroundRect(elem, bounds2); -}; -var insertDatabaseIcon = function(elem) { - elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr( - "d", - "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" - ); -}; -var insertComputerIcon = function(elem) { - elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( - "d", - "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" - ); -}; -var insertClockIcon = function(elem) { - elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr( - "d", - "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" - ); -}; -var insertArrowHead = function(elem) { - elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 7.9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z"); -}; -var insertArrowFilledHead = function(elem) { - elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 15.5).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); -}; -var insertSequenceNumber = function(elem) { - elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6); -}; -var insertArrowCrossHead = function(elem) { - const defs = elem.append("defs"); - const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 4.5); - marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7"); -}; -var getTextObj2 = function() { - return { - x: 0, - y: 0, - fill: void 0, - anchor: void 0, - style: "#666", - width: void 0, - height: void 0, - textMargin: 0, - rx: 0, - ry: 0, - tspan: true, - valign: void 0 - }; -}; -var getNoteRect2 = function() { - return { - x: 0, - y: 0, - fill: "#EDF2AE", - stroke: "#666", - width: 100, - anchor: "start", - height: 100, - rx: 0, - ry: 0 - }; -}; -var _drawTextCandidateFunc = /* @__PURE__ */ function() { - function byText(content, g, x, y, width, height, textAttrs) { - const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("text-anchor", "middle").text(content); - _setTextAttrs(text, textAttrs); - } - function byTspan(content, g, x, y, width, height, textAttrs, conf2) { - const { actorFontSize, actorFontFamily, actorFontWeight } = conf2; - const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize); - const lines = content.split(common$1.lineBreakRegex); - for (let i = 0; i < lines.length; i++) { - const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2; - const text = g.append("text").attr("x", x + width / 2).attr("y", y).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily); - text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); - text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); - _setTextAttrs(text, textAttrs); - } - } - function byFo(content, g, x, y, width, height, textAttrs, conf2) { - const s = g.append("switch"); - const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); - const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); - text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); - byTspan(content, s, x, y, width, height, textAttrs, conf2); - _setTextAttrs(text, textAttrs); - } - function _setTextAttrs(toText, fromTextAttrsDict) { - for (const key in fromTextAttrsDict) { - if (fromTextAttrsDict.hasOwnProperty(key)) { - toText.attr(key, fromTextAttrsDict[key]); - } - } - } - return function(conf2) { - return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; - }; -}(); -var _drawMenuItemTextCandidateFunc = /* @__PURE__ */ function() { - function byText(content, g, x, y, width, height, textAttrs) { - const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").text(content); - _setTextAttrs(text, textAttrs); - } - function byTspan(content, g, x, y, width, height, textAttrs, conf2) { - const { actorFontSize, actorFontFamily, actorFontWeight } = conf2; - const lines = content.split(common$1.lineBreakRegex); - for (let i = 0; i < lines.length; i++) { - const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2; - const text = g.append("text").attr("x", x).attr("y", y).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily); - text.append("tspan").attr("x", x).attr("dy", dy).text(lines[i]); - text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); - _setTextAttrs(text, textAttrs); - } - } - function byFo(content, g, x, y, width, height, textAttrs, conf2) { - const s = g.append("switch"); - const f = s.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height); - const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); - text.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); - byTspan(content, s, x, y, width, height, textAttrs, conf2); - _setTextAttrs(text, textAttrs); - } - function _setTextAttrs(toText, fromTextAttrsDict) { - for (const key in fromTextAttrsDict) { - if (fromTextAttrsDict.hasOwnProperty(key)) { - toText.attr(key, fromTextAttrsDict[key]); - } - } - } - return function(conf2) { - return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; - }; -}(); -var svgDraw = { - drawRect: drawRect2, - drawText, - drawLabel, - drawActor, - drawBox, - drawPopup, - anchorElement, - drawActivation, - drawLoop, - drawBackgroundRect: drawBackgroundRect2, - insertArrowHead, - insertArrowFilledHead, - insertSequenceNumber, - insertArrowCrossHead, - insertDatabaseIcon, - insertComputerIcon, - insertClockIcon, - getTextObj: getTextObj2, - getNoteRect: getNoteRect2, - popupMenu, - popdownMenu, - fixLifeLineHeights, - sanitizeUrl: import_sanitize_url.sanitizeUrl -}; -var conf = {}; -var bounds = { - data: { - startx: void 0, - stopx: void 0, - starty: void 0, - stopy: void 0 - }, - verticalPos: 0, - sequenceItems: [], - activations: [], - models: { - getHeight: function() { - return Math.max.apply( - null, - this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0) - ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h)); - }, - clear: function() { - this.actors = []; - this.boxes = []; - this.loops = []; - this.messages = []; - this.notes = []; - }, - addBox: function(boxModel) { - this.boxes.push(boxModel); - }, - addActor: function(actorModel) { - this.actors.push(actorModel); - }, - addLoop: function(loopModel) { - this.loops.push(loopModel); - }, - addMessage: function(msgModel) { - this.messages.push(msgModel); - }, - addNote: function(noteModel) { - this.notes.push(noteModel); - }, - lastActor: function() { - return this.actors[this.actors.length - 1]; - }, - lastLoop: function() { - return this.loops[this.loops.length - 1]; - }, - lastMessage: function() { - return this.messages[this.messages.length - 1]; - }, - lastNote: function() { - return this.notes[this.notes.length - 1]; - }, - actors: [], - boxes: [], - loops: [], - messages: [], - notes: [] - }, - init: function() { - this.sequenceItems = []; - this.activations = []; - this.models.clear(); - this.data = { - startx: void 0, - stopx: void 0, - starty: void 0, - stopy: void 0 - }; - this.verticalPos = 0; - setConf(getConfig()); - }, - updateVal: function(obj, key, val, fun) { - if (obj[key] === void 0) { - obj[key] = val; - } else { - obj[key] = fun(val, obj[key]); - } - }, - updateBounds: function(startx, starty, stopx, stopy) { - const _self = this; - let cnt = 0; - function updateFn(type) { - return function updateItemBounds(item) { - cnt++; - const n = _self.sequenceItems.length - cnt + 1; - _self.updateVal(item, "starty", starty - n * conf.boxMargin, Math.min); - _self.updateVal(item, "stopy", stopy + n * conf.boxMargin, Math.max); - _self.updateVal(bounds.data, "startx", startx - n * conf.boxMargin, Math.min); - _self.updateVal(bounds.data, "stopx", stopx + n * conf.boxMargin, Math.max); - if (!(type === "activation")) { - _self.updateVal(item, "startx", startx - n * conf.boxMargin, Math.min); - _self.updateVal(item, "stopx", stopx + n * conf.boxMargin, Math.max); - _self.updateVal(bounds.data, "starty", starty - n * conf.boxMargin, Math.min); - _self.updateVal(bounds.data, "stopy", stopy + n * conf.boxMargin, Math.max); - } - }; - } - this.sequenceItems.forEach(updateFn()); - this.activations.forEach(updateFn("activation")); - }, - insert: function(startx, starty, stopx, stopy) { - const _startx = common$1.getMin(startx, stopx); - const _stopx = common$1.getMax(startx, stopx); - const _starty = common$1.getMin(starty, stopy); - const _stopy = common$1.getMax(starty, stopy); - this.updateVal(bounds.data, "startx", _startx, Math.min); - this.updateVal(bounds.data, "starty", _starty, Math.min); - this.updateVal(bounds.data, "stopx", _stopx, Math.max); - this.updateVal(bounds.data, "stopy", _stopy, Math.max); - this.updateBounds(_startx, _starty, _stopx, _stopy); - }, - newActivation: function(message, diagram2, actors2) { - const actorRect = actors2[message.from.actor]; - const stackedSize = actorActivations(message.from.actor).length || 0; - const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; - this.activations.push({ - startx: x, - starty: this.verticalPos + 2, - stopx: x + conf.activationWidth, - stopy: void 0, - actor: message.from.actor, - anchored: svgDraw.anchorElement(diagram2) - }); - }, - endActivation: function(message) { - const lastActorActivationIdx = this.activations.map(function(activation) { - return activation.actor; - }).lastIndexOf(message.from.actor); - return this.activations.splice(lastActorActivationIdx, 1)[0]; - }, - createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) { - return { - startx: void 0, - starty: this.verticalPos, - stopx: void 0, - stopy: void 0, - title: title.message, - wrap: title.wrap, - width: title.width, - height: 0, - fill - }; - }, - newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) { - this.sequenceItems.push(this.createLoop(title, fill)); - }, - endLoop: function() { - return this.sequenceItems.pop(); - }, - isLoopOverlap: function() { - return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false; - }, - addSectionToLoop: function(message) { - const loop = this.sequenceItems.pop(); - loop.sections = loop.sections || []; - loop.sectionTitles = loop.sectionTitles || []; - loop.sections.push({ y: bounds.getVerticalPos(), height: 0 }); - loop.sectionTitles.push(message); - this.sequenceItems.push(loop); - }, - saveVerticalPos: function() { - if (this.isLoopOverlap()) { - this.savedVerticalPos = this.verticalPos; - } - }, - resetVerticalPos: function() { - if (this.isLoopOverlap()) { - this.verticalPos = this.savedVerticalPos; - } - }, - bumpVerticalPos: function(bump) { - this.verticalPos = this.verticalPos + bump; - this.data.stopy = common$1.getMax(this.data.stopy, this.verticalPos); - }, - getVerticalPos: function() { - return this.verticalPos; - }, - getBounds: function() { - return { bounds: this.data, models: this.models }; - } -}; -var drawNote = function(elem, noteModel) { - bounds.bumpVerticalPos(conf.boxMargin); - noteModel.height = conf.boxMargin; - noteModel.starty = bounds.getVerticalPos(); - const rect = getNoteRect(); - rect.x = noteModel.startx; - rect.y = noteModel.starty; - rect.width = noteModel.width || conf.width; - rect.class = "note"; - const g = elem.append("g"); - const rectElem = svgDraw.drawRect(g, rect); - const textObj = getTextObj(); - textObj.x = noteModel.startx; - textObj.y = noteModel.starty; - textObj.width = rect.width; - textObj.dy = "1em"; - textObj.text = noteModel.message; - textObj.class = "noteText"; - textObj.fontFamily = conf.noteFontFamily; - textObj.fontSize = conf.noteFontSize; - textObj.fontWeight = conf.noteFontWeight; - textObj.anchor = conf.noteAlign; - textObj.textMargin = conf.noteMargin; - textObj.valign = "center"; - const textElem = drawText(g, textObj); - const textHeight = Math.round( - textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr) - ); - rectElem.attr("height", textHeight + 2 * conf.noteMargin); - noteModel.height += textHeight + 2 * conf.noteMargin; - bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin); - noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin; - noteModel.stopx = noteModel.startx + rect.width; - bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy); - bounds.models.addNote(noteModel); -}; -var messageFont = (cnf) => { - return { - fontFamily: cnf.messageFontFamily, - fontSize: cnf.messageFontSize, - fontWeight: cnf.messageFontWeight - }; -}; -var noteFont = (cnf) => { - return { - fontFamily: cnf.noteFontFamily, - fontSize: cnf.noteFontSize, - fontWeight: cnf.noteFontWeight - }; -}; -var actorFont = (cnf) => { - return { - fontFamily: cnf.actorFontFamily, - fontSize: cnf.actorFontSize, - fontWeight: cnf.actorFontWeight - }; -}; -function boundMessage(_diagram, msgModel) { - bounds.bumpVerticalPos(10); - const { startx, stopx, message } = msgModel; - const lines = common$1.splitBreaks(message).length; - const textDims = utils.calculateTextDimensions(message, messageFont(conf)); - const lineHeight = textDims.height / lines; - msgModel.height += lineHeight; - bounds.bumpVerticalPos(lineHeight); - let lineStartY; - let totalOffset = textDims.height - 10; - const textWidth = textDims.width; - if (startx === stopx) { - lineStartY = bounds.getVerticalPos() + totalOffset; - if (!conf.rightAngles) { - totalOffset += conf.boxMargin; - lineStartY = bounds.getVerticalPos() + totalOffset; - } - totalOffset += 30; - const dx = common$1.getMax(textWidth / 2, conf.width / 2); - bounds.insert( - startx - dx, - bounds.getVerticalPos() - 10 + totalOffset, - stopx + dx, - bounds.getVerticalPos() + 30 + totalOffset - ); - } else { - totalOffset += conf.boxMargin; - lineStartY = bounds.getVerticalPos() + totalOffset; - bounds.insert(startx, lineStartY - 10, stopx, lineStartY); - } - bounds.bumpVerticalPos(totalOffset); - msgModel.height += totalOffset; - msgModel.stopy = msgModel.starty + msgModel.height; - bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy); - return lineStartY; -} -var drawMessage = function(diagram2, msgModel, lineStartY, diagObj) { - const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel; - const textDims = utils.calculateTextDimensions(message, messageFont(conf)); - const textObj = getTextObj(); - textObj.x = startx; - textObj.y = starty + 10; - textObj.width = stopx - startx; - textObj.class = "messageText"; - textObj.dy = "1em"; - textObj.text = message; - textObj.fontFamily = conf.messageFontFamily; - textObj.fontSize = conf.messageFontSize; - textObj.fontWeight = conf.messageFontWeight; - textObj.anchor = conf.messageAlign; - textObj.valign = "center"; - textObj.textMargin = conf.wrapPadding; - textObj.tspan = false; - drawText(diagram2, textObj); - const textWidth = textDims.width; - let line; - if (startx === stopx) { - if (conf.rightAngles) { - line = diagram2.append("path").attr( - "d", - `M ${startx},${lineStartY} H ${startx + common$1.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}` - ); - } else { - line = diagram2.append("path").attr( - "d", - "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20) - ); - } - } else { - line = diagram2.append("line"); - line.attr("x1", startx); - line.attr("y1", lineStartY); - line.attr("x2", stopx); - line.attr("y2", lineStartY); - } - if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) { - line.style("stroke-dasharray", "3, 3"); - line.attr("class", "messageLine1"); - } else { - line.attr("class", "messageLine0"); - } - let url = ""; - if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - line.attr("stroke-width", 2); - line.attr("stroke", "none"); - line.style("fill", "none"); - if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) { - line.attr("marker-end", "url(" + url + "#arrowhead)"); - } - if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) { - line.attr("marker-end", "url(" + url + "#filled-head)"); - } - if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) { - line.attr("marker-end", "url(" + url + "#crosshead)"); - } - if (sequenceVisible || conf.showSequenceNumbers) { - line.attr("marker-start", "url(" + url + "#sequencenumber)"); - diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex); - } -}; -var addActorRenderingData = function(diagram2, actors2, createdActors2, actorKeys, verticalPos, messages2, isFooter) { - let prevWidth = 0; - let prevMargin = 0; - let prevBox = void 0; - let maxHeight = 0; - for (const actorKey of actorKeys) { - const actor = actors2[actorKey]; - const box = actor.box; - if (prevBox && prevBox != box) { - if (!isFooter) { - bounds.models.addBox(prevBox); - } - prevMargin += conf.boxMargin + prevBox.margin; - } - if (box && box != prevBox) { - if (!isFooter) { - box.x = prevWidth + prevMargin; - box.y = verticalPos; - } - prevMargin += box.margin; - } - actor.width = actor.width || conf.width; - actor.height = common$1.getMax(actor.height || conf.height, conf.height); - actor.margin = actor.margin || conf.actorMargin; - maxHeight = common$1.getMax(maxHeight, actor.height); - if (createdActors2[actor.name]) { - prevMargin += actor.width / 2; - } - actor.x = prevWidth + prevMargin; - actor.starty = bounds.getVerticalPos(); - bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height); - prevWidth += actor.width + prevMargin; - if (actor.box) { - actor.box.width = prevWidth + box.margin - actor.box.x; - } - prevMargin = actor.margin; - prevBox = actor.box; - bounds.models.addActor(actor); - } - if (prevBox && !isFooter) { - bounds.models.addBox(prevBox); - } - bounds.bumpVerticalPos(maxHeight); -}; -var drawActors = function(diagram2, actors2, actorKeys, isFooter) { - if (!isFooter) { - for (const actorKey of actorKeys) { - const actor = actors2[actorKey]; - svgDraw.drawActor(diagram2, actor, conf, false); - } - } else { - let maxHeight = 0; - bounds.bumpVerticalPos(conf.boxMargin * 2); - for (const actorKey of actorKeys) { - const actor = actors2[actorKey]; - if (!actor.stopy) { - actor.stopy = bounds.getVerticalPos(); - } - const height = svgDraw.drawActor(diagram2, actor, conf, true); - maxHeight = common$1.getMax(maxHeight, height); - } - bounds.bumpVerticalPos(maxHeight + conf.boxMargin); - } -}; -var drawActorsPopup = function(diagram2, actors2, actorKeys, doc) { - let maxHeight = 0; - let maxWidth = 0; - for (const actorKey of actorKeys) { - const actor = actors2[actorKey]; - const minMenuWidth = getRequiredPopupWidth(actor); - const menuDimensions = svgDraw.drawPopup( - diagram2, - actor, - minMenuWidth, - conf, - conf.forceMenus, - doc - ); - if (menuDimensions.height > maxHeight) { - maxHeight = menuDimensions.height; - } - if (menuDimensions.width + actor.x > maxWidth) { - maxWidth = menuDimensions.width + actor.x; - } - } - return { maxHeight, maxWidth }; -}; -var setConf = function(cnf) { - assignWithDepth$1(conf, cnf); - if (cnf.fontFamily) { - conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily; - } - if (cnf.fontSize) { - conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize; - } - if (cnf.fontWeight) { - conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight; - } -}; -var actorActivations = function(actor) { - return bounds.activations.filter(function(activation) { - return activation.actor === actor; - }); -}; -var activationBounds = function(actor, actors2) { - const actorObj = actors2[actor]; - const activations = actorActivations(actor); - const left = activations.reduce(function(acc, activation) { - return common$1.getMin(acc, activation.startx); - }, actorObj.x + actorObj.width / 2 - 1); - const right = activations.reduce(function(acc, activation) { - return common$1.getMax(acc, activation.stopx); - }, actorObj.x + actorObj.width / 2 + 1); - return [left, right]; -}; -function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) { - bounds.bumpVerticalPos(preMargin); - let heightAdjust = postMargin; - if (msg.id && msg.message && loopWidths[msg.id]) { - const loopWidth = loopWidths[msg.id].width; - const textConf = messageFont(conf); - msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf); - msg.width = loopWidth; - msg.wrap = true; - const textDims = utils.calculateTextDimensions(msg.message, textConf); - const totalOffset = common$1.getMax(textDims.height, conf.labelBoxHeight); - heightAdjust = postMargin + totalOffset; - log$1.debug(`${totalOffset} - ${msg.message}`); - } - addLoopFn(msg); - bounds.bumpVerticalPos(heightAdjust); -} -function adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors2, createdActors2, destroyedActors2) { - function receiverAdjustment(actor, adjustment) { - if (actor.x < actors2[msg.from].x) { - bounds.insert( - msgModel.stopx - adjustment, - msgModel.starty, - msgModel.startx, - msgModel.stopy + actor.height / 2 + conf.noteMargin - ); - msgModel.stopx = msgModel.stopx + adjustment; - } else { - bounds.insert( - msgModel.startx, - msgModel.starty, - msgModel.stopx + adjustment, - msgModel.stopy + actor.height / 2 + conf.noteMargin - ); - msgModel.stopx = msgModel.stopx - adjustment; - } - } - function senderAdjustment(actor, adjustment) { - if (actor.x < actors2[msg.to].x) { - bounds.insert( - msgModel.startx - adjustment, - msgModel.starty, - msgModel.stopx, - msgModel.stopy + actor.height / 2 + conf.noteMargin - ); - msgModel.startx = msgModel.startx + adjustment; - } else { - bounds.insert( - msgModel.stopx, - msgModel.starty, - msgModel.startx + adjustment, - msgModel.stopy + actor.height / 2 + conf.noteMargin - ); - msgModel.startx = msgModel.startx - adjustment; - } - } - if (createdActors2[msg.to] == index) { - const actor = actors2[msg.to]; - const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3; - receiverAdjustment(actor, adjustment); - actor.starty = lineStartY - actor.height / 2; - bounds.bumpVerticalPos(actor.height / 2); - } else if (destroyedActors2[msg.from] == index) { - const actor = actors2[msg.from]; - if (conf.mirrorActors) { - const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2; - senderAdjustment(actor, adjustment); - } - actor.stopy = lineStartY - actor.height / 2; - bounds.bumpVerticalPos(actor.height / 2); - } else if (destroyedActors2[msg.to] == index) { - const actor = actors2[msg.to]; - if (conf.mirrorActors) { - const adjustment = actor.type == "actor" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3; - receiverAdjustment(actor, adjustment); - } - actor.stopy = lineStartY - actor.height / 2; - bounds.bumpVerticalPos(actor.height / 2); - } -} -var draw = function(_text, id, _version, diagObj) { - const { securityLevel, sequence } = getConfig(); - conf = sequence; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; - bounds.init(); - log$1.debug(diagObj.db); - const diagram2 = securityLevel === "sandbox" ? root.select(`[id="${id}"]`) : select_default(`[id="${id}"]`); - const actors2 = diagObj.db.getActors(); - const createdActors2 = diagObj.db.getCreatedActors(); - const destroyedActors2 = diagObj.db.getDestroyedActors(); - const boxes2 = diagObj.db.getBoxes(); - let actorKeys = diagObj.db.getActorKeys(); - const messages2 = diagObj.db.getMessages(); - const title = diagObj.db.getDiagramTitle(); - const hasBoxes = diagObj.db.hasAtLeastOneBox(); - const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle(); - const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj); - conf.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2); - svgDraw.insertComputerIcon(diagram2); - svgDraw.insertDatabaseIcon(diagram2); - svgDraw.insertClockIcon(diagram2); - if (hasBoxes) { - bounds.bumpVerticalPos(conf.boxMargin); - if (hasBoxTitles) { - bounds.bumpVerticalPos(boxes2[0].textMaxHeight); - } - } - if (conf.hideUnusedParticipants === true) { - const newActors = /* @__PURE__ */ new Set(); - messages2.forEach((message) => { - newActors.add(message.from); - newActors.add(message.to); - }); - actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey)); - } - addActorRenderingData(diagram2, actors2, createdActors2, actorKeys, 0, messages2, false); - const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj); - svgDraw.insertArrowHead(diagram2); - svgDraw.insertArrowCrossHead(diagram2); - svgDraw.insertArrowFilledHead(diagram2); - svgDraw.insertSequenceNumber(diagram2); - function activeEnd(msg, verticalPos) { - const activationData = bounds.endActivation(msg); - if (activationData.starty + 18 > verticalPos) { - activationData.starty = verticalPos - 6; - verticalPos += 12; - } - svgDraw.drawActivation( - diagram2, - activationData, - verticalPos, - conf, - actorActivations(msg.from.actor).length - ); - bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos); - } - let sequenceIndex = 1; - let sequenceIndexStep = 1; - const messagesToDraw = []; - const backgrounds = []; - messages2.forEach(function(msg, index) { - let loopModel, noteModel, msgModel; - switch (msg.type) { - case diagObj.db.LINETYPE.NOTE: - bounds.resetVerticalPos(); - noteModel = msg.noteModel; - drawNote(diagram2, noteModel); - break; - case diagObj.db.LINETYPE.ACTIVE_START: - bounds.newActivation(msg, diagram2, actors2); - break; - case diagObj.db.LINETYPE.ACTIVE_END: - activeEnd(msg, bounds.getVerticalPos()); - break; - case diagObj.db.LINETYPE.LOOP_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin + conf.boxTextMargin, - (message) => bounds.newLoop(message) - ); - break; - case diagObj.db.LINETYPE.LOOP_END: - loopModel = bounds.endLoop(); - svgDraw.drawLoop(diagram2, loopModel, "loop", conf); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - bounds.models.addLoop(loopModel); - break; - case diagObj.db.LINETYPE.RECT_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin, - (message) => bounds.newLoop(void 0, message.message) - ); - break; - case diagObj.db.LINETYPE.RECT_END: - loopModel = bounds.endLoop(); - backgrounds.push(loopModel); - bounds.models.addLoop(loopModel); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - break; - case diagObj.db.LINETYPE.OPT_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin + conf.boxTextMargin, - (message) => bounds.newLoop(message) - ); - break; - case diagObj.db.LINETYPE.OPT_END: - loopModel = bounds.endLoop(); - svgDraw.drawLoop(diagram2, loopModel, "opt", conf); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - bounds.models.addLoop(loopModel); - break; - case diagObj.db.LINETYPE.ALT_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin + conf.boxTextMargin, - (message) => bounds.newLoop(message) - ); - break; - case diagObj.db.LINETYPE.ALT_ELSE: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin + conf.boxTextMargin, - conf.boxMargin, - (message) => bounds.addSectionToLoop(message) - ); - break; - case diagObj.db.LINETYPE.ALT_END: - loopModel = bounds.endLoop(); - svgDraw.drawLoop(diagram2, loopModel, "alt", conf); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - bounds.models.addLoop(loopModel); - break; - case diagObj.db.LINETYPE.PAR_START: - case diagObj.db.LINETYPE.PAR_OVER_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin + conf.boxTextMargin, - (message) => bounds.newLoop(message) - ); - bounds.saveVerticalPos(); - break; - case diagObj.db.LINETYPE.PAR_AND: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin + conf.boxTextMargin, - conf.boxMargin, - (message) => bounds.addSectionToLoop(message) - ); - break; - case diagObj.db.LINETYPE.PAR_END: - loopModel = bounds.endLoop(); - svgDraw.drawLoop(diagram2, loopModel, "par", conf); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - bounds.models.addLoop(loopModel); - break; - case diagObj.db.LINETYPE.AUTONUMBER: - sequenceIndex = msg.message.start || sequenceIndex; - sequenceIndexStep = msg.message.step || sequenceIndexStep; - if (msg.message.visible) { - diagObj.db.enableSequenceNumbers(); - } else { - diagObj.db.disableSequenceNumbers(); - } - break; - case diagObj.db.LINETYPE.CRITICAL_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin + conf.boxTextMargin, - (message) => bounds.newLoop(message) - ); - break; - case diagObj.db.LINETYPE.CRITICAL_OPTION: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin + conf.boxTextMargin, - conf.boxMargin, - (message) => bounds.addSectionToLoop(message) - ); - break; - case diagObj.db.LINETYPE.CRITICAL_END: - loopModel = bounds.endLoop(); - svgDraw.drawLoop(diagram2, loopModel, "critical", conf); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - bounds.models.addLoop(loopModel); - break; - case diagObj.db.LINETYPE.BREAK_START: - adjustLoopHeightForWrap( - loopWidths, - msg, - conf.boxMargin, - conf.boxMargin + conf.boxTextMargin, - (message) => bounds.newLoop(message) - ); - break; - case diagObj.db.LINETYPE.BREAK_END: - loopModel = bounds.endLoop(); - svgDraw.drawLoop(diagram2, loopModel, "break", conf); - bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos()); - bounds.models.addLoop(loopModel); - break; - default: - try { - msgModel = msg.msgModel; - msgModel.starty = bounds.getVerticalPos(); - msgModel.sequenceIndex = sequenceIndex; - msgModel.sequenceVisible = diagObj.db.showSequenceNumbers(); - const lineStartY = boundMessage(diagram2, msgModel); - adjustCreatedDestroyedData( - msg, - msgModel, - lineStartY, - index, - actors2, - createdActors2, - destroyedActors2 - ); - messagesToDraw.push({ messageModel: msgModel, lineStartY }); - bounds.models.addMessage(msgModel); - } catch (e) { - log$1.error("error while drawing message", e); - } - } - if ([ - diagObj.db.LINETYPE.SOLID_OPEN, - diagObj.db.LINETYPE.DOTTED_OPEN, - diagObj.db.LINETYPE.SOLID, - diagObj.db.LINETYPE.DOTTED, - diagObj.db.LINETYPE.SOLID_CROSS, - diagObj.db.LINETYPE.DOTTED_CROSS, - diagObj.db.LINETYPE.SOLID_POINT, - diagObj.db.LINETYPE.DOTTED_POINT - ].includes(msg.type)) { - sequenceIndex = sequenceIndex + sequenceIndexStep; - } - }); - log$1.debug("createdActors", createdActors2); - log$1.debug("destroyedActors", destroyedActors2); - drawActors(diagram2, actors2, actorKeys, false); - messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj)); - if (conf.mirrorActors) { - drawActors(diagram2, actors2, actorKeys, true); - } - backgrounds.forEach((e) => svgDraw.drawBackgroundRect(diagram2, e)); - fixLifeLineHeights(diagram2, actors2, actorKeys, conf); - bounds.models.boxes.forEach(function(box2) { - box2.height = bounds.getVerticalPos() - box2.y; - bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height); - box2.startx = box2.x; - box2.starty = box2.y; - box2.stopx = box2.startx + box2.width; - box2.stopy = box2.starty + box2.height; - box2.stroke = "rgb(0,0,0, 0.5)"; - svgDraw.drawBox(diagram2, box2, conf); - }); - if (hasBoxes) { - bounds.bumpVerticalPos(conf.boxMargin); - } - const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc); - const { bounds: box } = bounds.getBounds(); - let boxHeight = box.stopy - box.starty; - if (boxHeight < requiredBoxSize.maxHeight) { - boxHeight = requiredBoxSize.maxHeight; - } - let height = boxHeight + 2 * conf.diagramMarginY; - if (conf.mirrorActors) { - height = height - conf.boxMargin + conf.bottomMarginAdj; - } - let boxWidth = box.stopx - box.startx; - if (boxWidth < requiredBoxSize.maxWidth) { - boxWidth = requiredBoxSize.maxWidth; - } - const width = boxWidth + 2 * conf.diagramMarginX; - if (title) { - diagram2.append("text").text(title).attr("x", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr("y", -25); - } - configureSvgSize(diagram2, height, width, conf.useMaxWidth); - const extraVertForTitle = title ? 40 : 0; - diagram2.attr( - "viewBox", - box.startx - conf.diagramMarginX + " -" + (conf.diagramMarginY + extraVertForTitle) + " " + width + " " + (height + extraVertForTitle) - ); - log$1.debug(`models:`, bounds.models); -}; -function getMaxMessageWidthPerActor(actors2, messages2, diagObj) { - const maxMessageWidthPerActor = {}; - messages2.forEach(function(msg) { - if (actors2[msg.to] && actors2[msg.from]) { - const actor = actors2[msg.to]; - if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) { - return; - } - if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) { - return; - } - const isNote = msg.placement !== void 0; - const isMessage = !isNote; - const textFont = isNote ? noteFont(conf) : messageFont(conf); - const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message; - const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont); - const messageWidth = messageDimensions.width + 2 * conf.wrapPadding; - if (isMessage && msg.from === actor.nextActor) { - maxMessageWidthPerActor[msg.to] = common$1.getMax( - maxMessageWidthPerActor[msg.to] || 0, - messageWidth - ); - } else if (isMessage && msg.from === actor.prevActor) { - maxMessageWidthPerActor[msg.from] = common$1.getMax( - maxMessageWidthPerActor[msg.from] || 0, - messageWidth - ); - } else if (isMessage && msg.from === msg.to) { - maxMessageWidthPerActor[msg.from] = common$1.getMax( - maxMessageWidthPerActor[msg.from] || 0, - messageWidth / 2 - ); - maxMessageWidthPerActor[msg.to] = common$1.getMax( - maxMessageWidthPerActor[msg.to] || 0, - messageWidth / 2 - ); - } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) { - maxMessageWidthPerActor[msg.from] = common$1.getMax( - maxMessageWidthPerActor[msg.from] || 0, - messageWidth - ); - } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) { - maxMessageWidthPerActor[actor.prevActor] = common$1.getMax( - maxMessageWidthPerActor[actor.prevActor] || 0, - messageWidth - ); - } else if (msg.placement === diagObj.db.PLACEMENT.OVER) { - if (actor.prevActor) { - maxMessageWidthPerActor[actor.prevActor] = common$1.getMax( - maxMessageWidthPerActor[actor.prevActor] || 0, - messageWidth / 2 - ); - } - if (actor.nextActor) { - maxMessageWidthPerActor[msg.from] = common$1.getMax( - maxMessageWidthPerActor[msg.from] || 0, - messageWidth / 2 - ); - } - } - } - }); - log$1.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor); - return maxMessageWidthPerActor; -} -var getRequiredPopupWidth = function(actor) { - let requiredPopupWidth = 0; - const textFont = actorFont(conf); - for (const key in actor.links) { - const labelDimensions = utils.calculateTextDimensions(key, textFont); - const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin; - if (requiredPopupWidth < labelWidth) { - requiredPopupWidth = labelWidth; - } - } - return requiredPopupWidth; -}; -function calculateActorMargins(actors2, actorToMessageWidth, boxes2) { - let maxHeight = 0; - Object.keys(actors2).forEach((prop) => { - const actor = actors2[prop]; - if (actor.wrap) { - actor.description = utils.wrapLabel( - actor.description, - conf.width - 2 * conf.wrapPadding, - actorFont(conf) - ); - } - const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf)); - actor.width = actor.wrap ? conf.width : common$1.getMax(conf.width, actDims.width + 2 * conf.wrapPadding); - actor.height = actor.wrap ? common$1.getMax(actDims.height, conf.height) : conf.height; - maxHeight = common$1.getMax(maxHeight, actor.height); - }); - for (const actorKey in actorToMessageWidth) { - const actor = actors2[actorKey]; - if (!actor) { - continue; - } - const nextActor = actors2[actor.nextActor]; - if (!nextActor) { - const messageWidth2 = actorToMessageWidth[actorKey]; - const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2; - actor.margin = common$1.getMax(actorWidth2, conf.actorMargin); - continue; - } - const messageWidth = actorToMessageWidth[actorKey]; - const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2; - actor.margin = common$1.getMax(actorWidth, conf.actorMargin); - } - let maxBoxHeight = 0; - boxes2.forEach((box) => { - const textFont = messageFont(conf); - let totalWidth = box.actorKeys.reduce((total, aKey) => { - return total += actors2[aKey].width + (actors2[aKey].margin || 0); - }, 0); - totalWidth -= 2 * conf.boxTextMargin; - if (box.wrap) { - box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont); - } - const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont); - maxBoxHeight = common$1.getMax(boxMsgDimensions.height, maxBoxHeight); - const minWidth = common$1.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding); - box.margin = conf.boxTextMargin; - if (totalWidth < minWidth) { - const missing = (minWidth - totalWidth) / 2; - box.margin += missing; - } - }); - boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight); - return common$1.getMax(maxHeight, conf.height); -} -var buildNoteModel = function(msg, actors2, diagObj) { - const startx = actors2[msg.from].x; - const stopx = actors2[msg.to].x; - const shouldWrap = msg.wrap && msg.message; - let textDimensions = utils.calculateTextDimensions( - shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message, - noteFont(conf) - ); - const noteModel = { - width: shouldWrap ? conf.width : common$1.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin), - height: 0, - startx: actors2[msg.from].x, - stopx: 0, - starty: 0, - stopy: 0, - message: msg.message - }; - if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) { - noteModel.width = shouldWrap ? common$1.getMax(conf.width, textDimensions.width) : common$1.getMax( - actors2[msg.from].width / 2 + actors2[msg.to].width / 2, - textDimensions.width + 2 * conf.noteMargin - ); - noteModel.startx = startx + (actors2[msg.from].width + conf.actorMargin) / 2; - } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) { - noteModel.width = shouldWrap ? common$1.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common$1.getMax( - actors2[msg.from].width / 2 + actors2[msg.to].width / 2, - textDimensions.width + 2 * conf.noteMargin - ); - noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf.actorMargin) / 2; - } else if (msg.to === msg.from) { - textDimensions = utils.calculateTextDimensions( - shouldWrap ? utils.wrapLabel( - msg.message, - common$1.getMax(conf.width, actors2[msg.from].width), - noteFont(conf) - ) : msg.message, - noteFont(conf) - ); - noteModel.width = shouldWrap ? common$1.getMax(conf.width, actors2[msg.from].width) : common$1.getMax( - actors2[msg.from].width, - conf.width, - textDimensions.width + 2 * conf.noteMargin - ); - noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2; - } else { - noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf.actorMargin; - noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf.actorMargin / 2; - } - if (shouldWrap) { - noteModel.message = utils.wrapLabel( - msg.message, - noteModel.width - 2 * conf.wrapPadding, - noteFont(conf) - ); - } - log$1.debug( - `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]` - ); - return noteModel; -}; -var buildMessageModel = function(msg, actors2, diagObj) { - if (![ - diagObj.db.LINETYPE.SOLID_OPEN, - diagObj.db.LINETYPE.DOTTED_OPEN, - diagObj.db.LINETYPE.SOLID, - diagObj.db.LINETYPE.DOTTED, - diagObj.db.LINETYPE.SOLID_CROSS, - diagObj.db.LINETYPE.DOTTED_CROSS, - diagObj.db.LINETYPE.SOLID_POINT, - diagObj.db.LINETYPE.DOTTED_POINT - ].includes(msg.type)) { - return {}; - } - const [fromLeft, fromRight] = activationBounds(msg.from, actors2); - const [toLeft, toRight] = activationBounds(msg.to, actors2); - const isArrowToRight = fromLeft <= toLeft; - const startx = isArrowToRight ? fromRight : fromLeft; - let stopx = isArrowToRight ? toLeft : toRight; - const isArrowToActivation = Math.abs(toLeft - toRight) > 2; - const adjustValue = (value) => { - return isArrowToRight ? -value : value; - }; - if (msg.from === msg.to) { - stopx = startx; - } else { - if (msg.activate && !isArrowToActivation) { - stopx += adjustValue(conf.activationWidth / 2 - 1); - } - if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) { - stopx += adjustValue(3); - } - } - const allBounds = [fromLeft, fromRight, toLeft, toRight]; - const boundedWidth = Math.abs(startx - stopx); - if (msg.wrap && msg.message) { - msg.message = utils.wrapLabel( - msg.message, - common$1.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width), - messageFont(conf) - ); - } - const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf)); - return { - width: common$1.getMax( - msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding, - boundedWidth + 2 * conf.wrapPadding, - conf.width - ), - height: 0, - startx, - stopx, - starty: 0, - stopy: 0, - message: msg.message, - type: msg.type, - wrap: msg.wrap, - fromBounds: Math.min.apply(null, allBounds), - toBounds: Math.max.apply(null, allBounds) - }; -}; -var calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) { - const loops = {}; - const stack = []; - let current, noteModel, msgModel; - messages2.forEach(function(msg) { - msg.id = utils.random({ length: 10 }); - switch (msg.type) { - case diagObj.db.LINETYPE.LOOP_START: - case diagObj.db.LINETYPE.ALT_START: - case diagObj.db.LINETYPE.OPT_START: - case diagObj.db.LINETYPE.PAR_START: - case diagObj.db.LINETYPE.PAR_OVER_START: - case diagObj.db.LINETYPE.CRITICAL_START: - case diagObj.db.LINETYPE.BREAK_START: - stack.push({ - id: msg.id, - msg: msg.message, - from: Number.MAX_SAFE_INTEGER, - to: Number.MIN_SAFE_INTEGER, - width: 0 - }); - break; - case diagObj.db.LINETYPE.ALT_ELSE: - case diagObj.db.LINETYPE.PAR_AND: - case diagObj.db.LINETYPE.CRITICAL_OPTION: - if (msg.message) { - current = stack.pop(); - loops[current.id] = current; - loops[msg.id] = current; - stack.push(current); - } - break; - case diagObj.db.LINETYPE.LOOP_END: - case diagObj.db.LINETYPE.ALT_END: - case diagObj.db.LINETYPE.OPT_END: - case diagObj.db.LINETYPE.PAR_END: - case diagObj.db.LINETYPE.CRITICAL_END: - case diagObj.db.LINETYPE.BREAK_END: - current = stack.pop(); - loops[current.id] = current; - break; - case diagObj.db.LINETYPE.ACTIVE_START: - { - const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor]; - const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length; - const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2; - const toAdd = { - startx: x, - stopx: x + conf.activationWidth, - actor: msg.from.actor, - enabled: true - }; - bounds.activations.push(toAdd); - } - break; - case diagObj.db.LINETYPE.ACTIVE_END: - { - const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor); - delete bounds.activations.splice(lastActorActivationIdx, 1)[0]; - } - break; - } - const isNote = msg.placement !== void 0; - if (isNote) { - noteModel = buildNoteModel(msg, actors2, diagObj); - msg.noteModel = noteModel; - stack.forEach((stk) => { - current = stk; - current.from = common$1.getMin(current.from, noteModel.startx); - current.to = common$1.getMax(current.to, noteModel.startx + noteModel.width); - current.width = common$1.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth; - }); - } else { - msgModel = buildMessageModel(msg, actors2, diagObj); - msg.msgModel = msgModel; - if (msgModel.startx && msgModel.stopx && stack.length > 0) { - stack.forEach((stk) => { - current = stk; - if (msgModel.startx === msgModel.stopx) { - const from = actors2[msg.from]; - const to = actors2[msg.to]; - current.from = common$1.getMin( - from.x - msgModel.width / 2, - from.x - from.width / 2, - current.from - ); - current.to = common$1.getMax( - to.x + msgModel.width / 2, - to.x + from.width / 2, - current.to - ); - current.width = common$1.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth; - } else { - current.from = common$1.getMin(msgModel.startx, current.from); - current.to = common$1.getMax(msgModel.stopx, current.to); - current.width = common$1.getMax(current.width, msgModel.width) - conf.labelBoxWidth; - } - }); - } - } - }); - bounds.activations = []; - log$1.debug("Loop type widths:", loops); - return loops; -}; -var renderer = { - bounds, - drawActors, - drawActorsPopup, - setConf, - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: ({ wrap }) => { - db.setWrap(wrap); - } -}; -export { - diagram -}; -//# sourceMappingURL=sequenceDiagram-465a088a-TV3IEBQJ.js.map diff --git a/.vuepress/.cache/deps/sequenceDiagram-465a088a-TV3IEBQJ.js.map b/.vuepress/.cache/deps/sequenceDiagram-465a088a-TV3IEBQJ.js.map deleted file mode 100644 index afa798adc..000000000 --- a/.vuepress/.cache/deps/sequenceDiagram-465a088a-TV3IEBQJ.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/sequenceDiagram-465a088a.js"], - "sourcesContent": ["import { g as getAccTitle, r as getDiagramTitle, q as setDiagramTitle, c as getConfig, s as setAccTitle, b as setAccDescription, a as getAccDescription, t as clear$1, l as log, d as sanitizeText, e as common, C as parseFontSize, F as addFunction, Z as ZERO_WIDTH_SPACE, f as assignWithDepth, i as configureSvgSize, u as utils } from \"./mermaid-934d9bea.js\";\nimport { select } from \"d3\";\nimport { d as drawRect$1, a as drawBackgroundRect$1, b as drawEmbeddedImage, c as drawImage, e as getTextObj$1, g as getNoteRect$1 } from \"./svgDrawCommon-ad5ef572.js\";\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 4], $V3 = [2, 4], $V4 = [1, 9], $V5 = [1, 11], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 16], $V9 = [1, 17], $Va = [1, 18], $Vb = [1, 24], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 35], $Vn = [1, 36], $Vo = [1, 37], $Vp = [1, 38], $Vq = [1, 39], $Vr = [1, 41], $Vs = [1, 42], $Vt = [1, 43], $Vu = [1, 44], $Vv = [1, 45], $Vw = [1, 46], $Vx = [1, 4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $Vy = [4, 5, 16, 50, 52, 53], $Vz = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VA = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 49, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VB = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 48, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VC = [4, 5, 13, 14, 16, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 47, 50, 52, 53, 54, 59, 60, 61, 62, 70], $VD = [68, 69, 70], $VE = [1, 120];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"SPACE\": 4, \"NEWLINE\": 5, \"SD\": 6, \"document\": 7, \"line\": 8, \"statement\": 9, \"box_section\": 10, \"box_line\": 11, \"participant_statement\": 12, \"create\": 13, \"box\": 14, \"restOfLine\": 15, \"end\": 16, \"signal\": 17, \"autonumber\": 18, \"NUM\": 19, \"off\": 20, \"activate\": 21, \"actor\": 22, \"deactivate\": 23, \"note_statement\": 24, \"links_statement\": 25, \"link_statement\": 26, \"properties_statement\": 27, \"details_statement\": 28, \"title\": 29, \"legacy_title\": 30, \"acc_title\": 31, \"acc_title_value\": 32, \"acc_descr\": 33, \"acc_descr_value\": 34, \"acc_descr_multiline_value\": 35, \"loop\": 36, \"rect\": 37, \"opt\": 38, \"alt\": 39, \"else_sections\": 40, \"par\": 41, \"par_sections\": 42, \"par_over\": 43, \"critical\": 44, \"option_sections\": 45, \"break\": 46, \"option\": 47, \"and\": 48, \"else\": 49, \"participant\": 50, \"AS\": 51, \"participant_actor\": 52, \"destroy\": 53, \"note\": 54, \"placement\": 55, \"text2\": 56, \"over\": 57, \"actor_pair\": 58, \"links\": 59, \"link\": 60, \"properties\": 61, \"details\": 62, \"spaceList\": 63, \",\": 64, \"left_of\": 65, \"right_of\": 66, \"signaltype\": 67, \"+\": 68, \"-\": 69, \"ACTOR\": 70, \"SOLID_OPEN_ARROW\": 71, \"DOTTED_OPEN_ARROW\": 72, \"SOLID_ARROW\": 73, \"DOTTED_ARROW\": 74, \"SOLID_CROSS\": 75, \"DOTTED_CROSS\": 76, \"SOLID_POINT\": 77, \"DOTTED_POINT\": 78, \"TXT\": 79, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"SPACE\", 5: \"NEWLINE\", 6: \"SD\", 13: \"create\", 14: \"box\", 15: \"restOfLine\", 16: \"end\", 18: \"autonumber\", 19: \"NUM\", 20: \"off\", 21: \"activate\", 23: \"deactivate\", 29: \"title\", 30: \"legacy_title\", 31: \"acc_title\", 32: \"acc_title_value\", 33: \"acc_descr\", 34: \"acc_descr_value\", 35: \"acc_descr_multiline_value\", 36: \"loop\", 37: \"rect\", 38: \"opt\", 39: \"alt\", 41: \"par\", 43: \"par_over\", 44: \"critical\", 46: \"break\", 47: \"option\", 48: \"and\", 49: \"else\", 50: \"participant\", 51: \"AS\", 52: \"participant_actor\", 53: \"destroy\", 54: \"note\", 57: \"over\", 59: \"links\", 60: \"link\", 61: \"properties\", 62: \"details\", 64: \",\", 65: \"left_of\", 66: \"right_of\", 68: \"+\", 69: \"-\", 70: \"ACTOR\", 71: \"SOLID_OPEN_ARROW\", 72: \"DOTTED_OPEN_ARROW\", 73: \"SOLID_ARROW\", 74: \"DOTTED_ARROW\", 75: \"SOLID_CROSS\", 76: \"DOTTED_CROSS\", 77: \"SOLID_POINT\", 78: \"DOTTED_POINT\", 79: \"TXT\" },\n productions_: [0, [3, 2], [3, 2], [3, 2], [7, 0], [7, 2], [8, 2], [8, 1], [8, 1], [10, 0], [10, 2], [11, 2], [11, 1], [11, 1], [9, 1], [9, 2], [9, 4], [9, 2], [9, 4], [9, 3], [9, 3], [9, 2], [9, 3], [9, 3], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [9, 4], [45, 1], [45, 4], [42, 1], [42, 4], [40, 1], [40, 4], [12, 5], [12, 3], [12, 5], [12, 3], [12, 3], [24, 4], [24, 4], [25, 3], [26, 3], [27, 3], [28, 3], [63, 2], [63, 1], [58, 3], [58, 1], [55, 1], [55, 1], [17, 5], [17, 5], [17, 4], [22, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [67, 1], [56, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 3:\n yy.apply($$[$0]);\n return $$[$0];\n case 4:\n case 9:\n this.$ = [];\n break;\n case 5:\n case 10:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 6:\n case 7:\n case 11:\n case 12:\n this.$ = $$[$0];\n break;\n case 8:\n case 13:\n this.$ = [];\n break;\n case 15:\n $$[$0].type = \"createParticipant\";\n this.$ = $$[$0];\n break;\n case 16:\n $$[$0 - 1].unshift({ type: \"boxStart\", boxData: yy.parseBoxData($$[$0 - 2]) });\n $$[$0 - 1].push({ type: \"boxEnd\", boxText: $$[$0 - 2] });\n this.$ = $$[$0 - 1];\n break;\n case 18:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 19:\n this.$ = { type: \"sequenceIndex\", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 20:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 21:\n this.$ = { type: \"sequenceIndex\", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };\n break;\n case 22:\n this.$ = { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };\n break;\n case 23:\n this.$ = { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };\n break;\n case 29:\n yy.setDiagramTitle($$[$0].substring(6));\n this.$ = $$[$0].substring(6);\n break;\n case 30:\n yy.setDiagramTitle($$[$0].substring(7));\n this.$ = $$[$0].substring(7);\n break;\n case 31:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 32:\n case 33:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 34:\n $$[$0 - 1].unshift({ type: \"loopStart\", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });\n $$[$0 - 1].push({ type: \"loopEnd\", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });\n this.$ = $$[$0 - 1];\n break;\n case 35:\n $$[$0 - 1].unshift({ type: \"rectStart\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });\n $$[$0 - 1].push({ type: \"rectEnd\", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });\n this.$ = $$[$0 - 1];\n break;\n case 36:\n $$[$0 - 1].unshift({ type: \"optStart\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });\n $$[$0 - 1].push({ type: \"optEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });\n this.$ = $$[$0 - 1];\n break;\n case 37:\n $$[$0 - 1].unshift({ type: \"altStart\", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });\n $$[$0 - 1].push({ type: \"altEnd\", signalType: yy.LINETYPE.ALT_END });\n this.$ = $$[$0 - 1];\n break;\n case 38:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 39:\n $$[$0 - 1].unshift({ type: \"parStart\", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START });\n $$[$0 - 1].push({ type: \"parEnd\", signalType: yy.LINETYPE.PAR_END });\n this.$ = $$[$0 - 1];\n break;\n case 40:\n $$[$0 - 1].unshift({ type: \"criticalStart\", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });\n $$[$0 - 1].push({ type: \"criticalEnd\", signalType: yy.LINETYPE.CRITICAL_END });\n this.$ = $$[$0 - 1];\n break;\n case 41:\n $$[$0 - 1].unshift({ type: \"breakStart\", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });\n $$[$0 - 1].push({ type: \"breakEnd\", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });\n this.$ = $$[$0 - 1];\n break;\n case 43:\n this.$ = $$[$0 - 3].concat([{ type: \"option\", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);\n break;\n case 45:\n this.$ = $$[$0 - 3].concat([{ type: \"and\", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);\n break;\n case 47:\n this.$ = $$[$0 - 3].concat([{ type: \"else\", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);\n break;\n case 48:\n $$[$0 - 3].draw = \"participant\";\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 49:\n $$[$0 - 1].draw = \"participant\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 50:\n $$[$0 - 3].draw = \"actor\";\n $$[$0 - 3].type = \"addParticipant\";\n $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);\n this.$ = $$[$0 - 3];\n break;\n case 51:\n $$[$0 - 1].draw = \"actor\";\n $$[$0 - 1].type = \"addParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 52:\n $$[$0 - 1].type = \"destroyParticipant\";\n this.$ = $$[$0 - 1];\n break;\n case 53:\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 54:\n $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);\n $$[$0 - 2][0] = $$[$0 - 2][0].actor;\n $$[$0 - 2][1] = $$[$0 - 2][1].actor;\n this.$ = [$$[$0 - 1], { type: \"addNote\", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];\n break;\n case 55:\n this.$ = [$$[$0 - 1], { type: \"addLinks\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 56:\n this.$ = [$$[$0 - 1], { type: \"addALink\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 57:\n this.$ = [$$[$0 - 1], { type: \"addProperties\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 58:\n this.$ = [$$[$0 - 1], { type: \"addDetails\", actor: $$[$0 - 1].actor, text: $$[$0] }];\n break;\n case 61:\n this.$ = [$$[$0 - 2], $$[$0]];\n break;\n case 62:\n this.$ = $$[$0];\n break;\n case 63:\n this.$ = yy.PLACEMENT.LEFTOF;\n break;\n case 64:\n this.$ = yy.PLACEMENT.RIGHTOF;\n break;\n case 65:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0], activate: true },\n { type: \"activeStart\", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }\n ];\n break;\n case 66:\n this.$ = [\n $$[$0 - 4],\n $$[$0 - 1],\n { type: \"addMessage\", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },\n { type: \"activeEnd\", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }\n ];\n break;\n case 67:\n this.$ = [$$[$0 - 3], $$[$0 - 1], { type: \"addMessage\", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];\n break;\n case 68:\n this.$ = { type: \"addParticipant\", actor: $$[$0] };\n break;\n case 69:\n this.$ = yy.LINETYPE.SOLID_OPEN;\n break;\n case 70:\n this.$ = yy.LINETYPE.DOTTED_OPEN;\n break;\n case 71:\n this.$ = yy.LINETYPE.SOLID;\n break;\n case 72:\n this.$ = yy.LINETYPE.DOTTED;\n break;\n case 73:\n this.$ = yy.LINETYPE.SOLID_CROSS;\n break;\n case 74:\n this.$ = yy.LINETYPE.DOTTED_CROSS;\n break;\n case 75:\n this.$ = yy.LINETYPE.SOLID_POINT;\n break;\n case 76:\n this.$ = yy.LINETYPE.DOTTED_POINT;\n break;\n case 77:\n this.$ = yy.parseMessage($$[$0].trim().substring(1));\n break;\n }\n },\n table: [{ 3: 1, 4: $V0, 5: $V1, 6: $V2 }, { 1: [3] }, { 3: 5, 4: $V0, 5: $V1, 6: $V2 }, { 3: 6, 4: $V0, 5: $V1, 6: $V2 }, o([1, 4, 5, 13, 14, 18, 21, 23, 29, 30, 31, 33, 35, 36, 37, 38, 39, 41, 43, 44, 46, 50, 52, 53, 54, 59, 60, 61, 62, 70], $V3, { 7: 7 }), { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3], 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 5]), { 9: 47, 12: 12, 13: $V6, 14: $V7, 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, o($Vx, [2, 7]), o($Vx, [2, 8]), o($Vx, [2, 14]), { 12: 48, 50: $Vo, 52: $Vp, 53: $Vq }, { 15: [1, 49] }, { 5: [1, 50] }, { 5: [1, 53], 19: [1, 51], 20: [1, 52] }, { 22: 54, 70: $Vw }, { 22: 55, 70: $Vw }, { 5: [1, 56] }, { 5: [1, 57] }, { 5: [1, 58] }, { 5: [1, 59] }, { 5: [1, 60] }, o($Vx, [2, 29]), o($Vx, [2, 30]), { 32: [1, 61] }, { 34: [1, 62] }, o($Vx, [2, 33]), { 15: [1, 63] }, { 15: [1, 64] }, { 15: [1, 65] }, { 15: [1, 66] }, { 15: [1, 67] }, { 15: [1, 68] }, { 15: [1, 69] }, { 15: [1, 70] }, { 22: 71, 70: $Vw }, { 22: 72, 70: $Vw }, { 22: 73, 70: $Vw }, { 67: 74, 71: [1, 75], 72: [1, 76], 73: [1, 77], 74: [1, 78], 75: [1, 79], 76: [1, 80], 77: [1, 81], 78: [1, 82] }, { 55: 83, 57: [1, 84], 65: [1, 85], 66: [1, 86] }, { 22: 87, 70: $Vw }, { 22: 88, 70: $Vw }, { 22: 89, 70: $Vw }, { 22: 90, 70: $Vw }, o([5, 51, 64, 71, 72, 73, 74, 75, 76, 77, 78, 79], [2, 68]), o($Vx, [2, 6]), o($Vx, [2, 15]), o($Vy, [2, 9], { 10: 91 }), o($Vx, [2, 17]), { 5: [1, 93], 19: [1, 92] }, { 5: [1, 94] }, o($Vx, [2, 21]), { 5: [1, 95] }, { 5: [1, 96] }, o($Vx, [2, 24]), o($Vx, [2, 25]), o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 31]), o($Vx, [2, 32]), o($Vz, $V3, { 7: 97 }), o($Vz, $V3, { 7: 98 }), o($Vz, $V3, { 7: 99 }), o($VA, $V3, { 40: 100, 7: 101 }), o($VB, $V3, { 42: 102, 7: 103 }), o($VB, $V3, { 7: 103, 42: 104 }), o($VC, $V3, { 45: 105, 7: 106 }), o($Vz, $V3, { 7: 107 }), { 5: [1, 109], 51: [1, 108] }, { 5: [1, 111], 51: [1, 110] }, { 5: [1, 112] }, { 22: 115, 68: [1, 113], 69: [1, 114], 70: $Vw }, o($VD, [2, 69]), o($VD, [2, 70]), o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), { 22: 116, 70: $Vw }, { 22: 118, 58: 117, 70: $Vw }, { 70: [2, 63] }, { 70: [2, 64] }, { 56: 119, 79: $VE }, { 56: 121, 79: $VE }, { 56: 122, 79: $VE }, { 56: 123, 79: $VE }, { 4: [1, 126], 5: [1, 128], 11: 125, 12: 127, 16: [1, 124], 50: $Vo, 52: $Vp, 53: $Vq }, { 5: [1, 129] }, o($Vx, [2, 19]), o($Vx, [2, 20]), o($Vx, [2, 22]), o($Vx, [2, 23]), { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 130], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 131], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 132], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 133] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 46], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 49: [1, 134], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 135] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 44], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 48: [1, 136], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 16: [1, 137] }, { 16: [1, 138] }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [2, 42], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 47: [1, 139], 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 4: $V4, 5: $V5, 8: 8, 9: 10, 12: 12, 13: $V6, 14: $V7, 16: [1, 140], 17: 15, 18: $V8, 21: $V9, 22: 40, 23: $Va, 24: 19, 25: 20, 26: 21, 27: 22, 28: 23, 29: $Vb, 30: $Vc, 31: $Vd, 33: $Ve, 35: $Vf, 36: $Vg, 37: $Vh, 38: $Vi, 39: $Vj, 41: $Vk, 43: $Vl, 44: $Vm, 46: $Vn, 50: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 70: $Vw }, { 15: [1, 141] }, o($Vx, [2, 49]), { 15: [1, 142] }, o($Vx, [2, 51]), o($Vx, [2, 52]), { 22: 143, 70: $Vw }, { 22: 144, 70: $Vw }, { 56: 145, 79: $VE }, { 56: 146, 79: $VE }, { 56: 147, 79: $VE }, { 64: [1, 148], 79: [2, 62] }, { 5: [2, 55] }, { 5: [2, 77] }, { 5: [2, 56] }, { 5: [2, 57] }, { 5: [2, 58] }, o($Vx, [2, 16]), o($Vy, [2, 10]), { 12: 149, 50: $Vo, 52: $Vp, 53: $Vq }, o($Vy, [2, 12]), o($Vy, [2, 13]), o($Vx, [2, 18]), o($Vx, [2, 34]), o($Vx, [2, 35]), o($Vx, [2, 36]), o($Vx, [2, 37]), { 15: [1, 150] }, o($Vx, [2, 38]), { 15: [1, 151] }, o($Vx, [2, 39]), o($Vx, [2, 40]), { 15: [1, 152] }, o($Vx, [2, 41]), { 5: [1, 153] }, { 5: [1, 154] }, { 56: 155, 79: $VE }, { 56: 156, 79: $VE }, { 5: [2, 67] }, { 5: [2, 53] }, { 5: [2, 54] }, { 22: 157, 70: $Vw }, o($Vy, [2, 11]), o($VA, $V3, { 7: 101, 40: 158 }), o($VB, $V3, { 7: 103, 42: 159 }), o($VC, $V3, { 7: 106, 45: 160 }), o($Vx, [2, 48]), o($Vx, [2, 50]), { 5: [2, 65] }, { 5: [2, 66] }, { 79: [2, 61] }, { 16: [2, 47] }, { 16: [2, 45] }, { 16: [2, 43] }],\n defaultActions: { 5: [2, 1], 6: [2, 2], 85: [2, 63], 86: [2, 64], 119: [2, 55], 120: [2, 77], 121: [2, 56], 122: [2, 57], 123: [2, 58], 145: [2, 67], 146: [2, 53], 147: [2, 54], 155: [2, 65], 156: [2, 66], 157: [2, 61], 158: [2, 47], 159: [2, 45], 160: [2, 43] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n return 5;\n case 1:\n break;\n case 2:\n break;\n case 3:\n break;\n case 4:\n break;\n case 5:\n break;\n case 6:\n return 19;\n case 7:\n this.begin(\"LINE\");\n return 14;\n case 8:\n this.begin(\"ID\");\n return 50;\n case 9:\n this.begin(\"ID\");\n return 52;\n case 10:\n return 13;\n case 11:\n this.begin(\"ID\");\n return 53;\n case 12:\n yy_.yytext = yy_.yytext.trim();\n this.begin(\"ALIAS\");\n return 70;\n case 13:\n this.popState();\n this.popState();\n this.begin(\"LINE\");\n return 51;\n case 14:\n this.popState();\n this.popState();\n return 5;\n case 15:\n this.begin(\"LINE\");\n return 36;\n case 16:\n this.begin(\"LINE\");\n return 37;\n case 17:\n this.begin(\"LINE\");\n return 38;\n case 18:\n this.begin(\"LINE\");\n return 39;\n case 19:\n this.begin(\"LINE\");\n return 49;\n case 20:\n this.begin(\"LINE\");\n return 41;\n case 21:\n this.begin(\"LINE\");\n return 43;\n case 22:\n this.begin(\"LINE\");\n return 48;\n case 23:\n this.begin(\"LINE\");\n return 44;\n case 24:\n this.begin(\"LINE\");\n return 47;\n case 25:\n this.begin(\"LINE\");\n return 46;\n case 26:\n this.popState();\n return 15;\n case 27:\n return 16;\n case 28:\n return 65;\n case 29:\n return 66;\n case 30:\n return 59;\n case 31:\n return 60;\n case 32:\n return 61;\n case 33:\n return 62;\n case 34:\n return 57;\n case 35:\n return 54;\n case 36:\n this.begin(\"ID\");\n return 21;\n case 37:\n this.begin(\"ID\");\n return 23;\n case 38:\n return 29;\n case 39:\n return 30;\n case 40:\n this.begin(\"acc_title\");\n return 31;\n case 41:\n this.popState();\n return \"acc_title_value\";\n case 42:\n this.begin(\"acc_descr\");\n return 33;\n case 43:\n this.popState();\n return \"acc_descr_value\";\n case 44:\n this.begin(\"acc_descr_multiline\");\n break;\n case 45:\n this.popState();\n break;\n case 46:\n return \"acc_descr_multiline_value\";\n case 47:\n return 6;\n case 48:\n return 18;\n case 49:\n return 20;\n case 50:\n return 64;\n case 51:\n return 5;\n case 52:\n yy_.yytext = yy_.yytext.trim();\n return 70;\n case 53:\n return 73;\n case 54:\n return 74;\n case 55:\n return 71;\n case 56:\n return 72;\n case 57:\n return 75;\n case 58:\n return 76;\n case 59:\n return 77;\n case 60:\n return 78;\n case 61:\n return 79;\n case 62:\n return 68;\n case 63:\n return 69;\n case 64:\n return 5;\n case 65:\n return \"INVALID\";\n }\n },\n rules: [/^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:((?!\\n)\\s)+)/i, /^(?:#[^\\n]*)/i, /^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[0-9]+(?=[ \\n]+))/i, /^(?:box\\b)/i, /^(?:participant\\b)/i, /^(?:actor\\b)/i, /^(?:create\\b)/i, /^(?:destroy\\b)/i, /^(?:[^\\->:\\n,;]+?([\\-]*[^\\->:\\n,;]+?)*?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i, /^(?:as\\b)/i, /^(?:(?:))/i, /^(?:loop\\b)/i, /^(?:rect\\b)/i, /^(?:opt\\b)/i, /^(?:alt\\b)/i, /^(?:else\\b)/i, /^(?:par\\b)/i, /^(?:par_over\\b)/i, /^(?:and\\b)/i, /^(?:critical\\b)/i, /^(?:option\\b)/i, /^(?:break\\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\\n;]*)/i, /^(?:end\\b)/i, /^(?:left of\\b)/i, /^(?:right of\\b)/i, /^(?:links\\b)/i, /^(?:link\\b)/i, /^(?:properties\\b)/i, /^(?:details\\b)/i, /^(?:over\\b)/i, /^(?:note\\b)/i, /^(?:activate\\b)/i, /^(?:deactivate\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:title:\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:sequenceDiagram\\b)/i, /^(?:autonumber\\b)/i, /^(?:off\\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\\+\\->:\\n,;]+((?!(-x|--x|-\\)|--\\)))[\\-]*[^\\+\\->:\\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\\)])/i, /^(?:--[\\)])/i, /^(?::(?:(?:no)?wrap)?[^#\\n;]+)/i, /^(?:\\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [45, 46], \"inclusive\": false }, \"acc_descr\": { \"rules\": [43], \"inclusive\": false }, \"acc_title\": { \"rules\": [41], \"inclusive\": false }, \"ID\": { \"rules\": [2, 3, 12], \"inclusive\": false }, \"ALIAS\": { \"rules\": [2, 3, 13, 14], \"inclusive\": false }, \"LINE\": { \"rules\": [2, 3, 26], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet prevActor = void 0;\nlet actors = {};\nlet createdActors = {};\nlet destroyedActors = {};\nlet boxes = [];\nlet messages = [];\nlet sequenceNumbersEnabled = false;\nlet wrapEnabled;\nlet currentBox = void 0;\nlet lastCreated = void 0;\nlet lastDestroyed = void 0;\nconst addBox = function(data) {\n boxes.push({\n name: data.text,\n wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,\n fill: data.color,\n actorKeys: []\n });\n currentBox = boxes.slice(-1)[0];\n};\nconst addActor = function(id, name, description, type) {\n let assignedBox = currentBox;\n const old = actors[id];\n if (old) {\n if (currentBox && old.box && currentBox !== old.box) {\n throw new Error(\n \"A same participant should only be defined in one Box: \" + old.name + \" can't be in '\" + old.box.name + \"' and in '\" + currentBox.name + \"' at the same time.\"\n );\n }\n assignedBox = old.box ? old.box : currentBox;\n old.box = assignedBox;\n if (old && name === old.name && description == null) {\n return;\n }\n }\n if (description == null || description.text == null) {\n description = { text: name, wrap: null, type };\n }\n if (type == null || description.text == null) {\n description = { text: name, wrap: null, type };\n }\n actors[id] = {\n box: assignedBox,\n name,\n description: description.text,\n wrap: description.wrap === void 0 && autoWrap() || !!description.wrap,\n prevActor,\n links: {},\n properties: {},\n actorCnt: null,\n rectData: null,\n type: type || \"participant\"\n };\n if (prevActor && actors[prevActor]) {\n actors[prevActor].nextActor = id;\n }\n if (currentBox) {\n currentBox.actorKeys.push(id);\n }\n prevActor = id;\n};\nconst activationCount = (part) => {\n let i;\n let count = 0;\n for (i = 0; i < messages.length; i++) {\n if (messages[i].type === LINETYPE.ACTIVE_START && messages[i].from.actor === part) {\n count++;\n }\n if (messages[i].type === LINETYPE.ACTIVE_END && messages[i].from.actor === part) {\n count--;\n }\n }\n return count;\n};\nconst addMessage = function(idFrom, idTo, message, answer) {\n messages.push({\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n answer\n });\n};\nconst addSignal = function(idFrom, idTo, message = { text: void 0, wrap: void 0 }, messageType, activate = false) {\n if (messageType === LINETYPE.ACTIVE_END) {\n const cnt = activationCount(idFrom.actor);\n if (cnt < 1) {\n let error = new Error(\"Trying to inactivate an inactive participant (\" + idFrom.actor + \")\");\n error.hash = {\n text: \"->>-\",\n token: \"->>-\",\n line: \"1\",\n loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },\n expected: [\"'ACTIVE_PARTICIPANT'\"]\n };\n throw error;\n }\n }\n messages.push({\n from: idFrom,\n to: idTo,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n type: messageType,\n activate\n });\n return true;\n};\nconst hasAtLeastOneBox = function() {\n return boxes.length > 0;\n};\nconst hasAtLeastOneBoxWithTitle = function() {\n return boxes.some((b) => b.name);\n};\nconst getMessages = function() {\n return messages;\n};\nconst getBoxes = function() {\n return boxes;\n};\nconst getActors = function() {\n return actors;\n};\nconst getCreatedActors = function() {\n return createdActors;\n};\nconst getDestroyedActors = function() {\n return destroyedActors;\n};\nconst getActor = function(id) {\n return actors[id];\n};\nconst getActorKeys = function() {\n return Object.keys(actors);\n};\nconst enableSequenceNumbers = function() {\n sequenceNumbersEnabled = true;\n};\nconst disableSequenceNumbers = function() {\n sequenceNumbersEnabled = false;\n};\nconst showSequenceNumbers = () => sequenceNumbersEnabled;\nconst setWrap = function(wrapSetting) {\n wrapEnabled = wrapSetting;\n};\nconst autoWrap = () => {\n if (wrapEnabled !== void 0) {\n return wrapEnabled;\n }\n return getConfig().sequence.wrap;\n};\nconst clear = function() {\n actors = {};\n createdActors = {};\n destroyedActors = {};\n boxes = [];\n messages = [];\n sequenceNumbersEnabled = false;\n clear$1();\n};\nconst parseMessage = function(str) {\n const _str = str.trim();\n const message = {\n text: _str.replace(/^:?(?:no)?wrap:/, \"\").trim(),\n wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0\n };\n log.debug(\"parseMessage:\", message);\n return message;\n};\nconst parseBoxData = function(str) {\n const match = str.match(/^((?:rgba?|hsla?)\\s*\\(.*\\)|\\w*)(.*)$/);\n let color = match != null && match[1] ? match[1].trim() : \"transparent\";\n let title = match != null && match[2] ? match[2].trim() : void 0;\n if (window && window.CSS) {\n if (!window.CSS.supports(\"color\", color)) {\n color = \"transparent\";\n title = str.trim();\n }\n } else {\n const style = new Option().style;\n style.color = color;\n if (style.color !== color) {\n color = \"transparent\";\n title = str.trim();\n }\n }\n const boxData = {\n color,\n text: title !== void 0 ? sanitizeText(title.replace(/^:?(?:no)?wrap:/, \"\"), getConfig()) : void 0,\n wrap: title !== void 0 ? title.match(/^:?wrap:/) !== null ? true : title.match(/^:?nowrap:/) !== null ? false : void 0 : void 0\n };\n return boxData;\n};\nconst LINETYPE = {\n SOLID: 0,\n DOTTED: 1,\n NOTE: 2,\n SOLID_CROSS: 3,\n DOTTED_CROSS: 4,\n SOLID_OPEN: 5,\n DOTTED_OPEN: 6,\n LOOP_START: 10,\n LOOP_END: 11,\n ALT_START: 12,\n ALT_ELSE: 13,\n ALT_END: 14,\n OPT_START: 15,\n OPT_END: 16,\n ACTIVE_START: 17,\n ACTIVE_END: 18,\n PAR_START: 19,\n PAR_AND: 20,\n PAR_END: 21,\n RECT_START: 22,\n RECT_END: 23,\n SOLID_POINT: 24,\n DOTTED_POINT: 25,\n AUTONUMBER: 26,\n CRITICAL_START: 27,\n CRITICAL_OPTION: 28,\n CRITICAL_END: 29,\n BREAK_START: 30,\n BREAK_END: 31,\n PAR_OVER_START: 32\n};\nconst ARROWTYPE = {\n FILLED: 0,\n OPEN: 1\n};\nconst PLACEMENT = {\n LEFTOF: 0,\n RIGHTOF: 1,\n OVER: 2\n};\nconst addNote = function(actor, placement, message) {\n ({\n actor,\n placement,\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap\n });\n const actors2 = [].concat(actor, actor);\n messages.push({\n from: actors2[0],\n to: actors2[1],\n message: message.text,\n wrap: message.wrap === void 0 && autoWrap() || !!message.wrap,\n type: LINETYPE.NOTE,\n placement\n });\n};\nconst addLinks = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig());\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n const links = JSON.parse(sanitizedText);\n insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n};\nconst addALink = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n const links = {};\n let sanitizedText = sanitizeText(text.text, getConfig());\n var sep = sanitizedText.indexOf(\"@\");\n sanitizedText = sanitizedText.replace(/&/g, \"&\");\n sanitizedText = sanitizedText.replace(/=/g, \"=\");\n var label = sanitizedText.slice(0, sep - 1).trim();\n var link = sanitizedText.slice(sep + 1).trim();\n links[label] = link;\n insertLinks(actor, links);\n } catch (e) {\n log.error(\"error while parsing actor link text\", e);\n }\n};\nfunction insertLinks(actor, links) {\n if (actor.links == null) {\n actor.links = links;\n } else {\n for (let key in links) {\n actor.links[key] = links[key];\n }\n }\n}\nconst addProperties = function(actorId, text) {\n const actor = getActor(actorId);\n try {\n let sanitizedText = sanitizeText(text.text, getConfig());\n const properties = JSON.parse(sanitizedText);\n insertProperties(actor, properties);\n } catch (e) {\n log.error(\"error while parsing actor properties text\", e);\n }\n};\nfunction insertProperties(actor, properties) {\n if (actor.properties == null) {\n actor.properties = properties;\n } else {\n for (let key in properties) {\n actor.properties[key] = properties[key];\n }\n }\n}\nfunction boxEnd() {\n currentBox = void 0;\n}\nconst addDetails = function(actorId, text) {\n const actor = getActor(actorId);\n const elem = document.getElementById(text.text);\n try {\n const text2 = elem.innerHTML;\n const details = JSON.parse(text2);\n if (details[\"properties\"]) {\n insertProperties(actor, details[\"properties\"]);\n }\n if (details[\"links\"]) {\n insertLinks(actor, details[\"links\"]);\n }\n } catch (e) {\n log.error(\"error while parsing actor details text\", e);\n }\n};\nconst getActorProperty = function(actor, key) {\n if (actor !== void 0 && actor.properties !== void 0) {\n return actor.properties[key];\n }\n return void 0;\n};\nconst apply = function(param) {\n if (Array.isArray(param)) {\n param.forEach(function(item) {\n apply(item);\n });\n } else {\n switch (param.type) {\n case \"sequenceIndex\":\n messages.push({\n from: void 0,\n to: void 0,\n message: {\n start: param.sequenceIndex,\n step: param.sequenceIndexStep,\n visible: param.sequenceVisible\n },\n wrap: false,\n type: param.signalType\n });\n break;\n case \"addParticipant\":\n addActor(param.actor, param.actor, param.description, param.draw);\n break;\n case \"createParticipant\":\n if (actors[param.actor]) {\n throw new Error(\n \"It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior\"\n );\n }\n lastCreated = param.actor;\n addActor(param.actor, param.actor, param.description, param.draw);\n createdActors[param.actor] = messages.length;\n break;\n case \"destroyParticipant\":\n lastDestroyed = param.actor;\n destroyedActors[param.actor] = messages.length;\n break;\n case \"activeStart\":\n addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"activeEnd\":\n addSignal(param.actor, void 0, void 0, param.signalType);\n break;\n case \"addNote\":\n addNote(param.actor, param.placement, param.text);\n break;\n case \"addLinks\":\n addLinks(param.actor, param.text);\n break;\n case \"addALink\":\n addALink(param.actor, param.text);\n break;\n case \"addProperties\":\n addProperties(param.actor, param.text);\n break;\n case \"addDetails\":\n addDetails(param.actor, param.text);\n break;\n case \"addMessage\":\n if (lastCreated) {\n if (param.to !== lastCreated) {\n throw new Error(\n \"The created participant \" + lastCreated + \" does not have an associated creating message after its declaration. Please check the sequence diagram.\"\n );\n } else {\n lastCreated = void 0;\n }\n } else if (lastDestroyed) {\n if (param.to !== lastDestroyed && param.from !== lastDestroyed) {\n throw new Error(\n \"The destroyed participant \" + lastDestroyed + \" does not have an associated destroying message after its declaration. Please check the sequence diagram.\"\n );\n } else {\n lastDestroyed = void 0;\n }\n }\n addSignal(param.from, param.to, param.msg, param.signalType, param.activate);\n break;\n case \"boxStart\":\n addBox(param.boxData);\n break;\n case \"boxEnd\":\n boxEnd();\n break;\n case \"loopStart\":\n addSignal(void 0, void 0, param.loopText, param.signalType);\n break;\n case \"loopEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"rectStart\":\n addSignal(void 0, void 0, param.color, param.signalType);\n break;\n case \"rectEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"optStart\":\n addSignal(void 0, void 0, param.optText, param.signalType);\n break;\n case \"optEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"altStart\":\n addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"else\":\n addSignal(void 0, void 0, param.altText, param.signalType);\n break;\n case \"altEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"setAccTitle\":\n setAccTitle(param.text);\n break;\n case \"parStart\":\n addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"and\":\n addSignal(void 0, void 0, param.parText, param.signalType);\n break;\n case \"parEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"criticalStart\":\n addSignal(void 0, void 0, param.criticalText, param.signalType);\n break;\n case \"option\":\n addSignal(void 0, void 0, param.optionText, param.signalType);\n break;\n case \"criticalEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n case \"breakStart\":\n addSignal(void 0, void 0, param.breakText, param.signalType);\n break;\n case \"breakEnd\":\n addSignal(void 0, void 0, void 0, param.signalType);\n break;\n }\n }\n};\nconst db = {\n addActor,\n addMessage,\n addSignal,\n addLinks,\n addDetails,\n addProperties,\n autoWrap,\n setWrap,\n enableSequenceNumbers,\n disableSequenceNumbers,\n showSequenceNumbers,\n getMessages,\n getActors,\n getCreatedActors,\n getDestroyedActors,\n getActor,\n getActorKeys,\n getActorProperty,\n getAccTitle,\n getBoxes,\n getDiagramTitle,\n setDiagramTitle,\n getConfig: () => getConfig().sequence,\n clear,\n parseMessage,\n parseBoxData,\n LINETYPE,\n ARROWTYPE,\n PLACEMENT,\n addNote,\n setAccTitle,\n apply,\n setAccDescription,\n getAccDescription,\n hasAtLeastOneBox,\n hasAtLeastOneBoxWithTitle\n};\nconst getStyles = (options) => `.actor {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${options.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${options.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${options.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${options.signalColor};\n }\n\n #arrowhead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .sequenceNumber {\n fill: ${options.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${options.signalColor};\n }\n\n #crosshead path {\n fill: ${options.signalColor};\n stroke: ${options.signalColor};\n }\n\n .messageText {\n fill: ${options.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${options.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${options.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${options.labelBoxBorderColor};\n fill: ${options.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${options.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation1 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .activation2 {\n fill: ${options.activationBkgColor};\n stroke: ${options.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${options.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${options.actorBorder};\n fill: ${options.actorBkg};\n stroke-width: 2px;\n }\n`;\nconst styles = getStyles;\nconst ACTOR_TYPE_WIDTH = 18 * 2;\nconst drawRect = function(elem, rectData) {\n return drawRect$1(elem, rectData);\n};\nconst addPopupInteraction = (id, actorCnt2) => {\n addFunction(() => {\n const arr = document.querySelectorAll(id);\n if (arr.length === 0) {\n return;\n }\n arr[0].addEventListener(\"mouseover\", function() {\n popupMenuUpFunc(\"actor\" + actorCnt2 + \"_popup\");\n });\n arr[0].addEventListener(\"mouseout\", function() {\n popupMenuDownFunc(\"actor\" + actorCnt2 + \"_popup\");\n });\n });\n};\nconst drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {\n if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {\n return { height: 0, width: 0 };\n }\n const links = actor.links;\n const actorCnt2 = actor.actorCnt;\n const rectData = actor.rectData;\n var displayValue = \"none\";\n if (forceMenus) {\n displayValue = \"block !important\";\n }\n const g = elem.append(\"g\");\n g.attr(\"id\", \"actor\" + actorCnt2 + \"_popup\");\n g.attr(\"class\", \"actorPopupMenu\");\n g.attr(\"display\", displayValue);\n addPopupInteraction(\"#actor\" + actorCnt2 + \"_popup\", actorCnt2);\n var actorClass = \"\";\n if (rectData.class !== void 0) {\n actorClass = \" \" + rectData.class;\n }\n let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;\n const rectElem = g.append(\"rect\");\n rectElem.attr(\"class\", \"actorPopupMenuPanel\" + actorClass);\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.height);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", menuWidth);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (links != null) {\n var linkY = 20;\n for (let key in links) {\n var linkElem = g.append(\"a\");\n var sanitizedLink = sanitizeUrl(links[key]);\n linkElem.attr(\"xlink:href\", sanitizedLink);\n linkElem.attr(\"target\", \"_blank\");\n _drawMenuItemTextCandidateFunc(textAttrs)(\n key,\n linkElem,\n rectData.x + 10,\n rectData.height + linkY,\n menuWidth,\n 20,\n { class: \"actor\" },\n textAttrs\n );\n linkY += 30;\n }\n }\n rectElem.attr(\"height\", linkY);\n return { height: rectData.height + linkY, width: menuWidth };\n};\nconst popupMenu = function(popid) {\n return \"var pu = document.getElementById('\" + popid + \"'); if (pu != null) { pu.style.display = 'block'; }\";\n};\nconst popdownMenu = function(popid) {\n return \"var pu = document.getElementById('\" + popid + \"'); if (pu != null) { pu.style.display = 'none'; }\";\n};\nconst popupMenuUpFunc = function(popupId) {\n var pu = document.getElementById(popupId);\n if (pu != null) {\n pu.style.display = \"block\";\n }\n};\nconst popupMenuDownFunc = function(popupId) {\n var pu = document.getElementById(popupId);\n if (pu != null) {\n pu.style.display = \"none\";\n }\n};\nconst drawText = function(elem, textData) {\n let prevTextHeight = 0;\n let textHeight = 0;\n const lines = textData.text.split(common.lineBreakRegex);\n const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);\n let textElems = [];\n let dy = 0;\n let yfunc = () => textData.y;\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n switch (textData.valign) {\n case \"top\":\n case \"start\":\n yfunc = () => Math.round(textData.y + textData.textMargin);\n break;\n case \"middle\":\n case \"center\":\n yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);\n break;\n case \"bottom\":\n case \"end\":\n yfunc = () => Math.round(\n textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin\n );\n break;\n }\n }\n if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {\n switch (textData.anchor) {\n case \"left\":\n case \"start\":\n textData.x = Math.round(textData.x + textData.textMargin);\n textData.anchor = \"start\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"middle\":\n case \"center\":\n textData.x = Math.round(textData.x + textData.width / 2);\n textData.anchor = \"middle\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n case \"right\":\n case \"end\":\n textData.x = Math.round(textData.x + textData.width - textData.textMargin);\n textData.anchor = \"end\";\n textData.dominantBaseline = \"middle\";\n textData.alignmentBaseline = \"middle\";\n break;\n }\n }\n for (let [i, line] of lines.entries()) {\n if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {\n dy = i * _textFontSize;\n }\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", yfunc());\n if (textData.anchor !== void 0) {\n textElem.attr(\"text-anchor\", textData.anchor).attr(\"dominant-baseline\", textData.dominantBaseline).attr(\"alignment-baseline\", textData.alignmentBaseline);\n }\n if (textData.fontFamily !== void 0) {\n textElem.style(\"font-family\", textData.fontFamily);\n }\n if (_textFontSizePx !== void 0) {\n textElem.style(\"font-size\", _textFontSizePx);\n }\n if (textData.fontWeight !== void 0) {\n textElem.style(\"font-weight\", textData.fontWeight);\n }\n if (textData.fill !== void 0) {\n textElem.attr(\"fill\", textData.fill);\n }\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n if (textData.dy !== void 0) {\n textElem.attr(\"dy\", textData.dy);\n } else if (dy !== 0) {\n textElem.attr(\"dy\", dy);\n }\n const text = line || ZERO_WIDTH_SPACE;\n if (textData.tspan) {\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x);\n if (textData.fill !== void 0) {\n span.attr(\"fill\", textData.fill);\n }\n span.text(text);\n } else {\n textElem.text(text);\n }\n if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {\n textHeight += (textElem._groups || textElem)[0][0].getBBox().height;\n prevTextHeight = textHeight;\n }\n textElems.push(textElem);\n }\n return textElems;\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.height / 2;\n drawText(elem, txtObject);\n return polygon;\n};\nlet actorCnt = -1;\nconst fixLifeLineHeights = (diagram2, actors2, actorKeys, conf2) => {\n if (!diagram2.select) {\n return;\n }\n actorKeys.forEach((actorKey) => {\n const actor = actors2[actorKey];\n const actorDOM = diagram2.select(\"#actor\" + actor.actorCnt);\n if (!conf2.mirrorActors && actor.stopy) {\n actorDOM.attr(\"y2\", actor.stopy + actor.height / 2);\n } else if (conf2.mirrorActors) {\n actorDOM.attr(\"y2\", actor.stopy);\n }\n });\n};\nconst drawActorTypeParticipant = function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 5;\n const boxpluslineGroup = elem.append(\"g\").lower();\n var g = boxpluslineGroup;\n if (!isFooter) {\n actorCnt++;\n g.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line\").attr(\"class\", \"200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\");\n g = boxpluslineGroup.append(\"g\");\n actor.actorCnt = actorCnt;\n if (actor.links != null) {\n g.attr(\"id\", \"root-\" + actorCnt);\n addPopupInteraction(\"#root-\" + actorCnt, actorCnt);\n }\n }\n const rect = getNoteRect$1();\n var cssclass = \"actor\";\n if (actor.properties != null && actor.properties[\"class\"]) {\n cssclass = actor.properties[\"class\"];\n } else {\n rect.fill = \"#eaeaea\";\n }\n rect.x = actor.x;\n rect.y = actorY;\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = cssclass;\n rect.rx = 3;\n rect.ry = 3;\n const rectElem = drawRect(g, rect);\n actor.rectData = rect;\n if (actor.properties != null && actor.properties[\"icon\"]) {\n const iconSrc = actor.properties[\"icon\"].trim();\n if (iconSrc.charAt(0) === \"@\") {\n drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));\n } else {\n drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);\n }\n }\n _drawTextCandidateFunc(conf2)(\n actor.description,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"actor\" },\n conf2\n );\n let height = actor.height;\n if (rectElem.node) {\n const bounds2 = rectElem.node().getBBox();\n actor.height = bounds2.height;\n height = bounds2.height;\n }\n return height;\n};\nconst drawActorTypeActor = function(elem, actor, conf2, isFooter) {\n const actorY = isFooter ? actor.stopy : actor.starty;\n const center = actor.x + actor.width / 2;\n const centerY = actorY + 80;\n elem.lower();\n if (!isFooter) {\n actorCnt++;\n elem.append(\"line\").attr(\"id\", \"actor\" + actorCnt).attr(\"x1\", center).attr(\"y1\", centerY).attr(\"x2\", center).attr(\"y2\", 2e3).attr(\"class\", \"actor-line\").attr(\"class\", \"200\").attr(\"stroke-width\", \"0.5px\").attr(\"stroke\", \"#999\");\n actor.actorCnt = actorCnt;\n }\n const actElem = elem.append(\"g\");\n actElem.attr(\"class\", \"actor-man\");\n const rect = getNoteRect$1();\n rect.x = actor.x;\n rect.y = actorY;\n rect.fill = \"#eaeaea\";\n rect.width = actor.width;\n rect.height = actor.height;\n rect.class = \"actor\";\n rect.rx = 3;\n rect.ry = 3;\n actElem.append(\"line\").attr(\"id\", \"actor-man-torso\" + actorCnt).attr(\"x1\", center).attr(\"y1\", actorY + 25).attr(\"x2\", center).attr(\"y2\", actorY + 45);\n actElem.append(\"line\").attr(\"id\", \"actor-man-arms\" + actorCnt).attr(\"x1\", center - ACTOR_TYPE_WIDTH / 2).attr(\"y1\", actorY + 33).attr(\"x2\", center + ACTOR_TYPE_WIDTH / 2).attr(\"y2\", actorY + 33);\n actElem.append(\"line\").attr(\"x1\", center - ACTOR_TYPE_WIDTH / 2).attr(\"y1\", actorY + 60).attr(\"x2\", center).attr(\"y2\", actorY + 45);\n actElem.append(\"line\").attr(\"x1\", center).attr(\"y1\", actorY + 45).attr(\"x2\", center + ACTOR_TYPE_WIDTH / 2 - 2).attr(\"y2\", actorY + 60);\n const circle = actElem.append(\"circle\");\n circle.attr(\"cx\", actor.x + actor.width / 2);\n circle.attr(\"cy\", actorY + 10);\n circle.attr(\"r\", 15);\n circle.attr(\"width\", actor.width);\n circle.attr(\"height\", actor.height);\n const bounds2 = actElem.node().getBBox();\n actor.height = bounds2.height;\n _drawTextCandidateFunc(conf2)(\n actor.description,\n actElem,\n rect.x,\n rect.y + 35,\n rect.width,\n rect.height,\n { class: \"actor\" },\n conf2\n );\n return actor.height;\n};\nconst drawActor = function(elem, actor, conf2, isFooter) {\n switch (actor.type) {\n case \"actor\":\n return drawActorTypeActor(elem, actor, conf2, isFooter);\n case \"participant\":\n return drawActorTypeParticipant(elem, actor, conf2, isFooter);\n }\n};\nconst drawBox = function(elem, box, conf2) {\n const boxplustextGroup = elem.append(\"g\");\n const g = boxplustextGroup;\n drawBackgroundRect(g, box);\n if (box.name) {\n _drawTextCandidateFunc(conf2)(\n box.name,\n g,\n box.x,\n box.y + (box.textMaxHeight || 0) / 2,\n box.width,\n 0,\n { class: \"text\" },\n conf2\n );\n }\n g.lower();\n};\nconst anchorElement = function(elem) {\n return elem.append(\"g\");\n};\nconst drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {\n const rect = getNoteRect$1();\n const g = bounds2.anchored;\n rect.x = bounds2.startx;\n rect.y = bounds2.starty;\n rect.class = \"activation\" + actorActivations2 % 3;\n rect.width = bounds2.stopx - bounds2.startx;\n rect.height = verticalPos - bounds2.starty;\n drawRect(g, rect);\n};\nconst drawLoop = function(elem, loopModel, labelText, conf2) {\n const {\n boxMargin,\n boxTextMargin,\n labelBoxHeight,\n labelBoxWidth,\n messageFontFamily: fontFamily,\n messageFontSize: fontSize,\n messageFontWeight: fontWeight\n } = conf2;\n const g = elem.append(\"g\");\n const drawLoopLine = function(startx, starty, stopx, stopy) {\n return g.append(\"line\").attr(\"x1\", startx).attr(\"y1\", starty).attr(\"x2\", stopx).attr(\"y2\", stopy).attr(\"class\", \"loopLine\");\n };\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);\n drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);\n drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);\n if (loopModel.sections !== void 0) {\n loopModel.sections.forEach(function(item) {\n drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(\n \"stroke-dasharray\",\n \"3, 3\"\n );\n });\n }\n let txt = getTextObj$1();\n txt.text = labelText;\n txt.x = loopModel.startx;\n txt.y = loopModel.starty;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.width = labelBoxWidth || 50;\n txt.height = labelBoxHeight || 20;\n txt.textMargin = boxTextMargin;\n txt.class = \"labelText\";\n drawLabel(g, txt);\n txt = getTextObj();\n txt.text = loopModel.title;\n txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.starty + boxMargin + boxTextMargin;\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.textMargin = boxTextMargin;\n txt.class = \"loopText\";\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = true;\n let textElem = drawText(g, txt);\n if (loopModel.sectionTitles !== void 0) {\n loopModel.sectionTitles.forEach(function(item, idx) {\n if (item.message) {\n txt.text = item.message;\n txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;\n txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;\n txt.class = \"loopText\";\n txt.anchor = \"middle\";\n txt.valign = \"middle\";\n txt.tspan = false;\n txt.fontFamily = fontFamily;\n txt.fontSize = fontSize;\n txt.fontWeight = fontWeight;\n txt.wrap = loopModel.wrap;\n textElem = drawText(g, txt);\n let sectionHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);\n }\n });\n }\n loopModel.height = Math.round(loopModel.stopy - loopModel.starty);\n return g;\n};\nconst drawBackgroundRect = function(elem, bounds2) {\n drawBackgroundRect$1(elem, bounds2);\n};\nconst insertDatabaseIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"database\").attr(\"fill-rule\", \"evenodd\").attr(\"clip-rule\", \"evenodd\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"\n );\n};\nconst insertComputerIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"computer\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"\n );\n};\nconst insertClockIcon = function(elem) {\n elem.append(\"defs\").append(\"symbol\").attr(\"id\", \"clock\").attr(\"width\", \"24\").attr(\"height\", \"24\").append(\"path\").attr(\"transform\", \"scale(.5)\").attr(\n \"d\",\n \"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"\n );\n};\nconst insertArrowHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 7.9).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\");\n};\nconst insertArrowFilledHead = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"filled-head\").attr(\"refX\", 15.5).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n};\nconst insertSequenceNumber = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"sequencenumber\").attr(\"refX\", 15).attr(\"refY\", 15).attr(\"markerWidth\", 60).attr(\"markerHeight\", 40).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", 15).attr(\"cy\", 15).attr(\"r\", 6);\n};\nconst insertArrowCrossHead = function(elem) {\n const defs = elem.append(\"defs\");\n const marker = defs.append(\"marker\").attr(\"id\", \"crosshead\").attr(\"markerWidth\", 15).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").attr(\"refX\", 4).attr(\"refY\", 4.5);\n marker.append(\"path\").attr(\"fill\", \"none\").attr(\"stroke\", \"#000000\").style(\"stroke-dasharray\", \"0, 0\").attr(\"stroke-width\", \"1pt\").attr(\"d\", \"M 1,2 L 6,7 M 6,2 L 1,7\");\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: void 0,\n style: \"#666\",\n width: void 0,\n height: void 0,\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true,\n valign: void 0\n };\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).style(\"text-anchor\", \"middle\").style(\"font-size\", _actorFontSizePx).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst _drawMenuItemTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs) {\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf2) {\n const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;\n const lines = content.split(common.lineBreakRegex);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x).attr(\"y\", y).style(\"text-anchor\", \"start\").style(\"font-size\", actorFontSize).style(\"font-weight\", actorFontWeight).style(\"font-family\", actorFontFamily);\n text.append(\"tspan\").attr(\"x\", x).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf2) {\n const s = g.append(\"switch\");\n const f = s.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, s, x, y, width, height, textAttrs, conf2);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (fromTextAttrsDict.hasOwnProperty(key)) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf2) {\n return conf2.textPlacement === \"fo\" ? byFo : conf2.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst svgDraw = {\n drawRect,\n drawText,\n drawLabel,\n drawActor,\n drawBox,\n drawPopup,\n anchorElement,\n drawActivation,\n drawLoop,\n drawBackgroundRect,\n insertArrowHead,\n insertArrowFilledHead,\n insertSequenceNumber,\n insertArrowCrossHead,\n insertDatabaseIcon,\n insertComputerIcon,\n insertClockIcon,\n getTextObj,\n getNoteRect,\n popupMenu,\n popdownMenu,\n fixLifeLineHeights,\n sanitizeUrl\n};\nlet conf = {};\nconst bounds = {\n data: {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n },\n verticalPos: 0,\n sequenceItems: [],\n activations: [],\n models: {\n getHeight: function() {\n return Math.max.apply(\n null,\n this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)\n ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));\n },\n clear: function() {\n this.actors = [];\n this.boxes = [];\n this.loops = [];\n this.messages = [];\n this.notes = [];\n },\n addBox: function(boxModel) {\n this.boxes.push(boxModel);\n },\n addActor: function(actorModel) {\n this.actors.push(actorModel);\n },\n addLoop: function(loopModel) {\n this.loops.push(loopModel);\n },\n addMessage: function(msgModel) {\n this.messages.push(msgModel);\n },\n addNote: function(noteModel) {\n this.notes.push(noteModel);\n },\n lastActor: function() {\n return this.actors[this.actors.length - 1];\n },\n lastLoop: function() {\n return this.loops[this.loops.length - 1];\n },\n lastMessage: function() {\n return this.messages[this.messages.length - 1];\n },\n lastNote: function() {\n return this.notes[this.notes.length - 1];\n },\n actors: [],\n boxes: [],\n loops: [],\n messages: [],\n notes: []\n },\n init: function() {\n this.sequenceItems = [];\n this.activations = [];\n this.models.clear();\n this.data = {\n startx: void 0,\n stopx: void 0,\n starty: void 0,\n stopy: void 0\n };\n this.verticalPos = 0;\n setConf(getConfig());\n },\n updateVal: function(obj, key, val, fun) {\n if (obj[key] === void 0) {\n obj[key] = val;\n } else {\n obj[key] = fun(val, obj[key]);\n }\n },\n updateBounds: function(startx, starty, stopx, stopy) {\n const _self = this;\n let cnt = 0;\n function updateFn(type) {\n return function updateItemBounds(item) {\n cnt++;\n const n = _self.sequenceItems.length - cnt + 1;\n _self.updateVal(item, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n if (!(type === \"activation\")) {\n _self.updateVal(item, \"startx\", startx - n * conf.boxMargin, Math.min);\n _self.updateVal(item, \"stopx\", stopx + n * conf.boxMargin, Math.max);\n _self.updateVal(bounds.data, \"starty\", starty - n * conf.boxMargin, Math.min);\n _self.updateVal(bounds.data, \"stopy\", stopy + n * conf.boxMargin, Math.max);\n }\n };\n }\n this.sequenceItems.forEach(updateFn());\n this.activations.forEach(updateFn(\"activation\"));\n },\n insert: function(startx, starty, stopx, stopy) {\n const _startx = common.getMin(startx, stopx);\n const _stopx = common.getMax(startx, stopx);\n const _starty = common.getMin(starty, stopy);\n const _stopy = common.getMax(starty, stopy);\n this.updateVal(bounds.data, \"startx\", _startx, Math.min);\n this.updateVal(bounds.data, \"starty\", _starty, Math.min);\n this.updateVal(bounds.data, \"stopx\", _stopx, Math.max);\n this.updateVal(bounds.data, \"stopy\", _stopy, Math.max);\n this.updateBounds(_startx, _starty, _stopx, _stopy);\n },\n newActivation: function(message, diagram2, actors2) {\n const actorRect = actors2[message.from.actor];\n const stackedSize = actorActivations(message.from.actor).length || 0;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n this.activations.push({\n startx: x,\n starty: this.verticalPos + 2,\n stopx: x + conf.activationWidth,\n stopy: void 0,\n actor: message.from.actor,\n anchored: svgDraw.anchorElement(diagram2)\n });\n },\n endActivation: function(message) {\n const lastActorActivationIdx = this.activations.map(function(activation) {\n return activation.actor;\n }).lastIndexOf(message.from.actor);\n return this.activations.splice(lastActorActivationIdx, 1)[0];\n },\n createLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n return {\n startx: void 0,\n starty: this.verticalPos,\n stopx: void 0,\n stopy: void 0,\n title: title.message,\n wrap: title.wrap,\n width: title.width,\n height: 0,\n fill\n };\n },\n newLoop: function(title = { message: void 0, wrap: false, width: void 0 }, fill) {\n this.sequenceItems.push(this.createLoop(title, fill));\n },\n endLoop: function() {\n return this.sequenceItems.pop();\n },\n isLoopOverlap: function() {\n return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false;\n },\n addSectionToLoop: function(message) {\n const loop = this.sequenceItems.pop();\n loop.sections = loop.sections || [];\n loop.sectionTitles = loop.sectionTitles || [];\n loop.sections.push({ y: bounds.getVerticalPos(), height: 0 });\n loop.sectionTitles.push(message);\n this.sequenceItems.push(loop);\n },\n saveVerticalPos: function() {\n if (this.isLoopOverlap()) {\n this.savedVerticalPos = this.verticalPos;\n }\n },\n resetVerticalPos: function() {\n if (this.isLoopOverlap()) {\n this.verticalPos = this.savedVerticalPos;\n }\n },\n bumpVerticalPos: function(bump) {\n this.verticalPos = this.verticalPos + bump;\n this.data.stopy = common.getMax(this.data.stopy, this.verticalPos);\n },\n getVerticalPos: function() {\n return this.verticalPos;\n },\n getBounds: function() {\n return { bounds: this.data, models: this.models };\n }\n};\nconst drawNote = function(elem, noteModel) {\n bounds.bumpVerticalPos(conf.boxMargin);\n noteModel.height = conf.boxMargin;\n noteModel.starty = bounds.getVerticalPos();\n const rect = getNoteRect$1();\n rect.x = noteModel.startx;\n rect.y = noteModel.starty;\n rect.width = noteModel.width || conf.width;\n rect.class = \"note\";\n const g = elem.append(\"g\");\n const rectElem = svgDraw.drawRect(g, rect);\n const textObj = getTextObj$1();\n textObj.x = noteModel.startx;\n textObj.y = noteModel.starty;\n textObj.width = rect.width;\n textObj.dy = \"1em\";\n textObj.text = noteModel.message;\n textObj.class = \"noteText\";\n textObj.fontFamily = conf.noteFontFamily;\n textObj.fontSize = conf.noteFontSize;\n textObj.fontWeight = conf.noteFontWeight;\n textObj.anchor = conf.noteAlign;\n textObj.textMargin = conf.noteMargin;\n textObj.valign = \"center\";\n const textElem = drawText(g, textObj);\n const textHeight = Math.round(\n textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)\n );\n rectElem.attr(\"height\", textHeight + 2 * conf.noteMargin);\n noteModel.height += textHeight + 2 * conf.noteMargin;\n bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);\n noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;\n noteModel.stopx = noteModel.startx + rect.width;\n bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);\n bounds.models.addNote(noteModel);\n};\nconst messageFont = (cnf) => {\n return {\n fontFamily: cnf.messageFontFamily,\n fontSize: cnf.messageFontSize,\n fontWeight: cnf.messageFontWeight\n };\n};\nconst noteFont = (cnf) => {\n return {\n fontFamily: cnf.noteFontFamily,\n fontSize: cnf.noteFontSize,\n fontWeight: cnf.noteFontWeight\n };\n};\nconst actorFont = (cnf) => {\n return {\n fontFamily: cnf.actorFontFamily,\n fontSize: cnf.actorFontSize,\n fontWeight: cnf.actorFontWeight\n };\n};\nfunction boundMessage(_diagram, msgModel) {\n bounds.bumpVerticalPos(10);\n const { startx, stopx, message } = msgModel;\n const lines = common.splitBreaks(message).length;\n const textDims = utils.calculateTextDimensions(message, messageFont(conf));\n const lineHeight = textDims.height / lines;\n msgModel.height += lineHeight;\n bounds.bumpVerticalPos(lineHeight);\n let lineStartY;\n let totalOffset = textDims.height - 10;\n const textWidth = textDims.width;\n if (startx === stopx) {\n lineStartY = bounds.getVerticalPos() + totalOffset;\n if (!conf.rightAngles) {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n }\n totalOffset += 30;\n const dx = common.getMax(textWidth / 2, conf.width / 2);\n bounds.insert(\n startx - dx,\n bounds.getVerticalPos() - 10 + totalOffset,\n stopx + dx,\n bounds.getVerticalPos() + 30 + totalOffset\n );\n } else {\n totalOffset += conf.boxMargin;\n lineStartY = bounds.getVerticalPos() + totalOffset;\n bounds.insert(startx, lineStartY - 10, stopx, lineStartY);\n }\n bounds.bumpVerticalPos(totalOffset);\n msgModel.height += totalOffset;\n msgModel.stopy = msgModel.starty + msgModel.height;\n bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);\n return lineStartY;\n}\nconst drawMessage = function(diagram2, msgModel, lineStartY, diagObj) {\n const { startx, stopx, starty, message, type, sequenceIndex, sequenceVisible } = msgModel;\n const textDims = utils.calculateTextDimensions(message, messageFont(conf));\n const textObj = getTextObj$1();\n textObj.x = startx;\n textObj.y = starty + 10;\n textObj.width = stopx - startx;\n textObj.class = \"messageText\";\n textObj.dy = \"1em\";\n textObj.text = message;\n textObj.fontFamily = conf.messageFontFamily;\n textObj.fontSize = conf.messageFontSize;\n textObj.fontWeight = conf.messageFontWeight;\n textObj.anchor = conf.messageAlign;\n textObj.valign = \"center\";\n textObj.textMargin = conf.wrapPadding;\n textObj.tspan = false;\n drawText(diagram2, textObj);\n const textWidth = textDims.width;\n let line;\n if (startx === stopx) {\n if (conf.rightAngles) {\n line = diagram2.append(\"path\").attr(\n \"d\",\n `M ${startx},${lineStartY} H ${startx + common.getMax(conf.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`\n );\n } else {\n line = diagram2.append(\"path\").attr(\n \"d\",\n \"M \" + startx + \",\" + lineStartY + \" C \" + (startx + 60) + \",\" + (lineStartY - 10) + \" \" + (startx + 60) + \",\" + (lineStartY + 30) + \" \" + startx + \",\" + (lineStartY + 20)\n );\n }\n } else {\n line = diagram2.append(\"line\");\n line.attr(\"x1\", startx);\n line.attr(\"y1\", lineStartY);\n line.attr(\"x2\", stopx);\n line.attr(\"y2\", lineStartY);\n }\n if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) {\n line.style(\"stroke-dasharray\", \"3, 3\");\n line.attr(\"class\", \"messageLine1\");\n } else {\n line.attr(\"class\", \"messageLine0\");\n }\n let url = \"\";\n if (conf.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n line.attr(\"stroke-width\", 2);\n line.attr(\"stroke\", \"none\");\n line.style(\"fill\", \"none\");\n if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {\n line.attr(\"marker-end\", \"url(\" + url + \"#arrowhead)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {\n line.attr(\"marker-end\", \"url(\" + url + \"#filled-head)\");\n }\n if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {\n line.attr(\"marker-end\", \"url(\" + url + \"#crosshead)\");\n }\n if (sequenceVisible || conf.showSequenceNumbers) {\n line.attr(\"marker-start\", \"url(\" + url + \"#sequencenumber)\");\n diagram2.append(\"text\").attr(\"x\", startx).attr(\"y\", lineStartY + 4).attr(\"font-family\", \"sans-serif\").attr(\"font-size\", \"12px\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"sequenceNumber\").text(sequenceIndex);\n }\n};\nconst addActorRenderingData = function(diagram2, actors2, createdActors2, actorKeys, verticalPos, messages2, isFooter) {\n let prevWidth = 0;\n let prevMargin = 0;\n let prevBox = void 0;\n let maxHeight = 0;\n for (const actorKey of actorKeys) {\n const actor = actors2[actorKey];\n const box = actor.box;\n if (prevBox && prevBox != box) {\n if (!isFooter) {\n bounds.models.addBox(prevBox);\n }\n prevMargin += conf.boxMargin + prevBox.margin;\n }\n if (box && box != prevBox) {\n if (!isFooter) {\n box.x = prevWidth + prevMargin;\n box.y = verticalPos;\n }\n prevMargin += box.margin;\n }\n actor.width = actor.width || conf.width;\n actor.height = common.getMax(actor.height || conf.height, conf.height);\n actor.margin = actor.margin || conf.actorMargin;\n maxHeight = common.getMax(maxHeight, actor.height);\n if (createdActors2[actor.name]) {\n prevMargin += actor.width / 2;\n }\n actor.x = prevWidth + prevMargin;\n actor.starty = bounds.getVerticalPos();\n bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);\n prevWidth += actor.width + prevMargin;\n if (actor.box) {\n actor.box.width = prevWidth + box.margin - actor.box.x;\n }\n prevMargin = actor.margin;\n prevBox = actor.box;\n bounds.models.addActor(actor);\n }\n if (prevBox && !isFooter) {\n bounds.models.addBox(prevBox);\n }\n bounds.bumpVerticalPos(maxHeight);\n};\nconst drawActors = function(diagram2, actors2, actorKeys, isFooter) {\n if (!isFooter) {\n for (const actorKey of actorKeys) {\n const actor = actors2[actorKey];\n svgDraw.drawActor(diagram2, actor, conf, false);\n }\n } else {\n let maxHeight = 0;\n bounds.bumpVerticalPos(conf.boxMargin * 2);\n for (const actorKey of actorKeys) {\n const actor = actors2[actorKey];\n if (!actor.stopy) {\n actor.stopy = bounds.getVerticalPos();\n }\n const height = svgDraw.drawActor(diagram2, actor, conf, true);\n maxHeight = common.getMax(maxHeight, height);\n }\n bounds.bumpVerticalPos(maxHeight + conf.boxMargin);\n }\n};\nconst drawActorsPopup = function(diagram2, actors2, actorKeys, doc) {\n let maxHeight = 0;\n let maxWidth = 0;\n for (const actorKey of actorKeys) {\n const actor = actors2[actorKey];\n const minMenuWidth = getRequiredPopupWidth(actor);\n const menuDimensions = svgDraw.drawPopup(\n diagram2,\n actor,\n minMenuWidth,\n conf,\n conf.forceMenus,\n doc\n );\n if (menuDimensions.height > maxHeight) {\n maxHeight = menuDimensions.height;\n }\n if (menuDimensions.width + actor.x > maxWidth) {\n maxWidth = menuDimensions.width + actor.x;\n }\n }\n return { maxHeight, maxWidth };\n};\nconst setConf = function(cnf) {\n assignWithDepth(conf, cnf);\n if (cnf.fontFamily) {\n conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;\n }\n if (cnf.fontSize) {\n conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;\n }\n if (cnf.fontWeight) {\n conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;\n }\n};\nconst actorActivations = function(actor) {\n return bounds.activations.filter(function(activation) {\n return activation.actor === actor;\n });\n};\nconst activationBounds = function(actor, actors2) {\n const actorObj = actors2[actor];\n const activations = actorActivations(actor);\n const left = activations.reduce(function(acc, activation) {\n return common.getMin(acc, activation.startx);\n }, actorObj.x + actorObj.width / 2 - 1);\n const right = activations.reduce(function(acc, activation) {\n return common.getMax(acc, activation.stopx);\n }, actorObj.x + actorObj.width / 2 + 1);\n return [left, right];\n};\nfunction adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {\n bounds.bumpVerticalPos(preMargin);\n let heightAdjust = postMargin;\n if (msg.id && msg.message && loopWidths[msg.id]) {\n const loopWidth = loopWidths[msg.id].width;\n const textConf = messageFont(conf);\n msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf.wrapPadding, textConf);\n msg.width = loopWidth;\n msg.wrap = true;\n const textDims = utils.calculateTextDimensions(msg.message, textConf);\n const totalOffset = common.getMax(textDims.height, conf.labelBoxHeight);\n heightAdjust = postMargin + totalOffset;\n log.debug(`${totalOffset} - ${msg.message}`);\n }\n addLoopFn(msg);\n bounds.bumpVerticalPos(heightAdjust);\n}\nfunction adjustCreatedDestroyedData(msg, msgModel, lineStartY, index, actors2, createdActors2, destroyedActors2) {\n function receiverAdjustment(actor, adjustment) {\n if (actor.x < actors2[msg.from].x) {\n bounds.insert(\n msgModel.stopx - adjustment,\n msgModel.starty,\n msgModel.startx,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.stopx = msgModel.stopx + adjustment;\n } else {\n bounds.insert(\n msgModel.startx,\n msgModel.starty,\n msgModel.stopx + adjustment,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.stopx = msgModel.stopx - adjustment;\n }\n }\n function senderAdjustment(actor, adjustment) {\n if (actor.x < actors2[msg.to].x) {\n bounds.insert(\n msgModel.startx - adjustment,\n msgModel.starty,\n msgModel.stopx,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.startx = msgModel.startx + adjustment;\n } else {\n bounds.insert(\n msgModel.stopx,\n msgModel.starty,\n msgModel.startx + adjustment,\n msgModel.stopy + actor.height / 2 + conf.noteMargin\n );\n msgModel.startx = msgModel.startx - adjustment;\n }\n }\n if (createdActors2[msg.to] == index) {\n const actor = actors2[msg.to];\n const adjustment = actor.type == \"actor\" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;\n receiverAdjustment(actor, adjustment);\n actor.starty = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n } else if (destroyedActors2[msg.from] == index) {\n const actor = actors2[msg.from];\n if (conf.mirrorActors) {\n const adjustment = actor.type == \"actor\" ? ACTOR_TYPE_WIDTH / 2 : actor.width / 2;\n senderAdjustment(actor, adjustment);\n }\n actor.stopy = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n } else if (destroyedActors2[msg.to] == index) {\n const actor = actors2[msg.to];\n if (conf.mirrorActors) {\n const adjustment = actor.type == \"actor\" ? ACTOR_TYPE_WIDTH / 2 + 3 : actor.width / 2 + 3;\n receiverAdjustment(actor, adjustment);\n }\n actor.stopy = lineStartY - actor.height / 2;\n bounds.bumpVerticalPos(actor.height / 2);\n }\n}\nconst draw = function(_text, id, _version, diagObj) {\n const { securityLevel, sequence } = getConfig();\n conf = sequence;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n bounds.init();\n log.debug(diagObj.db);\n const diagram2 = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n const actors2 = diagObj.db.getActors();\n const createdActors2 = diagObj.db.getCreatedActors();\n const destroyedActors2 = diagObj.db.getDestroyedActors();\n const boxes2 = diagObj.db.getBoxes();\n let actorKeys = diagObj.db.getActorKeys();\n const messages2 = diagObj.db.getMessages();\n const title = diagObj.db.getDiagramTitle();\n const hasBoxes = diagObj.db.hasAtLeastOneBox();\n const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();\n const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj);\n conf.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2);\n svgDraw.insertComputerIcon(diagram2);\n svgDraw.insertDatabaseIcon(diagram2);\n svgDraw.insertClockIcon(diagram2);\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n if (hasBoxTitles) {\n bounds.bumpVerticalPos(boxes2[0].textMaxHeight);\n }\n }\n if (conf.hideUnusedParticipants === true) {\n const newActors = /* @__PURE__ */ new Set();\n messages2.forEach((message) => {\n newActors.add(message.from);\n newActors.add(message.to);\n });\n actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));\n }\n addActorRenderingData(diagram2, actors2, createdActors2, actorKeys, 0, messages2, false);\n const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj);\n svgDraw.insertArrowHead(diagram2);\n svgDraw.insertArrowCrossHead(diagram2);\n svgDraw.insertArrowFilledHead(diagram2);\n svgDraw.insertSequenceNumber(diagram2);\n function activeEnd(msg, verticalPos) {\n const activationData = bounds.endActivation(msg);\n if (activationData.starty + 18 > verticalPos) {\n activationData.starty = verticalPos - 6;\n verticalPos += 12;\n }\n svgDraw.drawActivation(\n diagram2,\n activationData,\n verticalPos,\n conf,\n actorActivations(msg.from.actor).length\n );\n bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);\n }\n let sequenceIndex = 1;\n let sequenceIndexStep = 1;\n const messagesToDraw = [];\n const backgrounds = [];\n messages2.forEach(function(msg, index) {\n let loopModel, noteModel, msgModel;\n switch (msg.type) {\n case diagObj.db.LINETYPE.NOTE:\n bounds.resetVerticalPos();\n noteModel = msg.noteModel;\n drawNote(diagram2, noteModel);\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n bounds.newActivation(msg, diagram2, actors2);\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n activeEnd(msg, bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.LOOP_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"loop\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.RECT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin,\n (message) => bounds.newLoop(void 0, message.message)\n );\n break;\n case diagObj.db.LINETYPE.RECT_END:\n loopModel = bounds.endLoop();\n backgrounds.push(loopModel);\n bounds.models.addLoop(loopModel);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n break;\n case diagObj.db.LINETYPE.OPT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.OPT_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"opt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.ALT_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.ALT_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"alt\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n bounds.saveVerticalPos();\n break;\n case diagObj.db.LINETYPE.PAR_AND:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.PAR_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"par\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.AUTONUMBER:\n sequenceIndex = msg.message.start || sequenceIndex;\n sequenceIndexStep = msg.message.step || sequenceIndexStep;\n if (msg.message.visible) {\n diagObj.db.enableSequenceNumbers();\n } else {\n diagObj.db.disableSequenceNumbers();\n }\n break;\n case diagObj.db.LINETYPE.CRITICAL_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin + conf.boxTextMargin,\n conf.boxMargin,\n (message) => bounds.addSectionToLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.CRITICAL_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"critical\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n case diagObj.db.LINETYPE.BREAK_START:\n adjustLoopHeightForWrap(\n loopWidths,\n msg,\n conf.boxMargin,\n conf.boxMargin + conf.boxTextMargin,\n (message) => bounds.newLoop(message)\n );\n break;\n case diagObj.db.LINETYPE.BREAK_END:\n loopModel = bounds.endLoop();\n svgDraw.drawLoop(diagram2, loopModel, \"break\", conf);\n bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());\n bounds.models.addLoop(loopModel);\n break;\n default:\n try {\n msgModel = msg.msgModel;\n msgModel.starty = bounds.getVerticalPos();\n msgModel.sequenceIndex = sequenceIndex;\n msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();\n const lineStartY = boundMessage(diagram2, msgModel);\n adjustCreatedDestroyedData(\n msg,\n msgModel,\n lineStartY,\n index,\n actors2,\n createdActors2,\n destroyedActors2\n );\n messagesToDraw.push({ messageModel: msgModel, lineStartY });\n bounds.models.addMessage(msgModel);\n } catch (e) {\n log.error(\"error while drawing message\", e);\n }\n }\n if ([\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT\n ].includes(msg.type)) {\n sequenceIndex = sequenceIndex + sequenceIndexStep;\n }\n });\n log.debug(\"createdActors\", createdActors2);\n log.debug(\"destroyedActors\", destroyedActors2);\n drawActors(diagram2, actors2, actorKeys, false);\n messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj));\n if (conf.mirrorActors) {\n drawActors(diagram2, actors2, actorKeys, true);\n }\n backgrounds.forEach((e) => svgDraw.drawBackgroundRect(diagram2, e));\n fixLifeLineHeights(diagram2, actors2, actorKeys, conf);\n bounds.models.boxes.forEach(function(box2) {\n box2.height = bounds.getVerticalPos() - box2.y;\n bounds.insert(box2.x, box2.y, box2.x + box2.width, box2.height);\n box2.startx = box2.x;\n box2.starty = box2.y;\n box2.stopx = box2.startx + box2.width;\n box2.stopy = box2.starty + box2.height;\n box2.stroke = \"rgb(0,0,0, 0.5)\";\n svgDraw.drawBox(diagram2, box2, conf);\n });\n if (hasBoxes) {\n bounds.bumpVerticalPos(conf.boxMargin);\n }\n const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc);\n const { bounds: box } = bounds.getBounds();\n let boxHeight = box.stopy - box.starty;\n if (boxHeight < requiredBoxSize.maxHeight) {\n boxHeight = requiredBoxSize.maxHeight;\n }\n let height = boxHeight + 2 * conf.diagramMarginY;\n if (conf.mirrorActors) {\n height = height - conf.boxMargin + conf.bottomMarginAdj;\n }\n let boxWidth = box.stopx - box.startx;\n if (boxWidth < requiredBoxSize.maxWidth) {\n boxWidth = requiredBoxSize.maxWidth;\n }\n const width = boxWidth + 2 * conf.diagramMarginX;\n if (title) {\n diagram2.append(\"text\").text(title).attr(\"x\", (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr(\"y\", -25);\n }\n configureSvgSize(diagram2, height, width, conf.useMaxWidth);\n const extraVertForTitle = title ? 40 : 0;\n diagram2.attr(\n \"viewBox\",\n box.startx - conf.diagramMarginX + \" -\" + (conf.diagramMarginY + extraVertForTitle) + \" \" + width + \" \" + (height + extraVertForTitle)\n );\n log.debug(`models:`, bounds.models);\n};\nfunction getMaxMessageWidthPerActor(actors2, messages2, diagObj) {\n const maxMessageWidthPerActor = {};\n messages2.forEach(function(msg) {\n if (actors2[msg.to] && actors2[msg.from]) {\n const actor = actors2[msg.to];\n if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {\n return;\n }\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {\n return;\n }\n const isNote = msg.placement !== void 0;\n const isMessage = !isNote;\n const textFont = isNote ? noteFont(conf) : messageFont(conf);\n const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;\n const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont);\n const messageWidth = messageDimensions.width + 2 * conf.wrapPadding;\n if (isMessage && msg.from === actor.nextActor) {\n maxMessageWidthPerActor[msg.to] = common.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === actor.prevActor) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (isMessage && msg.from === msg.to) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n maxMessageWidthPerActor[msg.to] = common.getMax(\n maxMessageWidthPerActor[msg.to] || 0,\n messageWidth / 2\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n maxMessageWidthPerActor[actor.prevActor] = common.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth\n );\n } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {\n if (actor.prevActor) {\n maxMessageWidthPerActor[actor.prevActor] = common.getMax(\n maxMessageWidthPerActor[actor.prevActor] || 0,\n messageWidth / 2\n );\n }\n if (actor.nextActor) {\n maxMessageWidthPerActor[msg.from] = common.getMax(\n maxMessageWidthPerActor[msg.from] || 0,\n messageWidth / 2\n );\n }\n }\n }\n });\n log.debug(\"maxMessageWidthPerActor:\", maxMessageWidthPerActor);\n return maxMessageWidthPerActor;\n}\nconst getRequiredPopupWidth = function(actor) {\n let requiredPopupWidth = 0;\n const textFont = actorFont(conf);\n for (const key in actor.links) {\n const labelDimensions = utils.calculateTextDimensions(key, textFont);\n const labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;\n if (requiredPopupWidth < labelWidth) {\n requiredPopupWidth = labelWidth;\n }\n }\n return requiredPopupWidth;\n};\nfunction calculateActorMargins(actors2, actorToMessageWidth, boxes2) {\n let maxHeight = 0;\n Object.keys(actors2).forEach((prop) => {\n const actor = actors2[prop];\n if (actor.wrap) {\n actor.description = utils.wrapLabel(\n actor.description,\n conf.width - 2 * conf.wrapPadding,\n actorFont(conf)\n );\n }\n const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf));\n actor.width = actor.wrap ? conf.width : common.getMax(conf.width, actDims.width + 2 * conf.wrapPadding);\n actor.height = actor.wrap ? common.getMax(actDims.height, conf.height) : conf.height;\n maxHeight = common.getMax(maxHeight, actor.height);\n });\n for (const actorKey in actorToMessageWidth) {\n const actor = actors2[actorKey];\n if (!actor) {\n continue;\n }\n const nextActor = actors2[actor.nextActor];\n if (!nextActor) {\n const messageWidth2 = actorToMessageWidth[actorKey];\n const actorWidth2 = messageWidth2 + conf.actorMargin - actor.width / 2;\n actor.margin = common.getMax(actorWidth2, conf.actorMargin);\n continue;\n }\n const messageWidth = actorToMessageWidth[actorKey];\n const actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;\n actor.margin = common.getMax(actorWidth, conf.actorMargin);\n }\n let maxBoxHeight = 0;\n boxes2.forEach((box) => {\n const textFont = messageFont(conf);\n let totalWidth = box.actorKeys.reduce((total, aKey) => {\n return total += actors2[aKey].width + (actors2[aKey].margin || 0);\n }, 0);\n totalWidth -= 2 * conf.boxTextMargin;\n if (box.wrap) {\n box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf.wrapPadding, textFont);\n }\n const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);\n maxBoxHeight = common.getMax(boxMsgDimensions.height, maxBoxHeight);\n const minWidth = common.getMax(totalWidth, boxMsgDimensions.width + 2 * conf.wrapPadding);\n box.margin = conf.boxTextMargin;\n if (totalWidth < minWidth) {\n const missing = (minWidth - totalWidth) / 2;\n box.margin += missing;\n }\n });\n boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight);\n return common.getMax(maxHeight, conf.height);\n}\nconst buildNoteModel = function(msg, actors2, diagObj) {\n const startx = actors2[msg.from].x;\n const stopx = actors2[msg.to].x;\n const shouldWrap = msg.wrap && msg.message;\n let textDimensions = utils.calculateTextDimensions(\n shouldWrap ? utils.wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message,\n noteFont(conf)\n );\n const noteModel = {\n width: shouldWrap ? conf.width : common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin),\n height: 0,\n startx: actors2[msg.from].x,\n stopx: 0,\n starty: 0,\n stopy: 0,\n message: msg.message\n };\n if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {\n noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width) : common.getMax(\n actors2[msg.from].width / 2 + actors2[msg.to].width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (actors2[msg.from].width + conf.actorMargin) / 2;\n } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {\n noteModel.width = shouldWrap ? common.getMax(conf.width, textDimensions.width + 2 * conf.noteMargin) : common.getMax(\n actors2[msg.from].width / 2 + actors2[msg.to].width / 2,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf.actorMargin) / 2;\n } else if (msg.to === msg.from) {\n textDimensions = utils.calculateTextDimensions(\n shouldWrap ? utils.wrapLabel(\n msg.message,\n common.getMax(conf.width, actors2[msg.from].width),\n noteFont(conf)\n ) : msg.message,\n noteFont(conf)\n );\n noteModel.width = shouldWrap ? common.getMax(conf.width, actors2[msg.from].width) : common.getMax(\n actors2[msg.from].width,\n conf.width,\n textDimensions.width + 2 * conf.noteMargin\n );\n noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2;\n } else {\n noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf.actorMargin;\n noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf.actorMargin / 2;\n }\n if (shouldWrap) {\n noteModel.message = utils.wrapLabel(\n msg.message,\n noteModel.width - 2 * conf.wrapPadding,\n noteFont(conf)\n );\n }\n log.debug(\n `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`\n );\n return noteModel;\n};\nconst buildMessageModel = function(msg, actors2, diagObj) {\n if (![\n diagObj.db.LINETYPE.SOLID_OPEN,\n diagObj.db.LINETYPE.DOTTED_OPEN,\n diagObj.db.LINETYPE.SOLID,\n diagObj.db.LINETYPE.DOTTED,\n diagObj.db.LINETYPE.SOLID_CROSS,\n diagObj.db.LINETYPE.DOTTED_CROSS,\n diagObj.db.LINETYPE.SOLID_POINT,\n diagObj.db.LINETYPE.DOTTED_POINT\n ].includes(msg.type)) {\n return {};\n }\n const [fromLeft, fromRight] = activationBounds(msg.from, actors2);\n const [toLeft, toRight] = activationBounds(msg.to, actors2);\n const isArrowToRight = fromLeft <= toLeft;\n const startx = isArrowToRight ? fromRight : fromLeft;\n let stopx = isArrowToRight ? toLeft : toRight;\n const isArrowToActivation = Math.abs(toLeft - toRight) > 2;\n const adjustValue = (value) => {\n return isArrowToRight ? -value : value;\n };\n if (msg.from === msg.to) {\n stopx = startx;\n } else {\n if (msg.activate && !isArrowToActivation) {\n stopx += adjustValue(conf.activationWidth / 2 - 1);\n }\n if (![diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN].includes(msg.type)) {\n stopx += adjustValue(3);\n }\n }\n const allBounds = [fromLeft, fromRight, toLeft, toRight];\n const boundedWidth = Math.abs(startx - stopx);\n if (msg.wrap && msg.message) {\n msg.message = utils.wrapLabel(\n msg.message,\n common.getMax(boundedWidth + 2 * conf.wrapPadding, conf.width),\n messageFont(conf)\n );\n }\n const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf));\n return {\n width: common.getMax(\n msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding,\n boundedWidth + 2 * conf.wrapPadding,\n conf.width\n ),\n height: 0,\n startx,\n stopx,\n starty: 0,\n stopy: 0,\n message: msg.message,\n type: msg.type,\n wrap: msg.wrap,\n fromBounds: Math.min.apply(null, allBounds),\n toBounds: Math.max.apply(null, allBounds)\n };\n};\nconst calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) {\n const loops = {};\n const stack = [];\n let current, noteModel, msgModel;\n messages2.forEach(function(msg) {\n msg.id = utils.random({ length: 10 });\n switch (msg.type) {\n case diagObj.db.LINETYPE.LOOP_START:\n case diagObj.db.LINETYPE.ALT_START:\n case diagObj.db.LINETYPE.OPT_START:\n case diagObj.db.LINETYPE.PAR_START:\n case diagObj.db.LINETYPE.PAR_OVER_START:\n case diagObj.db.LINETYPE.CRITICAL_START:\n case diagObj.db.LINETYPE.BREAK_START:\n stack.push({\n id: msg.id,\n msg: msg.message,\n from: Number.MAX_SAFE_INTEGER,\n to: Number.MIN_SAFE_INTEGER,\n width: 0\n });\n break;\n case diagObj.db.LINETYPE.ALT_ELSE:\n case diagObj.db.LINETYPE.PAR_AND:\n case diagObj.db.LINETYPE.CRITICAL_OPTION:\n if (msg.message) {\n current = stack.pop();\n loops[current.id] = current;\n loops[msg.id] = current;\n stack.push(current);\n }\n break;\n case diagObj.db.LINETYPE.LOOP_END:\n case diagObj.db.LINETYPE.ALT_END:\n case diagObj.db.LINETYPE.OPT_END:\n case diagObj.db.LINETYPE.PAR_END:\n case diagObj.db.LINETYPE.CRITICAL_END:\n case diagObj.db.LINETYPE.BREAK_END:\n current = stack.pop();\n loops[current.id] = current;\n break;\n case diagObj.db.LINETYPE.ACTIVE_START:\n {\n const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor];\n const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;\n const x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;\n const toAdd = {\n startx: x,\n stopx: x + conf.activationWidth,\n actor: msg.from.actor,\n enabled: true\n };\n bounds.activations.push(toAdd);\n }\n break;\n case diagObj.db.LINETYPE.ACTIVE_END:\n {\n const lastActorActivationIdx = bounds.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);\n delete bounds.activations.splice(lastActorActivationIdx, 1)[0];\n }\n break;\n }\n const isNote = msg.placement !== void 0;\n if (isNote) {\n noteModel = buildNoteModel(msg, actors2, diagObj);\n msg.noteModel = noteModel;\n stack.forEach((stk) => {\n current = stk;\n current.from = common.getMin(current.from, noteModel.startx);\n current.to = common.getMax(current.to, noteModel.startx + noteModel.width);\n current.width = common.getMax(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;\n });\n } else {\n msgModel = buildMessageModel(msg, actors2, diagObj);\n msg.msgModel = msgModel;\n if (msgModel.startx && msgModel.stopx && stack.length > 0) {\n stack.forEach((stk) => {\n current = stk;\n if (msgModel.startx === msgModel.stopx) {\n const from = actors2[msg.from];\n const to = actors2[msg.to];\n current.from = common.getMin(\n from.x - msgModel.width / 2,\n from.x - from.width / 2,\n current.from\n );\n current.to = common.getMax(\n to.x + msgModel.width / 2,\n to.x + from.width / 2,\n current.to\n );\n current.width = common.getMax(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;\n } else {\n current.from = common.getMin(msgModel.startx, current.from);\n current.to = common.getMax(msgModel.stopx, current.to);\n current.width = common.getMax(current.width, msgModel.width) - conf.labelBoxWidth;\n }\n });\n }\n }\n });\n bounds.activations = [];\n log.debug(\"Loop type widths:\", loops);\n return loops;\n};\nconst renderer = {\n bounds,\n drawActors,\n drawActorsPopup,\n setConf,\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer,\n styles,\n init: ({ wrap }) => {\n db.setWrap(wrap);\n }\n};\nexport {\n diagram\n};\n"], - "mappings": "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C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAA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EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,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", - "names": ["clear", "drawRect", "drawBackgroundRect", "getTextObj", "getNoteRect"] -} diff --git a/.vuepress/.cache/deps/stateDiagram-b620d43f-DF4HJI3T.js b/.vuepress/.cache/deps/stateDiagram-b620d43f-DF4HJI3T.js deleted file mode 100644 index 58315bd14..000000000 --- a/.vuepress/.cache/deps/stateDiagram-b620d43f-DF4HJI3T.js +++ /dev/null @@ -1,489 +0,0 @@ -import { - db, - parser$1, - styles -} from "./chunk-O6QBOGFL.js"; -import { - Graph, - layout -} from "./chunk-C55JCHDM.js"; -import { - basis_default, - common$1, - configureSvgSize, - getConfig, - line_default, - log$1, - require_dayjs_min, - require_dist, - select_default, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/stateDiagram-b620d43f.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var idCache = {}; -var set = (key, val) => { - idCache[key] = val; -}; -var get = (k) => idCache[k]; -var keys = () => Object.keys(idCache); -var size = () => keys().length; -var idCache$1 = { - get, - set, - keys, - size -}; -var drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit); -var drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig().state.textHeight).attr("class", "divider").attr("x2", getConfig().state.textHeight * 2).attr("y1", 0).attr("y2", 0); -var drawSimpleState = (g, stateDef) => { - const state = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 2 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id); - const classBox = state.node().getBBox(); - g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", classBox.width + 2 * getConfig().state.padding).attr("height", classBox.height + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius); - return state; -}; -var drawDescrState = (g, stateDef) => { - const addTspan = function(textEl, txt, isFirst2) { - const tSpan = textEl.append("tspan").attr("x", 2 * getConfig().state.padding).text(txt); - if (!isFirst2) { - tSpan.attr("dy", getConfig().state.textHeight); - } - }; - const title = g.append("text").attr("x", 2 * getConfig().state.padding).attr("y", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]); - const titleBox = title.node().getBBox(); - const titleHeight = titleBox.height; - const description = g.append("text").attr("x", getConfig().state.padding).attr( - "y", - titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight - ).attr("class", "state-description"); - let isFirst = true; - let isSecond = true; - stateDef.descriptions.forEach(function(descr) { - if (!isFirst) { - addTspan(description, descr, isSecond); - isSecond = false; - } - isFirst = false; - }); - const descrLine = g.append("line").attr("x1", getConfig().state.padding).attr("y1", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("y2", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr("class", "descr-divider"); - const descrBox = description.node().getBBox(); - const width = Math.max(descrBox.width, titleBox.width); - descrLine.attr("x2", width + 3 * getConfig().state.padding); - g.insert("rect", ":first-child").attr("x", getConfig().state.padding).attr("y", getConfig().state.padding).attr("width", width + 2 * getConfig().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr("rx", getConfig().state.radius); - return g; -}; -var addTitleAndBox = (g, stateDef, altBkg) => { - const pad = getConfig().state.padding; - const dblPad = 2 * getConfig().state.padding; - const orgBox = g.node().getBBox(); - const orgWidth = orgBox.width; - const orgX = orgBox.x; - const title = g.append("text").attr("x", 0).attr("y", getConfig().state.titleShift).attr("font-size", getConfig().state.fontSize).attr("class", "state-title").text(stateDef.id); - const titleBox = title.node().getBBox(); - const titleWidth = titleBox.width + dblPad; - let width = Math.max(titleWidth, orgWidth); - if (width === orgWidth) { - width = width + dblPad; - } - let startX; - const graphBox = g.node().getBBox(); - if (stateDef.doc) - ; - startX = orgX - pad; - if (titleWidth > orgWidth) { - startX = (orgWidth - width) / 2 + pad; - } - if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) { - startX = orgX - (titleWidth - orgWidth) / 2; - } - const lineY = 1 - getConfig().state.textHeight; - g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width).attr( - "height", - graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1 - ).attr("rx", "0"); - title.attr("x", startX + pad); - if (titleWidth <= orgWidth) { - title.attr("x", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); - } - g.insert("rect", ":first-child").attr("x", startX).attr( - "y", - getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding - ).attr("width", width).attr("height", getConfig().state.textHeight * 3).attr("rx", getConfig().state.radius); - g.insert("rect", ":first-child").attr("x", startX).attr( - "y", - getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding - ).attr("width", width).attr("height", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr("rx", getConfig().state.radius); - return g; -}; -var drawEndState = (g) => { - g.append("circle").attr("class", "end-state-outer").attr("r", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr( - "cx", - getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding - ).attr( - "cy", - getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding - ); - return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig().state.sizeUnit).attr("cx", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr("cy", getConfig().state.padding + getConfig().state.sizeUnit + 2); -}; -var drawForkJoinState = (g, stateDef) => { - let width = getConfig().state.forkWidth; - let height = getConfig().state.forkHeight; - if (stateDef.parentId) { - let tmp = width; - width = height; - height = tmp; - } - return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width).attr("height", height).attr("x", getConfig().state.padding).attr("y", getConfig().state.padding); -}; -var _drawLongText = (_text, x, y, g) => { - let textHeight = 0; - const textElem = g.append("text"); - textElem.style("text-anchor", "start"); - textElem.attr("class", "noteText"); - let text = _text.replace(/\r\n/g, "
"); - text = text.replace(/\n/g, "
"); - const lines = text.split(common$1.lineBreakRegex); - let tHeight = 1.25 * getConfig().state.noteMargin; - for (const line2 of lines) { - const txt = line2.trim(); - if (txt.length > 0) { - const span = textElem.append("tspan"); - span.text(txt); - if (tHeight === 0) { - const textBounds = span.node().getBBox(); - tHeight += textBounds.height; - } - textHeight += tHeight; - span.attr("x", x + getConfig().state.noteMargin); - span.attr("y", y + textHeight + 1.25 * getConfig().state.noteMargin); - } - } - return { textWidth: textElem.node().getBBox().width, textHeight }; -}; -var drawNote = (text, g) => { - g.attr("class", "state-note"); - const note = g.append("rect").attr("x", 0).attr("y", getConfig().state.padding); - const rectElem = g.append("g"); - const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem); - note.attr("height", textHeight + 2 * getConfig().state.noteMargin); - note.attr("width", textWidth + getConfig().state.noteMargin * 2); - return note; -}; -var drawState = function(elem, stateDef) { - const id = stateDef.id; - const stateInfo = { - id, - label: stateDef.id, - width: 0, - height: 0 - }; - const g = elem.append("g").attr("id", id).attr("class", "stateGroup"); - if (stateDef.type === "start") { - drawStartState(g); - } - if (stateDef.type === "end") { - drawEndState(g); - } - if (stateDef.type === "fork" || stateDef.type === "join") { - drawForkJoinState(g, stateDef); - } - if (stateDef.type === "note") { - drawNote(stateDef.note.text, g); - } - if (stateDef.type === "divider") { - drawDivider(g); - } - if (stateDef.type === "default" && stateDef.descriptions.length === 0) { - drawSimpleState(g, stateDef); - } - if (stateDef.type === "default" && stateDef.descriptions.length > 0) { - drawDescrState(g, stateDef); - } - const stateBox = g.node().getBBox(); - stateInfo.width = stateBox.width + 2 * getConfig().state.padding; - stateInfo.height = stateBox.height + 2 * getConfig().state.padding; - idCache$1.set(id, stateInfo); - return stateInfo; -}; -var edgeCount = 0; -var drawEdge = function(elem, path, relation) { - const getRelationType = function(type) { - switch (type) { - case db.relationType.AGGREGATION: - return "aggregation"; - case db.relationType.EXTENSION: - return "extension"; - case db.relationType.COMPOSITION: - return "composition"; - case db.relationType.DEPENDENCY: - return "dependency"; - } - }; - path.points = path.points.filter((p) => !Number.isNaN(p.y)); - const lineData = path.points; - const lineFunction = line_default().x(function(d) { - return d.x; - }).y(function(d) { - return d.y; - }).curve(basis_default); - const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition"); - let url = ""; - if (getConfig().state.arrowMarkerAbsolute) { - url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); - } - svgPath.attr( - "marker-end", - "url(" + url + "#" + getRelationType(db.relationType.DEPENDENCY) + "End)" - ); - if (relation.title !== void 0) { - const label = elem.append("g").attr("class", "stateLabel"); - const { x, y } = utils.calcLabelPosition(path.points); - const rows = common$1.getRows(relation.title); - let titleHeight = 0; - const titleRows = []; - let maxWidth = 0; - let minX = 0; - for (let i = 0; i <= rows.length; i++) { - const title = label.append("text").attr("text-anchor", "middle").text(rows[i]).attr("x", x).attr("y", y + titleHeight); - const boundstmp = title.node().getBBox(); - maxWidth = Math.max(maxWidth, boundstmp.width); - minX = Math.min(minX, boundstmp.x); - log$1.info(boundstmp.x, x, y + titleHeight); - if (titleHeight === 0) { - const titleBox = title.node().getBBox(); - titleHeight = titleBox.height; - log$1.info("Title height", titleHeight, y); - } - titleRows.push(title); - } - let boxHeight = titleHeight * rows.length; - if (rows.length > 1) { - const heightAdj = (rows.length - 1) * titleHeight * 0.5; - titleRows.forEach((title, i) => title.attr("y", y + i * titleHeight - heightAdj)); - boxHeight = titleHeight * rows.length; - } - const bounds = label.node().getBBox(); - label.insert("rect", ":first-child").attr("class", "box").attr("x", x - maxWidth / 2 - getConfig().state.padding / 2).attr("y", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig().state.padding).attr("height", boxHeight + getConfig().state.padding); - log$1.info(bounds); - } - edgeCount++; -}; -var conf; -var transformationLog = {}; -var setConf = function() { -}; -var insertMarkers = function(elem) { - elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z"); -}; -var draw = function(text, id, _version, diagObj) { - conf = getConfig().state; - const securityLevel = getConfig().securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; - log$1.debug("Rendering diagram " + text); - const diagram2 = root.select(`[id='${id}']`); - insertMarkers(diagram2); - const rootDoc = diagObj.db.getRootDoc(); - renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj); - const padding = conf.padding; - const bounds = diagram2.node().getBBox(); - const width = bounds.width + padding * 2; - const height = bounds.height + padding * 2; - const svgWidth = width * 1.75; - configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth); - diagram2.attr( - "viewBox", - `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + " " + height - ); -}; -var getLabelWidth = (text) => { - return text ? text.length * conf.fontSizeFactor : 1; -}; -var renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => { - const graph = new Graph({ - compound: true, - multigraph: true - }); - let i; - let edgeFreeDoc = true; - for (i = 0; i < doc.length; i++) { - if (doc[i].stmt === "relation") { - edgeFreeDoc = false; - break; - } - } - if (parentId) { - graph.setGraph({ - rankdir: "LR", - multigraph: true, - compound: true, - // acyclicer: 'greedy', - ranker: "tight-tree", - ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor, - nodeSep: edgeFreeDoc ? 1 : 50, - isMultiGraph: true - // ranksep: 5, - // nodesep: 1 - }); - } else { - graph.setGraph({ - rankdir: "TB", - multigraph: true, - compound: true, - // isCompound: true, - // acyclicer: 'greedy', - // ranker: 'longest-path' - ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor, - nodeSep: edgeFreeDoc ? 1 : 50, - ranker: "tight-tree", - // ranker: 'network-simplex' - isMultiGraph: true - }); - } - graph.setDefaultEdgeLabel(function() { - return {}; - }); - diagObj.db.extract(doc); - const states = diagObj.db.getStates(); - const relations = diagObj.db.getRelations(); - const keys2 = Object.keys(states); - for (const key of keys2) { - const stateDef = states[key]; - if (parentId) { - stateDef.parentId = parentId; - } - let node; - if (stateDef.doc) { - let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup"); - node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj); - { - sub = addTitleAndBox(sub, stateDef, altBkg); - let boxBounds = sub.node().getBBox(); - node.width = boxBounds.width; - node.height = boxBounds.height + conf.padding / 2; - transformationLog[stateDef.id] = { y: conf.compositTitleSize }; - } - } else { - node = drawState(diagram2, stateDef); - } - if (stateDef.note) { - const noteDef = { - descriptions: [], - id: stateDef.id + "-note", - note: stateDef.note, - type: "note" - }; - const note = drawState(diagram2, noteDef); - if (stateDef.note.position === "left of") { - graph.setNode(node.id + "-note", note); - graph.setNode(node.id, node); - } else { - graph.setNode(node.id, node); - graph.setNode(node.id + "-note", note); - } - graph.setParent(node.id, node.id + "-group"); - graph.setParent(node.id + "-note", node.id + "-group"); - } else { - graph.setNode(node.id, node); - } - } - log$1.debug("Count=", graph.nodeCount(), graph); - let cnt = 0; - relations.forEach(function(relation) { - cnt++; - log$1.debug("Setting edge", relation); - graph.setEdge( - relation.id1, - relation.id2, - { - relation, - width: getLabelWidth(relation.title), - height: conf.labelHeight * common$1.getRows(relation.title).length, - labelpos: "c" - }, - "id" + cnt - ); - }); - layout(graph); - log$1.debug("Graph after layout", graph.nodes()); - const svgElem = diagram2.node(); - graph.nodes().forEach(function(v) { - if (v !== void 0 && graph.node(v) !== void 0) { - log$1.warn("Node " + v + ": " + JSON.stringify(graph.node(v))); - root.select("#" + svgElem.id + " #" + v).attr( - "transform", - "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )" - ); - root.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2); - const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider"); - dividers.forEach((divider) => { - const parent = divider.parentElement; - let pWidth = 0; - let pShift = 0; - if (parent) { - if (parent.parentElement) { - pWidth = parent.parentElement.getBBox().width; - } - pShift = parseInt(parent.getAttribute("data-x-shift"), 10); - if (Number.isNaN(pShift)) { - pShift = 0; - } - } - divider.setAttribute("x1", 0 - pShift + 8); - divider.setAttribute("x2", pWidth - pShift - 8); - }); - } else { - log$1.debug("No Node " + v + ": " + JSON.stringify(graph.node(v))); - } - }); - let stateBox = svgElem.getBBox(); - graph.edges().forEach(function(e) { - if (e !== void 0 && graph.edge(e) !== void 0) { - log$1.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e))); - drawEdge(diagram2, graph.edge(e), graph.edge(e).relation); - } - }); - stateBox = svgElem.getBBox(); - const stateInfo = { - id: parentId ? parentId : "root", - label: parentId ? parentId : "root", - width: 0, - height: 0 - }; - stateInfo.width = stateBox.width + 2 * conf.padding; - stateInfo.height = stateBox.height + 2 * conf.padding; - log$1.debug("Doc rendered", stateInfo, graph); - return stateInfo; -}; -var renderer = { - setConf, - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: (cnf) => { - if (!cnf.state) { - cnf.state = {}; - } - cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - db.clear(); - } -}; -export { - diagram -}; -//# sourceMappingURL=stateDiagram-b620d43f-DF4HJI3T.js.map diff --git a/.vuepress/.cache/deps/stateDiagram-b620d43f-DF4HJI3T.js.map b/.vuepress/.cache/deps/stateDiagram-b620d43f-DF4HJI3T.js.map deleted file mode 100644 index 8e9362f92..000000000 --- a/.vuepress/.cache/deps/stateDiagram-b620d43f-DF4HJI3T.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/stateDiagram-b620d43f.js"], - "sourcesContent": ["import { d as db, p as parser, s as styles } from \"./styles-bbc3fe3b.js\";\nimport { line, curveBasis, select } from \"d3\";\nimport { layout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { c as getConfig, u as utils, e as common, l as log, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nconst idCache = {};\nconst set = (key, val) => {\n idCache[key] = val;\n};\nconst get = (k) => idCache[k];\nconst keys = () => Object.keys(idCache);\nconst size = () => keys().length;\nconst idCache$1 = {\n get,\n set,\n keys,\n size\n};\nconst drawStartState = (g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit);\nconst drawDivider = (g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0);\nconst drawSimpleState = (g, stateDef) => {\n const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const classBox = state.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return state;\n};\nconst drawDescrState = (g, stateDef) => {\n const addTspan = function(textEl, txt, isFirst2) {\n const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n if (!isFirst2) {\n tSpan.attr(\"dy\", getConfig().state.textHeight);\n }\n };\n const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n const titleBox = title.node().getBBox();\n const titleHeight = titleBox.height;\n const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n \"y\",\n titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n ).attr(\"class\", \"state-description\");\n let isFirst = true;\n let isSecond = true;\n stateDef.descriptions.forEach(function(descr) {\n if (!isFirst) {\n addTspan(description, descr, isSecond);\n isSecond = false;\n }\n isFirst = false;\n });\n const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n const descrBox = description.node().getBBox();\n const width = Math.max(descrBox.width, titleBox.width);\n descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return g;\n};\nconst addTitleAndBox = (g, stateDef, altBkg) => {\n const pad = getConfig().state.padding;\n const dblPad = 2 * getConfig().state.padding;\n const orgBox = g.node().getBBox();\n const orgWidth = orgBox.width;\n const orgX = orgBox.x;\n const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const titleBox = title.node().getBBox();\n const titleWidth = titleBox.width + dblPad;\n let width = Math.max(titleWidth, orgWidth);\n if (width === orgWidth) {\n width = width + dblPad;\n }\n let startX;\n const graphBox = g.node().getBBox();\n if (stateDef.doc)\n ;\n startX = orgX - pad;\n if (titleWidth > orgWidth) {\n startX = (orgWidth - width) / 2 + pad;\n }\n if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n startX = orgX - (titleWidth - orgWidth) / 2;\n }\n const lineY = 1 - getConfig().state.textHeight;\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n \"height\",\n graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n ).attr(\"rx\", \"0\");\n title.attr(\"x\", startX + pad);\n if (titleWidth <= orgWidth) {\n title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n }\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n return g;\n};\nconst drawEndState = (g) => {\n g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n \"cx\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n ).attr(\n \"cy\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n );\n return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n};\nconst drawForkJoinState = (g, stateDef) => {\n let width = getConfig().state.forkWidth;\n let height = getConfig().state.forkHeight;\n if (stateDef.parentId) {\n let tmp = width;\n width = height;\n height = tmp;\n }\n return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n};\nconst _drawLongText = (_text, x, y, g) => {\n let textHeight = 0;\n const textElem = g.append(\"text\");\n textElem.style(\"text-anchor\", \"start\");\n textElem.attr(\"class\", \"noteText\");\n let text = _text.replace(/\\r\\n/g, \"
\");\n text = text.replace(/\\n/g, \"
\");\n const lines = text.split(common.lineBreakRegex);\n let tHeight = 1.25 * getConfig().state.noteMargin;\n for (const line2 of lines) {\n const txt = line2.trim();\n if (txt.length > 0) {\n const span = textElem.append(\"tspan\");\n span.text(txt);\n if (tHeight === 0) {\n const textBounds = span.node().getBBox();\n tHeight += textBounds.height;\n }\n textHeight += tHeight;\n span.attr(\"x\", x + getConfig().state.noteMargin);\n span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n }\n }\n return { textWidth: textElem.node().getBBox().width, textHeight };\n};\nconst drawNote = (text, g) => {\n g.attr(\"class\", \"state-note\");\n const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n const rectElem = g.append(\"g\");\n const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n return note;\n};\nconst drawState = function(elem, stateDef) {\n const id = stateDef.id;\n const stateInfo = {\n id,\n label: stateDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n if (stateDef.type === \"start\") {\n drawStartState(g);\n }\n if (stateDef.type === \"end\") {\n drawEndState(g);\n }\n if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n drawForkJoinState(g, stateDef);\n }\n if (stateDef.type === \"note\") {\n drawNote(stateDef.note.text, g);\n }\n if (stateDef.type === \"divider\") {\n drawDivider(g);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n drawSimpleState(g, stateDef);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n drawDescrState(g, stateDef);\n }\n const stateBox = g.node().getBBox();\n stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n idCache$1.set(id, stateInfo);\n return stateInfo;\n};\nlet edgeCount = 0;\nconst drawEdge = function(elem, path, relation) {\n const getRelationType = function(type) {\n switch (type) {\n case db.relationType.AGGREGATION:\n return \"aggregation\";\n case db.relationType.EXTENSION:\n return \"extension\";\n case db.relationType.COMPOSITION:\n return \"composition\";\n case db.relationType.DEPENDENCY:\n return \"dependency\";\n }\n };\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n let url = \"\";\n if (getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\");\n url = url.replace(/\\)/g, \"\\\\)\");\n }\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(db.relationType.DEPENDENCY) + \"End)\"\n );\n if (relation.title !== void 0) {\n const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n const { x, y } = utils.calcLabelPosition(path.points);\n const rows = common.getRows(relation.title);\n let titleHeight = 0;\n const titleRows = [];\n let maxWidth = 0;\n let minX = 0;\n for (let i = 0; i <= rows.length; i++) {\n const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n const boundstmp = title.node().getBBox();\n maxWidth = Math.max(maxWidth, boundstmp.width);\n minX = Math.min(minX, boundstmp.x);\n log.info(boundstmp.x, x, y + titleHeight);\n if (titleHeight === 0) {\n const titleBox = title.node().getBBox();\n titleHeight = titleBox.height;\n log.info(\"Title height\", titleHeight, y);\n }\n titleRows.push(title);\n }\n let boxHeight = titleHeight * rows.length;\n if (rows.length > 1) {\n const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n boxHeight = titleHeight * rows.length;\n }\n const bounds = label.node().getBBox();\n label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n log.info(bounds);\n }\n edgeCount++;\n};\nlet conf;\nconst transformationLog = {};\nconst setConf = function() {\n};\nconst insertMarkers = function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n};\nconst draw = function(text, id, _version, diagObj) {\n conf = getConfig().state;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n log.debug(\"Rendering diagram \" + text);\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const rootDoc = diagObj.db.getRootDoc();\n renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n const padding = conf.padding;\n const bounds = diagram2.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n const svgWidth = width * 1.75;\n configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n diagram2.attr(\n \"viewBox\",\n `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + \" \" + height\n );\n};\nconst getLabelWidth = (text) => {\n return text ? text.length * conf.fontSizeFactor : 1;\n};\nconst renderDoc = (doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n const graph = new graphlib.Graph({\n compound: true,\n multigraph: true\n });\n let i;\n let edgeFreeDoc = true;\n for (i = 0; i < doc.length; i++) {\n if (doc[i].stmt === \"relation\") {\n edgeFreeDoc = false;\n break;\n }\n }\n if (parentId) {\n graph.setGraph({\n rankdir: \"LR\",\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n ranker: \"tight-tree\",\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n isMultiGraph: true\n // ranksep: 5,\n // nodesep: 1\n });\n } else {\n graph.setGraph({\n rankdir: \"TB\",\n multigraph: true,\n compound: true,\n // isCompound: true,\n // acyclicer: 'greedy',\n // ranker: 'longest-path'\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n ranker: \"tight-tree\",\n // ranker: 'network-simplex'\n isMultiGraph: true\n });\n }\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n diagObj.db.extract(doc);\n const states = diagObj.db.getStates();\n const relations = diagObj.db.getRelations();\n const keys2 = Object.keys(states);\n for (const key of keys2) {\n const stateDef = states[key];\n if (parentId) {\n stateDef.parentId = parentId;\n }\n let node;\n if (stateDef.doc) {\n let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n {\n sub = addTitleAndBox(sub, stateDef, altBkg);\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height + conf.padding / 2;\n transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n }\n } else {\n node = drawState(diagram2, stateDef);\n }\n if (stateDef.note) {\n const noteDef = {\n descriptions: [],\n id: stateDef.id + \"-note\",\n note: stateDef.note,\n type: \"note\"\n };\n const note = drawState(diagram2, noteDef);\n if (stateDef.note.position === \"left of\") {\n graph.setNode(node.id + \"-note\", note);\n graph.setNode(node.id, node);\n } else {\n graph.setNode(node.id, node);\n graph.setNode(node.id + \"-note\", note);\n }\n graph.setParent(node.id, node.id + \"-group\");\n graph.setParent(node.id + \"-note\", node.id + \"-group\");\n } else {\n graph.setNode(node.id, node);\n }\n }\n log.debug(\"Count=\", graph.nodeCount(), graph);\n let cnt = 0;\n relations.forEach(function(relation) {\n cnt++;\n log.debug(\"Setting edge\", relation);\n graph.setEdge(\n relation.id1,\n relation.id2,\n {\n relation,\n width: getLabelWidth(relation.title),\n height: conf.labelHeight * common.getRows(relation.title).length,\n labelpos: \"c\"\n },\n \"id\" + cnt\n );\n });\n layout(graph);\n log.debug(\"Graph after layout\", graph.nodes());\n const svgElem = diagram2.node();\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n );\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n dividers.forEach((divider) => {\n const parent = divider.parentElement;\n let pWidth = 0;\n let pShift = 0;\n if (parent) {\n if (parent.parentElement) {\n pWidth = parent.parentElement.getBBox().width;\n }\n pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n if (Number.isNaN(pShift)) {\n pShift = 0;\n }\n }\n divider.setAttribute(\"x1\", 0 - pShift + 8);\n divider.setAttribute(\"x2\", pWidth - pShift - 8);\n });\n } else {\n log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n }\n });\n let stateBox = svgElem.getBBox();\n graph.edges().forEach(function(e) {\n if (e !== void 0 && graph.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n }\n });\n stateBox = svgElem.getBBox();\n const stateInfo = {\n id: parentId ? parentId : \"root\",\n label: parentId ? parentId : \"root\",\n width: 0,\n height: 0\n };\n stateInfo.width = stateBox.width + 2 * conf.padding;\n stateInfo.height = stateBox.height + 2 * conf.padding;\n log.debug(\"Doc rendered\", stateInfo, graph);\n return stateInfo;\n};\nconst renderer = {\n setConf,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": [] -} diff --git a/.vuepress/.cache/deps/stateDiagram-v2-2671c3d1-7DKG2X5N.js b/.vuepress/.cache/deps/stateDiagram-v2-2671c3d1-7DKG2X5N.js deleted file mode 100644 index 546cc9ffc..000000000 --- a/.vuepress/.cache/deps/stateDiagram-v2-2671c3d1-7DKG2X5N.js +++ /dev/null @@ -1,350 +0,0 @@ -import { - DEFAULT_NESTED_DOC_DIR, - DEFAULT_STATE_TYPE, - DIVIDER_TYPE, - STMT_RELATION, - STMT_STATE, - db, - parser$1, - styles -} from "./chunk-O6QBOGFL.js"; -import { - render -} from "./chunk-6ESK7MQZ.js"; -import "./chunk-ULQHWUKP.js"; -import { - Graph -} from "./chunk-C55JCHDM.js"; -import "./chunk-TQDBUXIK.js"; -import { - common$1, - configureSvgSize, - getConfig, - log$1, - require_dayjs_min, - require_dist, - select_default, - utils -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/stateDiagram-v2-2671c3d1.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var SHAPE_STATE = "rect"; -var SHAPE_STATE_WITH_DESC = "rectWithTitle"; -var SHAPE_START = "start"; -var SHAPE_END = "end"; -var SHAPE_DIVIDER = "divider"; -var SHAPE_GROUP = "roundedWithTitle"; -var SHAPE_NOTE = "note"; -var SHAPE_NOTEGROUP = "noteGroup"; -var CSS_DIAGRAM = "statediagram"; -var CSS_STATE = "state"; -var CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`; -var CSS_EDGE = "transition"; -var CSS_NOTE = "note"; -var CSS_NOTE_EDGE = "note-edge"; -var CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`; -var CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`; -var CSS_CLUSTER = "cluster"; -var CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`; -var CSS_CLUSTER_ALT = "cluster-alt"; -var CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`; -var PARENT = "parent"; -var NOTE = "note"; -var DOMID_STATE = "state"; -var DOMID_TYPE_SPACER = "----"; -var NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`; -var PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`; -var G_EDGE_STYLE = "fill:none"; -var G_EDGE_ARROWHEADSTYLE = "fill: #333"; -var G_EDGE_LABELPOS = "c"; -var G_EDGE_LABELTYPE = "text"; -var G_EDGE_THICKNESS = "normal"; -var nodeDb = {}; -var graphItemCount = 0; -var setConf = function(cnf) { - const keys = Object.keys(cnf); - for (const key of keys) { - cnf[key]; - } -}; -var getClasses = function(text, diagramObj) { - diagramObj.db.extract(diagramObj.db.getRootDocV2()); - return diagramObj.db.getClasses(); -}; -function getClassesFromDbInfo(dbInfoItem) { - if (dbInfoItem === void 0 || dbInfoItem === null) { - return ""; - } else { - if (dbInfoItem.classes) { - return dbInfoItem.classes.join(" "); - } else { - return ""; - } - } -} -function stateDomId(itemId = "", counter = 0, type = "", typeSpacer = DOMID_TYPE_SPACER) { - const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : ""; - return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`; -} -var setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => { - const itemId = parsedItem.id; - const classStr = getClassesFromDbInfo(diagramStates[itemId]); - if (itemId !== "root") { - let shape = SHAPE_STATE; - if (parsedItem.start === true) { - shape = SHAPE_START; - } - if (parsedItem.start === false) { - shape = SHAPE_END; - } - if (parsedItem.type !== DEFAULT_STATE_TYPE) { - shape = parsedItem.type; - } - if (!nodeDb[itemId]) { - nodeDb[itemId] = { - id: itemId, - shape, - description: common$1.sanitizeText(itemId, getConfig()), - classes: `${classStr} ${CSS_DIAGRAM_STATE}` - }; - } - const newNode = nodeDb[itemId]; - if (parsedItem.description) { - if (Array.isArray(newNode.description)) { - newNode.shape = SHAPE_STATE_WITH_DESC; - newNode.description.push(parsedItem.description); - } else { - if (newNode.description.length > 0) { - newNode.shape = SHAPE_STATE_WITH_DESC; - if (newNode.description === itemId) { - newNode.description = [parsedItem.description]; - } else { - newNode.description = [newNode.description, parsedItem.description]; - } - } else { - newNode.shape = SHAPE_STATE; - newNode.description = parsedItem.description; - } - } - newNode.description = common$1.sanitizeTextOrArray(newNode.description, getConfig()); - } - if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) { - newNode.shape = SHAPE_STATE; - } - if (!newNode.type && parsedItem.doc) { - log$1.info("Setting cluster for ", itemId, getDir(parsedItem)); - newNode.type = "group"; - newNode.dir = getDir(parsedItem); - newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP; - newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : ""); - } - const nodeData = { - labelStyle: "", - shape: newNode.shape, - labelText: newNode.description, - // typeof newNode.description === 'object' - // ? newNode.description[0] - // : newNode.description, - classes: newNode.classes, - style: "", - //styles.style, - id: itemId, - dir: newNode.dir, - domId: stateDomId(itemId, graphItemCount), - type: newNode.type, - padding: 15 - //getConfig().flowchart.padding - }; - nodeData.centerLabel = true; - if (parsedItem.note) { - const noteData = { - labelStyle: "", - shape: SHAPE_NOTE, - labelText: parsedItem.note.text, - classes: CSS_DIAGRAM_NOTE, - // useHtmlLabels: false, - style: "", - // styles.style, - id: itemId + NOTE_ID + "-" + graphItemCount, - domId: stateDomId(itemId, graphItemCount, NOTE), - type: newNode.type, - padding: 15 - //getConfig().flowchart.padding - }; - const groupData = { - labelStyle: "", - shape: SHAPE_NOTEGROUP, - labelText: parsedItem.note.text, - classes: newNode.classes, - style: "", - // styles.style, - id: itemId + PARENT_ID, - domId: stateDomId(itemId, graphItemCount, PARENT), - type: "group", - padding: 0 - //getConfig().flowchart.padding - }; - graphItemCount++; - const parentNodeId = itemId + PARENT_ID; - g.setNode(parentNodeId, groupData); - g.setNode(noteData.id, noteData); - g.setNode(itemId, nodeData); - g.setParent(itemId, parentNodeId); - g.setParent(noteData.id, parentNodeId); - let from = itemId; - let to = noteData.id; - if (parsedItem.note.position === "left of") { - from = noteData.id; - to = itemId; - } - g.setEdge(from, to, { - arrowhead: "none", - arrowType: "", - style: G_EDGE_STYLE, - labelStyle: "", - classes: CSS_EDGE_NOTE_EDGE, - arrowheadStyle: G_EDGE_ARROWHEADSTYLE, - labelpos: G_EDGE_LABELPOS, - labelType: G_EDGE_LABELTYPE, - thickness: G_EDGE_THICKNESS - }); - } else { - g.setNode(itemId, nodeData); - } - } - if (parent && parent.id !== "root") { - log$1.trace("Setting node ", itemId, " to be child of its parent ", parent.id); - g.setParent(itemId, parent.id); - } - if (parsedItem.doc) { - log$1.trace("Adding nodes children "); - setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag); - } -}; -var setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => { - log$1.trace("items", doc); - doc.forEach((item) => { - switch (item.stmt) { - case STMT_STATE: - setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); - break; - case DEFAULT_STATE_TYPE: - setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag); - break; - case STMT_RELATION: - { - setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag); - setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag); - const edgeData = { - id: "edge" + graphItemCount, - arrowhead: "normal", - arrowTypeEnd: "arrow_barb", - style: G_EDGE_STYLE, - labelStyle: "", - label: common$1.sanitizeText(item.description, getConfig()), - arrowheadStyle: G_EDGE_ARROWHEADSTYLE, - labelpos: G_EDGE_LABELPOS, - labelType: G_EDGE_LABELTYPE, - thickness: G_EDGE_THICKNESS, - classes: CSS_EDGE - }; - g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount); - graphItemCount++; - } - break; - } - }); -}; -var getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => { - let dir = defaultDir; - if (parsedItem.doc) { - for (let i = 0; i < parsedItem.doc.length; i++) { - const parsedItemDoc = parsedItem.doc[i]; - if (parsedItemDoc.stmt === "dir") { - dir = parsedItemDoc.value; - } - } - } - return dir; -}; -var draw = async function(text, id, _version, diag) { - log$1.info("Drawing state diagram (v2)", id); - nodeDb = {}; - diag.db.getDirection(); - const { securityLevel, state: conf } = getConfig(); - const nodeSpacing = conf.nodeSpacing || 50; - const rankSpacing = conf.rankSpacing || 50; - log$1.info(diag.db.getRootDocV2()); - diag.db.extract(diag.db.getRootDocV2()); - log$1.info(diag.db.getRootDocV2()); - const diagramStates = diag.db.getStates(); - const g = new Graph({ - multigraph: true, - compound: true - }).setGraph({ - rankdir: getDir(diag.db.getRootDocV2()), - nodesep: nodeSpacing, - ranksep: rankSpacing, - marginx: 8, - marginy: 8 - }).setDefaultEdgeLabel(function() { - return {}; - }); - setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true); - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select(`[id="${id}"]`); - const element = root.select("#" + id + " g"); - await render(element, g, ["barb"], CSS_DIAGRAM, id); - const padding = 8; - utils.insertTitle(svg, "statediagramTitleText", conf.titleTopMargin, diag.db.getDiagramTitle()); - const bounds = svg.node().getBBox(); - const width = bounds.width + padding * 2; - const height = bounds.height + padding * 2; - svg.attr("class", CSS_DIAGRAM); - const svgBounds = svg.node().getBBox(); - configureSvgSize(svg, height, width, conf.useMaxWidth); - const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`; - log$1.debug(`viewBox ${vBox}`); - svg.attr("viewBox", vBox); - const labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label'); - for (const label of labels) { - const dim = label.getBBox(); - const rect = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE); - rect.setAttribute("rx", 0); - rect.setAttribute("ry", 0); - rect.setAttribute("width", dim.width); - rect.setAttribute("height", dim.height); - label.insertBefore(rect, label.firstChild); - } -}; -var renderer = { - setConf, - getClasses, - draw -}; -var diagram = { - parser: parser$1, - db, - renderer, - styles, - init: (cnf) => { - if (!cnf.state) { - cnf.state = {}; - } - cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute; - db.clear(); - } -}; -export { - diagram -}; -//# sourceMappingURL=stateDiagram-v2-2671c3d1-7DKG2X5N.js.map diff --git a/.vuepress/.cache/deps/stateDiagram-v2-2671c3d1-7DKG2X5N.js.map b/.vuepress/.cache/deps/stateDiagram-v2-2671c3d1-7DKG2X5N.js.map deleted file mode 100644 index 32fbe9895..000000000 --- a/.vuepress/.cache/deps/stateDiagram-v2-2671c3d1-7DKG2X5N.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/stateDiagram-v2-2671c3d1.js"], - "sourcesContent": ["import { D as DEFAULT_STATE_TYPE, a as DIVIDER_TYPE, S as STMT_RELATION, b as STMT_STATE, c as DEFAULT_NESTED_DOC_DIR, p as parser, d as db, s as styles } from \"./styles-bbc3fe3b.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport { select } from \"d3\";\nimport { l as log, c as getConfig, u as utils, i as configureSvgSize, e as common } from \"./mermaid-934d9bea.js\";\nimport { r as render } from \"./index-67a42d7d.js\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"dagre-d3-es/src/dagre/index.js\";\nimport \"dagre-d3-es/src/graphlib/json.js\";\nimport \"./edges-80f1ebb6.js\";\nimport \"./createText-aebacdfe.js\";\nimport \"mdast-util-from-markdown\";\nconst SHAPE_STATE = \"rect\";\nconst SHAPE_STATE_WITH_DESC = \"rectWithTitle\";\nconst SHAPE_START = \"start\";\nconst SHAPE_END = \"end\";\nconst SHAPE_DIVIDER = \"divider\";\nconst SHAPE_GROUP = \"roundedWithTitle\";\nconst SHAPE_NOTE = \"note\";\nconst SHAPE_NOTEGROUP = \"noteGroup\";\nconst CSS_DIAGRAM = \"statediagram\";\nconst CSS_STATE = \"state\";\nconst CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;\nconst CSS_EDGE = \"transition\";\nconst CSS_NOTE = \"note\";\nconst CSS_NOTE_EDGE = \"note-edge\";\nconst CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;\nconst CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;\nconst CSS_CLUSTER = \"cluster\";\nconst CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;\nconst CSS_CLUSTER_ALT = \"cluster-alt\";\nconst CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;\nconst PARENT = \"parent\";\nconst NOTE = \"note\";\nconst DOMID_STATE = \"state\";\nconst DOMID_TYPE_SPACER = \"----\";\nconst NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;\nconst PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;\nconst G_EDGE_STYLE = \"fill:none\";\nconst G_EDGE_ARROWHEADSTYLE = \"fill: #333\";\nconst G_EDGE_LABELPOS = \"c\";\nconst G_EDGE_LABELTYPE = \"text\";\nconst G_EDGE_THICKNESS = \"normal\";\nlet nodeDb = {};\nlet graphItemCount = 0;\nconst setConf = function(cnf) {\n const keys = Object.keys(cnf);\n for (const key of keys) {\n cnf[key];\n }\n};\nconst getClasses = function(text, diagramObj) {\n diagramObj.db.extract(diagramObj.db.getRootDocV2());\n return diagramObj.db.getClasses();\n};\nfunction getClassesFromDbInfo(dbInfoItem) {\n if (dbInfoItem === void 0 || dbInfoItem === null) {\n return \"\";\n } else {\n if (dbInfoItem.classes) {\n return dbInfoItem.classes.join(\" \");\n } else {\n return \"\";\n }\n }\n}\nfunction stateDomId(itemId = \"\", counter = 0, type = \"\", typeSpacer = DOMID_TYPE_SPACER) {\n const typeStr = type !== null && type.length > 0 ? `${typeSpacer}${type}` : \"\";\n return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;\n}\nconst setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {\n const itemId = parsedItem.id;\n const classStr = getClassesFromDbInfo(diagramStates[itemId]);\n if (itemId !== \"root\") {\n let shape = SHAPE_STATE;\n if (parsedItem.start === true) {\n shape = SHAPE_START;\n }\n if (parsedItem.start === false) {\n shape = SHAPE_END;\n }\n if (parsedItem.type !== DEFAULT_STATE_TYPE) {\n shape = parsedItem.type;\n }\n if (!nodeDb[itemId]) {\n nodeDb[itemId] = {\n id: itemId,\n shape,\n description: common.sanitizeText(itemId, getConfig()),\n classes: `${classStr} ${CSS_DIAGRAM_STATE}`\n };\n }\n const newNode = nodeDb[itemId];\n if (parsedItem.description) {\n if (Array.isArray(newNode.description)) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n newNode.description.push(parsedItem.description);\n } else {\n if (newNode.description.length > 0) {\n newNode.shape = SHAPE_STATE_WITH_DESC;\n if (newNode.description === itemId) {\n newNode.description = [parsedItem.description];\n } else {\n newNode.description = [newNode.description, parsedItem.description];\n }\n } else {\n newNode.shape = SHAPE_STATE;\n newNode.description = parsedItem.description;\n }\n }\n newNode.description = common.sanitizeTextOrArray(newNode.description, getConfig());\n }\n if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {\n newNode.shape = SHAPE_STATE;\n }\n if (!newNode.type && parsedItem.doc) {\n log.info(\"Setting cluster for \", itemId, getDir(parsedItem));\n newNode.type = \"group\";\n newNode.dir = getDir(parsedItem);\n newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;\n newNode.classes = newNode.classes + \" \" + CSS_DIAGRAM_CLUSTER + \" \" + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : \"\");\n }\n const nodeData = {\n labelStyle: \"\",\n shape: newNode.shape,\n labelText: newNode.description,\n // typeof newNode.description === 'object'\n // ? newNode.description[0]\n // : newNode.description,\n classes: newNode.classes,\n style: \"\",\n //styles.style,\n id: itemId,\n dir: newNode.dir,\n domId: stateDomId(itemId, graphItemCount),\n type: newNode.type,\n padding: 15\n //getConfig().flowchart.padding\n };\n nodeData.centerLabel = true;\n if (parsedItem.note) {\n const noteData = {\n labelStyle: \"\",\n shape: SHAPE_NOTE,\n labelText: parsedItem.note.text,\n classes: CSS_DIAGRAM_NOTE,\n // useHtmlLabels: false,\n style: \"\",\n // styles.style,\n id: itemId + NOTE_ID + \"-\" + graphItemCount,\n domId: stateDomId(itemId, graphItemCount, NOTE),\n type: newNode.type,\n padding: 15\n //getConfig().flowchart.padding\n };\n const groupData = {\n labelStyle: \"\",\n shape: SHAPE_NOTEGROUP,\n labelText: parsedItem.note.text,\n classes: newNode.classes,\n style: \"\",\n // styles.style,\n id: itemId + PARENT_ID,\n domId: stateDomId(itemId, graphItemCount, PARENT),\n type: \"group\",\n padding: 0\n //getConfig().flowchart.padding\n };\n graphItemCount++;\n const parentNodeId = itemId + PARENT_ID;\n g.setNode(parentNodeId, groupData);\n g.setNode(noteData.id, noteData);\n g.setNode(itemId, nodeData);\n g.setParent(itemId, parentNodeId);\n g.setParent(noteData.id, parentNodeId);\n let from = itemId;\n let to = noteData.id;\n if (parsedItem.note.position === \"left of\") {\n from = noteData.id;\n to = itemId;\n }\n g.setEdge(from, to, {\n arrowhead: \"none\",\n arrowType: \"\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n classes: CSS_EDGE_NOTE_EDGE,\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS\n });\n } else {\n g.setNode(itemId, nodeData);\n }\n }\n if (parent && parent.id !== \"root\") {\n log.trace(\"Setting node \", itemId, \" to be child of its parent \", parent.id);\n g.setParent(itemId, parent.id);\n }\n if (parsedItem.doc) {\n log.trace(\"Adding nodes children \");\n setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);\n }\n};\nconst setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {\n log.trace(\"items\", doc);\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);\n break;\n case DEFAULT_STATE_TYPE:\n setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);\n break;\n case STMT_RELATION:\n {\n setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);\n setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);\n const edgeData = {\n id: \"edge\" + graphItemCount,\n arrowhead: \"normal\",\n arrowTypeEnd: \"arrow_barb\",\n style: G_EDGE_STYLE,\n labelStyle: \"\",\n label: common.sanitizeText(item.description, getConfig()),\n arrowheadStyle: G_EDGE_ARROWHEADSTYLE,\n labelpos: G_EDGE_LABELPOS,\n labelType: G_EDGE_LABELTYPE,\n thickness: G_EDGE_THICKNESS,\n classes: CSS_EDGE\n };\n g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);\n graphItemCount++;\n }\n break;\n }\n });\n};\nconst getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {\n let dir = defaultDir;\n if (parsedItem.doc) {\n for (let i = 0; i < parsedItem.doc.length; i++) {\n const parsedItemDoc = parsedItem.doc[i];\n if (parsedItemDoc.stmt === \"dir\") {\n dir = parsedItemDoc.value;\n }\n }\n }\n return dir;\n};\nconst draw = async function(text, id, _version, diag) {\n log.info(\"Drawing state diagram (v2)\", id);\n nodeDb = {};\n diag.db.getDirection();\n const { securityLevel, state: conf } = getConfig();\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n log.info(diag.db.getRootDocV2());\n diag.db.extract(diag.db.getRootDocV2());\n log.info(diag.db.getRootDocV2());\n const diagramStates = diag.db.getStates();\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: getDir(diag.db.getRootDocV2()),\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n const element = root.select(\"#\" + id + \" g\");\n await render(element, g, [\"barb\"], CSS_DIAGRAM, id);\n const padding = 8;\n utils.insertTitle(svg, \"statediagramTitleText\", conf.titleTopMargin, diag.db.getDiagramTitle());\n const bounds = svg.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n svg.attr(\"class\", CSS_DIAGRAM);\n const svgBounds = svg.node().getBBox();\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n svg.attr(\"viewBox\", vBox);\n const labels = document.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (const label of labels) {\n const dim = label.getBBox();\n const rect = document.createElementNS(\"http://www.w3.org/2000/svg\", SHAPE_STATE);\n rect.setAttribute(\"rx\", 0);\n rect.setAttribute(\"ry\", 0);\n rect.setAttribute(\"width\", dim.width);\n rect.setAttribute(\"height\", dim.height);\n label.insertBefore(rect, label.firstChild);\n }\n};\nconst renderer = {\n setConf,\n getClasses,\n draw\n};\nconst diagram = {\n parser,\n db,\n renderer,\n styles,\n init: (cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n db.clear();\n }\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": [] -} diff --git a/.vuepress/.cache/deps/timeline-definition-732a2638-HH2EUDI5.js b/.vuepress/.cache/deps/timeline-definition-732a2638-HH2EUDI5.js deleted file mode 100644 index 98f5f8bd3..000000000 --- a/.vuepress/.cache/deps/timeline-definition-732a2638-HH2EUDI5.js +++ /dev/null @@ -1,1230 +0,0 @@ -import { - arc_default, - clear, - commonDb, - darken_default, - getConfig, - is_dark_default, - lighten_default, - log$1, - require_dayjs_min, - require_dist, - select_default, - setupGraphViewbox$1 -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/timeline-definition-732a2638.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "period_statement": 18, "event_statement": 19, "period": 20, "event": 21, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 4: "timeline", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 20: "period", 21: "event" }, - productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 1: - return $$[$0 - 1]; - case 2: - this.$ = []; - break; - case 3: - $$[$0 - 1].push($$[$0]); - this.$ = $$[$0 - 1]; - break; - case 4: - case 5: - this.$ = $$[$0]; - break; - case 6: - case 7: - this.$ = []; - break; - case 8: - yy.getCommonDb().setDiagramTitle($$[$0].substr(6)); - this.$ = $$[$0].substr(6); - break; - case 9: - this.$ = $$[$0].trim(); - yy.getCommonDb().setAccTitle(this.$); - break; - case 10: - case 11: - this.$ = $$[$0].trim(); - yy.getCommonDb().setAccDescription(this.$); - break; - case 12: - yy.addSection($$[$0].substr(8)); - this.$ = $$[$0].substr(8); - break; - case 15: - yy.addTask($$[$0], 0, ""); - this.$ = $$[$0]; - break; - case 16: - yy.addEvent($$[$0].substr(2)); - this.$ = $$[$0]; - break; - } - }, - table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])], - defaultActions: {}, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - break; - case 1: - break; - case 2: - return 10; - case 3: - break; - case 4: - break; - case 5: - return 4; - case 6: - return 11; - case 7: - this.begin("acc_title"); - return 12; - case 8: - this.popState(); - return "acc_title_value"; - case 9: - this.begin("acc_descr"); - return 14; - case 10: - this.popState(); - return "acc_descr_value"; - case 11: - this.begin("acc_descr_multiline"); - break; - case 12: - this.popState(); - break; - case 13: - return "acc_descr_multiline_value"; - case 14: - return 17; - case 15: - return 21; - case 16: - return 20; - case 17: - return 6; - case 18: - return "INVALID"; - } - }, - rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i], - conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -var currentSection = ""; -var currentTaskId = 0; -var sections = []; -var tasks = []; -var rawTasks = []; -var getCommonDb = () => commonDb; -var clear2 = function() { - sections.length = 0; - tasks.length = 0; - currentSection = ""; - rawTasks.length = 0; - clear(); -}; -var addSection = function(txt) { - currentSection = txt; - sections.push(txt); -}; -var getSections = function() { - return sections; -}; -var getTasks = function() { - let allItemsProcessed = compileTasks(); - const maxDepth = 100; - let iterationCount = 0; - while (!allItemsProcessed && iterationCount < maxDepth) { - allItemsProcessed = compileTasks(); - iterationCount++; - } - tasks.push(...rawTasks); - return tasks; -}; -var addTask = function(period, length, event) { - const rawTask = { - id: currentTaskId++, - section: currentSection, - type: currentSection, - task: period, - score: length ? length : 0, - //if event is defined, then add it the events array - events: event ? [event] : [] - }; - rawTasks.push(rawTask); -}; -var addEvent = function(event) { - const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1); - currentTask.events.push(event); -}; -var addTaskOrg = function(descr) { - const newTask = { - section: currentSection, - type: currentSection, - description: descr, - task: descr, - classes: [] - }; - tasks.push(newTask); -}; -var compileTasks = function() { - const compileTask = function(pos) { - return rawTasks[pos].processed; - }; - let allProcessed = true; - for (const [i, rawTask] of rawTasks.entries()) { - compileTask(i); - allProcessed = allProcessed && rawTask.processed; - } - return allProcessed; -}; -var timelineDb = { - clear: clear2, - getCommonDb, - addSection, - getSections, - getTasks, - addTask, - addTaskOrg, - addEvent -}; -var db = Object.freeze(Object.defineProperty({ - __proto__: null, - addEvent, - addSection, - addTask, - addTaskOrg, - clear: clear2, - default: timelineDb, - getCommonDb, - getSections, - getTasks -}, Symbol.toStringTag, { value: "Module" })); -var MAX_SECTIONS = 12; -var drawRect = function(elem, rectData) { - const rectElem = elem.append("rect"); - rectElem.attr("x", rectData.x); - rectElem.attr("y", rectData.y); - rectElem.attr("fill", rectData.fill); - rectElem.attr("stroke", rectData.stroke); - rectElem.attr("width", rectData.width); - rectElem.attr("height", rectData.height); - rectElem.attr("rx", rectData.rx); - rectElem.attr("ry", rectData.ry); - if (rectData.class !== void 0) { - rectElem.attr("class", rectData.class); - } - return rectElem; -}; -var drawFace = function(element, faceData) { - const radius = 15; - const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); - const face = element.append("g"); - face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); - face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); - function smile(face2) { - const arc$1 = arc_default().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); - face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); - } - function sad(face2) { - const arc$1 = arc_default().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); - face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); - } - function ambivalent(face2) { - face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); - } - if (faceData.score > 3) { - smile(face); - } else if (faceData.score < 3) { - sad(face); - } else { - ambivalent(face); - } - return circleElement; -}; -var drawCircle = function(element, circleData) { - const circleElement = element.append("circle"); - circleElement.attr("cx", circleData.cx); - circleElement.attr("cy", circleData.cy); - circleElement.attr("class", "actor-" + circleData.pos); - circleElement.attr("fill", circleData.fill); - circleElement.attr("stroke", circleData.stroke); - circleElement.attr("r", circleData.r); - if (circleElement.class !== void 0) { - circleElement.attr("class", circleElement.class); - } - if (circleData.title !== void 0) { - circleElement.append("title").text(circleData.title); - } - return circleElement; -}; -var drawText = function(elem, textData) { - const nText = textData.text.replace(//gi, " "); - const textElem = elem.append("text"); - textElem.attr("x", textData.x); - textElem.attr("y", textData.y); - textElem.attr("class", "legend"); - textElem.style("text-anchor", textData.anchor); - if (textData.class !== void 0) { - textElem.attr("class", textData.class); - } - const span = textElem.append("tspan"); - span.attr("x", textData.x + textData.textMargin * 2); - span.text(nText); - return textElem; -}; -var drawLabel = function(elem, txtObject) { - function genPoints(x, y, width, height, cut) { - return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); - } - const polygon = elem.append("polygon"); - polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); - polygon.attr("class", "labelBox"); - txtObject.y = txtObject.y + txtObject.labelMargin; - txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; - drawText(elem, txtObject); -}; -var drawSection = function(elem, section, conf) { - const g = elem.append("g"); - const rect = getNoteRect(); - rect.x = section.x; - rect.y = section.y; - rect.fill = section.fill; - rect.width = conf.width; - rect.height = conf.height; - rect.class = "journey-section section-type-" + section.num; - rect.rx = 3; - rect.ry = 3; - drawRect(g, rect); - _drawTextCandidateFunc(conf)( - section.text, - g, - rect.x, - rect.y, - rect.width, - rect.height, - { class: "journey-section section-type-" + section.num }, - conf, - section.colour - ); -}; -var taskCount = -1; -var drawTask = function(elem, task, conf) { - const center = task.x + conf.width / 2; - const g = elem.append("g"); - taskCount++; - const maxHeight = 300 + 5 * 30; - g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); - drawFace(g, { - cx: center, - cy: 300 + (5 - task.score) * 30, - score: task.score - }); - const rect = getNoteRect(); - rect.x = task.x; - rect.y = task.y; - rect.fill = task.fill; - rect.width = conf.width; - rect.height = conf.height; - rect.class = "task task-type-" + task.num; - rect.rx = 3; - rect.ry = 3; - drawRect(g, rect); - task.x + 14; - _drawTextCandidateFunc(conf)( - task.task, - g, - rect.x, - rect.y, - rect.width, - rect.height, - { class: "task" }, - conf, - task.colour - ); -}; -var drawBackgroundRect = function(elem, bounds) { - const rectElem = drawRect(elem, { - x: bounds.startx, - y: bounds.starty, - width: bounds.stopx - bounds.startx, - height: bounds.stopy - bounds.starty, - fill: bounds.fill, - class: "rect" - }); - rectElem.lower(); -}; -var getTextObj = function() { - return { - x: 0, - y: 0, - fill: void 0, - "text-anchor": "start", - width: 100, - height: 100, - textMargin: 0, - rx: 0, - ry: 0 - }; -}; -var getNoteRect = function() { - return { - x: 0, - y: 0, - width: 100, - anchor: "start", - height: 100, - rx: 0, - ry: 0 - }; -}; -var _drawTextCandidateFunc = /* @__PURE__ */ function() { - function byText(content, g, x, y, width, height, textAttrs, colour) { - const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); - _setTextAttrs(text, textAttrs); - } - function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) { - const { taskFontSize, taskFontFamily } = conf; - const lines = content.split(//gi); - for (let i = 0; i < lines.length; i++) { - const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; - const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); - text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); - text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); - _setTextAttrs(text, textAttrs); - } - } - function byFo(content, g, x, y, width, height, textAttrs, conf) { - const body = g.append("switch"); - const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); - const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); - text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); - byTspan(content, body, x, y, width, height, textAttrs, conf); - _setTextAttrs(text, textAttrs); - } - function _setTextAttrs(toText, fromTextAttrsDict) { - for (const key in fromTextAttrsDict) { - if (key in fromTextAttrsDict) { - toText.attr(key, fromTextAttrsDict[key]); - } - } - } - return function(conf) { - return conf.textPlacement === "fo" ? byFo : conf.textPlacement === "old" ? byText : byTspan; - }; -}(); -var initGraphics = function(graphics) { - graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); -}; -function wrap(text, width) { - text.each(function() { - var text2 = select_default(this), words = text2.text().split(/(\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); - for (let j = 0; j < words.length; j++) { - word = words[words.length - 1 - j]; - line.push(word); - tspan.text(line.join(" ").trim()); - if (tspan.node().getComputedTextLength() > width || word === "
") { - line.pop(); - tspan.text(line.join(" ").trim()); - if (word === "
") { - line = [""]; - } else { - line = [word]; - } - tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); - } - } - }); -} -var drawNode = function(elem, node, fullSection, conf) { - const section = fullSection % MAX_SECTIONS - 1; - const nodeElem = elem.append("g"); - node.section = section; - nodeElem.attr( - "class", - (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section) - ); - const bkgElem = nodeElem.append("g"); - const textElem = nodeElem.append("g"); - const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); - const bbox = txt.node().getBBox(); - const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; - node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; - node.height = Math.max(node.height, node.maxHeight); - node.width = node.width + 2 * node.padding; - textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); - defaultBkg(bkgElem, node, section); - return node; -}; -var getVirtualNodeHeight = function(elem, node, conf) { - const textElem = elem.append("g"); - const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); - const bbox = txt.node().getBBox(); - const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; - textElem.remove(); - return bbox.height + fontSize * 1.1 * 0.5 + node.padding; -}; -var defaultBkg = function(elem, node, section) { - const rd = 5; - elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr( - "d", - `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` - ); - elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); -}; -var svgDraw = { - drawRect, - drawCircle, - drawSection, - drawText, - drawLabel, - drawTask, - drawBackgroundRect, - getTextObj, - getNoteRect, - initGraphics, - drawNode, - getVirtualNodeHeight -}; -var draw = function(text, id, version, diagObj) { - var _a, _b; - const conf = getConfig(); - const LEFT_MARGIN = conf.leftMargin ?? 50; - log$1.debug("timeline", diagObj.db); - const securityLevel = conf.securityLevel; - let sandboxElement; - if (securityLevel === "sandbox") { - sandboxElement = select_default("#i" + id); - } - const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body"); - const svg = root.select("#" + id); - svg.append("g"); - const tasks2 = diagObj.db.getTasks(); - const title = diagObj.db.getCommonDb().getDiagramTitle(); - log$1.debug("task", tasks2); - svgDraw.initGraphics(svg); - const sections2 = diagObj.db.getSections(); - log$1.debug("sections", sections2); - let maxSectionHeight = 0; - let maxTaskHeight = 0; - let depthY = 0; - let sectionBeginY = 0; - let masterX = 50 + LEFT_MARGIN; - let masterY = 50; - sectionBeginY = 50; - let sectionNumber = 0; - let hasSections = true; - sections2.forEach(function(section) { - const sectionNode = { - number: sectionNumber, - descr: section, - section: sectionNumber, - width: 150, - padding: 20, - maxHeight: maxSectionHeight - }; - const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf); - log$1.debug("sectionHeight before draw", sectionHeight); - maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20); - }); - let maxEventCount = 0; - let maxEventLineLength = 0; - log$1.debug("tasks.length", tasks2.length); - for (const [i, task] of tasks2.entries()) { - const taskNode = { - number: i, - descr: task, - section: task.section, - width: 150, - padding: 20, - maxHeight: maxTaskHeight - }; - const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf); - log$1.debug("taskHeight before draw", taskHeight); - maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20); - maxEventCount = Math.max(maxEventCount, task.events.length); - let maxEventLineLengthTemp = 0; - for (let j = 0; j < task.events.length; j++) { - const event = task.events[j]; - const eventNode = { - descr: event, - section: task.section, - number: task.section, - width: 150, - padding: 20, - maxHeight: 50 - }; - maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf); - } - maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp); - } - log$1.debug("maxSectionHeight before draw", maxSectionHeight); - log$1.debug("maxTaskHeight before draw", maxTaskHeight); - if (sections2 && sections2.length > 0) { - sections2.forEach((section) => { - const tasksForSection = tasks2.filter((task) => task.section === section); - const sectionNode = { - number: sectionNumber, - descr: section, - section: sectionNumber, - width: 200 * Math.max(tasksForSection.length, 1) - 50, - padding: 20, - maxHeight: maxSectionHeight - }; - log$1.debug("sectionNode", sectionNode); - const sectionNodeWrapper = svg.append("g"); - const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf); - log$1.debug("sectionNode output", node); - sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`); - masterY += maxSectionHeight + 50; - if (tasksForSection.length > 0) { - drawTasks( - svg, - tasksForSection, - sectionNumber, - masterX, - masterY, - maxTaskHeight, - conf, - maxEventCount, - maxEventLineLength, - maxSectionHeight, - false - ); - } - masterX += 200 * Math.max(tasksForSection.length, 1); - masterY = sectionBeginY; - sectionNumber++; - }); - } else { - hasSections = false; - drawTasks( - svg, - tasks2, - sectionNumber, - masterX, - masterY, - maxTaskHeight, - conf, - maxEventCount, - maxEventLineLength, - maxSectionHeight, - true - ); - } - const box = svg.node().getBBox(); - log$1.debug("bounds", box); - if (title) { - svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20); - } - depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100; - const lineWrapper = svg.append("g").attr("class", "lineWrapper"); - lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); - setupGraphViewbox$1( - void 0, - svg, - ((_a = conf.timeline) == null ? void 0 : _a.padding) ?? 50, - ((_b = conf.timeline) == null ? void 0 : _b.useMaxWidth) ?? false - ); -}; -var drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) { - var _a; - for (const task of tasks2) { - const taskNode = { - descr: task.task, - section: sectionColor, - number: sectionColor, - width: 150, - padding: 20, - maxHeight: maxTaskHeight - }; - log$1.debug("taskNode", taskNode); - const taskWrapper = diagram2.append("g").attr("class", "taskWrapper"); - const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf); - const taskHeight = node.height; - log$1.debug("taskHeight after draw", taskHeight); - taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`); - maxTaskHeight = Math.max(maxTaskHeight, taskHeight); - if (task.events) { - const lineWrapper = diagram2.append("g").attr("class", "lineWrapper"); - let lineLength = maxTaskHeight; - masterY += 100; - lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf); - masterY -= 100; - lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr( - "y2", - masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120 - ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5"); - } - masterX = masterX + 200; - if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) { - sectionColor++; - } - } - masterY = masterY - 10; -}; -var drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) { - let maxEventHeight = 0; - const eventBeginY = masterY; - masterY = masterY + 100; - for (const event of events) { - const eventNode = { - descr: event, - section: sectionColor, - number: sectionColor, - width: 150, - padding: 20, - maxHeight: 50 - }; - log$1.debug("eventNode", eventNode); - const eventWrapper = diagram2.append("g").attr("class", "eventWrapper"); - const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf); - const eventHeight = node.height; - maxEventHeight = maxEventHeight + eventHeight; - eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`); - masterY = masterY + 10 + eventHeight; - } - masterY = eventBeginY; - return maxEventHeight; -}; -var renderer = { - setConf: () => { - }, - draw -}; -var genSections = (options) => { - let sections2 = ""; - for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { - options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; - if (is_dark_default(options["lineColor" + i])) { - options["lineColor" + i] = lighten_default(options["lineColor" + i], 20); - } else { - options["lineColor" + i] = darken_default(options["lineColor" + i], 20); - } - } - for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { - const sw = "" + (17 - 3 * i); - sections2 += ` - .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path { - fill: ${options["cScale" + i]}; - } - .section-${i - 1} text { - fill: ${options["cScaleLabel" + i]}; - } - .node-icon-${i - 1} { - font-size: 40px; - color: ${options["cScaleLabel" + i]}; - } - .section-edge-${i - 1}{ - stroke: ${options["cScale" + i]}; - } - .edge-depth-${i - 1}{ - stroke-width: ${sw}; - } - .section-${i - 1} line { - stroke: ${options["cScaleInv" + i]} ; - stroke-width: 3; - } - - .lineWrapper line{ - stroke: ${options["cScaleLabel" + i]} ; - } - - .disabled, .disabled circle, .disabled text { - fill: lightgray; - } - .disabled text { - fill: #efefef; - } - `; - } - return sections2; -}; -var getStyles = (options) => ` - .edge { - stroke-width: 3; - } - ${genSections(options)} - .section-root rect, .section-root path, .section-root circle { - fill: ${options.git0}; - } - .section-root text { - fill: ${options.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .eventWrapper { - filter: brightness(120%); - } -`; -var styles = getStyles; -var diagram = { - db, - renderer, - parser: parser$1, - styles -}; -export { - diagram -}; -//# sourceMappingURL=timeline-definition-732a2638-HH2EUDI5.js.map diff --git a/.vuepress/.cache/deps/timeline-definition-732a2638-HH2EUDI5.js.map b/.vuepress/.cache/deps/timeline-definition-732a2638-HH2EUDI5.js.map deleted file mode 100644 index 52fe90743..000000000 --- a/.vuepress/.cache/deps/timeline-definition-732a2638-HH2EUDI5.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/timeline-definition-732a2638.js"], - "sourcesContent": ["import { K as commonDb, t as clear$1, c as getConfig, l as log, o as setupGraphViewbox } from \"./mermaid-934d9bea.js\";\nimport { select, arc } from \"d3\";\nimport { isDark, lighten, darken } from \"khroma\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"timeline\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"title\": 11, \"acc_title\": 12, \"acc_title_value\": 13, \"acc_descr\": 14, \"acc_descr_value\": 15, \"acc_descr_multiline_value\": 16, \"section\": 17, \"period_statement\": 18, \"event_statement\": 19, \"period\": 20, \"event\": 21, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"timeline\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 11: \"title\", 12: \"acc_title\", 13: \"acc_title_value\", 14: \"acc_descr\", 15: \"acc_descr_value\", 16: \"acc_descr_multiline_value\", 17: \"section\", 20: \"period\", 21: \"event\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n return $$[$0 - 1];\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.getCommonDb().setDiagramTitle($$[$0].substr(6));\n this.$ = $$[$0].substr(6);\n break;\n case 9:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccTitle(this.$);\n break;\n case 10:\n case 11:\n this.$ = $$[$0].trim();\n yy.getCommonDb().setAccDescription(this.$);\n break;\n case 12:\n yy.addSection($$[$0].substr(8));\n this.$ = $$[$0].substr(8);\n break;\n case 15:\n yy.addTask($$[$0], 0, \"\");\n this.$ = $$[$0];\n break;\n case 16:\n yy.addEvent($$[$0].substr(2));\n this.$ = $$[$0];\n break;\n }\n },\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])],\n defaultActions: {},\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n return 10;\n case 3:\n break;\n case 4:\n break;\n case 5:\n return 4;\n case 6:\n return 11;\n case 7:\n this.begin(\"acc_title\");\n return 12;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.begin(\"acc_descr\");\n return 14;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.begin(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 17;\n case 15:\n return 21;\n case 16:\n return 20;\n case 17:\n return 6;\n case 18:\n return \"INVALID\";\n }\n },\n rules: [/^(?:%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:#[^\\n]*)/i, /^(?:timeline\\b)/i, /^(?:title\\s[^#\\n;]+)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:section\\s[^#:\\n;]+)/i, /^(?::\\s[^#:\\n;]+)/i, /^(?:[^#:\\n;]+)/i, /^(?:$)/i, /^(?:.)/i],\n conditions: { \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet currentSection = \"\";\nlet currentTaskId = 0;\nconst sections = [];\nconst tasks = [];\nconst rawTasks = [];\nconst getCommonDb = () => commonDb;\nconst clear = function() {\n sections.length = 0;\n tasks.length = 0;\n currentSection = \"\";\n rawTasks.length = 0;\n clear$1();\n};\nconst addSection = function(txt) {\n currentSection = txt;\n sections.push(txt);\n};\nconst getSections = function() {\n return sections;\n};\nconst getTasks = function() {\n let allItemsProcessed = compileTasks();\n const maxDepth = 100;\n let iterationCount = 0;\n while (!allItemsProcessed && iterationCount < maxDepth) {\n allItemsProcessed = compileTasks();\n iterationCount++;\n }\n tasks.push(...rawTasks);\n return tasks;\n};\nconst addTask = function(period, length, event) {\n const rawTask = {\n id: currentTaskId++,\n section: currentSection,\n type: currentSection,\n task: period,\n score: length ? length : 0,\n //if event is defined, then add it the events array\n events: event ? [event] : []\n };\n rawTasks.push(rawTask);\n};\nconst addEvent = function(event) {\n const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);\n currentTask.events.push(event);\n};\nconst addTaskOrg = function(descr) {\n const newTask = {\n section: currentSection,\n type: currentSection,\n description: descr,\n task: descr,\n classes: []\n };\n tasks.push(newTask);\n};\nconst compileTasks = function() {\n const compileTask = function(pos) {\n return rawTasks[pos].processed;\n };\n let allProcessed = true;\n for (const [i, rawTask] of rawTasks.entries()) {\n compileTask(i);\n allProcessed = allProcessed && rawTask.processed;\n }\n return allProcessed;\n};\nconst timelineDb = {\n clear,\n getCommonDb,\n addSection,\n getSections,\n getTasks,\n addTask,\n addTaskOrg,\n addEvent\n};\nconst db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addEvent,\n addSection,\n addTask,\n addTaskOrg,\n clear,\n default: timelineDb,\n getCommonDb,\n getSections,\n getTasks\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst MAX_SECTIONS = 12;\nconst drawRect = function(elem, rectData) {\n const rectElem = elem.append(\"rect\");\n rectElem.attr(\"x\", rectData.x);\n rectElem.attr(\"y\", rectData.y);\n rectElem.attr(\"fill\", rectData.fill);\n rectElem.attr(\"stroke\", rectData.stroke);\n rectElem.attr(\"width\", rectData.width);\n rectElem.attr(\"height\", rectData.height);\n rectElem.attr(\"rx\", rectData.rx);\n rectElem.attr(\"ry\", rectData.ry);\n if (rectData.class !== void 0) {\n rectElem.attr(\"class\", rectData.class);\n }\n return rectElem;\n};\nconst drawFace = function(element, faceData) {\n const radius = 15;\n const circleElement = element.append(\"circle\").attr(\"cx\", faceData.cx).attr(\"cy\", faceData.cy).attr(\"class\", \"face\").attr(\"r\", radius).attr(\"stroke-width\", 2).attr(\"overflow\", \"visible\");\n const face = element.append(\"g\");\n face.append(\"circle\").attr(\"cx\", faceData.cx - radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n face.append(\"circle\").attr(\"cx\", faceData.cx + radius / 3).attr(\"cy\", faceData.cy - radius / 3).attr(\"r\", 1.5).attr(\"stroke-width\", 2).attr(\"fill\", \"#666\").attr(\"stroke\", \"#666\");\n function smile(face2) {\n const arc$1 = arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 2) + \")\");\n }\n function sad(face2) {\n const arc$1 = arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);\n face2.append(\"path\").attr(\"class\", \"mouth\").attr(\"d\", arc$1).attr(\"transform\", \"translate(\" + faceData.cx + \",\" + (faceData.cy + 7) + \")\");\n }\n function ambivalent(face2) {\n face2.append(\"line\").attr(\"class\", \"mouth\").attr(\"stroke\", 2).attr(\"x1\", faceData.cx - 5).attr(\"y1\", faceData.cy + 7).attr(\"x2\", faceData.cx + 5).attr(\"y2\", faceData.cy + 7).attr(\"class\", \"mouth\").attr(\"stroke-width\", \"1px\").attr(\"stroke\", \"#666\");\n }\n if (faceData.score > 3) {\n smile(face);\n } else if (faceData.score < 3) {\n sad(face);\n } else {\n ambivalent(face);\n }\n return circleElement;\n};\nconst drawCircle = function(element, circleData) {\n const circleElement = element.append(\"circle\");\n circleElement.attr(\"cx\", circleData.cx);\n circleElement.attr(\"cy\", circleData.cy);\n circleElement.attr(\"class\", \"actor-\" + circleData.pos);\n circleElement.attr(\"fill\", circleData.fill);\n circleElement.attr(\"stroke\", circleData.stroke);\n circleElement.attr(\"r\", circleData.r);\n if (circleElement.class !== void 0) {\n circleElement.attr(\"class\", circleElement.class);\n }\n if (circleData.title !== void 0) {\n circleElement.append(\"title\").text(circleData.title);\n }\n return circleElement;\n};\nconst drawText = function(elem, textData) {\n const nText = textData.text.replace(//gi, \" \");\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.text(nText);\n return textElem;\n};\nconst drawLabel = function(elem, txtObject) {\n function genPoints(x, y, width, height, cut) {\n return x + \",\" + y + \" \" + (x + width) + \",\" + y + \" \" + (x + width) + \",\" + (y + height - cut) + \" \" + (x + width - cut * 1.2) + \",\" + (y + height) + \" \" + x + \",\" + (y + height);\n }\n const polygon = elem.append(\"polygon\");\n polygon.attr(\"points\", genPoints(txtObject.x, txtObject.y, 50, 20, 7));\n polygon.attr(\"class\", \"labelBox\");\n txtObject.y = txtObject.y + txtObject.labelMargin;\n txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;\n drawText(elem, txtObject);\n};\nconst drawSection = function(elem, section, conf) {\n const g = elem.append(\"g\");\n const rect = getNoteRect();\n rect.x = section.x;\n rect.y = section.y;\n rect.fill = section.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"journey-section section-type-\" + section.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n _drawTextCandidateFunc(conf)(\n section.text,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"journey-section section-type-\" + section.num },\n conf,\n section.colour\n );\n};\nlet taskCount = -1;\nconst drawTask = function(elem, task, conf) {\n const center = task.x + conf.width / 2;\n const g = elem.append(\"g\");\n taskCount++;\n const maxHeight = 300 + 5 * 30;\n g.append(\"line\").attr(\"id\", \"task\" + taskCount).attr(\"x1\", center).attr(\"y1\", task.y).attr(\"x2\", center).attr(\"y2\", maxHeight).attr(\"class\", \"task-line\").attr(\"stroke-width\", \"1px\").attr(\"stroke-dasharray\", \"4 2\").attr(\"stroke\", \"#666\");\n drawFace(g, {\n cx: center,\n cy: 300 + (5 - task.score) * 30,\n score: task.score\n });\n const rect = getNoteRect();\n rect.x = task.x;\n rect.y = task.y;\n rect.fill = task.fill;\n rect.width = conf.width;\n rect.height = conf.height;\n rect.class = \"task task-type-\" + task.num;\n rect.rx = 3;\n rect.ry = 3;\n drawRect(g, rect);\n task.x + 14;\n _drawTextCandidateFunc(conf)(\n task.task,\n g,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n { class: \"task\" },\n conf,\n task.colour\n );\n};\nconst drawBackgroundRect = function(elem, bounds) {\n const rectElem = drawRect(elem, {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n class: \"rect\"\n });\n rectElem.lower();\n};\nconst getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n \"text-anchor\": \"start\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0\n };\n};\nconst getNoteRect = function() {\n return {\n x: 0,\n y: 0,\n width: 100,\n anchor: \"start\",\n height: 100,\n rx: 0,\n ry: 0\n };\n};\nconst _drawTextCandidateFunc = function() {\n function byText(content, g, x, y, width, height, textAttrs, colour) {\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y + height / 2 + 5).style(\"font-color\", colour).style(\"text-anchor\", \"middle\").text(content);\n _setTextAttrs(text, textAttrs);\n }\n function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {\n const { taskFontSize, taskFontFamily } = conf;\n const lines = content.split(//gi);\n for (let i = 0; i < lines.length; i++) {\n const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;\n const text = g.append(\"text\").attr(\"x\", x + width / 2).attr(\"y\", y).attr(\"fill\", colour).style(\"text-anchor\", \"middle\").style(\"font-size\", taskFontSize).style(\"font-family\", taskFontFamily);\n text.append(\"tspan\").attr(\"x\", x + width / 2).attr(\"dy\", dy).text(lines[i]);\n text.attr(\"y\", y + height / 2).attr(\"dominant-baseline\", \"central\").attr(\"alignment-baseline\", \"central\");\n _setTextAttrs(text, textAttrs);\n }\n }\n function byFo(content, g, x, y, width, height, textAttrs, conf) {\n const body = g.append(\"switch\");\n const f = body.append(\"foreignObject\").attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"position\", \"fixed\");\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"div\").attr(\"class\", \"label\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").text(content);\n byTspan(content, body, x, y, width, height, textAttrs, conf);\n _setTextAttrs(text, textAttrs);\n }\n function _setTextAttrs(toText, fromTextAttrsDict) {\n for (const key in fromTextAttrsDict) {\n if (key in fromTextAttrsDict) {\n toText.attr(key, fromTextAttrsDict[key]);\n }\n }\n }\n return function(conf) {\n return conf.textPlacement === \"fo\" ? byFo : conf.textPlacement === \"old\" ? byText : byTspan;\n };\n}();\nconst initGraphics = function(graphics) {\n graphics.append(\"defs\").append(\"marker\").attr(\"id\", \"arrowhead\").attr(\"refX\", 5).attr(\"refY\", 2).attr(\"markerWidth\", 6).attr(\"markerHeight\", 4).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0,0 V 4 L6,2 Z\");\n};\nfunction wrap(text, width) {\n text.each(function() {\n var text2 = select(this), words = text2.text().split(/(\\s+|
)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr(\"y\"), dy = parseFloat(text2.attr(\"dy\")), tspan = text2.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\");\n for (let j = 0; j < words.length; j++) {\n word = words[words.length - 1 - j];\n line.push(word);\n tspan.text(line.join(\" \").trim());\n if (tspan.node().getComputedTextLength() > width || word === \"
\") {\n line.pop();\n tspan.text(line.join(\" \").trim());\n if (word === \"
\") {\n line = [\"\"];\n } else {\n line = [word];\n }\n tspan = text2.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").text(word);\n }\n }\n });\n}\nconst drawNode = function(elem, node, fullSection, conf) {\n const section = fullSection % MAX_SECTIONS - 1;\n const nodeElem = elem.append(\"g\");\n node.section = section;\n nodeElem.attr(\n \"class\",\n (node.class ? node.class + \" \" : \"\") + \"timeline-node \" + (\"section-\" + section)\n );\n const bkgElem = nodeElem.append(\"g\");\n const textElem = nodeElem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n node.height = Math.max(node.height, node.maxHeight);\n node.width = node.width + 2 * node.padding;\n textElem.attr(\"transform\", \"translate(\" + node.width / 2 + \", \" + node.padding / 2 + \")\");\n defaultBkg(bkgElem, node, section);\n return node;\n};\nconst getVirtualNodeHeight = function(elem, node, conf) {\n const textElem = elem.append(\"g\");\n const txt = textElem.append(\"text\").text(node.descr).attr(\"dy\", \"1em\").attr(\"alignment-baseline\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").call(wrap, node.width);\n const bbox = txt.node().getBBox();\n const fontSize = conf.fontSize && conf.fontSize.replace ? conf.fontSize.replace(\"px\", \"\") : conf.fontSize;\n textElem.remove();\n return bbox.height + fontSize * 1.1 * 0.5 + node.padding;\n};\nconst defaultBkg = function(elem, node, section) {\n const rd = 5;\n elem.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\n \"d\",\n `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`\n );\n elem.append(\"line\").attr(\"class\", \"node-line-\" + section).attr(\"x1\", 0).attr(\"y1\", node.height).attr(\"x2\", node.width).attr(\"y2\", node.height);\n};\nconst svgDraw = {\n drawRect,\n drawCircle,\n drawSection,\n drawText,\n drawLabel,\n drawTask,\n drawBackgroundRect,\n getTextObj,\n getNoteRect,\n initGraphics,\n drawNode,\n getVirtualNodeHeight\n};\nconst draw = function(text, id, version, diagObj) {\n var _a, _b;\n const conf = getConfig();\n const LEFT_MARGIN = conf.leftMargin ?? 50;\n log.debug(\"timeline\", diagObj.db);\n const securityLevel = conf.securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(\"#\" + id);\n svg.append(\"g\");\n const tasks2 = diagObj.db.getTasks();\n const title = diagObj.db.getCommonDb().getDiagramTitle();\n log.debug(\"task\", tasks2);\n svgDraw.initGraphics(svg);\n const sections2 = diagObj.db.getSections();\n log.debug(\"sections\", sections2);\n let maxSectionHeight = 0;\n let maxTaskHeight = 0;\n let depthY = 0;\n let sectionBeginY = 0;\n let masterX = 50 + LEFT_MARGIN;\n let masterY = 50;\n sectionBeginY = 50;\n let sectionNumber = 0;\n let hasSections = true;\n sections2.forEach(function(section) {\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 150,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf);\n log.debug(\"sectionHeight before draw\", sectionHeight);\n maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);\n });\n let maxEventCount = 0;\n let maxEventLineLength = 0;\n log.debug(\"tasks.length\", tasks2.length);\n for (const [i, task] of tasks2.entries()) {\n const taskNode = {\n number: i,\n descr: task,\n section: task.section,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf);\n log.debug(\"taskHeight before draw\", taskHeight);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);\n maxEventCount = Math.max(maxEventCount, task.events.length);\n let maxEventLineLengthTemp = 0;\n for (let j = 0; j < task.events.length; j++) {\n const event = task.events[j];\n const eventNode = {\n descr: event,\n section: task.section,\n number: task.section,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf);\n }\n maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);\n }\n log.debug(\"maxSectionHeight before draw\", maxSectionHeight);\n log.debug(\"maxTaskHeight before draw\", maxTaskHeight);\n if (sections2 && sections2.length > 0) {\n sections2.forEach((section) => {\n const tasksForSection = tasks2.filter((task) => task.section === section);\n const sectionNode = {\n number: sectionNumber,\n descr: section,\n section: sectionNumber,\n width: 200 * Math.max(tasksForSection.length, 1) - 50,\n padding: 20,\n maxHeight: maxSectionHeight\n };\n log.debug(\"sectionNode\", sectionNode);\n const sectionNodeWrapper = svg.append(\"g\");\n const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);\n log.debug(\"sectionNode output\", node);\n sectionNodeWrapper.attr(\"transform\", `translate(${masterX}, ${sectionBeginY})`);\n masterY += maxSectionHeight + 50;\n if (tasksForSection.length > 0) {\n drawTasks(\n svg,\n tasksForSection,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n false\n );\n }\n masterX += 200 * Math.max(tasksForSection.length, 1);\n masterY = sectionBeginY;\n sectionNumber++;\n });\n } else {\n hasSections = false;\n drawTasks(\n svg,\n tasks2,\n sectionNumber,\n masterX,\n masterY,\n maxTaskHeight,\n conf,\n maxEventCount,\n maxEventLineLength,\n maxSectionHeight,\n true\n );\n }\n const box = svg.node().getBBox();\n log.debug(\"bounds\", box);\n if (title) {\n svg.append(\"text\").text(title).attr(\"x\", box.width / 2 - LEFT_MARGIN).attr(\"font-size\", \"4ex\").attr(\"font-weight\", \"bold\").attr(\"y\", 20);\n }\n depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;\n const lineWrapper = svg.append(\"g\").attr(\"class\", \"lineWrapper\");\n lineWrapper.append(\"line\").attr(\"x1\", LEFT_MARGIN).attr(\"y1\", depthY).attr(\"x2\", box.width + 3 * LEFT_MARGIN).attr(\"y2\", depthY).attr(\"stroke-width\", 4).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\");\n setupGraphViewbox(\n void 0,\n svg,\n ((_a = conf.timeline) == null ? void 0 : _a.padding) ?? 50,\n ((_b = conf.timeline) == null ? void 0 : _b.useMaxWidth) ?? false\n );\n};\nconst drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {\n var _a;\n for (const task of tasks2) {\n const taskNode = {\n descr: task.task,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: maxTaskHeight\n };\n log.debug(\"taskNode\", taskNode);\n const taskWrapper = diagram2.append(\"g\").attr(\"class\", \"taskWrapper\");\n const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf);\n const taskHeight = node.height;\n log.debug(\"taskHeight after draw\", taskHeight);\n taskWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n maxTaskHeight = Math.max(maxTaskHeight, taskHeight);\n if (task.events) {\n const lineWrapper = diagram2.append(\"g\").attr(\"class\", \"lineWrapper\");\n let lineLength = maxTaskHeight;\n masterY += 100;\n lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);\n masterY -= 100;\n lineWrapper.append(\"line\").attr(\"x1\", masterX + 190 / 2).attr(\"y1\", masterY + maxTaskHeight).attr(\"x2\", masterX + 190 / 2).attr(\n \"y2\",\n masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120\n ).attr(\"stroke-width\", 2).attr(\"stroke\", \"black\").attr(\"marker-end\", \"url(#arrowhead)\").attr(\"stroke-dasharray\", \"5,5\");\n }\n masterX = masterX + 200;\n if (isWithoutSections && !((_a = conf.timeline) == null ? void 0 : _a.disableMulticolor)) {\n sectionColor++;\n }\n }\n masterY = masterY - 10;\n};\nconst drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf) {\n let maxEventHeight = 0;\n const eventBeginY = masterY;\n masterY = masterY + 100;\n for (const event of events) {\n const eventNode = {\n descr: event,\n section: sectionColor,\n number: sectionColor,\n width: 150,\n padding: 20,\n maxHeight: 50\n };\n log.debug(\"eventNode\", eventNode);\n const eventWrapper = diagram2.append(\"g\").attr(\"class\", \"eventWrapper\");\n const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf);\n const eventHeight = node.height;\n maxEventHeight = maxEventHeight + eventHeight;\n eventWrapper.attr(\"transform\", `translate(${masterX}, ${masterY})`);\n masterY = masterY + 10 + eventHeight;\n }\n masterY = eventBeginY;\n return maxEventHeight;\n};\nconst renderer = {\n setConf: () => {\n },\n draw\n};\nconst genSections = (options) => {\n let sections2 = \"\";\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n options[\"lineColor\" + i] = options[\"lineColor\" + i] || options[\"cScaleInv\" + i];\n if (isDark(options[\"lineColor\" + i])) {\n options[\"lineColor\" + i] = lighten(options[\"lineColor\" + i], 20);\n } else {\n options[\"lineColor\" + i] = darken(options[\"lineColor\" + i], 20);\n }\n }\n for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {\n const sw = \"\" + (17 - 3 * i);\n sections2 += `\n .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path {\n fill: ${options[\"cScale\" + i]};\n }\n .section-${i - 1} text {\n fill: ${options[\"cScaleLabel\" + i]};\n }\n .node-icon-${i - 1} {\n font-size: 40px;\n color: ${options[\"cScaleLabel\" + i]};\n }\n .section-edge-${i - 1}{\n stroke: ${options[\"cScale\" + i]};\n }\n .edge-depth-${i - 1}{\n stroke-width: ${sw};\n }\n .section-${i - 1} line {\n stroke: ${options[\"cScaleInv\" + i]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${options[\"cScaleLabel\" + i]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `;\n }\n return sections2;\n};\nconst getStyles = (options) => `\n .edge {\n stroke-width: 3;\n }\n ${genSections(options)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${options.git0};\n }\n .section-root text {\n fill: ${options.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`;\nconst styles = getStyles;\nconst diagram = {\n db,\n renderer,\n parser: parser$1,\n styles\n};\nexport {\n diagram\n};\n"], - "mappings": "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", - "names": ["clear"] -} diff --git a/.vuepress/.cache/deps/vue-router.js b/.vuepress/.cache/deps/vue-router.js deleted file mode 100644 index 5d501536d..000000000 --- a/.vuepress/.cache/deps/vue-router.js +++ /dev/null @@ -1,2668 +0,0 @@ -import { - setupDevtoolsPlugin -} from "./chunk-J4VLYDXT.js"; -import { - computed, - defineComponent, - getCurrentInstance, - h, - inject, - nextTick, - onActivated, - onDeactivated, - onUnmounted, - provide, - reactive, - ref, - shallowReactive, - shallowRef, - unref, - watch, - watchEffect -} from "./chunk-OQPQLNES.js"; -import "./chunk-F6L62Q4Q.js"; -import "./chunk-3EJPJMEH.js"; - -// node_modules/vue-router/dist/vue-router.mjs -var isBrowser = typeof window !== "undefined"; -function isESModule(obj) { - return obj.__esModule || obj[Symbol.toStringTag] === "Module"; -} -var assign = Object.assign; -function applyToParams(fn, params) { - const newParams = {}; - for (const key in params) { - const value = params[key]; - newParams[key] = isArray(value) ? value.map(fn) : fn(value); - } - return newParams; -} -var noop = () => { -}; -var isArray = Array.isArray; -function warn(msg) { - const args = Array.from(arguments).slice(1); - console.warn.apply(console, ["[Vue Router warn]: " + msg].concat(args)); -} -var TRAILING_SLASH_RE = /\/$/; -var removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, ""); -function parseURL(parseQuery2, location2, currentLocation = "/") { - let path, query = {}, searchString = "", hash = ""; - const hashPos = location2.indexOf("#"); - let searchPos = location2.indexOf("?"); - if (hashPos < searchPos && hashPos >= 0) { - searchPos = -1; - } - if (searchPos > -1) { - path = location2.slice(0, searchPos); - searchString = location2.slice(searchPos + 1, hashPos > -1 ? hashPos : location2.length); - query = parseQuery2(searchString); - } - if (hashPos > -1) { - path = path || location2.slice(0, hashPos); - hash = location2.slice(hashPos, location2.length); - } - path = resolveRelativePath(path != null ? path : location2, currentLocation); - return { - fullPath: path + (searchString && "?") + searchString + hash, - path, - query, - hash - }; -} -function stringifyURL(stringifyQuery2, location2) { - const query = location2.query ? stringifyQuery2(location2.query) : ""; - return location2.path + (query && "?") + query + (location2.hash || ""); -} -function stripBase(pathname, base) { - if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) - return pathname; - return pathname.slice(base.length) || "/"; -} -function isSameRouteLocation(stringifyQuery2, a, b) { - const aLastIndex = a.matched.length - 1; - const bLastIndex = b.matched.length - 1; - return aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery2(a.query) === stringifyQuery2(b.query) && a.hash === b.hash; -} -function isSameRouteRecord(a, b) { - return (a.aliasOf || a) === (b.aliasOf || b); -} -function isSameRouteLocationParams(a, b) { - if (Object.keys(a).length !== Object.keys(b).length) - return false; - for (const key in a) { - if (!isSameRouteLocationParamsValue(a[key], b[key])) - return false; - } - return true; -} -function isSameRouteLocationParamsValue(a, b) { - return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b; -} -function isEquivalentArray(a, b) { - return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b; -} -function resolveRelativePath(to, from) { - if (to.startsWith("/")) - return to; - if (!from.startsWith("/")) { - warn(`Cannot resolve a relative location without an absolute path. Trying to resolve "${to}" from "${from}". It should look like "/${from}".`); - return to; - } - if (!to) - return from; - const fromSegments = from.split("/"); - const toSegments = to.split("/"); - const lastToSegment = toSegments[toSegments.length - 1]; - if (lastToSegment === ".." || lastToSegment === ".") { - toSegments.push(""); - } - let position = fromSegments.length - 1; - let toPosition; - let segment; - for (toPosition = 0; toPosition < toSegments.length; toPosition++) { - segment = toSegments[toPosition]; - if (segment === ".") - continue; - if (segment === "..") { - if (position > 1) - position--; - } else - break; - } - return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition - (toPosition === toSegments.length ? 1 : 0)).join("/"); -} -var NavigationType; -(function(NavigationType2) { - NavigationType2["pop"] = "pop"; - NavigationType2["push"] = "push"; -})(NavigationType || (NavigationType = {})); -var NavigationDirection; -(function(NavigationDirection2) { - NavigationDirection2["back"] = "back"; - NavigationDirection2["forward"] = "forward"; - NavigationDirection2["unknown"] = ""; -})(NavigationDirection || (NavigationDirection = {})); -var START = ""; -function normalizeBase(base) { - if (!base) { - if (isBrowser) { - const baseEl = document.querySelector("base"); - base = baseEl && baseEl.getAttribute("href") || "/"; - base = base.replace(/^\w+:\/\/[^\/]+/, ""); - } else { - base = "/"; - } - } - if (base[0] !== "/" && base[0] !== "#") - base = "/" + base; - return removeTrailingSlash(base); -} -var BEFORE_HASH_RE = /^[^#]+#/; -function createHref(base, location2) { - return base.replace(BEFORE_HASH_RE, "#") + location2; -} -function getElementPosition(el, offset) { - const docRect = document.documentElement.getBoundingClientRect(); - const elRect = el.getBoundingClientRect(); - return { - behavior: offset.behavior, - left: elRect.left - docRect.left - (offset.left || 0), - top: elRect.top - docRect.top - (offset.top || 0) - }; -} -var computeScrollPosition = () => ({ - left: window.pageXOffset, - top: window.pageYOffset -}); -function scrollToPosition(position) { - let scrollToOptions; - if ("el" in position) { - const positionEl = position.el; - const isIdSelector = typeof positionEl === "string" && positionEl.startsWith("#"); - if (typeof position.el === "string") { - if (!isIdSelector || !document.getElementById(position.el.slice(1))) { - try { - const foundEl = document.querySelector(position.el); - if (isIdSelector && foundEl) { - warn(`The selector "${position.el}" should be passed as "el: document.querySelector('${position.el}')" because it starts with "#".`); - return; - } - } catch (err) { - warn(`The selector "${position.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`); - return; - } - } - } - const el = typeof positionEl === "string" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl; - if (!el) { - warn(`Couldn't find element using selector "${position.el}" returned by scrollBehavior.`); - return; - } - scrollToOptions = getElementPosition(el, position); - } else { - scrollToOptions = position; - } - if ("scrollBehavior" in document.documentElement.style) - window.scrollTo(scrollToOptions); - else { - window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset); - } -} -function getScrollKey(path, delta) { - const position = history.state ? history.state.position - delta : -1; - return position + path; -} -var scrollPositions = /* @__PURE__ */ new Map(); -function saveScrollPosition(key, scrollPosition) { - scrollPositions.set(key, scrollPosition); -} -function getSavedScrollPosition(key) { - const scroll = scrollPositions.get(key); - scrollPositions.delete(key); - return scroll; -} -var createBaseLocation = () => location.protocol + "//" + location.host; -function createCurrentLocation(base, location2) { - const { pathname, search, hash } = location2; - const hashPos = base.indexOf("#"); - if (hashPos > -1) { - let slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1; - let pathFromHash = hash.slice(slicePos); - if (pathFromHash[0] !== "/") - pathFromHash = "/" + pathFromHash; - return stripBase(pathFromHash, ""); - } - const path = stripBase(pathname, base); - return path + search + hash; -} -function useHistoryListeners(base, historyState, currentLocation, replace) { - let listeners = []; - let teardowns = []; - let pauseState = null; - const popStateHandler = ({ state }) => { - const to = createCurrentLocation(base, location); - const from = currentLocation.value; - const fromState = historyState.value; - let delta = 0; - if (state) { - currentLocation.value = to; - historyState.value = state; - if (pauseState && pauseState === from) { - pauseState = null; - return; - } - delta = fromState ? state.position - fromState.position : 0; - } else { - replace(to); - } - listeners.forEach((listener) => { - listener(currentLocation.value, from, { - delta, - type: NavigationType.pop, - direction: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown - }); - }); - }; - function pauseListeners() { - pauseState = currentLocation.value; - } - function listen(callback) { - listeners.push(callback); - const teardown = () => { - const index = listeners.indexOf(callback); - if (index > -1) - listeners.splice(index, 1); - }; - teardowns.push(teardown); - return teardown; - } - function beforeUnloadListener() { - const { history: history2 } = window; - if (!history2.state) - return; - history2.replaceState(assign({}, history2.state, { scroll: computeScrollPosition() }), ""); - } - function destroy() { - for (const teardown of teardowns) - teardown(); - teardowns = []; - window.removeEventListener("popstate", popStateHandler); - window.removeEventListener("beforeunload", beforeUnloadListener); - } - window.addEventListener("popstate", popStateHandler); - window.addEventListener("beforeunload", beforeUnloadListener, { - passive: true - }); - return { - pauseListeners, - listen, - destroy - }; -} -function buildState(back, current, forward, replaced = false, computeScroll = false) { - return { - back, - current, - forward, - replaced, - position: window.history.length, - scroll: computeScroll ? computeScrollPosition() : null - }; -} -function useHistoryStateNavigation(base) { - const { history: history2, location: location2 } = window; - const currentLocation = { - value: createCurrentLocation(base, location2) - }; - const historyState = { value: history2.state }; - if (!historyState.value) { - changeLocation(currentLocation.value, { - back: null, - current: currentLocation.value, - forward: null, - // the length is off by one, we need to decrease it - position: history2.length - 1, - replaced: true, - // don't add a scroll as the user may have an anchor, and we want - // scrollBehavior to be triggered without a saved position - scroll: null - }, true); - } - function changeLocation(to, state, replace2) { - const hashIndex = base.indexOf("#"); - const url = hashIndex > -1 ? (location2.host && document.querySelector("base") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to; - try { - history2[replace2 ? "replaceState" : "pushState"](state, "", url); - historyState.value = state; - } catch (err) { - if (true) { - warn("Error with push/replace State", err); - } else { - console.error(err); - } - location2[replace2 ? "replace" : "assign"](url); - } - } - function replace(to, data) { - const state = assign({}, history2.state, buildState( - historyState.value.back, - // keep back and forward entries but override current position - to, - historyState.value.forward, - true - ), data, { position: historyState.value.position }); - changeLocation(to, state, true); - currentLocation.value = to; - } - function push(to, data) { - const currentState = assign( - {}, - // use current history state to gracefully handle a wrong call to - // history.replaceState - // https://github.com/vuejs/router/issues/366 - historyState.value, - history2.state, - { - forward: to, - scroll: computeScrollPosition() - } - ); - if (!history2.state) { - warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState: - -history.replaceState(history.state, '', url) - -You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`); - } - changeLocation(currentState.current, currentState, true); - const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data); - changeLocation(to, state, false); - currentLocation.value = to; - } - return { - location: currentLocation, - state: historyState, - push, - replace - }; -} -function createWebHistory(base) { - base = normalizeBase(base); - const historyNavigation = useHistoryStateNavigation(base); - const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace); - function go(delta, triggerListeners = true) { - if (!triggerListeners) - historyListeners.pauseListeners(); - history.go(delta); - } - const routerHistory = assign({ - // it's overridden right after - location: "", - base, - go, - createHref: createHref.bind(null, base) - }, historyNavigation, historyListeners); - Object.defineProperty(routerHistory, "location", { - enumerable: true, - get: () => historyNavigation.location.value - }); - Object.defineProperty(routerHistory, "state", { - enumerable: true, - get: () => historyNavigation.state.value - }); - return routerHistory; -} -function createMemoryHistory(base = "") { - let listeners = []; - let queue = [START]; - let position = 0; - base = normalizeBase(base); - function setLocation(location2) { - position++; - if (position !== queue.length) { - queue.splice(position); - } - queue.push(location2); - } - function triggerListeners(to, from, { direction, delta }) { - const info = { - direction, - delta, - type: NavigationType.pop - }; - for (const callback of listeners) { - callback(to, from, info); - } - } - const routerHistory = { - // rewritten by Object.defineProperty - location: START, - // TODO: should be kept in queue - state: {}, - base, - createHref: createHref.bind(null, base), - replace(to) { - queue.splice(position--, 1); - setLocation(to); - }, - push(to, data) { - setLocation(to); - }, - listen(callback) { - listeners.push(callback); - return () => { - const index = listeners.indexOf(callback); - if (index > -1) - listeners.splice(index, 1); - }; - }, - destroy() { - listeners = []; - queue = [START]; - position = 0; - }, - go(delta, shouldTrigger = true) { - const from = this.location; - const direction = ( - // we are considering delta === 0 going forward, but in abstract mode - // using 0 for the delta doesn't make sense like it does in html5 where - // it reloads the page - delta < 0 ? NavigationDirection.back : NavigationDirection.forward - ); - position = Math.max(0, Math.min(position + delta, queue.length - 1)); - if (shouldTrigger) { - triggerListeners(this.location, from, { - direction, - delta - }); - } - } - }; - Object.defineProperty(routerHistory, "location", { - enumerable: true, - get: () => queue[position] - }); - return routerHistory; -} -function createWebHashHistory(base) { - base = location.host ? base || location.pathname + location.search : ""; - if (!base.includes("#")) - base += "#"; - if (!base.endsWith("#/") && !base.endsWith("#")) { - warn(`A hash base must end with a "#": -"${base}" should be "${base.replace(/#.*$/, "#")}".`); - } - return createWebHistory(base); -} -function isRouteLocation(route) { - return typeof route === "string" || route && typeof route === "object"; -} -function isRouteName(name) { - return typeof name === "string" || typeof name === "symbol"; -} -var START_LOCATION_NORMALIZED = { - path: "/", - name: void 0, - params: {}, - query: {}, - hash: "", - fullPath: "/", - matched: [], - meta: {}, - redirectedFrom: void 0 -}; -var NavigationFailureSymbol = Symbol(true ? "navigation failure" : ""); -var NavigationFailureType; -(function(NavigationFailureType2) { - NavigationFailureType2[NavigationFailureType2["aborted"] = 4] = "aborted"; - NavigationFailureType2[NavigationFailureType2["cancelled"] = 8] = "cancelled"; - NavigationFailureType2[NavigationFailureType2["duplicated"] = 16] = "duplicated"; -})(NavigationFailureType || (NavigationFailureType = {})); -var ErrorTypeMessages = { - [ - 1 - /* ErrorTypes.MATCHER_NOT_FOUND */ - ]({ location: location2, currentLocation }) { - return `No match for - ${JSON.stringify(location2)}${currentLocation ? "\nwhile being at\n" + JSON.stringify(currentLocation) : ""}`; - }, - [ - 2 - /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ - ]({ from, to }) { - return `Redirected from "${from.fullPath}" to "${stringifyRoute(to)}" via a navigation guard.`; - }, - [ - 4 - /* ErrorTypes.NAVIGATION_ABORTED */ - ]({ from, to }) { - return `Navigation aborted from "${from.fullPath}" to "${to.fullPath}" via a navigation guard.`; - }, - [ - 8 - /* ErrorTypes.NAVIGATION_CANCELLED */ - ]({ from, to }) { - return `Navigation cancelled from "${from.fullPath}" to "${to.fullPath}" with a new navigation.`; - }, - [ - 16 - /* ErrorTypes.NAVIGATION_DUPLICATED */ - ]({ from, to }) { - return `Avoided redundant navigation to current location: "${from.fullPath}".`; - } -}; -function createRouterError(type, params) { - if (true) { - return assign(new Error(ErrorTypeMessages[type](params)), { - type, - [NavigationFailureSymbol]: true - }, params); - } else { - return assign(new Error(), { - type, - [NavigationFailureSymbol]: true - }, params); - } -} -function isNavigationFailure(error, type) { - return error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type)); -} -var propertiesToLog = ["params", "query", "hash"]; -function stringifyRoute(to) { - if (typeof to === "string") - return to; - if ("path" in to) - return to.path; - const location2 = {}; - for (const key of propertiesToLog) { - if (key in to) - location2[key] = to[key]; - } - return JSON.stringify(location2, null, 2); -} -var BASE_PARAM_PATTERN = "[^/]+?"; -var BASE_PATH_PARSER_OPTIONS = { - sensitive: false, - strict: false, - start: true, - end: true -}; -var REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g; -function tokensToParser(segments, extraOptions) { - const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions); - const score = []; - let pattern = options.start ? "^" : ""; - const keys = []; - for (const segment of segments) { - const segmentScores = segment.length ? [] : [ - 90 - /* PathScore.Root */ - ]; - if (options.strict && !segment.length) - pattern += "/"; - for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) { - const token = segment[tokenIndex]; - let subSegmentScore = 40 + (options.sensitive ? 0.25 : 0); - if (token.type === 0) { - if (!tokenIndex) - pattern += "/"; - pattern += token.value.replace(REGEX_CHARS_RE, "\\$&"); - subSegmentScore += 40; - } else if (token.type === 1) { - const { value, repeatable, optional, regexp } = token; - keys.push({ - name: value, - repeatable, - optional - }); - const re2 = regexp ? regexp : BASE_PARAM_PATTERN; - if (re2 !== BASE_PARAM_PATTERN) { - subSegmentScore += 10; - try { - new RegExp(`(${re2})`); - } catch (err) { - throw new Error(`Invalid custom RegExp for param "${value}" (${re2}): ` + err.message); - } - } - let subPattern = repeatable ? `((?:${re2})(?:/(?:${re2}))*)` : `(${re2})`; - if (!tokenIndex) - subPattern = // avoid an optional / if there are more segments e.g. /:p?-static - // or /:p?-:p2 - optional && segment.length < 2 ? `(?:/${subPattern})` : "/" + subPattern; - if (optional) - subPattern += "?"; - pattern += subPattern; - subSegmentScore += 20; - if (optional) - subSegmentScore += -8; - if (repeatable) - subSegmentScore += -20; - if (re2 === ".*") - subSegmentScore += -50; - } - segmentScores.push(subSegmentScore); - } - score.push(segmentScores); - } - if (options.strict && options.end) { - const i = score.length - 1; - score[i][score[i].length - 1] += 0.7000000000000001; - } - if (!options.strict) - pattern += "/?"; - if (options.end) - pattern += "$"; - else if (options.strict) - pattern += "(?:/|$)"; - const re = new RegExp(pattern, options.sensitive ? "" : "i"); - function parse(path) { - const match = path.match(re); - const params = {}; - if (!match) - return null; - for (let i = 1; i < match.length; i++) { - const value = match[i] || ""; - const key = keys[i - 1]; - params[key.name] = value && key.repeatable ? value.split("/") : value; - } - return params; - } - function stringify(params) { - let path = ""; - let avoidDuplicatedSlash = false; - for (const segment of segments) { - if (!avoidDuplicatedSlash || !path.endsWith("/")) - path += "/"; - avoidDuplicatedSlash = false; - for (const token of segment) { - if (token.type === 0) { - path += token.value; - } else if (token.type === 1) { - const { value, repeatable, optional } = token; - const param = value in params ? params[value] : ""; - if (isArray(param) && !repeatable) { - throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`); - } - const text = isArray(param) ? param.join("/") : param; - if (!text) { - if (optional) { - if (segment.length < 2) { - if (path.endsWith("/")) - path = path.slice(0, -1); - else - avoidDuplicatedSlash = true; - } - } else - throw new Error(`Missing required param "${value}"`); - } - path += text; - } - } - } - return path || "/"; - } - return { - re, - score, - keys, - parse, - stringify - }; -} -function compareScoreArray(a, b) { - let i = 0; - while (i < a.length && i < b.length) { - const diff = b[i] - a[i]; - if (diff) - return diff; - i++; - } - if (a.length < b.length) { - return a.length === 1 && a[0] === 40 + 40 ? -1 : 1; - } else if (a.length > b.length) { - return b.length === 1 && b[0] === 40 + 40 ? 1 : -1; - } - return 0; -} -function comparePathParserScore(a, b) { - let i = 0; - const aScore = a.score; - const bScore = b.score; - while (i < aScore.length && i < bScore.length) { - const comp = compareScoreArray(aScore[i], bScore[i]); - if (comp) - return comp; - i++; - } - if (Math.abs(bScore.length - aScore.length) === 1) { - if (isLastScoreNegative(aScore)) - return 1; - if (isLastScoreNegative(bScore)) - return -1; - } - return bScore.length - aScore.length; -} -function isLastScoreNegative(score) { - const last = score[score.length - 1]; - return score.length > 0 && last[last.length - 1] < 0; -} -var ROOT_TOKEN = { - type: 0, - value: "" -}; -var VALID_PARAM_RE = /[a-zA-Z0-9_]/; -function tokenizePath(path) { - if (!path) - return [[]]; - if (path === "/") - return [[ROOT_TOKEN]]; - if (!path.startsWith("/")) { - throw new Error(true ? `Route paths should start with a "/": "${path}" should be "/${path}".` : `Invalid path "${path}"`); - } - function crash(message) { - throw new Error(`ERR (${state})/"${buffer}": ${message}`); - } - let state = 0; - let previousState = state; - const tokens = []; - let segment; - function finalizeSegment() { - if (segment) - tokens.push(segment); - segment = []; - } - let i = 0; - let char; - let buffer = ""; - let customRe = ""; - function consumeBuffer() { - if (!buffer) - return; - if (state === 0) { - segment.push({ - type: 0, - value: buffer - }); - } else if (state === 1 || state === 2 || state === 3) { - if (segment.length > 1 && (char === "*" || char === "+")) - crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`); - segment.push({ - type: 1, - value: buffer, - regexp: customRe, - repeatable: char === "*" || char === "+", - optional: char === "*" || char === "?" - }); - } else { - crash("Invalid state to consume buffer"); - } - buffer = ""; - } - function addCharToBuffer() { - buffer += char; - } - while (i < path.length) { - char = path[i++]; - if (char === "\\" && state !== 2) { - previousState = state; - state = 4; - continue; - } - switch (state) { - case 0: - if (char === "/") { - if (buffer) { - consumeBuffer(); - } - finalizeSegment(); - } else if (char === ":") { - consumeBuffer(); - state = 1; - } else { - addCharToBuffer(); - } - break; - case 4: - addCharToBuffer(); - state = previousState; - break; - case 1: - if (char === "(") { - state = 2; - } else if (VALID_PARAM_RE.test(char)) { - addCharToBuffer(); - } else { - consumeBuffer(); - state = 0; - if (char !== "*" && char !== "?" && char !== "+") - i--; - } - break; - case 2: - if (char === ")") { - if (customRe[customRe.length - 1] == "\\") - customRe = customRe.slice(0, -1) + char; - else - state = 3; - } else { - customRe += char; - } - break; - case 3: - consumeBuffer(); - state = 0; - if (char !== "*" && char !== "?" && char !== "+") - i--; - customRe = ""; - break; - default: - crash("Unknown state"); - break; - } - } - if (state === 2) - crash(`Unfinished custom RegExp for param "${buffer}"`); - consumeBuffer(); - finalizeSegment(); - return tokens; -} -function createRouteRecordMatcher(record, parent, options) { - const parser = tokensToParser(tokenizePath(record.path), options); - if (true) { - const existingKeys = /* @__PURE__ */ new Set(); - for (const key of parser.keys) { - if (existingKeys.has(key.name)) - warn(`Found duplicated params with name "${key.name}" for path "${record.path}". Only the last one will be available on "$route.params".`); - existingKeys.add(key.name); - } - } - const matcher = assign(parser, { - record, - parent, - // these needs to be populated by the parent - children: [], - alias: [] - }); - if (parent) { - if (!matcher.record.aliasOf === !parent.record.aliasOf) - parent.children.push(matcher); - } - return matcher; -} -function createRouterMatcher(routes, globalOptions) { - const matchers = []; - const matcherMap = /* @__PURE__ */ new Map(); - globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions); - function getRecordMatcher(name) { - return matcherMap.get(name); - } - function addRoute(record, parent, originalRecord) { - const isRootAdd = !originalRecord; - const mainNormalizedRecord = normalizeRouteRecord(record); - if (true) { - checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent); - } - mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record; - const options = mergeOptions(globalOptions, record); - const normalizedRecords = [ - mainNormalizedRecord - ]; - if ("alias" in record) { - const aliases = typeof record.alias === "string" ? [record.alias] : record.alias; - for (const alias of aliases) { - normalizedRecords.push(assign({}, mainNormalizedRecord, { - // this allows us to hold a copy of the `components` option - // so that async components cache is hold on the original record - components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components, - path: alias, - // we might be the child of an alias - aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord - // the aliases are always of the same kind as the original since they - // are defined on the same record - })); - } - } - let matcher; - let originalMatcher; - for (const normalizedRecord of normalizedRecords) { - const { path } = normalizedRecord; - if (parent && path[0] !== "/") { - const parentPath = parent.record.path; - const connectingSlash = parentPath[parentPath.length - 1] === "/" ? "" : "/"; - normalizedRecord.path = parent.record.path + (path && connectingSlash + path); - } - if (normalizedRecord.path === "*") { - throw new Error('Catch all routes ("*") must now be defined using a param with a custom regexp.\nSee more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.'); - } - matcher = createRouteRecordMatcher(normalizedRecord, parent, options); - if (parent && path[0] === "/") - checkMissingParamsInAbsolutePath(matcher, parent); - if (originalRecord) { - originalRecord.alias.push(matcher); - if (true) { - checkSameParams(originalRecord, matcher); - } - } else { - originalMatcher = originalMatcher || matcher; - if (originalMatcher !== matcher) - originalMatcher.alias.push(matcher); - if (isRootAdd && record.name && !isAliasRecord(matcher)) - removeRoute(record.name); - } - if (mainNormalizedRecord.children) { - const children = mainNormalizedRecord.children; - for (let i = 0; i < children.length; i++) { - addRoute(children[i], matcher, originalRecord && originalRecord.children[i]); - } - } - originalRecord = originalRecord || matcher; - if (matcher.record.components && Object.keys(matcher.record.components).length || matcher.record.name || matcher.record.redirect) { - insertMatcher(matcher); - } - } - return originalMatcher ? () => { - removeRoute(originalMatcher); - } : noop; - } - function removeRoute(matcherRef) { - if (isRouteName(matcherRef)) { - const matcher = matcherMap.get(matcherRef); - if (matcher) { - matcherMap.delete(matcherRef); - matchers.splice(matchers.indexOf(matcher), 1); - matcher.children.forEach(removeRoute); - matcher.alias.forEach(removeRoute); - } - } else { - const index = matchers.indexOf(matcherRef); - if (index > -1) { - matchers.splice(index, 1); - if (matcherRef.record.name) - matcherMap.delete(matcherRef.record.name); - matcherRef.children.forEach(removeRoute); - matcherRef.alias.forEach(removeRoute); - } - } - } - function getRoutes() { - return matchers; - } - function insertMatcher(matcher) { - let i = 0; - while (i < matchers.length && comparePathParserScore(matcher, matchers[i]) >= 0 && // Adding children with empty path should still appear before the parent - // https://github.com/vuejs/router/issues/1124 - (matcher.record.path !== matchers[i].record.path || !isRecordChildOf(matcher, matchers[i]))) - i++; - matchers.splice(i, 0, matcher); - if (matcher.record.name && !isAliasRecord(matcher)) - matcherMap.set(matcher.record.name, matcher); - } - function resolve(location2, currentLocation) { - let matcher; - let params = {}; - let path; - let name; - if ("name" in location2 && location2.name) { - matcher = matcherMap.get(location2.name); - if (!matcher) - throw createRouterError(1, { - location: location2 - }); - if (true) { - const invalidParams = Object.keys(location2.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName)); - if (invalidParams.length) { - warn(`Discarded invalid param(s) "${invalidParams.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`); - } - } - name = matcher.record.name; - params = assign( - // paramsFromLocation is a new object - paramsFromLocation( - currentLocation.params, - // only keep params that exist in the resolved location - // TODO: only keep optional params coming from a parent record - matcher.keys.filter((k) => !k.optional).map((k) => k.name) - ), - // discard any existing params in the current location that do not exist here - // #1497 this ensures better active/exact matching - location2.params && paramsFromLocation(location2.params, matcher.keys.map((k) => k.name)) - ); - path = matcher.stringify(params); - } else if ("path" in location2) { - path = location2.path; - if (!path.startsWith("/")) { - warn(`The Matcher cannot resolve relative paths but received "${path}". Unless you directly called \`matcher.resolve("${path}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`); - } - matcher = matchers.find((m) => m.re.test(path)); - if (matcher) { - params = matcher.parse(path); - name = matcher.record.name; - } - } else { - matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path)); - if (!matcher) - throw createRouterError(1, { - location: location2, - currentLocation - }); - name = matcher.record.name; - params = assign({}, currentLocation.params, location2.params); - path = matcher.stringify(params); - } - const matched = []; - let parentMatcher = matcher; - while (parentMatcher) { - matched.unshift(parentMatcher.record); - parentMatcher = parentMatcher.parent; - } - return { - name, - path, - params, - matched, - meta: mergeMetaFields(matched) - }; - } - routes.forEach((route) => addRoute(route)); - return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher }; -} -function paramsFromLocation(params, keys) { - const newParams = {}; - for (const key of keys) { - if (key in params) - newParams[key] = params[key]; - } - return newParams; -} -function normalizeRouteRecord(record) { - return { - path: record.path, - redirect: record.redirect, - name: record.name, - meta: record.meta || {}, - aliasOf: void 0, - beforeEnter: record.beforeEnter, - props: normalizeRecordProps(record), - children: record.children || [], - instances: {}, - leaveGuards: /* @__PURE__ */ new Set(), - updateGuards: /* @__PURE__ */ new Set(), - enterCallbacks: {}, - components: "components" in record ? record.components || null : record.component && { default: record.component } - }; -} -function normalizeRecordProps(record) { - const propsObject = {}; - const props = record.props || false; - if ("component" in record) { - propsObject.default = props; - } else { - for (const name in record.components) - propsObject[name] = typeof props === "object" ? props[name] : props; - } - return propsObject; -} -function isAliasRecord(record) { - while (record) { - if (record.record.aliasOf) - return true; - record = record.parent; - } - return false; -} -function mergeMetaFields(matched) { - return matched.reduce((meta, record) => assign(meta, record.meta), {}); -} -function mergeOptions(defaults, partialOptions) { - const options = {}; - for (const key in defaults) { - options[key] = key in partialOptions ? partialOptions[key] : defaults[key]; - } - return options; -} -function isSameParam(a, b) { - return a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable; -} -function checkSameParams(a, b) { - for (const key of a.keys) { - if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) - return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); - } - for (const key of b.keys) { - if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) - return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); - } -} -function checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) { - if (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) { - warn(`The route named "${String(parent.record.name)}" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`); - } -} -function checkMissingParamsInAbsolutePath(record, parent) { - for (const key of parent.keys) { - if (!record.keys.find(isSameParam.bind(null, key))) - return warn(`Absolute path "${record.record.path}" must have the exact same param named "${key.name}" as its parent "${parent.record.path}".`); - } -} -function isRecordChildOf(record, parent) { - return parent.children.some((child) => child === record || isRecordChildOf(record, child)); -} -var HASH_RE = /#/g; -var AMPERSAND_RE = /&/g; -var SLASH_RE = /\//g; -var EQUAL_RE = /=/g; -var IM_RE = /\?/g; -var PLUS_RE = /\+/g; -var ENC_BRACKET_OPEN_RE = /%5B/g; -var ENC_BRACKET_CLOSE_RE = /%5D/g; -var ENC_CARET_RE = /%5E/g; -var ENC_BACKTICK_RE = /%60/g; -var ENC_CURLY_OPEN_RE = /%7B/g; -var ENC_PIPE_RE = /%7C/g; -var ENC_CURLY_CLOSE_RE = /%7D/g; -var ENC_SPACE_RE = /%20/g; -function commonEncode(text) { - return encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]"); -} -function encodeHash(text) { - return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); -} -function encodeQueryValue(text) { - return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); -} -function encodeQueryKey(text) { - return encodeQueryValue(text).replace(EQUAL_RE, "%3D"); -} -function encodePath(text) { - return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F"); -} -function encodeParam(text) { - return text == null ? "" : encodePath(text).replace(SLASH_RE, "%2F"); -} -function decode(text) { - try { - return decodeURIComponent("" + text); - } catch (err) { - warn(`Error decoding "${text}". Using original value`); - } - return "" + text; -} -function parseQuery(search) { - const query = {}; - if (search === "" || search === "?") - return query; - const hasLeadingIM = search[0] === "?"; - const searchParams = (hasLeadingIM ? search.slice(1) : search).split("&"); - for (let i = 0; i < searchParams.length; ++i) { - const searchParam = searchParams[i].replace(PLUS_RE, " "); - const eqPos = searchParam.indexOf("="); - const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos)); - const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1)); - if (key in query) { - let currentValue = query[key]; - if (!isArray(currentValue)) { - currentValue = query[key] = [currentValue]; - } - currentValue.push(value); - } else { - query[key] = value; - } - } - return query; -} -function stringifyQuery(query) { - let search = ""; - for (let key in query) { - const value = query[key]; - key = encodeQueryKey(key); - if (value == null) { - if (value !== void 0) { - search += (search.length ? "&" : "") + key; - } - continue; - } - const values = isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]; - values.forEach((value2) => { - if (value2 !== void 0) { - search += (search.length ? "&" : "") + key; - if (value2 != null) - search += "=" + value2; - } - }); - } - return search; -} -function normalizeQuery(query) { - const normalizedQuery = {}; - for (const key in query) { - const value = query[key]; - if (value !== void 0) { - normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : "" + v) : value == null ? value : "" + value; - } - } - return normalizedQuery; -} -var matchedRouteKey = Symbol(true ? "router view location matched" : ""); -var viewDepthKey = Symbol(true ? "router view depth" : ""); -var routerKey = Symbol(true ? "router" : ""); -var routeLocationKey = Symbol(true ? "route location" : ""); -var routerViewLocationKey = Symbol(true ? "router view location" : ""); -function useCallbacks() { - let handlers = []; - function add(handler) { - handlers.push(handler); - return () => { - const i = handlers.indexOf(handler); - if (i > -1) - handlers.splice(i, 1); - }; - } - function reset() { - handlers = []; - } - return { - add, - list: () => handlers.slice(), - reset - }; -} -function registerGuard(record, name, guard) { - const removeFromList = () => { - record[name].delete(guard); - }; - onUnmounted(removeFromList); - onDeactivated(removeFromList); - onActivated(() => { - record[name].add(guard); - }); - record[name].add(guard); -} -function onBeforeRouteLeave(leaveGuard) { - if (!getCurrentInstance()) { - warn("getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function"); - return; - } - const activeRecord = inject( - matchedRouteKey, - // to avoid warning - {} - ).value; - if (!activeRecord) { - warn("No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"); - return; - } - registerGuard(activeRecord, "leaveGuards", leaveGuard); -} -function onBeforeRouteUpdate(updateGuard) { - if (!getCurrentInstance()) { - warn("getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function"); - return; - } - const activeRecord = inject( - matchedRouteKey, - // to avoid warning - {} - ).value; - if (!activeRecord) { - warn("No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"); - return; - } - registerGuard(activeRecord, "updateGuards", updateGuard); -} -function guardToPromiseFn(guard, to, from, record, name) { - const enterCallbackArray = record && // name is defined if record is because of the function overload - (record.enterCallbacks[name] = record.enterCallbacks[name] || []); - return () => new Promise((resolve, reject) => { - const next = (valid) => { - if (valid === false) { - reject(createRouterError(4, { - from, - to - })); - } else if (valid instanceof Error) { - reject(valid); - } else if (isRouteLocation(valid)) { - reject(createRouterError(2, { - from: to, - to: valid - })); - } else { - if (enterCallbackArray && // since enterCallbackArray is truthy, both record and name also are - record.enterCallbacks[name] === enterCallbackArray && typeof valid === "function") { - enterCallbackArray.push(valid); - } - resolve(); - } - }; - const guardReturn = guard.call(record && record.instances[name], to, from, true ? canOnlyBeCalledOnce(next, to, from) : next); - let guardCall = Promise.resolve(guardReturn); - if (guard.length < 3) - guardCall = guardCall.then(next); - if (guard.length > 2) { - const message = `The "next" callback was never called inside of ${guard.name ? '"' + guard.name + '"' : ""}: -${guard.toString()} -. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`; - if (typeof guardReturn === "object" && "then" in guardReturn) { - guardCall = guardCall.then((resolvedValue) => { - if (!next._called) { - warn(message); - return Promise.reject(new Error("Invalid navigation guard")); - } - return resolvedValue; - }); - } else if (guardReturn !== void 0) { - if (!next._called) { - warn(message); - reject(new Error("Invalid navigation guard")); - return; - } - } - } - guardCall.catch((err) => reject(err)); - }); -} -function canOnlyBeCalledOnce(next, to, from) { - let called = 0; - return function() { - if (called++ === 1) - warn(`The "next" callback was called more than once in one navigation guard when going from "${from.fullPath}" to "${to.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`); - next._called = true; - if (called === 1) - next.apply(null, arguments); - }; -} -function extractComponentsGuards(matched, guardType, to, from) { - const guards = []; - for (const record of matched) { - if (!record.components && !record.children.length) { - warn(`Record with path "${record.path}" is either missing a "component(s)" or "children" property.`); - } - for (const name in record.components) { - let rawComponent = record.components[name]; - if (true) { - if (!rawComponent || typeof rawComponent !== "object" && typeof rawComponent !== "function") { - warn(`Component "${name}" in record with path "${record.path}" is not a valid component. Received "${String(rawComponent)}".`); - throw new Error("Invalid route component"); - } else if ("then" in rawComponent) { - warn(`Component "${name}" in record with path "${record.path}" is a Promise instead of a function that returns a Promise. Did you write "import('./MyPage.vue')" instead of "() => import('./MyPage.vue')" ? This will break in production if not fixed.`); - const promise = rawComponent; - rawComponent = () => promise; - } else if (rawComponent.__asyncLoader && // warn only once per component - !rawComponent.__warnedDefineAsync) { - rawComponent.__warnedDefineAsync = true; - warn(`Component "${name}" in record with path "${record.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`); - } - } - if (guardType !== "beforeRouteEnter" && !record.instances[name]) - continue; - if (isRouteComponent(rawComponent)) { - const options = rawComponent.__vccOpts || rawComponent; - const guard = options[guardType]; - guard && guards.push(guardToPromiseFn(guard, to, from, record, name)); - } else { - let componentPromise = rawComponent(); - if (!("catch" in componentPromise)) { - warn(`Component "${name}" in record with path "${record.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`); - componentPromise = Promise.resolve(componentPromise); - } - guards.push(() => componentPromise.then((resolved) => { - if (!resolved) - return Promise.reject(new Error(`Couldn't resolve component "${name}" at "${record.path}"`)); - const resolvedComponent = isESModule(resolved) ? resolved.default : resolved; - record.components[name] = resolvedComponent; - const options = resolvedComponent.__vccOpts || resolvedComponent; - const guard = options[guardType]; - return guard && guardToPromiseFn(guard, to, from, record, name)(); - })); - } - } - } - return guards; -} -function isRouteComponent(component) { - return typeof component === "object" || "displayName" in component || "props" in component || "__vccOpts" in component; -} -function loadRouteLocation(route) { - return route.matched.every((record) => record.redirect) ? Promise.reject(new Error("Cannot load a route that redirects.")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => { - const rawComponent = record.components[name]; - if (typeof rawComponent === "function" && !("displayName" in rawComponent)) { - promises.push(rawComponent().then((resolved) => { - if (!resolved) - return Promise.reject(new Error(`Couldn't resolve component "${name}" at "${record.path}". Ensure you passed a function that returns a promise.`)); - const resolvedComponent = isESModule(resolved) ? resolved.default : resolved; - record.components[name] = resolvedComponent; - return; - })); - } - return promises; - }, [])))).then(() => route); -} -function useLink(props) { - const router = inject(routerKey); - const currentRoute = inject(routeLocationKey); - const route = computed(() => router.resolve(unref(props.to))); - const activeRecordIndex = computed(() => { - const { matched } = route.value; - const { length } = matched; - const routeMatched = matched[length - 1]; - const currentMatched = currentRoute.matched; - if (!routeMatched || !currentMatched.length) - return -1; - const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched)); - if (index > -1) - return index; - const parentRecordPath = getOriginalPath(matched[length - 2]); - return ( - // we are dealing with nested routes - length > 1 && // if the parent and matched route have the same path, this link is - // referring to the empty child. Or we currently are on a different - // child of the same parent - getOriginalPath(routeMatched) === parentRecordPath && // avoid comparing the child with its parent - currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index - ); - }); - const isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params)); - const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params)); - function navigate(e = {}) { - if (guardEvent(e)) { - return router[unref(props.replace) ? "replace" : "push"]( - unref(props.to) - // avoid uncaught errors are they are logged anyway - ).catch(noop); - } - return Promise.resolve(); - } - if (isBrowser) { - const instance = getCurrentInstance(); - if (instance) { - const linkContextDevtools = { - route: route.value, - isActive: isActive.value, - isExactActive: isExactActive.value - }; - instance.__vrl_devtools = instance.__vrl_devtools || []; - instance.__vrl_devtools.push(linkContextDevtools); - watchEffect(() => { - linkContextDevtools.route = route.value; - linkContextDevtools.isActive = isActive.value; - linkContextDevtools.isExactActive = isExactActive.value; - }, { flush: "post" }); - } - } - return { - route, - href: computed(() => route.value.href), - isActive, - isExactActive, - navigate - }; -} -var RouterLinkImpl = defineComponent({ - name: "RouterLink", - compatConfig: { MODE: 3 }, - props: { - to: { - type: [String, Object], - required: true - }, - replace: Boolean, - activeClass: String, - // inactiveClass: String, - exactActiveClass: String, - custom: Boolean, - ariaCurrentValue: { - type: String, - default: "page" - } - }, - useLink, - setup(props, { slots }) { - const link = reactive(useLink(props)); - const { options } = inject(routerKey); - const elClass = computed(() => ({ - [getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive, - // [getLinkClass( - // props.inactiveClass, - // options.linkInactiveClass, - // 'router-link-inactive' - // )]: !link.isExactActive, - [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive - })); - return () => { - const children = slots.default && slots.default(link); - return props.custom ? children : h("a", { - "aria-current": link.isExactActive ? props.ariaCurrentValue : null, - href: link.href, - // this would override user added attrs but Vue will still add - // the listener, so we end up triggering both - onClick: link.navigate, - class: elClass.value - }, children); - }; - } -}); -var RouterLink = RouterLinkImpl; -function guardEvent(e) { - if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) - return; - if (e.defaultPrevented) - return; - if (e.button !== void 0 && e.button !== 0) - return; - if (e.currentTarget && e.currentTarget.getAttribute) { - const target = e.currentTarget.getAttribute("target"); - if (/\b_blank\b/i.test(target)) - return; - } - if (e.preventDefault) - e.preventDefault(); - return true; -} -function includesParams(outer, inner) { - for (const key in inner) { - const innerValue = inner[key]; - const outerValue = outer[key]; - if (typeof innerValue === "string") { - if (innerValue !== outerValue) - return false; - } else { - if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i])) - return false; - } - } - return true; -} -function getOriginalPath(record) { - return record ? record.aliasOf ? record.aliasOf.path : record.path : ""; -} -var getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass; -var RouterViewImpl = defineComponent({ - name: "RouterView", - // #674 we manually inherit them - inheritAttrs: false, - props: { - name: { - type: String, - default: "default" - }, - route: Object - }, - // Better compat for @vue/compat users - // https://github.com/vuejs/router/issues/1315 - compatConfig: { MODE: 3 }, - setup(props, { attrs, slots }) { - warnDeprecatedUsage(); - const injectedRoute = inject(routerViewLocationKey); - const routeToDisplay = computed(() => props.route || injectedRoute.value); - const injectedDepth = inject(viewDepthKey, 0); - const depth = computed(() => { - let initialDepth = unref(injectedDepth); - const { matched } = routeToDisplay.value; - let matchedRoute; - while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) { - initialDepth++; - } - return initialDepth; - }); - const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]); - provide(viewDepthKey, computed(() => depth.value + 1)); - provide(matchedRouteKey, matchedRouteRef); - provide(routerViewLocationKey, routeToDisplay); - const viewRef = ref(); - watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => { - if (to) { - to.instances[name] = instance; - if (from && from !== to && instance && instance === oldInstance) { - if (!to.leaveGuards.size) { - to.leaveGuards = from.leaveGuards; - } - if (!to.updateGuards.size) { - to.updateGuards = from.updateGuards; - } - } - } - if (instance && to && // if there is no instance but to and from are the same this might be - // the first visit - (!from || !isSameRouteRecord(to, from) || !oldInstance)) { - (to.enterCallbacks[name] || []).forEach((callback) => callback(instance)); - } - }, { flush: "post" }); - return () => { - const route = routeToDisplay.value; - const currentName = props.name; - const matchedRoute = matchedRouteRef.value; - const ViewComponent = matchedRoute && matchedRoute.components[currentName]; - if (!ViewComponent) { - return normalizeSlot(slots.default, { Component: ViewComponent, route }); - } - const routePropsOption = matchedRoute.props[currentName]; - const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === "function" ? routePropsOption(route) : routePropsOption : null; - const onVnodeUnmounted = (vnode) => { - if (vnode.component.isUnmounted) { - matchedRoute.instances[currentName] = null; - } - }; - const component = h(ViewComponent, assign({}, routeProps, attrs, { - onVnodeUnmounted, - ref: viewRef - })); - if (isBrowser && component.ref) { - const info = { - depth: depth.value, - name: matchedRoute.name, - path: matchedRoute.path, - meta: matchedRoute.meta - }; - const internalInstances = isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]; - internalInstances.forEach((instance) => { - instance.__vrv_devtools = info; - }); - } - return ( - // pass the vnode to the slot as a prop. - // h and both accept vnodes - normalizeSlot(slots.default, { Component: component, route }) || component - ); - }; - } -}); -function normalizeSlot(slot, data) { - if (!slot) - return null; - const slotContent = slot(data); - return slotContent.length === 1 ? slotContent[0] : slotContent; -} -var RouterView = RouterViewImpl; -function warnDeprecatedUsage() { - const instance = getCurrentInstance(); - const parentName = instance.parent && instance.parent.type.name; - const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type; - if (parentName && (parentName === "KeepAlive" || parentName.includes("Transition")) && typeof parentSubTreeType === "object" && parentSubTreeType.name === "RouterView") { - const comp = parentName === "KeepAlive" ? "keep-alive" : "transition"; - warn(` can no longer be used directly inside or . -Use slot props instead: - - - <${comp}> - - -`); - } -} -function formatRouteLocation(routeLocation, tooltip) { - const copy = assign({}, routeLocation, { - // remove variables that can contain vue instances - matched: routeLocation.matched.map((matched) => omit(matched, ["instances", "children", "aliasOf"])) - }); - return { - _custom: { - type: null, - readOnly: true, - display: routeLocation.fullPath, - tooltip, - value: copy - } - }; -} -function formatDisplay(display) { - return { - _custom: { - display - } - }; -} -var routerId = 0; -function addDevtools(app, router, matcher) { - if (router.__hasDevtools) - return; - router.__hasDevtools = true; - const id = routerId++; - setupDevtoolsPlugin({ - id: "org.vuejs.router" + (id ? "." + id : ""), - label: "Vue Router", - packageName: "vue-router", - homepage: "https://router.vuejs.org", - logo: "https://router.vuejs.org/logo.png", - componentStateTypes: ["Routing"], - app - }, (api) => { - if (typeof api.now !== "function") { - console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."); - } - api.on.inspectComponent((payload, ctx) => { - if (payload.instanceData) { - payload.instanceData.state.push({ - type: "Routing", - key: "$route", - editable: false, - value: formatRouteLocation(router.currentRoute.value, "Current Route") - }); - } - }); - api.on.visitComponentTree(({ treeNode: node, componentInstance }) => { - if (componentInstance.__vrv_devtools) { - const info = componentInstance.__vrv_devtools; - node.tags.push({ - label: (info.name ? `${info.name.toString()}: ` : "") + info.path, - textColor: 0, - tooltip: "This component is rendered by <router-view>", - backgroundColor: PINK_500 - }); - } - if (isArray(componentInstance.__vrl_devtools)) { - componentInstance.__devtoolsApi = api; - componentInstance.__vrl_devtools.forEach((devtoolsData) => { - let backgroundColor = ORANGE_400; - let tooltip = ""; - if (devtoolsData.isExactActive) { - backgroundColor = LIME_500; - tooltip = "This is exactly active"; - } else if (devtoolsData.isActive) { - backgroundColor = BLUE_600; - tooltip = "This link is active"; - } - node.tags.push({ - label: devtoolsData.route.path, - textColor: 0, - tooltip, - backgroundColor - }); - }); - } - }); - watch(router.currentRoute, () => { - refreshRoutesView(); - api.notifyComponentUpdate(); - api.sendInspectorTree(routerInspectorId); - api.sendInspectorState(routerInspectorId); - }); - const navigationsLayerId = "router:navigations:" + id; - api.addTimelineLayer({ - id: navigationsLayerId, - label: `Router${id ? " " + id : ""} Navigations`, - color: 4237508 - }); - router.onError((error, to) => { - api.addTimelineEvent({ - layerId: navigationsLayerId, - event: { - title: "Error during Navigation", - subtitle: to.fullPath, - logType: "error", - time: api.now(), - data: { error }, - groupId: to.meta.__navigationId - } - }); - }); - let navigationId = 0; - router.beforeEach((to, from) => { - const data = { - guard: formatDisplay("beforeEach"), - from: formatRouteLocation(from, "Current Location during this navigation"), - to: formatRouteLocation(to, "Target location") - }; - Object.defineProperty(to.meta, "__navigationId", { - value: navigationId++ - }); - api.addTimelineEvent({ - layerId: navigationsLayerId, - event: { - time: api.now(), - title: "Start of navigation", - subtitle: to.fullPath, - data, - groupId: to.meta.__navigationId - } - }); - }); - router.afterEach((to, from, failure) => { - const data = { - guard: formatDisplay("afterEach") - }; - if (failure) { - data.failure = { - _custom: { - type: Error, - readOnly: true, - display: failure ? failure.message : "", - tooltip: "Navigation Failure", - value: failure - } - }; - data.status = formatDisplay("❌"); - } else { - data.status = formatDisplay("✅"); - } - data.from = formatRouteLocation(from, "Current Location during this navigation"); - data.to = formatRouteLocation(to, "Target location"); - api.addTimelineEvent({ - layerId: navigationsLayerId, - event: { - title: "End of navigation", - subtitle: to.fullPath, - time: api.now(), - data, - logType: failure ? "warning" : "default", - groupId: to.meta.__navigationId - } - }); - }); - const routerInspectorId = "router-inspector:" + id; - api.addInspector({ - id: routerInspectorId, - label: "Routes" + (id ? " " + id : ""), - icon: "book", - treeFilterPlaceholder: "Search routes" - }); - function refreshRoutesView() { - if (!activeRoutesPayload) - return; - const payload = activeRoutesPayload; - let routes = matcher.getRoutes().filter((route) => !route.parent || // these routes have a parent with no component which will not appear in the view - // therefore we still need to include them - !route.parent.record.components); - routes.forEach(resetMatchStateOnRouteRecord); - if (payload.filter) { - routes = routes.filter((route) => ( - // save matches state based on the payload - isRouteMatching(route, payload.filter.toLowerCase()) - )); - } - routes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value)); - payload.rootNodes = routes.map(formatRouteRecordForInspector); - } - let activeRoutesPayload; - api.on.getInspectorTree((payload) => { - activeRoutesPayload = payload; - if (payload.app === app && payload.inspectorId === routerInspectorId) { - refreshRoutesView(); - } - }); - api.on.getInspectorState((payload) => { - if (payload.app === app && payload.inspectorId === routerInspectorId) { - const routes = matcher.getRoutes(); - const route = routes.find((route2) => route2.record.__vd_id === payload.nodeId); - if (route) { - payload.state = { - options: formatRouteRecordMatcherForStateInspector(route) - }; - } - } - }); - api.sendInspectorTree(routerInspectorId); - api.sendInspectorState(routerInspectorId); - }); -} -function modifierForKey(key) { - if (key.optional) { - return key.repeatable ? "*" : "?"; - } else { - return key.repeatable ? "+" : ""; - } -} -function formatRouteRecordMatcherForStateInspector(route) { - const { record } = route; - const fields = [ - { editable: false, key: "path", value: record.path } - ]; - if (record.name != null) { - fields.push({ - editable: false, - key: "name", - value: record.name - }); - } - fields.push({ editable: false, key: "regexp", value: route.re }); - if (route.keys.length) { - fields.push({ - editable: false, - key: "keys", - value: { - _custom: { - type: null, - readOnly: true, - display: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(" "), - tooltip: "Param keys", - value: route.keys - } - } - }); - } - if (record.redirect != null) { - fields.push({ - editable: false, - key: "redirect", - value: record.redirect - }); - } - if (route.alias.length) { - fields.push({ - editable: false, - key: "aliases", - value: route.alias.map((alias) => alias.record.path) - }); - } - if (Object.keys(route.record.meta).length) { - fields.push({ - editable: false, - key: "meta", - value: route.record.meta - }); - } - fields.push({ - key: "score", - editable: false, - value: { - _custom: { - type: null, - readOnly: true, - display: route.score.map((score) => score.join(", ")).join(" | "), - tooltip: "Score used to sort routes", - value: route.score - } - } - }); - return fields; -} -var PINK_500 = 15485081; -var BLUE_600 = 2450411; -var LIME_500 = 8702998; -var CYAN_400 = 2282478; -var ORANGE_400 = 16486972; -var DARK = 6710886; -function formatRouteRecordForInspector(route) { - const tags = []; - const { record } = route; - if (record.name != null) { - tags.push({ - label: String(record.name), - textColor: 0, - backgroundColor: CYAN_400 - }); - } - if (record.aliasOf) { - tags.push({ - label: "alias", - textColor: 0, - backgroundColor: ORANGE_400 - }); - } - if (route.__vd_match) { - tags.push({ - label: "matches", - textColor: 0, - backgroundColor: PINK_500 - }); - } - if (route.__vd_exactActive) { - tags.push({ - label: "exact", - textColor: 0, - backgroundColor: LIME_500 - }); - } - if (route.__vd_active) { - tags.push({ - label: "active", - textColor: 0, - backgroundColor: BLUE_600 - }); - } - if (record.redirect) { - tags.push({ - label: typeof record.redirect === "string" ? `redirect: ${record.redirect}` : "redirects", - textColor: 16777215, - backgroundColor: DARK - }); - } - let id = record.__vd_id; - if (id == null) { - id = String(routeRecordId++); - record.__vd_id = id; - } - return { - id, - label: record.path, - tags, - children: route.children.map(formatRouteRecordForInspector) - }; -} -var routeRecordId = 0; -var EXTRACT_REGEXP_RE = /^\/(.*)\/([a-z]*)$/; -function markRouteRecordActive(route, currentRoute) { - const isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record); - route.__vd_exactActive = route.__vd_active = isExactActive; - if (!isExactActive) { - route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record)); - } - route.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute)); -} -function resetMatchStateOnRouteRecord(route) { - route.__vd_match = false; - route.children.forEach(resetMatchStateOnRouteRecord); -} -function isRouteMatching(route, filter) { - const found = String(route.re).match(EXTRACT_REGEXP_RE); - route.__vd_match = false; - if (!found || found.length < 3) { - return false; - } - const nonEndingRE = new RegExp(found[1].replace(/\$$/, ""), found[2]); - if (nonEndingRE.test(filter)) { - route.children.forEach((child) => isRouteMatching(child, filter)); - if (route.record.path !== "/" || filter === "/") { - route.__vd_match = route.re.test(filter); - return true; - } - return false; - } - const path = route.record.path.toLowerCase(); - const decodedPath = decode(path); - if (!filter.startsWith("/") && (decodedPath.includes(filter) || path.includes(filter))) - return true; - if (decodedPath.startsWith(filter) || path.startsWith(filter)) - return true; - if (route.record.name && String(route.record.name).includes(filter)) - return true; - return route.children.some((child) => isRouteMatching(child, filter)); -} -function omit(obj, keys) { - const ret = {}; - for (const key in obj) { - if (!keys.includes(key)) { - ret[key] = obj[key]; - } - } - return ret; -} -function createRouter(options) { - const matcher = createRouterMatcher(options.routes, options); - const parseQuery$1 = options.parseQuery || parseQuery; - const stringifyQuery$1 = options.stringifyQuery || stringifyQuery; - const routerHistory = options.history; - if (!routerHistory) - throw new Error('Provide the "history" option when calling "createRouter()": https://next.router.vuejs.org/api/#history.'); - const beforeGuards = useCallbacks(); - const beforeResolveGuards = useCallbacks(); - const afterGuards = useCallbacks(); - const currentRoute = shallowRef(START_LOCATION_NORMALIZED); - let pendingLocation = START_LOCATION_NORMALIZED; - if (isBrowser && options.scrollBehavior && "scrollRestoration" in history) { - history.scrollRestoration = "manual"; - } - const normalizeParams = applyToParams.bind(null, (paramValue) => "" + paramValue); - const encodeParams = applyToParams.bind(null, encodeParam); - const decodeParams = ( - // @ts-expect-error: intentionally avoid the type check - applyToParams.bind(null, decode) - ); - function addRoute(parentOrRoute, route) { - let parent; - let record; - if (isRouteName(parentOrRoute)) { - parent = matcher.getRecordMatcher(parentOrRoute); - record = route; - } else { - record = parentOrRoute; - } - return matcher.addRoute(record, parent); - } - function removeRoute(name) { - const recordMatcher = matcher.getRecordMatcher(name); - if (recordMatcher) { - matcher.removeRoute(recordMatcher); - } else if (true) { - warn(`Cannot remove non-existent route "${String(name)}"`); - } - } - function getRoutes() { - return matcher.getRoutes().map((routeMatcher) => routeMatcher.record); - } - function hasRoute(name) { - return !!matcher.getRecordMatcher(name); - } - function resolve(rawLocation, currentLocation) { - currentLocation = assign({}, currentLocation || currentRoute.value); - if (typeof rawLocation === "string") { - const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path); - const matchedRoute2 = matcher.resolve({ path: locationNormalized.path }, currentLocation); - const href2 = routerHistory.createHref(locationNormalized.fullPath); - if (true) { - if (href2.startsWith("//")) - warn(`Location "${rawLocation}" resolved to "${href2}". A resolved location cannot start with multiple slashes.`); - else if (!matchedRoute2.matched.length) { - warn(`No match found for location with path "${rawLocation}"`); - } - } - return assign(locationNormalized, matchedRoute2, { - params: decodeParams(matchedRoute2.params), - hash: decode(locationNormalized.hash), - redirectedFrom: void 0, - href: href2 - }); - } - let matcherLocation; - if ("path" in rawLocation) { - if ("params" in rawLocation && !("name" in rawLocation) && // @ts-expect-error: the type is never - Object.keys(rawLocation.params).length) { - warn(`Path "${rawLocation.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`); - } - matcherLocation = assign({}, rawLocation, { - path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path - }); - } else { - const targetParams = assign({}, rawLocation.params); - for (const key in targetParams) { - if (targetParams[key] == null) { - delete targetParams[key]; - } - } - matcherLocation = assign({}, rawLocation, { - params: encodeParams(targetParams) - }); - currentLocation.params = encodeParams(currentLocation.params); - } - const matchedRoute = matcher.resolve(matcherLocation, currentLocation); - const hash = rawLocation.hash || ""; - if (hash && !hash.startsWith("#")) { - warn(`A \`hash\` should always start with the character "#". Replace "${hash}" with "#${hash}".`); - } - matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params)); - const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, { - hash: encodeHash(hash), - path: matchedRoute.path - })); - const href = routerHistory.createHref(fullPath); - if (true) { - if (href.startsWith("//")) { - warn(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); - } else if (!matchedRoute.matched.length) { - warn(`No match found for location with path "${"path" in rawLocation ? rawLocation.path : rawLocation}"`); - } - } - return assign({ - fullPath, - // keep the hash encoded so fullPath is effectively path + encodedQuery + - // hash - hash, - query: ( - // if the user is using a custom query lib like qs, we might have - // nested objects, so we keep the query as is, meaning it can contain - // numbers at `$route.query`, but at the point, the user will have to - // use their own type anyway. - // https://github.com/vuejs/router/issues/328#issuecomment-649481567 - stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {} - ) - }, matchedRoute, { - redirectedFrom: void 0, - href - }); - } - function locationAsObject(to) { - return typeof to === "string" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to); - } - function checkCanceledNavigation(to, from) { - if (pendingLocation !== to) { - return createRouterError(8, { - from, - to - }); - } - } - function push(to) { - return pushWithRedirect(to); - } - function replace(to) { - return push(assign(locationAsObject(to), { replace: true })); - } - function handleRedirectRecord(to) { - const lastMatched = to.matched[to.matched.length - 1]; - if (lastMatched && lastMatched.redirect) { - const { redirect } = lastMatched; - let newTargetLocation = typeof redirect === "function" ? redirect(to) : redirect; - if (typeof newTargetLocation === "string") { - newTargetLocation = newTargetLocation.includes("?") || newTargetLocation.includes("#") ? newTargetLocation = locationAsObject(newTargetLocation) : ( - // force empty params - { path: newTargetLocation } - ); - newTargetLocation.params = {}; - } - if (!("path" in newTargetLocation) && !("name" in newTargetLocation)) { - warn(`Invalid redirect found: -${JSON.stringify(newTargetLocation, null, 2)} - when navigating to "${to.fullPath}". A redirect must contain a name or path. This will break in production.`); - throw new Error("Invalid redirect"); - } - return assign({ - query: to.query, - hash: to.hash, - // avoid transferring params if the redirect has a path - params: "path" in newTargetLocation ? {} : to.params - }, newTargetLocation); - } - } - function pushWithRedirect(to, redirectedFrom) { - const targetLocation = pendingLocation = resolve(to); - const from = currentRoute.value; - const data = to.state; - const force = to.force; - const replace2 = to.replace === true; - const shouldRedirect = handleRedirectRecord(targetLocation); - if (shouldRedirect) - return pushWithRedirect( - assign(locationAsObject(shouldRedirect), { - state: typeof shouldRedirect === "object" ? assign({}, data, shouldRedirect.state) : data, - force, - replace: replace2 - }), - // keep original redirectedFrom if it exists - redirectedFrom || targetLocation - ); - const toLocation = targetLocation; - toLocation.redirectedFrom = redirectedFrom; - let failure; - if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) { - failure = createRouterError(16, { to: toLocation, from }); - handleScroll( - from, - from, - // this is a push, the only way for it to be triggered from a - // history.listen is with a redirect, which makes it become a push - true, - // This cannot be the first navigation because the initial location - // cannot be manually navigated to - false - ); - } - return (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? ( - // navigation redirects still mark the router as ready - isNavigationFailure( - error, - 2 - /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ - ) ? error : markAsReady(error) - ) : ( - // reject any unknown error - triggerError(error, toLocation, from) - )).then((failure2) => { - if (failure2) { - if (isNavigationFailure( - failure2, - 2 - /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ - )) { - if (// we are redirecting to the same location we were already at - isSameRouteLocation(stringifyQuery$1, resolve(failure2.to), toLocation) && // and we have done it a couple of times - redirectedFrom && // @ts-expect-error: added only in dev - (redirectedFrom._count = redirectedFrom._count ? ( - // @ts-expect-error - redirectedFrom._count + 1 - ) : 1) > 30) { - warn(`Detected a possibly infinite redirection in a navigation guard when going from "${from.fullPath}" to "${toLocation.fullPath}". Aborting to avoid a Stack Overflow. - Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`); - return Promise.reject(new Error("Infinite redirect in navigation guard")); - } - return pushWithRedirect( - // keep options - assign({ - // preserve an existing replacement but allow the redirect to override it - replace: replace2 - }, locationAsObject(failure2.to), { - state: typeof failure2.to === "object" ? assign({}, data, failure2.to.state) : data, - force - }), - // preserve the original redirectedFrom if any - redirectedFrom || toLocation - ); - } - } else { - failure2 = finalizeNavigation(toLocation, from, true, replace2, data); - } - triggerAfterEach(toLocation, from, failure2); - return failure2; - }); - } - function checkCanceledNavigationAndReject(to, from) { - const error = checkCanceledNavigation(to, from); - return error ? Promise.reject(error) : Promise.resolve(); - } - function runWithContext(fn) { - const app = installedApps.values().next().value; - return app && typeof app.runWithContext === "function" ? app.runWithContext(fn) : fn(); - } - function navigate(to, from) { - let guards; - const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from); - guards = extractComponentsGuards(leavingRecords.reverse(), "beforeRouteLeave", to, from); - for (const record of leavingRecords) { - record.leaveGuards.forEach((guard) => { - guards.push(guardToPromiseFn(guard, to, from)); - }); - } - const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from); - guards.push(canceledNavigationCheck); - return runGuardQueue(guards).then(() => { - guards = []; - for (const guard of beforeGuards.list()) { - guards.push(guardToPromiseFn(guard, to, from)); - } - guards.push(canceledNavigationCheck); - return runGuardQueue(guards); - }).then(() => { - guards = extractComponentsGuards(updatingRecords, "beforeRouteUpdate", to, from); - for (const record of updatingRecords) { - record.updateGuards.forEach((guard) => { - guards.push(guardToPromiseFn(guard, to, from)); - }); - } - guards.push(canceledNavigationCheck); - return runGuardQueue(guards); - }).then(() => { - guards = []; - for (const record of enteringRecords) { - if (record.beforeEnter) { - if (isArray(record.beforeEnter)) { - for (const beforeEnter of record.beforeEnter) - guards.push(guardToPromiseFn(beforeEnter, to, from)); - } else { - guards.push(guardToPromiseFn(record.beforeEnter, to, from)); - } - } - } - guards.push(canceledNavigationCheck); - return runGuardQueue(guards); - }).then(() => { - to.matched.forEach((record) => record.enterCallbacks = {}); - guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from); - guards.push(canceledNavigationCheck); - return runGuardQueue(guards); - }).then(() => { - guards = []; - for (const guard of beforeResolveGuards.list()) { - guards.push(guardToPromiseFn(guard, to, from)); - } - guards.push(canceledNavigationCheck); - return runGuardQueue(guards); - }).catch((err) => isNavigationFailure( - err, - 8 - /* ErrorTypes.NAVIGATION_CANCELLED */ - ) ? err : Promise.reject(err)); - } - function triggerAfterEach(to, from, failure) { - afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure))); - } - function finalizeNavigation(toLocation, from, isPush, replace2, data) { - const error = checkCanceledNavigation(toLocation, from); - if (error) - return error; - const isFirstNavigation = from === START_LOCATION_NORMALIZED; - const state = !isBrowser ? {} : history.state; - if (isPush) { - if (replace2 || isFirstNavigation) - routerHistory.replace(toLocation.fullPath, assign({ - scroll: isFirstNavigation && state && state.scroll - }, data)); - else - routerHistory.push(toLocation.fullPath, data); - } - currentRoute.value = toLocation; - handleScroll(toLocation, from, isPush, isFirstNavigation); - markAsReady(); - } - let removeHistoryListener; - function setupListeners() { - if (removeHistoryListener) - return; - removeHistoryListener = routerHistory.listen((to, _from, info) => { - if (!router.listening) - return; - const toLocation = resolve(to); - const shouldRedirect = handleRedirectRecord(toLocation); - if (shouldRedirect) { - pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop); - return; - } - pendingLocation = toLocation; - const from = currentRoute.value; - if (isBrowser) { - saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition()); - } - navigate(toLocation, from).catch((error) => { - if (isNavigationFailure( - error, - 4 | 8 - /* ErrorTypes.NAVIGATION_CANCELLED */ - )) { - return error; - } - if (isNavigationFailure( - error, - 2 - /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */ - )) { - pushWithRedirect( - error.to, - toLocation - // avoid an uncaught rejection, let push call triggerError - ).then((failure) => { - if (isNavigationFailure( - failure, - 4 | 16 - /* ErrorTypes.NAVIGATION_DUPLICATED */ - ) && !info.delta && info.type === NavigationType.pop) { - routerHistory.go(-1, false); - } - }).catch(noop); - return Promise.reject(); - } - if (info.delta) { - routerHistory.go(-info.delta, false); - } - return triggerError(error, toLocation, from); - }).then((failure) => { - failure = failure || finalizeNavigation( - // after navigation, all matched components are resolved - toLocation, - from, - false - ); - if (failure) { - if (info.delta && // a new navigation has been triggered, so we do not want to revert, that will change the current history - // entry while a different route is displayed - !isNavigationFailure( - failure, - 8 - /* ErrorTypes.NAVIGATION_CANCELLED */ - )) { - routerHistory.go(-info.delta, false); - } else if (info.type === NavigationType.pop && isNavigationFailure( - failure, - 4 | 16 - /* ErrorTypes.NAVIGATION_DUPLICATED */ - )) { - routerHistory.go(-1, false); - } - } - triggerAfterEach(toLocation, from, failure); - }).catch(noop); - }); - } - let readyHandlers = useCallbacks(); - let errorListeners = useCallbacks(); - let ready; - function triggerError(error, to, from) { - markAsReady(error); - const list = errorListeners.list(); - if (list.length) { - list.forEach((handler) => handler(error, to, from)); - } else { - if (true) { - warn("uncaught error during route navigation:"); - } - console.error(error); - } - return Promise.reject(error); - } - function isReady() { - if (ready && currentRoute.value !== START_LOCATION_NORMALIZED) - return Promise.resolve(); - return new Promise((resolve2, reject) => { - readyHandlers.add([resolve2, reject]); - }); - } - function markAsReady(err) { - if (!ready) { - ready = !err; - setupListeners(); - readyHandlers.list().forEach(([resolve2, reject]) => err ? reject(err) : resolve2()); - readyHandlers.reset(); - } - return err; - } - function handleScroll(to, from, isPush, isFirstNavigation) { - const { scrollBehavior } = options; - if (!isBrowser || !scrollBehavior) - return Promise.resolve(); - const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null; - return nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from)); - } - const go = (delta) => routerHistory.go(delta); - let started; - const installedApps = /* @__PURE__ */ new Set(); - const router = { - currentRoute, - listening: true, - addRoute, - removeRoute, - hasRoute, - getRoutes, - resolve, - options, - push, - replace, - go, - back: () => go(-1), - forward: () => go(1), - beforeEach: beforeGuards.add, - beforeResolve: beforeResolveGuards.add, - afterEach: afterGuards.add, - onError: errorListeners.add, - isReady, - install(app) { - const router2 = this; - app.component("RouterLink", RouterLink); - app.component("RouterView", RouterView); - app.config.globalProperties.$router = router2; - Object.defineProperty(app.config.globalProperties, "$route", { - enumerable: true, - get: () => unref(currentRoute) - }); - if (isBrowser && // used for the initial navigation client side to avoid pushing - // multiple times when the router is used in multiple apps - !started && currentRoute.value === START_LOCATION_NORMALIZED) { - started = true; - push(routerHistory.location).catch((err) => { - if (true) - warn("Unexpected error when starting the router:", err); - }); - } - const reactiveRoute = {}; - for (const key in START_LOCATION_NORMALIZED) { - Object.defineProperty(reactiveRoute, key, { - get: () => currentRoute.value[key], - enumerable: true - }); - } - app.provide(routerKey, router2); - app.provide(routeLocationKey, shallowReactive(reactiveRoute)); - app.provide(routerViewLocationKey, currentRoute); - const unmountApp = app.unmount; - installedApps.add(app); - app.unmount = function() { - installedApps.delete(app); - if (installedApps.size < 1) { - pendingLocation = START_LOCATION_NORMALIZED; - removeHistoryListener && removeHistoryListener(); - removeHistoryListener = null; - currentRoute.value = START_LOCATION_NORMALIZED; - started = false; - ready = false; - } - unmountApp(); - }; - if (isBrowser) { - addDevtools(app, router2, matcher); - } - } - }; - function runGuardQueue(guards) { - return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve()); - } - return router; -} -function extractChangingRecords(to, from) { - const leavingRecords = []; - const updatingRecords = []; - const enteringRecords = []; - const len = Math.max(from.matched.length, to.matched.length); - for (let i = 0; i < len; i++) { - const recordFrom = from.matched[i]; - if (recordFrom) { - if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) - updatingRecords.push(recordFrom); - else - leavingRecords.push(recordFrom); - } - const recordTo = to.matched[i]; - if (recordTo) { - if (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) { - enteringRecords.push(recordTo); - } - } - } - return [leavingRecords, updatingRecords, enteringRecords]; -} -function useRouter() { - return inject(routerKey); -} -function useRoute() { - return inject(routeLocationKey); -} -export { - NavigationFailureType, - RouterLink, - RouterView, - START_LOCATION_NORMALIZED as START_LOCATION, - createMemoryHistory, - createRouter, - createRouterMatcher, - createWebHashHistory, - createWebHistory, - isNavigationFailure, - loadRouteLocation, - matchedRouteKey, - onBeforeRouteLeave, - onBeforeRouteUpdate, - parseQuery, - routeLocationKey, - routerKey, - routerViewLocationKey, - stringifyQuery, - useLink, - useRoute, - useRouter, - viewDepthKey -}; -/*! Bundled license information: - -vue-router/dist/vue-router.mjs: - (*! - * vue-router v4.2.5 - * (c) 2023 Eduardo San Martin Morote - * @license MIT - *) -*/ -//# sourceMappingURL=vue-router.js.map diff --git a/.vuepress/.cache/deps/vue-router.js.map b/.vuepress/.cache/deps/vue-router.js.map deleted file mode 100644 index e473b56d8..000000000 --- a/.vuepress/.cache/deps/vue-router.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/vue-router/dist/vue-router.mjs"], - "sourcesContent": ["/*!\n * vue-router v4.2.5\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, shallowReactive, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n const newParams = {};\n for (const key in params) {\n const value = params[key];\n newParams[key] = isArray(value)\n ? value.map(fn)\n : fn(value);\n }\n return newParams;\n}\nconst noop = () => { };\n/**\n * Typesafe alternative to Array.isArray\n * https://github.com/microsoft/TypeScript/pull/48228\n */\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\n // avoid using ...args as it breaks in older Edge builds\n const args = Array.from(arguments).slice(1);\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\n/**\n * Transforms a URI into a normalized history location\n *\n * @param parseQuery\n * @param location - URI to normalize\n * @param currentLocation - current absolute location. Allows resolving relative\n * paths. Must start with `/`. Defaults to `/`\n * @returns a normalized history location\n */\nfunction parseURL(parseQuery, location, currentLocation = '/') {\n let path, query = {}, searchString = '', hash = '';\n // Could use URL and URLSearchParams but IE 11 doesn't support it\n // TODO: move to new URL()\n const hashPos = location.indexOf('#');\n let searchPos = location.indexOf('?');\n // the hash appears before the search, so it's not part of the search string\n if (hashPos < searchPos && hashPos >= 0) {\n searchPos = -1;\n }\n if (searchPos > -1) {\n path = location.slice(0, searchPos);\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\n query = parseQuery(searchString);\n }\n if (hashPos > -1) {\n path = path || location.slice(0, hashPos);\n // keep the # character\n hash = location.slice(hashPos, location.length);\n }\n // no search and no query\n path = resolveRelativePath(path != null ? path : location, currentLocation);\n // empty path means a relative query or hash `?foo=f`, `#thing`\n return {\n fullPath: path + (searchString && '?') + searchString + hash,\n path,\n query,\n hash,\n };\n}\n/**\n * Stringifies a URL object\n *\n * @param stringifyQuery\n * @param location\n */\nfunction stringifyURL(stringifyQuery, location) {\n const query = location.query ? stringifyQuery(location.query) : '';\n return location.path + (query && '?') + query + (location.hash || '');\n}\n/**\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n *\n * @param pathname - location.pathname\n * @param base - base to strip off\n */\nfunction stripBase(pathname, base) {\n // no base or base is not found at the beginning\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n return pathname;\n return pathname.slice(base.length) || '/';\n}\n/**\n * Checks if two RouteLocation are equal. This means that both locations are\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\n * parameters and `hash` are the same\n *\n * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n * @param a - first {@link RouteLocation}\n * @param b - second {@link RouteLocation}\n */\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n const aLastIndex = a.matched.length - 1;\n const bLastIndex = b.matched.length - 1;\n return (aLastIndex > -1 &&\n aLastIndex === bLastIndex &&\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\n isSameRouteLocationParams(a.params, b.params) &&\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\n a.hash === b.hash);\n}\n/**\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\n * considered equal to the `RouteRecord` they are aliasing.\n *\n * @param a - first {@link RouteRecord}\n * @param b - second {@link RouteRecord}\n */\nfunction isSameRouteRecord(a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\n return false;\n }\n return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n return isArray(a)\n ? isEquivalentArray(a, b)\n : isArray(b)\n ? isEquivalentArray(b, a)\n : a === b;\n}\n/**\n * Check if two arrays are the same or if an array with one single entry is the\n * same as another primitive value. Used to check query and parameters\n *\n * @param a - array of values\n * @param b - array of values or a single value\n */\nfunction isEquivalentArray(a, b) {\n return isArray(b)\n ? a.length === b.length && a.every((value, i) => value === b[i])\n : a.length === 1 && a[0] === b;\n}\n/**\n * Resolves a relative path that starts with `.`.\n *\n * @param to - path location we are resolving\n * @param from - currentLocation.path, should start with `/`\n */\nfunction resolveRelativePath(to, from) {\n if (to.startsWith('/'))\n return to;\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n return to;\n }\n if (!to)\n return from;\n const fromSegments = from.split('/');\n const toSegments = to.split('/');\n const lastToSegment = toSegments[toSegments.length - 1];\n // make . and ./ the same (../ === .., ../../ === ../..)\n // this is the same behavior as new URL()\n if (lastToSegment === '..' || lastToSegment === '.') {\n toSegments.push('');\n }\n let position = fromSegments.length - 1;\n let toPosition;\n let segment;\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n segment = toSegments[toPosition];\n // we stay on the same position\n if (segment === '.')\n continue;\n // go up in the from array\n if (segment === '..') {\n // we can't go below zero, but we still need to increment toPosition\n if (position > 1)\n position--;\n // continue\n }\n // we reached a non-relative path, we stop here\n else\n break;\n }\n return (fromSegments.slice(0, position).join('/') +\n '/' +\n toSegments\n // ensure we use at least the last element in the toSegments\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\n .join('/'));\n}\n\nvar NavigationType;\n(function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\n/**\n * Starting location for Histories\n */\nconst START = '';\n// Generic utils\n/**\n * Normalizes a base by removing any trailing slash and reading the base tag if\n * present.\n *\n * @param base - base to normalize\n */\nfunction normalizeBase(base) {\n if (!base) {\n if (isBrowser) {\n // respect tag\n const baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\n }\n else {\n base = '/';\n }\n }\n // ensure leading slash when it was removed by the regex above avoid leading\n // slash with hash because the file could be read from the disk like file://\n // and the leading slash would cause problems\n if (base[0] !== '/' && base[0] !== '#')\n base = '/' + base;\n // remove the trailing slash so all other method can just do `base + fullPath`\n // to build an href\n return removeTrailingSlash(base);\n}\n// remove any character before the hash\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n return base.replace(BEFORE_HASH_RE, '#') + location;\n}\n\nfunction getElementPosition(el, offset) {\n const docRect = document.documentElement.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n behavior: offset.behavior,\n left: elRect.left - docRect.left - (offset.left || 0),\n top: elRect.top - docRect.top - (offset.top || 0),\n };\n}\nconst computeScrollPosition = () => ({\n left: window.pageXOffset,\n top: window.pageYOffset,\n});\nfunction scrollToPosition(position) {\n let scrollToOptions;\n if ('el' in position) {\n const positionEl = position.el;\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\n /**\n * `id`s can accept pretty much any characters, including CSS combinators\n * like `>` or `~`. It's still possible to retrieve elements using\n * `document.getElementById('~')` but it needs to be escaped when using\n * `document.querySelector('#\\\\~')` for it to be valid. The only\n * requirements for `id`s are them to be unique on the page and to not be\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\n * be properly escaped for it to work with `querySelector`. We could check\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\n * would make things inconsistent since they are valid characters for an\n * `id` but would need to be escaped when using `querySelector`, breaking\n * their usage and ending up in no selector returned. Selectors need to be\n * escaped:\n *\n * - `#1-thing` becomes `#\\31 -thing`\n * - `#with~symbols` becomes `#with\\\\~symbols`\n *\n * - More information about the topic can be found at\n * https://mathiasbynens.be/notes/html5-id-class.\n * - Practical example: https://mathiasbynens.be/demo/html5-id\n */\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n try {\n const foundEl = document.querySelector(position.el);\n if (isIdSelector && foundEl) {\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n // return to avoid other warnings\n return;\n }\n }\n catch (err) {\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n // return to avoid other warnings\n return;\n }\n }\n }\n const el = typeof positionEl === 'string'\n ? isIdSelector\n ? document.getElementById(positionEl.slice(1))\n : document.querySelector(positionEl)\n : positionEl;\n if (!el) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n return;\n }\n scrollToOptions = getElementPosition(el, position);\n }\n else {\n scrollToOptions = position;\n }\n if ('scrollBehavior' in document.documentElement.style)\n window.scrollTo(scrollToOptions);\n else {\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\n }\n}\nfunction getScrollKey(path, delta) {\n const position = history.state ? history.state.position - delta : -1;\n return position + path;\n}\nconst scrollPositions = new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n const scroll = scrollPositions.get(key);\n // consume it so it's not used again\n scrollPositions.delete(key);\n return scroll;\n}\n// TODO: RFC about how to save scroll position\n/**\n * ScrollBehavior instance used by the router to compute and restore the scroll\n * position when navigating.\n */\n// export interface ScrollHandler {\n// // returns a scroll position that can be saved in history\n// compute(): ScrollPositionEntry\n// // can take an extended ScrollPositionEntry\n// scroll(position: ScrollPosition): void\n// }\n// export const scrollHandler: ScrollHandler = {\n// compute: computeScroll,\n// scroll: scrollToPosition,\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\n/**\n * Creates a normalized history location from a window.location object\n * @param base - The base path\n * @param location - The window.location object\n */\nfunction createCurrentLocation(base, location) {\n const { pathname, search, hash } = location;\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\n const hashPos = base.indexOf('#');\n if (hashPos > -1) {\n let slicePos = hash.includes(base.slice(hashPos))\n ? base.slice(hashPos).length\n : 1;\n let pathFromHash = hash.slice(slicePos);\n // prepend the starting slash to hash so the url starts with /#\n if (pathFromHash[0] !== '/')\n pathFromHash = '/' + pathFromHash;\n return stripBase(pathFromHash, '');\n }\n const path = stripBase(pathname, base);\n return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n let listeners = [];\n let teardowns = [];\n // TODO: should it be a stack? a Dict. Check if the popstate listener\n // can trigger twice\n let pauseState = null;\n const popStateHandler = ({ state, }) => {\n const to = createCurrentLocation(base, location);\n const from = currentLocation.value;\n const fromState = historyState.value;\n let delta = 0;\n if (state) {\n currentLocation.value = to;\n historyState.value = state;\n // ignore the popstate and reset the pauseState\n if (pauseState && pauseState === from) {\n pauseState = null;\n return;\n }\n delta = fromState ? state.position - fromState.position : 0;\n }\n else {\n replace(to);\n }\n // Here we could also revert the navigation by calling history.go(-delta)\n // this listener will have to be adapted to not trigger again and to wait for the url\n // to be updated before triggering the listeners. Some kind of validation function would also\n // need to be passed to the listeners so the navigation can be accepted\n // call all listeners\n listeners.forEach(listener => {\n listener(currentLocation.value, from, {\n delta,\n type: NavigationType.pop,\n direction: delta\n ? delta > 0\n ? NavigationDirection.forward\n : NavigationDirection.back\n : NavigationDirection.unknown,\n });\n });\n };\n function pauseListeners() {\n pauseState = currentLocation.value;\n }\n function listen(callback) {\n // set up the listener and prepare teardown callbacks\n listeners.push(callback);\n const teardown = () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n teardowns.push(teardown);\n return teardown;\n }\n function beforeUnloadListener() {\n const { history } = window;\n if (!history.state)\n return;\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\n }\n function destroy() {\n for (const teardown of teardowns)\n teardown();\n teardowns = [];\n window.removeEventListener('popstate', popStateHandler);\n window.removeEventListener('beforeunload', beforeUnloadListener);\n }\n // set up the listeners and prepare teardown callbacks\n window.addEventListener('popstate', popStateHandler);\n // TODO: could we use 'pagehide' or 'visibilitychange' instead?\n // https://developer.chrome.com/blog/page-lifecycle-api/\n window.addEventListener('beforeunload', beforeUnloadListener, {\n passive: true,\n });\n return {\n pauseListeners,\n listen,\n destroy,\n };\n}\n/**\n * Creates a state object\n */\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n return {\n back,\n current,\n forward,\n replaced,\n position: window.history.length,\n scroll: computeScroll ? computeScrollPosition() : null,\n };\n}\nfunction useHistoryStateNavigation(base) {\n const { history, location } = window;\n // private variables\n const currentLocation = {\n value: createCurrentLocation(base, location),\n };\n const historyState = { value: history.state };\n // build current history entry as this is a fresh navigation\n if (!historyState.value) {\n changeLocation(currentLocation.value, {\n back: null,\n current: currentLocation.value,\n forward: null,\n // the length is off by one, we need to decrease it\n position: history.length - 1,\n replaced: true,\n // don't add a scroll as the user may have an anchor, and we want\n // scrollBehavior to be triggered without a saved position\n scroll: null,\n }, true);\n }\n function changeLocation(to, state, replace) {\n /**\n * if a base tag is provided, and we are on a normal domain, we have to\n * respect the provided `base` attribute because pushState() will use it and\n * potentially erase anything before the `#` like at\n * https://github.com/vuejs/router/issues/685 where a base of\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\n * there is no host, the `` tag makes no sense and if there isn't a\n * base tag we can just use everything after the `#`.\n */\n const hashIndex = base.indexOf('#');\n const url = hashIndex > -1\n ? (location.host && document.querySelector('base')\n ? base\n : base.slice(hashIndex)) + to\n : createBaseLocation() + base + to;\n try {\n // BROWSER QUIRK\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n historyState.value = state;\n }\n catch (err) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('Error with push/replace State', err);\n }\n else {\n console.error(err);\n }\n // Force the navigation, this also resets the call count\n location[replace ? 'replace' : 'assign'](url);\n }\n }\n function replace(to, data) {\n const state = assign({}, history.state, buildState(historyState.value.back, \n // keep back and forward entries but override current position\n to, historyState.value.forward, true), data, { position: historyState.value.position });\n changeLocation(to, state, true);\n currentLocation.value = to;\n }\n function push(to, data) {\n // Add to current entry the information of where we are going\n // as well as saving the current position\n const currentState = assign({}, \n // use current history state to gracefully handle a wrong call to\n // history.replaceState\n // https://github.com/vuejs/router/issues/366\n historyState.value, history.state, {\n forward: to,\n scroll: computeScrollPosition(),\n });\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\n `history.replaceState(history.state, '', url)\\n\\n` +\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\n }\n changeLocation(currentState.current, currentState, true);\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n changeLocation(to, state, false);\n currentLocation.value = to;\n }\n return {\n location: currentLocation,\n state: historyState,\n push,\n replace,\n };\n}\n/**\n * Creates an HTML5 history. Most common history for single page applications.\n *\n * @param base -\n */\nfunction createWebHistory(base) {\n base = normalizeBase(base);\n const historyNavigation = useHistoryStateNavigation(base);\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n function go(delta, triggerListeners = true) {\n if (!triggerListeners)\n historyListeners.pauseListeners();\n history.go(delta);\n }\n const routerHistory = assign({\n // it's overridden right after\n location: '',\n base,\n go,\n createHref: createHref.bind(null, base),\n }, historyNavigation, historyListeners);\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => historyNavigation.location.value,\n });\n Object.defineProperty(routerHistory, 'state', {\n enumerable: true,\n get: () => historyNavigation.state.value,\n });\n return routerHistory;\n}\n\n/**\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n *\n * @param base - Base applied to all urls, defaults to '/'\n * @returns a history object that can be passed to the router constructor\n */\nfunction createMemoryHistory(base = '') {\n let listeners = [];\n let queue = [START];\n let position = 0;\n base = normalizeBase(base);\n function setLocation(location) {\n position++;\n if (position !== queue.length) {\n // we are in the middle, we remove everything from here in the queue\n queue.splice(position);\n }\n queue.push(location);\n }\n function triggerListeners(to, from, { direction, delta }) {\n const info = {\n direction,\n delta,\n type: NavigationType.pop,\n };\n for (const callback of listeners) {\n callback(to, from, info);\n }\n }\n const routerHistory = {\n // rewritten by Object.defineProperty\n location: START,\n // TODO: should be kept in queue\n state: {},\n base,\n createHref: createHref.bind(null, base),\n replace(to) {\n // remove current entry and decrement position\n queue.splice(position--, 1);\n setLocation(to);\n },\n push(to, data) {\n setLocation(to);\n },\n listen(callback) {\n listeners.push(callback);\n return () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n },\n destroy() {\n listeners = [];\n queue = [START];\n position = 0;\n },\n go(delta, shouldTrigger = true) {\n const from = this.location;\n const direction = \n // we are considering delta === 0 going forward, but in abstract mode\n // using 0 for the delta doesn't make sense like it does in html5 where\n // it reloads the page\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\n if (shouldTrigger) {\n triggerListeners(this.location, from, {\n direction,\n delta,\n });\n }\n },\n };\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => queue[position],\n });\n return routerHistory;\n}\n\n/**\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n * handle any URL is not possible.\n *\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n * calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n * after the `#`).\n *\n * @example\n * ```js\n * // at https://example.com/folder\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n * // you should avoid doing this because it changes the original url and breaks copying urls\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n *\n * // at file:///usr/etc/folder/index.html\n * // for locations with no `host`, the base is ignored\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n * ```\n */\nfunction createWebHashHistory(base) {\n // Make sure this implementation is fine in terms of encoding, specially for IE11\n // for `file://`, directly use the pathname and ignore the base\n // location.pathname contains an initial `/` even at the root: `https://example.com`\n base = location.host ? base || location.pathname + location.search : '';\n // allow the user to provide a `#` in the middle: `/base/#/app`\n if (!base.includes('#'))\n base += '#';\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\n }\n return createWebHistory(base);\n}\n\nfunction isRouteLocation(route) {\n return typeof route === 'string' || (route && typeof route === 'object');\n}\nfunction isRouteName(name) {\n return typeof name === 'string' || typeof name === 'symbol';\n}\n\n/**\n * Initial route location where the router is. Can be used in navigation guards\n * to differentiate the initial navigation.\n *\n * @example\n * ```js\n * import { START_LOCATION } from 'vue-router'\n *\n * router.beforeEach((to, from) => {\n * if (from === START_LOCATION) {\n * // initial navigation\n * }\n * })\n * ```\n */\nconst START_LOCATION_NORMALIZED = {\n path: '/',\n name: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n redirectedFrom: undefined,\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\n/**\n * Enumeration with all possible types for navigation failures. Can be passed to\n * {@link isNavigationFailure} to check for specific failures.\n */\nvar NavigationFailureType;\n(function (NavigationFailureType) {\n /**\n * An aborted navigation is a navigation that failed because a navigation\n * guard returned `false` or called `next(false)`\n */\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n /**\n * A cancelled navigation is a navigation that failed because a more recent\n * navigation finished started (not necessarily finished).\n */\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n /**\n * A duplicated navigation is a navigation that failed because it was\n * initiated while already being at the exact same location.\n */\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\n// DEV only debug messages\nconst ErrorTypeMessages = {\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\n : ''}`;\n },\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n },\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n },\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n },\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n },\n};\nfunction createRouterError(type, params) {\n // keep full error messages in cjs versions\n if ((process.env.NODE_ENV !== 'production') || !true) {\n return assign(new Error(ErrorTypeMessages[type](params)), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n else {\n return assign(new Error(), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n}\nfunction isNavigationFailure(error, type) {\n return (error instanceof Error &&\n NavigationFailureSymbol in error &&\n (type == null || !!(error.type & type)));\n}\nconst propertiesToLog = ['params', 'query', 'hash'];\nfunction stringifyRoute(to) {\n if (typeof to === 'string')\n return to;\n if ('path' in to)\n return to.path;\n const location = {};\n for (const key of propertiesToLog) {\n if (key in to)\n location[key] = to[key];\n }\n return JSON.stringify(location, null, 2);\n}\n\n// default pattern for a param: non-greedy everything but /\nconst BASE_PARAM_PATTERN = '[^/]+?';\nconst BASE_PATH_PARSER_OPTIONS = {\n sensitive: false,\n strict: false,\n start: true,\n end: true,\n};\n// Special Regex characters that must be escaped in static tokens\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\n *\n * @param segments - array of segments returned by tokenizePath\n * @param extraOptions - optional options for the regexp\n * @returns a PathParser\n */\nfunction tokensToParser(segments, extraOptions) {\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\n const score = [];\n // the regexp as a string\n let pattern = options.start ? '^' : '';\n // extracted keys\n const keys = [];\n for (const segment of segments) {\n // the root segment needs special treatment\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\n // allow trailing slash\n if (options.strict && !segment.length)\n pattern += '/';\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n const token = segment[tokenIndex];\n // resets the score if we are inside a sub-segment /:a-other-:b\n let subSegmentScore = 40 /* PathScore.Segment */ +\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\n if (token.type === 0 /* TokenType.Static */) {\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n pattern += '/';\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\n subSegmentScore += 40 /* PathScore.Static */;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional, regexp } = token;\n keys.push({\n name: value,\n repeatable,\n optional,\n });\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\n // the user provided a custom regexp /:id(\\\\d+)\n if (re !== BASE_PARAM_PATTERN) {\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\n // make sure the regexp is valid before using it\n try {\n new RegExp(`(${re})`);\n }\n catch (err) {\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\n err.message);\n }\n }\n // when we repeat we must take care of the repeating leading slash\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n subPattern =\n // avoid an optional / if there are more segments e.g. /:p?-static\n // or /:p?-:p2\n optional && segment.length < 2\n ? `(?:/${subPattern})`\n : '/' + subPattern;\n if (optional)\n subPattern += '?';\n pattern += subPattern;\n subSegmentScore += 20 /* PathScore.Dynamic */;\n if (optional)\n subSegmentScore += -8 /* PathScore.BonusOptional */;\n if (repeatable)\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\n if (re === '.*')\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\n }\n segmentScores.push(subSegmentScore);\n }\n // an empty array like /home/ -> [[{home}], []]\n // if (!segment.length) pattern += '/'\n score.push(segmentScores);\n }\n // only apply the strict bonus to the last score\n if (options.strict && options.end) {\n const i = score.length - 1;\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\n }\n // TODO: dev only warn double trailing slash\n if (!options.strict)\n pattern += '/?';\n if (options.end)\n pattern += '$';\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\n else if (options.strict)\n pattern += '(?:/|$)';\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\n function parse(path) {\n const match = path.match(re);\n const params = {};\n if (!match)\n return null;\n for (let i = 1; i < match.length; i++) {\n const value = match[i] || '';\n const key = keys[i - 1];\n params[key.name] = value && key.repeatable ? value.split('/') : value;\n }\n return params;\n }\n function stringify(params) {\n let path = '';\n // for optional parameters to allow to be empty\n let avoidDuplicatedSlash = false;\n for (const segment of segments) {\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\n path += '/';\n avoidDuplicatedSlash = false;\n for (const token of segment) {\n if (token.type === 0 /* TokenType.Static */) {\n path += token.value;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional } = token;\n const param = value in params ? params[value] : '';\n if (isArray(param) && !repeatable) {\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n }\n const text = isArray(param)\n ? param.join('/')\n : param;\n if (!text) {\n if (optional) {\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\n if (segment.length < 2) {\n // remove the last slash as we could be at the end\n if (path.endsWith('/'))\n path = path.slice(0, -1);\n // do not append a slash on the next iteration\n else\n avoidDuplicatedSlash = true;\n }\n }\n else\n throw new Error(`Missing required param \"${value}\"`);\n }\n path += text;\n }\n }\n }\n // avoid empty path when we have multiple optional params\n return path || '/';\n }\n return {\n re,\n score,\n keys,\n parse,\n stringify,\n };\n}\n/**\n * Compares an array of numbers as used in PathParser.score and returns a\n * number. This function can be used to `sort` an array\n *\n * @param a - first array of numbers\n * @param b - second array of numbers\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n * should be sorted first\n */\nfunction compareScoreArray(a, b) {\n let i = 0;\n while (i < a.length && i < b.length) {\n const diff = b[i] - a[i];\n // only keep going if diff === 0\n if (diff)\n return diff;\n i++;\n }\n // if the last subsegment was Static, the shorter segments should be sorted first\n // otherwise sort the longest segment first\n if (a.length < b.length) {\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? -1\n : 1;\n }\n else if (a.length > b.length) {\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? 1\n : -1;\n }\n return 0;\n}\n/**\n * Compare function that can be used with `sort` to sort an array of PathParser\n *\n * @param a - first PathParser\n * @param b - second PathParser\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n */\nfunction comparePathParserScore(a, b) {\n let i = 0;\n const aScore = a.score;\n const bScore = b.score;\n while (i < aScore.length && i < bScore.length) {\n const comp = compareScoreArray(aScore[i], bScore[i]);\n // do not return if both are equal\n if (comp)\n return comp;\n i++;\n }\n if (Math.abs(bScore.length - aScore.length) === 1) {\n if (isLastScoreNegative(aScore))\n return 1;\n if (isLastScoreNegative(bScore))\n return -1;\n }\n // if a and b share the same score entries but b has more, sort b first\n return bScore.length - aScore.length;\n // this is the ternary version\n // return aScore.length < bScore.length\n // ? 1\n // : aScore.length > bScore.length\n // ? -1\n // : 0\n}\n/**\n * This allows detecting splats at the end of a path: /home/:id(.*)*\n *\n * @param score - score to check\n * @returns true if the last entry is negative\n */\nfunction isLastScoreNegative(score) {\n const last = score[score.length - 1];\n return score.length > 0 && last[last.length - 1] < 0;\n}\n\nconst ROOT_TOKEN = {\n type: 0 /* TokenType.Static */,\n value: '',\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\n// After some profiling, the cache seems to be unnecessary because tokenizePath\n// (the slowest part of adding a route) is very fast\n// const tokenCache = new Map()\nfunction tokenizePath(path) {\n if (!path)\n return [[]];\n if (path === '/')\n return [[ROOT_TOKEN]];\n if (!path.startsWith('/')) {\n throw new Error((process.env.NODE_ENV !== 'production')\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\n : `Invalid path \"${path}\"`);\n }\n // if (tokenCache.has(path)) return tokenCache.get(path)!\n function crash(message) {\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n }\n let state = 0 /* TokenizerState.Static */;\n let previousState = state;\n const tokens = [];\n // the segment will always be valid because we get into the initial state\n // with the leading /\n let segment;\n function finalizeSegment() {\n if (segment)\n tokens.push(segment);\n segment = [];\n }\n // index on the path\n let i = 0;\n // char at index\n let char;\n // buffer of the value read\n let buffer = '';\n // custom regexp for a param\n let customRe = '';\n function consumeBuffer() {\n if (!buffer)\n return;\n if (state === 0 /* TokenizerState.Static */) {\n segment.push({\n type: 0 /* TokenType.Static */,\n value: buffer,\n });\n }\n else if (state === 1 /* TokenizerState.Param */ ||\n state === 2 /* TokenizerState.ParamRegExp */ ||\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\n if (segment.length > 1 && (char === '*' || char === '+'))\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n segment.push({\n type: 1 /* TokenType.Param */,\n value: buffer,\n regexp: customRe,\n repeatable: char === '*' || char === '+',\n optional: char === '*' || char === '?',\n });\n }\n else {\n crash('Invalid state to consume buffer');\n }\n buffer = '';\n }\n function addCharToBuffer() {\n buffer += char;\n }\n while (i < path.length) {\n char = path[i++];\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\n previousState = state;\n state = 4 /* TokenizerState.EscapeNext */;\n continue;\n }\n switch (state) {\n case 0 /* TokenizerState.Static */:\n if (char === '/') {\n if (buffer) {\n consumeBuffer();\n }\n finalizeSegment();\n }\n else if (char === ':') {\n consumeBuffer();\n state = 1 /* TokenizerState.Param */;\n }\n else {\n addCharToBuffer();\n }\n break;\n case 4 /* TokenizerState.EscapeNext */:\n addCharToBuffer();\n state = previousState;\n break;\n case 1 /* TokenizerState.Param */:\n if (char === '(') {\n state = 2 /* TokenizerState.ParamRegExp */;\n }\n else if (VALID_PARAM_RE.test(char)) {\n addCharToBuffer();\n }\n else {\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n }\n break;\n case 2 /* TokenizerState.ParamRegExp */:\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\n // it already works by escaping the closing )\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\n // is this really something people need since you can also write\n // /prefix_:p()_suffix\n if (char === ')') {\n // handle the escaped )\n if (customRe[customRe.length - 1] == '\\\\')\n customRe = customRe.slice(0, -1) + char;\n else\n state = 3 /* TokenizerState.ParamRegExpEnd */;\n }\n else {\n customRe += char;\n }\n break;\n case 3 /* TokenizerState.ParamRegExpEnd */:\n // same as finalizing a param\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n customRe = '';\n break;\n default:\n crash('Unknown state');\n break;\n }\n }\n if (state === 2 /* TokenizerState.ParamRegExp */)\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n consumeBuffer();\n finalizeSegment();\n // tokenCache.set(path, tokens)\n return tokens;\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\n const parser = tokensToParser(tokenizePath(record.path), options);\n // warn against params with the same name\n if ((process.env.NODE_ENV !== 'production')) {\n const existingKeys = new Set();\n for (const key of parser.keys) {\n if (existingKeys.has(key.name))\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n existingKeys.add(key.name);\n }\n }\n const matcher = assign(parser, {\n record,\n parent,\n // these needs to be populated by the parent\n children: [],\n alias: [],\n });\n if (parent) {\n // both are aliases or both are not aliases\n // we don't want to mix them because the order is used when\n // passing originalRecord in Matcher.addRoute\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\n parent.children.push(matcher);\n }\n return matcher;\n}\n\n/**\n * Creates a Router Matcher.\n *\n * @internal\n * @param routes - array of initial routes\n * @param globalOptions - global route options\n */\nfunction createRouterMatcher(routes, globalOptions) {\n // normalized ordered array of matchers\n const matchers = [];\n const matcherMap = new Map();\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n function getRecordMatcher(name) {\n return matcherMap.get(name);\n }\n function addRoute(record, parent, originalRecord) {\n // used later on to remove by name\n const isRootAdd = !originalRecord;\n const mainNormalizedRecord = normalizeRouteRecord(record);\n if ((process.env.NODE_ENV !== 'production')) {\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n }\n // we might be the child of an alias\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n const options = mergeOptions(globalOptions, record);\n // generate an array of records to correctly handle aliases\n const normalizedRecords = [\n mainNormalizedRecord,\n ];\n if ('alias' in record) {\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\n for (const alias of aliases) {\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\n // this allows us to hold a copy of the `components` option\n // so that async components cache is hold on the original record\n components: originalRecord\n ? originalRecord.record.components\n : mainNormalizedRecord.components,\n path: alias,\n // we might be the child of an alias\n aliasOf: originalRecord\n ? originalRecord.record\n : mainNormalizedRecord,\n // the aliases are always of the same kind as the original since they\n // are defined on the same record\n }));\n }\n }\n let matcher;\n let originalMatcher;\n for (const normalizedRecord of normalizedRecords) {\n const { path } = normalizedRecord;\n // Build up the path for nested routes if the child isn't an absolute\n // route. Only add the / delimiter if the child path isn't empty and if the\n // parent path doesn't have a trailing slash\n if (parent && path[0] !== '/') {\n const parentPath = parent.record.path;\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\n normalizedRecord.path =\n parent.record.path + (path && connectingSlash + path);\n }\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\n }\n // create the object beforehand, so it can be passed to children\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\n checkMissingParamsInAbsolutePath(matcher, parent);\n // if we are an alias we must tell the original record that we exist,\n // so we can be removed\n if (originalRecord) {\n originalRecord.alias.push(matcher);\n if ((process.env.NODE_ENV !== 'production')) {\n checkSameParams(originalRecord, matcher);\n }\n }\n else {\n // otherwise, the first record is the original and others are aliases\n originalMatcher = originalMatcher || matcher;\n if (originalMatcher !== matcher)\n originalMatcher.alias.push(matcher);\n // remove the route if named and only for the top record (avoid in nested calls)\n // this works because the original record is the first one\n if (isRootAdd && record.name && !isAliasRecord(matcher))\n removeRoute(record.name);\n }\n if (mainNormalizedRecord.children) {\n const children = mainNormalizedRecord.children;\n for (let i = 0; i < children.length; i++) {\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n }\n }\n // if there was no original record, then the first one was not an alias and all\n // other aliases (if any) need to reference this record when adding children\n originalRecord = originalRecord || matcher;\n // TODO: add normalized records for more flexibility\n // if (parent && isAliasRecord(originalRecord)) {\n // parent.children.push(originalRecord)\n // }\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\n // not be reached and pass through the catch all route\n if ((matcher.record.components &&\n Object.keys(matcher.record.components).length) ||\n matcher.record.name ||\n matcher.record.redirect) {\n insertMatcher(matcher);\n }\n }\n return originalMatcher\n ? () => {\n // since other matchers are aliases, they should be removed by the original matcher\n removeRoute(originalMatcher);\n }\n : noop;\n }\n function removeRoute(matcherRef) {\n if (isRouteName(matcherRef)) {\n const matcher = matcherMap.get(matcherRef);\n if (matcher) {\n matcherMap.delete(matcherRef);\n matchers.splice(matchers.indexOf(matcher), 1);\n matcher.children.forEach(removeRoute);\n matcher.alias.forEach(removeRoute);\n }\n }\n else {\n const index = matchers.indexOf(matcherRef);\n if (index > -1) {\n matchers.splice(index, 1);\n if (matcherRef.record.name)\n matcherMap.delete(matcherRef.record.name);\n matcherRef.children.forEach(removeRoute);\n matcherRef.alias.forEach(removeRoute);\n }\n }\n }\n function getRoutes() {\n return matchers;\n }\n function insertMatcher(matcher) {\n let i = 0;\n while (i < matchers.length &&\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\n // Adding children with empty path should still appear before the parent\n // https://github.com/vuejs/router/issues/1124\n (matcher.record.path !== matchers[i].record.path ||\n !isRecordChildOf(matcher, matchers[i])))\n i++;\n matchers.splice(i, 0, matcher);\n // only add the original record to the name map\n if (matcher.record.name && !isAliasRecord(matcher))\n matcherMap.set(matcher.record.name, matcher);\n }\n function resolve(location, currentLocation) {\n let matcher;\n let params = {};\n let path;\n let name;\n if ('name' in location && location.name) {\n matcher = matcherMap.get(location.name);\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n });\n // warn if the user is passing invalid params so they can debug it better when they get removed\n if ((process.env.NODE_ENV !== 'production')) {\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\n if (invalidParams.length) {\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n }\n }\n name = matcher.record.name;\n params = assign(\n // paramsFromLocation is a new object\n paramsFromLocation(currentLocation.params, \n // only keep params that exist in the resolved location\n // TODO: only keep optional params coming from a parent record\n matcher.keys.filter(k => !k.optional).map(k => k.name)), \n // discard any existing params in the current location that do not exist here\n // #1497 this ensures better active/exact matching\n location.params &&\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\n // throws if cannot be stringified\n path = matcher.stringify(params);\n }\n else if ('path' in location) {\n // no need to resolve the path with the matcher as it was provided\n // this also allows the user to control the encoding\n path = location.path;\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n }\n matcher = matchers.find(m => m.re.test(path));\n // matcher should have a value after the loop\n if (matcher) {\n // we know the matcher works because we tested the regexp\n params = matcher.parse(path);\n name = matcher.record.name;\n }\n // location is a relative path\n }\n else {\n // match by name or path of current route\n matcher = currentLocation.name\n ? matcherMap.get(currentLocation.name)\n : matchers.find(m => m.re.test(currentLocation.path));\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n currentLocation,\n });\n name = matcher.record.name;\n // since we are navigating to the same location, we don't need to pick the\n // params like when `name` is provided\n params = assign({}, currentLocation.params, location.params);\n path = matcher.stringify(params);\n }\n const matched = [];\n let parentMatcher = matcher;\n while (parentMatcher) {\n // reversed order so parents are at the beginning\n matched.unshift(parentMatcher.record);\n parentMatcher = parentMatcher.parent;\n }\n return {\n name,\n path,\n params,\n matched,\n meta: mergeMetaFields(matched),\n };\n }\n // add initial routes\n routes.forEach(route => addRoute(route));\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\n}\nfunction paramsFromLocation(params, keys) {\n const newParams = {};\n for (const key of keys) {\n if (key in params)\n newParams[key] = params[key];\n }\n return newParams;\n}\n/**\n * Normalizes a RouteRecordRaw. Creates a copy\n *\n * @param record\n * @returns the normalized version\n */\nfunction normalizeRouteRecord(record) {\n return {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: undefined,\n beforeEnter: record.beforeEnter,\n props: normalizeRecordProps(record),\n children: record.children || [],\n instances: {},\n leaveGuards: new Set(),\n updateGuards: new Set(),\n enterCallbacks: {},\n components: 'components' in record\n ? record.components || null\n : record.component && { default: record.component },\n };\n}\n/**\n * Normalize the optional `props` in a record to always be an object similar to\n * components. Also accept a boolean for components.\n * @param record\n */\nfunction normalizeRecordProps(record) {\n const propsObject = {};\n // props does not exist on redirect records, but we can set false directly\n const props = record.props || false;\n if ('component' in record) {\n propsObject.default = props;\n }\n else {\n // NOTE: we could also allow a function to be applied to every component.\n // Would need user feedback for use cases\n for (const name in record.components)\n propsObject[name] = typeof props === 'object' ? props[name] : props;\n }\n return propsObject;\n}\n/**\n * Checks if a record or any of its parent is an alias\n * @param record\n */\nfunction isAliasRecord(record) {\n while (record) {\n if (record.record.aliasOf)\n return true;\n record = record.parent;\n }\n return false;\n}\n/**\n * Merge meta fields of an array of records\n *\n * @param matched - array of matched records\n */\nfunction mergeMetaFields(matched) {\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n const options = {};\n for (const key in defaults) {\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n }\n return options;\n}\nfunction isSameParam(a, b) {\n return (a.name === b.name &&\n a.optional === b.optional &&\n a.repeatable === b.repeatable);\n}\n/**\n * Check if a path and its alias have the same required params\n *\n * @param a - original record\n * @param b - alias record\n */\nfunction checkSameParams(a, b) {\n for (const key of a.keys) {\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n for (const key of b.keys) {\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n}\n/**\n * A route with a name and a child with an empty path without a name should warn when adding the route\n *\n * @param mainNormalizedRecord - RouteRecordNormalized\n * @param parent - RouteRecordMatcher\n */\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n if (parent &&\n parent.record.name &&\n !mainNormalizedRecord.name &&\n !mainNormalizedRecord.path) {\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n for (const key of parent.keys) {\n if (!record.keys.find(isSameParam.bind(null, key)))\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n }\n}\nfunction isRecordChildOf(record, parent) {\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\n}\n\n/**\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\n * < > `\n *\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n * defines some extra characters to be encoded. Most browsers do not encode them\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n * plus `-._~`. This extra safety should be applied to query by patching the\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\n * encoded everywhere because some browsers like FF encode it when directly\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n */\n// const EXTRA_RESERVED_RE = /[!'()*]/g\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\nconst HASH_RE = /#/g; // %23\nconst AMPERSAND_RE = /&/g; // %26\nconst SLASH_RE = /\\//g; // %2F\nconst EQUAL_RE = /=/g; // %3D\nconst IM_RE = /\\?/g; // %3F\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\n * seems to be less flexible than not doing so and I can't find out the legacy\n * systems requiring this for regular requests like text/html. In the standard,\n * the encoding of the plus character is only mentioned for\n * application/x-www-form-urlencoded\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n * leave the plus character as is in queries. To be more flexible, we allow the\n * plus character on the query, but it can also be manually encoded by the user.\n *\n * Resources:\n * - https://url.spec.whatwg.org/#urlencoded-parsing\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n */\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\nconst ENC_CARET_RE = /%5E/g; // ^\nconst ENC_BACKTICK_RE = /%60/g; // `\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\nconst ENC_PIPE_RE = /%7C/g; // |\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\nconst ENC_SPACE_RE = /%20/g; // }\n/**\n * Encode characters that need to be encoded on the path, search and hash\n * sections of the URL.\n *\n * @internal\n * @param text - string to encode\n * @returns encoded string\n */\nfunction commonEncode(text) {\n return encodeURI('' + text)\n .replace(ENC_PIPE_RE, '|')\n .replace(ENC_BRACKET_OPEN_RE, '[')\n .replace(ENC_BRACKET_CLOSE_RE, ']');\n}\n/**\n * Encode characters that need to be encoded on the hash section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeHash(text) {\n return commonEncode(text)\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^');\n}\n/**\n * Encode characters that need to be encoded query values on the query\n * section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeQueryValue(text) {\n return (commonEncode(text)\n // Encode the space as +, encode the + to differentiate it from the space\n .replace(PLUS_RE, '%2B')\n .replace(ENC_SPACE_RE, '+')\n .replace(HASH_RE, '%23')\n .replace(AMPERSAND_RE, '%26')\n .replace(ENC_BACKTICK_RE, '`')\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^'));\n}\n/**\n * Like `encodeQueryValue` but also encodes the `=` character.\n *\n * @param text - string to encode\n */\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodePath(text) {\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL as a\n * param. This function encodes everything {@link encodePath} does plus the\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n * string instead.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeParam(text) {\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) {\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\n }\n return '' + text;\n}\n\n/**\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n * version with the leading `?` and without Should work as URLSearchParams\n\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n const eqPos = searchParam.indexOf('=');\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n/**\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n * doesn't prepend a `?`\n *\n * @internal\n *\n * @param query - query object to stringify\n * @returns string version of the query without the leading `?`\n */\nfunction stringifyQuery(query) {\n let search = '';\n for (let key in query) {\n const value = query[key];\n key = encodeQueryKey(key);\n if (value == null) {\n // only null adds the value\n if (value !== undefined) {\n search += (search.length ? '&' : '') + key;\n }\n continue;\n }\n // keep null values\n const values = isArray(value)\n ? value.map(v => v && encodeQueryValue(v))\n : [value && encodeQueryValue(value)];\n values.forEach(value => {\n // skip undefined values in arrays as if they were not present\n // smaller code than using filter\n if (value !== undefined) {\n // only append & with non-empty search\n search += (search.length ? '&' : '') + key;\n if (value != null)\n search += '=' + value;\n }\n });\n }\n return search;\n}\n/**\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n * numbers into strings, removing keys with an undefined value and replacing\n * undefined with null in arrays\n *\n * @param query - query object to normalize\n * @returns a normalized query object\n */\nfunction normalizeQuery(query) {\n const normalizedQuery = {};\n for (const key in query) {\n const value = query[key];\n if (value !== undefined) {\n normalizedQuery[key] = isArray(value)\n ? value.map(v => (v == null ? null : '' + v))\n : value == null\n ? value\n : '' + value;\n }\n }\n return normalizedQuery;\n}\n\n/**\n * RouteRecord being rendered by the closest ancestor Router View. Used for\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n * Location Matched\n *\n * @internal\n */\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\n/**\n * Allows overriding the router view depth to control which component in\n * `matched` is rendered. rvd stands for Router View Depth\n *\n * @internal\n */\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\n/**\n * Allows overriding the router instance returned by `useRouter` in tests. r\n * stands for router\n *\n * @internal\n */\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\n/**\n * Allows overriding the current route returned by `useRoute` in tests. rl\n * stands for route location\n *\n * @internal\n */\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\n/**\n * Allows overriding the current route used by router-view. Internally this is\n * used when the `route` prop is passed.\n *\n * @internal\n */\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n */\nfunction useCallbacks() {\n let handlers = [];\n function add(handler) {\n handlers.push(handler);\n return () => {\n const i = handlers.indexOf(handler);\n if (i > -1)\n handlers.splice(i, 1);\n };\n }\n function reset() {\n handlers = [];\n }\n return {\n add,\n list: () => handlers.slice(),\n reset,\n };\n}\n\nfunction registerGuard(record, name, guard) {\n const removeFromList = () => {\n record[name].delete(guard);\n };\n onUnmounted(removeFromList);\n onDeactivated(removeFromList);\n onActivated(() => {\n record[name].add(guard);\n });\n record[name].add(guard);\n}\n/**\n * Add a navigation guard that triggers whenever the component for the current\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\n * used in any component. The guard is removed when the component is unmounted.\n *\n * @param leaveGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteLeave(leaveGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\n}\n/**\n * Add a navigation guard that triggers whenever the current location is about\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n * component. The guard is removed when the component is unmounted.\n *\n * @param updateGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteUpdate(updateGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name) {\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\n const enterCallbackArray = record &&\n // name is defined if record is because of the function overload\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n return () => new Promise((resolve, reject) => {\n const next = (valid) => {\n if (valid === false) {\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\n from,\n to,\n }));\n }\n else if (valid instanceof Error) {\n reject(valid);\n }\n else if (isRouteLocation(valid)) {\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\n from: to,\n to: valid,\n }));\n }\n else {\n if (enterCallbackArray &&\n // since enterCallbackArray is truthy, both record and name also are\n record.enterCallbacks[name] === enterCallbackArray &&\n typeof valid === 'function') {\n enterCallbackArray.push(valid);\n }\n resolve();\n }\n };\n // wrapping with Promise.resolve allows it to work with both async and sync guards\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\n let guardCall = Promise.resolve(guardReturn);\n if (guard.length < 3)\n guardCall = guardCall.then(next);\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\n guardCall = guardCall.then(resolvedValue => {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n return Promise.reject(new Error('Invalid navigation guard'));\n }\n return resolvedValue;\n });\n }\n else if (guardReturn !== undefined) {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n reject(new Error('Invalid navigation guard'));\n return;\n }\n }\n }\n guardCall.catch(err => reject(err));\n });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n let called = 0;\n return function () {\n if (called++ === 1)\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n // @ts-expect-error: we put it in the original one because it's easier to check\n next._called = true;\n if (called === 1)\n next.apply(null, arguments);\n };\n}\nfunction extractComponentsGuards(matched, guardType, to, from) {\n const guards = [];\n for (const record of matched) {\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\n ` or \"children\" property.`);\n }\n for (const name in record.components) {\n let rawComponent = record.components[name];\n if ((process.env.NODE_ENV !== 'production')) {\n if (!rawComponent ||\n (typeof rawComponent !== 'object' &&\n typeof rawComponent !== 'function')) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\n ` a valid component. Received \"${String(rawComponent)}\".`);\n // throw to ensure we stop here but warn to ensure the message isn't\n // missed by the user\n throw new Error('Invalid route component');\n }\n else if ('then' in rawComponent) {\n // warn if user wrote import('/component.vue') instead of () =>\n // import('./component.vue')\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\n `Promise instead of a function that returns a Promise. Did you ` +\n `write \"import('./MyPage.vue')\" instead of ` +\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\n `production if not fixed.`);\n const promise = rawComponent;\n rawComponent = () => promise;\n }\n else if (rawComponent.__asyncLoader &&\n // warn only once per component\n !rawComponent.__warnedDefineAsync) {\n rawComponent.__warnedDefineAsync = true;\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\n `using \"defineAsyncComponent()\". ` +\n `Write \"() => import('./MyPage.vue')\" instead of ` +\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n }\n }\n // skip update and leave guards if the route component is not mounted\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\n continue;\n if (isRouteComponent(rawComponent)) {\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = rawComponent.__vccOpts || rawComponent;\n const guard = options[guardType];\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\n }\n else {\n // start requesting the chunk already\n let componentPromise = rawComponent();\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n componentPromise = Promise.resolve(componentPromise);\n }\n guards.push(() => componentPromise.then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = resolvedComponent.__vccOpts || resolvedComponent;\n const guard = options[guardType];\n return guard && guardToPromiseFn(guard, to, from, record, name)();\n }));\n }\n }\n }\n return guards;\n}\n/**\n * Allows differentiating lazy components from functional components and vue-class-component\n * @internal\n *\n * @param component\n */\nfunction isRouteComponent(component) {\n return (typeof component === 'object' ||\n 'displayName' in component ||\n 'props' in component ||\n '__vccOpts' in component);\n}\n/**\n * Ensures a route is loaded, so it can be passed as o prop to ``.\n *\n * @param route - resolved route to load\n */\nfunction loadRouteLocation(route) {\n return route.matched.every(record => record.redirect)\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\n : Promise.all(route.matched.map(record => record.components &&\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\n const rawComponent = record.components[name];\n if (typeof rawComponent === 'function' &&\n !('displayName' in rawComponent)) {\n promises.push(rawComponent().then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n return;\n }));\n }\n return promises;\n }, [])))).then(() => route);\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\n// `isExactActive` behavior should go through an RFC\nfunction useLink(props) {\n const router = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n const route = computed(() => router.resolve(unref(props.to)));\n const activeRecordIndex = computed(() => {\n const { matched } = route.value;\n const { length } = matched;\n const routeMatched = matched[length - 1];\n const currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length)\n return -1;\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n if (index > -1)\n return index;\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[length - 2]);\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n getOriginalPath(routeMatched) === parentRecordPath &&\n // avoid comparing the child with its parent\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\n : index);\n });\n const isActive = computed(() => activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, route.value.params));\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, route.value.params));\n function navigate(e = {}) {\n if (guardEvent(e)) {\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\n // avoid uncaught errors are they are logged anyway\n ).catch(noop);\n }\n return Promise.resolve();\n }\n // devtools only\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n const instance = getCurrentInstance();\n if (instance) {\n const linkContextDevtools = {\n route: route.value,\n isActive: isActive.value,\n isExactActive: isExactActive.value,\n };\n // @ts-expect-error: this is internal\n instance.__vrl_devtools = instance.__vrl_devtools || [];\n // @ts-expect-error: this is internal\n instance.__vrl_devtools.push(linkContextDevtools);\n watchEffect(() => {\n linkContextDevtools.route = route.value;\n linkContextDevtools.isActive = isActive.value;\n linkContextDevtools.isExactActive = isExactActive.value;\n }, { flush: 'post' });\n }\n }\n /**\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n */\n return {\n route,\n href: computed(() => route.value.href),\n isActive,\n isExactActive,\n navigate,\n };\n}\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterLink',\n compatConfig: { MODE: 3 },\n props: {\n to: {\n type: [String, Object],\n required: true,\n },\n replace: Boolean,\n activeClass: String,\n // inactiveClass: String,\n exactActiveClass: String,\n custom: Boolean,\n ariaCurrentValue: {\n type: String,\n default: 'page',\n },\n },\n useLink,\n setup(props, { slots }) {\n const link = reactive(useLink(props));\n const { options } = inject(routerKey);\n const elClass = computed(() => ({\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\n // [getLinkClass(\n // props.inactiveClass,\n // options.linkInactiveClass,\n // 'router-link-inactive'\n // )]: !link.isExactActive,\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\n }));\n return () => {\n const children = slots.default && slots.default(link);\n return props.custom\n ? children\n : h('a', {\n 'aria-current': link.isExactActive\n ? props.ariaCurrentValue\n : null,\n href: link.href,\n // this would override user added attrs but Vue will still add\n // the listener, so we end up triggering both\n onClick: link.navigate,\n class: elClass.value,\n }, children);\n };\n },\n});\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to render a link that triggers a navigation on click.\n */\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented)\n return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0)\n return;\n // don't redirect if `target=\"_blank\"`\n // @ts-expect-error getAttribute does exist\n if (e.currentTarget && e.currentTarget.getAttribute) {\n // @ts-expect-error getAttribute exists\n const target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target))\n return;\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault)\n e.preventDefault();\n return true;\n}\nfunction includesParams(outer, inner) {\n for (const key in inner) {\n const innerValue = inner[key];\n const outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue)\n return false;\n }\n else {\n if (!isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some((value, i) => value !== outerValue[i]))\n return false;\n }\n }\n return true;\n}\n/**\n * Get the original path value of a record by following its aliasOf\n * @param record\n */\nfunction getOriginalPath(record) {\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\n}\n/**\n * Utility class to get the active class based on defaults.\n * @param propClass\n * @param globalClass\n * @param defaultClass\n */\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\n ? propClass\n : globalClass != null\n ? globalClass\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterView',\n // #674 we manually inherit them\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n default: 'default',\n },\n route: Object,\n },\n // Better compat for @vue/compat users\n // https://github.com/vuejs/router/issues/1315\n compatConfig: { MODE: 3 },\n setup(props, { attrs, slots }) {\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\n const injectedRoute = inject(routerViewLocationKey);\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\n const injectedDepth = inject(viewDepthKey, 0);\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\n // that are used to reuse the `path` property\n const depth = computed(() => {\n let initialDepth = unref(injectedDepth);\n const { matched } = routeToDisplay.value;\n let matchedRoute;\n while ((matchedRoute = matched[initialDepth]) &&\n !matchedRoute.components) {\n initialDepth++;\n }\n return initialDepth;\n });\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n provide(viewDepthKey, computed(() => depth.value + 1));\n provide(matchedRouteKey, matchedRouteRef);\n provide(routerViewLocationKey, routeToDisplay);\n const viewRef = ref();\n // watch at the same time the component instance, the route record we are\n // rendering, and the name\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n // copy reused instances\n if (to) {\n // this will update the instance for new instances as well as reused\n // instances when navigating to a new route\n to.instances[name] = instance;\n // the component instance is reused for a different route or name, so\n // we copy any saved update or leave guards. With async setup, the\n // mounting component will mount before the matchedRoute changes,\n // making instance === oldInstance, so we check if guards have been\n // added before. This works because we remove guards when\n // unmounting/deactivating components\n if (from && from !== to && instance && instance === oldInstance) {\n if (!to.leaveGuards.size) {\n to.leaveGuards = from.leaveGuards;\n }\n if (!to.updateGuards.size) {\n to.updateGuards = from.updateGuards;\n }\n }\n }\n // trigger beforeRouteEnter next callbacks\n if (instance &&\n to &&\n // if there is no instance but to and from are the same this might be\n // the first visit\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\n }\n }, { flush: 'post' });\n return () => {\n const route = routeToDisplay.value;\n // we need the value at the time we render because when we unmount, we\n // navigated to a different location so the value is different\n const currentName = props.name;\n const matchedRoute = matchedRouteRef.value;\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\n if (!ViewComponent) {\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\n }\n // props from route configuration\n const routePropsOption = matchedRoute.props[currentName];\n const routeProps = routePropsOption\n ? routePropsOption === true\n ? route.params\n : typeof routePropsOption === 'function'\n ? routePropsOption(route)\n : routePropsOption\n : null;\n const onVnodeUnmounted = vnode => {\n // remove the instance reference to prevent leak\n if (vnode.component.isUnmounted) {\n matchedRoute.instances[currentName] = null;\n }\n };\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\n onVnodeUnmounted,\n ref: viewRef,\n }));\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n isBrowser &&\n component.ref) {\n // TODO: can display if it's an alias, its props\n const info = {\n depth: depth.value,\n name: matchedRoute.name,\n path: matchedRoute.path,\n meta: matchedRoute.meta,\n };\n const internalInstances = isArray(component.ref)\n ? component.ref.map(r => r.i)\n : [component.ref.i];\n internalInstances.forEach(instance => {\n // @ts-expect-error\n instance.__vrv_devtools = info;\n });\n }\n return (\n // pass the vnode to the slot as a prop.\n // h and both accept vnodes\n normalizeSlot(slots.default, { Component: component, route }) ||\n component);\n };\n },\n});\nfunction normalizeSlot(slot, data) {\n if (!slot)\n return null;\n const slotContent = slot(data);\n return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to display the current route the user is at.\n */\nconst RouterView = RouterViewImpl;\n// warn against deprecated usage with & \n// due to functional component being no longer eager in Vue 3\nfunction warnDeprecatedUsage() {\n const instance = getCurrentInstance();\n const parentName = instance.parent && instance.parent.type.name;\n const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n if (parentName &&\n (parentName === 'KeepAlive' || parentName.includes('Transition')) &&\n typeof parentSubTreeType === 'object' &&\n parentSubTreeType.name === 'RouterView') {\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\n warn(` can no longer be used directly inside or .\\n` +\n `Use slot props instead:\\n\\n` +\n `\\n` +\n ` <${comp}>\\n` +\n ` \\n` +\n ` \\n` +\n ``);\n }\n}\n\n/**\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n *\n * @param routeLocation - routeLocation to format\n * @param tooltip - optional tooltip\n * @returns a copy of the routeLocation\n */\nfunction formatRouteLocation(routeLocation, tooltip) {\n const copy = assign({}, routeLocation, {\n // remove variables that can contain vue instances\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\n });\n return {\n _custom: {\n type: null,\n readOnly: true,\n display: routeLocation.fullPath,\n tooltip,\n value: copy,\n },\n };\n}\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\n// to support multiple router instances\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n // Take over router.beforeEach and afterEach\n // make sure we are not registering the devtool twice\n if (router.__hasDevtools)\n return;\n router.__hasDevtools = true;\n // increment to support multiple router instances\n const id = routerId++;\n setupDevtoolsPlugin({\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\n label: 'Vue Router',\n packageName: 'vue-router',\n homepage: 'https://router.vuejs.org',\n logo: 'https://router.vuejs.org/logo.png',\n componentStateTypes: ['Routing'],\n app,\n }, api => {\n if (typeof api.now !== 'function') {\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n // display state added by the router\n api.on.inspectComponent((payload, ctx) => {\n if (payload.instanceData) {\n payload.instanceData.state.push({\n type: 'Routing',\n key: '$route',\n editable: false,\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\n });\n }\n });\n // mark router-link as active and display tags on router views\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n if (componentInstance.__vrv_devtools) {\n const info = componentInstance.__vrv_devtools;\n node.tags.push({\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\n textColor: 0,\n tooltip: 'This component is rendered by <router-view>',\n backgroundColor: PINK_500,\n });\n }\n // if multiple useLink are used\n if (isArray(componentInstance.__vrl_devtools)) {\n componentInstance.__devtoolsApi = api;\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\n let backgroundColor = ORANGE_400;\n let tooltip = '';\n if (devtoolsData.isExactActive) {\n backgroundColor = LIME_500;\n tooltip = 'This is exactly active';\n }\n else if (devtoolsData.isActive) {\n backgroundColor = BLUE_600;\n tooltip = 'This link is active';\n }\n node.tags.push({\n label: devtoolsData.route.path,\n textColor: 0,\n tooltip,\n backgroundColor,\n });\n });\n }\n });\n watch(router.currentRoute, () => {\n // refresh active state\n refreshRoutesView();\n api.notifyComponentUpdate();\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n const navigationsLayerId = 'router:navigations:' + id;\n api.addTimelineLayer({\n id: navigationsLayerId,\n label: `Router${id ? ' ' + id : ''} Navigations`,\n color: 0x40a8c4,\n });\n // const errorsLayerId = 'router:errors'\n // api.addTimelineLayer({\n // id: errorsLayerId,\n // label: 'Router Errors',\n // color: 0xea5455,\n // })\n router.onError((error, to) => {\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'Error during Navigation',\n subtitle: to.fullPath,\n logType: 'error',\n time: api.now(),\n data: { error },\n groupId: to.meta.__navigationId,\n },\n });\n });\n // attached to `meta` and used to group events\n let navigationId = 0;\n router.beforeEach((to, from) => {\n const data = {\n guard: formatDisplay('beforeEach'),\n from: formatRouteLocation(from, 'Current Location during this navigation'),\n to: formatRouteLocation(to, 'Target location'),\n };\n // Used to group navigations together, hide from devtools\n Object.defineProperty(to.meta, '__navigationId', {\n value: navigationId++,\n });\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n time: api.now(),\n title: 'Start of navigation',\n subtitle: to.fullPath,\n data,\n groupId: to.meta.__navigationId,\n },\n });\n });\n router.afterEach((to, from, failure) => {\n const data = {\n guard: formatDisplay('afterEach'),\n };\n if (failure) {\n data.failure = {\n _custom: {\n type: Error,\n readOnly: true,\n display: failure ? failure.message : '',\n tooltip: 'Navigation Failure',\n value: failure,\n },\n };\n data.status = formatDisplay('❌');\n }\n else {\n data.status = formatDisplay('✅');\n }\n // we set here to have the right order\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\n data.to = formatRouteLocation(to, 'Target location');\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'End of navigation',\n subtitle: to.fullPath,\n time: api.now(),\n data,\n logType: failure ? 'warning' : 'default',\n groupId: to.meta.__navigationId,\n },\n });\n });\n /**\n * Inspector of Existing routes\n */\n const routerInspectorId = 'router-inspector:' + id;\n api.addInspector({\n id: routerInspectorId,\n label: 'Routes' + (id ? ' ' + id : ''),\n icon: 'book',\n treeFilterPlaceholder: 'Search routes',\n });\n function refreshRoutesView() {\n // the routes view isn't active\n if (!activeRoutesPayload)\n return;\n const payload = activeRoutesPayload;\n // children routes will appear as nested\n let routes = matcher.getRoutes().filter(route => !route.parent ||\n // these routes have a parent with no component which will not appear in the view\n // therefore we still need to include them\n !route.parent.record.components);\n // reset match state to false\n routes.forEach(resetMatchStateOnRouteRecord);\n // apply a match state if there is a payload\n if (payload.filter) {\n routes = routes.filter(route => \n // save matches state based on the payload\n isRouteMatching(route, payload.filter.toLowerCase()));\n }\n // mark active routes\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\n }\n let activeRoutesPayload;\n api.on.getInspectorTree(payload => {\n activeRoutesPayload = payload;\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n refreshRoutesView();\n }\n });\n /**\n * Display information about the currently selected route record\n */\n api.on.getInspectorState(payload => {\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n const routes = matcher.getRoutes();\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\n if (route) {\n payload.state = {\n options: formatRouteRecordMatcherForStateInspector(route),\n };\n }\n }\n });\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n}\nfunction modifierForKey(key) {\n if (key.optional) {\n return key.repeatable ? '*' : '?';\n }\n else {\n return key.repeatable ? '+' : '';\n }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n const { record } = route;\n const fields = [\n { editable: false, key: 'path', value: record.path },\n ];\n if (record.name != null) {\n fields.push({\n editable: false,\n key: 'name',\n value: record.name,\n });\n }\n fields.push({ editable: false, key: 'regexp', value: route.re });\n if (route.keys.length) {\n fields.push({\n editable: false,\n key: 'keys',\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.keys\n .map(key => `${key.name}${modifierForKey(key)}`)\n .join(' '),\n tooltip: 'Param keys',\n value: route.keys,\n },\n },\n });\n }\n if (record.redirect != null) {\n fields.push({\n editable: false,\n key: 'redirect',\n value: record.redirect,\n });\n }\n if (route.alias.length) {\n fields.push({\n editable: false,\n key: 'aliases',\n value: route.alias.map(alias => alias.record.path),\n });\n }\n if (Object.keys(route.record.meta).length) {\n fields.push({\n editable: false,\n key: 'meta',\n value: route.record.meta,\n });\n }\n fields.push({\n key: 'score',\n editable: false,\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.score.map(score => score.join(', ')).join(' | '),\n tooltip: 'Score used to sort routes',\n value: route.score,\n },\n },\n });\n return fields;\n}\n/**\n * Extracted from tailwind palette\n */\nconst PINK_500 = 0xec4899;\nconst BLUE_600 = 0x2563eb;\nconst LIME_500 = 0x84cc16;\nconst CYAN_400 = 0x22d3ee;\nconst ORANGE_400 = 0xfb923c;\n// const GRAY_100 = 0xf4f4f5\nconst DARK = 0x666666;\nfunction formatRouteRecordForInspector(route) {\n const tags = [];\n const { record } = route;\n if (record.name != null) {\n tags.push({\n label: String(record.name),\n textColor: 0,\n backgroundColor: CYAN_400,\n });\n }\n if (record.aliasOf) {\n tags.push({\n label: 'alias',\n textColor: 0,\n backgroundColor: ORANGE_400,\n });\n }\n if (route.__vd_match) {\n tags.push({\n label: 'matches',\n textColor: 0,\n backgroundColor: PINK_500,\n });\n }\n if (route.__vd_exactActive) {\n tags.push({\n label: 'exact',\n textColor: 0,\n backgroundColor: LIME_500,\n });\n }\n if (route.__vd_active) {\n tags.push({\n label: 'active',\n textColor: 0,\n backgroundColor: BLUE_600,\n });\n }\n if (record.redirect) {\n tags.push({\n label: typeof record.redirect === 'string'\n ? `redirect: ${record.redirect}`\n : 'redirects',\n textColor: 0xffffff,\n backgroundColor: DARK,\n });\n }\n // add an id to be able to select it. Using the `path` is not possible because\n // empty path children would collide with their parents\n let id = record.__vd_id;\n if (id == null) {\n id = String(routeRecordId++);\n record.__vd_id = id;\n }\n return {\n id,\n label: record.path,\n tags,\n children: route.children.map(formatRouteRecordForInspector),\n };\n}\n// incremental id for route records and inspector state\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n // no route will be active if matched is empty\n // reset the matching state\n const isExactActive = currentRoute.matched.length &&\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n route.__vd_exactActive = route.__vd_active = isExactActive;\n if (!isExactActive) {\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\n }\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n route.__vd_match = false;\n route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\n route.__vd_match = false;\n if (!found || found.length < 3) {\n return false;\n }\n // use a regexp without $ at the end to match nested routes better\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\n if (nonEndingRE.test(filter)) {\n // mark children as matches\n route.children.forEach(child => isRouteMatching(child, filter));\n // exception case: `/`\n if (route.record.path !== '/' || filter === '/') {\n route.__vd_match = route.re.test(filter);\n return true;\n }\n // hide the / route\n return false;\n }\n const path = route.record.path.toLowerCase();\n const decodedPath = decode(path);\n // also allow partial matching on the path\n if (!filter.startsWith('/') &&\n (decodedPath.includes(filter) || path.includes(filter)))\n return true;\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\n return true;\n if (route.record.name && String(route.record.name).includes(filter))\n return true;\n return route.children.some(child => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n const ret = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n // @ts-expect-error\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\n/**\n * Creates a Router instance that can be used by a Vue app.\n *\n * @param options - {@link RouterOptions}\n */\nfunction createRouter(options) {\n const matcher = createRouterMatcher(options.routes, options);\n const parseQuery$1 = options.parseQuery || parseQuery;\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n const routerHistory = options.history;\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\n ' https://next.router.vuejs.org/api/#history.');\n const beforeGuards = useCallbacks();\n const beforeResolveGuards = useCallbacks();\n const afterGuards = useCallbacks();\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n let pendingLocation = START_LOCATION_NORMALIZED;\n // leave the scrollRestoration if no scrollBehavior is provided\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\n const encodeParams = applyToParams.bind(null, encodeParam);\n const decodeParams = \n // @ts-expect-error: intentionally avoid the type check\n applyToParams.bind(null, decode);\n function addRoute(parentOrRoute, route) {\n let parent;\n let record;\n if (isRouteName(parentOrRoute)) {\n parent = matcher.getRecordMatcher(parentOrRoute);\n record = route;\n }\n else {\n record = parentOrRoute;\n }\n return matcher.addRoute(record, parent);\n }\n function removeRoute(name) {\n const recordMatcher = matcher.getRecordMatcher(name);\n if (recordMatcher) {\n matcher.removeRoute(recordMatcher);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\n }\n }\n function getRoutes() {\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\n }\n function hasRoute(name) {\n return !!matcher.getRecordMatcher(name);\n }\n function resolve(rawLocation, currentLocation) {\n // const objectLocation = routerLocationAsObject(rawLocation)\n // we create a copy to modify it later\n currentLocation = assign({}, currentLocation || currentRoute.value);\n if (typeof rawLocation === 'string') {\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n const href = routerHistory.createHref(locationNormalized.fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//'))\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation}\"`);\n }\n }\n // locationNormalized is always a new object\n return assign(locationNormalized, matchedRoute, {\n params: decodeParams(matchedRoute.params),\n hash: decode(locationNormalized.hash),\n redirectedFrom: undefined,\n href,\n });\n }\n let matcherLocation;\n // path could be relative in object as well\n if ('path' in rawLocation) {\n if ((process.env.NODE_ENV !== 'production') &&\n 'params' in rawLocation &&\n !('name' in rawLocation) &&\n // @ts-expect-error: the type is never\n Object.keys(rawLocation.params).length) {\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n }\n matcherLocation = assign({}, rawLocation, {\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\n });\n }\n else {\n // remove any nullish param\n const targetParams = assign({}, rawLocation.params);\n for (const key in targetParams) {\n if (targetParams[key] == null) {\n delete targetParams[key];\n }\n }\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\n matcherLocation = assign({}, rawLocation, {\n params: encodeParams(targetParams),\n });\n // current location params are decoded, we need to encode them in case the\n // matcher merges the params\n currentLocation.params = encodeParams(currentLocation.params);\n }\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n const hash = rawLocation.hash || '';\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n }\n // the matcher might have merged current location params, so\n // we need to run the decoding again\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n hash: encodeHash(hash),\n path: matchedRoute.path,\n }));\n const href = routerHistory.createHref(fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//')) {\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n }\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\n }\n }\n return assign({\n fullPath,\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\n // hash\n hash,\n query: \n // if the user is using a custom query lib like qs, we might have\n // nested objects, so we keep the query as is, meaning it can contain\n // numbers at `$route.query`, but at the point, the user will have to\n // use their own type anyway.\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\n stringifyQuery$1 === stringifyQuery\n ? normalizeQuery(rawLocation.query)\n : (rawLocation.query || {}),\n }, matchedRoute, {\n redirectedFrom: undefined,\n href,\n });\n }\n function locationAsObject(to) {\n return typeof to === 'string'\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\n : assign({}, to);\n }\n function checkCanceledNavigation(to, from) {\n if (pendingLocation !== to) {\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\n from,\n to,\n });\n }\n }\n function push(to) {\n return pushWithRedirect(to);\n }\n function replace(to) {\n return push(assign(locationAsObject(to), { replace: true }));\n }\n function handleRedirectRecord(to) {\n const lastMatched = to.matched[to.matched.length - 1];\n if (lastMatched && lastMatched.redirect) {\n const { redirect } = lastMatched;\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\n if (typeof newTargetLocation === 'string') {\n newTargetLocation =\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\n ? (newTargetLocation = locationAsObject(newTargetLocation))\n : // force empty params\n { path: newTargetLocation };\n // @ts-expect-error: force empty params when a string is passed to let\n // the router parse them again\n newTargetLocation.params = {};\n }\n if ((process.env.NODE_ENV !== 'production') &&\n !('path' in newTargetLocation) &&\n !('name' in newTargetLocation)) {\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n throw new Error('Invalid redirect');\n }\n return assign({\n query: to.query,\n hash: to.hash,\n // avoid transferring params if the redirect has a path\n params: 'path' in newTargetLocation ? {} : to.params,\n }, newTargetLocation);\n }\n }\n function pushWithRedirect(to, redirectedFrom) {\n const targetLocation = (pendingLocation = resolve(to));\n const from = currentRoute.value;\n const data = to.state;\n const force = to.force;\n // to could be a string where `replace` is a function\n const replace = to.replace === true;\n const shouldRedirect = handleRedirectRecord(targetLocation);\n if (shouldRedirect)\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n state: typeof shouldRedirect === 'object'\n ? assign({}, data, shouldRedirect.state)\n : data,\n force,\n replace,\n }), \n // keep original redirectedFrom if it exists\n redirectedFrom || targetLocation);\n // if it was a redirect we already called `pushWithRedirect` above\n const toLocation = targetLocation;\n toLocation.redirectedFrom = redirectedFrom;\n let failure;\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\n // trigger scroll to allow scrolling to the same anchor\n handleScroll(from, from, \n // this is a push, the only way for it to be triggered from a\n // history.listen is with a redirect, which makes it become a push\n true, \n // This cannot be the first navigation because the initial location\n // cannot be manually navigated to\n false);\n }\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\n .catch((error) => isNavigationFailure(error)\n ? // navigation redirects still mark the router as ready\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\n ? error\n : markAsReady(error) // also returns the error\n : // reject any unknown error\n triggerError(error, toLocation, from))\n .then((failure) => {\n if (failure) {\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n if ((process.env.NODE_ENV !== 'production') &&\n // we are redirecting to the same location we were already at\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\n // and we have done it a couple of times\n redirectedFrom &&\n // @ts-expect-error: added only in dev\n (redirectedFrom._count = redirectedFrom._count\n ? // @ts-expect-error\n redirectedFrom._count + 1\n : 1) > 30) {\n warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\n }\n return pushWithRedirect(\n // keep options\n assign({\n // preserve an existing replacement but allow the redirect to override it\n replace,\n }, locationAsObject(failure.to), {\n state: typeof failure.to === 'object'\n ? assign({}, data, failure.to.state)\n : data,\n force,\n }), \n // preserve the original redirectedFrom if any\n redirectedFrom || toLocation);\n }\n }\n else {\n // if we fail we don't finalize the navigation\n failure = finalizeNavigation(toLocation, from, true, replace, data);\n }\n triggerAfterEach(toLocation, from, failure);\n return failure;\n });\n }\n /**\n * Helper to reject and skip all navigation guards if a new navigation happened\n * @param to\n * @param from\n */\n function checkCanceledNavigationAndReject(to, from) {\n const error = checkCanceledNavigation(to, from);\n return error ? Promise.reject(error) : Promise.resolve();\n }\n function runWithContext(fn) {\n const app = installedApps.values().next().value;\n // support Vue < 3.3\n return app && typeof app.runWithContext === 'function'\n ? app.runWithContext(fn)\n : fn();\n }\n // TODO: refactor the whole before guards by internally using router.beforeEach\n function navigate(to, from) {\n let guards;\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n // all components here have been resolved once because we are leaving\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\n // leavingRecords is already reversed\n for (const record of leavingRecords) {\n record.leaveGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeRouteLeave guards\n return (runGuardQueue(guards)\n .then(() => {\n // check global guards beforeEach\n guards = [];\n for (const guard of beforeGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n .then(() => {\n // check in components beforeRouteUpdate\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\n for (const record of updatingRecords) {\n record.updateGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check the route beforeEnter\n guards = [];\n for (const record of enteringRecords) {\n // do not trigger beforeEnter on reused views\n if (record.beforeEnter) {\n if (isArray(record.beforeEnter)) {\n for (const beforeEnter of record.beforeEnter)\n guards.push(guardToPromiseFn(beforeEnter, to, from));\n }\n else {\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n }\n }\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\n // clear existing enterCallbacks, these are added by extractComponentsGuards\n to.matched.forEach(record => (record.enterCallbacks = {}));\n // check in-component beforeRouteEnter\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check global guards beforeResolve\n guards = [];\n for (const guard of beforeResolveGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n // catch any navigation canceled\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\n ? err\n : Promise.reject(err)));\n }\n function triggerAfterEach(to, from, failure) {\n // navigation is confirmed, call afterGuards\n // TODO: wrap with error handlers\n afterGuards\n .list()\n .forEach(guard => runWithContext(() => guard(to, from, failure)));\n }\n /**\n * - Cleans up any navigation guards\n * - Changes the url if necessary\n * - Calls the scrollBehavior\n */\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\n // a more recent navigation took place\n const error = checkCanceledNavigation(toLocation, from);\n if (error)\n return error;\n // only consider as push if it's not the first navigation\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n const state = !isBrowser ? {} : history.state;\n // change URL only if the user did a push/replace and if it's not the initial navigation because\n // it's just reflecting the url\n if (isPush) {\n // on the initial navigation, we want to reuse the scroll position from\n // history state if it exists\n if (replace || isFirstNavigation)\n routerHistory.replace(toLocation.fullPath, assign({\n scroll: isFirstNavigation && state && state.scroll,\n }, data));\n else\n routerHistory.push(toLocation.fullPath, data);\n }\n // accept current navigation\n currentRoute.value = toLocation;\n handleScroll(toLocation, from, isPush, isFirstNavigation);\n markAsReady();\n }\n let removeHistoryListener;\n // attach listener to history to trigger navigations\n function setupListeners() {\n // avoid setting up listeners twice due to an invalid first navigation\n if (removeHistoryListener)\n return;\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\n if (!router.listening)\n return;\n // cannot be a redirect route because it was in history\n const toLocation = resolve(to);\n // due to dynamic routing, and to hash history with manual navigation\n // (manually changing the url or calling history.hash = '#/somewhere'),\n // there could be a redirect record in history\n const shouldRedirect = handleRedirectRecord(toLocation);\n if (shouldRedirect) {\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\n return;\n }\n pendingLocation = toLocation;\n const from = currentRoute.value;\n // TODO: should be moved to web history?\n if (isBrowser) {\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n }\n navigate(toLocation, from)\n .catch((error) => {\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n return error;\n }\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\n // false) but this is bug prone as we have no way to wait the\n // navigation to be finished before calling pushWithRedirect. Using\n // a setTimeout of 16ms seems to work but there is no guarantee for\n // it to work on every browser. So instead we do not restore the\n // history entry and trigger a new navigation as requested by the\n // navigation guard.\n // the error is already handled by router.push we just want to avoid\n // logging the error\n pushWithRedirect(error.to, toLocation\n // avoid an uncaught rejection, let push call triggerError\n )\n .then(failure => {\n // manual change in hash history #916 ending up in the URL not\n // changing, but it was changed by the manual url change, so we\n // need to manually change it ourselves\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\n !info.delta &&\n info.type === NavigationType.pop) {\n routerHistory.go(-1, false);\n }\n })\n .catch(noop);\n // avoid the then branch\n return Promise.reject();\n }\n // do not restore history on unknown direction\n if (info.delta) {\n routerHistory.go(-info.delta, false);\n }\n // unrecognized error, transfer to the global handler\n return triggerError(error, toLocation, from);\n })\n .then((failure) => {\n failure =\n failure ||\n finalizeNavigation(\n // after navigation, all matched components are resolved\n toLocation, from, false);\n // revert the navigation\n if (failure) {\n if (info.delta &&\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\n // entry while a different route is displayed\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n routerHistory.go(-info.delta, false);\n }\n else if (info.type === NavigationType.pop &&\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\n // manual change in hash history #916\n // it's like a push but lacks the information of the direction\n routerHistory.go(-1, false);\n }\n }\n triggerAfterEach(toLocation, from, failure);\n })\n // avoid warnings in the console about uncaught rejections, they are logged by triggerErrors\n .catch(noop);\n });\n }\n // Initialization and Errors\n let readyHandlers = useCallbacks();\n let errorListeners = useCallbacks();\n let ready;\n /**\n * Trigger errorListeners added via onError and throws the error as well\n *\n * @param error - error to throw\n * @param to - location we were navigating to when the error happened\n * @param from - location we were navigating from when the error happened\n * @returns the error as a rejected promise\n */\n function triggerError(error, to, from) {\n markAsReady(error);\n const list = errorListeners.list();\n if (list.length) {\n list.forEach(handler => handler(error, to, from));\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('uncaught error during route navigation:');\n }\n console.error(error);\n }\n // reject the error no matter there were error listeners or not\n return Promise.reject(error);\n }\n function isReady() {\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n return Promise.resolve();\n return new Promise((resolve, reject) => {\n readyHandlers.add([resolve, reject]);\n });\n }\n function markAsReady(err) {\n if (!ready) {\n // still not ready if an error happened\n ready = !err;\n setupListeners();\n readyHandlers\n .list()\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\n readyHandlers.reset();\n }\n return err;\n }\n // Scroll behavior\n function handleScroll(to, from, isPush, isFirstNavigation) {\n const { scrollBehavior } = options;\n if (!isBrowser || !scrollBehavior)\n return Promise.resolve();\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\n ((isFirstNavigation || !isPush) &&\n history.state &&\n history.state.scroll) ||\n null;\n return nextTick()\n .then(() => scrollBehavior(to, from, scrollPosition))\n .then(position => position && scrollToPosition(position))\n .catch(err => triggerError(err, to, from));\n }\n const go = (delta) => routerHistory.go(delta);\n let started;\n const installedApps = new Set();\n const router = {\n currentRoute,\n listening: true,\n addRoute,\n removeRoute,\n hasRoute,\n getRoutes,\n resolve,\n options,\n push,\n replace,\n go,\n back: () => go(-1),\n forward: () => go(1),\n beforeEach: beforeGuards.add,\n beforeResolve: beforeResolveGuards.add,\n afterEach: afterGuards.add,\n onError: errorListeners.add,\n isReady,\n install(app) {\n const router = this;\n app.component('RouterLink', RouterLink);\n app.component('RouterView', RouterView);\n app.config.globalProperties.$router = router;\n Object.defineProperty(app.config.globalProperties, '$route', {\n enumerable: true,\n get: () => unref(currentRoute),\n });\n // this initial navigation is only necessary on client, on server it doesn't\n // make sense because it will create an extra unnecessary navigation and could\n // lead to problems\n if (isBrowser &&\n // used for the initial navigation client side to avoid pushing\n // multiple times when the router is used in multiple apps\n !started &&\n currentRoute.value === START_LOCATION_NORMALIZED) {\n // see above\n started = true;\n push(routerHistory.location).catch(err => {\n if ((process.env.NODE_ENV !== 'production'))\n warn('Unexpected error when starting the router:', err);\n });\n }\n const reactiveRoute = {};\n for (const key in START_LOCATION_NORMALIZED) {\n Object.defineProperty(reactiveRoute, key, {\n get: () => currentRoute.value[key],\n enumerable: true,\n });\n }\n app.provide(routerKey, router);\n app.provide(routeLocationKey, shallowReactive(reactiveRoute));\n app.provide(routerViewLocationKey, currentRoute);\n const unmountApp = app.unmount;\n installedApps.add(app);\n app.unmount = function () {\n installedApps.delete(app);\n // the router is not attached to an app anymore\n if (installedApps.size < 1) {\n // invalidate the current navigation\n pendingLocation = START_LOCATION_NORMALIZED;\n removeHistoryListener && removeHistoryListener();\n removeHistoryListener = null;\n currentRoute.value = START_LOCATION_NORMALIZED;\n started = false;\n ready = false;\n }\n unmountApp();\n };\n // TODO: this probably needs to be updated so it can be used by vue-termui\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n addDevtools(app, router, matcher);\n }\n },\n };\n // TODO: type this as NavigationGuardReturn or similar instead of any\n function runGuardQueue(guards) {\n return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n }\n return router;\n}\nfunction extractChangingRecords(to, from) {\n const leavingRecords = [];\n const updatingRecords = [];\n const enteringRecords = [];\n const len = Math.max(from.matched.length, to.matched.length);\n for (let i = 0; i < len; i++) {\n const recordFrom = from.matched[i];\n if (recordFrom) {\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\n updatingRecords.push(recordFrom);\n else\n leavingRecords.push(recordFrom);\n }\n const recordTo = to.matched[i];\n if (recordTo) {\n // the type doesn't matter because we are comparing per reference\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\n enteringRecords.push(recordTo);\n }\n }\n }\n return [leavingRecords, updatingRecords, enteringRecords];\n}\n\n/**\n * Returns the router instance. Equivalent to using `$router` inside\n * templates.\n */\nfunction useRouter() {\n return inject(routerKey);\n}\n/**\n * Returns the current route location. Equivalent to using `$route` inside\n * templates.\n */\nfunction useRoute() {\n return inject(routeLocationKey);\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n"], - "mappings": "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", - "names": ["parseQuery", "location", "stringifyQuery", "NavigationType", "NavigationDirection", "history", "replace", "NavigationFailureType", "re", "value", "route", "matchedRoute", "href", "failure", "resolve", "router"] -} diff --git a/.vuepress/.cache/deps/vue.js b/.vuepress/.cache/deps/vue.js deleted file mode 100644 index e092df234..000000000 --- a/.vuepress/.cache/deps/vue.js +++ /dev/null @@ -1,326 +0,0 @@ -import { - BaseTransition, - BaseTransitionPropsValidators, - Comment, - DeprecationTypes, - EffectScope, - ErrorCodes, - ErrorTypeStrings, - Fragment, - KeepAlive, - ReactiveEffect, - Static, - Suspense, - Teleport, - Text, - TrackOpTypes, - Transition, - TransitionGroup, - TriggerOpTypes, - VueElement, - assertNumber, - callWithAsyncErrorHandling, - callWithErrorHandling, - cloneVNode, - compatUtils, - compile, - computed, - createApp, - createBaseVNode, - createBlock, - createCommentVNode, - createElementBlock, - createHydrationRenderer, - createPropsRestProxy, - createRenderer, - createSSRApp, - createSlots, - createStaticVNode, - createTextVNode, - createVNode, - customRef, - defineAsyncComponent, - defineComponent, - defineCustomElement, - defineEmits, - defineExpose, - defineModel, - defineOptions, - defineProps, - defineSSRCustomElement, - defineSlots, - devtools, - effect, - effectScope, - getCurrentInstance, - getCurrentScope, - getTransitionRawChildren, - guardReactiveProps, - h, - handleError, - hasInjectionContext, - hydrate, - initCustomFormatter, - initDirectivesForSSR, - inject, - isMemoSame, - isProxy, - isReactive, - isReadonly, - isRef, - isRuntimeOnly, - isShallow, - isVNode, - markRaw, - mergeDefaults, - mergeModels, - mergeProps, - nextTick, - onActivated, - onBeforeMount, - onBeforeUnmount, - onBeforeUpdate, - onDeactivated, - onErrorCaptured, - onMounted, - onRenderTracked, - onRenderTriggered, - onScopeDispose, - onServerPrefetch, - onUnmounted, - onUpdated, - openBlock, - popScopeId, - provide, - proxyRefs, - pushScopeId, - queuePostFlushCb, - reactive, - readonly, - ref, - registerRuntimeCompiler, - render, - renderList, - renderSlot, - resolveComponent, - resolveDirective, - resolveDynamicComponent, - resolveFilter, - resolveTransitionHooks, - setBlockTracking, - setDevtoolsHook, - setTransitionHooks, - shallowReactive, - shallowReadonly, - shallowRef, - ssrContextKey, - ssrUtils, - stop, - toHandlers, - toRaw, - toRef, - toRefs, - toValue, - transformVNodeArgs, - triggerRef, - unref, - useAttrs, - useCssModule, - useCssVars, - useModel, - useSSRContext, - useSlots, - useTransitionState, - vModelCheckbox, - vModelDynamic, - vModelRadio, - vModelSelect, - vModelText, - vShow, - version, - warn, - watch, - watchEffect, - watchPostEffect, - watchSyncEffect, - withAsyncContext, - withCtx, - withDefaults, - withDirectives, - withKeys, - withMemo, - withModifiers, - withScopeId -} from "./chunk-OQPQLNES.js"; -import { - camelize, - capitalize, - normalizeClass, - normalizeProps, - normalizeStyle, - toDisplayString, - toHandlerKey -} from "./chunk-F6L62Q4Q.js"; -import "./chunk-3EJPJMEH.js"; -export { - BaseTransition, - BaseTransitionPropsValidators, - Comment, - DeprecationTypes, - EffectScope, - ErrorCodes, - ErrorTypeStrings, - Fragment, - KeepAlive, - ReactiveEffect, - Static, - Suspense, - Teleport, - Text, - TrackOpTypes, - Transition, - TransitionGroup, - TriggerOpTypes, - VueElement, - assertNumber, - callWithAsyncErrorHandling, - callWithErrorHandling, - camelize, - capitalize, - cloneVNode, - compatUtils, - compile, - computed, - createApp, - createBlock, - createCommentVNode, - createElementBlock, - createBaseVNode as createElementVNode, - createHydrationRenderer, - createPropsRestProxy, - createRenderer, - createSSRApp, - createSlots, - createStaticVNode, - createTextVNode, - createVNode, - customRef, - defineAsyncComponent, - defineComponent, - defineCustomElement, - defineEmits, - defineExpose, - defineModel, - defineOptions, - defineProps, - defineSSRCustomElement, - defineSlots, - devtools, - effect, - effectScope, - getCurrentInstance, - getCurrentScope, - getTransitionRawChildren, - guardReactiveProps, - h, - handleError, - hasInjectionContext, - hydrate, - initCustomFormatter, - initDirectivesForSSR, - inject, - isMemoSame, - isProxy, - isReactive, - isReadonly, - isRef, - isRuntimeOnly, - isShallow, - isVNode, - markRaw, - mergeDefaults, - mergeModels, - mergeProps, - nextTick, - normalizeClass, - normalizeProps, - normalizeStyle, - onActivated, - onBeforeMount, - onBeforeUnmount, - onBeforeUpdate, - onDeactivated, - onErrorCaptured, - onMounted, - onRenderTracked, - onRenderTriggered, - onScopeDispose, - onServerPrefetch, - onUnmounted, - onUpdated, - openBlock, - popScopeId, - provide, - proxyRefs, - pushScopeId, - queuePostFlushCb, - reactive, - readonly, - ref, - registerRuntimeCompiler, - render, - renderList, - renderSlot, - resolveComponent, - resolveDirective, - resolveDynamicComponent, - resolveFilter, - resolveTransitionHooks, - setBlockTracking, - setDevtoolsHook, - setTransitionHooks, - shallowReactive, - shallowReadonly, - shallowRef, - ssrContextKey, - ssrUtils, - stop, - toDisplayString, - toHandlerKey, - toHandlers, - toRaw, - toRef, - toRefs, - toValue, - transformVNodeArgs, - triggerRef, - unref, - useAttrs, - useCssModule, - useCssVars, - useModel, - useSSRContext, - useSlots, - useTransitionState, - vModelCheckbox, - vModelDynamic, - vModelRadio, - vModelSelect, - vModelText, - vShow, - version, - warn, - watch, - watchEffect, - watchPostEffect, - watchSyncEffect, - withAsyncContext, - withCtx, - withDefaults, - withDirectives, - withKeys, - withMemo, - withModifiers, - withScopeId -}; -//# sourceMappingURL=vue.js.map diff --git a/.vuepress/.cache/deps/vue.js.map b/.vuepress/.cache/deps/vue.js.map deleted file mode 100644 index 98652118b..000000000 --- a/.vuepress/.cache/deps/vue.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "sourcesContent": [], - "mappings": "", - "names": [] -} diff --git a/.vuepress/.cache/deps/xychartDiagram-f746c04c-HIROG2A6.js b/.vuepress/.cache/deps/xychartDiagram-f746c04c-HIROG2A6.js deleted file mode 100644 index 9ee3f2cf8..000000000 --- a/.vuepress/.cache/deps/xychartDiagram-f746c04c-HIROG2A6.js +++ /dev/null @@ -1,1765 +0,0 @@ -import { - computeDimensionOfText -} from "./chunk-TQDBUXIK.js"; -import { - band, - cleanAndMerge, - clear, - configureSvgSize, - defaultConfig$2, - getAccDescription, - getAccTitle, - getConfig$1, - getDiagramTitle, - getThemeVariables$2, - line_default, - linear, - log$1, - require_dayjs_min, - require_dist, - sanitizeText$2, - selectSvgElement, - setAccDescription, - setAccTitle, - setDiagramTitle -} from "./chunk-MILIJ3F3.js"; -import { - __toESM -} from "./chunk-3EJPJMEH.js"; - -// node_modules/mermaid/dist/xychartDiagram-f746c04c.js -var import_dayjs = __toESM(require_dayjs_min(), 1); -var import_sanitize_url = __toESM(require_dist(), 1); -var parser = function() { - var o = function(k, v, o2, l) { - for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) - ; - return o2; - }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64]; - var parser2 = { - trace: function trace() { - }, - yy: {}, - symbols_: { "error": 2, "start": 3, "eol": 4, "XYCHART": 5, "chartConfig": 6, "document": 7, "CHART_ORIENTATION": 8, "statement": 9, "title": 10, "text": 11, "X_AXIS": 12, "parseXAxis": 13, "Y_AXIS": 14, "parseYAxis": 15, "LINE": 16, "plotData": 17, "BAR": 18, "acc_title": 19, "acc_title_value": 20, "acc_descr": 21, "acc_descr_value": 22, "acc_descr_multiline_value": 23, "SQUARE_BRACES_START": 24, "commaSeparatedNumbers": 25, "SQUARE_BRACES_END": 26, "NUMBER_WITH_DECIMAL": 27, "COMMA": 28, "xAxisData": 29, "bandData": 30, "ARROW_DELIMITER": 31, "commaSeparatedTexts": 32, "yAxisData": 33, "NEWLINE": 34, "SEMI": 35, "EOF": 36, "alphaNum": 37, "STR": 38, "MD_STR": 39, "alphaNumToken": 40, "AMP": 41, "NUM": 42, "ALPHA": 43, "PLUS": 44, "EQUALS": 45, "MULT": 46, "DOT": 47, "BRKT": 48, "MINUS": 49, "UNDERSCORE": 50, "$accept": 0, "$end": 1 }, - terminals_: { 2: "error", 5: "XYCHART", 8: "CHART_ORIENTATION", 10: "title", 12: "X_AXIS", 14: "Y_AXIS", 16: "LINE", 18: "BAR", 19: "acc_title", 20: "acc_title_value", 21: "acc_descr", 22: "acc_descr_value", 23: "acc_descr_multiline_value", 24: "SQUARE_BRACES_START", 26: "SQUARE_BRACES_END", 27: "NUMBER_WITH_DECIMAL", 28: "COMMA", 31: "ARROW_DELIMITER", 34: "NEWLINE", 35: "SEMI", 36: "EOF", 38: "STR", 39: "MD_STR", 41: "AMP", 42: "NUM", 43: "ALPHA", 44: "PLUS", 45: "EQUALS", 46: "MULT", 47: "DOT", 48: "BRKT", 49: "MINUS", 50: "UNDERSCORE" }, - productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { - var $0 = $$.length - 1; - switch (yystate) { - case 5: - yy.setOrientation($$[$0]); - break; - case 9: - yy.setDiagramTitle($$[$0].text.trim()); - break; - case 12: - yy.setLineData({ text: "", type: "text" }, $$[$0]); - break; - case 13: - yy.setLineData($$[$0 - 1], $$[$0]); - break; - case 14: - yy.setBarData({ text: "", type: "text" }, $$[$0]); - break; - case 15: - yy.setBarData($$[$0 - 1], $$[$0]); - break; - case 16: - this.$ = $$[$0].trim(); - yy.setAccTitle(this.$); - break; - case 17: - case 18: - this.$ = $$[$0].trim(); - yy.setAccDescription(this.$); - break; - case 19: - this.$ = $$[$0 - 1]; - break; - case 20: - this.$ = [Number($$[$0 - 2]), ...$$[$0]]; - break; - case 21: - this.$ = [Number($$[$0])]; - break; - case 22: - yy.setXAxisTitle($$[$0]); - break; - case 23: - yy.setXAxisTitle($$[$0 - 1]); - break; - case 24: - yy.setXAxisTitle({ type: "text", text: "" }); - break; - case 25: - yy.setXAxisBand($$[$0]); - break; - case 26: - yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0])); - break; - case 27: - this.$ = $$[$0 - 1]; - break; - case 28: - this.$ = [$$[$0 - 2], ...$$[$0]]; - break; - case 29: - this.$ = [$$[$0]]; - break; - case 30: - yy.setYAxisTitle($$[$0]); - break; - case 31: - yy.setYAxisTitle($$[$0 - 1]); - break; - case 32: - yy.setYAxisTitle({ type: "text", text: "" }); - break; - case 33: - yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0])); - break; - case 37: - this.$ = { text: $$[$0], type: "text" }; - break; - case 38: - this.$ = { text: $$[$0], type: "text" }; - break; - case 39: - this.$ = { text: $$[$0], type: "markdown" }; - break; - case 40: - this.$ = $$[$0]; - break; - case 41: - this.$ = $$[$0 - 1] + "" + $$[$0]; - break; - } - }, - table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }], - defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] }, - parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } - }, - parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer2 = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer2.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer2; - sharedState.yy.parser = this; - if (typeof lexer2.yylloc == "undefined") { - lexer2.yylloc = {}; - } - var yyloc = lexer2.yylloc; - lstack.push(yyloc); - var ranges = lexer2.options && lexer2.options.ranges; - if (typeof sharedState.yy.parseError === "function") { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function lex() { - var token; - token = tstack.pop() || lexer2.lex() || EOF; - if (typeof token !== "number") { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } - token = self.symbols_[token] || token; - } - return token; - } - var symbol, state, action, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == "undefined") { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - var errStr = ""; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'" + this.terminals_[p] + "'"); - } - } - if (lexer2.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, { - text: lexer2.match, - token: this.terminals_[symbol] || symbol, - line: lexer2.yylineno, - loc: yyloc, - expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer2.yytext); - lstack.push(lexer2.yylloc); - stack.push(action[1]); - symbol = null; - { - yyleng = lexer2.yyleng; - yytext = lexer2.yytext; - yylineno = lexer2.yylineno; - yyloc = lexer2.yylloc; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; - } - }; - var lexer = /* @__PURE__ */ function() { - var lexer2 = { - EOF: 1, - parseError: function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - // resets the lexer, sets new input - setInput: function(input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ""; - this.conditionStack = ["INITIAL"]; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0, 0]; - } - this.offset = 0; - return this; - }, - // consumes and returns one char from the input - input: function() { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - this._input = this._input.slice(1); - return ch; - }, - // unshifts one char (or a string) into the input - unput: function(ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len - }; - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - // When called from action, caches matched text and appends it on next action - more: function() { - this._more = true; - return this; - }, - // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. - reject: function() { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - return this; - }, - // retain first n characters of the match - less: function(n) { - this.unput(this.match.slice(n)); - }, - // displays already matched input, i.e. for error messages - pastInput: function() { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); - }, - // displays upcoming input, i.e. for error messages - upcomingInput: function() { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20 - next.length); - } - return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); - }, - // displays the character position where the lexing error occurred, i.e. for error messages - showPosition: function() { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - // test the lexed token: return FALSE when not a match, otherwise return token - test_match: function(match, indexed_rule) { - var token, lines, backup; - if (this.options.backtrack_lexer) { - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - for (var k in backup) { - this[k] = backup[k]; - } - return false; - } - return false; - }, - // return next match in input - next: function() { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - var token, match, tempMatch, index; - if (!this._more) { - this.yytext = ""; - this.match = ""; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; - } else { - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - // return next match that has a token - lex: function lex() { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) - begin: function begin(condition) { - this.conditionStack.push(condition); - }, - // pop the previously active lexer condition state off the condition stack - popState: function popState() { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - // produce the lexer rule set which is active for the currently active lexer condition state - _currentRules: function _currentRules() { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available - topState: function topState(n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - // alias for begin(condition) - pushState: function pushState(condition) { - this.begin(condition); - }, - // return the number of states currently on the stack - stateStackSize: function stateStackSize() { - return this.conditionStack.length; - }, - options: { "case-insensitive": true }, - performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { - switch ($avoiding_name_collisions) { - case 0: - break; - case 1: - break; - case 2: - this.popState(); - return 34; - case 3: - this.popState(); - return 34; - case 4: - return 34; - case 5: - break; - case 6: - return 10; - case 7: - this.pushState("acc_title"); - return 19; - case 8: - this.popState(); - return "acc_title_value"; - case 9: - this.pushState("acc_descr"); - return 21; - case 10: - this.popState(); - return "acc_descr_value"; - case 11: - this.pushState("acc_descr_multiline"); - break; - case 12: - this.popState(); - break; - case 13: - return "acc_descr_multiline_value"; - case 14: - return 5; - case 15: - return 8; - case 16: - this.pushState("axis_data"); - return "X_AXIS"; - case 17: - this.pushState("axis_data"); - return "Y_AXIS"; - case 18: - this.pushState("axis_band_data"); - return 24; - case 19: - return 31; - case 20: - this.pushState("data"); - return 16; - case 21: - this.pushState("data"); - return 18; - case 22: - this.pushState("data_inner"); - return 24; - case 23: - return 27; - case 24: - this.popState(); - return 26; - case 25: - this.popState(); - break; - case 26: - this.pushState("string"); - break; - case 27: - this.popState(); - break; - case 28: - return "STR"; - case 29: - return 24; - case 30: - return 26; - case 31: - return 43; - case 32: - return "COLON"; - case 33: - return 44; - case 34: - return 28; - case 35: - return 45; - case 36: - return 46; - case 37: - return 48; - case 38: - return 50; - case 39: - return 47; - case 40: - return 41; - case 41: - return 49; - case 42: - return 42; - case 43: - break; - case 44: - return 35; - case 45: - return 36; - } - }, - rules: [/^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:(\r?\n))/i, /^(?:(\r?\n))/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:\{)/i, /^(?:[^\}]*)/i, /^(?:xychart-beta\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\b)/i, /^(?:y-axis\b)/i, /^(?:\[)/i, /^(?:-->)/i, /^(?:line\b)/i, /^(?:bar\b)/i, /^(?:\[)/i, /^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i, /^(?:\])/i, /^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\[)/i, /^(?:\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s+)/i, /^(?:;)/i, /^(?:$)/i], - conditions: { "data_inner": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "data": { "rules": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_band_data": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "axis_data": { "rules": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true }, "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "title": { "rules": [], "inclusive": false }, "md_string": { "rules": [], "inclusive": false }, "string": { "rules": [27, 28], "inclusive": false }, "INITIAL": { "rules": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "inclusive": true } } - }; - return lexer2; - }(); - parser2.lexer = lexer; - function Parser() { - this.yy = {}; - } - Parser.prototype = parser2; - parser2.Parser = Parser; - return new Parser(); -}(); -parser.parser = parser; -var parser$1 = parser; -function isBarPlot(data) { - return data.type === "bar"; -} -function isBandAxisData(data) { - return data.type === "band"; -} -function isLinearAxisData(data) { - return data.type === "linear"; -} -var TextDimensionCalculatorWithFont = class { - constructor(parentGroup) { - this.parentGroup = parentGroup; - } - getMaxDimension(texts, fontSize) { - if (!this.parentGroup) { - return { - width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize, - height: fontSize - }; - } - const dimension = { - width: 0, - height: 0 - }; - const elem = this.parentGroup.append("g").attr("visibility", "hidden").attr("font-size", fontSize); - for (const t of texts) { - const bbox = computeDimensionOfText(elem, 1, t); - const width = bbox ? bbox.width : t.length * fontSize; - const height = bbox ? bbox.height : fontSize; - dimension.width = Math.max(dimension.width, width); - dimension.height = Math.max(dimension.height, height); - } - elem.remove(); - return dimension; - } -}; -var BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7; -var MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2; -var BaseAxis = class { - constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) { - this.axisConfig = axisConfig; - this.title = title; - this.textDimensionCalculator = textDimensionCalculator; - this.axisThemeConfig = axisThemeConfig; - this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }; - this.axisPosition = "left"; - this.showTitle = false; - this.showLabel = false; - this.showTick = false; - this.showAxisLine = false; - this.outerPadding = 0; - this.titleTextHeight = 0; - this.labelTextHeight = 0; - this.range = [0, 10]; - this.boundingRect = { x: 0, y: 0, width: 0, height: 0 }; - this.axisPosition = "left"; - } - setRange(range) { - this.range = range; - if (this.axisPosition === "left" || this.axisPosition === "right") { - this.boundingRect.height = range[1] - range[0]; - } else { - this.boundingRect.width = range[1] - range[0]; - } - this.recalculateScale(); - } - getRange() { - return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding]; - } - setAxisPosition(axisPosition) { - this.axisPosition = axisPosition; - this.setRange(this.range); - } - getTickDistance() { - const range = this.getRange(); - return Math.abs(range[0] - range[1]) / this.getTickValues().length; - } - getAxisOuterPadding() { - return this.outerPadding; - } - getLabelDimension() { - return this.textDimensionCalculator.getMaxDimension( - this.getTickValues().map((tick) => tick.toString()), - this.axisConfig.labelFontSize - ); - } - recalculateOuterPaddingToDrawBar() { - if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) { - this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2); - } - this.recalculateScale(); - } - calculateSpaceIfDrawnHorizontally(availableSpace) { - let availableHeight = availableSpace.height; - if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) { - availableHeight -= this.axisConfig.axisLineWidth; - this.showAxisLine = true; - } - if (this.axisConfig.showLabel) { - const spaceRequired = this.getLabelDimension(); - const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width; - this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding); - const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2; - this.labelTextHeight = spaceRequired.height; - if (heightRequired <= availableHeight) { - availableHeight -= heightRequired; - this.showLabel = true; - } - } - if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) { - this.showTick = true; - availableHeight -= this.axisConfig.tickLength; - } - if (this.axisConfig.showTitle && this.title) { - const spaceRequired = this.textDimensionCalculator.getMaxDimension( - [this.title], - this.axisConfig.titleFontSize - ); - const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2; - this.titleTextHeight = spaceRequired.height; - if (heightRequired <= availableHeight) { - availableHeight -= heightRequired; - this.showTitle = true; - } - } - this.boundingRect.width = availableSpace.width; - this.boundingRect.height = availableSpace.height - availableHeight; - } - calculateSpaceIfDrawnVertical(availableSpace) { - let availableWidth = availableSpace.width; - if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) { - availableWidth -= this.axisConfig.axisLineWidth; - this.showAxisLine = true; - } - if (this.axisConfig.showLabel) { - const spaceRequired = this.getLabelDimension(); - const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height; - this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding); - const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2; - if (widthRequired <= availableWidth) { - availableWidth -= widthRequired; - this.showLabel = true; - } - } - if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) { - this.showTick = true; - availableWidth -= this.axisConfig.tickLength; - } - if (this.axisConfig.showTitle && this.title) { - const spaceRequired = this.textDimensionCalculator.getMaxDimension( - [this.title], - this.axisConfig.titleFontSize - ); - const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2; - this.titleTextHeight = spaceRequired.height; - if (widthRequired <= availableWidth) { - availableWidth -= widthRequired; - this.showTitle = true; - } - } - this.boundingRect.width = availableSpace.width - availableWidth; - this.boundingRect.height = availableSpace.height; - } - calculateSpace(availableSpace) { - if (this.axisPosition === "left" || this.axisPosition === "right") { - this.calculateSpaceIfDrawnVertical(availableSpace); - } else { - this.calculateSpaceIfDrawnHorizontally(availableSpace); - } - this.recalculateScale(); - return { - width: this.boundingRect.width, - height: this.boundingRect.height - }; - } - setBoundingBoxXY(point) { - this.boundingRect.x = point.x; - this.boundingRect.y = point.y; - } - getDrawableElementsForLeftAxis() { - const drawableElement = []; - if (this.showAxisLine) { - const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2; - drawableElement.push({ - type: "path", - groupTexts: ["left-axis", "axisl-line"], - data: [ - { - path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `, - strokeFill: this.axisThemeConfig.axisLineColor, - strokeWidth: this.axisConfig.axisLineWidth - } - ] - }); - } - if (this.showLabel) { - drawableElement.push({ - type: "text", - groupTexts: ["left-axis", "label"], - data: this.getTickValues().map((tick) => ({ - text: tick.toString(), - x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), - y: this.getScaleValue(tick), - fill: this.axisThemeConfig.labelColor, - fontSize: this.axisConfig.labelFontSize, - rotation: 0, - verticalPos: "middle", - horizontalPos: "right" - })) - }); - } - if (this.showTick) { - const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); - drawableElement.push({ - type: "path", - groupTexts: ["left-axis", "ticks"], - data: this.getTickValues().map((tick) => ({ - path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`, - strokeFill: this.axisThemeConfig.tickColor, - strokeWidth: this.axisConfig.tickWidth - })) - }); - } - if (this.showTitle) { - drawableElement.push({ - type: "text", - groupTexts: ["left-axis", "title"], - data: [ - { - text: this.title, - x: this.boundingRect.x + this.axisConfig.titlePadding, - y: this.boundingRect.y + this.boundingRect.height / 2, - fill: this.axisThemeConfig.titleColor, - fontSize: this.axisConfig.titleFontSize, - rotation: 270, - verticalPos: "top", - horizontalPos: "center" - } - ] - }); - } - return drawableElement; - } - getDrawableElementsForBottomAxis() { - const drawableElement = []; - if (this.showAxisLine) { - const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2; - drawableElement.push({ - type: "path", - groupTexts: ["bottom-axis", "axis-line"], - data: [ - { - path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`, - strokeFill: this.axisThemeConfig.axisLineColor, - strokeWidth: this.axisConfig.axisLineWidth - } - ] - }); - } - if (this.showLabel) { - drawableElement.push({ - type: "text", - groupTexts: ["bottom-axis", "label"], - data: this.getTickValues().map((tick) => ({ - text: tick.toString(), - x: this.getScaleValue(tick), - y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0), - fill: this.axisThemeConfig.labelColor, - fontSize: this.axisConfig.labelFontSize, - rotation: 0, - verticalPos: "top", - horizontalPos: "center" - })) - }); - } - if (this.showTick) { - const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0); - drawableElement.push({ - type: "path", - groupTexts: ["bottom-axis", "ticks"], - data: this.getTickValues().map((tick) => ({ - path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`, - strokeFill: this.axisThemeConfig.tickColor, - strokeWidth: this.axisConfig.tickWidth - })) - }); - } - if (this.showTitle) { - drawableElement.push({ - type: "text", - groupTexts: ["bottom-axis", "title"], - data: [ - { - text: this.title, - x: this.range[0] + (this.range[1] - this.range[0]) / 2, - y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight, - fill: this.axisThemeConfig.titleColor, - fontSize: this.axisConfig.titleFontSize, - rotation: 0, - verticalPos: "top", - horizontalPos: "center" - } - ] - }); - } - return drawableElement; - } - getDrawableElementsForTopAxis() { - const drawableElement = []; - if (this.showAxisLine) { - const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2; - drawableElement.push({ - type: "path", - groupTexts: ["top-axis", "axis-line"], - data: [ - { - path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`, - strokeFill: this.axisThemeConfig.axisLineColor, - strokeWidth: this.axisConfig.axisLineWidth - } - ] - }); - } - if (this.showLabel) { - drawableElement.push({ - type: "text", - groupTexts: ["top-axis", "label"], - data: this.getTickValues().map((tick) => ({ - text: tick.toString(), - x: this.getScaleValue(tick), - y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding, - fill: this.axisThemeConfig.labelColor, - fontSize: this.axisConfig.labelFontSize, - rotation: 0, - verticalPos: "top", - horizontalPos: "center" - })) - }); - } - if (this.showTick) { - const y = this.boundingRect.y; - drawableElement.push({ - type: "path", - groupTexts: ["top-axis", "ticks"], - data: this.getTickValues().map((tick) => ({ - path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`, - strokeFill: this.axisThemeConfig.tickColor, - strokeWidth: this.axisConfig.tickWidth - })) - }); - } - if (this.showTitle) { - drawableElement.push({ - type: "text", - groupTexts: ["top-axis", "title"], - data: [ - { - text: this.title, - x: this.boundingRect.x + this.boundingRect.width / 2, - y: this.boundingRect.y + this.axisConfig.titlePadding, - fill: this.axisThemeConfig.titleColor, - fontSize: this.axisConfig.titleFontSize, - rotation: 0, - verticalPos: "top", - horizontalPos: "center" - } - ] - }); - } - return drawableElement; - } - getDrawableElements() { - if (this.axisPosition === "left") { - return this.getDrawableElementsForLeftAxis(); - } - if (this.axisPosition === "right") { - throw Error("Drawing of right axis is not implemented"); - } - if (this.axisPosition === "bottom") { - return this.getDrawableElementsForBottomAxis(); - } - if (this.axisPosition === "top") { - return this.getDrawableElementsForTopAxis(); - } - return []; - } -}; -var BandAxis = class extends BaseAxis { - constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) { - super(axisConfig, title, textDimensionCalculator, axisThemeConfig); - this.categories = categories; - this.scale = band().domain(this.categories).range(this.getRange()); - } - setRange(range) { - super.setRange(range); - } - recalculateScale() { - this.scale = band().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5); - log$1.trace("BandAxis axis final categories, range: ", this.categories, this.getRange()); - } - getTickValues() { - return this.categories; - } - getScaleValue(value) { - return this.scale(value) || this.getRange()[0]; - } -}; -var LinearAxis = class extends BaseAxis { - constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) { - super(axisConfig, title, textDimensionCalculator, axisThemeConfig); - this.domain = domain; - this.scale = linear().domain(this.domain).range(this.getRange()); - } - getTickValues() { - return this.scale.ticks(); - } - recalculateScale() { - const domain = [...this.domain]; - if (this.axisPosition === "left") { - domain.reverse(); - } - this.scale = linear().domain(domain).range(this.getRange()); - } - getScaleValue(value) { - return this.scale(value); - } -}; -function getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) { - const textDimansionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2); - if (isBandAxisData(data)) { - return new BandAxis( - axisConfig, - axisThemeConfig, - data.categories, - data.title, - textDimansionCalculator - ); - } - return new LinearAxis( - axisConfig, - axisThemeConfig, - [data.min, data.max], - data.title, - textDimansionCalculator - ); -} -var ChartTitle = class { - constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) { - this.textDimensionCalculator = textDimensionCalculator; - this.chartConfig = chartConfig; - this.chartData = chartData; - this.chartThemeConfig = chartThemeConfig; - this.boundingRect = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - this.showChartTitle = false; - } - setBoundingBoxXY(point) { - this.boundingRect.x = point.x; - this.boundingRect.y = point.y; - } - calculateSpace(availableSpace) { - const titleDimension = this.textDimensionCalculator.getMaxDimension( - [this.chartData.title], - this.chartConfig.titleFontSize - ); - const widthRequired = Math.max(titleDimension.width, availableSpace.width); - const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding; - if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) { - this.boundingRect.width = widthRequired; - this.boundingRect.height = heightRequired; - this.showChartTitle = true; - } - return { - width: this.boundingRect.width, - height: this.boundingRect.height - }; - } - getDrawableElements() { - const drawableElem = []; - if (this.showChartTitle) { - drawableElem.push({ - groupTexts: ["chart-title"], - type: "text", - data: [ - { - fontSize: this.chartConfig.titleFontSize, - text: this.chartData.title, - verticalPos: "middle", - horizontalPos: "center", - x: this.boundingRect.x + this.boundingRect.width / 2, - y: this.boundingRect.y + this.boundingRect.height / 2, - fill: this.chartThemeConfig.titleColor, - rotation: 0 - } - ] - }); - } - return drawableElem; - } -}; -function getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) { - const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2); - return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig); -} -var LinePlot = class { - constructor(plotData, xAxis, yAxis, orientation, plotIndex2) { - this.plotData = plotData; - this.xAxis = xAxis; - this.yAxis = yAxis; - this.orientation = orientation; - this.plotIndex = plotIndex2; - } - getDrawableElement() { - const finalData = this.plotData.data.map((d) => [ - this.xAxis.getScaleValue(d[0]), - this.yAxis.getScaleValue(d[1]) - ]); - let path; - if (this.orientation === "horizontal") { - path = line_default().y((d) => d[0]).x((d) => d[1])(finalData); - } else { - path = line_default().x((d) => d[0]).y((d) => d[1])(finalData); - } - if (!path) { - return []; - } - return [ - { - groupTexts: ["plot", `line-plot-${this.plotIndex}`], - type: "path", - data: [ - { - path, - strokeFill: this.plotData.strokeFill, - strokeWidth: this.plotData.strokeWidth - } - ] - } - ]; - } -}; -var BarPlot = class { - constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) { - this.barData = barData; - this.boundingRect = boundingRect; - this.xAxis = xAxis; - this.yAxis = yAxis; - this.orientation = orientation; - this.plotIndex = plotIndex2; - } - getDrawableElement() { - const finalData = this.barData.data.map((d) => [ - this.xAxis.getScaleValue(d[0]), - this.yAxis.getScaleValue(d[1]) - ]); - const barPaddingPercent = 0.05; - const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent); - const barWidthHalf = barWidth / 2; - if (this.orientation === "horizontal") { - return [ - { - groupTexts: ["plot", `bar-plot-${this.plotIndex}`], - type: "rect", - data: finalData.map((data) => ({ - x: this.boundingRect.x, - y: data[0] - barWidthHalf, - height: barWidth, - width: data[1] - this.boundingRect.x, - fill: this.barData.fill, - strokeWidth: 0, - strokeFill: this.barData.fill - })) - } - ]; - } - return [ - { - groupTexts: ["plot", `bar-plot-${this.plotIndex}`], - type: "rect", - data: finalData.map((data) => ({ - x: data[0] - barWidthHalf, - y: data[1], - width: barWidth, - height: this.boundingRect.y + this.boundingRect.height - data[1], - fill: this.barData.fill, - strokeWidth: 0, - strokeFill: this.barData.fill - })) - } - ]; - } -}; -var BasePlot = class { - constructor(chartConfig, chartData, chartThemeConfig) { - this.chartConfig = chartConfig; - this.chartData = chartData; - this.chartThemeConfig = chartThemeConfig; - this.boundingRect = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - } - setAxes(xAxis, yAxis) { - this.xAxis = xAxis; - this.yAxis = yAxis; - } - setBoundingBoxXY(point) { - this.boundingRect.x = point.x; - this.boundingRect.y = point.y; - } - calculateSpace(availableSpace) { - this.boundingRect.width = availableSpace.width; - this.boundingRect.height = availableSpace.height; - return { - width: this.boundingRect.width, - height: this.boundingRect.height - }; - } - getDrawableElements() { - if (!(this.xAxis && this.yAxis)) { - throw Error("Axes must be passed to render Plots"); - } - const drawableElem = []; - for (const [i, plot] of this.chartData.plots.entries()) { - switch (plot.type) { - case "line": - { - const linePlot = new LinePlot( - plot, - this.xAxis, - this.yAxis, - this.chartConfig.chartOrientation, - i - ); - drawableElem.push(...linePlot.getDrawableElement()); - } - break; - case "bar": - { - const barPlot = new BarPlot( - plot, - this.boundingRect, - this.xAxis, - this.yAxis, - this.chartConfig.chartOrientation, - i - ); - drawableElem.push(...barPlot.getDrawableElement()); - } - break; - } - } - return drawableElem; - } -}; -function getPlotComponent(chartConfig, chartData, chartThemeConfig) { - return new BasePlot(chartConfig, chartData, chartThemeConfig); -} -var Orchestrator = class { - constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) { - this.chartConfig = chartConfig; - this.chartData = chartData; - this.componentStore = { - title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2), - plot: getPlotComponent(chartConfig, chartData, chartThemeConfig), - xAxis: getAxis( - chartData.xAxis, - chartConfig.xAxis, - { - titleColor: chartThemeConfig.xAxisTitleColor, - labelColor: chartThemeConfig.xAxisLabelColor, - tickColor: chartThemeConfig.xAxisTickColor, - axisLineColor: chartThemeConfig.xAxisLineColor - }, - tmpSVGGroup2 - ), - yAxis: getAxis( - chartData.yAxis, - chartConfig.yAxis, - { - titleColor: chartThemeConfig.yAxisTitleColor, - labelColor: chartThemeConfig.yAxisLabelColor, - tickColor: chartThemeConfig.yAxisTickColor, - axisLineColor: chartThemeConfig.yAxisLineColor - }, - tmpSVGGroup2 - ) - }; - } - calculateVerticalSpace() { - let availableWidth = this.chartConfig.width; - let availableHeight = this.chartConfig.height; - let plotX = 0; - let plotY = 0; - let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100); - let chartHeight = Math.floor( - availableHeight * this.chartConfig.plotReservedSpacePercent / 100 - ); - let spaceUsed = this.componentStore.plot.calculateSpace({ - width: chartWidth, - height: chartHeight - }); - availableWidth -= spaceUsed.width; - availableHeight -= spaceUsed.height; - spaceUsed = this.componentStore.title.calculateSpace({ - width: this.chartConfig.width, - height: availableHeight - }); - plotY = spaceUsed.height; - availableHeight -= spaceUsed.height; - this.componentStore.xAxis.setAxisPosition("bottom"); - spaceUsed = this.componentStore.xAxis.calculateSpace({ - width: availableWidth, - height: availableHeight - }); - availableHeight -= spaceUsed.height; - this.componentStore.yAxis.setAxisPosition("left"); - spaceUsed = this.componentStore.yAxis.calculateSpace({ - width: availableWidth, - height: availableHeight - }); - plotX = spaceUsed.width; - availableWidth -= spaceUsed.width; - if (availableWidth > 0) { - chartWidth += availableWidth; - availableWidth = 0; - } - if (availableHeight > 0) { - chartHeight += availableHeight; - availableHeight = 0; - } - this.componentStore.plot.calculateSpace({ - width: chartWidth, - height: chartHeight - }); - this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY }); - this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]); - this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight }); - this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]); - this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY }); - if (this.chartData.plots.some((p) => isBarPlot(p))) { - this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); - } - } - calculateHorizonatalSpace() { - let availableWidth = this.chartConfig.width; - let availableHeight = this.chartConfig.height; - let titleYEnd = 0; - let plotX = 0; - let plotY = 0; - let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100); - let chartHeight = Math.floor( - availableHeight * this.chartConfig.plotReservedSpacePercent / 100 - ); - let spaceUsed = this.componentStore.plot.calculateSpace({ - width: chartWidth, - height: chartHeight - }); - availableWidth -= spaceUsed.width; - availableHeight -= spaceUsed.height; - spaceUsed = this.componentStore.title.calculateSpace({ - width: this.chartConfig.width, - height: availableHeight - }); - titleYEnd = spaceUsed.height; - availableHeight -= spaceUsed.height; - this.componentStore.xAxis.setAxisPosition("left"); - spaceUsed = this.componentStore.xAxis.calculateSpace({ - width: availableWidth, - height: availableHeight - }); - availableWidth -= spaceUsed.width; - plotX = spaceUsed.width; - this.componentStore.yAxis.setAxisPosition("top"); - spaceUsed = this.componentStore.yAxis.calculateSpace({ - width: availableWidth, - height: availableHeight - }); - availableHeight -= spaceUsed.height; - plotY = titleYEnd + spaceUsed.height; - if (availableWidth > 0) { - chartWidth += availableWidth; - availableWidth = 0; - } - if (availableHeight > 0) { - chartHeight += availableHeight; - availableHeight = 0; - } - this.componentStore.plot.calculateSpace({ - width: chartWidth, - height: chartHeight - }); - this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY }); - this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]); - this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd }); - this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]); - this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY }); - if (this.chartData.plots.some((p) => isBarPlot(p))) { - this.componentStore.xAxis.recalculateOuterPaddingToDrawBar(); - } - } - calculateSpace() { - if (this.chartConfig.chartOrientation === "horizontal") { - this.calculateHorizonatalSpace(); - } else { - this.calculateVerticalSpace(); - } - } - getDrawableElement() { - this.calculateSpace(); - const drawableElem = []; - this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis); - for (const component of Object.values(this.componentStore)) { - drawableElem.push(...component.getDrawableElements()); - } - return drawableElem; - } -}; -var XYChartBuilder = class { - static build(config, chartData, chartThemeConfig, tmpSVGGroup2) { - const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2); - return orchestrator.getDrawableElement(); - } -}; -var plotIndex = 0; -var tmpSVGGroup; -var xyChartConfig = getChartDefaultConfig(); -var xyChartThemeConfig = getChartDefaultThemeConfig(); -var xyChartData = getChartDefaultData(); -var plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color) => color.trim()); -var hasSetXAxis = false; -var hasSetYAxis = false; -function getChartDefaultThemeConfig() { - const defaultThemeVariables = getThemeVariables$2(); - const config = getConfig$1(); - return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart); -} -function getChartDefaultConfig() { - const config = getConfig$1(); - return cleanAndMerge( - defaultConfig$2.xyChart, - config.xyChart - ); -} -function getChartDefaultData() { - return { - yAxis: { - type: "linear", - title: "", - min: Infinity, - max: -Infinity - }, - xAxis: { - type: "band", - title: "", - categories: [] - }, - title: "", - plots: [] - }; -} -function textSanitizer(text) { - const config = getConfig$1(); - return sanitizeText$2(text.trim(), config); -} -function setTmpSVGG(SVGG) { - tmpSVGGroup = SVGG; -} -function setOrientation(orientation) { - if (orientation === "horizontal") { - xyChartConfig.chartOrientation = "horizontal"; - } else { - xyChartConfig.chartOrientation = "vertical"; - } -} -function setXAxisTitle(title) { - xyChartData.xAxis.title = textSanitizer(title.text); -} -function setXAxisRangeData(min, max) { - xyChartData.xAxis = { type: "linear", title: xyChartData.xAxis.title, min, max }; - hasSetXAxis = true; -} -function setXAxisBand(categories) { - xyChartData.xAxis = { - type: "band", - title: xyChartData.xAxis.title, - categories: categories.map((c) => textSanitizer(c.text)) - }; - hasSetXAxis = true; -} -function setYAxisTitle(title) { - xyChartData.yAxis.title = textSanitizer(title.text); -} -function setYAxisRangeData(min, max) { - xyChartData.yAxis = { type: "linear", title: xyChartData.yAxis.title, min, max }; - hasSetYAxis = true; -} -function setYAxisRangeFromPlotData(data) { - const minValue = Math.min(...data); - const maxValue = Math.max(...data); - const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity; - const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity; - xyChartData.yAxis = { - type: "linear", - title: xyChartData.yAxis.title, - min: Math.min(prevMinValue, minValue), - max: Math.max(prevMaxValue, maxValue) - }; -} -function transformDataWithoutCategory(data) { - let retData = []; - if (data.length === 0) { - return retData; - } - if (!hasSetXAxis) { - const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity; - const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity; - setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length)); - } - if (!hasSetYAxis) { - setYAxisRangeFromPlotData(data); - } - if (isBandAxisData(xyChartData.xAxis)) { - retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]); - } - if (isLinearAxisData(xyChartData.xAxis)) { - const min = xyChartData.xAxis.min; - const max = xyChartData.xAxis.max; - const step = (max - min + 1) / data.length; - const categories = []; - for (let i = min; i <= max; i += step) { - categories.push(`${i}`); - } - retData = categories.map((c, i) => [c, data[i]]); - } - return retData; -} -function getPlotColorFromPalette(plotIndex2) { - return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length]; -} -function setLineData(title, data) { - const plotData = transformDataWithoutCategory(data); - xyChartData.plots.push({ - type: "line", - strokeFill: getPlotColorFromPalette(plotIndex), - strokeWidth: 2, - data: plotData - }); - plotIndex++; -} -function setBarData(title, data) { - const plotData = transformDataWithoutCategory(data); - xyChartData.plots.push({ - type: "bar", - fill: getPlotColorFromPalette(plotIndex), - data: plotData - }); - plotIndex++; -} -function getDrawableElem() { - if (xyChartData.plots.length === 0) { - throw Error("No Plot to render, please provide a plot with some data"); - } - xyChartData.title = getDiagramTitle(); - return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup); -} -function getChartThemeConfig() { - return xyChartThemeConfig; -} -function getChartConfig() { - return xyChartConfig; -} -var clear2 = function() { - clear(); - plotIndex = 0; - xyChartConfig = getChartDefaultConfig(); - xyChartData = getChartDefaultData(); - xyChartThemeConfig = getChartDefaultThemeConfig(); - plotColorPalette = xyChartThemeConfig.plotColorPalette.split(",").map((color) => color.trim()); - hasSetXAxis = false; - hasSetYAxis = false; -}; -var db = { - getDrawableElem, - clear: clear2, - setAccTitle, - getAccTitle, - setDiagramTitle, - getDiagramTitle, - getAccDescription, - setAccDescription, - setOrientation, - setXAxisTitle, - setXAxisRangeData, - setXAxisBand, - setYAxisTitle, - setYAxisRangeData, - setLineData, - setBarData, - setTmpSVGG, - getChartThemeConfig, - getChartConfig -}; -var draw = (txt, id, _version, diagObj) => { - const db2 = diagObj.db; - const themeConfig = db2.getChartThemeConfig(); - const chartConfig = db2.getChartConfig(); - function getDominantBaseLine(horizontalPos) { - return horizontalPos === "top" ? "text-before-edge" : "middle"; - } - function getTextAnchor(verticalPos) { - return verticalPos === "left" ? "start" : verticalPos === "right" ? "end" : "middle"; - } - function getTextTransformation(data) { - return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`; - } - log$1.debug("Rendering xychart chart\n" + txt); - const svg = selectSvgElement(id); - const group = svg.append("g").attr("class", "main"); - const background = group.append("rect").attr("width", chartConfig.width).attr("height", chartConfig.height).attr("class", "background"); - configureSvgSize(svg, chartConfig.height, chartConfig.width, true); - svg.attr("viewBox", `0 0 ${chartConfig.width} ${chartConfig.height}`); - background.attr("fill", themeConfig.backgroundColor); - db2.setTmpSVGG(svg.append("g").attr("class", "mermaid-tmp-group")); - const shapes = db2.getDrawableElem(); - const groups = {}; - function getGroup(gList) { - let elem = group; - let prefix = ""; - for (const [i] of gList.entries()) { - let parent = group; - if (i > 0 && groups[prefix]) { - parent = groups[prefix]; - } - prefix += gList[i]; - elem = groups[prefix]; - if (!elem) { - elem = groups[prefix] = parent.append("g").attr("class", gList[i]); - } - } - return elem; - } - for (const shape of shapes) { - if (shape.data.length === 0) { - continue; - } - const shapeGroup = getGroup(shape.groupTexts); - switch (shape.type) { - case "rect": - shapeGroup.selectAll("rect").data(shape.data).enter().append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill).attr("stroke", (data) => data.strokeFill).attr("stroke-width", (data) => data.strokeWidth); - break; - case "text": - shapeGroup.selectAll("text").data(shape.data).enter().append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.verticalPos)).attr("text-anchor", (data) => getTextAnchor(data.horizontalPos)).attr("transform", (data) => getTextTransformation(data)).text((data) => data.text); - break; - case "path": - shapeGroup.selectAll("path").data(shape.data).enter().append("path").attr("d", (data) => data.path).attr("fill", (data) => data.fill ? data.fill : "none").attr("stroke", (data) => data.strokeFill).attr("stroke-width", (data) => data.strokeWidth); - break; - } - } -}; -var renderer = { - draw -}; -var diagram = { - parser: parser$1, - db, - renderer -}; -export { - diagram -}; -//# sourceMappingURL=xychartDiagram-f746c04c-HIROG2A6.js.map diff --git a/.vuepress/.cache/deps/xychartDiagram-f746c04c-HIROG2A6.js.map b/.vuepress/.cache/deps/xychartDiagram-f746c04c-HIROG2A6.js.map deleted file mode 100644 index a3e1cce8b..000000000 --- a/.vuepress/.cache/deps/xychartDiagram-f746c04c-HIROG2A6.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../../../node_modules/mermaid/dist/xychartDiagram-f746c04c.js"], - "sourcesContent": ["import { l as log, s as setAccTitle, g as getAccTitle, q as setDiagramTitle, r as getDiagramTitle, a as getAccDescription, b as setAccDescription, D as getThemeVariables, E as getConfig, B as cleanAndMerge, A as defaultConfig, t as clear$1, d as sanitizeText, z as selectSvgElement, i as configureSvgSize } from \"./mermaid-934d9bea.js\";\nimport { c as computeDimensionOfText } from \"./createText-aebacdfe.js\";\nimport { scaleBand, scaleLinear, line } from \"d3\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nimport \"mdast-util-from-markdown\";\nvar parser = function() {\n var o = function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n ;\n return o2;\n }, $V0 = [1, 10, 12, 14, 16, 18, 19, 21, 23], $V1 = [2, 6], $V2 = [1, 3], $V3 = [1, 5], $V4 = [1, 6], $V5 = [1, 7], $V6 = [1, 5, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $V7 = [1, 25], $V8 = [1, 26], $V9 = [1, 28], $Va = [1, 29], $Vb = [1, 30], $Vc = [1, 31], $Vd = [1, 32], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 43], $Vk = [1, 42], $Vl = [1, 47], $Vm = [1, 50], $Vn = [1, 10, 12, 14, 16, 18, 19, 21, 23, 34, 35, 36], $Vo = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36], $Vp = [1, 10, 12, 14, 16, 18, 19, 21, 23, 24, 26, 27, 28, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50], $Vq = [1, 64];\n var parser2 = {\n trace: function trace() {\n },\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"eol\": 4, \"XYCHART\": 5, \"chartConfig\": 6, \"document\": 7, \"CHART_ORIENTATION\": 8, \"statement\": 9, \"title\": 10, \"text\": 11, \"X_AXIS\": 12, \"parseXAxis\": 13, \"Y_AXIS\": 14, \"parseYAxis\": 15, \"LINE\": 16, \"plotData\": 17, \"BAR\": 18, \"acc_title\": 19, \"acc_title_value\": 20, \"acc_descr\": 21, \"acc_descr_value\": 22, \"acc_descr_multiline_value\": 23, \"SQUARE_BRACES_START\": 24, \"commaSeparatedNumbers\": 25, \"SQUARE_BRACES_END\": 26, \"NUMBER_WITH_DECIMAL\": 27, \"COMMA\": 28, \"xAxisData\": 29, \"bandData\": 30, \"ARROW_DELIMITER\": 31, \"commaSeparatedTexts\": 32, \"yAxisData\": 33, \"NEWLINE\": 34, \"SEMI\": 35, \"EOF\": 36, \"alphaNum\": 37, \"STR\": 38, \"MD_STR\": 39, \"alphaNumToken\": 40, \"AMP\": 41, \"NUM\": 42, \"ALPHA\": 43, \"PLUS\": 44, \"EQUALS\": 45, \"MULT\": 46, \"DOT\": 47, \"BRKT\": 48, \"MINUS\": 49, \"UNDERSCORE\": 50, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 5: \"XYCHART\", 8: \"CHART_ORIENTATION\", 10: \"title\", 12: \"X_AXIS\", 14: \"Y_AXIS\", 16: \"LINE\", 18: \"BAR\", 19: \"acc_title\", 20: \"acc_title_value\", 21: \"acc_descr\", 22: \"acc_descr_value\", 23: \"acc_descr_multiline_value\", 24: \"SQUARE_BRACES_START\", 26: \"SQUARE_BRACES_END\", 27: \"NUMBER_WITH_DECIMAL\", 28: \"COMMA\", 31: \"ARROW_DELIMITER\", 34: \"NEWLINE\", 35: \"SEMI\", 36: \"EOF\", 38: \"STR\", 39: \"MD_STR\", 41: \"AMP\", 42: \"NUM\", 43: \"ALPHA\", 44: \"PLUS\", 45: \"EQUALS\", 46: \"MULT\", 47: \"DOT\", 48: \"BRKT\", 49: \"MINUS\", 50: \"UNDERSCORE\" },\n productions_: [0, [3, 2], [3, 3], [3, 2], [3, 1], [6, 1], [7, 0], [7, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 2], [9, 3], [9, 2], [9, 3], [9, 2], [9, 2], [9, 1], [17, 3], [25, 3], [25, 1], [13, 1], [13, 2], [13, 1], [29, 1], [29, 3], [30, 3], [32, 3], [32, 1], [15, 1], [15, 2], [15, 1], [33, 3], [4, 1], [4, 1], [4, 1], [11, 1], [11, 1], [11, 1], [37, 1], [37, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 5:\n yy.setOrientation($$[$0]);\n break;\n case 9:\n yy.setDiagramTitle($$[$0].text.trim());\n break;\n case 12:\n yy.setLineData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 13:\n yy.setLineData($$[$0 - 1], $$[$0]);\n break;\n case 14:\n yy.setBarData({ text: \"\", type: \"text\" }, $$[$0]);\n break;\n case 15:\n yy.setBarData($$[$0 - 1], $$[$0]);\n break;\n case 16:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 17:\n case 18:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 19:\n this.$ = $$[$0 - 1];\n break;\n case 20:\n this.$ = [Number($$[$0 - 2]), ...$$[$0]];\n break;\n case 21:\n this.$ = [Number($$[$0])];\n break;\n case 22:\n yy.setXAxisTitle($$[$0]);\n break;\n case 23:\n yy.setXAxisTitle($$[$0 - 1]);\n break;\n case 24:\n yy.setXAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 25:\n yy.setXAxisBand($$[$0]);\n break;\n case 26:\n yy.setXAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 27:\n this.$ = $$[$0 - 1];\n break;\n case 28:\n this.$ = [$$[$0 - 2], ...$$[$0]];\n break;\n case 29:\n this.$ = [$$[$0]];\n break;\n case 30:\n yy.setYAxisTitle($$[$0]);\n break;\n case 31:\n yy.setYAxisTitle($$[$0 - 1]);\n break;\n case 32:\n yy.setYAxisTitle({ type: \"text\", text: \"\" });\n break;\n case 33:\n yy.setYAxisRangeData(Number($$[$0 - 2]), Number($$[$0]));\n break;\n case 37:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 38:\n this.$ = { text: $$[$0], type: \"text\" };\n break;\n case 39:\n this.$ = { text: $$[$0], type: \"markdown\" };\n break;\n case 40:\n this.$ = $$[$0];\n break;\n case 41:\n this.$ = $$[$0 - 1] + \"\" + $$[$0];\n break;\n }\n },\n table: [o($V0, $V1, { 3: 1, 4: 2, 7: 4, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [3] }, o($V0, $V1, { 4: 2, 7: 4, 3: 8, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), o($V0, $V1, { 4: 2, 7: 4, 6: 9, 3: 10, 5: $V2, 8: [1, 11], 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 4], 9: 12, 10: [1, 13], 12: [1, 14], 14: [1, 15], 16: [1, 16], 18: [1, 17], 19: [1, 18], 21: [1, 19], 23: [1, 20] }, o($V6, [2, 34]), o($V6, [2, 35]), o($V6, [2, 36]), { 1: [2, 1] }, o($V0, $V1, { 4: 2, 7: 4, 3: 21, 5: $V2, 34: $V3, 35: $V4, 36: $V5 }), { 1: [2, 3] }, o($V6, [2, 5]), o($V0, [2, 7], { 4: 22, 34: $V3, 35: $V4, 36: $V5 }), { 11: 23, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 39, 13: 38, 24: $Vj, 27: $Vk, 29: 40, 30: 41, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 45, 15: 44, 27: $Vl, 33: 46, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 49, 17: 48, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 11: 52, 17: 51, 24: $Vm, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, { 20: [1, 53] }, { 22: [1, 54] }, o($Vn, [2, 18]), { 1: [2, 2] }, o($Vn, [2, 8]), o($Vn, [2, 9]), o($Vo, [2, 37], { 40: 55, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }), o($Vo, [2, 38]), o($Vo, [2, 39]), o($Vp, [2, 40]), o($Vp, [2, 42]), o($Vp, [2, 43]), o($Vp, [2, 44]), o($Vp, [2, 45]), o($Vp, [2, 46]), o($Vp, [2, 47]), o($Vp, [2, 48]), o($Vp, [2, 49]), o($Vp, [2, 50]), o($Vp, [2, 51]), o($Vn, [2, 10]), o($Vn, [2, 22], { 30: 41, 29: 56, 24: $Vj, 27: $Vk }), o($Vn, [2, 24]), o($Vn, [2, 25]), { 31: [1, 57] }, { 11: 59, 32: 58, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 11]), o($Vn, [2, 30], { 33: 60, 27: $Vl }), o($Vn, [2, 32]), { 31: [1, 61] }, o($Vn, [2, 12]), { 17: 62, 24: $Vm }, { 25: 63, 27: $Vq }, o($Vn, [2, 14]), { 17: 65, 24: $Vm }, o($Vn, [2, 16]), o($Vn, [2, 17]), o($Vp, [2, 41]), o($Vn, [2, 23]), { 27: [1, 66] }, { 26: [1, 67] }, { 26: [2, 29], 28: [1, 68] }, o($Vn, [2, 31]), { 27: [1, 69] }, o($Vn, [2, 13]), { 26: [1, 70] }, { 26: [2, 21], 28: [1, 71] }, o($Vn, [2, 15]), o($Vn, [2, 26]), o($Vn, [2, 27]), { 11: 59, 32: 72, 37: 24, 38: $V7, 39: $V8, 40: 27, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 46: $Ve, 47: $Vf, 48: $Vg, 49: $Vh, 50: $Vi }, o($Vn, [2, 33]), o($Vn, [2, 19]), { 25: 73, 27: $Vq }, { 26: [2, 28] }, { 26: [2, 20] }],\n defaultActions: { 8: [2, 1], 10: [2, 3], 21: [2, 2], 72: [2, 28], 73: [2, 20] },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }\n };\n var lexer = function() {\n var lexer2 = {\n EOF: 1,\n parseError: function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n // resets the lexer, sets new input\n setInput: function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n },\n // consumes and returns one char from the input\n input: function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n },\n // unshifts one char (or a string) into the input\n unput: function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n // When called from action, caches matched text and appends it on next action\n more: function() {\n this._more = true;\n return this;\n },\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n },\n // retain first n characters of the match\n less: function(n) {\n this.unput(this.match.slice(n));\n },\n // displays already matched input, i.e. for error messages\n pastInput: function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n },\n // displays upcoming input, i.e. for error messages\n upcomingInput: function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n },\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n },\n // return next match in input\n next: function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n // return next match that has a token\n lex: function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: function begin(condition) {\n this.conditionStack.push(condition);\n },\n // pop the previously active lexer condition state off the condition stack\n popState: function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n // alias for begin(condition)\n pushState: function pushState(condition) {\n this.begin(condition);\n },\n // return the number of states currently on the stack\n stateStackSize: function stateStackSize() {\n return this.conditionStack.length;\n },\n options: { \"case-insensitive\": true },\n performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n switch ($avoiding_name_collisions) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n this.popState();\n return 34;\n case 3:\n this.popState();\n return 34;\n case 4:\n return 34;\n case 5:\n break;\n case 6:\n return 10;\n case 7:\n this.pushState(\"acc_title\");\n return 19;\n case 8:\n this.popState();\n return \"acc_title_value\";\n case 9:\n this.pushState(\"acc_descr\");\n return 21;\n case 10:\n this.popState();\n return \"acc_descr_value\";\n case 11:\n this.pushState(\"acc_descr_multiline\");\n break;\n case 12:\n this.popState();\n break;\n case 13:\n return \"acc_descr_multiline_value\";\n case 14:\n return 5;\n case 15:\n return 8;\n case 16:\n this.pushState(\"axis_data\");\n return \"X_AXIS\";\n case 17:\n this.pushState(\"axis_data\");\n return \"Y_AXIS\";\n case 18:\n this.pushState(\"axis_band_data\");\n return 24;\n case 19:\n return 31;\n case 20:\n this.pushState(\"data\");\n return 16;\n case 21:\n this.pushState(\"data\");\n return 18;\n case 22:\n this.pushState(\"data_inner\");\n return 24;\n case 23:\n return 27;\n case 24:\n this.popState();\n return 26;\n case 25:\n this.popState();\n break;\n case 26:\n this.pushState(\"string\");\n break;\n case 27:\n this.popState();\n break;\n case 28:\n return \"STR\";\n case 29:\n return 24;\n case 30:\n return 26;\n case 31:\n return 43;\n case 32:\n return \"COLON\";\n case 33:\n return 44;\n case 34:\n return 28;\n case 35:\n return 45;\n case 36:\n return 46;\n case 37:\n return 48;\n case 38:\n return 50;\n case 39:\n return 47;\n case 40:\n return 41;\n case 41:\n return 49;\n case 42:\n return 42;\n case 43:\n break;\n case 44:\n return 35;\n case 45:\n return 36;\n }\n },\n rules: [/^(?:%%(?!\\{)[^\\n]*)/i, /^(?:[^\\}]%%[^\\n]*)/i, /^(?:(\\r?\\n))/i, /^(?:(\\r?\\n))/i, /^(?:[\\n\\r]+)/i, /^(?:%%[^\\n]*)/i, /^(?:title\\b)/i, /^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:\\{)/i, /^(?:[^\\}]*)/i, /^(?:xychart-beta\\b)/i, /^(?:(?:vertical|horizontal))/i, /^(?:x-axis\\b)/i, /^(?:y-axis\\b)/i, /^(?:\\[)/i, /^(?:-->)/i, /^(?:line\\b)/i, /^(?:bar\\b)/i, /^(?:\\[)/i, /^(?:[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+))/i, /^(?:\\])/i, /^(?:(?:`\\) \\{ this\\.pushState\\(md_string\\); \\}\\n\\(\\?:\\(\\?!`\"\\)\\.\\)\\+ \\{ return MD_STR; \\}\\n\\(\\?:`))/i, /^(?:[\"])/i, /^(?:[\"])/i, /^(?:[^\"]*)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:\\*)/i, /^(?:#)/i, /^(?:[\\_])/i, /^(?:\\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\\s+)/i, /^(?:;)/i, /^(?:$)/i],\n conditions: { \"data_inner\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"data\": { \"rules\": [0, 1, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 22, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_band_data\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"axis_data\": { \"rules\": [0, 1, 2, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true }, \"acc_descr_multiline\": { \"rules\": [12, 13], \"inclusive\": false }, \"acc_descr\": { \"rules\": [10], \"inclusive\": false }, \"acc_title\": { \"rules\": [8], \"inclusive\": false }, \"title\": { \"rules\": [], \"inclusive\": false }, \"md_string\": { \"rules\": [], \"inclusive\": false }, \"string\": { \"rules\": [27, 28], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 20, 21, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nfunction isBarPlot(data) {\n return data.type === \"bar\";\n}\nfunction isBandAxisData(data) {\n return data.type === \"band\";\n}\nfunction isLinearAxisData(data) {\n return data.type === \"linear\";\n}\nclass TextDimensionCalculatorWithFont {\n constructor(parentGroup) {\n this.parentGroup = parentGroup;\n }\n getMaxDimension(texts, fontSize) {\n if (!this.parentGroup) {\n return {\n width: texts.reduce((acc, cur) => Math.max(cur.length, acc), 0) * fontSize,\n height: fontSize\n };\n }\n const dimension = {\n width: 0,\n height: 0\n };\n const elem = this.parentGroup.append(\"g\").attr(\"visibility\", \"hidden\").attr(\"font-size\", fontSize);\n for (const t of texts) {\n const bbox = computeDimensionOfText(elem, 1, t);\n const width = bbox ? bbox.width : t.length * fontSize;\n const height = bbox ? bbox.height : fontSize;\n dimension.width = Math.max(dimension.width, width);\n dimension.height = Math.max(dimension.height, height);\n }\n elem.remove();\n return dimension;\n }\n}\nconst BAR_WIDTH_TO_TICK_WIDTH_RATIO = 0.7;\nconst MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL = 0.2;\nclass BaseAxis {\n constructor(axisConfig, title, textDimensionCalculator, axisThemeConfig) {\n this.axisConfig = axisConfig;\n this.title = title;\n this.textDimensionCalculator = textDimensionCalculator;\n this.axisThemeConfig = axisThemeConfig;\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n this.showTitle = false;\n this.showLabel = false;\n this.showTick = false;\n this.showAxisLine = false;\n this.outerPadding = 0;\n this.titleTextHeight = 0;\n this.labelTextHeight = 0;\n this.range = [0, 10];\n this.boundingRect = { x: 0, y: 0, width: 0, height: 0 };\n this.axisPosition = \"left\";\n }\n setRange(range) {\n this.range = range;\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.boundingRect.height = range[1] - range[0];\n } else {\n this.boundingRect.width = range[1] - range[0];\n }\n this.recalculateScale();\n }\n getRange() {\n return [this.range[0] + this.outerPadding, this.range[1] - this.outerPadding];\n }\n setAxisPosition(axisPosition) {\n this.axisPosition = axisPosition;\n this.setRange(this.range);\n }\n getTickDistance() {\n const range = this.getRange();\n return Math.abs(range[0] - range[1]) / this.getTickValues().length;\n }\n getAxisOuterPadding() {\n return this.outerPadding;\n }\n getLabelDimension() {\n return this.textDimensionCalculator.getMaxDimension(\n this.getTickValues().map((tick) => tick.toString()),\n this.axisConfig.labelFontSize\n );\n }\n recalculateOuterPaddingToDrawBar() {\n if (BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() > this.outerPadding * 2) {\n this.outerPadding = Math.floor(BAR_WIDTH_TO_TICK_WIDTH_RATIO * this.getTickDistance() / 2);\n }\n this.recalculateScale();\n }\n calculateSpaceIfDrawnHorizontally(availableSpace) {\n let availableHeight = availableSpace.height;\n if (this.axisConfig.showAxisLine && availableHeight > this.axisConfig.axisLineWidth) {\n availableHeight -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.width;\n this.outerPadding = Math.min(spaceRequired.width / 2, maxPadding);\n const heightRequired = spaceRequired.height + this.axisConfig.labelPadding * 2;\n this.labelTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableHeight >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableHeight -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const heightRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (heightRequired <= availableHeight) {\n availableHeight -= heightRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height - availableHeight;\n }\n calculateSpaceIfDrawnVertical(availableSpace) {\n let availableWidth = availableSpace.width;\n if (this.axisConfig.showAxisLine && availableWidth > this.axisConfig.axisLineWidth) {\n availableWidth -= this.axisConfig.axisLineWidth;\n this.showAxisLine = true;\n }\n if (this.axisConfig.showLabel) {\n const spaceRequired = this.getLabelDimension();\n const maxPadding = MAX_OUTER_PADDING_PERCENT_FOR_WRT_LABEL * availableSpace.height;\n this.outerPadding = Math.min(spaceRequired.height / 2, maxPadding);\n const widthRequired = spaceRequired.width + this.axisConfig.labelPadding * 2;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showLabel = true;\n }\n }\n if (this.axisConfig.showTick && availableWidth >= this.axisConfig.tickLength) {\n this.showTick = true;\n availableWidth -= this.axisConfig.tickLength;\n }\n if (this.axisConfig.showTitle && this.title) {\n const spaceRequired = this.textDimensionCalculator.getMaxDimension(\n [this.title],\n this.axisConfig.titleFontSize\n );\n const widthRequired = spaceRequired.height + this.axisConfig.titlePadding * 2;\n this.titleTextHeight = spaceRequired.height;\n if (widthRequired <= availableWidth) {\n availableWidth -= widthRequired;\n this.showTitle = true;\n }\n }\n this.boundingRect.width = availableSpace.width - availableWidth;\n this.boundingRect.height = availableSpace.height;\n }\n calculateSpace(availableSpace) {\n if (this.axisPosition === \"left\" || this.axisPosition === \"right\") {\n this.calculateSpaceIfDrawnVertical(availableSpace);\n } else {\n this.calculateSpaceIfDrawnHorizontally(availableSpace);\n }\n this.recalculateScale();\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n getDrawableElementsForLeftAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const x = this.boundingRect.x + this.boundingRect.width - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"axisl-line\"],\n data: [\n {\n path: `M ${x},${this.boundingRect.y} L ${x},${this.boundingRect.y + this.boundingRect.height} `,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.boundingRect.x + this.boundingRect.width - (this.showLabel ? this.axisConfig.labelPadding : 0) - (this.showTick ? this.axisConfig.tickLength : 0) - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n y: this.getScaleValue(tick),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"middle\",\n horizontalPos: \"right\"\n }))\n });\n }\n if (this.showTick) {\n const x = this.boundingRect.x + this.boundingRect.width - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"left-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${x},${this.getScaleValue(tick)} L ${x - this.axisConfig.tickLength},${this.getScaleValue(tick)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"left-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.axisConfig.titlePadding,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 270,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForBottomAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + this.axisConfig.labelPadding + (this.showTick ? this.axisConfig.tickLength : 0) + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0),\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y + (this.showAxisLine ? this.axisConfig.axisLineWidth : 0);\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"bottom-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y} L ${this.getScaleValue(tick)},${y + this.axisConfig.tickLength}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"bottom-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.range[0] + (this.range[1] - this.range[0]) / 2,\n y: this.boundingRect.y + this.boundingRect.height - this.axisConfig.titlePadding - this.titleTextHeight,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElementsForTopAxis() {\n const drawableElement = [];\n if (this.showAxisLine) {\n const y = this.boundingRect.y + this.boundingRect.height - this.axisConfig.axisLineWidth / 2;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"axis-line\"],\n data: [\n {\n path: `M ${this.boundingRect.x},${y} L ${this.boundingRect.x + this.boundingRect.width},${y}`,\n strokeFill: this.axisThemeConfig.axisLineColor,\n strokeWidth: this.axisConfig.axisLineWidth\n }\n ]\n });\n }\n if (this.showLabel) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"label\"],\n data: this.getTickValues().map((tick) => ({\n text: tick.toString(),\n x: this.getScaleValue(tick),\n y: this.boundingRect.y + (this.showTitle ? this.titleTextHeight + this.axisConfig.titlePadding * 2 : 0) + this.axisConfig.labelPadding,\n fill: this.axisThemeConfig.labelColor,\n fontSize: this.axisConfig.labelFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }))\n });\n }\n if (this.showTick) {\n const y = this.boundingRect.y;\n drawableElement.push({\n type: \"path\",\n groupTexts: [\"top-axis\", \"ticks\"],\n data: this.getTickValues().map((tick) => ({\n path: `M ${this.getScaleValue(tick)},${y + this.boundingRect.height - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)} L ${this.getScaleValue(tick)},${y + this.boundingRect.height - this.axisConfig.tickLength - (this.showAxisLine ? this.axisConfig.axisLineWidth : 0)}`,\n strokeFill: this.axisThemeConfig.tickColor,\n strokeWidth: this.axisConfig.tickWidth\n }))\n });\n }\n if (this.showTitle) {\n drawableElement.push({\n type: \"text\",\n groupTexts: [\"top-axis\", \"title\"],\n data: [\n {\n text: this.title,\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.axisConfig.titlePadding,\n fill: this.axisThemeConfig.titleColor,\n fontSize: this.axisConfig.titleFontSize,\n rotation: 0,\n verticalPos: \"top\",\n horizontalPos: \"center\"\n }\n ]\n });\n }\n return drawableElement;\n }\n getDrawableElements() {\n if (this.axisPosition === \"left\") {\n return this.getDrawableElementsForLeftAxis();\n }\n if (this.axisPosition === \"right\") {\n throw Error(\"Drawing of right axis is not implemented\");\n }\n if (this.axisPosition === \"bottom\") {\n return this.getDrawableElementsForBottomAxis();\n }\n if (this.axisPosition === \"top\") {\n return this.getDrawableElementsForTopAxis();\n }\n return [];\n }\n}\nclass BandAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, categories, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.categories = categories;\n this.scale = scaleBand().domain(this.categories).range(this.getRange());\n }\n setRange(range) {\n super.setRange(range);\n }\n recalculateScale() {\n this.scale = scaleBand().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5);\n log.trace(\"BandAxis axis final categories, range: \", this.categories, this.getRange());\n }\n getTickValues() {\n return this.categories;\n }\n getScaleValue(value) {\n return this.scale(value) || this.getRange()[0];\n }\n}\nclass LinearAxis extends BaseAxis {\n constructor(axisConfig, axisThemeConfig, domain, title, textDimensionCalculator) {\n super(axisConfig, title, textDimensionCalculator, axisThemeConfig);\n this.domain = domain;\n this.scale = scaleLinear().domain(this.domain).range(this.getRange());\n }\n getTickValues() {\n return this.scale.ticks();\n }\n recalculateScale() {\n const domain = [...this.domain];\n if (this.axisPosition === \"left\") {\n domain.reverse();\n }\n this.scale = scaleLinear().domain(domain).range(this.getRange());\n }\n getScaleValue(value) {\n return this.scale(value);\n }\n}\nfunction getAxis(data, axisConfig, axisThemeConfig, tmpSVGGroup2) {\n const textDimansionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n if (isBandAxisData(data)) {\n return new BandAxis(\n axisConfig,\n axisThemeConfig,\n data.categories,\n data.title,\n textDimansionCalculator\n );\n }\n return new LinearAxis(\n axisConfig,\n axisThemeConfig,\n [data.min, data.max],\n data.title,\n textDimansionCalculator\n );\n}\nclass ChartTitle {\n constructor(textDimensionCalculator, chartConfig, chartData, chartThemeConfig) {\n this.textDimensionCalculator = textDimensionCalculator;\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.showChartTitle = false;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n const titleDimension = this.textDimensionCalculator.getMaxDimension(\n [this.chartData.title],\n this.chartConfig.titleFontSize\n );\n const widthRequired = Math.max(titleDimension.width, availableSpace.width);\n const heightRequired = titleDimension.height + 2 * this.chartConfig.titlePadding;\n if (titleDimension.width <= widthRequired && titleDimension.height <= heightRequired && this.chartConfig.showTitle && this.chartData.title) {\n this.boundingRect.width = widthRequired;\n this.boundingRect.height = heightRequired;\n this.showChartTitle = true;\n }\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n const drawableElem = [];\n if (this.showChartTitle) {\n drawableElem.push({\n groupTexts: [\"chart-title\"],\n type: \"text\",\n data: [\n {\n fontSize: this.chartConfig.titleFontSize,\n text: this.chartData.title,\n verticalPos: \"middle\",\n horizontalPos: \"center\",\n x: this.boundingRect.x + this.boundingRect.width / 2,\n y: this.boundingRect.y + this.boundingRect.height / 2,\n fill: this.chartThemeConfig.titleColor,\n rotation: 0\n }\n ]\n });\n }\n return drawableElem;\n }\n}\nfunction getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n const textDimensionCalculator = new TextDimensionCalculatorWithFont(tmpSVGGroup2);\n return new ChartTitle(textDimensionCalculator, chartConfig, chartData, chartThemeConfig);\n}\nclass LinePlot {\n constructor(plotData, xAxis, yAxis, orientation, plotIndex2) {\n this.plotData = plotData;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.plotData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n let path;\n if (this.orientation === \"horizontal\") {\n path = line().y((d) => d[0]).x((d) => d[1])(finalData);\n } else {\n path = line().x((d) => d[0]).y((d) => d[1])(finalData);\n }\n if (!path) {\n return [];\n }\n return [\n {\n groupTexts: [\"plot\", `line-plot-${this.plotIndex}`],\n type: \"path\",\n data: [\n {\n path,\n strokeFill: this.plotData.strokeFill,\n strokeWidth: this.plotData.strokeWidth\n }\n ]\n }\n ];\n }\n}\nclass BarPlot {\n constructor(barData, boundingRect, xAxis, yAxis, orientation, plotIndex2) {\n this.barData = barData;\n this.boundingRect = boundingRect;\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n this.orientation = orientation;\n this.plotIndex = plotIndex2;\n }\n getDrawableElement() {\n const finalData = this.barData.data.map((d) => [\n this.xAxis.getScaleValue(d[0]),\n this.yAxis.getScaleValue(d[1])\n ]);\n const barPaddingPercent = 0.05;\n const barWidth = Math.min(this.xAxis.getAxisOuterPadding() * 2, this.xAxis.getTickDistance()) * (1 - barPaddingPercent);\n const barWidthHalf = barWidth / 2;\n if (this.orientation === \"horizontal\") {\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: this.boundingRect.x,\n y: data[0] - barWidthHalf,\n height: barWidth,\n width: data[1] - this.boundingRect.x,\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n return [\n {\n groupTexts: [\"plot\", `bar-plot-${this.plotIndex}`],\n type: \"rect\",\n data: finalData.map((data) => ({\n x: data[0] - barWidthHalf,\n y: data[1],\n width: barWidth,\n height: this.boundingRect.y + this.boundingRect.height - data[1],\n fill: this.barData.fill,\n strokeWidth: 0,\n strokeFill: this.barData.fill\n }))\n }\n ];\n }\n}\nclass BasePlot {\n constructor(chartConfig, chartData, chartThemeConfig) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.chartThemeConfig = chartThemeConfig;\n this.boundingRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n setAxes(xAxis, yAxis) {\n this.xAxis = xAxis;\n this.yAxis = yAxis;\n }\n setBoundingBoxXY(point) {\n this.boundingRect.x = point.x;\n this.boundingRect.y = point.y;\n }\n calculateSpace(availableSpace) {\n this.boundingRect.width = availableSpace.width;\n this.boundingRect.height = availableSpace.height;\n return {\n width: this.boundingRect.width,\n height: this.boundingRect.height\n };\n }\n getDrawableElements() {\n if (!(this.xAxis && this.yAxis)) {\n throw Error(\"Axes must be passed to render Plots\");\n }\n const drawableElem = [];\n for (const [i, plot] of this.chartData.plots.entries()) {\n switch (plot.type) {\n case \"line\":\n {\n const linePlot = new LinePlot(\n plot,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...linePlot.getDrawableElement());\n }\n break;\n case \"bar\":\n {\n const barPlot = new BarPlot(\n plot,\n this.boundingRect,\n this.xAxis,\n this.yAxis,\n this.chartConfig.chartOrientation,\n i\n );\n drawableElem.push(...barPlot.getDrawableElement());\n }\n break;\n }\n }\n return drawableElem;\n }\n}\nfunction getPlotComponent(chartConfig, chartData, chartThemeConfig) {\n return new BasePlot(chartConfig, chartData, chartThemeConfig);\n}\nclass Orchestrator {\n constructor(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2) {\n this.chartConfig = chartConfig;\n this.chartData = chartData;\n this.componentStore = {\n title: getChartTitleComponent(chartConfig, chartData, chartThemeConfig, tmpSVGGroup2),\n plot: getPlotComponent(chartConfig, chartData, chartThemeConfig),\n xAxis: getAxis(\n chartData.xAxis,\n chartConfig.xAxis,\n {\n titleColor: chartThemeConfig.xAxisTitleColor,\n labelColor: chartThemeConfig.xAxisLabelColor,\n tickColor: chartThemeConfig.xAxisTickColor,\n axisLineColor: chartThemeConfig.xAxisLineColor\n },\n tmpSVGGroup2\n ),\n yAxis: getAxis(\n chartData.yAxis,\n chartConfig.yAxis,\n {\n titleColor: chartThemeConfig.yAxisTitleColor,\n labelColor: chartThemeConfig.yAxisLabelColor,\n tickColor: chartThemeConfig.yAxisTickColor,\n axisLineColor: chartThemeConfig.yAxisLineColor\n },\n tmpSVGGroup2\n )\n };\n }\n calculateVerticalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n plotY = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"bottom\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n this.componentStore.yAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n plotX = spaceUsed.width;\n availableWidth -= spaceUsed.width;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.xAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: plotX, y: plotY + chartHeight });\n this.componentStore.yAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateHorizonatalSpace() {\n let availableWidth = this.chartConfig.width;\n let availableHeight = this.chartConfig.height;\n let titleYEnd = 0;\n let plotX = 0;\n let plotY = 0;\n let chartWidth = Math.floor(availableWidth * this.chartConfig.plotReservedSpacePercent / 100);\n let chartHeight = Math.floor(\n availableHeight * this.chartConfig.plotReservedSpacePercent / 100\n );\n let spaceUsed = this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n availableWidth -= spaceUsed.width;\n availableHeight -= spaceUsed.height;\n spaceUsed = this.componentStore.title.calculateSpace({\n width: this.chartConfig.width,\n height: availableHeight\n });\n titleYEnd = spaceUsed.height;\n availableHeight -= spaceUsed.height;\n this.componentStore.xAxis.setAxisPosition(\"left\");\n spaceUsed = this.componentStore.xAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableWidth -= spaceUsed.width;\n plotX = spaceUsed.width;\n this.componentStore.yAxis.setAxisPosition(\"top\");\n spaceUsed = this.componentStore.yAxis.calculateSpace({\n width: availableWidth,\n height: availableHeight\n });\n availableHeight -= spaceUsed.height;\n plotY = titleYEnd + spaceUsed.height;\n if (availableWidth > 0) {\n chartWidth += availableWidth;\n availableWidth = 0;\n }\n if (availableHeight > 0) {\n chartHeight += availableHeight;\n availableHeight = 0;\n }\n this.componentStore.plot.calculateSpace({\n width: chartWidth,\n height: chartHeight\n });\n this.componentStore.plot.setBoundingBoxXY({ x: plotX, y: plotY });\n this.componentStore.yAxis.setRange([plotX, plotX + chartWidth]);\n this.componentStore.yAxis.setBoundingBoxXY({ x: plotX, y: titleYEnd });\n this.componentStore.xAxis.setRange([plotY, plotY + chartHeight]);\n this.componentStore.xAxis.setBoundingBoxXY({ x: 0, y: plotY });\n if (this.chartData.plots.some((p) => isBarPlot(p))) {\n this.componentStore.xAxis.recalculateOuterPaddingToDrawBar();\n }\n }\n calculateSpace() {\n if (this.chartConfig.chartOrientation === \"horizontal\") {\n this.calculateHorizonatalSpace();\n } else {\n this.calculateVerticalSpace();\n }\n }\n getDrawableElement() {\n this.calculateSpace();\n const drawableElem = [];\n this.componentStore.plot.setAxes(this.componentStore.xAxis, this.componentStore.yAxis);\n for (const component of Object.values(this.componentStore)) {\n drawableElem.push(...component.getDrawableElements());\n }\n return drawableElem;\n }\n}\nclass XYChartBuilder {\n static build(config, chartData, chartThemeConfig, tmpSVGGroup2) {\n const orchestrator = new Orchestrator(config, chartData, chartThemeConfig, tmpSVGGroup2);\n return orchestrator.getDrawableElement();\n }\n}\nlet plotIndex = 0;\nlet tmpSVGGroup;\nlet xyChartConfig = getChartDefaultConfig();\nlet xyChartThemeConfig = getChartDefaultThemeConfig();\nlet xyChartData = getChartDefaultData();\nlet plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\nlet hasSetXAxis = false;\nlet hasSetYAxis = false;\nfunction getChartDefaultThemeConfig() {\n const defaultThemeVariables = getThemeVariables();\n const config = getConfig();\n return cleanAndMerge(defaultThemeVariables.xyChart, config.themeVariables.xyChart);\n}\nfunction getChartDefaultConfig() {\n const config = getConfig();\n return cleanAndMerge(\n defaultConfig.xyChart,\n config.xyChart\n );\n}\nfunction getChartDefaultData() {\n return {\n yAxis: {\n type: \"linear\",\n title: \"\",\n min: Infinity,\n max: -Infinity\n },\n xAxis: {\n type: \"band\",\n title: \"\",\n categories: []\n },\n title: \"\",\n plots: []\n };\n}\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\nfunction setTmpSVGG(SVGG) {\n tmpSVGGroup = SVGG;\n}\nfunction setOrientation(orientation) {\n if (orientation === \"horizontal\") {\n xyChartConfig.chartOrientation = \"horizontal\";\n } else {\n xyChartConfig.chartOrientation = \"vertical\";\n }\n}\nfunction setXAxisTitle(title) {\n xyChartData.xAxis.title = textSanitizer(title.text);\n}\nfunction setXAxisRangeData(min, max) {\n xyChartData.xAxis = { type: \"linear\", title: xyChartData.xAxis.title, min, max };\n hasSetXAxis = true;\n}\nfunction setXAxisBand(categories) {\n xyChartData.xAxis = {\n type: \"band\",\n title: xyChartData.xAxis.title,\n categories: categories.map((c) => textSanitizer(c.text))\n };\n hasSetXAxis = true;\n}\nfunction setYAxisTitle(title) {\n xyChartData.yAxis.title = textSanitizer(title.text);\n}\nfunction setYAxisRangeData(min, max) {\n xyChartData.yAxis = { type: \"linear\", title: xyChartData.yAxis.title, min, max };\n hasSetYAxis = true;\n}\nfunction setYAxisRangeFromPlotData(data) {\n const minValue = Math.min(...data);\n const maxValue = Math.max(...data);\n const prevMinValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.yAxis) ? xyChartData.yAxis.max : -Infinity;\n xyChartData.yAxis = {\n type: \"linear\",\n title: xyChartData.yAxis.title,\n min: Math.min(prevMinValue, minValue),\n max: Math.max(prevMaxValue, maxValue)\n };\n}\nfunction transformDataWithoutCategory(data) {\n let retData = [];\n if (data.length === 0) {\n return retData;\n }\n if (!hasSetXAxis) {\n const prevMinValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.min : Infinity;\n const prevMaxValue = isLinearAxisData(xyChartData.xAxis) ? xyChartData.xAxis.max : -Infinity;\n setXAxisRangeData(Math.min(prevMinValue, 1), Math.max(prevMaxValue, data.length));\n }\n if (!hasSetYAxis) {\n setYAxisRangeFromPlotData(data);\n }\n if (isBandAxisData(xyChartData.xAxis)) {\n retData = xyChartData.xAxis.categories.map((c, i) => [c, data[i]]);\n }\n if (isLinearAxisData(xyChartData.xAxis)) {\n const min = xyChartData.xAxis.min;\n const max = xyChartData.xAxis.max;\n const step = (max - min + 1) / data.length;\n const categories = [];\n for (let i = min; i <= max; i += step) {\n categories.push(`${i}`);\n }\n retData = categories.map((c, i) => [c, data[i]]);\n }\n return retData;\n}\nfunction getPlotColorFromPalette(plotIndex2) {\n return plotColorPalette[plotIndex2 === 0 ? 0 : plotIndex2 % plotColorPalette.length];\n}\nfunction setLineData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"line\",\n strokeFill: getPlotColorFromPalette(plotIndex),\n strokeWidth: 2,\n data: plotData\n });\n plotIndex++;\n}\nfunction setBarData(title, data) {\n const plotData = transformDataWithoutCategory(data);\n xyChartData.plots.push({\n type: \"bar\",\n fill: getPlotColorFromPalette(plotIndex),\n data: plotData\n });\n plotIndex++;\n}\nfunction getDrawableElem() {\n if (xyChartData.plots.length === 0) {\n throw Error(\"No Plot to render, please provide a plot with some data\");\n }\n xyChartData.title = getDiagramTitle();\n return XYChartBuilder.build(xyChartConfig, xyChartData, xyChartThemeConfig, tmpSVGGroup);\n}\nfunction getChartThemeConfig() {\n return xyChartThemeConfig;\n}\nfunction getChartConfig() {\n return xyChartConfig;\n}\nconst clear = function() {\n clear$1();\n plotIndex = 0;\n xyChartConfig = getChartDefaultConfig();\n xyChartData = getChartDefaultData();\n xyChartThemeConfig = getChartDefaultThemeConfig();\n plotColorPalette = xyChartThemeConfig.plotColorPalette.split(\",\").map((color) => color.trim());\n hasSetXAxis = false;\n hasSetYAxis = false;\n};\nconst db = {\n getDrawableElem,\n clear,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription,\n setOrientation,\n setXAxisTitle,\n setXAxisRangeData,\n setXAxisBand,\n setYAxisTitle,\n setYAxisRangeData,\n setLineData,\n setBarData,\n setTmpSVGG,\n getChartThemeConfig,\n getChartConfig\n};\nconst draw = (txt, id, _version, diagObj) => {\n const db2 = diagObj.db;\n const themeConfig = db2.getChartThemeConfig();\n const chartConfig = db2.getChartConfig();\n function getDominantBaseLine(horizontalPos) {\n return horizontalPos === \"top\" ? \"text-before-edge\" : \"middle\";\n }\n function getTextAnchor(verticalPos) {\n return verticalPos === \"left\" ? \"start\" : verticalPos === \"right\" ? \"end\" : \"middle\";\n }\n function getTextTransformation(data) {\n return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;\n }\n log.debug(\"Rendering xychart chart\\n\" + txt);\n const svg = selectSvgElement(id);\n const group = svg.append(\"g\").attr(\"class\", \"main\");\n const background = group.append(\"rect\").attr(\"width\", chartConfig.width).attr(\"height\", chartConfig.height).attr(\"class\", \"background\");\n configureSvgSize(svg, chartConfig.height, chartConfig.width, true);\n svg.attr(\"viewBox\", `0 0 ${chartConfig.width} ${chartConfig.height}`);\n background.attr(\"fill\", themeConfig.backgroundColor);\n db2.setTmpSVGG(svg.append(\"g\").attr(\"class\", \"mermaid-tmp-group\"));\n const shapes = db2.getDrawableElem();\n const groups = {};\n function getGroup(gList) {\n let elem = group;\n let prefix = \"\";\n for (const [i] of gList.entries()) {\n let parent = group;\n if (i > 0 && groups[prefix]) {\n parent = groups[prefix];\n }\n prefix += gList[i];\n elem = groups[prefix];\n if (!elem) {\n elem = groups[prefix] = parent.append(\"g\").attr(\"class\", gList[i]);\n }\n }\n return elem;\n }\n for (const shape of shapes) {\n if (shape.data.length === 0) {\n continue;\n }\n const shapeGroup = getGroup(shape.groupTexts);\n switch (shape.type) {\n case \"rect\":\n shapeGroup.selectAll(\"rect\").data(shape.data).enter().append(\"rect\").attr(\"x\", (data) => data.x).attr(\"y\", (data) => data.y).attr(\"width\", (data) => data.width).attr(\"height\", (data) => data.height).attr(\"fill\", (data) => data.fill).attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n case \"text\":\n shapeGroup.selectAll(\"text\").data(shape.data).enter().append(\"text\").attr(\"x\", 0).attr(\"y\", 0).attr(\"fill\", (data) => data.fill).attr(\"font-size\", (data) => data.fontSize).attr(\"dominant-baseline\", (data) => getDominantBaseLine(data.verticalPos)).attr(\"text-anchor\", (data) => getTextAnchor(data.horizontalPos)).attr(\"transform\", (data) => getTextTransformation(data)).text((data) => data.text);\n break;\n case \"path\":\n shapeGroup.selectAll(\"path\").data(shape.data).enter().append(\"path\").attr(\"d\", (data) => data.path).attr(\"fill\", (data) => data.fill ? data.fill : \"none\").attr(\"stroke\", (data) => data.strokeFill).attr(\"stroke-width\", (data) => data.strokeWidth);\n break;\n }\n }\n};\nconst renderer = {\n draw\n};\nconst diagram = {\n parser: parser$1,\n db,\n renderer\n};\nexport {\n diagram\n};\n"], - "mappings": "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KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,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", - "names": ["clear"] -} diff --git a/.vuepress/.temp/components/config.js b/.vuepress/.temp/components/config.js deleted file mode 100644 index 4b9f7d541..000000000 --- a/.vuepress/.temp/components/config.js +++ /dev/null @@ -1,26 +0,0 @@ -import { defineClientConfig } from "@vuepress/client"; -import { hasGlobalComponent } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-shared/lib/client/index.js"; -import { h } from "vue"; - -import { useStyleTag } from "/Users/alippold/github/mitre/saf-training/node_modules/@vueuse/core/index.mjs"; -import Badge from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-components/lib/client/components/Badge.js"; -import FontIcon from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-components/lib/client/components/FontIcon.js"; -import BackToTop from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-components/lib/client/components/BackToTop.js"; - -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-components/lib/client/styles/sr-only.scss"; - -export default defineClientConfig({ - enhance: ({ app }) => { - if(!hasGlobalComponent("Badge")) app.component("Badge", Badge); - if(!hasGlobalComponent("FontIcon")) app.component("FontIcon", FontIcon); - - }, - setup: () => { - useStyleTag(`\ -@import url("//at.alicdn.com/t/font_2410206_h4r1xw8ppng.css"); -`); - }, - rootComponents: [ - () => h(BackToTop, {}), - ], -}); diff --git a/.vuepress/.temp/internal/clientConfigs.js b/.vuepress/.temp/internal/clientConfigs.js deleted file mode 100644 index f8b9082f3..000000000 --- a/.vuepress/.temp/internal/clientConfigs.js +++ /dev/null @@ -1,27 +0,0 @@ -import clientConfig0 from '/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/sass-palette/load-hope.js' -import clientConfig1 from '/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/components/config.js' -import clientConfig2 from '/Users/alippold/github/mitre/saf-training/node_modules/@vuepress/plugin-active-header-links/lib/client/config.js' -import clientConfig3 from '/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-auto-catalog/lib/client/config.js' -import clientConfig4 from '/Users/alippold/github/mitre/saf-training/node_modules/@vuepress/plugin-external-link-icon/lib/client/config.js' -import clientConfig5 from '/Users/alippold/github/mitre/saf-training/node_modules/@vuepress/plugin-nprogress/lib/client/config.js' -import clientConfig6 from '/Users/alippold/github/mitre/saf-training/node_modules/@vuepress/plugin-theme-data/lib/client/config.js' -import clientConfig7 from '/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-comment2/lib/client/config.js' -import clientConfig8 from '/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-copy-code2/lib/client/config.js' -import clientConfig9 from '/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/md-enhance/config.js' -import clientConfig10 from '/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-photo-swipe/lib/client/config.js' -import clientConfig11 from '/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/theme-hope/config.js' - -export const clientConfigs = [ - clientConfig0, - clientConfig1, - clientConfig2, - clientConfig3, - clientConfig4, - clientConfig5, - clientConfig6, - clientConfig7, - clientConfig8, - clientConfig9, - clientConfig10, - clientConfig11, -] diff --git a/.vuepress/.temp/internal/pagesComponents.js b/.vuepress/.temp/internal/pagesComponents.js deleted file mode 100644 index e4e8f5def..000000000 --- a/.vuepress/.temp/internal/pagesComponents.js +++ /dev/null @@ -1,222 +0,0 @@ -import { defineAsyncComponent } from 'vue' - -export const pagesComponents = { - // path: / - "v-8daa1a0e": defineAsyncComponent(() => import(/* webpackChunkName: "v-8daa1a0e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/index.html.vue")), - // path: /slides.html - "v-2e3eac9e": defineAsyncComponent(() => import(/* webpackChunkName: "v-2e3eac9e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/slides.html.vue")), - // path: /guide/ - "v-fffb8e28": defineAsyncComponent(() => import(/* webpackChunkName: "v-fffb8e28" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/index.html.vue")), - // path: /demo/ - "v-1473bf53": defineAsyncComponent(() => import(/* webpackChunkName: "v-1473bf53" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/index.html.vue")), - // path: /demo/disable.html - "v-4e65ec78": defineAsyncComponent(() => import(/* webpackChunkName: "v-4e65ec78" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/disable.html.vue")), - // path: /demo/encrypt.html - "v-c151bf32": defineAsyncComponent(() => import(/* webpackChunkName: "v-c151bf32" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/encrypt.html.vue")), - // path: /demo/markdown.html - "v-438ffe52": defineAsyncComponent(() => import(/* webpackChunkName: "v-438ffe52" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/markdown.html.vue")), - // path: /demo/page.html - "v-6e19edb7": defineAsyncComponent(() => import(/* webpackChunkName: "v-6e19edb7" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/page.html.vue")), - // path: /installation/LinuxInstall.html - "v-2ae58894": defineAsyncComponent(() => import(/* webpackChunkName: "v-2ae58894" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/LinuxInstall.html.vue")), - // path: /installation/MacInstall.html - "v-59a19ede": defineAsyncComponent(() => import(/* webpackChunkName: "v-59a19ede" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/MacInstall.html.vue")), - // path: /installation/ - "v-08a5d2dc": defineAsyncComponent(() => import(/* webpackChunkName: "v-08a5d2dc" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/index.html.vue")), - // path: /installation/WindowsInstall.html - "v-4f4ac476": defineAsyncComponent(() => import(/* webpackChunkName: "v-4f4ac476" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/WindowsInstall.html.vue")), - // path: /resources/02.html - "v-255cf054": defineAsyncComponent(() => import(/* webpackChunkName: "v-255cf054" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/02.html.vue")), - // path: /resources/03.html - "v-2711c8f3": defineAsyncComponent(() => import(/* webpackChunkName: "v-2711c8f3" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/03.html.vue")), - // path: /resources/04.html - "v-28c6a192": defineAsyncComponent(() => import(/* webpackChunkName: "v-28c6a192" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/04.html.vue")), - // path: /resources/ - "v-7fe15663": defineAsyncComponent(() => import(/* webpackChunkName: "v-7fe15663" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/index.html.vue")), - // path: /guide/bar/ - "v-5d5c2d30": defineAsyncComponent(() => import(/* webpackChunkName: "v-5d5c2d30" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/bar/index.html.vue")), - // path: /guide/bar/baz.html - "v-177e1f06": defineAsyncComponent(() => import(/* webpackChunkName: "v-177e1f06" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/bar/baz.html.vue")), - // path: /guide/foo/ - "v-5d5821d6": defineAsyncComponent(() => import(/* webpackChunkName: "v-5d5821d6" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/foo/index.html.vue")), - // path: /guide/foo/ray.html - "v-0b6fc5f8": defineAsyncComponent(() => import(/* webpackChunkName: "v-0b6fc5f8" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/foo/ray.html.vue")), - // path: /courses/advanced/02.html - "v-2ecf6c9a": defineAsyncComponent(() => import(/* webpackChunkName: "v-2ecf6c9a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/02.html.vue")), - // path: /courses/advanced/03.html - "v-30844539": defineAsyncComponent(() => import(/* webpackChunkName: "v-30844539" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/03.html.vue")), - // path: /courses/advanced/04.html - "v-32391dd8": defineAsyncComponent(() => import(/* webpackChunkName: "v-32391dd8" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/04.html.vue")), - // path: /courses/advanced/05.html - "v-33edf677": defineAsyncComponent(() => import(/* webpackChunkName: "v-33edf677" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/05.html.vue")), - // path: /courses/advanced/06.html - "v-35a2cf16": defineAsyncComponent(() => import(/* webpackChunkName: "v-35a2cf16" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/06.html.vue")), - // path: /courses/advanced/07.html - "v-3757a7b5": defineAsyncComponent(() => import(/* webpackChunkName: "v-3757a7b5" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/07.html.vue")), - // path: /courses/advanced/08.html - "v-390c8054": defineAsyncComponent(() => import(/* webpackChunkName: "v-390c8054" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/08.html.vue")), - // path: /courses/advanced/09.html - "v-3ac158f3": defineAsyncComponent(() => import(/* webpackChunkName: "v-3ac158f3" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/09.html.vue")), - // path: /courses/advanced/10.html - "v-604bf69d": defineAsyncComponent(() => import(/* webpackChunkName: "v-604bf69d" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/10.html.vue")), - // path: /courses/advanced/11.html - "v-6200cf3c": defineAsyncComponent(() => import(/* webpackChunkName: "v-6200cf3c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/11.html.vue")), - // path: /courses/advanced/12.html - "v-63b5a7db": defineAsyncComponent(() => import(/* webpackChunkName: "v-63b5a7db" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/12.html.vue")), - // path: /courses/advanced/Appendix%20A%20-%20Writing%20Plural%20Resources.html - "v-32f5f052": defineAsyncComponent(() => import(/* webpackChunkName: "v-32f5f052" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.vue")), - // path: /courses/advanced/Appendix%20B%20-%20Resource%20Examples.html - "v-937704e2": defineAsyncComponent(() => import(/* webpackChunkName: "v-937704e2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.vue")), - // path: /courses/advanced/Appendix%20C%20-%20Adding%20Your%20Resource%20to%20InSpec.html - "v-f978fcb6": defineAsyncComponent(() => import(/* webpackChunkName: "v-f978fcb6" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.vue")), - // path: /courses/advanced/Appendix%20D%20-%20Example%20Pipeline%20for%20Validating%20an%20InSpec%20Profile.html - "v-4faaa59d": defineAsyncComponent(() => import(/* webpackChunkName: "v-4faaa59d" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.vue")), - // path: /courses/advanced/Appendix%20E%20-%20More%20Resource%20Examples.html - "v-b1912590": defineAsyncComponent(() => import(/* webpackChunkName: "v-b1912590" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.vue")), - // path: /courses/advanced/ - "v-0cb10646": defineAsyncComponent(() => import(/* webpackChunkName: "v-0cb10646" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/index.html.vue")), - // path: /courses/beginner/02.html - "v-23e7d8ca": defineAsyncComponent(() => import(/* webpackChunkName: "v-23e7d8ca" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/02.html.vue")), - // path: /courses/beginner/03.html - "v-259cb169": defineAsyncComponent(() => import(/* webpackChunkName: "v-259cb169" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/03.html.vue")), - // path: /courses/beginner/04.html - "v-27518a08": defineAsyncComponent(() => import(/* webpackChunkName: "v-27518a08" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/04.html.vue")), - // path: /courses/beginner/05.html - "v-290662a7": defineAsyncComponent(() => import(/* webpackChunkName: "v-290662a7" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/05.html.vue")), - // path: /courses/beginner/06.html - "v-2abb3b46": defineAsyncComponent(() => import(/* webpackChunkName: "v-2abb3b46" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/06.html.vue")), - // path: /courses/beginner/07.html - "v-2c7013e5": defineAsyncComponent(() => import(/* webpackChunkName: "v-2c7013e5" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/07.html.vue")), - // path: /courses/beginner/08.html - "v-2e24ec84": defineAsyncComponent(() => import(/* webpackChunkName: "v-2e24ec84" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/08.html.vue")), - // path: /courses/beginner/09.html - "v-2fd9c523": defineAsyncComponent(() => import(/* webpackChunkName: "v-2fd9c523" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/09.html.vue")), - // path: /courses/beginner/10.html - "v-556462cd": defineAsyncComponent(() => import(/* webpackChunkName: "v-556462cd" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/10.html.vue")), - // path: /courses/beginner/11.html - "v-57193b6c": defineAsyncComponent(() => import(/* webpackChunkName: "v-57193b6c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/11.html.vue")), - // path: /courses/beginner/12.html - "v-58ce140b": defineAsyncComponent(() => import(/* webpackChunkName: "v-58ce140b" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/12.html.vue")), - // path: /courses/beginner/13.html - "v-5a82ecaa": defineAsyncComponent(() => import(/* webpackChunkName: "v-5a82ecaa" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/13.html.vue")), - // path: /courses/beginner/ - "v-2c0932a6": defineAsyncComponent(() => import(/* webpackChunkName: "v-2c0932a6" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/index.html.vue")), - // path: /courses/guidance/02.html - "v-709259d0": defineAsyncComponent(() => import(/* webpackChunkName: "v-709259d0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/02.html.vue")), - // path: /courses/guidance/03.html - "v-7247326f": defineAsyncComponent(() => import(/* webpackChunkName: "v-7247326f" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/03.html.vue")), - // path: /courses/guidance/04.html - "v-73fc0b0e": defineAsyncComponent(() => import(/* webpackChunkName: "v-73fc0b0e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/04.html.vue")), - // path: /courses/guidance/05.html - "v-75b0e3ad": defineAsyncComponent(() => import(/* webpackChunkName: "v-75b0e3ad" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/05.html.vue")), - // path: /courses/guidance/06.html - "v-7765bc4c": defineAsyncComponent(() => import(/* webpackChunkName: "v-7765bc4c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/06.html.vue")), - // path: /courses/guidance/07.html - "v-791a94eb": defineAsyncComponent(() => import(/* webpackChunkName: "v-791a94eb" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/07.html.vue")), - // path: /courses/guidance/08.html - "v-7acf6d8a": defineAsyncComponent(() => import(/* webpackChunkName: "v-7acf6d8a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/08.html.vue")), - // path: /courses/guidance/09.html - "v-7c844629": defineAsyncComponent(() => import(/* webpackChunkName: "v-7c844629" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/09.html.vue")), - // path: /courses/guidance/10.html - "v-bbe2385a": defineAsyncComponent(() => import(/* webpackChunkName: "v-bbe2385a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/10.html.vue")), - // path: /courses/guidance/11.html - "v-b878871c": defineAsyncComponent(() => import(/* webpackChunkName: "v-b878871c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/11.html.vue")), - // path: /courses/guidance/12.html - "v-b50ed5de": defineAsyncComponent(() => import(/* webpackChunkName: "v-b50ed5de" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/12.html.vue")), - // path: /courses/guidance/13.html - "v-b1a524a0": defineAsyncComponent(() => import(/* webpackChunkName: "v-b1a524a0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/13.html.vue")), - // path: /courses/guidance/ - "v-a41d3f32": defineAsyncComponent(() => import(/* webpackChunkName: "v-a41d3f32" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/index.html.vue")), - // path: /courses/profile-dev-test/02.html - "v-76a3f766": defineAsyncComponent(() => import(/* webpackChunkName: "v-76a3f766" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/02.html.vue")), - // path: /courses/profile-dev-test/03.html - "v-7858d005": defineAsyncComponent(() => import(/* webpackChunkName: "v-7858d005" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/03.html.vue")), - // path: /courses/profile-dev-test/04.html - "v-7a0da8a4": defineAsyncComponent(() => import(/* webpackChunkName: "v-7a0da8a4" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/04.html.vue")), - // path: /courses/profile-dev-test/05.html - "v-7bc28143": defineAsyncComponent(() => import(/* webpackChunkName: "v-7bc28143" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/05.html.vue")), - // path: /courses/profile-dev-test/06.html - "v-7d7759e2": defineAsyncComponent(() => import(/* webpackChunkName: "v-7d7759e2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/06.html.vue")), - // path: /courses/profile-dev-test/07.html - "v-7f2c3281": defineAsyncComponent(() => import(/* webpackChunkName: "v-7f2c3281" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/07.html.vue")), - // path: /courses/profile-dev-test/08.html - "v-fe3de9c0": defineAsyncComponent(() => import(/* webpackChunkName: "v-fe3de9c0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/08.html.vue")), - // path: /courses/profile-dev-test/09.html - "v-fad43882": defineAsyncComponent(() => import(/* webpackChunkName: "v-fad43882" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/09.html.vue")), - // path: /courses/profile-dev-test/10.html - "v-afbefd2e": defineAsyncComponent(() => import(/* webpackChunkName: "v-afbefd2e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/10.html.vue")), - // path: /courses/profile-dev-test/11.html - "v-ac554bf0": defineAsyncComponent(() => import(/* webpackChunkName: "v-ac554bf0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/11.html.vue")), - // path: /courses/profile-dev-test/12.html - "v-a8eb9ab2": defineAsyncComponent(() => import(/* webpackChunkName: "v-a8eb9ab2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/12.html.vue")), - // path: /courses/profile-dev-test/13.html - "v-a581e974": defineAsyncComponent(() => import(/* webpackChunkName: "v-a581e974" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/13.html.vue")), - // path: /courses/profile-dev-test/14.html - "v-a2183836": defineAsyncComponent(() => import(/* webpackChunkName: "v-a2183836" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/14.html.vue")), - // path: /courses/profile-dev-test/15.html - "v-9eae86f8": defineAsyncComponent(() => import(/* webpackChunkName: "v-9eae86f8" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/15.html.vue")), - // path: /courses/profile-dev-test/16.html - "v-9b44d5ba": defineAsyncComponent(() => import(/* webpackChunkName: "v-9b44d5ba" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/16.html.vue")), - // path: /courses/profile-dev-test/17.html - "v-97db247c": defineAsyncComponent(() => import(/* webpackChunkName: "v-97db247c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/17.html.vue")), - // path: /courses/profile-dev-test/18.html - "v-9471733e": defineAsyncComponent(() => import(/* webpackChunkName: "v-9471733e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/18.html.vue")), - // path: /courses/profile-dev-test/19.html - "v-9107c200": defineAsyncComponent(() => import(/* webpackChunkName: "v-9107c200" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/19.html.vue")), - // path: /courses/profile-dev-test/20.html - "v-45f286ac": defineAsyncComponent(() => import(/* webpackChunkName: "v-45f286ac" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/20.html.vue")), - // path: /courses/profile-dev-test/21.html - "v-4288d56e": defineAsyncComponent(() => import(/* webpackChunkName: "v-4288d56e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/21.html.vue")), - // path: /courses/profile-dev-test/22.html - "v-3f1f2430": defineAsyncComponent(() => import(/* webpackChunkName: "v-3f1f2430" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/22.html.vue")), - // path: /courses/profile-dev-test/23.html - "v-3bb572f2": defineAsyncComponent(() => import(/* webpackChunkName: "v-3bb572f2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/23.html.vue")), - // path: /courses/profile-dev-test/24.html - "v-384bc1b4": defineAsyncComponent(() => import(/* webpackChunkName: "v-384bc1b4" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/24.html.vue")), - // path: /courses/profile-dev-test/25.html - "v-34e21076": defineAsyncComponent(() => import(/* webpackChunkName: "v-34e21076" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/25.html.vue")), - // path: /courses/profile-dev-test/26.html - "v-31785f38": defineAsyncComponent(() => import(/* webpackChunkName: "v-31785f38" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/26.html.vue")), - // path: /courses/profile-dev-test/27.html - "v-2e0eadfa": defineAsyncComponent(() => import(/* webpackChunkName: "v-2e0eadfa" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/27.html.vue")), - // path: /courses/profile-dev-test/28.html - "v-2aa4fcbc": defineAsyncComponent(() => import(/* webpackChunkName: "v-2aa4fcbc" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/28.html.vue")), - // path: /courses/profile-dev-test/ - "v-10283f91": defineAsyncComponent(() => import(/* webpackChunkName: "v-10283f91" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/index.html.vue")), - // path: /courses/user/02.html - "v-08816f43": defineAsyncComponent(() => import(/* webpackChunkName: "v-08816f43" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/02.html.vue")), - // path: /courses/user/03.html - "v-0a3647e2": defineAsyncComponent(() => import(/* webpackChunkName: "v-0a3647e2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/03.html.vue")), - // path: /courses/user/04.html - "v-0beb2081": defineAsyncComponent(() => import(/* webpackChunkName: "v-0beb2081" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/04.html.vue")), - // path: /courses/user/05.html - "v-0d9ff920": defineAsyncComponent(() => import(/* webpackChunkName: "v-0d9ff920" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/05.html.vue")), - // path: /courses/user/06.html - "v-0f54d1bf": defineAsyncComponent(() => import(/* webpackChunkName: "v-0f54d1bf" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/06.html.vue")), - // path: /courses/user/07.html - "v-1109aa5e": defineAsyncComponent(() => import(/* webpackChunkName: "v-1109aa5e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/07.html.vue")), - // path: /courses/user/08.html - "v-12be82fd": defineAsyncComponent(() => import(/* webpackChunkName: "v-12be82fd" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/08.html.vue")), - // path: /courses/user/09.html - "v-14735b9c": defineAsyncComponent(() => import(/* webpackChunkName: "v-14735b9c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/09.html.vue")), - // path: /courses/user/10.html - "v-39fdf946": defineAsyncComponent(() => import(/* webpackChunkName: "v-39fdf946" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/10.html.vue")), - // path: /courses/user/11.html - "v-3bb2d1e5": defineAsyncComponent(() => import(/* webpackChunkName: "v-3bb2d1e5" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/11.html.vue")), - // path: /courses/user/12.html - "v-3d67aa84": defineAsyncComponent(() => import(/* webpackChunkName: "v-3d67aa84" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/12.html.vue")), - // path: /courses/user/13.html - "v-3f1c8323": defineAsyncComponent(() => import(/* webpackChunkName: "v-3f1c8323" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/13.html.vue")), - // path: /courses/user/14.html - "v-40d15bc2": defineAsyncComponent(() => import(/* webpackChunkName: "v-40d15bc2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/14.html.vue")), - // path: /courses/user/15.html - "v-42863461": defineAsyncComponent(() => import(/* webpackChunkName: "v-42863461" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/15.html.vue")), - // path: /courses/user/16.html - "v-443b0d00": defineAsyncComponent(() => import(/* webpackChunkName: "v-443b0d00" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/16.html.vue")), - // path: /courses/user/ - "v-6d2f3654": defineAsyncComponent(() => import(/* webpackChunkName: "v-6d2f3654" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/index.html.vue")), - // path: /404.html - "v-3706649a": defineAsyncComponent(() => import(/* webpackChunkName: "v-3706649a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/404.html.vue")), - // path: /courses/ - "v-7e978520": defineAsyncComponent(() => import(/* webpackChunkName: "v-7e978520" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/index.html.vue")), -} diff --git a/.vuepress/.temp/internal/pagesData.js b/.vuepress/.temp/internal/pagesData.js deleted file mode 100644 index 06b3104db..000000000 --- a/.vuepress/.temp/internal/pagesData.js +++ /dev/null @@ -1,220 +0,0 @@ -export const pagesData = { - // path: / - "v-8daa1a0e": () => import(/* webpackChunkName: "v-8daa1a0e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/index.html.js").then(({ data }) => data), - // path: /slides.html - "v-2e3eac9e": () => import(/* webpackChunkName: "v-2e3eac9e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/slides.html.js").then(({ data }) => data), - // path: /guide/ - "v-fffb8e28": () => import(/* webpackChunkName: "v-fffb8e28" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/index.html.js").then(({ data }) => data), - // path: /demo/ - "v-1473bf53": () => import(/* webpackChunkName: "v-1473bf53" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/index.html.js").then(({ data }) => data), - // path: /demo/disable.html - "v-4e65ec78": () => import(/* webpackChunkName: "v-4e65ec78" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/disable.html.js").then(({ data }) => data), - // path: /demo/encrypt.html - "v-c151bf32": () => import(/* webpackChunkName: "v-c151bf32" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/encrypt.html.js").then(({ data }) => data), - // path: /demo/markdown.html - "v-438ffe52": () => import(/* webpackChunkName: "v-438ffe52" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/markdown.html.js").then(({ data }) => data), - // path: /demo/page.html - "v-6e19edb7": () => import(/* webpackChunkName: "v-6e19edb7" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/demo/page.html.js").then(({ data }) => data), - // path: /installation/LinuxInstall.html - "v-2ae58894": () => import(/* webpackChunkName: "v-2ae58894" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/LinuxInstall.html.js").then(({ data }) => data), - // path: /installation/MacInstall.html - "v-59a19ede": () => import(/* webpackChunkName: "v-59a19ede" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/MacInstall.html.js").then(({ data }) => data), - // path: /installation/ - "v-08a5d2dc": () => import(/* webpackChunkName: "v-08a5d2dc" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/index.html.js").then(({ data }) => data), - // path: /installation/WindowsInstall.html - "v-4f4ac476": () => import(/* webpackChunkName: "v-4f4ac476" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/installation/WindowsInstall.html.js").then(({ data }) => data), - // path: /resources/02.html - "v-255cf054": () => import(/* webpackChunkName: "v-255cf054" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/02.html.js").then(({ data }) => data), - // path: /resources/03.html - "v-2711c8f3": () => import(/* webpackChunkName: "v-2711c8f3" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/03.html.js").then(({ data }) => data), - // path: /resources/04.html - "v-28c6a192": () => import(/* webpackChunkName: "v-28c6a192" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/04.html.js").then(({ data }) => data), - // path: /resources/ - "v-7fe15663": () => import(/* webpackChunkName: "v-7fe15663" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/resources/index.html.js").then(({ data }) => data), - // path: /guide/bar/ - "v-5d5c2d30": () => import(/* webpackChunkName: "v-5d5c2d30" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/bar/index.html.js").then(({ data }) => data), - // path: /guide/bar/baz.html - "v-177e1f06": () => import(/* webpackChunkName: "v-177e1f06" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/bar/baz.html.js").then(({ data }) => data), - // path: /guide/foo/ - "v-5d5821d6": () => import(/* webpackChunkName: "v-5d5821d6" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/foo/index.html.js").then(({ data }) => data), - // path: /guide/foo/ray.html - "v-0b6fc5f8": () => import(/* webpackChunkName: "v-0b6fc5f8" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/guide/foo/ray.html.js").then(({ data }) => data), - // path: /courses/advanced/02.html - "v-2ecf6c9a": () => import(/* webpackChunkName: "v-2ecf6c9a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/02.html.js").then(({ data }) => data), - // path: /courses/advanced/03.html - "v-30844539": () => import(/* webpackChunkName: "v-30844539" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/03.html.js").then(({ data }) => data), - // path: /courses/advanced/04.html - "v-32391dd8": () => import(/* webpackChunkName: "v-32391dd8" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/04.html.js").then(({ data }) => data), - // path: /courses/advanced/05.html - "v-33edf677": () => import(/* webpackChunkName: "v-33edf677" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/05.html.js").then(({ data }) => data), - // path: /courses/advanced/06.html - "v-35a2cf16": () => import(/* webpackChunkName: "v-35a2cf16" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/06.html.js").then(({ data }) => data), - // path: /courses/advanced/07.html - "v-3757a7b5": () => import(/* webpackChunkName: "v-3757a7b5" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/07.html.js").then(({ data }) => data), - // path: /courses/advanced/08.html - "v-390c8054": () => import(/* webpackChunkName: "v-390c8054" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/08.html.js").then(({ data }) => data), - // path: /courses/advanced/09.html - "v-3ac158f3": () => import(/* webpackChunkName: "v-3ac158f3" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/09.html.js").then(({ data }) => data), - // path: /courses/advanced/10.html - "v-604bf69d": () => import(/* webpackChunkName: "v-604bf69d" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/10.html.js").then(({ data }) => data), - // path: /courses/advanced/11.html - "v-6200cf3c": () => import(/* webpackChunkName: "v-6200cf3c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/11.html.js").then(({ data }) => data), - // path: /courses/advanced/12.html - "v-63b5a7db": () => import(/* webpackChunkName: "v-63b5a7db" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/12.html.js").then(({ data }) => data), - // path: /courses/advanced/Appendix%20A%20-%20Writing%20Plural%20Resources.html - "v-32f5f052": () => import(/* webpackChunkName: "v-32f5f052" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.js").then(({ data }) => data), - // path: /courses/advanced/Appendix%20B%20-%20Resource%20Examples.html - "v-937704e2": () => import(/* webpackChunkName: "v-937704e2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.js").then(({ data }) => data), - // path: /courses/advanced/Appendix%20C%20-%20Adding%20Your%20Resource%20to%20InSpec.html - "v-f978fcb6": () => import(/* webpackChunkName: "v-f978fcb6" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.js").then(({ data }) => data), - // path: /courses/advanced/Appendix%20D%20-%20Example%20Pipeline%20for%20Validating%20an%20InSpec%20Profile.html - "v-4faaa59d": () => import(/* webpackChunkName: "v-4faaa59d" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.js").then(({ data }) => data), - // path: /courses/advanced/Appendix%20E%20-%20More%20Resource%20Examples.html - "v-b1912590": () => import(/* webpackChunkName: "v-b1912590" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.js").then(({ data }) => data), - // path: /courses/advanced/ - "v-0cb10646": () => import(/* webpackChunkName: "v-0cb10646" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/advanced/index.html.js").then(({ data }) => data), - // path: /courses/beginner/02.html - "v-23e7d8ca": () => import(/* webpackChunkName: "v-23e7d8ca" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/02.html.js").then(({ data }) => data), - // path: /courses/beginner/03.html - "v-259cb169": () => import(/* webpackChunkName: "v-259cb169" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/03.html.js").then(({ data }) => data), - // path: /courses/beginner/04.html - "v-27518a08": () => import(/* webpackChunkName: "v-27518a08" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/04.html.js").then(({ data }) => data), - // path: /courses/beginner/05.html - "v-290662a7": () => import(/* webpackChunkName: "v-290662a7" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/05.html.js").then(({ data }) => data), - // path: /courses/beginner/06.html - "v-2abb3b46": () => import(/* webpackChunkName: "v-2abb3b46" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/06.html.js").then(({ data }) => data), - // path: /courses/beginner/07.html - "v-2c7013e5": () => import(/* webpackChunkName: "v-2c7013e5" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/07.html.js").then(({ data }) => data), - // path: /courses/beginner/08.html - "v-2e24ec84": () => import(/* webpackChunkName: "v-2e24ec84" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/08.html.js").then(({ data }) => data), - // path: /courses/beginner/09.html - "v-2fd9c523": () => import(/* webpackChunkName: "v-2fd9c523" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/09.html.js").then(({ data }) => data), - // path: /courses/beginner/10.html - "v-556462cd": () => import(/* webpackChunkName: "v-556462cd" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/10.html.js").then(({ data }) => data), - // path: /courses/beginner/11.html - "v-57193b6c": () => import(/* webpackChunkName: "v-57193b6c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/11.html.js").then(({ data }) => data), - // path: /courses/beginner/12.html - "v-58ce140b": () => import(/* webpackChunkName: "v-58ce140b" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/12.html.js").then(({ data }) => data), - // path: /courses/beginner/13.html - "v-5a82ecaa": () => import(/* webpackChunkName: "v-5a82ecaa" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/13.html.js").then(({ data }) => data), - // path: /courses/beginner/ - "v-2c0932a6": () => import(/* webpackChunkName: "v-2c0932a6" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/beginner/index.html.js").then(({ data }) => data), - // path: /courses/guidance/02.html - "v-709259d0": () => import(/* webpackChunkName: "v-709259d0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/02.html.js").then(({ data }) => data), - // path: /courses/guidance/03.html - "v-7247326f": () => import(/* webpackChunkName: "v-7247326f" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/03.html.js").then(({ data }) => data), - // path: /courses/guidance/04.html - "v-73fc0b0e": () => import(/* webpackChunkName: "v-73fc0b0e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/04.html.js").then(({ data }) => data), - // path: /courses/guidance/05.html - "v-75b0e3ad": () => import(/* webpackChunkName: "v-75b0e3ad" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/05.html.js").then(({ data }) => data), - // path: /courses/guidance/06.html - "v-7765bc4c": () => import(/* webpackChunkName: "v-7765bc4c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/06.html.js").then(({ data }) => data), - // path: /courses/guidance/07.html - "v-791a94eb": () => import(/* webpackChunkName: "v-791a94eb" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/07.html.js").then(({ data }) => data), - // path: /courses/guidance/08.html - "v-7acf6d8a": () => import(/* webpackChunkName: "v-7acf6d8a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/08.html.js").then(({ data }) => data), - // path: /courses/guidance/09.html - "v-7c844629": () => import(/* webpackChunkName: "v-7c844629" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/09.html.js").then(({ data }) => data), - // path: /courses/guidance/10.html - "v-bbe2385a": () => import(/* webpackChunkName: "v-bbe2385a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/10.html.js").then(({ data }) => data), - // path: /courses/guidance/11.html - "v-b878871c": () => import(/* webpackChunkName: "v-b878871c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/11.html.js").then(({ data }) => data), - // path: /courses/guidance/12.html - "v-b50ed5de": () => import(/* webpackChunkName: "v-b50ed5de" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/12.html.js").then(({ data }) => data), - // path: /courses/guidance/13.html - "v-b1a524a0": () => import(/* webpackChunkName: "v-b1a524a0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/13.html.js").then(({ data }) => data), - // path: /courses/guidance/ - "v-a41d3f32": () => import(/* webpackChunkName: "v-a41d3f32" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/guidance/index.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/02.html - "v-76a3f766": () => import(/* webpackChunkName: "v-76a3f766" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/02.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/03.html - "v-7858d005": () => import(/* webpackChunkName: "v-7858d005" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/03.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/04.html - "v-7a0da8a4": () => import(/* webpackChunkName: "v-7a0da8a4" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/04.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/05.html - "v-7bc28143": () => import(/* webpackChunkName: "v-7bc28143" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/05.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/06.html - "v-7d7759e2": () => import(/* webpackChunkName: "v-7d7759e2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/06.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/07.html - "v-7f2c3281": () => import(/* webpackChunkName: "v-7f2c3281" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/07.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/08.html - "v-fe3de9c0": () => import(/* webpackChunkName: "v-fe3de9c0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/08.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/09.html - "v-fad43882": () => import(/* webpackChunkName: "v-fad43882" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/09.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/10.html - "v-afbefd2e": () => import(/* webpackChunkName: "v-afbefd2e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/10.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/11.html - "v-ac554bf0": () => import(/* webpackChunkName: "v-ac554bf0" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/11.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/12.html - "v-a8eb9ab2": () => import(/* webpackChunkName: "v-a8eb9ab2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/12.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/13.html - "v-a581e974": () => import(/* webpackChunkName: "v-a581e974" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/13.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/14.html - "v-a2183836": () => import(/* webpackChunkName: "v-a2183836" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/14.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/15.html - "v-9eae86f8": () => import(/* webpackChunkName: "v-9eae86f8" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/15.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/16.html - "v-9b44d5ba": () => import(/* webpackChunkName: "v-9b44d5ba" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/16.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/17.html - "v-97db247c": () => import(/* webpackChunkName: "v-97db247c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/17.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/18.html - "v-9471733e": () => import(/* webpackChunkName: "v-9471733e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/18.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/19.html - "v-9107c200": () => import(/* webpackChunkName: "v-9107c200" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/19.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/20.html - "v-45f286ac": () => import(/* webpackChunkName: "v-45f286ac" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/20.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/21.html - "v-4288d56e": () => import(/* webpackChunkName: "v-4288d56e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/21.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/22.html - "v-3f1f2430": () => import(/* webpackChunkName: "v-3f1f2430" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/22.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/23.html - "v-3bb572f2": () => import(/* webpackChunkName: "v-3bb572f2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/23.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/24.html - "v-384bc1b4": () => import(/* webpackChunkName: "v-384bc1b4" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/24.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/25.html - "v-34e21076": () => import(/* webpackChunkName: "v-34e21076" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/25.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/26.html - "v-31785f38": () => import(/* webpackChunkName: "v-31785f38" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/26.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/27.html - "v-2e0eadfa": () => import(/* webpackChunkName: "v-2e0eadfa" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/27.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/28.html - "v-2aa4fcbc": () => import(/* webpackChunkName: "v-2aa4fcbc" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/28.html.js").then(({ data }) => data), - // path: /courses/profile-dev-test/ - "v-10283f91": () => import(/* webpackChunkName: "v-10283f91" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/profile-dev-test/index.html.js").then(({ data }) => data), - // path: /courses/user/02.html - "v-08816f43": () => import(/* webpackChunkName: "v-08816f43" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/02.html.js").then(({ data }) => data), - // path: /courses/user/03.html - "v-0a3647e2": () => import(/* webpackChunkName: "v-0a3647e2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/03.html.js").then(({ data }) => data), - // path: /courses/user/04.html - "v-0beb2081": () => import(/* webpackChunkName: "v-0beb2081" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/04.html.js").then(({ data }) => data), - // path: /courses/user/05.html - "v-0d9ff920": () => import(/* webpackChunkName: "v-0d9ff920" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/05.html.js").then(({ data }) => data), - // path: /courses/user/06.html - "v-0f54d1bf": () => import(/* webpackChunkName: "v-0f54d1bf" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/06.html.js").then(({ data }) => data), - // path: /courses/user/07.html - "v-1109aa5e": () => import(/* webpackChunkName: "v-1109aa5e" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/07.html.js").then(({ data }) => data), - // path: /courses/user/08.html - "v-12be82fd": () => import(/* webpackChunkName: "v-12be82fd" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/08.html.js").then(({ data }) => data), - // path: /courses/user/09.html - "v-14735b9c": () => import(/* webpackChunkName: "v-14735b9c" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/09.html.js").then(({ data }) => data), - // path: /courses/user/10.html - "v-39fdf946": () => import(/* webpackChunkName: "v-39fdf946" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/10.html.js").then(({ data }) => data), - // path: /courses/user/11.html - "v-3bb2d1e5": () => import(/* webpackChunkName: "v-3bb2d1e5" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/11.html.js").then(({ data }) => data), - // path: /courses/user/12.html - "v-3d67aa84": () => import(/* webpackChunkName: "v-3d67aa84" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/12.html.js").then(({ data }) => data), - // path: /courses/user/13.html - "v-3f1c8323": () => import(/* webpackChunkName: "v-3f1c8323" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/13.html.js").then(({ data }) => data), - // path: /courses/user/14.html - "v-40d15bc2": () => import(/* webpackChunkName: "v-40d15bc2" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/14.html.js").then(({ data }) => data), - // path: /courses/user/15.html - "v-42863461": () => import(/* webpackChunkName: "v-42863461" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/15.html.js").then(({ data }) => data), - // path: /courses/user/16.html - "v-443b0d00": () => import(/* webpackChunkName: "v-443b0d00" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/16.html.js").then(({ data }) => data), - // path: /courses/user/ - "v-6d2f3654": () => import(/* webpackChunkName: "v-6d2f3654" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/user/index.html.js").then(({ data }) => data), - // path: /404.html - "v-3706649a": () => import(/* webpackChunkName: "v-3706649a" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/404.html.js").then(({ data }) => data), - // path: /courses/ - "v-7e978520": () => import(/* webpackChunkName: "v-7e978520" */"/Users/alippold/github/mitre/saf-training/src/.vuepress/.temp/pages/courses/index.html.js").then(({ data }) => data), -} diff --git a/.vuepress/.temp/internal/pagesRoutes.js b/.vuepress/.temp/internal/pagesRoutes.js deleted file mode 100644 index 80456c84f..000000000 --- a/.vuepress/.temp/internal/pagesRoutes.js +++ /dev/null @@ -1,111 +0,0 @@ -export const pagesRoutes = [ - ["v-8daa1a0e","/",{"y":"h","t":"MITRE SAF Training","i":"home"},["/README.md"]], - ["v-2e3eac9e","/slides.html",{"y":"s","t":"Slide page","i":"person-chalkboard"},[":md"]], - ["v-fffb8e28","/guide/",{"y":"a","t":"Guide","i":"lightbulb"},["/guide/README.md"]], - ["v-1473bf53","/demo/",{"y":"a","t":"Features demo","i":"laptop-code"},["/demo/README.md"]], - ["v-4e65ec78","/demo/disable.html",{"y":"a","t":"Disabling layout and features","i":"gears","O":3},[":md"]], - ["v-c151bf32","/demo/encrypt.html",{"y":"a","t":"Encryption Article","i":"lock"},[":md"]], - ["v-438ffe52","/demo/markdown.html",{"y":"a","t":"Markdown Enhance","i":"fab fa-markdown","O":2},[":md"]], - ["v-6e19edb7","/demo/page.html",{"y":"a","t":"Page Config","i":"file","O":1},[":md"]], - ["v-2ae58894","/installation/LinuxInstall.html",{"y":"a","t":"Installing InSpec on Linux","i":"page"},[":md"]], - ["v-59a19ede","/installation/MacInstall.html",{"y":"a","t":"Installing InSpec on MacOS","i":"page"},[":md"]], - ["v-08a5d2dc","/installation/",{"y":"a","t":"Installing InSpec On Your Machine","i":"page"},["/installation/README.md"]], - ["v-4f4ac476","/installation/WindowsInstall.html",{"y":"a","t":"Installing InSpec on Windows","i":"page"},[":md"]], - ["v-255cf054","/resources/02.html",{"y":"a","t":"Codespaces Resources","i":"page"},[":md"]], - ["v-2711c8f3","/resources/03.html",{"y":"a","t":"Training Development Docs","i":"page"},[":md"]], - ["v-28c6a192","/resources/04.html",{"y":"a","t":"Vulcan Resources","i":"page"},[":md"]], - ["v-7fe15663","/resources/",{"y":"a","t":"Class Resources","i":"page"},["/resources/README.md"]], - ["v-5d5c2d30","/guide/bar/",{"y":"a","t":"Bar feature","i":"lightbulb"},["/guide/bar/README.md"]], - ["v-177e1f06","/guide/bar/baz.html",{"y":"a","t":"Baz","i":"circle-info"},[":md"]], - ["v-5d5821d6","/guide/foo/",{"y":"a","t":"Foo feature","i":"lightbulb"},["/guide/foo/README.md"]], - ["v-0b6fc5f8","/guide/foo/ray.html",{"y":"a","t":"Ray","i":"circle-info"},[":md"]], - ["v-2ecf6c9a","/courses/advanced/02.html",{"y":"a","t":"2. Review the Fundamentals","O":2},[":md"]], - ["v-30844539","/courses/advanced/03.html",{"y":"a","t":"3. Practice the Fundamentals","O":3},[":md"]], - ["v-32391dd8","/courses/advanced/04.html",{"y":"a","t":"4. Exploring InSpec Resources","O":4},[":md"]], - ["v-33edf677","/courses/advanced/05.html",{"y":"a","t":"5. Create a Custom Resource - The Git Example","O":5},[":md"]], - ["v-35a2cf16","/courses/advanced/06.html",{"y":"a","t":"6. Create a Custom Resource - The Docker Example","O":6},[":md"]], - ["v-3757a7b5","/courses/advanced/07.html",{"y":"a","t":"7. Exercise - Develop your own resources","O":7},[":md"]], - ["v-390c8054","/courses/advanced/08.html",{"y":"a","t":"8. CI/CD Pipelines","O":8},[":md"]], - ["v-3ac158f3","/courses/advanced/09.html",{"y":"a","t":"9. GitHub Actions","O":9},[":md"]], - ["v-604bf69d","/courses/advanced/10.html",{"y":"a","t":"10. Building Out Our Pipeline","O":10},[":md"]], - ["v-6200cf3c","/courses/advanced/11.html",{"y":"a","t":"11. Verifying Results With The SAF CLI","O":11},[":md"]], - ["v-63b5a7db","/courses/advanced/12.html",{"y":"a","t":"12. Next Steps","O":12},[":md"]], - ["v-32f5f052","/courses/advanced/Appendix%20A%20-%20Writing%20Plural%20Resources.html",{"y":"a","t":"Appendix A - Writing Plural Resources","O":14},["/courses/advanced/Appendix A - Writing Plural Resources.html","/courses/advanced/Appendix A - Writing Plural Resources.md",":md"]], - ["v-937704e2","/courses/advanced/Appendix%20B%20-%20Resource%20Examples.html",{"y":"a","t":"Appendix B - Custom Resource Examples from InSpec","O":15},["/courses/advanced/Appendix B - Resource Examples.html","/courses/advanced/Appendix B - Resource Examples.md",":md"]], - ["v-f978fcb6","/courses/advanced/Appendix%20C%20-%20Adding%20Your%20Resource%20to%20InSpec.html",{"y":"a","t":"Appendix C - Adding Your Resource to InSpec","O":16},["/courses/advanced/Appendix C - Adding Your Resource to InSpec.html","/courses/advanced/Appendix C - Adding Your Resource to InSpec.md",":md"]], - ["v-4faaa59d","/courses/advanced/Appendix%20D%20-%20Example%20Pipeline%20for%20Validating%20an%20InSpec%20Profile.html",{"y":"a","t":"Appendix D - Example Pipeline for Validating an InSpec Profile","O":17},["/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html","/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.md",":md"]], - ["v-b1912590","/courses/advanced/Appendix%20E%20-%20More%20Resource%20Examples.html",{"y":"a","t":"Appendix B - More Resource Examples","O":18},["/courses/advanced/Appendix E - More Resource Examples.html","/courses/advanced/Appendix E - More Resource Examples.md",":md"]], - ["v-0cb10646","/courses/advanced/",{"y":"a","t":"InSpec Advanced Profile Development","s":"Advanced Profile Development"},["/courses/advanced/README.md"]], - ["v-23e7d8ca","/courses/beginner/02.html",{"y":"a","t":"2. What is an InSpec Profile?","O":2},[":md"]], - ["v-259cb169","/courses/beginner/03.html",{"y":"a","t":"3. Study an InSpec Profile - NGINX Example","O":3},[":md"]], - ["v-27518a08","/courses/beginner/04.html",{"y":"a","t":"4. How to Get Started - InSpec Commands & Docs","O":4},[":md"]], - ["v-290662a7","/courses/beginner/05.html",{"y":"a","t":"5. Writing InSpec Controls","O":5},[":md"]], - ["v-2abb3b46","/courses/beginner/06.html",{"y":"a","t":"6. Inputs in InSpec","O":6},[":md"]], - ["v-2c7013e5","/courses/beginner/07.html",{"y":"a","t":"7. InSpec Control Enhancements","O":7},[":md"]], - ["v-2e24ec84","/courses/beginner/08.html",{"y":"a","t":"8. Generating InSpec Results","O":8},[":md"]], - ["v-2fd9c523","/courses/beginner/09.html",{"y":"a","t":"9. Viewing and Analyzing Results","O":9},[":md"]], - ["v-556462cd","/courses/beginner/10.html",{"y":"a","t":"10. Profile Dependencies (Overlays)","O":10},[":md"]], - ["v-57193b6c","/courses/beginner/11.html",{"y":"a","t":"11. From STIG to Profile","O":11},[":md"]], - ["v-58ce140b","/courses/beginner/12.html",{"y":"a","t":"12. Put it in Practice!","O":12},[":md"]], - ["v-5a82ecaa","/courses/beginner/13.html",{"y":"a","t":"13. Next Steps","O":13},[":md"]], - ["v-2c0932a6","/courses/beginner/",{"y":"a","t":"Beginner Security Automation Developer Class","s":"Beginner Profile Development"},["/courses/beginner/README.md"]], - ["v-709259d0","/courses/guidance/02.html",{"y":"a","t":"2. Security Guidance","O":2},[":md"]], - ["v-7247326f","/courses/guidance/03.html",{"y":"a","t":"3. Security Technical Implementation Guides","O":3},[":md"]], - ["v-73fc0b0e","/courses/guidance/04.html",{"y":"a","t":"4. Anatomy of a STIG","O":4},[":md"]], - ["v-75b0e3ad","/courses/guidance/05.html",{"y":"a","t":"5. Using Vulcan","O":5},[":md"]], - ["v-7765bc4c","/courses/guidance/06.html",{"y":"a","t":"6. Components Of a Vulcan Project","O":6},[":md"]], - ["v-791a94eb","/courses/guidance/07.html",{"y":"a","t":"7. Editing Components","O":7},[":md"]], - ["v-7acf6d8a","/courses/guidance/08.html",{"y":"a","t":"8. Check and Fix","O":8},[":md"]], - ["v-7c844629","/courses/guidance/09.html",{"y":"a","t":"9. Automated InSpec Testing","O":9},[":md"]], - ["v-bbe2385a","/courses/guidance/10.html",{"y":"a","t":"10. Peer Review","O":10},[":md"]], - ["v-b878871c","/courses/guidance/11.html",{"y":"a","t":"11. Exporting Your Content","O":11},[":md"]], - ["v-b50ed5de","/courses/guidance/12.html",{"y":"a","t":"12. Publishing a STIG","O":12},[":md"]], - ["v-b1a524a0","/courses/guidance/13.html",{"y":"a","t":"13. Next Steps","O":13},[":md"]], - ["v-a41d3f32","/courses/guidance/",{"y":"a","t":"Security Guidance Developer Class","s":"Security Guidance Development"},["/courses/guidance/README.md"]], - ["v-76a3f766","/courses/profile-dev-test/02.html",{"y":"a","t":"Repository Organization","O":2},[":md"]], - ["v-7858d005","/courses/profile-dev-test/03.html",{"y":"a","t":"Environment Setup","O":3},[":md"]], - ["v-7a0da8a4","/courses/profile-dev-test/04.html",{"y":"a","t":"Test your Test Environment","O":4},[":md"]], - ["v-7bc28143","/courses/profile-dev-test/05.html",{"y":"a","t":"AWS Testing Suite","O":5},[":md"]], - ["v-7d7759e2","/courses/profile-dev-test/06.html",{"y":"a","t":"Docker Testing Suite","O":6},[":md"]], - ["v-7f2c3281","/courses/profile-dev-test/07.html",{"y":"a","t":"Updating - Choosing Your Apprach","O":7},[":md"]], - ["v-fe3de9c0","/courses/profile-dev-test/08.html",{"y":"a","t":"Secruity Benchmarks vs Traditional Software","O":8},[":md"]], - ["v-fad43882","/courses/profile-dev-test/09.html",{"y":"a","t":"Types of Profile Updates","O":9},[":md"]], - ["v-afbefd2e","/courses/profile-dev-test/10.html",{"y":"a","t":"Rules of the Road","O":10},[":md"]], - ["v-ac554bf0","/courses/profile-dev-test/11.html",{"y":"a","t":"Creating a `Patch Update`","O":11},[":md"]], - ["v-a8eb9ab2","/courses/profile-dev-test/12.html",{"y":"a","t":"Creating a `Release Update`","O":12},[":md"]], - ["v-a581e974","/courses/profile-dev-test/13.html",{"y":"a","t":"Creating a `Major Version Update`","O":13},[":md"]], - ["v-a2183836","/courses/profile-dev-test/14.html",{"y":"a","t":"Test Kitchen","O":14},[":md"]], - ["v-9eae86f8","/courses/profile-dev-test/15.html",{"y":"a","t":"Test Kitchen - Create","O":15},[":md"]], - ["v-9b44d5ba","/courses/profile-dev-test/16.html",{"y":"a","t":"Test Kitchen - Converge","O":16},[":md"]], - ["v-97db247c","/courses/profile-dev-test/17.html",{"y":"a","t":"Test Kitchen - Validate","O":17},[":md"]], - ["v-9471733e","/courses/profile-dev-test/18.html",{"y":"a","t":"Test Kitchen - Destroy","O":18},[":md"]], - ["v-9107c200","/courses/profile-dev-test/19.html",{"y":"a","t":"Test Kitchen - .kitchen/ directory","O":19},[":md"]], - ["v-45f286ac","/courses/profile-dev-test/20.html",{"y":"a","t":"Test Kitchen - `kitchen.yml` File","O":20},[":md"]], - ["v-4288d56e","/courses/profile-dev-test/21.html",{"y":"a","t":"Test Kitchen - `kitchen.ec2.yml` File","O":21},[":md"]], - ["v-3f1f2430","/courses/profile-dev-test/22.html",{"y":"a","t":"Test Kitchen - `kitchen.container.yml`","O":22},[":md"]], - ["v-3bb572f2","/courses/profile-dev-test/23.html",{"y":"a","t":"GitHub Actions","O":23},[":md"]], - ["v-384bc1b4","/courses/profile-dev-test/24.html",{"y":"a","t":"InSpec Delta - Laying the Ground for a Clean Release Branch","O":24,"s":"Delta - Prep & Setup"},[":md"]], - ["v-34e21076","/courses/profile-dev-test/25.html",{"y":"a","t":"InSpec Delta - Making the Delta Release Branch","O":25,"s":"Delta - Making your Branch"},[":md"]], - ["v-31785f38","/courses/profile-dev-test/26.html",{"y":"a","t":"Tips, Tricks & Troubleshooting","O":26,"s":"Tips & Troubleshooting"},[":md"]], - ["v-2e0eadfa","/courses/profile-dev-test/27.html",{"y":"a","t":"Background & Definitions","O":27},[":md"]], - ["v-2aa4fcbc","/courses/profile-dev-test/28.html",{"y":"a","t":"Terms & Definitions","O":28},[":md"]], - ["v-10283f91","/courses/profile-dev-test/",{"y":"a","t":"Development & Testing InSpec Profile"},["/courses/profile-dev-test/README.md"]], - ["v-08816f43","/courses/user/02.html",{"y":"a","t":"2. The Goal of the SAF","O":2},[":md"]], - ["v-0a3647e2","/courses/user/03.html",{"y":"a","t":"3. What's the SAF?","O":3},[":md"]], - ["v-0beb2081","/courses/user/04.html",{"y":"a","t":"4. Getting Started - Plan","O":4},[":md"]], - ["v-0d9ff920","/courses/user/05.html",{"y":"a","t":"5. Validation with InSpec Profiles","O":5},[":md"]], - ["v-0f54d1bf","/courses/user/06.html",{"y":"a","t":"6. How to Run InSpec","O":6},[":md"]], - ["v-1109aa5e","/courses/user/07.html",{"y":"a","t":"7. Tailoring Inputs for InSpec","O":7},[":md"]], - ["v-12be82fd","/courses/user/08.html",{"y":"a","t":"8. Running InSpec","O":8},[":md"]], - ["v-14735b9c","/courses/user/09.html",{"y":"a","t":"9. Visualize Results - Heimdall","O":9},[":md"]], - ["v-39fdf946","/courses/user/10.html",{"y":"a","t":"10. Harden","O":10},[":md"]], - ["v-3bb2d1e5","/courses/user/11.html",{"y":"a","t":"11. Comparing Results","O":11},[":md"]], - ["v-3d67aa84","/courses/user/12.html",{"y":"a","t":"12. Manual Attestations","O":12},[":md"]], - ["v-3f1c8323","/courses/user/13.html",{"y":"a","t":"13. InSpec Exercise - RedHat","O":13},[":md"]], - ["v-40d15bc2","/courses/user/14.html",{"y":"a","t":"14. Normalize Other Data!","O":14},[":md"]], - ["v-42863461","/courses/user/15.html",{"y":"a","t":"15. Extra Info - Running InSpec with a Local Profile","O":15},[":md"]], - ["v-443b0d00","/courses/user/16.html",{"y":"a","t":"16. Next Steps","O":16},[":md"]], - ["v-6d2f3654","/courses/user/",{"y":"a","t":"SAF User Class","s":"SAF User Class"},["/courses/user/README.md"]], - ["v-3706649a","/404.html",{"y":"p","t":""},[]], - ["v-7e978520","/courses/",{"y":"p","t":"Courses"},[]], -] diff --git a/.vuepress/.temp/internal/siteData.js b/.vuepress/.temp/internal/siteData.js deleted file mode 100644 index e4f6e6d8e..000000000 --- a/.vuepress/.temp/internal/siteData.js +++ /dev/null @@ -1,14 +0,0 @@ -export const siteData = JSON.parse("{\"base\":\"/\",\"lang\":\"en-US\",\"title\":\"MITRE SAF Training\",\"description\":\"The MITRE Security Automation Framework Training for Security Guidance, Hardening, Validation & Visualization\",\"head\":[],\"locales\":{}}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updateSiteData) { - __VUE_HMR_RUNTIME__.updateSiteData(siteData) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ siteData }) => { - __VUE_HMR_RUNTIME__.updateSiteData(siteData) - }) -} diff --git a/.vuepress/.temp/internal/themeData.js b/.vuepress/.temp/internal/themeData.js deleted file mode 100644 index 64b3081a2..000000000 --- a/.vuepress/.temp/internal/themeData.js +++ /dev/null @@ -1,14 +0,0 @@ -export const themeData = JSON.parse("{\"encrypt\":{\"config\":{\"/demo/encrypt.html\":[\"$2a$10$FWI0.q4avimjag4RUGVd..ZTBn9140fjiBqg9rioCyf16.Z95ph6G\"]}},\"author\":{\"name\":\"Mr.Hope\",\"url\":\"https://mister-hope.com\"},\"logo\":\"/logo.svg\",\"repo\":\"vuepress-theme-hope/vuepress-theme-hope\",\"docsDir\":\"src\",\"footer\":\"Apache-2.0 | Copyright © 2022 - The MITRE Corporation\",\"displayFooter\":true,\"locales\":{\"/\":{\"lang\":\"en-US\",\"navbarLocales\":{\"langName\":\"English\",\"selectLangAriaLabel\":\"Select language\"},\"metaLocales\":{\"author\":\"Author\",\"date\":\"Writing Date\",\"origin\":\"Original\",\"views\":\"Page views\",\"category\":\"Category\",\"tag\":\"Tag\",\"readingTime\":\"Reading Time\",\"words\":\"Words\",\"toc\":\"On This Page\",\"prev\":\"Prev\",\"next\":\"Next\",\"lastUpdated\":\"Last update\",\"contributors\":\"Contributors\",\"editLink\":\"Edit this page on GitHub\",\"print\":\"Print\"},\"outlookLocales\":{\"themeColor\":\"Theme Color\",\"darkmode\":\"Theme Mode\",\"fullscreen\":\"Full Screen\"},\"encryptLocales\":{\"iconLabel\":\"Page Encrypted\",\"placeholder\":\"Enter password\",\"remember\":\"Remember password\",\"errorHint\":\"Please enter the correct password!\"},\"routeLocales\":{\"skipToContent\":\"Skip to main content\",\"notFoundTitle\":\"Page not found\",\"notFoundMsg\":[\"There’s nothing here.\",\"How did we get here?\",\"That’s a Four-Oh-Four.\",\"Looks like we've got some broken links.\"],\"back\":\"Go back\",\"home\":\"Take me home\",\"openInNewWindow\":\"Open in new window\"},\"navbar\":[\"/\",{\"text\":\"Classes\",\"icon\":\"lightbulb\",\"children\":[{\"text\":\"SAF User Class\",\"link\":\"/courses/user/\",\"icon\":\"creative\"},{\"text\":\"Beginner Security Automation Developer Class\",\"link\":\"/courses/beginner/\",\"icon\":\"creative\"},{\"text\":\"Advanced Security Automation Developer Class\",\"link\":\"/courses/advanced/\",\"icon\":\"creative\"},{\"text\":\"Security Guidance Developer Class\",\"link\":\"/courses/guidance/\",\"icon\":\"creative\"},{\"text\":\"InSpec Profile Development & Testing\",\"link\":\"/courses/profile-dev-test\",\"icon\":\"creative\"}]},{\"text\":\"Resources\",\"icon\":\"book\",\"children\":[{\"text\":\"Class Resources\",\"link\":\"/resources/README.md\"},{\"text\":\"Codespace Resources\",\"link\":\"/resources/02.md\"},{\"text\":\"Training Development Docs\",\"link\":\"/resources/03.md\"}]},{\"text\":\"Installation\",\"icon\":\"note\",\"link\":\"/installation/\"}],\"sidebar\":{\"/\":[\"\",{\"icon\":\"creative\",\"text\":\"User Class\",\"link\":\"courses/user/README.md\",\"prefix\":\"courses/user\",\"children\":\"structure\",\"collapsible\":true},{\"icon\":\"creative\",\"text\":\"Beginner Class\",\"prefix\":\"courses/beginner\",\"children\":\"structure\",\"collapsible\":true},{\"icon\":\"creative\",\"text\":\"Advanced Class\",\"prefix\":\"courses/advanced/\",\"children\":\"structure\",\"collapsible\":true},{\"icon\":\"creative\",\"text\":\"Guidance Class\",\"prefix\":\"courses/guidance/\",\"children\":\"structure\",\"collapsible\":true},{\"icon\":\"creative\",\"text\":\"InSpec Profile Development & Testing\",\"prefix\":\"courses/profile-dev-test/\",\"children\":\"structure\",\"collapsible\":true}]}}}}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updateThemeData) { - __VUE_HMR_RUNTIME__.updateThemeData(themeData) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ themeData }) => { - __VUE_HMR_RUNTIME__.updateThemeData(themeData) - }) -} diff --git a/.vuepress/.temp/md-enhance/config.js b/.vuepress/.temp/md-enhance/config.js deleted file mode 100644 index 5aad95583..000000000 --- a/.vuepress/.temp/md-enhance/config.js +++ /dev/null @@ -1,40 +0,0 @@ -import { defineClientConfig } from "@vuepress/client"; -import { hasGlobalComponent } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-shared/lib/client/index.js"; -import { VPCard } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/compact/index.js"; -import CodeTabs from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/CodeTabs.js"; -import { CodeGroup, CodeGroupItem } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/compact/index.js"; -import CodeDemo from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/CodeDemo.js"; -import MdDemo from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/MdDemo.js"; -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/styles/figure.scss"; -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/styles/footnote.scss"; -import { useHint } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/composables/hint.js"; -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/styles/hint/index.scss"; -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/styles/image-mark.scss" -import Mermaid from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/Mermaid.js"; -import { injectMermaidConfig } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client//index.js"; -import Playground from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/Playground.js"; -import "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/dist/reveal.css"; -import RevealJs from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/RevealJs.js"; -import { injectRevealJsConfig } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/index.js"; -import Tabs from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/components/Tabs.js"; -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/styles/tasklist.scss"; - -export default defineClientConfig({ - enhance: ({ app }) => { - if(!hasGlobalComponent("VPCard", app)) app.component("VPCard", VPCard); - app.component("CodeTabs", CodeTabs); - if(!hasGlobalComponent("CodeGroup", app)) app.component("CodeGroup", CodeGroup); - if(!hasGlobalComponent("CodeGroupItem", app)) app.component("CodeGroupItem", CodeGroupItem); - app.component("CodeDemo", CodeDemo); - app.component("MdDemo", MdDemo); - injectMermaidConfig(app); - app.component("Mermaid", Mermaid); - app.component("Playground", Playground); - injectRevealJsConfig(app); - app.component("RevealJs", RevealJs); - app.component("Tabs", Tabs); - }, - setup: () => { -useHint(); - } -}); diff --git a/.vuepress/.temp/md-enhance/revealjs-plugins.js b/.vuepress/.temp/md-enhance/revealjs-plugins.js deleted file mode 100644 index 9fdb79fa2..000000000 --- a/.vuepress/.temp/md-enhance/revealjs-plugins.js +++ /dev/null @@ -1,8 +0,0 @@ -export const useRevealJs = () => [ - import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/dist/reveal.esm.js"), - import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/plugin/markdown/markdown.esm.js"), - import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/plugin/highlight/highlight.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/plugin/math/math.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/plugin/search/search.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/plugin/notes/notes.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/alippold/github/mitre/saf-training/node_modules/reveal.js/plugin/zoom/zoom.esm.js")]; diff --git a/.vuepress/.temp/md-enhance/revealjs-theme.scss b/.vuepress/.temp/md-enhance/revealjs-theme.scss deleted file mode 100644 index fa47f5124..000000000 --- a/.vuepress/.temp/md-enhance/revealjs-theme.scss +++ /dev/null @@ -1 +0,0 @@ -@use "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/styles/revealjs/theme/auto.scss"; diff --git a/.vuepress/.temp/pages/404.html.js b/.vuepress/.temp/pages/404.html.js deleted file mode 100644 index 0fd4aa0dd..000000000 --- a/.vuepress/.temp/pages/404.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3706649a\",\"path\":\"/404.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{\"layout\":\"NotFound\",\"description\":\"\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/404.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"\\\"}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0,\"words\":0},\"filePathRelative\":null,\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/404.html.vue b/.vuepress/.temp/pages/404.html.vue deleted file mode 100644 index 162ab33a5..000000000 --- a/.vuepress/.temp/pages/404.html.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/02.html.js b/.vuepress/.temp/pages/courses/advanced/02.html.js deleted file mode 100644 index 8fcdba699..000000000 --- a/.vuepress/.temp/pages/courses/advanced/02.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2ecf6c9a\",\"path\":\"/courses/advanced/02.html\",\"title\":\"2. Review the Fundamentals\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":2,\"next\":\"03.md\",\"title\":\"2. Review the Fundamentals\",\"author\":\"Aaron Lippold\",\"description\":\"InSpec Content Review In the beginner class (../beginner/README.md), we explained the structure and output of InSpec Profiles. Let's review some content, then practice by revisi...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/02.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"2. Review the Fundamentals\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"InSpec Content Review In the beginner class (../beginner/README.md), we explained the structure and output of InSpec Profiles. Let's review some content, then practice by revisi...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"2. Review the Fundamentals\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"InSpec Content Review\",\"slug\":\"inspec-content-review\",\"link\":\"#inspec-content-review\",\"children\":[{\"level\":3,\"title\":\"InSpec Profile Structure\",\"slug\":\"inspec-profile-structure\",\"link\":\"#inspec-profile-structure\",\"children\":[]},{\"level\":3,\"title\":\"Default File Structures\",\"slug\":\"default-file-structures\",\"link\":\"#default-file-structures\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.42,\"words\":725},\"filePathRelative\":\"courses/advanced/02.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/02.html.vue b/.vuepress/.temp/pages/courses/advanced/02.html.vue deleted file mode 100644 index 418819363..000000000 --- a/.vuepress/.temp/pages/courses/advanced/02.html.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/03.html.js b/.vuepress/.temp/pages/courses/advanced/03.html.js deleted file mode 100644 index 03f1f18d4..000000000 --- a/.vuepress/.temp/pages/courses/advanced/03.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-30844539\",\"path\":\"/courses/advanced/03.html\",\"title\":\"3. Practice the Fundamentals\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":3,\"next\":\"04.md\",\"title\":\"3. Practice the Fundamentals\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Revisiting the NGINX Web Server InSpec Profile In the beginner class (../beginner/05.md), we wrote and ran an InSpec profile against a test container. We then generated a report...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/03.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"3. Practice the Fundamentals\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Revisiting the NGINX Web Server InSpec Profile In the beginner class (../beginner/05.md), we wrote and ran an InSpec profile against a test container. We then generated a report...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"3. Practice the Fundamentals\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Revisiting the NGINX Web Server InSpec Profile\",\"slug\":\"revisiting-the-nginx-web-server-inspec-profile\",\"link\":\"#revisiting-the-nginx-web-server-inspec-profile\",\"children\":[{\"level\":3,\"title\":\"The Target\",\"slug\":\"the-target\",\"link\":\"#the-target\",\"children\":[]},{\"level\":3,\"title\":\"The Requirements\",\"slug\":\"the-requirements\",\"link\":\"#the-requirements\",\"children\":[]},{\"level\":3,\"title\":\"The Controls\",\"slug\":\"the-controls\",\"link\":\"#the-controls\",\"children\":[]},{\"level\":3,\"title\":\"Running the Controls\",\"slug\":\"running-the-controls\",\"link\":\"#running-the-controls\",\"children\":[]},{\"level\":3,\"title\":\"Reporting Results\",\"slug\":\"reporting-results\",\"link\":\"#reporting-results\",\"children\":[]},{\"level\":3,\"title\":\"Visualizing Results\",\"slug\":\"visualizing-results\",\"link\":\"#visualizing-results\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.95,\"words\":885},\"filePathRelative\":\"courses/advanced/03.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/03.html.vue b/.vuepress/.temp/pages/courses/advanced/03.html.vue deleted file mode 100644 index 382cce817..000000000 --- a/.vuepress/.temp/pages/courses/advanced/03.html.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/04.html.js b/.vuepress/.temp/pages/courses/advanced/04.html.js deleted file mode 100644 index 893f68d71..000000000 --- a/.vuepress/.temp/pages/courses/advanced/04.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-32391dd8\",\"path\":\"/courses/advanced/04.html\",\"title\":\"4. Exploring InSpec Resources\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":4,\"next\":\"05.md\",\"title\":\"4. Exploring InSpec Resources\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Resources Now that you have learned about making and running InSpec profiles, let's dig deeper into the mechanics of InSpec by learning about resources. Core Resources As you sa...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/04.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"4. Exploring InSpec Resources\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Resources Now that you have learned about making and running InSpec profiles, let's dig deeper into the mechanics of InSpec by learning about resources. Core Resources As you sa...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"4. Exploring InSpec Resources\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Resources\",\"slug\":\"resources\",\"link\":\"#resources\",\"children\":[{\"level\":3,\"title\":\"Core Resources\",\"slug\":\"core-resources\",\"link\":\"#core-resources\",\"children\":[]},{\"level\":3,\"title\":\"Local Resources\",\"slug\":\"local-resources\",\"link\":\"#local-resources\",\"children\":[]},{\"level\":3,\"title\":\"6.1. Resource Overview\",\"slug\":\"_6-1-resource-overview\",\"link\":\"#_6-1-resource-overview\",\"children\":[]},{\"level\":3,\"title\":\"6.2. Resource Structure\",\"slug\":\"_6-2-resource-structure\",\"link\":\"#_6-2-resource-structure\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.26,\"words\":679},\"filePathRelative\":\"courses/advanced/04.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/04.html.vue b/.vuepress/.temp/pages/courses/advanced/04.html.vue deleted file mode 100644 index 320d96fc0..000000000 --- a/.vuepress/.temp/pages/courses/advanced/04.html.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/05.html.js b/.vuepress/.temp/pages/courses/advanced/05.html.js deleted file mode 100644 index 2ef6dc107..000000000 --- a/.vuepress/.temp/pages/courses/advanced/05.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-33edf677\",\"path\":\"/courses/advanced/05.html\",\"title\":\"5. Create a Custom Resource - The Git Example\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":5,\"next\":\"06.md\",\"title\":\"5. Create a Custom Resource - The Git Example\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Let's practice creating our own custom resource. Let's say we want to write tests that examine the current state of a local Git repository. We want to create a git resource to h...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/05.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"5. Create a Custom Resource - The Git Example\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Let's practice creating our own custom resource. Let's say we want to write tests that examine the current state of a local Git repository. We want to create a git resource to h...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"5. Create a Custom Resource - The Git Example\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":3,\"title\":\"Create new InSpec profile\",\"slug\":\"create-new-inspec-profile\",\"link\":\"#create-new-inspec-profile\",\"children\":[]},{\"level\":3,\"title\":\"Develop controls to test / run profile\",\"slug\":\"develop-controls-to-test-run-profile\",\"link\":\"#develop-controls-to-test-run-profile\",\"children\":[]},{\"level\":3,\"title\":\"Rewrite test\",\"slug\":\"rewrite-test\",\"link\":\"#rewrite-test\",\"children\":[]},{\"level\":3,\"title\":\"Develop the git resource\",\"slug\":\"develop-the-git-resource\",\"link\":\"#develop-the-git-resource\",\"children\":[]}],\"readingTime\":{\"minutes\":6.78,\"words\":2034},\"filePathRelative\":\"courses/advanced/05.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/05.html.vue b/.vuepress/.temp/pages/courses/advanced/05.html.vue deleted file mode 100644 index 4dad7f773..000000000 --- a/.vuepress/.temp/pages/courses/advanced/05.html.vue +++ /dev/null @@ -1,362 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.vuepress/.temp/pages/courses/advanced/06.html.js b/.vuepress/.temp/pages/courses/advanced/06.html.js deleted file mode 100644 index 1c32fac24..000000000 --- a/.vuepress/.temp/pages/courses/advanced/06.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-35a2cf16\",\"path\":\"/courses/advanced/06.html\",\"title\":\"6. Create a Custom Resource - The Docker Example\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":6,\"next\":\"07.md\",\"title\":\"6. Create a Custom Resource - The Docker Example\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Custom Resource - Docker Now let's try a more complicated example. Let's say we want to create a resource that can parse a docker-compose file. Create new profile and setup Dock...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/06.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"6. Create a Custom Resource - The Docker Example\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Custom Resource - Docker Now let's try a more complicated example. Let's say we want to create a resource that can parse a docker-compose file. Create new profile and setup Dock...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"6. Create a Custom Resource - The Docker Example\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Custom Resource - Docker\",\"slug\":\"custom-resource-docker\",\"link\":\"#custom-resource-docker\",\"children\":[{\"level\":3,\"title\":\"Create new profile and setup Docker files\",\"slug\":\"create-new-profile-and-setup-docker-files\",\"link\":\"#create-new-profile-and-setup-docker-files\",\"children\":[]},{\"level\":3,\"title\":\"Develop controls to test/run profile\",\"slug\":\"develop-controls-to-test-run-profile\",\"link\":\"#develop-controls-to-test-run-profile\",\"children\":[]},{\"level\":3,\"title\":\"Rewrite test to utilize a new resource\",\"slug\":\"rewrite-test-to-utilize-a-new-resource\",\"link\":\"#rewrite-test-to-utilize-a-new-resource\",\"children\":[]},{\"level\":3,\"title\":\"Develop the Docker resource\",\"slug\":\"develop-the-docker-resource\",\"link\":\"#develop-the-docker-resource\",\"children\":[]}]}],\"readingTime\":{\"minutes\":6.56,\"words\":1968},\"filePathRelative\":\"courses/advanced/06.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/06.html.vue b/.vuepress/.temp/pages/courses/advanced/06.html.vue deleted file mode 100644 index 67372d096..000000000 --- a/.vuepress/.temp/pages/courses/advanced/06.html.vue +++ /dev/null @@ -1,406 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.vuepress/.temp/pages/courses/advanced/07.html.js b/.vuepress/.temp/pages/courses/advanced/07.html.js deleted file mode 100644 index 4f8a9b020..000000000 --- a/.vuepress/.temp/pages/courses/advanced/07.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3757a7b5\",\"path\":\"/courses/advanced/07.html\",\"title\":\"7. Exercise - Develop your own resources\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":7,\"next\":\"08.md\",\"title\":\"7. Exercise - Develop your own resources\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Try writing your own resources and think about how you could implement them in a profile! Suggested Resources to start on (Simple): Docker; id retrieves container id; image retr...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/07.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"7. Exercise - Develop your own resources\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Try writing your own resources and think about how you could implement them in a profile! Suggested Resources to start on (Simple): Docker; id retrieves container id; image retr...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"7. Exercise - Develop your own resources\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":2.34,\"words\":701},\"filePathRelative\":\"courses/advanced/07.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/07.html.vue b/.vuepress/.temp/pages/courses/advanced/07.html.vue deleted file mode 100644 index 62684cfee..000000000 --- a/.vuepress/.temp/pages/courses/advanced/07.html.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/08.html.js b/.vuepress/.temp/pages/courses/advanced/08.html.js deleted file mode 100644 index 50eaf149a..000000000 --- a/.vuepress/.temp/pages/courses/advanced/08.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-390c8054\",\"path\":\"/courses/advanced/08.html\",\"title\":\"8. CI/CD Pipelines\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":8,\"next\":\"09.md\",\"title\":\"8. CI/CD Pipelines\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"CI/CD Pipelines A Pipeline Diagram (GitHub Action) Now that we have a solid grasp on InSpec, let's discuss the bigger picture -- how we can use the validation content we wrote i...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/08.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"8. CI/CD Pipelines\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"CI/CD Pipelines A Pipeline Diagram (GitHub Action) Now that we have a solid grasp on InSpec, let's discuss the bigger picture -- how we can use the validation content we wrote i...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"8. CI/CD Pipelines\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"CI/CD Pipelines\",\"slug\":\"ci-cd-pipelines\",\"link\":\"#ci-cd-pipelines\",\"children\":[{\"level\":3,\"title\":\"Background\",\"slug\":\"background\",\"link\":\"#background\",\"children\":[]}]},{\"level\":2,\"title\":\"Pipeline Orchestrators\",\"slug\":\"pipeline-orchestrators\",\"link\":\"#pipeline-orchestrators\",\"children\":[]},{\"level\":2,\"title\":\"Our Use Case\",\"slug\":\"our-use-case\",\"link\":\"#our-use-case\",\"children\":[]},{\"level\":2,\"title\":\"Pipeline Tasks\",\"slug\":\"pipeline-tasks\",\"link\":\"#pipeline-tasks\",\"children\":[{\"level\":3,\"title\":\"Runners\",\"slug\":\"runners\",\"link\":\"#runners\",\"children\":[]}]}],\"readingTime\":{\"minutes\":3.3,\"words\":990},\"filePathRelative\":\"courses/advanced/08.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/08.html.vue b/.vuepress/.temp/pages/courses/advanced/08.html.vue deleted file mode 100644 index 1030f8553..000000000 --- a/.vuepress/.temp/pages/courses/advanced/08.html.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/09.html.js b/.vuepress/.temp/pages/courses/advanced/09.html.js deleted file mode 100644 index 3af0f894e..000000000 --- a/.vuepress/.temp/pages/courses/advanced/09.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3ac158f3\",\"path\":\"/courses/advanced/09.html\",\"title\":\"9. GitHub Actions\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":9,\"next\":\"10.md\",\"title\":\"9. GitHub Actions\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"GitHub Actions Let's create a GitHub Action workflow to define our pipeline. The Workflow file Pipeline orchestration tools are usually configured in a predefined workflow file,...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/09.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"9. GitHub Actions\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"GitHub Actions Let's create a GitHub Action workflow to define our pipeline. The Workflow file Pipeline orchestration tools are usually configured in a predefined workflow file,...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"9. GitHub Actions\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"GitHub Actions\",\"slug\":\"github-actions\",\"link\":\"#github-actions\",\"children\":[{\"level\":3,\"title\":\"The Workflow file\",\"slug\":\"the-workflow-file\",\"link\":\"#the-workflow-file\",\"children\":[]},{\"level\":3,\"title\":\"Workflow File - Complete Example\",\"slug\":\"workflow-file-complete-example\",\"link\":\"#workflow-file-complete-example\",\"children\":[]},{\"level\":3,\"title\":\"Workflow Triggers\",\"slug\":\"workflow-triggers\",\"link\":\"#workflow-triggers\",\"children\":[]},{\"level\":3,\"title\":\"Our First Step\",\"slug\":\"our-first-step\",\"link\":\"#our-first-step\",\"children\":[]},{\"level\":3,\"title\":\"The Next Step\",\"slug\":\"the-next-step\",\"link\":\"#the-next-step\",\"children\":[]}]}],\"readingTime\":{\"minutes\":5.98,\"words\":1793},\"filePathRelative\":\"courses/advanced/09.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/09.html.vue b/.vuepress/.temp/pages/courses/advanced/09.html.vue deleted file mode 100644 index d081ab7f4..000000000 --- a/.vuepress/.temp/pages/courses/advanced/09.html.vue +++ /dev/null @@ -1,233 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/10.html.js b/.vuepress/.temp/pages/courses/advanced/10.html.js deleted file mode 100644 index 2871b933c..000000000 --- a/.vuepress/.temp/pages/courses/advanced/10.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-604bf69d\",\"path\":\"/courses/advanced/10.html\",\"title\":\"10. Building Out Our Pipeline\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":10,\"next\":\"11.md\",\"title\":\"10. Building Out Our Pipeline\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"More Pipeline Steps Let's make this pipeline deploy, harden, validate, and verify an NGINX container. Prep Steps First, we need to make sure that the node that runs our pipeline...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/10.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"10. Building Out Our Pipeline\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"More Pipeline Steps Let's make this pipeline deploy, harden, validate, and verify an NGINX container. Prep Steps First, we need to make sure that the node that runs our pipeline...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"10. Building Out Our Pipeline\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"More Pipeline Steps\",\"slug\":\"more-pipeline-steps\",\"link\":\"#more-pipeline-steps\",\"children\":[{\"level\":3,\"title\":\"Prep Steps\",\"slug\":\"prep-steps\",\"link\":\"#prep-steps\",\"children\":[]},{\"level\":3,\"title\":\"Actions\",\"slug\":\"actions\",\"link\":\"#actions\",\"children\":[]},{\"level\":3,\"title\":\"Linting\",\"slug\":\"linting\",\"link\":\"#linting\",\"children\":[]},{\"level\":3,\"title\":\"Deploy Test Container\",\"slug\":\"deploy-test-container\",\"link\":\"#deploy-test-container\",\"children\":[]},{\"level\":3,\"title\":\"Hardening\",\"slug\":\"hardening\",\"link\":\"#hardening\",\"children\":[]},{\"level\":3,\"title\":\"Validation\",\"slug\":\"validation\",\"link\":\"#validation\",\"children\":[]},{\"level\":3,\"title\":\"Artifacts\",\"slug\":\"artifacts\",\"link\":\"#artifacts\",\"children\":[]}]}],\"readingTime\":{\"minutes\":7.31,\"words\":2193},\"filePathRelative\":\"courses/advanced/10.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/10.html.vue b/.vuepress/.temp/pages/courses/advanced/10.html.vue deleted file mode 100644 index 60b9b0f05..000000000 --- a/.vuepress/.temp/pages/courses/advanced/10.html.vue +++ /dev/null @@ -1,298 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/11.html.js b/.vuepress/.temp/pages/courses/advanced/11.html.js deleted file mode 100644 index 028495317..000000000 --- a/.vuepress/.temp/pages/courses/advanced/11.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-6200cf3c\",\"path\":\"/courses/advanced/11.html\",\"title\":\"11. Verifying Results With The SAF CLI\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":11,\"next\":\"12.md\",\"title\":\"11. Verifying Results With The SAF CLI\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"Verification At this point we have a much more mature workflow file. We have one more activity we need to do -- verification, or checking that the output of our validation run m...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/11.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"11. Verifying Results With The SAF CLI\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Verification At this point we have a much more mature workflow file. We have one more activity we need to do -- verification, or checking that the output of our validation run m...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"11. Verifying Results With The SAF CLI\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Verification\",\"slug\":\"verification\",\"link\":\"#verification\",\"children\":[{\"level\":3,\"title\":\"The SAF CLI\",\"slug\":\"the-saf-cli\",\"link\":\"#the-saf-cli\",\"children\":[]},{\"level\":3,\"title\":\"Updating the Workflow File\",\"slug\":\"updating-the-workflow-file\",\"link\":\"#updating-the-workflow-file\",\"children\":[]}]}],\"readingTime\":{\"minutes\":5.87,\"words\":1760},\"filePathRelative\":\"courses/advanced/11.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/11.html.vue b/.vuepress/.temp/pages/courses/advanced/11.html.vue deleted file mode 100644 index 7b117b00c..000000000 --- a/.vuepress/.temp/pages/courses/advanced/11.html.vue +++ /dev/null @@ -1,243 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/12.html.js b/.vuepress/.temp/pages/courses/advanced/12.html.js deleted file mode 100644 index b85724299..000000000 --- a/.vuepress/.temp/pages/courses/advanced/12.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-63b5a7db\",\"path\":\"/courses/advanced/12.html\",\"title\":\"12. Next Steps\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":12,\"title\":\"12. Next Steps\",\"author\":\"Emily\",\"headerDepth\":3,\"description\":\"Next Steps Take the Class Survey Take our brief survey (https://forms.office.com/g/W2xtcV2frW) to give feedback to fuel class improvement. Save your work on GitHub If you want t...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/12.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"12. Next Steps\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Next Steps Take the Class Survey Take our brief survey (https://forms.office.com/g/W2xtcV2frW) to give feedback to fuel class improvement. Save your work on GitHub If you want t...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"12. Next Steps\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Next Steps\",\"slug\":\"next-steps\",\"link\":\"#next-steps\",\"children\":[{\"level\":3,\"title\":\"Take the Class Survey\",\"slug\":\"take-the-class-survey\",\"link\":\"#take-the-class-survey\",\"children\":[]},{\"level\":3,\"title\":\"Save your work on GitHub\",\"slug\":\"save-your-work-on-github\",\"link\":\"#save-your-work-on-github\",\"children\":[]},{\"level\":3,\"title\":\"Reference other class content\",\"slug\":\"reference-other-class-content\",\"link\":\"#reference-other-class-content\",\"children\":[]},{\"level\":3,\"title\":\"Check Out the Rest of MITRE SAF(c)'s Content\",\"slug\":\"check-out-the-rest-of-mitre-saf-c-s-content\",\"link\":\"#check-out-the-rest-of-mitre-saf-c-s-content\",\"children\":[]},{\"level\":3,\"title\":\"Contact Us\",\"slug\":\"contact-us\",\"link\":\"#contact-us\",\"children\":[]}]}],\"readingTime\":{\"minutes\":0.96,\"words\":289},\"filePathRelative\":\"courses/advanced/12.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/12.html.vue b/.vuepress/.temp/pages/courses/advanced/12.html.vue deleted file mode 100644 index 4d79fb7cb..000000000 --- a/.vuepress/.temp/pages/courses/advanced/12.html.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.js b/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.js deleted file mode 100644 index 837c7cca5..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-32f5f052\",\"path\":\"/courses/advanced/Appendix%20A%20-%20Writing%20Plural%20Resources.html\",\"title\":\"Appendix A - Writing Plural Resources\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":14,\"title\":\"Appendix A - Writing Plural Resources\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"10. Plural Resources You might have noticed that many InSpec resources have a \\\"plural\\\" version. For example, user has a users counterpart, and package has packages. Plural resou...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/Appendix%20A%20-%20Writing%20Plural%20Resources.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Appendix A - Writing Plural Resources\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"10. Plural Resources You might have noticed that many InSpec resources have a \\\"plural\\\" version. For example, user has a users counterpart, and package has packages. Plural resou...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Appendix A - Writing Plural Resources\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"10. Plural Resources\",\"slug\":\"_10-plural-resources\",\"link\":\"#_10-plural-resources\",\"children\":[{\"level\":3,\"title\":\"10.1. Using FilterTable to write a Plural Resource\",\"slug\":\"_10-1-using-filtertable-to-write-a-plural-resource\",\"link\":\"#_10-1-using-filtertable-to-write-a-plural-resource\",\"children\":[]},{\"level\":3,\"title\":\"10.2. FilterTable Hands-On\",\"slug\":\"_10-2-filtertable-hands-on\",\"link\":\"#_10-2-filtertable-hands-on\",\"children\":[]},{\"level\":3,\"title\":\"10.3. Predefined Methods for FilterTable\",\"slug\":\"_10-3-predefined-methods-for-filtertable\",\"link\":\"#_10-3-predefined-methods-for-filtertable\",\"children\":[]},{\"level\":3,\"title\":\"10.4 FilterTable Examples\",\"slug\":\"_10-4-filtertable-examples\",\"link\":\"#_10-4-filtertable-examples\",\"children\":[]}]}],\"readingTime\":{\"minutes\":7.71,\"words\":2312},\"filePathRelative\":\"courses/advanced/Appendix A - Writing Plural Resources.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.vue b/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.vue deleted file mode 100644 index 2a5537c20..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix A - Writing Plural Resources.html.vue +++ /dev/null @@ -1,298 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.js b/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.js deleted file mode 100644 index c9ce25614..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-937704e2\",\"path\":\"/courses/advanced/Appendix%20B%20-%20Resource%20Examples.html\",\"title\":\"Appendix B - Custom Resource Examples from InSpec\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":15,\"title\":\"Appendix B - Custom Resource Examples from InSpec\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"As an example we will go through a few custom resources that were built and approved. 14.1. IPv6 resource 14.1.1. docs/resources/ip6tables.md.erb 14.1.2. lib/inspec/resources.rb...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/Appendix%20B%20-%20Resource%20Examples.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Appendix B - Custom Resource Examples from InSpec\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"As an example we will go through a few custom resources that were built and approved. 14.1. IPv6 resource 14.1.1. docs/resources/ip6tables.md.erb 14.1.2. lib/inspec/resources.rb...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Appendix B - Custom Resource Examples from InSpec\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":3,\"title\":\"14.1. IPv6 resource\",\"slug\":\"_14-1-ipv6-resource\",\"link\":\"#_14-1-ipv6-resource\",\"children\":[]},{\"level\":3,\"title\":\"14.2. NGINX resource\",\"slug\":\"_14-2-nginx-resource\",\"link\":\"#_14-2-nginx-resource\",\"children\":[]},{\"level\":3,\"title\":\"14.3. Additional examples\",\"slug\":\"_14-3-additional-examples\",\"link\":\"#_14-3-additional-examples\",\"children\":[]}],\"readingTime\":{\"minutes\":7.17,\"words\":2151},\"filePathRelative\":\"courses/advanced/Appendix B - Resource Examples.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.vue b/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.vue deleted file mode 100644 index a421ef0a8..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix B - Resource Examples.html.vue +++ /dev/null @@ -1,514 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.js b/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.js deleted file mode 100644 index c08606791..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-f978fcb6\",\"path\":\"/courses/advanced/Appendix%20C%20-%20Adding%20Your%20Resource%20to%20InSpec.html\",\"title\":\"Appendix C - Adding Your Resource to InSpec\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":16,\"title\":\"Appendix C - Adding Your Resource to InSpec\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Many of the official InSpec resources were written by community members. If you have created a resource for your project and would like to make it part of the official library, ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/Appendix%20C%20-%20Adding%20Your%20Resource%20to%20InSpec.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Appendix C - Adding Your Resource to InSpec\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Many of the official InSpec resources were written by community members. If you have created a resource for your project and would like to make it part of the official library, ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Appendix C - Adding Your Resource to InSpec\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":1.49,\"words\":447},\"filePathRelative\":\"courses/advanced/Appendix C - Adding Your Resource to InSpec.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.vue b/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.vue deleted file mode 100644 index 25752336e..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix C - Adding Your Resource to InSpec.html.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.js b/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.js deleted file mode 100644 index 76c261011..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-4faaa59d\",\"path\":\"/courses/advanced/Appendix%20D%20-%20Example%20Pipeline%20for%20Validating%20an%20InSpec%20Profile.html\",\"title\":\"Appendix D - Example Pipeline for Validating an InSpec Profile\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":17,\"title\":\"Appendix D - Example Pipeline for Validating an InSpec Profile\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"RHEL7 Pipeline example Below is a RedHat 7 example (https://github.com/mitre/redhat-enterprise-linux-7-stig-baseline/blob/master/.github/workflows/verify-ec2.yml) of an automate...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/Appendix%20D%20-%20Example%20Pipeline%20for%20Validating%20an%20InSpec%20Profile.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Appendix D - Example Pipeline for Validating an InSpec Profile\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"RHEL7 Pipeline example Below is a RedHat 7 example (https://github.com/mitre/redhat-enterprise-linux-7-stig-baseline/blob/master/.github/workflows/verify-ec2.yml) of an automate...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Appendix D - Example Pipeline for Validating an InSpec Profile\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":3,\"title\":\"RHEL7 Pipeline example\",\"slug\":\"rhel7-pipeline-example\",\"link\":\"#rhel7-pipeline-example\",\"children\":[]},{\"level\":3,\"title\":\"5.2. Pipeline Example with Manual Attestations\",\"slug\":\"_5-2-pipeline-example-with-manual-attestations\",\"link\":\"#_5-2-pipeline-example-with-manual-attestations\",\"children\":[]}],\"readingTime\":{\"minutes\":2.17,\"words\":651},\"filePathRelative\":\"courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.vue b/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.vue deleted file mode 100644 index 6dcf9d04b..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix D - Example Pipeline for Validating an InSpec Profile.html.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.js b/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.js deleted file mode 100644 index e20f1e7bb..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-b1912590\",\"path\":\"/courses/advanced/Appendix%20E%20-%20More%20Resource%20Examples.html\",\"title\":\"Appendix B - More Resource Examples\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":18,\"title\":\"Appendix B - More Resource Examples\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"11.1. File 11.2. Directory ```ruby require \\\"inspec/resources/file\\\" module Inspec::Resources class Directory < FileResource name \\\"directory\\\" supports platform: \\\"unix\\\" supports pl...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/Appendix%20E%20-%20More%20Resource%20Examples.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Appendix B - More Resource Examples\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"11.1. File 11.2. Directory ```ruby require \\\"inspec/resources/file\\\" module Inspec::Resources class Directory < FileResource name \\\"directory\\\" supports platform: \\\"unix\\\" supports pl...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Appendix B - More Resource Examples\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":3,\"title\":\"11.1. File\",\"slug\":\"_11-1-file\",\"link\":\"#_11-1-file\",\"children\":[]},{\"level\":3,\"title\":\"11.2. Directory\",\"slug\":\"_11-2-directory\",\"link\":\"#_11-2-directory\",\"children\":[]},{\"level\":3,\"title\":\"11.3. etc_hosts\",\"slug\":\"_11-3-etc-hosts\",\"link\":\"#_11-3-etc-hosts\",\"children\":[]}],\"readingTime\":{\"minutes\":4.81,\"words\":1442},\"filePathRelative\":\"courses/advanced/Appendix E - More Resource Examples.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.vue b/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.vue deleted file mode 100644 index a3a5f1624..000000000 --- a/.vuepress/.temp/pages/courses/advanced/Appendix E - More Resource Examples.html.vue +++ /dev/null @@ -1,426 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/advanced/index.html.js b/.vuepress/.temp/pages/courses/advanced/index.html.js deleted file mode 100644 index d4be20741..000000000 --- a/.vuepress/.temp/pages/courses/advanced/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-0cb10646\",\"path\":\"/courses/advanced/\",\"title\":\"InSpec Advanced Profile Development\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":1,\"next\":\"02.md\",\"title\":\"InSpec Advanced Profile Development\",\"shortTitle\":\"Advanced Profile Development\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"1.1 Class Objectives The purpose of this class is to take you beyond profile development and give you the tools to actively participate in the open source security automation co...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/advanced/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"InSpec Advanced Profile Development\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"1.1 Class Objectives The purpose of this class is to take you beyond profile development and give you the tools to actively participate in the open source security automation co...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"InSpec Advanced Profile Development\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"1.1 Class Objectives\",\"slug\":\"_1-1-class-objectives\",\"link\":\"#_1-1-class-objectives\",\"children\":[{\"level\":3,\"title\":\"1.1.2 Advanced Class Objectives:\",\"slug\":\"_1-1-2-advanced-class-objectives\",\"link\":\"#_1-1-2-advanced-class-objectives\",\"children\":[]}]},{\"level\":2,\"title\":\"1.2 About InSpec\",\"slug\":\"_1-2-about-inspec\",\"link\":\"#_1-2-about-inspec\",\"children\":[]},{\"level\":2,\"title\":\"1.3 The Road to Security Automation\",\"slug\":\"_1-3-the-road-to-security-automation\",\"link\":\"#_1-3-the-road-to-security-automation\",\"children\":[]},{\"level\":2,\"title\":\"1.4 Where can I start on my own?\",\"slug\":\"_1-4-where-can-i-start-on-my-own\",\"link\":\"#_1-4-where-can-i-start-on-my-own\",\"children\":[]}],\"readingTime\":{\"minutes\":1.45,\"words\":436},\"filePathRelative\":\"courses/advanced/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/advanced/index.html.vue b/.vuepress/.temp/pages/courses/advanced/index.html.vue deleted file mode 100644 index bf5f9e964..000000000 --- a/.vuepress/.temp/pages/courses/advanced/index.html.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/02.html.js b/.vuepress/.temp/pages/courses/beginner/02.html.js deleted file mode 100644 index b9641b8d0..000000000 --- a/.vuepress/.temp/pages/courses/beginner/02.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-23e7d8ca\",\"path\":\"/courses/beginner/02.html\",\"title\":\"2. What is an InSpec Profile?\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":2,\"next\":\"03.md\",\"title\":\"2. What is an InSpec Profile?\",\"author\":\"Aaron Lippold\",\"description\":\"Check-InHave you used InSpec before? There is no right or wrong answer. If this is your first time using InSpec, welcome! If you have used it before, welcome back. If you want m...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/02.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"2. What is an InSpec Profile?\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Check-InHave you used InSpec before? There is no right or wrong answer. If this is your first time using InSpec, welcome! If you have used it before, welcome back. If you want m...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"2. What is an InSpec Profile?\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":3,\"title\":\"Check-In\",\"slug\":\"check-in\",\"link\":\"#check-in\",\"children\":[]},{\"level\":2,\"title\":\"What is an InSpec Profile?\",\"slug\":\"what-is-an-inspec-profile\",\"link\":\"#what-is-an-inspec-profile\",\"children\":[{\"level\":3,\"title\":\"InSpec Profiles\",\"slug\":\"inspec-profiles\",\"link\":\"#inspec-profiles\",\"children\":[]},{\"level\":3,\"title\":\"InSpec Profile Structure\",\"slug\":\"inspec-profile-structure\",\"link\":\"#inspec-profile-structure\",\"children\":[]},{\"level\":3,\"title\":\"InSpec Controls Structure\",\"slug\":\"inspec-controls-structure\",\"link\":\"#inspec-controls-structure\",\"children\":[]},{\"level\":3,\"title\":\"InSpec Results\",\"slug\":\"inspec-results\",\"link\":\"#inspec-results\",\"children\":[]},{\"level\":3,\"title\":\"Tooling and Reporting\",\"slug\":\"tooling-and-reporting\",\"link\":\"#tooling-and-reporting\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.13,\"words\":639},\"filePathRelative\":\"courses/beginner/02.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/02.html.vue b/.vuepress/.temp/pages/courses/beginner/02.html.vue deleted file mode 100644 index 9e7c3f935..000000000 --- a/.vuepress/.temp/pages/courses/beginner/02.html.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/03.html.js b/.vuepress/.temp/pages/courses/beginner/03.html.js deleted file mode 100644 index 9cd9de31d..000000000 --- a/.vuepress/.temp/pages/courses/beginner/03.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-259cb169\",\"path\":\"/courses/beginner/03.html\",\"title\":\"3. Study an InSpec Profile - NGINX Example\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":3,\"next\":\"04.md\",\"title\":\"3. Study an InSpec Profile - NGINX Example\",\"author\":\"Aaron Lippold\",\"description\":\"Studying an InSpec profile Let's start by creating a profile that will contain NGINX tests. At your terminal, type: tab InSpec Init Command tab Expected Output Understanding the...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/03.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"3. Study an InSpec Profile - NGINX Example\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Studying an InSpec profile Let's start by creating a profile that will contain NGINX tests. At your terminal, type: tab InSpec Init Command tab Expected Output Understanding the...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"3. Study an InSpec Profile - NGINX Example\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Studying an InSpec profile\",\"slug\":\"studying-an-inspec-profile\",\"link\":\"#studying-an-inspec-profile\",\"children\":[{\"level\":3,\"title\":\"Understanding the profile structure\",\"slug\":\"understanding-the-profile-structure\",\"link\":\"#understanding-the-profile-structure\",\"children\":[]},{\"level\":3,\"title\":\"Understand a control's structure\",\"slug\":\"understand-a-control-s-structure\",\"link\":\"#understand-a-control-s-structure\",\"children\":[]},{\"level\":3,\"title\":\"Understand a describe block's structure\",\"slug\":\"understand-a-describe-block-s-structure\",\"link\":\"#understand-a-describe-block-s-structure\",\"children\":[]},{\"level\":3,\"title\":\"Comprehension Check!\",\"slug\":\"comprehension-check\",\"link\":\"#comprehension-check\",\"children\":[]}]}],\"readingTime\":{\"minutes\":3.67,\"words\":1101},\"filePathRelative\":\"courses/beginner/03.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/03.html.vue b/.vuepress/.temp/pages/courses/beginner/03.html.vue deleted file mode 100644 index 9a5cb2aea..000000000 --- a/.vuepress/.temp/pages/courses/beginner/03.html.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/04.html.js b/.vuepress/.temp/pages/courses/beginner/04.html.js deleted file mode 100644 index aea0e2b21..000000000 --- a/.vuepress/.temp/pages/courses/beginner/04.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-27518a08\",\"path\":\"/courses/beginner/04.html\",\"title\":\"4. How to Get Started - InSpec Commands & Docs\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":4,\"next\":\"05.md\",\"title\":\"4. How to Get Started - InSpec Commands & Docs\",\"author\":\"Aaron Lippold\",\"description\":\"InSpec Commands and Documentation Before we test our NGINX configuration, let's take a look at the InSpec commands and documentation we can use to write tests. How to Run InSpec...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/04.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"4. How to Get Started - InSpec Commands & Docs\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"InSpec Commands and Documentation Before we test our NGINX configuration, let's take a look at the InSpec commands and documentation we can use to write tests. How to Run InSpec...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"4. How to Get Started - InSpec Commands & Docs\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"InSpec Commands and Documentation\",\"slug\":\"inspec-commands-and-documentation\",\"link\":\"#inspec-commands-and-documentation\",\"children\":[{\"level\":3,\"title\":\"How to Run InSpec\",\"slug\":\"how-to-run-inspec\",\"link\":\"#how-to-run-inspec\",\"children\":[]},{\"level\":3,\"title\":\"How to Write InSpec\",\"slug\":\"how-to-write-inspec\",\"link\":\"#how-to-write-inspec\",\"children\":[]},{\"level\":3,\"title\":\"The InSpec shell\",\"slug\":\"the-inspec-shell\",\"link\":\"#the-inspec-shell\",\"children\":[]},{\"level\":3,\"title\":\"Entering the InSpec shell\",\"slug\":\"entering-the-inspec-shell\",\"link\":\"#entering-the-inspec-shell\",\"children\":[]},{\"level\":3,\"title\":\"Using the InSpec Shell\",\"slug\":\"using-the-inspec-shell\",\"link\":\"#using-the-inspec-shell\",\"children\":[]},{\"level\":3,\"title\":\"Exploring Resources\",\"slug\":\"exploring-resources\",\"link\":\"#exploring-resources\",\"children\":[]}]}],\"readingTime\":{\"minutes\":7.37,\"words\":2212},\"filePathRelative\":\"courses/beginner/04.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/04.html.vue b/.vuepress/.temp/pages/courses/beginner/04.html.vue deleted file mode 100644 index 5309b4feb..000000000 --- a/.vuepress/.temp/pages/courses/beginner/04.html.vue +++ /dev/null @@ -1,476 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/05.html.js b/.vuepress/.temp/pages/courses/beginner/05.html.js deleted file mode 100644 index 7a6535eef..000000000 --- a/.vuepress/.temp/pages/courses/beginner/05.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-290662a7\",\"path\":\"/courses/beginner/05.html\",\"title\":\"5. Writing InSpec Controls\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":5,\"next\":\"06.md\",\"title\":\"5. Writing InSpec Controls\",\"author\":\"Aaron Lippold\",\"description\":\"Writing InSpec Controls Let's work through some example requirements to write InSpec controls. Security & Configuration Requirements We write InSpec controls to test some target...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/05.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"5. Writing InSpec Controls\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Writing InSpec Controls Let's work through some example requirements to write InSpec controls. Security & Configuration Requirements We write InSpec controls to test some target...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"5. Writing InSpec Controls\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Writing InSpec Controls\",\"slug\":\"writing-inspec-controls\",\"link\":\"#writing-inspec-controls\",\"children\":[{\"level\":3,\"title\":\"Security & Configuration Requirements\",\"slug\":\"security-configuration-requirements\",\"link\":\"#security-configuration-requirements\",\"children\":[]},{\"level\":3,\"title\":\"Requirement (1) - NGINX Version\",\"slug\":\"requirement-1-nginx-version\",\"link\":\"#requirement-1-nginx-version\",\"children\":[]},{\"level\":3,\"title\":\"Requirement (2) - NGINX Modules are Installed\",\"slug\":\"requirement-2-nginx-modules-are-installed\",\"link\":\"#requirement-2-nginx-modules-are-installed\",\"children\":[]},{\"level\":3,\"title\":\"Requirement (3) - The nginx_conf file\",\"slug\":\"requirement-3-the-nginx-conf-file\",\"link\":\"#requirement-3-the-nginx-conf-file\",\"children\":[]},{\"level\":3,\"title\":\"Requirement (4) - Permission on the nginx_conf file\",\"slug\":\"requirement-4-permission-on-the-nginx-conf-file\",\"link\":\"#requirement-4-permission-on-the-nginx-conf-file\",\"children\":[]},{\"level\":3,\"title\":\"Requirement (5) - NGINX shell access\",\"slug\":\"requirement-5-nginx-shell-access\",\"link\":\"#requirement-5-nginx-shell-access\",\"children\":[]}]}],\"readingTime\":{\"minutes\":5.11,\"words\":1532},\"filePathRelative\":\"courses/beginner/05.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/05.html.vue b/.vuepress/.temp/pages/courses/beginner/05.html.vue deleted file mode 100644 index 719d68a66..000000000 --- a/.vuepress/.temp/pages/courses/beginner/05.html.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/06.html.js b/.vuepress/.temp/pages/courses/beginner/06.html.js deleted file mode 100644 index 94a67d60e..000000000 --- a/.vuepress/.temp/pages/courses/beginner/06.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2abb3b46\",\"path\":\"/courses/beginner/06.html\",\"title\":\"6. Inputs in InSpec\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":6,\"next\":\"07.md\",\"title\":\"6. Inputs in InSpec\",\"author\":\"Aaron Lippold\",\"description\":\"Refactoring the code to use Inputs Your my_nginx profile is off to a great start. As your requirements evolve, you can add additional controls. You can also run this profile as ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/06.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"6. Inputs in InSpec\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Refactoring the code to use Inputs Your my_nginx profile is off to a great start. As your requirements evolve, you can add additional controls. You can also run this profile as ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"6. Inputs in InSpec\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Refactoring the code to use Inputs\",\"slug\":\"refactoring-the-code-to-use-inputs\",\"link\":\"#refactoring-the-code-to-use-inputs\",\"children\":[]},{\"level\":2,\"title\":\"Input File Example\",\"slug\":\"input-file-example\",\"link\":\"#input-file-example\",\"children\":[]}],\"readingTime\":{\"minutes\":3.39,\"words\":1017},\"filePathRelative\":\"courses/beginner/06.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/06.html.vue b/.vuepress/.temp/pages/courses/beginner/06.html.vue deleted file mode 100644 index 9ee562780..000000000 --- a/.vuepress/.temp/pages/courses/beginner/06.html.vue +++ /dev/null @@ -1,268 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/07.html.js b/.vuepress/.temp/pages/courses/beginner/07.html.js deleted file mode 100644 index 72aca9d5b..000000000 --- a/.vuepress/.temp/pages/courses/beginner/07.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2c7013e5\",\"path\":\"/courses/beginner/07.html\",\"title\":\"7. InSpec Control Enhancements\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":7,\"next\":\"08.md\",\"title\":\"7. InSpec Control Enhancements\",\"author\":\"Aaron Lippold\",\"description\":\"InSpec Control Enhancements You should have the basic idea of how an InSpec test is written and how to leverage InSpec's built-in features to help you write tests quickly and ea...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/07.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"7. InSpec Control Enhancements\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"InSpec Control Enhancements You should have the basic idea of how an InSpec test is written and how to leverage InSpec's built-in features to help you write tests quickly and ea...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"7. InSpec Control Enhancements\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"InSpec Control Enhancements\",\"slug\":\"inspec-control-enhancements\",\"link\":\"#inspec-control-enhancements\",\"children\":[{\"level\":3,\"title\":\"RSpec\",\"slug\":\"rspec\",\"link\":\"#rspec\",\"children\":[]},{\"level\":3,\"title\":\"RSpec Explicit Subject\",\"slug\":\"rspec-explicit-subject\",\"link\":\"#rspec-explicit-subject\",\"children\":[]},{\"level\":3,\"title\":\"The should vs. expect syntax\",\"slug\":\"the-should-vs-expect-syntax\",\"link\":\"#the-should-vs-expect-syntax\",\"children\":[]},{\"level\":3,\"title\":\"expect syntax with a failure message\",\"slug\":\"expect-syntax-with-a-failure-message\",\"link\":\"#expect-syntax-with-a-failure-message\",\"children\":[]},{\"level\":3,\"title\":\"Expect syntax and Password Hashes\",\"slug\":\"expect-syntax-and-password-hashes\",\"link\":\"#expect-syntax-and-password-hashes\",\"children\":[]},{\"level\":3,\"title\":\"Using Multiple Resources For One Test\",\"slug\":\"using-multiple-resources-for-one-test\",\"link\":\"#using-multiple-resources-for-one-test\",\"children\":[]}]}],\"readingTime\":{\"minutes\":6.25,\"words\":1874},\"filePathRelative\":\"courses/beginner/07.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/07.html.vue b/.vuepress/.temp/pages/courses/beginner/07.html.vue deleted file mode 100644 index 0b7e139b6..000000000 --- a/.vuepress/.temp/pages/courses/beginner/07.html.vue +++ /dev/null @@ -1,215 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/08.html.js b/.vuepress/.temp/pages/courses/beginner/08.html.js deleted file mode 100644 index 6edc74002..000000000 --- a/.vuepress/.temp/pages/courses/beginner/08.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2e24ec84\",\"path\":\"/courses/beginner/08.html\",\"title\":\"8. Generating InSpec Results\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":8,\"next\":\"09.md\",\"title\":\"8. Generating InSpec Results\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Generating InSpec Results Try it out! InSpec allows you to send your test results to one or more reporters, or output formats. The following command outputs results to both the ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/08.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"8. Generating InSpec Results\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Generating InSpec Results Try it out! InSpec allows you to send your test results to one or more reporters, or output formats. The following command outputs results to both the ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"8. Generating InSpec Results\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Generating InSpec Results\",\"slug\":\"generating-inspec-results\",\"link\":\"#generating-inspec-results\",\"children\":[{\"level\":3,\"title\":\"Try it out!\",\"slug\":\"try-it-out\",\"link\":\"#try-it-out\",\"children\":[]},{\"level\":3,\"title\":\"Generating good report filenames in practice\",\"slug\":\"generating-good-report-filenames-in-practice\",\"link\":\"#generating-good-report-filenames-in-practice\",\"children\":[]},{\"level\":3,\"title\":\"Additional Reporter Examples for Reference\",\"slug\":\"additional-reporter-examples-for-reference\",\"link\":\"#additional-reporter-examples-for-reference\",\"children\":[]},{\"level\":3,\"title\":\"Using a configuration file instead of the --reporter flag\",\"slug\":\"using-a-configuration-file-instead-of-the-reporter-flag\",\"link\":\"#using-a-configuration-file-instead-of-the-reporter-flag\",\"children\":[]},{\"level\":3,\"title\":\"Supported Reporters\",\"slug\":\"supported-reporters\",\"link\":\"#supported-reporters\",\"children\":[]},{\"level\":3,\"title\":\"Running Profiles from Network Locations\",\"slug\":\"running-profiles-from-network-locations\",\"link\":\"#running-profiles-from-network-locations\",\"children\":[]},{\"level\":3,\"title\":\"Practice Running InSpec Using a Profile From GitHub\",\"slug\":\"practice-running-inspec-using-a-profile-from-github\",\"link\":\"#practice-running-inspec-using-a-profile-from-github\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.88,\"words\":863},\"filePathRelative\":\"courses/beginner/08.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/08.html.vue b/.vuepress/.temp/pages/courses/beginner/08.html.vue deleted file mode 100644 index 9786adc63..000000000 --- a/.vuepress/.temp/pages/courses/beginner/08.html.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/09.html.js b/.vuepress/.temp/pages/courses/beginner/09.html.js deleted file mode 100644 index 11450545f..000000000 --- a/.vuepress/.temp/pages/courses/beginner/09.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2fd9c523\",\"path\":\"/courses/beginner/09.html\",\"title\":\"9. Viewing and Analyzing Results\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":9,\"next\":\"10.md\",\"title\":\"9. Viewing and Analyzing Results\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Viewing and Analyzing Results We discussed using reporters in the last section to capture InSpec's output in convenient JSON files. JSON reports like these are a transport mediu...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/09.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"9. Viewing and Analyzing Results\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Viewing and Analyzing Results We discussed using reporters in the last section to capture InSpec's output in convenient JSON files. JSON reports like these are a transport mediu...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"9. Viewing and Analyzing Results\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Viewing and Analyzing Results\",\"slug\":\"viewing-and-analyzing-results\",\"link\":\"#viewing-and-analyzing-results\",\"children\":[{\"level\":3,\"title\":\"Heimdall\",\"slug\":\"heimdall\",\"link\":\"#heimdall\",\"children\":[]},{\"level\":3,\"title\":\"Heimdall Lite\",\"slug\":\"heimdall-lite\",\"link\":\"#heimdall-lite\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.3,\"words\":390},\"filePathRelative\":\"courses/beginner/09.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/09.html.vue b/.vuepress/.temp/pages/courses/beginner/09.html.vue deleted file mode 100644 index 4a220f50b..000000000 --- a/.vuepress/.temp/pages/courses/beginner/09.html.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/10.html.js b/.vuepress/.temp/pages/courses/beginner/10.html.js deleted file mode 100644 index d09c0cd1a..000000000 --- a/.vuepress/.temp/pages/courses/beginner/10.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-556462cd\",\"path\":\"/courses/beginner/10.html\",\"title\":\"10. Profile Dependencies (Overlays)\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":10,\"next\":\"11.md\",\"title\":\"10. Profile Dependencies (Overlays)\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Profile Dependencies (Overlays) In addition to its own controls, an InSpec profile can leverage controls from one or more other InSpec profiles. When a profile depends on contro...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/10.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"10. Profile Dependencies (Overlays)\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Profile Dependencies (Overlays) In addition to its own controls, an InSpec profile can leverage controls from one or more other InSpec profiles. When a profile depends on contro...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"10. Profile Dependencies (Overlays)\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Profile Dependencies (Overlays)\",\"slug\":\"profile-dependencies-overlays\",\"link\":\"#profile-dependencies-overlays\",\"children\":[{\"level\":3,\"title\":\"Creating the Overlay\",\"slug\":\"creating-the-overlay\",\"link\":\"#creating-the-overlay\",\"children\":[]},{\"level\":3,\"title\":\"Defining the Profile Dependency\",\"slug\":\"defining-the-profile-dependency\",\"link\":\"#defining-the-profile-dependency\",\"children\":[]},{\"level\":3,\"title\":\"Including All Controls\",\"slug\":\"including-all-controls\",\"link\":\"#including-all-controls\",\"children\":[]},{\"level\":3,\"title\":\"Skipping a Control\",\"slug\":\"skipping-a-control\",\"link\":\"#skipping-a-control\",\"children\":[]},{\"level\":3,\"title\":\"Selectively Including Controls\",\"slug\":\"selectively-including-controls\",\"link\":\"#selectively-including-controls\",\"children\":[]},{\"level\":3,\"title\":\"Modifying a Control\",\"slug\":\"modifying-a-control\",\"link\":\"#modifying-a-control\",\"children\":[]},{\"level\":3,\"title\":\"Additional Examples\",\"slug\":\"additional-examples\",\"link\":\"#additional-examples\",\"children\":[]}]}],\"readingTime\":{\"minutes\":4.04,\"words\":1211},\"filePathRelative\":\"courses/beginner/10.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/10.html.vue b/.vuepress/.temp/pages/courses/beginner/10.html.vue deleted file mode 100644 index d59a6294a..000000000 --- a/.vuepress/.temp/pages/courses/beginner/10.html.vue +++ /dev/null @@ -1,277 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/11.html.js b/.vuepress/.temp/pages/courses/beginner/11.html.js deleted file mode 100644 index 57635b7da..000000000 --- a/.vuepress/.temp/pages/courses/beginner/11.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-57193b6c\",\"path\":\"/courses/beginner/11.html\",\"title\":\"11. From STIG to Profile\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":11,\"next\":\"12.md\",\"title\":\"11. From STIG to Profile\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"From STIG to Profile You have seen in some of our examples in this class that a robust profile's controls will include a large number of metadata tags: InSpec control with many ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/11.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"11. From STIG to Profile\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"From STIG to Profile You have seen in some of our examples in this class that a robust profile's controls will include a large number of metadata tags: InSpec control with many ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"11. From STIG to Profile\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"From STIG to Profile\",\"slug\":\"from-stig-to-profile\",\"link\":\"#from-stig-to-profile\",\"children\":[{\"level\":3,\"title\":\"How to Get the Pre-made Profile\",\"slug\":\"how-to-get-the-pre-made-profile\",\"link\":\"#how-to-get-the-pre-made-profile\",\"children\":[]},{\"level\":3,\"title\":\"Example 'Stub' Control SV-230502\",\"slug\":\"example-stub-control-sv-230502\",\"link\":\"#example-stub-control-sv-230502\",\"children\":[]}]}],\"readingTime\":{\"minutes\":10.71,\"words\":3213},\"filePathRelative\":\"courses/beginner/11.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/11.html.vue b/.vuepress/.temp/pages/courses/beginner/11.html.vue deleted file mode 100644 index a2ed7190b..000000000 --- a/.vuepress/.temp/pages/courses/beginner/11.html.vue +++ /dev/null @@ -1,632 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/12.html.js b/.vuepress/.temp/pages/courses/beginner/12.html.js deleted file mode 100644 index 0b90708fd..000000000 --- a/.vuepress/.temp/pages/courses/beginner/12.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-58ce140b\",\"path\":\"/courses/beginner/12.html\",\"title\":\"12. Put it in Practice!\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":12,\"next\":\"13.md\",\"title\":\"12. Put it in Practice!\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"Getting Started on the RHEL8 Baseline Let's practice writing a few 'real' controls using a security guidance document. The Steps to write an InSpec Control 1. Read the Control -...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/12.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"12. Put it in Practice!\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Getting Started on the RHEL8 Baseline Let's practice writing a few 'real' controls using a security guidance document. The Steps to write an InSpec Control 1. Read the Control -...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"12. Put it in Practice!\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Getting Started on the RHEL8 Baseline\",\"slug\":\"getting-started-on-the-rhel8-baseline\",\"link\":\"#getting-started-on-the-rhel8-baseline\",\"children\":[{\"level\":3,\"title\":\"Example Control Using login_defs Resource:\",\"slug\":\"example-control-using-login-defs-resource\",\"link\":\"#example-control-using-login-defs-resource\",\"children\":[]},{\"level\":3,\"title\":\"Controls We Will Demonstrate\",\"slug\":\"controls-we-will-demonstrate\",\"link\":\"#controls-we-will-demonstrate\",\"children\":[]},{\"level\":3,\"title\":\"Suggested Level 1 Controls\",\"slug\":\"suggested-level-1-controls\",\"link\":\"#suggested-level-1-controls\",\"children\":[]},{\"level\":3,\"title\":\"Suggested Level 2 Controls\",\"slug\":\"suggested-level-2-controls\",\"link\":\"#suggested-level-2-controls\",\"children\":[]},{\"level\":3,\"title\":\"Suggested InSpec Resources to Review\",\"slug\":\"suggested-inspec-resources-to-review\",\"link\":\"#suggested-inspec-resources-to-review\",\"children\":[]}]},{\"level\":2,\"title\":\"Completed RHEL8 Profile for Reference\",\"slug\":\"completed-rhel8-profile-for-reference\",\"link\":\"#completed-rhel8-profile-for-reference\",\"children\":[]}],\"readingTime\":{\"minutes\":3.69,\"words\":1107},\"filePathRelative\":\"courses/beginner/12.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/12.html.vue b/.vuepress/.temp/pages/courses/beginner/12.html.vue deleted file mode 100644 index 881be9268..000000000 --- a/.vuepress/.temp/pages/courses/beginner/12.html.vue +++ /dev/null @@ -1,231 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/13.html.js b/.vuepress/.temp/pages/courses/beginner/13.html.js deleted file mode 100644 index f0798aa8e..000000000 --- a/.vuepress/.temp/pages/courses/beginner/13.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-5a82ecaa\",\"path\":\"/courses/beginner/13.html\",\"title\":\"13. Next Steps\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":13,\"title\":\"13. Next Steps\",\"author\":\"Emily\",\"headerDepth\":3,\"description\":\"13. Next Steps 13.1 Take the Class Survey Take our 9 question survey (https://forms.office.com/g/iLBz5P6WrL) to give feedback to fuel class improvement. 13.2 Take the Advanced S...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/13.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"13. Next Steps\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"13. Next Steps 13.1 Take the Class Survey Take our 9 question survey (https://forms.office.com/g/iLBz5P6WrL) to give feedback to fuel class improvement. 13.2 Take the Advanced S...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"13. Next Steps\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"13. Next Steps\",\"slug\":\"_13-next-steps\",\"link\":\"#_13-next-steps\",\"children\":[{\"level\":3,\"title\":\"13.1 Take the Class Survey\",\"slug\":\"_13-1-take-the-class-survey\",\"link\":\"#_13-1-take-the-class-survey\",\"children\":[]},{\"level\":3,\"title\":\"13.2 Take the Advanced Security Automation Developer Class\",\"slug\":\"_13-2-take-the-advanced-security-automation-developer-class\",\"link\":\"#_13-2-take-the-advanced-security-automation-developer-class\",\"children\":[]},{\"level\":3,\"title\":\"13.3 Check Out the Rest of MITRE SAF(c)'s Content\",\"slug\":\"_13-3-check-out-the-rest-of-mitre-saf-c-s-content\",\"link\":\"#_13-3-check-out-the-rest-of-mitre-saf-c-s-content\",\"children\":[]},{\"level\":3,\"title\":\"13.4 Contact Us\",\"slug\":\"_13-4-contact-us\",\"link\":\"#_13-4-contact-us\",\"children\":[]}]}],\"readingTime\":{\"minutes\":0.87,\"words\":261},\"filePathRelative\":\"courses/beginner/13.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/13.html.vue b/.vuepress/.temp/pages/courses/beginner/13.html.vue deleted file mode 100644 index c0dd8fd47..000000000 --- a/.vuepress/.temp/pages/courses/beginner/13.html.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/beginner/index.html.js b/.vuepress/.temp/pages/courses/beginner/index.html.js deleted file mode 100644 index a9bc768e6..000000000 --- a/.vuepress/.temp/pages/courses/beginner/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2c0932a6\",\"path\":\"/courses/beginner/\",\"title\":\"Beginner Security Automation Developer Class\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":1,\"next\":\"02.md\",\"title\":\"Beginner Security Automation Developer Class\",\"shortTitle\":\"Beginner Profile Development\",\"author\":\"Aaron Lippold\",\"description\":\"Class Objectives The purpose of this class is to give you the fundamentals of how to develop security validation content, particularly through hands-on examples developing InSpe...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/beginner/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Beginner Security Automation Developer Class\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Class Objectives The purpose of this class is to give you the fundamentals of how to develop security validation content, particularly through hands-on examples developing InSpe...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Beginner Security Automation Developer Class\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Class Objectives\",\"slug\":\"class-objectives\",\"link\":\"#class-objectives\",\"children\":[{\"level\":3,\"title\":\"Objectives:\",\"slug\":\"objectives\",\"link\":\"#objectives\",\"children\":[]}]},{\"level\":2,\"title\":\"InSpec 101\",\"slug\":\"inspec-101\",\"link\":\"#inspec-101\",\"children\":[]},{\"level\":2,\"title\":\"The Road to Security Automation\",\"slug\":\"the-road-to-security-automation\",\"link\":\"#the-road-to-security-automation\",\"children\":[]}],\"readingTime\":{\"minutes\":1.31,\"words\":392},\"filePathRelative\":\"courses/beginner/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/beginner/index.html.vue b/.vuepress/.temp/pages/courses/beginner/index.html.vue deleted file mode 100644 index f7929091c..000000000 --- a/.vuepress/.temp/pages/courses/beginner/index.html.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/02.html.js b/.vuepress/.temp/pages/courses/guidance/02.html.js deleted file mode 100644 index 12aa7295a..000000000 --- a/.vuepress/.temp/pages/courses/guidance/02.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-709259d0\",\"path\":\"/courses/guidance/02.html\",\"title\":\"2. Security Guidance\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":2,\"next\":\"03.md\",\"title\":\"2. Security Guidance\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"2.1 Security Guidance Before we go further, let's discuss what we mean by \\\"security guidance\\\" and some of its characteristics that matter to us as security (and automation!) pra...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/02.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"2. Security Guidance\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"2.1 Security Guidance Before we go further, let's discuss what we mean by \\\"security guidance\\\" and some of its characteristics that matter to us as security (and automation!) pra...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"2. Security Guidance\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"2.1 Security Guidance\",\"slug\":\"_2-1-security-guidance\",\"link\":\"#_2-1-security-guidance\",\"children\":[{\"level\":3,\"title\":\"2.1.1 Organizational Policy vs. Baselines\",\"slug\":\"_2-1-1-organizational-policy-vs-baselines\",\"link\":\"#_2-1-1-organizational-policy-vs-baselines\",\"children\":[]}]},{\"level\":2,\"title\":\"2.2 Finding Security Guidance Documentation Baselines\",\"slug\":\"_2-2-finding-security-guidance-documentation-baselines\",\"link\":\"#_2-2-finding-security-guidance-documentation-baselines\",\"children\":[{\"level\":3,\"title\":\"2.2.1 What Do I Do If There Isn't Already Published Guidance Documentation Available For It?\",\"slug\":\"_2-2-1-what-do-i-do-if-there-isn-t-already-published-guidance-documentation-available-for-it\",\"link\":\"#_2-2-1-what-do-i-do-if-there-isn-t-already-published-guidance-documentation-available-for-it\",\"children\":[]},{\"level\":3,\"title\":\"2.2.2 What If There Are No Reasonably Close Baselines?\",\"slug\":\"_2-2-2-what-if-there-are-no-reasonably-close-baselines\",\"link\":\"#_2-2-2-what-if-there-are-no-reasonably-close-baselines\",\"children\":[]}]},{\"level\":2,\"title\":\"2.3 Wait, Aren't These Classes About Automation? Why Are We Writing Documentation?\",\"slug\":\"_2-3-wait-aren-t-these-classes-about-automation-why-are-we-writing-documentation\",\"link\":\"#_2-3-wait-aren-t-these-classes-about-automation-why-are-we-writing-documentation\",\"children\":[]}],\"readingTime\":{\"minutes\":3.37,\"words\":1010},\"filePathRelative\":\"courses/guidance/02.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/02.html.vue b/.vuepress/.temp/pages/courses/guidance/02.html.vue deleted file mode 100644 index 8728182b7..000000000 --- a/.vuepress/.temp/pages/courses/guidance/02.html.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/03.html.js b/.vuepress/.temp/pages/courses/guidance/03.html.js deleted file mode 100644 index 70d7dca8b..000000000 --- a/.vuepress/.temp/pages/courses/guidance/03.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7247326f\",\"path\":\"/courses/guidance/03.html\",\"title\":\"3. Security Technical Implementation Guides\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":3,\"next\":\"04.md\",\"title\":\"3. Security Technical Implementation Guides\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"3.1 Security Technical Implementation Guides A Security Technical Implementation Guide (STIG) is a set of requirements imposed by the US Department of Defense and implementation...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/03.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"3. Security Technical Implementation Guides\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"3.1 Security Technical Implementation Guides A Security Technical Implementation Guide (STIG) is a set of requirements imposed by the US Department of Defense and implementation...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"3. Security Technical Implementation Guides\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"3.1 Security Technical Implementation Guides\",\"slug\":\"_3-1-security-technical-implementation-guides\",\"link\":\"#_3-1-security-technical-implementation-guides\",\"children\":[]},{\"level\":2,\"title\":\"3.2 Security Requirements Guides\",\"slug\":\"_3-2-security-requirements-guides\",\"link\":\"#_3-2-security-requirements-guides\",\"children\":[{\"level\":3,\"title\":\"3.2.1 SRGs and STIGs - Example\",\"slug\":\"_3-2-1-srgs-and-stigs-example\",\"link\":\"#_3-2-1-srgs-and-stigs-example\",\"children\":[]}]},{\"level\":2,\"title\":\"3.3 Where Do All The Requirements Come From, Anyway?\",\"slug\":\"_3-3-where-do-all-the-requirements-come-from-anyway\",\"link\":\"#_3-3-where-do-all-the-requirements-come-from-anyway\",\"children\":[{\"level\":3,\"title\":\"3.3.1 Now For The Good News\",\"slug\":\"_3-3-1-now-for-the-good-news\",\"link\":\"#_3-3-1-now-for-the-good-news\",\"children\":[]}]}],\"readingTime\":{\"minutes\":3.3,\"words\":990},\"filePathRelative\":\"courses/guidance/03.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/03.html.vue b/.vuepress/.temp/pages/courses/guidance/03.html.vue deleted file mode 100644 index f5fb0d071..000000000 --- a/.vuepress/.temp/pages/courses/guidance/03.html.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/04.html.js b/.vuepress/.temp/pages/courses/guidance/04.html.js deleted file mode 100644 index 0ff984b95..000000000 --- a/.vuepress/.temp/pages/courses/guidance/04.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-73fc0b0e\",\"path\":\"/courses/guidance/04.html\",\"title\":\"4. Anatomy of a STIG\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":4,\"next\":\"05.md\",\"title\":\"4. Anatomy of a STIG\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"4.1 STIG Template Fields Each STIG is a set of requirements and implementation guidance on how to meet them (which we will abbreviate as just a \\\"STIG requirement\\\"). Let's dive i...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/04.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"4. Anatomy of a STIG\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"4.1 STIG Template Fields Each STIG is a set of requirements and implementation guidance on how to meet them (which we will abbreviate as just a \\\"STIG requirement\\\"). Let's dive i...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"4. Anatomy of a STIG\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"4.1 STIG Template Fields\",\"slug\":\"_4-1-stig-template-fields\",\"link\":\"#_4-1-stig-template-fields\",\"children\":[]},{\"level\":2,\"title\":\"4.2 STIG-Ready Content\",\"slug\":\"_4-2-stig-ready-content\",\"link\":\"#_4-2-stig-ready-content\",\"children\":[{\"level\":3,\"title\":\"4.2.1 When Should I Get My Content Formally Published?\",\"slug\":\"_4-2-1-when-should-i-get-my-content-formally-published\",\"link\":\"#_4-2-1-when-should-i-get-my-content-formally-published\",\"children\":[]}]},{\"level\":2,\"title\":\"4.3 Challenges with the Traditional Process for STIG Authorship\",\"slug\":\"_4-3-challenges-with-the-traditional-process-for-stig-authorship\",\"link\":\"#_4-3-challenges-with-the-traditional-process-for-stig-authorship\",\"children\":[{\"level\":3,\"title\":\"4.3.1 So. . . Why Bother?\",\"slug\":\"_4-3-1-so-why-bother\",\"link\":\"#_4-3-1-so-why-bother\",\"children\":[]}]}],\"readingTime\":{\"minutes\":4.28,\"words\":1285},\"filePathRelative\":\"courses/guidance/04.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/04.html.vue b/.vuepress/.temp/pages/courses/guidance/04.html.vue deleted file mode 100644 index 8dbcf0290..000000000 --- a/.vuepress/.temp/pages/courses/guidance/04.html.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/05.html.js b/.vuepress/.temp/pages/courses/guidance/05.html.js deleted file mode 100644 index 667a6f35c..000000000 --- a/.vuepress/.temp/pages/courses/guidance/05.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-75b0e3ad\",\"path\":\"/courses/guidance/05.html\",\"title\":\"5. Using Vulcan\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":5,\"next\":\"06.md\",\"title\":\"5. Using Vulcan\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"5.1 Using Vulcan Let's walk though the process for building STIG-ready content from the beginning using the Vulcan application. We will use our demonstration instance of Vulcan ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/05.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"5. Using Vulcan\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"5.1 Using Vulcan Let's walk though the process for building STIG-ready content from the beginning using the Vulcan application. We will use our demonstration instance of Vulcan ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"5. Using Vulcan\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"5.1 Using Vulcan\",\"slug\":\"_5-1-using-vulcan\",\"link\":\"#_5-1-using-vulcan\",\"children\":[{\"level\":3,\"title\":\"5.1.1 Our Use Case\",\"slug\":\"_5-1-1-our-use-case\",\"link\":\"#_5-1-1-our-use-case\",\"children\":[]},{\"level\":3,\"title\":\"5.1.2 Logging In\",\"slug\":\"_5-1-2-logging-in\",\"link\":\"#_5-1-2-logging-in\",\"children\":[]},{\"level\":3,\"title\":\"5.1.3 Starting a New Project\",\"slug\":\"_5-1-3-starting-a-new-project\",\"link\":\"#_5-1-3-starting-a-new-project\",\"children\":[]},{\"level\":3,\"title\":\"5.1.4 Role-Based Access Control\",\"slug\":\"_5-1-4-role-based-access-control\",\"link\":\"#_5-1-4-role-based-access-control\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.12,\"words\":635},\"filePathRelative\":\"courses/guidance/05.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/05.html.vue b/.vuepress/.temp/pages/courses/guidance/05.html.vue deleted file mode 100644 index 2341233e5..000000000 --- a/.vuepress/.temp/pages/courses/guidance/05.html.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/06.html.js b/.vuepress/.temp/pages/courses/guidance/06.html.js deleted file mode 100644 index 56d369120..000000000 --- a/.vuepress/.temp/pages/courses/guidance/06.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7765bc4c\",\"path\":\"/courses/guidance/06.html\",\"title\":\"6. Components Of a Vulcan Project\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":6,\"next\":\"07.md\",\"title\":\"6. Components Of a Vulcan Project\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"6.1 Components We have our project created and have allowed access to everyone who needs it. Now let's create ourselves a Component. 6.1.1 Consider Your Component's Requirements...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/06.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"6. Components Of a Vulcan Project\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"6.1 Components We have our project created and have allowed access to everyone who needs it. Now let's create ourselves a Component. 6.1.1 Consider Your Component's Requirements...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"6. Components Of a Vulcan Project\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"6.1 Components\",\"slug\":\"_6-1-components\",\"link\":\"#_6-1-components\",\"children\":[{\"level\":3,\"title\":\"6.1.1 Consider Your Component's Requirements\",\"slug\":\"_6-1-1-consider-your-component-s-requirements\",\"link\":\"#_6-1-1-consider-your-component-s-requirements\",\"children\":[]},{\"level\":3,\"title\":\"6.1.2 Choosing a Foundation\",\"slug\":\"_6-1-2-choosing-a-foundation\",\"link\":\"#_6-1-2-choosing-a-foundation\",\"children\":[]}]},{\"level\":2,\"title\":\"6.2 Creating a Component for Your Project\",\"slug\":\"_6-2-creating-a-component-for-your-project\",\"link\":\"#_6-2-creating-a-component-for-your-project\",\"children\":[]},{\"level\":2,\"title\":\"6.3 Examining the Component\",\"slug\":\"_6-3-examining-the-component\",\"link\":\"#_6-3-examining-the-component\",\"children\":[{\"level\":3,\"title\":\"6.3.1 Layout of the Component View\",\"slug\":\"_6-3-1-layout-of-the-component-view\",\"link\":\"#_6-3-1-layout-of-the-component-view\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.31,\"words\":694},\"filePathRelative\":\"courses/guidance/06.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/06.html.vue b/.vuepress/.temp/pages/courses/guidance/06.html.vue deleted file mode 100644 index 47e48fd22..000000000 --- a/.vuepress/.temp/pages/courses/guidance/06.html.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/07.html.js b/.vuepress/.temp/pages/courses/guidance/07.html.js deleted file mode 100644 index 87fbfcb27..000000000 --- a/.vuepress/.temp/pages/courses/guidance/07.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-791a94eb\",\"path\":\"/courses/guidance/07.html\",\"title\":\"7. Editing Components\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":7,\"next\":\"08.md\",\"title\":\"7. Editing Components\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"7.1 Editing Components For your Component, you'll need to decide what requirements are appliable to your specific Component (hint: not all of them will be). Of the applicable re...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/07.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"7. Editing Components\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"7.1 Editing Components For your Component, you'll need to decide what requirements are appliable to your specific Component (hint: not all of them will be). Of the applicable re...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:image\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"meta\",{\"name\":\"twitter:image:alt\",\"content\":\"7. Editing Components\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"7. Editing Components\\\",\\\"image\\\":[\\\"https://vuepress-theme-hope-docs-demo.netlify.app/\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"7.1 Editing Components\",\"slug\":\"_7-1-editing-components\",\"link\":\"#_7-1-editing-components\",\"children\":[]},{\"level\":2,\"title\":\"7.2 The Editing Window\",\"slug\":\"_7-2-the-editing-window\",\"link\":\"#_7-2-the-editing-window\",\"children\":[]},{\"level\":2,\"title\":\"7.3 Requirement Statuses\",\"slug\":\"_7-3-requirement-statuses\",\"link\":\"#_7-3-requirement-statuses\",\"children\":[{\"level\":3,\"title\":\"7.3.1 Picking a Status\",\"slug\":\"_7-3-1-picking-a-status\",\"link\":\"#_7-3-1-picking-a-status\",\"children\":[]},{\"level\":3,\"title\":\"7.3.2 Our First Requirement Status\",\"slug\":\"_7-3-2-our-first-requirement-status\",\"link\":\"#_7-3-2-our-first-requirement-status\",\"children\":[]},{\"level\":3,\"title\":\"7.3.3 Another Requirement Status\",\"slug\":\"_7-3-3-another-requirement-status\",\"link\":\"#_7-3-3-another-requirement-status\",\"children\":[]}]},{\"level\":2,\"title\":\"7.4 Mitigations, Artifacts and Justifications\",\"slug\":\"_7-4-mitigations-artifacts-and-justifications\",\"link\":\"#_7-4-mitigations-artifacts-and-justifications\",\"children\":[{\"level\":3,\"title\":\"7.4.1 Mitigation\",\"slug\":\"_7-4-1-mitigation\",\"link\":\"#_7-4-1-mitigation\",\"children\":[]},{\"level\":3,\"title\":\"7.4.2 Artifacts\",\"slug\":\"_7-4-2-artifacts\",\"link\":\"#_7-4-2-artifacts\",\"children\":[]},{\"level\":3,\"title\":\"7.4.3 Status Justification\",\"slug\":\"_7-4-3-status-justification\",\"link\":\"#_7-4-3-status-justification\",\"children\":[]},{\"level\":3,\"title\":\"7.4.4 Completing Our Requirement\",\"slug\":\"_7-4-4-completing-our-requirement\",\"link\":\"#_7-4-4-completing-our-requirement\",\"children\":[]}]},{\"level\":2,\"title\":\"7.5 Revision History\",\"slug\":\"_7-5-revision-history\",\"link\":\"#_7-5-revision-history\",\"children\":[]}],\"readingTime\":{\"minutes\":7.33,\"words\":2199},\"filePathRelative\":\"courses/guidance/07.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/07.html.vue b/.vuepress/.temp/pages/courses/guidance/07.html.vue deleted file mode 100644 index 3f85f9d02..000000000 --- a/.vuepress/.temp/pages/courses/guidance/07.html.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/08.html.js b/.vuepress/.temp/pages/courses/guidance/08.html.js deleted file mode 100644 index 1bf45c0ce..000000000 --- a/.vuepress/.temp/pages/courses/guidance/08.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7acf6d8a\",\"path\":\"/courses/guidance/08.html\",\"title\":\"8. Check and Fix\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":8,\"next\":\"09.md\",\"title\":\"8. Check and Fix\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"8.1 Check and Fix Let's go back to our requirement for earlier that we said was \\\"Applicable - Configurable.\\\" It's time to fill it out completely. The Check and Fix fields are th...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/08.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"8. Check and Fix\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"8.1 Check and Fix Let's go back to our requirement for earlier that we said was \\\"Applicable - Configurable.\\\" It's time to fill it out completely. The Check and Fix fields are th...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:image\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"meta\",{\"name\":\"twitter:image:alt\",\"content\":\"8. Check and Fix\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"8. Check and Fix\\\",\\\"image\\\":[\\\"https://vuepress-theme-hope-docs-demo.netlify.app/\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"8.1 Check and Fix\",\"slug\":\"_8-1-check-and-fix\",\"link\":\"#_8-1-check-and-fix\",\"children\":[]},{\"level\":2,\"title\":\"8.2 Check\",\"slug\":\"_8-2-check\",\"link\":\"#_8-2-check\",\"children\":[{\"level\":3,\"title\":\"8.2.1 Check Writing Style\",\"slug\":\"_8-2-1-check-writing-style\",\"link\":\"#_8-2-1-check-writing-style\",\"children\":[]}]},{\"level\":2,\"title\":\"8.3 Fix\",\"slug\":\"_8-3-fix\",\"link\":\"#_8-3-fix\",\"children\":[]},{\"level\":2,\"title\":\"8.3.1 Fix Writing Style\",\"slug\":\"_8-3-1-fix-writing-style\",\"link\":\"#_8-3-1-fix-writing-style\",\"children\":[]},{\"level\":2,\"title\":\"8.4 Completing Our Requirement\",\"slug\":\"_8-4-completing-our-requirement\",\"link\":\"#_8-4-completing-our-requirement\",\"children\":[{\"level\":3,\"title\":\"8.4.1 Using Other STIGs as Reference\",\"slug\":\"_8-4-1-using-other-stigs-as-reference\",\"link\":\"#_8-4-1-using-other-stigs-as-reference\",\"children\":[]}]}],\"readingTime\":{\"minutes\":4.35,\"words\":1306},\"filePathRelative\":\"courses/guidance/08.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/08.html.vue b/.vuepress/.temp/pages/courses/guidance/08.html.vue deleted file mode 100644 index 2fe218d05..000000000 --- a/.vuepress/.temp/pages/courses/guidance/08.html.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/09.html.js b/.vuepress/.temp/pages/courses/guidance/09.html.js deleted file mode 100644 index 02ab99a9d..000000000 --- a/.vuepress/.temp/pages/courses/guidance/09.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7c844629\",\"path\":\"/courses/guidance/09.html\",\"title\":\"9. Automated InSpec Testing\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":9,\"next\":\"10.md\",\"title\":\"9. Automated InSpec Testing\",\"author\":\"Sumaa Sayed\",\"headerDepth\":3,\"description\":\"9.1 Automated Validation Tests Now that we have written up some Check and Fix text, it's time to use one of Vulcan's other features -- the InSpec code pane. We've already used V...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/09.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"9. Automated InSpec Testing\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"9.1 Automated Validation Tests Now that we have written up some Check and Fix text, it's time to use one of Vulcan's other features -- the InSpec code pane. We've already used V...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:image\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"meta\",{\"name\":\"twitter:image:alt\",\"content\":\"9. Automated InSpec Testing\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Sumaa Sayed\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"9. Automated InSpec Testing\\\",\\\"image\\\":[\\\"https://vuepress-theme-hope-docs-demo.netlify.app/\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Sumaa Sayed\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"9.1 Automated Validation Tests\",\"slug\":\"_9-1-automated-validation-tests\",\"link\":\"#_9-1-automated-validation-tests\",\"children\":[{\"level\":3,\"title\":\"9.1.1 The InSpec Control Body\",\"slug\":\"_9-1-1-the-inspec-control-body\",\"link\":\"#_9-1-1-the-inspec-control-body\",\"children\":[]},{\"level\":3,\"title\":\"9.1.2 Why am I writing test code inside Vulcan?\",\"slug\":\"_9-1-2-why-am-i-writing-test-code-inside-vulcan\",\"link\":\"#_9-1-2-why-am-i-writing-test-code-inside-vulcan\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.21,\"words\":663},\"filePathRelative\":\"courses/guidance/09.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/09.html.vue b/.vuepress/.temp/pages/courses/guidance/09.html.vue deleted file mode 100644 index 9dd99cd66..000000000 --- a/.vuepress/.temp/pages/courses/guidance/09.html.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/10.html.js b/.vuepress/.temp/pages/courses/guidance/10.html.js deleted file mode 100644 index b8ab184f5..000000000 --- a/.vuepress/.temp/pages/courses/guidance/10.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-bbe2385a\",\"path\":\"/courses/guidance/10.html\",\"title\":\"10. Peer Review\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":10,\"next\":\"11.md\",\"title\":\"10. Peer Review\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"10.1 Peer Review With that, we've done two full requirements -- one \\\"Applicable - Configurable\\\" and one \\\"Applicable - Inherently Meets.\\\" There are only 189 or so more requiremen...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/10.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"10. Peer Review\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"10.1 Peer Review With that, we've done two full requirements -- one \\\"Applicable - Configurable\\\" and one \\\"Applicable - Inherently Meets.\\\" There are only 189 or so more requiremen...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:image\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"meta\",{\"name\":\"twitter:image:alt\",\"content\":\"10. Peer Review\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"10. Peer Review\\\",\\\"image\\\":[\\\"https://vuepress-theme-hope-docs-demo.netlify.app/\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"10.1 Peer Review\",\"slug\":\"_10-1-peer-review\",\"link\":\"#_10-1-peer-review\",\"children\":[]},{\"level\":2,\"title\":\"10.2 Marking Requirements For Review\",\"slug\":\"_10-2-marking-requirements-for-review\",\"link\":\"#_10-2-marking-requirements-for-review\",\"children\":[]},{\"level\":2,\"title\":\"10.3 Approving Requirements\",\"slug\":\"_10-3-approving-requirements\",\"link\":\"#_10-3-approving-requirements\",\"children\":[]}],\"readingTime\":{\"minutes\":1.11,\"words\":333},\"filePathRelative\":\"courses/guidance/10.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/10.html.vue b/.vuepress/.temp/pages/courses/guidance/10.html.vue deleted file mode 100644 index 7b9f901b0..000000000 --- a/.vuepress/.temp/pages/courses/guidance/10.html.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/11.html.js b/.vuepress/.temp/pages/courses/guidance/11.html.js deleted file mode 100644 index a8a8df314..000000000 --- a/.vuepress/.temp/pages/courses/guidance/11.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-b878871c\",\"path\":\"/courses/guidance/11.html\",\"title\":\"11. Exporting Your Content\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":11,\"next\":\"12.md\",\"title\":\"11. Exporting Your Content\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"11.1 Exporting Your Content At this point, we have tailored two requirements from the original SRG into STIG-ready content, and discussed how to peer review them. Let's discuss ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/11.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"11. Exporting Your Content\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"11.1 Exporting Your Content At this point, we have tailored two requirements from the original SRG into STIG-ready content, and discussed how to peer review them. Let's discuss ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:image\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"meta\",{\"name\":\"twitter:image:alt\",\"content\":\"11. Exporting Your Content\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"11. Exporting Your Content\\\",\\\"image\\\":[\\\"https://vuepress-theme-hope-docs-demo.netlify.app/\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"11.1 Exporting Your Content\",\"slug\":\"_11-1-exporting-your-content\",\"link\":\"#_11-1-exporting-your-content\",\"children\":[]},{\"level\":2,\"title\":\"11.2 Exporting the Guidance Document\",\"slug\":\"_11-2-exporting-the-guidance-document\",\"link\":\"#_11-2-exporting-the-guidance-document\",\"children\":[{\"level\":3,\"title\":\"11.2.1 Notes on Releasing\",\"slug\":\"_11-2-1-notes-on-releasing\",\"link\":\"#_11-2-1-notes-on-releasing\",\"children\":[]},{\"level\":3,\"title\":\"11.2.2 Notes on Exporting\",\"slug\":\"_11-2-2-notes-on-exporting\",\"link\":\"#_11-2-2-notes-on-exporting\",\"children\":[]}]},{\"level\":2,\"title\":\"11.3 Diff Viewer\",\"slug\":\"_11-3-diff-viewer\",\"link\":\"#_11-3-diff-viewer\",\"children\":[{\"level\":3,\"title\":\"11.3.1 Creating a Different Component\",\"slug\":\"_11-3-1-creating-a-different-component\",\"link\":\"#_11-3-1-creating-a-different-component\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.78,\"words\":834},\"filePathRelative\":\"courses/guidance/11.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/11.html.vue b/.vuepress/.temp/pages/courses/guidance/11.html.vue deleted file mode 100644 index 41a79a8c1..000000000 --- a/.vuepress/.temp/pages/courses/guidance/11.html.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/12.html.js b/.vuepress/.temp/pages/courses/guidance/12.html.js deleted file mode 100644 index 12202c799..000000000 --- a/.vuepress/.temp/pages/courses/guidance/12.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-b50ed5de\",\"path\":\"/courses/guidance/12.html\",\"title\":\"12. Publishing a STIG\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":12,\"next\":\"13.md\",\"title\":\"12. Publishing a STIG\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"12.1 Notes on Formally Publishing a STIG The STIG Process Most of this section is informed by DISA's own published guidance for the Vendor STIG Process, as well as the experienc...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/12.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"12. Publishing a STIG\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"12.1 Notes on Formally Publishing a STIG The STIG Process Most of this section is informed by DISA's own published guidance for the Vendor STIG Process, as well as the experienc...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"12. Publishing a STIG\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"12.1 Notes on Formally Publishing a STIG\",\"slug\":\"_12-1-notes-on-formally-publishing-a-stig\",\"link\":\"#_12-1-notes-on-formally-publishing-a-stig\",\"children\":[]},{\"level\":2,\"title\":\"12.2 Starting the Process\",\"slug\":\"_12-2-starting-the-process\",\"link\":\"#_12-2-starting-the-process\",\"children\":[{\"level\":3,\"title\":\"12.2.1 Writing Style\",\"slug\":\"_12-2-1-writing-style\",\"link\":\"#_12-2-1-writing-style\",\"children\":[]}]},{\"level\":2,\"title\":\"12.3 Stages of STIG Development\",\"slug\":\"_12-3-stages-of-stig-development\",\"link\":\"#_12-3-stages-of-stig-development\",\"children\":[{\"level\":3,\"title\":\"12.3.1 Stage 1 STIG Development (The First Ten Requirements)\",\"slug\":\"_12-3-1-stage-1-stig-development-the-first-ten-requirements\",\"link\":\"#_12-3-1-stage-1-stig-development-the-first-ten-requirements\",\"children\":[]},{\"level\":3,\"title\":\"12.3.2 Stage 2 STIG Development\",\"slug\":\"_12-3-2-stage-2-stig-development\",\"link\":\"#_12-3-2-stage-2-stig-development\",\"children\":[]},{\"level\":3,\"title\":\"12.3.3 Stage 3 STIG Development\",\"slug\":\"_12-3-3-stage-3-stig-development\",\"link\":\"#_12-3-3-stage-3-stig-development\",\"children\":[]},{\"level\":3,\"title\":\"12.3.4 Stage 4 STIG Development\",\"slug\":\"_12-3-4-stage-4-stig-development\",\"link\":\"#_12-3-4-stage-4-stig-development\",\"children\":[]},{\"level\":3,\"title\":\"12.3.5 STIG Validation\",\"slug\":\"_12-3-5-stig-validation\",\"link\":\"#_12-3-5-stig-validation\",\"children\":[]},{\"level\":3,\"title\":\"12.3.6 Review and Approval\",\"slug\":\"_12-3-6-review-and-approval\",\"link\":\"#_12-3-6-review-and-approval\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.47,\"words\":740},\"filePathRelative\":\"courses/guidance/12.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/12.html.vue b/.vuepress/.temp/pages/courses/guidance/12.html.vue deleted file mode 100644 index e8c70ef7b..000000000 --- a/.vuepress/.temp/pages/courses/guidance/12.html.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/13.html.js b/.vuepress/.temp/pages/courses/guidance/13.html.js deleted file mode 100644 index 0eb3dc45e..000000000 --- a/.vuepress/.temp/pages/courses/guidance/13.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-b1a524a0\",\"path\":\"/courses/guidance/13.html\",\"title\":\"13. Next Steps\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":13,\"title\":\"13. Next Steps\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"13.1 Next Steps 13.1.1 Take the Class Survey Take our question survey (https://forms.office.com/g/JPUWUVjXes) to give feedback to fuel class improvement. 13.1.2 Take other SAF t...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/13.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"13. Next Steps\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"13.1 Next Steps 13.1.1 Take the Class Survey Take our question survey (https://forms.office.com/g/JPUWUVjXes) to give feedback to fuel class improvement. 13.1.2 Take other SAF t...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"13. Next Steps\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"13.1 Next Steps\",\"slug\":\"_13-1-next-steps\",\"link\":\"#_13-1-next-steps\",\"children\":[{\"level\":3,\"title\":\"13.1.1 Take the Class Survey\",\"slug\":\"_13-1-1-take-the-class-survey\",\"link\":\"#_13-1-1-take-the-class-survey\",\"children\":[]},{\"level\":3,\"title\":\"13.1.2 Take other SAF training like the Security Automation Developer Classes or the SAF User Class\",\"slug\":\"_13-1-2-take-other-saf-training-like-the-security-automation-developer-classes-or-the-saf-user-class\",\"link\":\"#_13-1-2-take-other-saf-training-like-the-security-automation-developer-classes-or-the-saf-user-class\",\"children\":[]},{\"level\":3,\"title\":\"13.1.3 Check Out the Rest of MITRE SAF(c)'s Content\",\"slug\":\"_13-1-3-check-out-the-rest-of-mitre-saf-c-s-content\",\"link\":\"#_13-1-3-check-out-the-rest-of-mitre-saf-c-s-content\",\"children\":[]},{\"level\":3,\"title\":\"13.1.4 Contact Us\",\"slug\":\"_13-1-4-contact-us\",\"link\":\"#_13-1-4-contact-us\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1,\"words\":300},\"filePathRelative\":\"courses/guidance/13.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/13.html.vue b/.vuepress/.temp/pages/courses/guidance/13.html.vue deleted file mode 100644 index 3c644e2ca..000000000 --- a/.vuepress/.temp/pages/courses/guidance/13.html.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/guidance/index.html.js b/.vuepress/.temp/pages/courses/guidance/index.html.js deleted file mode 100644 index 8fee9ebaa..000000000 --- a/.vuepress/.temp/pages/courses/guidance/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-a41d3f32\",\"path\":\"/courses/guidance/\",\"title\":\"Security Guidance Developer Class\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":1,\"next\":\"02.md\",\"title\":\"Security Guidance Developer Class\",\"shortTitle\":\"Security Guidance Development\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"1.1 Class Overview The purpose of this class is to outline how security guidance fits in the security validation lifecycle and equip participants with the tools and knowledge to...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/guidance/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Security Guidance Developer Class\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"1.1 Class Overview The purpose of this class is to outline how security guidance fits in the security validation lifecycle and equip participants with the tools and knowledge to...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Security Guidance Developer Class\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"1.1 Class Overview\",\"slug\":\"_1-1-class-overview\",\"link\":\"#_1-1-class-overview\",\"children\":[{\"level\":3,\"title\":\"1.1.1 Class Objectives:\",\"slug\":\"_1-1-1-class-objectives\",\"link\":\"#_1-1-1-class-objectives\",\"children\":[]}]},{\"level\":2,\"title\":\"1.2 The Road to Security Automation\",\"slug\":\"_1-2-the-road-to-security-automation\",\"link\":\"#_1-2-the-road-to-security-automation\",\"children\":[]}],\"readingTime\":{\"minutes\":1,\"words\":299},\"filePathRelative\":\"courses/guidance/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/guidance/index.html.vue b/.vuepress/.temp/pages/courses/guidance/index.html.vue deleted file mode 100644 index 03f781ba6..000000000 --- a/.vuepress/.temp/pages/courses/guidance/index.html.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/index.html.js b/.vuepress/.temp/pages/courses/index.html.js deleted file mode 100644 index 5883b7f64..000000000 --- a/.vuepress/.temp/pages/courses/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7e978520\",\"path\":\"/courses/\",\"title\":\"Courses\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Courses\",\"article\":false,\"feed\":false,\"sitemap\":false,\"description\":\"\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Courses\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"Courses\\\"}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0,\"words\":1},\"filePathRelative\":null,\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/index.html.vue b/.vuepress/.temp/pages/courses/index.html.vue deleted file mode 100644 index 1554694d6..000000000 --- a/.vuepress/.temp/pages/courses/index.html.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/02.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/02.html.js deleted file mode 100644 index 95a5f0812..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/02.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-76a3f766\",\"path\":\"/courses/profile-dev-test/02.html\",\"title\":\"Repository Organization\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":2,\"next\":\"03.md\",\"title\":\"Repository Organization\",\"author\":\"Aaron Lippold\",\"description\":\"The repository and profile are organized into two primary branches: main and TBD. The repository has a set of tags representing iterative releases of the STIG from one Benchmark...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/02.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Repository Organization\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The repository and profile are organized into two primary branches: main and TBD. The repository has a set of tags representing iterative releases of the STIG from one Benchmark...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Repository Organization\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"main branch\",\"slug\":\"main-branch\",\"link\":\"#main-branch\",\"children\":[]},{\"level\":2,\"title\":\"v{x}r{xx} branches\",\"slug\":\"v-x-r-xx-branches\",\"link\":\"#v-x-r-xx-branches\",\"children\":[]},{\"level\":2,\"title\":\"Current Tag\",\"slug\":\"current-tag\",\"link\":\"#current-tag\",\"children\":[]},{\"level\":2,\"title\":\"Major Tags\",\"slug\":\"major-tags\",\"link\":\"#major-tags\",\"children\":[]},{\"level\":2,\"title\":\"Patch Releases\",\"slug\":\"patch-releases\",\"link\":\"#patch-releases\",\"children\":[]}],\"readingTime\":{\"minutes\":1.45,\"words\":435},\"filePathRelative\":\"courses/profile-dev-test/02.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/02.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/02.html.vue deleted file mode 100644 index cdb547f0d..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/02.html.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/03.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/03.html.js deleted file mode 100644 index 5079ebca5..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/03.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7858d005\",\"path\":\"/courses/profile-dev-test/03.html\",\"title\":\"Environment Setup\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":3,\"next\":\"04.md\",\"title\":\"Environment Setup\",\"author\":\"Aaron Lippold\",\"description\":\"RVM, or another Ruby Management Tool; Ruby v3 or higher; Git; VS Code or another IDE; Docker (if you want to test hardened and non-hardened containers); AWS CLI; AWS Account; 1....\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/03.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Environment Setup\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"RVM, or another Ruby Management Tool; Ruby v3 or higher; Git; VS Code or another IDE; Docker (if you want to test hardened and non-hardened containers); AWS CLI; AWS Account; 1....\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Environment Setup\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":1.56,\"words\":468},\"filePathRelative\":\"courses/profile-dev-test/03.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/03.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/03.html.vue deleted file mode 100644 index 4db44ea5e..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/03.html.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/04.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/04.html.js deleted file mode 100644 index f6a5dbd8e..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/04.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7a0da8a4\",\"path\":\"/courses/profile-dev-test/04.html\",\"title\":\"Test your Test Environment\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":4,\"next\":\"05.md\",\"title\":\"Test your Test Environment\",\"author\":\"Aaron Lippold\",\"description\":\"Once you've set up the necessary tools, you're ready to run the profile. The testing environment is determined by Test Kitchen using environment variables. There are four testin...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/04.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test your Test Environment\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Once you've set up the necessary tools, you're ready to run the profile. The testing environment is determined by Test Kitchen using environment variables. There are four testin...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test your Test Environment\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Kitchen Stages\",\"slug\":\"kitchen-stages\",\"link\":\"#kitchen-stages\",\"children\":[]}],\"readingTime\":{\"minutes\":1.76,\"words\":529},\"filePathRelative\":\"courses/profile-dev-test/04.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/04.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/04.html.vue deleted file mode 100644 index 8d398d2f3..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/04.html.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/05.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/05.html.js deleted file mode 100644 index 8236d5e4b..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/05.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7bc28143\",\"path\":\"/courses/profile-dev-test/05.html\",\"title\":\"AWS Testing Suite\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":5,\"next\":\"06.md\",\"title\":\"AWS Testing Suite\",\"author\":\"Aaron Lippold\",\"description\":\"1. Configure your AWS CLI and set up your AWS Credentials. 2. Test your AWS CLI access by running: aws s3 ls. 3. Clone the repository. 4. Navigate to the profile repository root...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/05.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"AWS Testing Suite\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"1. Configure your AWS CLI and set up your AWS Credentials. 2. Test your AWS CLI access by running: aws s3 ls. 3. Clone the repository. 4. Navigate to the profile repository root...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"AWS Testing Suite\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":1.7,\"words\":509},\"filePathRelative\":\"courses/profile-dev-test/05.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/05.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/05.html.vue deleted file mode 100644 index c0ca969cb..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/05.html.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/06.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/06.html.js deleted file mode 100644 index 52dd4ac36..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/06.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7d7759e2\",\"path\":\"/courses/profile-dev-test/06.html\",\"title\":\"Docker Testing Suite\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":6,\"next\":\"07.md\",\"title\":\"Docker Testing Suite\",\"author\":\"Aaron Lippold\",\"description\":\"1. Make sure Docker or Podman is running 2. Login to your docker registry 3. Clone the repository 4. Go into the profile repository root dir 5. bundle install 6. export KITCHENL...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/06.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Docker Testing Suite\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"1. Make sure Docker or Podman is running 2. Login to your docker registry 3. Clone the repository 4. Go into the profile repository root dir 5. bundle install 6. export KITCHENL...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Docker Testing Suite\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"This error is just fine\",\"slug\":\"this-error-is-just-fine\",\"link\":\"#this-error-is-just-fine\",\"children\":[]}],\"readingTime\":{\"minutes\":1.51,\"words\":452},\"filePathRelative\":\"courses/profile-dev-test/06.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/06.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/06.html.vue deleted file mode 100644 index d1d12fc6a..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/06.html.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/07.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/07.html.js deleted file mode 100644 index 0347e47e4..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/07.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7f2c3281\",\"path\":\"/courses/profile-dev-test/07.html\",\"title\":\"Updating - Choosing Your Apprach\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":7,\"next\":\"08.md\",\"title\":\"Updating - Choosing Your Apprach\",\"author\":\"Aaron Lippold\",\"description\":\"This project follows the GitFlow model (https://docs.github.com/en/get-started/quickstart/github-flow \\\"GitFlow Announcement Blog\\\") for managing the repository, accepting pull re...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/07.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Updating - Choosing Your Apprach\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"This project follows the GitFlow model (https://docs.github.com/en/get-started/quickstart/github-flow \\\"GitFlow Announcement Blog\\\") for managing the repository, accepting pull re...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Updating - Choosing Your Apprach\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Micro PRs\",\"slug\":\"micro-prs\",\"link\":\"#micro-prs\",\"children\":[]},{\"level\":2,\"title\":\"Massive PRs\",\"slug\":\"massive-prs\",\"link\":\"#massive-prs\",\"children\":[{\"level\":3,\"title\":\"PR Strategies for Different Update Scenarios\",\"slug\":\"pr-strategies-for-different-update-scenarios\",\"link\":\"#pr-strategies-for-different-update-scenarios\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.57,\"words\":470},\"filePathRelative\":\"courses/profile-dev-test/07.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/07.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/07.html.vue deleted file mode 100644 index 2e3ff27d3..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/07.html.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/08.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/08.html.js deleted file mode 100644 index 3a9704bb1..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/08.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-fe3de9c0\",\"path\":\"/courses/profile-dev-test/08.html\",\"title\":\"Secruity Benchmarks vs Traditional Software\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":8,\"next\":\"09.md\",\"title\":\"Secruity Benchmarks vs Traditional Software\",\"author\":\"Aaron Lippold\",\"description\":\"When planning your team's approach, remember that a Security Benchmark is only considered 'complete and valid' when all requirements for that specific Release or Major Version a...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/08.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Secruity Benchmarks vs Traditional Software\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"When planning your team's approach, remember that a Security Benchmark is only considered 'complete and valid' when all requirements for that specific Release or Major Version a...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Secruity Benchmarks vs Traditional Software\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.64,\"words\":193},\"filePathRelative\":\"courses/profile-dev-test/08.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/08.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/08.html.vue deleted file mode 100644 index df17b03ab..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/08.html.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/09.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/09.html.js deleted file mode 100644 index 54e55b53b..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/09.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-fad43882\",\"path\":\"/courses/profile-dev-test/09.html\",\"title\":\"Types of Profile Updates\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":9,\"next\":\"10.md\",\"title\":\"Types of Profile Updates\",\"author\":\"Aaron Lippold\",\"description\":\"When updating the profile, you'll be making one of three types of changes: 1. Patch Update: These frequent updates cover missing corner cases of testing for one or more benchmar...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/09.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Types of Profile Updates\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"When updating the profile, you'll be making one of three types of changes: 1. Patch Update: These frequent updates cover missing corner cases of testing for one or more benchmar...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Types of Profile Updates\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":3,\"title\":\"Scope of the Update Patterns\",\"slug\":\"scope-of-the-update-patterns\",\"link\":\"#scope-of-the-update-patterns\",\"children\":[]}],\"readingTime\":{\"minutes\":0.98,\"words\":293},\"filePathRelative\":\"courses/profile-dev-test/09.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/09.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/09.html.vue deleted file mode 100644 index 07e7d284a..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/09.html.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/10.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/10.html.js deleted file mode 100644 index 3b0259899..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/10.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-afbefd2e\",\"path\":\"/courses/profile-dev-test/10.html\",\"title\":\"Rules of the Road\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":10,\"next\":\"11.md\",\"title\":\"Rules of the Road\",\"author\":\"Aaron Lippold\",\"description\":\"When updating Benchmark Profiles, adhere to these key principles to maintain alignment with the original Guidance Documents: 1. Maintain Version Integrity: Never Merge new requi...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/10.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Rules of the Road\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"When updating Benchmark Profiles, adhere to these key principles to maintain alignment with the original Guidance Documents: 1. Maintain Version Integrity: Never Merge new requi...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Rules of the Road\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":1.06,\"words\":319},\"filePathRelative\":\"courses/profile-dev-test/10.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/10.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/10.html.vue deleted file mode 100644 index b579edebe..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/10.html.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/11.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/11.html.js deleted file mode 100644 index e1533980e..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/11.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-ac554bf0\",\"path\":\"/courses/profile-dev-test/11.html\",\"title\":\"Creating a `Patch Update`\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":11,\"next\":\"12.md\",\"title\":\"Creating a `Patch Update`\",\"author\":\"Aaron Lippold\",\"description\":\"A patch update involves making minor changes to a profile to fix issues or improve functionality. Here's a step-by-step guide: 1. Report the Issue: Open an issue on our project,...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/11.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Creating a `Patch Update`\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"A patch update involves making minor changes to a profile to fix issues or improve functionality. Here's a step-by-step guide: 1. Report the Issue: Open an issue on our project,...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Creating a `Patch Update`\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.98,\"words\":293},\"filePathRelative\":\"courses/profile-dev-test/11.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/11.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/11.html.vue deleted file mode 100644 index c6cee7c8e..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/11.html.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/12.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/12.html.js deleted file mode 100644 index f0ca87c2a..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/12.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-a8eb9ab2\",\"path\":\"/courses/profile-dev-test/12.html\",\"title\":\"Creating a `Release Update`\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":12,\"next\":\"13.md\",\"title\":\"Creating a `Release Update`\",\"author\":\"Aaron Lippold\",\"description\":\"A Release Update involves creating a new branch, v#{x}R#{x+1}, from the current main or latest patch release branch. The saf generate delta workflow is then run, which updates t...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/12.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Creating a `Release Update`\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"A Release Update involves creating a new branch, v#{x}R#{x+1}, from the current main or latest patch release branch. The saf generate delta workflow is then run, which updates t...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Creating a `Release Update`\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":1.1,\"words\":330},\"filePathRelative\":\"courses/profile-dev-test/12.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/12.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/12.html.vue deleted file mode 100644 index 4452bd36c..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/12.html.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/13.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/13.html.js deleted file mode 100644 index 3f6798553..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/13.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-a581e974\",\"path\":\"/courses/profile-dev-test/13.html\",\"title\":\"Creating a `Major Version Update`\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":13,\"next\":\"14.md\",\"title\":\"Creating a `Major Version Update`\",\"author\":\"Aaron Lippold\",\"description\":\"A Major Version Update involves transitioning to a new STIG Benchmark, which introduces a new Rule ID index. This process is more complex than a Release Update due to the need f...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/13.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Creating a `Major Version Update`\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"A Major Version Update involves transitioning to a new STIG Benchmark, which introduces a new Rule ID index. This process is more complex than a Release Update due to the need f...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Creating a `Major Version Update`\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.91,\"words\":274},\"filePathRelative\":\"courses/profile-dev-test/13.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/13.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/13.html.vue deleted file mode 100644 index 81c0c57f9..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/13.html.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/14.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/14.html.js deleted file mode 100644 index 17f2b3c7e..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/14.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-a2183836\",\"path\":\"/courses/profile-dev-test/14.html\",\"title\":\"Test Kitchen\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":14,\"next\":\"15.md\",\"title\":\"Test Kitchen\",\"author\":\"Aaron Lippold\",\"description\":\"Test Kitchen (http://kitchen.ci) is a robust tool for testing infrastructure code and software on isolated platforms. It provides a consistent, reliable environment for developi...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/14.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Test Kitchen (http://kitchen.ci) is a robust tool for testing infrastructure code and software on isolated platforms. It provides a consistent, reliable environment for developi...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:image\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"meta\",{\"name\":\"twitter:image:alt\",\"content\":\"Test Kitchen\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen\\\",\\\"image\\\":[\\\"https://vuepress-theme-hope-docs-demo.netlify.app/\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Workflow Defined by our Test Kitchen Files\",\"slug\":\"workflow-defined-by-our-test-kitchen-files\",\"link\":\"#workflow-defined-by-our-test-kitchen-files\",\"children\":[]},{\"level\":2,\"title\":\"Test Kitchen's Modifications to Targets\",\"slug\":\"test-kitchen-s-modifications-to-targets\",\"link\":\"#test-kitchen-s-modifications-to-targets\",\"children\":[]}],\"readingTime\":{\"minutes\":1.31,\"words\":393},\"filePathRelative\":\"courses/profile-dev-test/14.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/14.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/14.html.vue deleted file mode 100644 index a8c5aa3bd..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/14.html.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/15.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/15.html.js deleted file mode 100644 index 3b0b3dadb..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/15.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-9eae86f8\",\"path\":\"/courses/profile-dev-test/15.html\",\"title\":\"Test Kitchen - Create\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":15,\"next\":\"16.md\",\"title\":\"Test Kitchen - Create\",\"author\":\"Aaron Lippold\",\"index\":true,\"description\":\"The create stage in Test Kitchen sets up testing environments. It uses standard and patched images from AWS and Red Hat, including AMI EC2 images, Docker containers, and Vagrant...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/15.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - Create\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The create stage in Test Kitchen sets up testing environments. It uses standard and patched images from AWS and Red Hat, including AMI EC2 images, Docker containers, and Vagrant...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - Create\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.42,\"words\":126},\"filePathRelative\":\"courses/profile-dev-test/15.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/15.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/15.html.vue deleted file mode 100644 index e58040c40..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/15.html.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/16.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/16.html.js deleted file mode 100644 index 882d1bdb9..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/16.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-9b44d5ba\",\"path\":\"/courses/profile-dev-test/16.html\",\"title\":\"Test Kitchen - Converge\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":16,\"next\":\"17.md\",\"title\":\"Test Kitchen - Converge\",\"author\":\"Aaron Lippold\",\"index\":true,\"description\":\"The converge stage uses Ansible Playbooks from the Ansible Lockdown project to apply hardening configurations, specifically the RHEL8-STIG playbook, and RedHat managed container...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/16.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - Converge\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The converge stage uses Ansible Playbooks from the Ansible Lockdown project to apply hardening configurations, specifically the RHEL8-STIG playbook, and RedHat managed container...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - Converge\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"EC2 and Vagrant Converge\",\"slug\":\"ec2-and-vagrant-converge\",\"link\":\"#ec2-and-vagrant-converge\",\"children\":[]},{\"level\":2,\"title\":\"Container Converge\",\"slug\":\"container-converge\",\"link\":\"#container-converge\",\"children\":[]}],\"readingTime\":{\"minutes\":0.7,\"words\":211},\"filePathRelative\":\"courses/profile-dev-test/16.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/16.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/16.html.vue deleted file mode 100644 index ae4aeb09c..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/16.html.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/17.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/17.html.js deleted file mode 100644 index 69237ab08..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/17.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-97db247c\",\"path\":\"/courses/profile-dev-test/17.html\",\"title\":\"Test Kitchen - Validate\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":17,\"next\":\"18.md\",\"title\":\"Test Kitchen - Validate\",\"author\":\"Aaron Lippold\",\"index\":true,\"description\":\"The verify stage uses the kitchen-inspec verifier from Test Kitchen to run the profile against the test targets. For this stage, the profile receives a set of tailored input YAM...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/17.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - Validate\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The verify stage uses the kitchen-inspec verifier from Test Kitchen to run the profile against the test targets. For this stage, the profile receives a set of tailored input YAM...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - Validate\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.35,\"words\":106},\"filePathRelative\":\"courses/profile-dev-test/17.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/17.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/17.html.vue deleted file mode 100644 index 232c08d16..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/17.html.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/18.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/18.html.js deleted file mode 100644 index 5538a94c5..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/18.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-9471733e\",\"path\":\"/courses/profile-dev-test/18.html\",\"title\":\"Test Kitchen - Destroy\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":18,\"next\":\"19.md\",\"title\":\"Test Kitchen - Destroy\",\"author\":\"Aaron Lippold\",\"description\":\"The destroy stage terminates the EC2 instances, Vagrant boxes, or containers that Test Kitchen created for testing. Occasionally, the destroy stage may encounter issues if the h...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/18.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - Destroy\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The destroy stage terminates the EC2 instances, Vagrant boxes, or containers that Test Kitchen created for testing. Occasionally, the destroy stage may encounter issues if the h...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - Destroy\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.38,\"words\":113},\"filePathRelative\":\"courses/profile-dev-test/18.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/18.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/18.html.vue deleted file mode 100644 index 7ff9f7072..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/18.html.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/19.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/19.html.js deleted file mode 100644 index 9dc7bf503..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/19.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-9107c200\",\"path\":\"/courses/profile-dev-test/19.html\",\"title\":\"Test Kitchen - .kitchen/ directory\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":19,\"next\":\"20.md\",\"title\":\"Test Kitchen - .kitchen/ directory\",\"author\":\"Aaron Lippold\",\"description\":\"The .kitchen/ (/.kitchen/) directory contains the state file for Test Kitchen, which is automatically generated when you first run Test Kitchen. Refer to the Finding Your Test T...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/19.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - .kitchen/ directory\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The .kitchen/ (/.kitchen/) directory contains the state file for Test Kitchen, which is automatically generated when you first run Test Kitchen. Refer to the Finding Your Test T...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - .kitchen/ directory\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.2,\"words\":61},\"filePathRelative\":\"courses/profile-dev-test/19.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/19.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/19.html.vue deleted file mode 100644 index 7903f4598..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/19.html.vue +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/20.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/20.html.js deleted file mode 100644 index df177da14..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/20.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-45f286ac\",\"path\":\"/courses/profile-dev-test/20.html\",\"title\":\"Test Kitchen - `kitchen.yml` File\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":20,\"next\":\"21.md\",\"title\":\"Test Kitchen - `kitchen.yml` File\",\"author\":\"Aaron Lippold\",\"description\":\"The kitchen.yml (./kitchen.yml) file is the primary configuration file for Test Kitchen. It outlines the shared configuration for all your testing environments, platforms, and t...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/20.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - `kitchen.yml` File\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The kitchen.yml (./kitchen.yml) file is the primary configuration file for Test Kitchen. It outlines the shared configuration for all your testing environments, platforms, and t...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - `kitchen.yml` File\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Example kitchen.yml file\",\"slug\":\"example-kitchen-yml-file\",\"link\":\"#example-kitchen-yml-file\",\"children\":[]},{\"level\":2,\"title\":\"Environment Variables in kitchen.yml\",\"slug\":\"environment-variables-in-kitchen-yml\",\"link\":\"#environment-variables-in-kitchen-yml\",\"children\":[]}],\"readingTime\":{\"minutes\":1.7,\"words\":510},\"filePathRelative\":\"courses/profile-dev-test/20.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/20.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/20.html.vue deleted file mode 100644 index c65f259ae..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/20.html.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/21.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/21.html.js deleted file mode 100644 index 541e03cd0..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/21.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-4288d56e\",\"path\":\"/courses/profile-dev-test/21.html\",\"title\":\"Test Kitchen - `kitchen.ec2.yml` File\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":21,\"next\":\"22.md\",\"title\":\"Test Kitchen - `kitchen.ec2.yml` File\",\"author\":\"Aaron Lippold\",\"description\":\"The kitchen.ec2.yml file is instrumental in setting up our testing targets within the AWS environment. It outlines the configuration details for these targets, including their V...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/21.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - `kitchen.ec2.yml` File\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The kitchen.ec2.yml file is instrumental in setting up our testing targets within the AWS environment. It outlines the configuration details for these targets, including their V...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - `kitchen.ec2.yml` File\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Example kitchen.ec2.yml file\",\"slug\":\"example-kitchen-ec2-yml-file\",\"link\":\"#example-kitchen-ec2-yml-file\",\"children\":[]}],\"readingTime\":{\"minutes\":1.96,\"words\":588},\"filePathRelative\":\"courses/profile-dev-test/21.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/21.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/21.html.vue deleted file mode 100644 index f436c0a44..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/21.html.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/22.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/22.html.js deleted file mode 100644 index 874fe048d..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/22.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3f1f2430\",\"path\":\"/courses/profile-dev-test/22.html\",\"title\":\"Test Kitchen - `kitchen.container.yml`\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":22,\"next\":\"23.md\",\"title\":\"Test Kitchen - `kitchen.container.yml`\",\"author\":\"Aaron Lippold\",\"description\":\"The kitchen.container.yml file orchestrates our container-based test suite. It defines two types of containers, hardened and vanilla, and specifies the inspec_tests to run again...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/22.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Test Kitchen - `kitchen.container.yml`\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The kitchen.container.yml file orchestrates our container-based test suite. It defines two types of containers, hardened and vanilla, and specifies the inspec_tests to run again...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Test Kitchen - `kitchen.container.yml`\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Example kitchen.container.yml file\",\"slug\":\"example-kitchen-container-yml-file\",\"link\":\"#example-kitchen-container-yml-file\",\"children\":[]},{\"level\":2,\"title\":\"Environment Variables in kitchen.container.yml\",\"slug\":\"environment-variables-in-kitchen-container-yml\",\"link\":\"#environment-variables-in-kitchen-container-yml\",\"children\":[]}],\"readingTime\":{\"minutes\":2.15,\"words\":645},\"filePathRelative\":\"courses/profile-dev-test/22.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/22.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/22.html.vue deleted file mode 100644 index c5b1506ca..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/22.html.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/23.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/23.html.js deleted file mode 100644 index b806f2b89..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/23.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3bb572f2\",\"path\":\"/courses/profile-dev-test/23.html\",\"title\":\"GitHub Actions\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":23,\"next\":\"24.md\",\"title\":\"GitHub Actions\",\"author\":\"Aaron Lippold\",\"description\":\"lint-profile.yml (.github/workflows/lint-profile.yml) This action checks out the repository, installs Ruby and InSpec, then runs bundle exec inspec check . to validate the struc...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/23.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"GitHub Actions\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"lint-profile.yml (.github/workflows/lint-profile.yml) This action checks out the repository, installs Ruby and InSpec, then runs bundle exec inspec check . to validate the struc...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"GitHub Actions\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"lint-profile.yml\",\"slug\":\"lint-profile-yml\",\"link\":\"#lint-profile-yml\",\"children\":[]},{\"level\":2,\"title\":\"verify-ec2.yml\",\"slug\":\"verify-ec2-yml\",\"link\":\"#verify-ec2-yml\",\"children\":[]},{\"level\":2,\"title\":\"verify-container.yml\",\"slug\":\"verify-container-yml\",\"link\":\"#verify-container-yml\",\"children\":[]},{\"level\":2,\"title\":\"verify-vagrant.yml.example\",\"slug\":\"verify-vagrant-yml-example\",\"link\":\"#verify-vagrant-yml-example\",\"children\":[]}],\"readingTime\":{\"minutes\":0.8,\"words\":239},\"filePathRelative\":\"courses/profile-dev-test/23.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/23.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/23.html.vue deleted file mode 100644 index df06d2a9c..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/23.html.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/24.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/24.html.js deleted file mode 100644 index 2f1689e20..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/24.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-384bc1b4\",\"path\":\"/courses/profile-dev-test/24.html\",\"title\":\"InSpec Delta - Laying the Ground for a Clean Release Branch\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":24,\"next\":\"25.md\",\"title\":\"InSpec Delta - Laying the Ground for a Clean Release Branch\",\"shortTitle\":\"Delta - Prep & Setup\",\"author\":\"Aaron Lippold\",\"description\":\"Preparing the Profile Before Running Delta Before running Delta, it's beneficial to format the profile to match the format Delta will use. This minimizes changes to only those n...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/24.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"InSpec Delta - Laying the Ground for a Clean Release Branch\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Preparing the Profile Before Running Delta Before running Delta, it's beneficial to format the profile to match the format Delta will use. This minimizes changes to only those n...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"InSpec Delta - Laying the Ground for a Clean Release Branch\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Preparing the Profile Before Running Delta\",\"slug\":\"preparing-the-profile-before-running-delta\",\"link\":\"#preparing-the-profile-before-running-delta\",\"children\":[]}],\"readingTime\":{\"minutes\":0.83,\"words\":249},\"filePathRelative\":\"courses/profile-dev-test/24.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/24.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/24.html.vue deleted file mode 100644 index b18a84838..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/24.html.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/25.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/25.html.js deleted file mode 100644 index 8e180c1af..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/25.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-34e21076\",\"path\":\"/courses/profile-dev-test/25.html\",\"title\":\"InSpec Delta - Making the Delta Release Branch\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":25,\"next\":\"26.md\",\"title\":\"InSpec Delta - Making the Delta Release Branch\",\"shortTitle\":\"Delta - Making your Branch\",\"author\":\"Aaron Lippold\",\"description\":\"Download New Guidance: Download the appropriate profile from the DISA Document Library (https://public.cyber.mil/stigs/downloads/). Unzip the downloaded folder and identify the ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/25.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"InSpec Delta - Making the Delta Release Branch\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Download New Guidance: Download the appropriate profile from the DISA Document Library (https://public.cyber.mil/stigs/downloads/). Unzip the downloaded folder and identify the ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"InSpec Delta - Making the Delta Release Branch\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Delta Workflow Process\",\"slug\":\"delta-workflow-process\",\"link\":\"#delta-workflow-process\",\"children\":[]},{\"level\":2,\"title\":\"Using Delta\",\"slug\":\"using-delta\",\"link\":\"#using-delta\",\"children\":[]},{\"level\":2,\"title\":\"Scope of Changes by Delta\",\"slug\":\"scope-of-changes-by-delta\",\"link\":\"#scope-of-changes-by-delta\",\"children\":[{\"level\":3,\"title\":\"Further InSpec Delta Information and Background\",\"slug\":\"further-inspec-delta-information-and-background\",\"link\":\"#further-inspec-delta-information-and-background\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.42,\"words\":425},\"filePathRelative\":\"courses/profile-dev-test/25.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/25.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/25.html.vue deleted file mode 100644 index 0e8cd2644..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/25.html.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/26.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/26.html.js deleted file mode 100644 index 93de1c39d..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/26.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-31785f38\",\"path\":\"/courses/profile-dev-test/26.html\",\"title\":\"Tips, Tricks & Troubleshooting\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":26,\"next\":\"27.md\",\"title\":\"Tips, Tricks & Troubleshooting\",\"shortTitle\":\"Tips & Troubleshooting\",\"author\":\"Aaron Lippold\",\"description\":\"Test Kitchen Locating Test Target Login Details Test Kitchen stores the current host details of your provisioned test targets in the .kitchen/ directory. Here, you'll find a yml...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/26.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Tips, Tricks & Troubleshooting\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Test Kitchen Locating Test Target Login Details Test Kitchen stores the current host details of your provisioned test targets in the .kitchen/ directory. Here, you'll find a yml...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Tips, Tricks & Troubleshooting\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Test Kitchen\",\"slug\":\"test-kitchen\",\"link\":\"#test-kitchen\",\"children\":[{\"level\":3,\"title\":\"Locating Test Target Login Details\",\"slug\":\"locating-test-target-login-details\",\"link\":\"#locating-test-target-login-details\",\"children\":[]},{\"level\":3,\"title\":\"Restoring Access to a Halted or Restarted Test Target\",\"slug\":\"restoring-access-to-a-halted-or-restarted-test-target\",\"link\":\"#restoring-access-to-a-halted-or-restarted-test-target\",\"children\":[]},{\"level\":3,\"title\":\"AWS Console and EC2 Oddities\",\"slug\":\"aws-console-and-ec2-oddities\",\"link\":\"#aws-console-and-ec2-oddities\",\"children\":[]}]},{\"level\":2,\"title\":\"InSpec / Ruby\",\"slug\":\"inspec-ruby\",\"link\":\"#inspec-ruby\",\"children\":[{\"level\":3,\"title\":\"Using pry and pry-byebug for Debugging Controls\",\"slug\":\"using-pry-and-pry-byebug-for-debugging-controls\",\"link\":\"#using-pry-and-pry-byebug-for-debugging-controls\",\"children\":[]},{\"level\":3,\"title\":\"Streamlining Your Testing with inspec shell\",\"slug\":\"streamlining-your-testing-with-inspec-shell\",\"link\":\"#streamlining-your-testing-with-inspec-shell\",\"children\":[]},{\"level\":3,\"title\":\"Using kitchen login for Easy Test Review and Modification\",\"slug\":\"using-kitchen-login-for-easy-test-review-and-modification\",\"link\":\"#using-kitchen-login-for-easy-test-review-and-modification\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.95,\"words\":586},\"filePathRelative\":\"courses/profile-dev-test/26.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/26.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/26.html.vue deleted file mode 100644 index 9009db321..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/26.html.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/27.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/27.html.js deleted file mode 100644 index 6273d8590..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/27.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2e0eadfa\",\"path\":\"/courses/profile-dev-test/27.html\",\"title\":\"Background & Definitions\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":27,\"next\":\"28.md\",\"title\":\"Background & Definitions\",\"author\":\"Aaron Lippold\",\"description\":\"Background Evolution of STIGs and Security Benchmarks The Department of Defense (DOD) has continually updated its databases that track rules and Security Technical Implementatio...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/27.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Background & Definitions\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Background Evolution of STIGs and Security Benchmarks The Department of Defense (DOD) has continually updated its databases that track rules and Security Technical Implementatio...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Background & Definitions\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Background\",\"slug\":\"background\",\"link\":\"#background\",\"children\":[{\"level\":3,\"title\":\"Evolution of STIGs and Security Benchmarks\",\"slug\":\"evolution-of-stigs-and-security-benchmarks\",\"link\":\"#evolution-of-stigs-and-security-benchmarks\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.02,\"words\":306},\"filePathRelative\":\"courses/profile-dev-test/27.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/27.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/27.html.vue deleted file mode 100644 index aad4d42b4..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/27.html.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/28.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/28.html.js deleted file mode 100644 index e333d629f..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/28.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2aa4fcbc\",\"path\":\"/courses/profile-dev-test/28.html\",\"title\":\"Terms & Definitions\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":28,\"next\":\"29.md\",\"title\":\"Terms & Definitions\",\"author\":\"Aaron Lippold\",\"description\":\"Baseline: This refers to a set of relevant security controls, such as NIST 800-53 controls or Center for Internet Security Controls. These controls offer high-level security bes...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/28.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Terms & Definitions\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Baseline: This refers to a set of relevant security controls, such as NIST 800-53 controls or Center for Internet Security Controls. These controls offer high-level security bes...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Terms & Definitions\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":1.99,\"words\":598},\"filePathRelative\":\"courses/profile-dev-test/28.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/28.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/28.html.vue deleted file mode 100644 index c353f88bd..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/28.html.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/29.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/29.html.js deleted file mode 100644 index 29c7e5380..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/29.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-273b4b7e\",\"path\":\"/courses/profile-dev-test/29.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":null,\"next\":\".md\",\"author\":\"Aaron Lippold\",\"description\":\"\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/29.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.02,\"words\":7},\"filePathRelative\":\"courses/profile-dev-test/29.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/29.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/29.html.vue deleted file mode 100644 index 162ab33a5..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/29.html.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/Repository-Organization.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/Repository-Organization.html.js deleted file mode 100644 index 21fb6bceb..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/Repository-Organization.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-601a37d4\",\"path\":\"/courses/profile-dev-test/Repository-Organization.html\",\"title\":\"Repository Organization\",\"lang\":\"en-US\",\"frontmatter\":{\"next\":\"03.md\",\"title\":\"Repository Organization\",\"author\":\"Aaron Lippold\",\"index\":true,\"description\":\"The repository and profile are organized into two primary branches: main and TBD. The repository has a set of tags representing iterative releases of the STIG from one Benchmark...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/Repository-Organization.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Repository Organization\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"The repository and profile are organized into two primary branches: main and TBD. The repository has a set of tags representing iterative releases of the STIG from one Benchmark...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Repository Organization\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Branches\",\"slug\":\"branches\",\"link\":\"#branches\",\"children\":[{\"level\":3,\"title\":\"main branch\",\"slug\":\"main-branch\",\"link\":\"#main-branch\",\"children\":[]},{\"level\":3,\"title\":\"v{x}r{xx} branches\",\"slug\":\"v-x-r-xx-branches\",\"link\":\"#v-x-r-xx-branches\",\"children\":[]}]},{\"level\":2,\"title\":\"Releases\",\"slug\":\"releases\",\"link\":\"#releases\",\"children\":[]},{\"level\":2,\"title\":\"Tags\",\"slug\":\"tags\",\"link\":\"#tags\",\"children\":[{\"level\":3,\"title\":\"Current Tag\",\"slug\":\"current-tag\",\"link\":\"#current-tag\",\"children\":[]},{\"level\":3,\"title\":\"Major Tags\",\"slug\":\"major-tags\",\"link\":\"#major-tags\",\"children\":[]},{\"level\":3,\"title\":\"Patch Releases\",\"slug\":\"patch-releases\",\"link\":\"#patch-releases\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.45,\"words\":435},\"filePathRelative\":\"courses/profile-dev-test/Repository-Organization.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/Repository-Organization.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/Repository-Organization.html.vue deleted file mode 100644 index 693f220eb..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/Repository-Organization.html.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/index.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/index.html.js deleted file mode 100644 index b45d4067a..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-10283f91\",\"path\":\"/courses/profile-dev-test/\",\"title\":\"Development & Testing InSpec Profile\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":1,\"next\":\"02.md\",\"title\":\"Development & Testing InSpec Profile\",\"author\":\"Aaron Lippold\",\"description\":\"Overview This profile utilizes a variety of open-source tools including Ruby, the Test Kitchen suite, InSpec compliance language, Ansible, Docker, and shell scripting (bash/zsh)...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Development & Testing InSpec Profile\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Overview This profile utilizes a variety of open-source tools including Ruby, the Test Kitchen suite, InSpec compliance language, Ansible, Docker, and shell scripting (bash/zsh)...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Development & Testing InSpec Profile\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Overview\",\"slug\":\"overview\",\"link\":\"#overview\",\"children\":[]}],\"readingTime\":{\"minutes\":0.67,\"words\":202},\"filePathRelative\":\"courses/profile-dev-test/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/index.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/index.html.vue deleted file mode 100644 index 3fc8f8fa7..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/index.html.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/source.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/source.html.js deleted file mode 100644 index 8e3d39aa3..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/source.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-5b348526\",\"path\":\"/courses/profile-dev-test/source.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{\"description\":\"\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/source.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0,\"words\":0},\"filePathRelative\":\"courses/profile-dev-test/source.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/source.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/source.html.vue deleted file mode 100644 index 162ab33a5..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/source.html.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/x.html.js b/.vuepress/.temp/pages/courses/profile-dev-test/x.html.js deleted file mode 100644 index bc5c453a9..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/x.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7eb94b9c\",\"path\":\"/courses/profile-dev-test/x.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":null,\"next\":\".md\",\"author\":\"Aaron Lippold\",\"description\":\"\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/profile-dev-test/x.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.02,\"words\":7},\"filePathRelative\":\"courses/profile-dev-test/x.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/profile-dev-test/x.html.vue b/.vuepress/.temp/pages/courses/profile-dev-test/x.html.vue deleted file mode 100644 index 162ab33a5..000000000 --- a/.vuepress/.temp/pages/courses/profile-dev-test/x.html.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/02.html.js b/.vuepress/.temp/pages/courses/user/02.html.js deleted file mode 100644 index 5fc5cf937..000000000 --- a/.vuepress/.temp/pages/courses/user/02.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-08816f43\",\"path\":\"/courses/user/02.html\",\"title\":\"2. The Goal of the SAF\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":2,\"next\":\"03.md\",\"title\":\"2. The Goal of the SAF\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"2.1 The Goal of the SAF 1. Accelerate ATO Automate tailored security configuration testing in every build; Aggregate all security assessment results in a single dashboard to sho...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/02.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"2. The Goal of the SAF\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"2.1 The Goal of the SAF 1. Accelerate ATO Automate tailored security configuration testing in every build; Aggregate all security assessment results in a single dashboard to sho...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"2. The Goal of the SAF\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"2.1 The Goal of the SAF\",\"slug\":\"_2-1-the-goal-of-the-saf\",\"link\":\"#_2-1-the-goal-of-the-saf\",\"children\":[{\"level\":3,\"title\":\"1. Accelerate ATO\",\"slug\":\"_1-accelerate-ato\",\"link\":\"#_1-accelerate-ato\",\"children\":[]},{\"level\":3,\"title\":\"2. Establish Security Requirements\",\"slug\":\"_2-establish-security-requirements\",\"link\":\"#_2-establish-security-requirements\",\"children\":[]},{\"level\":3,\"title\":\"3. Build Security In\",\"slug\":\"_3-build-security-in\",\"link\":\"#_3-build-security-in\",\"children\":[]},{\"level\":3,\"title\":\"4. Assess/Monitor Vulnerabilities\",\"slug\":\"_4-assess-monitor-vulnerabilities\",\"link\":\"#_4-assess-monitor-vulnerabilities\",\"children\":[]}]},{\"level\":2,\"title\":\"2.2 The Road to Security Automation\",\"slug\":\"_2-2-the-road-to-security-automation\",\"link\":\"#_2-2-the-road-to-security-automation\",\"children\":[]}],\"readingTime\":{\"minutes\":0.77,\"words\":231},\"filePathRelative\":\"courses/user/02.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/02.html.vue b/.vuepress/.temp/pages/courses/user/02.html.vue deleted file mode 100644 index 255b7a8de..000000000 --- a/.vuepress/.temp/pages/courses/user/02.html.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/03.html.js b/.vuepress/.temp/pages/courses/user/03.html.js deleted file mode 100644 index fce1156db..000000000 --- a/.vuepress/.temp/pages/courses/user/03.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-0a3647e2\",\"path\":\"/courses/user/03.html\",\"title\":\"3. What's the SAF?\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":3,\"next\":\"04.md\",\"title\":\"3. What's the SAF?\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"3. SAF Scavenger Hunt Explore the SAF homepage (https://saf.mitre.org/) to find the answers to this scavenger hunt and familiarize yourself with the topics of this course. When ...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/03.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"3. What's the SAF?\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"3. SAF Scavenger Hunt Explore the SAF homepage (https://saf.mitre.org/) to find the answers to this scavenger hunt and familiarize yourself with the topics of this course. When ...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"3. What's the SAF?\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"3. SAF Scavenger Hunt\",\"slug\":\"_3-saf-scavenger-hunt\",\"link\":\"#_3-saf-scavenger-hunt\",\"children\":[]}],\"readingTime\":{\"minutes\":1.46,\"words\":438},\"filePathRelative\":\"courses/user/03.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/03.html.vue b/.vuepress/.temp/pages/courses/user/03.html.vue deleted file mode 100644 index ddb5240c1..000000000 --- a/.vuepress/.temp/pages/courses/user/03.html.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/04.html.js b/.vuepress/.temp/pages/courses/user/04.html.js deleted file mode 100644 index ac4d5574e..000000000 --- a/.vuepress/.temp/pages/courses/user/04.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-0beb2081\",\"path\":\"/courses/user/04.html\",\"title\":\"4. Getting Started - Plan\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":4,\"next\":\"05.md\",\"title\":\"4. Getting Started - Plan\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"4. Start with Planning The SAF's main pillars are Plan, Harden, Validate, Normalize, and Visualize. First, it is necessary to plan what components will be in your system and ide...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/04.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"4. Getting Started - Plan\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"4. Start with Planning The SAF's main pillars are Plan, Harden, Validate, Normalize, and Visualize. First, it is necessary to plan what components will be in your system and ide...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"4. Getting Started - Plan\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"4. Start with Planning\",\"slug\":\"_4-start-with-planning\",\"link\":\"#_4-start-with-planning\",\"children\":[{\"level\":3,\"title\":\"4.1 Identify your stack of components for the system\",\"slug\":\"_4-1-identify-your-stack-of-components-for-the-system\",\"link\":\"#_4-1-identify-your-stack-of-components-for-the-system\",\"children\":[]},{\"level\":3,\"title\":\"4.2 What is the guidance?\",\"slug\":\"_4-2-what-is-the-guidance\",\"link\":\"#_4-2-what-is-the-guidance\",\"children\":[]},{\"level\":3,\"title\":\"4.3. Content libraries for software components\",\"slug\":\"_4-3-content-libraries-for-software-components\",\"link\":\"#_4-3-content-libraries-for-software-components\",\"children\":[]},{\"level\":3,\"title\":\"4.4. What if there is no content for a software component?\",\"slug\":\"_4-4-what-if-there-is-no-content-for-a-software-component\",\"link\":\"#_4-4-what-if-there-is-no-content-for-a-software-component\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.71,\"words\":513},\"filePathRelative\":\"courses/user/04.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/04.html.vue b/.vuepress/.temp/pages/courses/user/04.html.vue deleted file mode 100644 index cd969c4a7..000000000 --- a/.vuepress/.temp/pages/courses/user/04.html.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/05.html.js b/.vuepress/.temp/pages/courses/user/05.html.js deleted file mode 100644 index e5487f9b2..000000000 --- a/.vuepress/.temp/pages/courses/user/05.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-0d9ff920\",\"path\":\"/courses/user/05.html\",\"title\":\"5. Validation with InSpec Profiles\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":5,\"next\":\"06.md\",\"title\":\"5. Validation with InSpec Profiles\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"5. From \\\"Plan\\\" to \\\"Validate\\\" After identifying software components for your environment and knowing what security guidance exists for those components, a great next step is vali...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/05.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"5. Validation with InSpec Profiles\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"5. From \\\"Plan\\\" to \\\"Validate\\\" After identifying software components for your environment and knowing what security guidance exists for those components, a great next step is vali...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"5. Validation with InSpec Profiles\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"5. From \\\"Plan\\\" to \\\"Validate\\\"\",\"slug\":\"_5-from-plan-to-validate\",\"link\":\"#_5-from-plan-to-validate\",\"children\":[]},{\"level\":2,\"title\":\"5.1 What is InSpec?\",\"slug\":\"_5-1-what-is-inspec\",\"link\":\"#_5-1-what-is-inspec\",\"children\":[]},{\"level\":2,\"title\":\"5.2 Examples of InSpec profiles\",\"slug\":\"_5-2-examples-of-inspec-profiles\",\"link\":\"#_5-2-examples-of-inspec-profiles\",\"children\":[{\"level\":3,\"title\":\"5.2.1 RHEL8 baseline profile\",\"slug\":\"_5-2-1-rhel8-baseline-profile\",\"link\":\"#_5-2-1-rhel8-baseline-profile\",\"children\":[]},{\"level\":3,\"title\":\"5.2.2 NGINX baseline profile\",\"slug\":\"_5-2-2-nginx-baseline-profile\",\"link\":\"#_5-2-2-nginx-baseline-profile\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.04,\"words\":611},\"filePathRelative\":\"courses/user/05.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/05.html.vue b/.vuepress/.temp/pages/courses/user/05.html.vue deleted file mode 100644 index 1013ff365..000000000 --- a/.vuepress/.temp/pages/courses/user/05.html.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/06.html.js b/.vuepress/.temp/pages/courses/user/06.html.js deleted file mode 100644 index f4647224d..000000000 --- a/.vuepress/.temp/pages/courses/user/06.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-0f54d1bf\",\"path\":\"/courses/user/06.html\",\"title\":\"6. How to Run InSpec\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":6,\"next\":\"07.md\",\"title\":\"6. How to Run InSpec\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"6. How to Run InSpec In this section, we will talk about how to run InSpec. In Section 8 (./08.md), you will put this into practice! 6.1 Requirements To run InSpec, you must hav...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/06.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"6. How to Run InSpec\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"6. How to Run InSpec In this section, we will talk about how to run InSpec. In Section 8 (./08.md), you will put this into practice! 6.1 Requirements To run InSpec, you must hav...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"6. How to Run InSpec\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"6. How to Run InSpec\",\"slug\":\"_6-how-to-run-inspec\",\"link\":\"#_6-how-to-run-inspec\",\"children\":[{\"level\":3,\"title\":\"6.1 Requirements\",\"slug\":\"_6-1-requirements\",\"link\":\"#_6-1-requirements\",\"children\":[]},{\"level\":3,\"title\":\"6.2 The InSpec Command Formula\",\"slug\":\"_6-2-the-inspec-command-formula\",\"link\":\"#_6-2-the-inspec-command-formula\",\"children\":[]},{\"level\":3,\"title\":\"6.3 How to Deploy InSpec\",\"slug\":\"_6-3-how-to-deploy-inspec\",\"link\":\"#_6-3-how-to-deploy-inspec\",\"children\":[]}]}],\"readingTime\":{\"minutes\":3.46,\"words\":1039},\"filePathRelative\":\"courses/user/06.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/06.html.vue b/.vuepress/.temp/pages/courses/user/06.html.vue deleted file mode 100644 index 19b1b5893..000000000 --- a/.vuepress/.temp/pages/courses/user/06.html.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/07.html.js b/.vuepress/.temp/pages/courses/user/07.html.js deleted file mode 100644 index a7f985e20..000000000 --- a/.vuepress/.temp/pages/courses/user/07.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-1109aa5e\",\"path\":\"/courses/user/07.html\",\"title\":\"7. Tailoring Inputs for InSpec\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":7,\"next\":\"08.md\",\"title\":\"7. Tailoring Inputs for InSpec\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"7. What are inputs and why do I need them? Every InSpec profile on the SAF site is written to comply with some security guidance. However, every team's environment may be just a...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/07.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"7. Tailoring Inputs for InSpec\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"7. What are inputs and why do I need them? Every InSpec profile on the SAF site is written to comply with some security guidance. However, every team's environment may be just a...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"7. Tailoring Inputs for InSpec\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"7. What are inputs and why do I need them?\",\"slug\":\"_7-what-are-inputs-and-why-do-i-need-them\",\"link\":\"#_7-what-are-inputs-and-why-do-i-need-them\",\"children\":[]},{\"level\":2,\"title\":\"7.1 Profile Inputs (see inspec.yml file)\",\"slug\":\"_7-1-profile-inputs-see-inspec-yml-file\",\"link\":\"#_7-1-profile-inputs-see-inspec-yml-file\",\"children\":[]},{\"level\":2,\"title\":\"7.2 Use an --input-file to tailor an InSpec profile\",\"slug\":\"_7-2-use-an-input-file-to-tailor-an-inspec-profile\",\"link\":\"#_7-2-use-an-input-file-to-tailor-an-inspec-profile\",\"children\":[]}],\"readingTime\":{\"minutes\":3.25,\"words\":976},\"filePathRelative\":\"courses/user/07.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/07.html.vue b/.vuepress/.temp/pages/courses/user/07.html.vue deleted file mode 100644 index f5a77a2a8..000000000 --- a/.vuepress/.temp/pages/courses/user/07.html.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/08.html.js b/.vuepress/.temp/pages/courses/user/08.html.js deleted file mode 100644 index 75ec6ef99..000000000 --- a/.vuepress/.temp/pages/courses/user/08.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-12be82fd\",\"path\":\"/courses/user/08.html\",\"title\":\"8. Running InSpec\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":8,\"next\":\"09.md\",\"title\":\"8. Running InSpec\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"8. Run InSpec - NGINX Example 8.1. Example running an InSpec profile directly from Github In this module, we use NGINX for learning purposes. If you're interested in NGINX speci...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/08.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"8. Running InSpec\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"8. Run InSpec - NGINX Example 8.1. Example running an InSpec profile directly from Github In this module, we use NGINX for learning purposes. If you're interested in NGINX speci...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"8. Running InSpec\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"8. Run InSpec - NGINX Example\",\"slug\":\"_8-run-inspec-nginx-example\",\"link\":\"#_8-run-inspec-nginx-example\",\"children\":[{\"level\":3,\"title\":\"8.1. Example running an InSpec profile directly from Github\",\"slug\":\"_8-1-example-running-an-inspec-profile-directly-from-github\",\"link\":\"#_8-1-example-running-an-inspec-profile-directly-from-github\",\"children\":[]},{\"level\":3,\"title\":\"8.2 Forming the InSpec Command\",\"slug\":\"_8-2-forming-the-inspec-command\",\"link\":\"#_8-2-forming-the-inspec-command\",\"children\":[]},{\"level\":3,\"title\":\"8.3 Run the Command\",\"slug\":\"_8-3-run-the-command\",\"link\":\"#_8-3-run-the-command\",\"children\":[]}]}],\"readingTime\":{\"minutes\":3.69,\"words\":1108},\"filePathRelative\":\"courses/user/08.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/08.html.vue b/.vuepress/.temp/pages/courses/user/08.html.vue deleted file mode 100644 index 69b9d1710..000000000 --- a/.vuepress/.temp/pages/courses/user/08.html.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/09.html.js b/.vuepress/.temp/pages/courses/user/09.html.js deleted file mode 100644 index e1c1ae560..000000000 --- a/.vuepress/.temp/pages/courses/user/09.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-14735b9c\",\"path\":\"/courses/user/09.html\",\"title\":\"9. Visualize Results - Heimdall\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":9,\"next\":\"10.md\",\"title\":\"9. Visualize Results - Heimdall\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"9. Visualize - MITRE Heimdall Now we want to SEE our results in a more meaningful way! The Visualize Capability Navigate to the our online version of the Heimdall application, t...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/09.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"9. Visualize Results - Heimdall\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"9. Visualize - MITRE Heimdall Now we want to SEE our results in a more meaningful way! The Visualize Capability Navigate to the our online version of the Heimdall application, t...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"9. Visualize Results - Heimdall\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"9. Visualize - MITRE Heimdall\",\"slug\":\"_9-visualize-mitre-heimdall\",\"link\":\"#_9-visualize-mitre-heimdall\",\"children\":[{\"level\":3,\"title\":\"9.1 Upload Results\",\"slug\":\"_9-1-upload-results\",\"link\":\"#_9-1-upload-results\",\"children\":[]},{\"level\":3,\"title\":\"9.2 Visualize Results\",\"slug\":\"_9-2-visualize-results\",\"link\":\"#_9-2-visualize-results\",\"children\":[]},{\"level\":3,\"title\":\"9.3 Explore Heimdall\",\"slug\":\"_9-3-explore-heimdall\",\"link\":\"#_9-3-explore-heimdall\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.25,\"words\":674},\"filePathRelative\":\"courses/user/09.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/09.html.vue b/.vuepress/.temp/pages/courses/user/09.html.vue deleted file mode 100644 index f9a951df3..000000000 --- a/.vuepress/.temp/pages/courses/user/09.html.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/10.html.js b/.vuepress/.temp/pages/courses/user/10.html.js deleted file mode 100644 index b37242f30..000000000 --- a/.vuepress/.temp/pages/courses/user/10.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-39fdf946\",\"path\":\"/courses/user/10.html\",\"title\":\"10. Harden\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":10,\"next\":\"11.md\",\"title\":\"10. Harden\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"10. From \\\"Plan\\\" to \\\"Validate\\\" to \\\"Visualize\\\" to \\\"Harden\\\" Finally! We get to secure the software. After starting with a plan, then seeing the requirements and current state throu...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/10.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"10. Harden\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"10. From \\\"Plan\\\" to \\\"Validate\\\" to \\\"Visualize\\\" to \\\"Harden\\\" Finally! We get to secure the software. After starting with a plan, then seeing the requirements and current state throu...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"10. Harden\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"10. From \\\"Plan\\\" to \\\"Validate\\\" to \\\"Visualize\\\" to \\\"Harden\\\"\",\"slug\":\"_10-from-plan-to-validate-to-visualize-to-harden\",\"link\":\"#_10-from-plan-to-validate-to-visualize-to-harden\",\"children\":[{\"level\":3,\"title\":\"10.1 Find the hardening content\",\"slug\":\"_10-1-find-the-hardening-content\",\"link\":\"#_10-1-find-the-hardening-content\",\"children\":[]},{\"level\":3,\"title\":\"10.2 Prepare your Codespaces to run the hardening script\",\"slug\":\"_10-2-prepare-your-codespaces-to-run-the-hardening-script\",\"link\":\"#_10-2-prepare-your-codespaces-to-run-the-hardening-script\",\"children\":[]},{\"level\":3,\"title\":\"10.3 CLI Results of Hardening Script\",\"slug\":\"_10-3-cli-results-of-hardening-script\",\"link\":\"#_10-3-cli-results-of-hardening-script\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.89,\"words\":567},\"filePathRelative\":\"courses/user/10.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/10.html.vue b/.vuepress/.temp/pages/courses/user/10.html.vue deleted file mode 100644 index faa5f4177..000000000 --- a/.vuepress/.temp/pages/courses/user/10.html.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/11.html.js b/.vuepress/.temp/pages/courses/user/11.html.js deleted file mode 100644 index f5962c8b6..000000000 --- a/.vuepress/.temp/pages/courses/user/11.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3bb2d1e5\",\"path\":\"/courses/user/11.html\",\"title\":\"11. Comparing Results\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":11,\"next\":\"12.md\",\"title\":\"11. Comparing Results\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"11. Comparing Results 11.1 Validate the software after hardening Now that we have hardened the software, we need to run InSpec again to see the results. Let's change directories...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/11.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"11. Comparing Results\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"11. Comparing Results 11.1 Validate the software after hardening Now that we have hardened the software, we need to run InSpec again to see the results. Let's change directories...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"11. Comparing Results\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"11. Comparing Results\",\"slug\":\"_11-comparing-results\",\"link\":\"#_11-comparing-results\",\"children\":[{\"level\":3,\"title\":\"11.1 Validate the software after hardening\",\"slug\":\"_11-1-validate-the-software-after-hardening\",\"link\":\"#_11-1-validate-the-software-after-hardening\",\"children\":[]},{\"level\":3,\"title\":\"11.2 CLI Results\",\"slug\":\"_11-2-cli-results\",\"link\":\"#_11-2-cli-results\",\"children\":[]},{\"level\":3,\"title\":\"11.3 Download the Results File\",\"slug\":\"_11-3-download-the-results-file\",\"link\":\"#_11-3-download-the-results-file\",\"children\":[]},{\"level\":3,\"title\":\"11.4 Visualize the Results in Heimdall\",\"slug\":\"_11-4-visualize-the-results-in-heimdall\",\"link\":\"#_11-4-visualize-the-results-in-heimdall\",\"children\":[]}]}],\"readingTime\":{\"minutes\":4.22,\"words\":1265},\"filePathRelative\":\"courses/user/11.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/11.html.vue b/.vuepress/.temp/pages/courses/user/11.html.vue deleted file mode 100644 index b8ea65d17..000000000 --- a/.vuepress/.temp/pages/courses/user/11.html.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/12.html.js b/.vuepress/.temp/pages/courses/user/12.html.js deleted file mode 100644 index 7500f7b24..000000000 --- a/.vuepress/.temp/pages/courses/user/12.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3d67aa84\",\"path\":\"/courses/user/12.html\",\"title\":\"12. Manual Attestations\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":12,\"next\":\"13.md\",\"title\":\"12. Manual Attestations\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"12. Manual Attestations What about controls that cannot be automated and require manual review? You may have noticed that Heimdall displays controls in 4 statuses: Passed, Faile...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/12.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"12. Manual Attestations\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"12. Manual Attestations What about controls that cannot be automated and require manual review? You may have noticed that Heimdall displays controls in 4 statuses: Passed, Faile...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"12. Manual Attestations\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"12. Manual Attestations\",\"slug\":\"_12-manual-attestations\",\"link\":\"#_12-manual-attestations\",\"children\":[{\"level\":3,\"title\":\"12.1 Explore the Not Reviewed Controls\",\"slug\":\"_12-1-explore-the-not-reviewed-controls\",\"link\":\"#_12-1-explore-the-not-reviewed-controls\",\"children\":[]},{\"level\":3,\"title\":\"12.2 Manual Attestations Using SAF CLI\",\"slug\":\"_12-2-manual-attestations-using-saf-cli\",\"link\":\"#_12-2-manual-attestations-using-saf-cli\",\"children\":[]},{\"level\":3,\"title\":\"12.3 Get Familiar with SAF CLI\",\"slug\":\"_12-3-get-familiar-with-saf-cli\",\"link\":\"#_12-3-get-familiar-with-saf-cli\",\"children\":[]},{\"level\":3,\"title\":\"12.4 Create Manual Attestation Data\",\"slug\":\"_12-4-create-manual-attestation-data\",\"link\":\"#_12-4-create-manual-attestation-data\",\"children\":[]},{\"level\":3,\"title\":\"12.5 Apply the Manual Attestation Data\",\"slug\":\"_12-5-apply-the-manual-attestation-data\",\"link\":\"#_12-5-apply-the-manual-attestation-data\",\"children\":[]},{\"level\":3,\"title\":\"12.6 Visualize the Results - Heimdall\",\"slug\":\"_12-6-visualize-the-results-heimdall\",\"link\":\"#_12-6-visualize-the-results-heimdall\",\"children\":[]}]}],\"readingTime\":{\"minutes\":3.89,\"words\":1167},\"filePathRelative\":\"courses/user/12.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/12.html.vue b/.vuepress/.temp/pages/courses/user/12.html.vue deleted file mode 100644 index d377fb3b6..000000000 --- a/.vuepress/.temp/pages/courses/user/12.html.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/13.html.js b/.vuepress/.temp/pages/courses/user/13.html.js deleted file mode 100644 index f1771570d..000000000 --- a/.vuepress/.temp/pages/courses/user/13.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-3f1c8323\",\"path\":\"/courses/user/13.html\",\"title\":\"13. InSpec Exercise - RedHat\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":13,\"next\":\"14.md\",\"title\":\"13. InSpec Exercise - RedHat\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"13. RedHat Example Now it's time to put what you have learned to the test. Can you use the NGINX example to form an InSpec command for the RedHat8 docker container that is runni...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/13.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"13. InSpec Exercise - RedHat\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"13. RedHat Example Now it's time to put what you have learned to the test. Can you use the NGINX example to form an InSpec command for the RedHat8 docker container that is runni...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"13. InSpec Exercise - RedHat\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"13. RedHat Example\",\"slug\":\"_13-redhat-example\",\"link\":\"#_13-redhat-example\",\"children\":[]}],\"readingTime\":{\"minutes\":0.61,\"words\":182},\"filePathRelative\":\"courses/user/13.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/13.html.vue b/.vuepress/.temp/pages/courses/user/13.html.vue deleted file mode 100644 index 7e7ac3b8d..000000000 --- a/.vuepress/.temp/pages/courses/user/13.html.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/14.html.js b/.vuepress/.temp/pages/courses/user/14.html.js deleted file mode 100644 index 544daa466..000000000 --- a/.vuepress/.temp/pages/courses/user/14.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-40d15bc2\",\"path\":\"/courses/user/14.html\",\"title\":\"14. Normalize Other Data!\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":14,\"next\":\"15.md\",\"title\":\"14. Normalize Other Data!\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"14. Normalize Remember the \\\"Normalize\\\" pillar? We skipped over it when we were doing InSpec validation because InSpec results are automatically in HDF (or Heimdall Data Format)....\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/14.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"14. Normalize Other Data!\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"14. Normalize Remember the \\\"Normalize\\\" pillar? We skipped over it when we were doing InSpec validation because InSpec results are automatically in HDF (or Heimdall Data Format)....\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"14. Normalize Other Data!\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"14. Normalize\",\"slug\":\"_14-normalize\",\"link\":\"#_14-normalize\",\"children\":[{\"level\":3,\"title\":\"14.1 Convert with SAF CLI\",\"slug\":\"_14-1-convert-with-saf-cli\",\"link\":\"#_14-1-convert-with-saf-cli\",\"children\":[]},{\"level\":3,\"title\":\"14.2 Convert with Heimdall\",\"slug\":\"_14-2-convert-with-heimdall\",\"link\":\"#_14-2-convert-with-heimdall\",\"children\":[]},{\"level\":3,\"title\":\"14.3 Visualize the Big Picture\",\"slug\":\"_14-3-visualize-the-big-picture\",\"link\":\"#_14-3-visualize-the-big-picture\",\"children\":[]},{\"level\":3,\"title\":\"14.4 Export Data To Other Formats\",\"slug\":\"_14-4-export-data-to-other-formats\",\"link\":\"#_14-4-export-data-to-other-formats\",\"children\":[]}]}],\"readingTime\":{\"minutes\":1.26,\"words\":379},\"filePathRelative\":\"courses/user/14.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/14.html.vue b/.vuepress/.temp/pages/courses/user/14.html.vue deleted file mode 100644 index b38cd7f3e..000000000 --- a/.vuepress/.temp/pages/courses/user/14.html.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/15.html.js b/.vuepress/.temp/pages/courses/user/15.html.js deleted file mode 100644 index 33d9360dc..000000000 --- a/.vuepress/.temp/pages/courses/user/15.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-42863461\",\"path\":\"/courses/user/15.html\",\"title\":\"15. Extra Info - Running InSpec with a Local Profile\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":15,\"next\":\"16.md\",\"title\":\"15. Extra Info - Running InSpec with a Local Profile\",\"author\":\"Mo\",\"headerDepth\":3,\"description\":\"15. Example running an InSpec profile using a local archive (for air-gapped target systems) For more information on how to install InSpec on an airgapped system use the chef ins...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/15.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"15. Extra Info - Running InSpec with a Local Profile\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"15. Example running an InSpec profile using a local archive (for air-gapped target systems) For more information on how to install InSpec on an airgapped system use the chef ins...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mo\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"15. Extra Info - Running InSpec with a Local Profile\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mo\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"15. Example running an InSpec profile using a local archive (for air-gapped target systems)\",\"slug\":\"_15-example-running-an-inspec-profile-using-a-local-archive-for-air-gapped-target-systems\",\"link\":\"#_15-example-running-an-inspec-profile-using-a-local-archive-for-air-gapped-target-systems\",\"children\":[{\"level\":3,\"title\":\"15.1. Prerequisites\",\"slug\":\"_15-1-prerequisites\",\"link\":\"#_15-1-prerequisites\",\"children\":[]},{\"level\":3,\"title\":\"15.2. Required cookbooks\",\"slug\":\"_15-2-required-cookbooks\",\"link\":\"#_15-2-required-cookbooks\",\"children\":[]},{\"level\":3,\"title\":\"15.3. Required Gems\",\"slug\":\"_15-3-required-gems\",\"link\":\"#_15-3-required-gems\",\"children\":[]},{\"level\":3,\"title\":\"15.4. Create an install script\",\"slug\":\"_15-4-create-an-install-script\",\"link\":\"#_15-4-create-an-install-script\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.24,\"words\":671},\"filePathRelative\":\"courses/user/15.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/15.html.vue b/.vuepress/.temp/pages/courses/user/15.html.vue deleted file mode 100644 index 359f5cb3f..000000000 --- a/.vuepress/.temp/pages/courses/user/15.html.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/16.html.js b/.vuepress/.temp/pages/courses/user/16.html.js deleted file mode 100644 index 302151652..000000000 --- a/.vuepress/.temp/pages/courses/user/16.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-443b0d00\",\"path\":\"/courses/user/16.html\",\"title\":\"16. Next Steps\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":16,\"title\":\"16. Next Steps\",\"author\":\"Emily\",\"headerDepth\":3,\"description\":\"16. Next Steps 16.1 Take the Class Survey Take our 9 question SAF User Class survey (https://forms.office.com/g/UxNr3nhtcm) to give feedback to fuel class improvement. 16.2 Take...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/16.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"16. Next Steps\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"16. Next Steps 16.1 Take the Class Survey Take our 9 question SAF User Class survey (https://forms.office.com/g/UxNr3nhtcm) to give feedback to fuel class improvement. 16.2 Take...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"16. Next Steps\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"16. Next Steps\",\"slug\":\"_16-next-steps\",\"link\":\"#_16-next-steps\",\"children\":[{\"level\":3,\"title\":\"16.1 Take the Class Survey\",\"slug\":\"_16-1-take-the-class-survey\",\"link\":\"#_16-1-take-the-class-survey\",\"children\":[]},{\"level\":3,\"title\":\"16.2 Take the Beginner Security Automation Developer Class\",\"slug\":\"_16-2-take-the-beginner-security-automation-developer-class\",\"link\":\"#_16-2-take-the-beginner-security-automation-developer-class\",\"children\":[]},{\"level\":3,\"title\":\"16.3 Check Out the Rest of MITRE SAF(c)'s Content\",\"slug\":\"_16-3-check-out-the-rest-of-mitre-saf-c-s-content\",\"link\":\"#_16-3-check-out-the-rest-of-mitre-saf-c-s-content\",\"children\":[]},{\"level\":3,\"title\":\"16.4 Contact Us\",\"slug\":\"_16-4-contact-us\",\"link\":\"#_16-4-contact-us\",\"children\":[]}]}],\"readingTime\":{\"minutes\":0.9,\"words\":269},\"filePathRelative\":\"courses/user/16.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/16.html.vue b/.vuepress/.temp/pages/courses/user/16.html.vue deleted file mode 100644 index 0068df601..000000000 --- a/.vuepress/.temp/pages/courses/user/16.html.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/courses/user/index.html.js b/.vuepress/.temp/pages/courses/user/index.html.js deleted file mode 100644 index b74f9a5af..000000000 --- a/.vuepress/.temp/pages/courses/user/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-6d2f3654\",\"path\":\"/courses/user/\",\"title\":\"SAF User Class\",\"lang\":\"en-US\",\"frontmatter\":{\"order\":1,\"next\":\"02.md\",\"title\":\"SAF User Class\",\"shortTitle\":\"SAF User Class\",\"author\":\"Aaron Lippold\",\"headerDepth\":3,\"description\":\"1.1 Class Overview The purpose of this class is to gain understanding and hands-on practical use of MITRE's Security Automation Framework with a focus on automating security val...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/courses/user/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"SAF User Class\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"1.1 Class Overview The purpose of this class is to gain understanding and hands-on practical use of MITRE's Security Automation Framework with a focus on automating security val...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"SAF User Class\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"1.1 Class Overview\",\"slug\":\"_1-1-class-overview\",\"link\":\"#_1-1-class-overview\",\"children\":[]},{\"level\":2,\"title\":\"1.2 Consider your current status\",\"slug\":\"_1-2-consider-your-current-status\",\"link\":\"#_1-2-consider-your-current-status\",\"children\":[]},{\"level\":2,\"title\":\"1.3 Class Objectives:\",\"slug\":\"_1-3-class-objectives\",\"link\":\"#_1-3-class-objectives\",\"children\":[]},{\"level\":2,\"title\":\"1.4 The Road to Security Automation\",\"slug\":\"_1-4-the-road-to-security-automation\",\"link\":\"#_1-4-the-road-to-security-automation\",\"children\":[]}],\"readingTime\":{\"minutes\":1.17,\"words\":350},\"filePathRelative\":\"courses/user/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/courses/user/index.html.vue b/.vuepress/.temp/pages/courses/user/index.html.vue deleted file mode 100644 index f311e4bd6..000000000 --- a/.vuepress/.temp/pages/courses/user/index.html.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/demo/disable.html.js b/.vuepress/.temp/pages/demo/disable.html.js deleted file mode 100644 index 78e2a42ea..000000000 --- a/.vuepress/.temp/pages/demo/disable.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-4e65ec78\",\"path\":\"/demo/disable.html\",\"title\":\"Disabling layout and features\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Disabling layout and features\",\"icon\":\"gears\",\"order\":3,\"category\":[\"Guide\"],\"tag\":[\"disable\"],\"navbar\":false,\"sidebar\":false,\"breadcrumb\":false,\"pageInfo\":false,\"contributors\":false,\"editLink\":false,\"lastUpdated\":false,\"prev\":false,\"next\":false,\"comment\":false,\"footer\":false,\"backtotop\":false,\"description\":\"You can disable some function and layout on the page by setting the Frontmatter of the page. This page is an demo that disables the following features: Navbar; Sidebar; Breadcru...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/demo/disable.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Disabling layout and features\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"You can disable some function and layout on the page by setting the Frontmatter of the page. This page is an demo that disables the following features: Navbar; Sidebar; Breadcru...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"meta\",{\"property\":\"article:tag\",\"content\":\"disable\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Disabling layout and features\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.28,\"words\":83},\"filePathRelative\":\"demo/disable.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/demo/disable.html.vue b/.vuepress/.temp/pages/demo/disable.html.vue deleted file mode 100644 index 00df1fbd8..000000000 --- a/.vuepress/.temp/pages/demo/disable.html.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/demo/encrypt.html.js b/.vuepress/.temp/pages/demo/encrypt.html.js deleted file mode 100644 index c3e3d2eea..000000000 --- a/.vuepress/.temp/pages/demo/encrypt.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-c151bf32\",\"path\":\"/demo/encrypt.html\",\"title\":\"Encryption Article\",\"lang\":\"en-US\",\"frontmatter\":{\"icon\":\"lock\",\"category\":[\"Guide\"],\"tag\":[\"encryption\"],\"feed\":false,\"seo\":false,\"head\":[]},\"headers\":[],\"readingTime\":{\"minutes\":0.3,\"words\":90},\"filePathRelative\":\"demo/encrypt.md\"}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/demo/encrypt.html.vue b/.vuepress/.temp/pages/demo/encrypt.html.vue deleted file mode 100644 index 41a07f924..000000000 --- a/.vuepress/.temp/pages/demo/encrypt.html.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/demo/index.html.js b/.vuepress/.temp/pages/demo/index.html.js deleted file mode 100644 index 14d066906..000000000 --- a/.vuepress/.temp/pages/demo/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-1473bf53\",\"path\":\"/demo/\",\"title\":\"Features demo\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Features demo\",\"index\":false,\"icon\":\"laptop-code\",\"category\":[\"Guide\"],\"description\":\"Catalog Markdown Enhance (markdown.md); Page Config (page.md); Function Disable (disable.md); Encryption Demo (encrypt.md);\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/demo/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Features demo\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Catalog Markdown Enhance (markdown.md); Page Config (page.md); Function Disable (disable.md); Encryption Demo (encrypt.md);\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Features demo\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Catalog\",\"slug\":\"catalog\",\"link\":\"#catalog\",\"children\":[]}],\"readingTime\":{\"minutes\":0.08,\"words\":23},\"filePathRelative\":\"demo/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/demo/index.html.vue b/.vuepress/.temp/pages/demo/index.html.vue deleted file mode 100644 index 20bf722b9..000000000 --- a/.vuepress/.temp/pages/demo/index.html.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/demo/markdown.html.js b/.vuepress/.temp/pages/demo/markdown.html.js deleted file mode 100644 index e722262d0..000000000 --- a/.vuepress/.temp/pages/demo/markdown.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-438ffe52\",\"path\":\"/demo/markdown.html\",\"title\":\"Markdown Enhance\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Markdown Enhance\",\"icon\":\"fab fa-markdown\",\"order\":2,\"category\":[\"Guide\"],\"tag\":[\"Markdown\"],\"description\":\"VuePress basically generate pages from Markdown files. So you can use it to generate documentation or blog sites easily. You should create and write Markdown files, so that VueP...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/demo/markdown.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Markdown Enhance\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"VuePress basically generate pages from Markdown files. So you can use it to generate documentation or blog sites easily. You should create and write Markdown files, so that VueP...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"meta\",{\"property\":\"article:tag\",\"content\":\"Markdown\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Markdown Enhance\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Markdown Introduction\",\"slug\":\"markdown-introduction\",\"link\":\"#markdown-introduction\",\"children\":[]},{\"level\":2,\"title\":\"Markdown Config\",\"slug\":\"markdown-config\",\"link\":\"#markdown-config\",\"children\":[]},{\"level\":2,\"title\":\"Markdown Extension\",\"slug\":\"markdown-extension\",\"link\":\"#markdown-extension\",\"children\":[{\"level\":3,\"title\":\"VuePress Enhancement\",\"slug\":\"vuepress-enhancement\",\"link\":\"#vuepress-enhancement\",\"children\":[]},{\"level\":3,\"title\":\"Theme Enhancement\",\"slug\":\"theme-enhancement\",\"link\":\"#theme-enhancement\",\"children\":[]}]}],\"readingTime\":{\"minutes\":2.64,\"words\":793},\"filePathRelative\":\"demo/markdown.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/demo/markdown.html.vue b/.vuepress/.temp/pages/demo/markdown.html.vue deleted file mode 100644 index 2f37d6484..000000000 --- a/.vuepress/.temp/pages/demo/markdown.html.vue +++ /dev/null @@ -1,281 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/demo/page.html.js b/.vuepress/.temp/pages/demo/page.html.js deleted file mode 100644 index 34cea1ebd..000000000 --- a/.vuepress/.temp/pages/demo/page.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-6e19edb7\",\"path\":\"/demo/page.html\",\"title\":\"Page Config\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Page Config\",\"icon\":\"file\",\"order\":1,\"author\":\"Ms.Hope\",\"date\":\"2020-01-01T00:00:00.000Z\",\"category\":[\"Guide\"],\"tag\":[\"Page config\",\"Guide\"],\"sticky\":true,\"star\":true,\"footer\":\"Footer content for test\",\"copyright\":\"No Copyright\",\"description\":\"Content before more comment is regarded as page excerpt. Page Information You can set page information in Markdown's Frontmatter. The author is Ms.Hope.; The writing date is Jan...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/demo/page.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Page Config\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Content before more comment is regarded as page excerpt. Page Information You can set page information in Markdown's Frontmatter. The author is Ms.Hope.; The writing date is Jan...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Ms.Hope\"}],[\"meta\",{\"property\":\"article:tag\",\"content\":\"Page config\"}],[\"meta\",{\"property\":\"article:tag\",\"content\":\"Guide\"}],[\"meta\",{\"property\":\"article:published_time\",\"content\":\"2020-01-01T00:00:00.000Z\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Page Config\\\",\\\"image\\\":[\\\"\\\"],\\\"datePublished\\\":\\\"2020-01-01T00:00:00.000Z\\\",\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Ms.Hope\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Page Information\",\"slug\":\"page-information\",\"link\":\"#page-information\",\"children\":[]},{\"level\":2,\"title\":\"Page Content\",\"slug\":\"page-content\",\"link\":\"#page-content\",\"children\":[]},{\"level\":2,\"title\":\"Page Structure\",\"slug\":\"page-structure\",\"link\":\"#page-structure\",\"children\":[]}],\"readingTime\":{\"minutes\":0.89,\"words\":268},\"filePathRelative\":\"demo/page.md\",\"localizedDate\":\"December 31, 2019\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/demo/page.html.vue b/.vuepress/.temp/pages/demo/page.html.vue deleted file mode 100644 index 247415058..000000000 --- a/.vuepress/.temp/pages/demo/page.html.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/guide/bar/baz.html.js b/.vuepress/.temp/pages/guide/bar/baz.html.js deleted file mode 100644 index fb9630872..000000000 --- a/.vuepress/.temp/pages/guide/bar/baz.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-177e1f06\",\"path\":\"/guide/bar/baz.html\",\"title\":\"Baz\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Baz\",\"icon\":\"circle-info\",\"description\":\"Feature details here.\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/guide/bar/baz.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Baz\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Feature details here.\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Baz\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.03,\"words\":8},\"filePathRelative\":\"guide/bar/baz.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/guide/bar/baz.html.vue b/.vuepress/.temp/pages/guide/bar/baz.html.vue deleted file mode 100644 index 094b5e5f7..000000000 --- a/.vuepress/.temp/pages/guide/bar/baz.html.vue +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/guide/bar/index.html.js b/.vuepress/.temp/pages/guide/bar/index.html.js deleted file mode 100644 index 2b9921916..000000000 --- a/.vuepress/.temp/pages/guide/bar/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-5d5c2d30\",\"path\":\"/guide/bar/\",\"title\":\"Bar feature\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Bar feature\",\"icon\":\"lightbulb\",\"description\":\"Introduction We support bar feature, ... Details baz (baz.md); ...;\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/guide/bar/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Bar feature\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Introduction We support bar feature, ... Details baz (baz.md); ...;\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Bar feature\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Introduction\",\"slug\":\"introduction\",\"link\":\"#introduction\",\"children\":[]},{\"level\":2,\"title\":\"Details\",\"slug\":\"details\",\"link\":\"#details\",\"children\":[]}],\"readingTime\":{\"minutes\":0.05,\"words\":15},\"filePathRelative\":\"guide/bar/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/guide/bar/index.html.vue b/.vuepress/.temp/pages/guide/bar/index.html.vue deleted file mode 100644 index 6b18e3b2d..000000000 --- a/.vuepress/.temp/pages/guide/bar/index.html.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/guide/foo/index.html.js b/.vuepress/.temp/pages/guide/foo/index.html.js deleted file mode 100644 index dd669860f..000000000 --- a/.vuepress/.temp/pages/guide/foo/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-5d5821d6\",\"path\":\"/guide/foo/\",\"title\":\"Foo feature\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Foo feature\",\"icon\":\"lightbulb\",\"description\":\"Introduction We support foo feature, ... Details ray (ray.md); ...;\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/guide/foo/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Foo feature\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Introduction We support foo feature, ... Details ray (ray.md); ...;\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Foo feature\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Introduction\",\"slug\":\"introduction\",\"link\":\"#introduction\",\"children\":[]},{\"level\":2,\"title\":\"Details\",\"slug\":\"details\",\"link\":\"#details\",\"children\":[]}],\"readingTime\":{\"minutes\":0.05,\"words\":15},\"filePathRelative\":\"guide/foo/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/guide/foo/index.html.vue b/.vuepress/.temp/pages/guide/foo/index.html.vue deleted file mode 100644 index 127cacecc..000000000 --- a/.vuepress/.temp/pages/guide/foo/index.html.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/guide/foo/ray.html.js b/.vuepress/.temp/pages/guide/foo/ray.html.js deleted file mode 100644 index b0790269c..000000000 --- a/.vuepress/.temp/pages/guide/foo/ray.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-0b6fc5f8\",\"path\":\"/guide/foo/ray.html\",\"title\":\"Ray\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Ray\",\"icon\":\"circle-info\",\"description\":\"Feature details here.\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/guide/foo/ray.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Ray\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Feature details here.\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Ray\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.03,\"words\":8},\"filePathRelative\":\"guide/foo/ray.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/guide/foo/ray.html.vue b/.vuepress/.temp/pages/guide/foo/ray.html.vue deleted file mode 100644 index 094b5e5f7..000000000 --- a/.vuepress/.temp/pages/guide/foo/ray.html.vue +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/guide/index.html.js b/.vuepress/.temp/pages/guide/index.html.js deleted file mode 100644 index 441d10c2f..000000000 --- a/.vuepress/.temp/pages/guide/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-fffb8e28\",\"path\":\"/guide/\",\"title\":\"Guide\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Guide\",\"icon\":\"lightbulb\",\"description\":\"Highlight Features Bar baz (bar/baz.md); ...; Foo ray (foo/ray.md); ...;\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/guide/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Guide\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Highlight Features Bar baz (bar/baz.md); ...; Foo ray (foo/ray.md); ...;\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Guide\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Highlight Features\",\"slug\":\"highlight-features\",\"link\":\"#highlight-features\",\"children\":[{\"level\":3,\"title\":\"Bar\",\"slug\":\"bar\",\"link\":\"#bar\",\"children\":[]},{\"level\":3,\"title\":\"Foo\",\"slug\":\"foo\",\"link\":\"#foo\",\"children\":[]}]}],\"readingTime\":{\"minutes\":0.05,\"words\":14},\"filePathRelative\":\"guide/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/guide/index.html.vue b/.vuepress/.temp/pages/guide/index.html.vue deleted file mode 100644 index 46c8a7c94..000000000 --- a/.vuepress/.temp/pages/guide/index.html.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/index.html.js b/.vuepress/.temp/pages/index.html.js deleted file mode 100644 index cbc85488d..000000000 --- a/.vuepress/.temp/pages/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-8daa1a0e\",\"path\":\"/\",\"title\":\"MITRE SAF Training\",\"lang\":\"en-US\",\"frontmatter\":{\"home\":true,\"icon\":\"home\",\"title\":\"MITRE SAF Training\",\"heroImage\":\"/logo.svg\",\"heroText\":\"MITRE SAF Training\",\"tagline\":\"From Guidance Document to Automated Testing In No Time!\",\"actions\":[{\"text\":\"User Class\",\"link\":\"/courses/user/\",\"type\":\"primary\"},{\"text\":\"Beginner Security Automation\",\"link\":\"/courses/beginner/\",\"type\":\"primary\"},{\"text\":\"Advanced Security Automation\",\"link\":\"/courses/advanced/\",\"type\":\"primary\"},{\"text\":\"Guidance Development\",\"type\":\"primary\",\"link\":\"/courses/guidance/\"},{\"text\":\"InSpec Profile Updating & Development\",\"type\":\"primary\",\"link\":\"/courses/profile-dev-test\"}],\"highlights\":[{\"header\":\"What You Will Learn\",\"description\":\"Our classes cover a large range of topics from the MITRE Security Automation Framework.\",\"bgImage\":\"https://theme-hope-assets.vuejs.press/bg/2-light.svg\",\"bgImageDark\":\"https://theme-hope-assets.vuejs.press/bg/2-dark.svg\",\"bgImageStyle\":{\"background-repeat\":\"repeat\",\"background-size\":\"initial\"},\"features\":[{\"title\":\"Learn the architecture of an InSpec profile\",\"icon\":\"support\",\"details\":\"Understand InSpec's design and flexible deployment options\"},{\"title\":\"Dive into the InSpec framework and its capabilities\",\"icon\":\"frame\",\"details\":\"Create connected components and modules - including unit tests - right from the CLI\"},{\"title\":\"Build an InSpec profile to transform security policy into automated security testing\",\"icon\":\"build\",\"details\":\"Understand InSpec profiles via hands-on development\"},{\"title\":\"Run an InSpec profile against a component of an application stack\",\"icon\":\"view\",\"details\":\"Learn how to utilize the profiles we build to run against an application stack\"},{\"title\":\"Report Results\",\"icon\":\"form\",\"details\":\"Use InSpec to generate normalized, portable security test result reports for your pipeline\"},{\"title\":\"View and analyze InSpec results\",\"icon\":\"eye\",\"details\":\"Learn how to deliver InSpec results files to the Heimdall visualization app for easy analysis of your system's security posture\"},{\"title\":\"Automate security testing\",\"icon\":\"change\",\"details\":\"Integrate InSpec into a CI/CD pipeline\",\"link\":\"/courses/advanced/04.md\"},{\"title\":\"Extend InSpec to meet new use cases\",\"icon\":\"tool\",\"details\":\"Develop resources to aid in creating controls\",\"link\":\"/courses/advanced/06.md\"},{\"title\":\"Contribute to the open-source security community\",\"icon\":\"community\",\"details\":\"Add the resources you develop to the InSpec framework\",\"link\":\"/courses/advanced/14.md\"}]},{\"header\":\"Useful Resources\",\"bgImage\":\"https://theme-hope-assets.vuejs.press/bg/1-light.svg\",\"bgImageDark\":\"https://theme-hope-assets.vuejs.press/bg/1-dark.svg\",\"features\":[{\"title\":\"Go To the Development Lab\",\"details\":\"Where you can take your training\",\"link\":\"https://github.com/mitre/saf-training-lab-environment\",\"icon\":\"lab\"},{\"title\":\"Getting Started with Ruby (text)\",\"link\":\"https://ruby-for-beginners.rubymonstas.org/\"},{\"title\":\"Ruby Walkthrough (video)\",\"link\":\"https://www.youtube.com/watch?v=t_ispmWmdjY&vl=en\"},{\"title\":\"Ruby in 20 minutes\",\"link\":\"https://www.ruby-lang.org/en/documentation/quickstart\",\"icon\":\"rubygems\"},{\"title\":\"Ruby Programming Language - Full Course\",\"link\":\"https://www.youtube.com/watch?v=t_ispmWmdjY&vl=en\"}]}],\"copyright\":\"Apache-2.0 | Copyright © 2023 | The MITRE Corporation\",\"footer\":\"\",\"description\":\"\"},\"headers\":[],\"readingTime\":{\"minutes\":2.03,\"words\":608},\"filePathRelative\":\"README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/index.html.vue b/.vuepress/.temp/pages/index.html.vue deleted file mode 100644 index 162ab33a5..000000000 --- a/.vuepress/.temp/pages/index.html.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/installation/LinuxInstall.html.js b/.vuepress/.temp/pages/installation/LinuxInstall.html.js deleted file mode 100644 index 28590c22d..000000000 --- a/.vuepress/.temp/pages/installation/LinuxInstall.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2ae58894\",\"path\":\"/installation/LinuxInstall.html\",\"title\":\"Installing InSpec on Linux\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Installing InSpec on Linux\",\"author\":\"Aaron Lippold\",\"prev\":\"./\",\"description\":\"Option 1 (Package installer) The InSpec package is available for MacOS, RedHat, Ubuntu and Windows. Download the latest package at InSpec Downloads (https://downloads.chef.io/in...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/installation/LinuxInstall.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Installing InSpec on Linux\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Option 1 (Package installer) The InSpec package is available for MacOS, RedHat, Ubuntu and Windows. Download the latest package at InSpec Downloads (https://downloads.chef.io/in...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Installing InSpec on Linux\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Option 1 (Package installer)\",\"slug\":\"option-1-package-installer\",\"link\":\"#option-1-package-installer\",\"children\":[]},{\"level\":2,\"title\":\"Option 2 (Terminal install)\",\"slug\":\"option-2-terminal-install\",\"link\":\"#option-2-terminal-install\",\"children\":[]},{\"level\":2,\"title\":\"After Install\",\"slug\":\"after-install\",\"link\":\"#after-install\",\"children\":[]}],\"readingTime\":{\"minutes\":0.56,\"words\":168},\"filePathRelative\":\"installation/LinuxInstall.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/installation/LinuxInstall.html.vue b/.vuepress/.temp/pages/installation/LinuxInstall.html.vue deleted file mode 100644 index c48f6f80b..000000000 --- a/.vuepress/.temp/pages/installation/LinuxInstall.html.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/installation/MacInstall.html.js b/.vuepress/.temp/pages/installation/MacInstall.html.js deleted file mode 100644 index 1e9e7854b..000000000 --- a/.vuepress/.temp/pages/installation/MacInstall.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-59a19ede\",\"path\":\"/installation/MacInstall.html\",\"title\":\"Installing InSpec on MacOS\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Installing InSpec on MacOS\",\"author\":\"Aaron Lippold\",\"prev\":\"./\",\"description\":\"Option 1 (Package installer) The InSpec package is available for MacOS, RedHat, Ubuntu and Windows. Download the latest package at InSpec Downloads (https://downloads.chef.io/in...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/installation/MacInstall.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Installing InSpec on MacOS\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Option 1 (Package installer) The InSpec package is available for MacOS, RedHat, Ubuntu and Windows. Download the latest package at InSpec Downloads (https://downloads.chef.io/in...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Installing InSpec on MacOS\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Option 1 (Package installer)\",\"slug\":\"option-1-package-installer\",\"link\":\"#option-1-package-installer\",\"children\":[]},{\"level\":2,\"title\":\"Option 2 (Terminal install)\",\"slug\":\"option-2-terminal-install\",\"link\":\"#option-2-terminal-install\",\"children\":[]},{\"level\":2,\"title\":\"After Install\",\"slug\":\"after-install\",\"link\":\"#after-install\",\"children\":[]}],\"readingTime\":{\"minutes\":0.71,\"words\":213},\"filePathRelative\":\"installation/MacInstall.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/installation/MacInstall.html.vue b/.vuepress/.temp/pages/installation/MacInstall.html.vue deleted file mode 100644 index c22b6198e..000000000 --- a/.vuepress/.temp/pages/installation/MacInstall.html.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/installation/WindowsInstall.html.js b/.vuepress/.temp/pages/installation/WindowsInstall.html.js deleted file mode 100644 index 568f36e87..000000000 --- a/.vuepress/.temp/pages/installation/WindowsInstall.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-4f4ac476\",\"path\":\"/installation/WindowsInstall.html\",\"title\":\"Installing InSpec on Windows\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Installing InSpec on Windows\",\"author\":\"Aaron Lippold\",\"prev\":\"./\",\"description\":\"Install Ruby Go to https://rubyinstaller.org/downloads/ (https://rubyinstaller.org/downloads/) and download and install the newest ruby that corresponds with your operating syst...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/installation/WindowsInstall.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Installing InSpec on Windows\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Install Ruby Go to https://rubyinstaller.org/downloads/ (https://rubyinstaller.org/downloads/) and download and install the newest ruby that corresponds with your operating syst...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Installing InSpec on Windows\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Install Ruby\",\"slug\":\"install-ruby\",\"link\":\"#install-ruby\",\"children\":[]},{\"level\":2,\"title\":\"Install InSpec\",\"slug\":\"install-inspec\",\"link\":\"#install-inspec\",\"children\":[{\"level\":3,\"title\":\"Option 1 (Download as a package)\",\"slug\":\"option-1-download-as-a-package\",\"link\":\"#option-1-download-as-a-package\",\"children\":[]},{\"level\":3,\"title\":\"Option 2 (Download as a ruby gem)\",\"slug\":\"option-2-download-as-a-ruby-gem\",\"link\":\"#option-2-download-as-a-ruby-gem\",\"children\":[]},{\"level\":3,\"title\":\"Option 3 (windows only)\",\"slug\":\"option-3-windows-only\",\"link\":\"#option-3-windows-only\",\"children\":[]}]},{\"level\":2,\"title\":\"Download additional required gems\",\"slug\":\"download-additional-required-gems\",\"link\":\"#download-additional-required-gems\",\"children\":[]},{\"level\":2,\"title\":\"After Install\",\"slug\":\"after-install\",\"link\":\"#after-install\",\"children\":[]}],\"readingTime\":{\"minutes\":0.93,\"words\":280},\"filePathRelative\":\"installation/WindowsInstall.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/installation/WindowsInstall.html.vue b/.vuepress/.temp/pages/installation/WindowsInstall.html.vue deleted file mode 100644 index 4db637299..000000000 --- a/.vuepress/.temp/pages/installation/WindowsInstall.html.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/installation/index.html.js b/.vuepress/.temp/pages/installation/index.html.js deleted file mode 100644 index 835f63bd4..000000000 --- a/.vuepress/.temp/pages/installation/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-08a5d2dc\",\"path\":\"/installation/\",\"title\":\"Installing InSpec On Your Machine\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Installing InSpec On Your Machine\",\"author\":\"Aaron Lippold\",\"prev\":\"/\",\"description\":\"You can install InSpec in many ways on your system. Install on MacOS (MacInstall.md); Install on Linux (LinuxInstall.md); Install on Windows (WindowsInstall.md); Should you have...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/installation/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Installing InSpec On Your Machine\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"You can install InSpec in many ways on your system. Install on MacOS (MacInstall.md); Install on Linux (LinuxInstall.md); Install on Windows (WindowsInstall.md); Should you have...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Aaron Lippold\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Installing InSpec On Your Machine\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Aaron Lippold\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.18,\"words\":55},\"filePathRelative\":\"installation/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/installation/index.html.vue b/.vuepress/.temp/pages/installation/index.html.vue deleted file mode 100644 index 8cfdab335..000000000 --- a/.vuepress/.temp/pages/installation/index.html.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/resources/02.html.js b/.vuepress/.temp/pages/resources/02.html.js deleted file mode 100644 index a9643f636..000000000 --- a/.vuepress/.temp/pages/resources/02.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-255cf054\",\"path\":\"/resources/02.html\",\"title\":\"Codespaces Resources\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Codespaces Resources\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"Using Codespaces on GitHub for the Development Lab 1. My Codespace is stopped! What do I do? This is normal. Your codespace will timeout after some period of inactivity. When yo...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/resources/02.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Codespaces Resources\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Using Codespaces on GitHub for the Development Lab 1. My Codespace is stopped! What do I do? This is normal. Your codespace will timeout after some period of inactivity. When yo...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Codespaces Resources\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Using Codespaces on GitHub for the Development Lab\",\"slug\":\"using-codespaces-on-github-for-the-development-lab\",\"link\":\"#using-codespaces-on-github-for-the-development-lab\",\"children\":[]}],\"readingTime\":{\"minutes\":0.74,\"words\":222},\"filePathRelative\":\"resources/02.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/resources/02.html.vue b/.vuepress/.temp/pages/resources/02.html.vue deleted file mode 100644 index 5bd432937..000000000 --- a/.vuepress/.temp/pages/resources/02.html.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/resources/03.html.js b/.vuepress/.temp/pages/resources/03.html.js deleted file mode 100644 index 26b87ec12..000000000 --- a/.vuepress/.temp/pages/resources/03.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2711c8f3\",\"path\":\"/resources/03.html\",\"title\":\"Training Development Docs\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Training Development Docs\",\"author\":\"Emily Rodriguez\",\"headerDepth\":3,\"description\":\"Here you can find information for adding to the training courses that SAF offers. We use this theme (https://theme-hope.vuejs.press/) Run a local deployment to test some changes...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/resources/03.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Training Development Docs\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Here you can find information for adding to the training courses that SAF offers. We use this theme (https://theme-hope.vuejs.press/) Run a local deployment to test some changes...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Emily Rodriguez\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Training Development Docs\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Emily Rodriguez\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":0.3,\"words\":90},\"filePathRelative\":\"resources/03.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/resources/03.html.vue b/.vuepress/.temp/pages/resources/03.html.vue deleted file mode 100644 index a179e8884..000000000 --- a/.vuepress/.temp/pages/resources/03.html.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/resources/04.html.js b/.vuepress/.temp/pages/resources/04.html.js deleted file mode 100644 index a77929ad9..000000000 --- a/.vuepress/.temp/pages/resources/04.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-28c6a192\",\"path\":\"/resources/04.html\",\"title\":\"Vulcan Resources\",\"lang\":\"en-US\",\"frontmatter\":{\"index\":true,\"icon\":\"page\",\"title\":\"Vulcan Resources\",\"author\":\"Will Dower\",\"headerDepth\":3,\"description\":\"Docs 1. Vulcan full documentation (https://saf.mitre.org/docs/vulcan-install) 2. Vulcan GitHub (https://github.com/mitre/vulcan) -- Feel free to leave us a feature request! 3. V...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/resources/04.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Vulcan Resources\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Docs 1. Vulcan full documentation (https://saf.mitre.org/docs/vulcan-install) 2. Vulcan GitHub (https://github.com/mitre/vulcan) -- Feel free to leave us a feature request! 3. V...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Will Dower\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Vulcan Resources\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Will Dower\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Docs\",\"slug\":\"docs\",\"link\":\"#docs\",\"children\":[]},{\"level\":2,\"title\":\"STIG resources\",\"slug\":\"stig-resources\",\"link\":\"#stig-resources\",\"children\":[]}],\"readingTime\":{\"minutes\":0.3,\"words\":89},\"filePathRelative\":\"resources/04.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/resources/04.html.vue b/.vuepress/.temp/pages/resources/04.html.vue deleted file mode 100644 index 8d91e3239..000000000 --- a/.vuepress/.temp/pages/resources/04.html.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/resources/index.html.js b/.vuepress/.temp/pages/resources/index.html.js deleted file mode 100644 index cffaf35c3..000000000 --- a/.vuepress/.temp/pages/resources/index.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-7fe15663\",\"path\":\"/resources/\",\"title\":\"Class Resources\",\"lang\":\"en-US\",\"frontmatter\":{\"next\":\"02.md\",\"icon\":\"page\",\"title\":\"Class Resources\",\"author\":\"Mo\",\"headerDepth\":3,\"description\":\"Security Guidance DISA Cyber.mil STIG Downlaods (https://public.cyber.mil/stigs/downloads/); Center for Internet Security Benchmarks (https://www.cisecurity.org/cis-benchmarks/)...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/resources/\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Class Resources\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"Security Guidance DISA Cyber.mil STIG Downlaods (https://public.cyber.mil/stigs/downloads/); Center for Internet Security Benchmarks (https://www.cisecurity.org/cis-benchmarks/)...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mo\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Class Resources\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mo\\\"}]}\"]]},\"headers\":[{\"level\":2,\"title\":\"Security Guidance\",\"slug\":\"security-guidance\",\"link\":\"#security-guidance\",\"children\":[]},{\"level\":2,\"title\":\"MITRE SAF InSpec Profiles\",\"slug\":\"mitre-saf-inspec-profiles\",\"link\":\"#mitre-saf-inspec-profiles\",\"children\":[]},{\"level\":2,\"title\":\"MITRE SAF Tools\",\"slug\":\"mitre-saf-tools\",\"link\":\"#mitre-saf-tools\",\"children\":[]},{\"level\":2,\"title\":\"Code Background & Primers\",\"slug\":\"code-background-primers\",\"link\":\"#code-background-primers\",\"children\":[{\"level\":3,\"title\":\"Ruby Tutorials and Documentation\",\"slug\":\"ruby-tutorials-and-documentation\",\"link\":\"#ruby-tutorials-and-documentation\",\"children\":[]},{\"level\":3,\"title\":\"InSpec Documentation\",\"slug\":\"inspec-documentation\",\"link\":\"#inspec-documentation\",\"children\":[]},{\"level\":3,\"title\":\"InSpec Tutorials and Videos\",\"slug\":\"inspec-tutorials-and-videos\",\"link\":\"#inspec-tutorials-and-videos\",\"children\":[]},{\"level\":3,\"title\":\"rspec documentation\",\"slug\":\"rspec-documentation\",\"link\":\"#rspec-documentation\",\"children\":[]}]},{\"level\":2,\"title\":\"Codespaces and Git\",\"slug\":\"codespaces-and-git\",\"link\":\"#codespaces-and-git\",\"children\":[{\"level\":3,\"title\":\"Learning and Using Git\",\"slug\":\"learning-and-using-git\",\"link\":\"#learning-and-using-git\",\"children\":[]},{\"level\":3,\"title\":\"GitHub Codespaces\",\"slug\":\"github-codespaces\",\"link\":\"#github-codespaces\",\"children\":[]}]},{\"level\":2,\"title\":\"Tools and Applications\",\"slug\":\"tools-and-applications\",\"link\":\"#tools-and-applications\",\"children\":[]},{\"level\":2,\"title\":\"RHEL8 Baseline 'Stubs'\",\"slug\":\"rhel8-baseline-stubs\",\"link\":\"#rhel8-baseline-stubs\",\"children\":[{\"level\":3,\"title\":\"Generating the Stubs\",\"slug\":\"generating-the-stubs\",\"link\":\"#generating-the-stubs\",\"children\":[]}]},{\"level\":2,\"title\":\"Chef Community Slack\",\"slug\":\"chef-community-slack\",\"link\":\"#chef-community-slack\",\"children\":[]},{\"level\":2,\"title\":\"InSpec Community Partners\",\"slug\":\"inspec-community-partners\",\"link\":\"#inspec-community-partners\",\"children\":[]}],\"readingTime\":{\"minutes\":1.53,\"words\":460},\"filePathRelative\":\"resources/README.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/resources/index.html.vue b/.vuepress/.temp/pages/resources/index.html.vue deleted file mode 100644 index 152887979..000000000 --- a/.vuepress/.temp/pages/resources/index.html.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - diff --git a/.vuepress/.temp/pages/slides.html.js b/.vuepress/.temp/pages/slides.html.js deleted file mode 100644 index d33ff8fbb..000000000 --- a/.vuepress/.temp/pages/slides.html.js +++ /dev/null @@ -1,14 +0,0 @@ -export const data = JSON.parse("{\"key\":\"v-2e3eac9e\",\"path\":\"/slides.html\",\"title\":\"Slide page\",\"lang\":\"en-US\",\"frontmatter\":{\"title\":\"Slide page\",\"icon\":\"person-chalkboard\",\"layout\":\"Slide\",\"description\":\"slidestart Slide Demo A simple slide demo and useful hints. By Mr.Hope. Please scroll mouse wheel down to the next slide Marking Slides 👇 (#/1/1) -- Marking Slides Use --- to m...\",\"head\":[[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope-docs-demo.netlify.app/slides.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"MITRE SAF Training\"}],[\"meta\",{\"property\":\"og:title\",\"content\":\"Slide page\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"slidestart Slide Demo A simple slide demo and useful hints. By Mr.Hope. Please scroll mouse wheel down to the next slide Marking Slides 👇 (#/1/1) -- Marking Slides Use --- to m...\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Article\\\",\\\"headline\\\":\\\"Slide page\\\",\\\"image\\\":[\\\"\\\"],\\\"dateModified\\\":null,\\\"author\\\":[{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Mr.Hope\\\",\\\"url\\\":\\\"https://mister-hope.com\\\"}]}\"]]},\"headers\":[],\"readingTime\":{\"minutes\":3.24,\"words\":973},\"filePathRelative\":\"slides.md\",\"autoDesc\":true}") - -if (import.meta.webpackHot) { - import.meta.webpackHot.accept() - if (__VUE_HMR_RUNTIME__.updatePageData) { - __VUE_HMR_RUNTIME__.updatePageData(data) - } -} - -if (import.meta.hot) { - import.meta.hot.accept(({ data }) => { - __VUE_HMR_RUNTIME__.updatePageData(data) - }) -} diff --git a/.vuepress/.temp/pages/slides.html.vue b/.vuepress/.temp/pages/slides.html.vue deleted file mode 100644 index e6673ca85..000000000 --- a/.vuepress/.temp/pages/slides.html.vue +++ /dev/null @@ -1,4 +0,0 @@ - - - diff --git a/.vuepress/.temp/sass-palette/hope-config.scss b/.vuepress/.temp/sass-palette/hope-config.scss deleted file mode 100644 index 355daf398..000000000 --- a/.vuepress/.temp/sass-palette/hope-config.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "file:////Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/templates/palette/palette.scss"; -@import "file:////Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/templates/palette/config.scss"; -@import "file:////Users/alippold/github/mitre/saf-training/src/.vuepress/styles/palette.scss"; -@import "file:////Users/alippold/github/mitre/saf-training/src/.vuepress/styles/config.scss"; -@import "file:////Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/templates/palette/generator.scss"; diff --git a/.vuepress/.temp/sass-palette/hope-inject.scss b/.vuepress/.temp/sass-palette/hope-inject.scss deleted file mode 100644 index 845943844..000000000 --- a/.vuepress/.temp/sass-palette/hope-inject.scss +++ /dev/null @@ -1,13 +0,0 @@ -@use "sass:meta"; - -@use "@sass-palette/helper"; -@use "@sass-palette/hope-palette"; - -$palette-variables: meta.module-variables("hope-palette"); - - -@if meta.global-variable-exists("dark-selector", $module: "hope-config") { - @include helper.inject($palette-variables, hope-config.$dark-selector); -} @else { - @include helper.inject($palette-variables); -} diff --git a/.vuepress/.temp/sass-palette/hope-palette.scss b/.vuepress/.temp/sass-palette/hope-palette.scss deleted file mode 100644 index dd85ecb78..000000000 --- a/.vuepress/.temp/sass-palette/hope-palette.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import "file:////Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/templates/palette/palette.scss"; -@import "file:////Users/alippold/github/mitre/saf-training/src/.vuepress/styles/palette.scss"; -@import "file:////Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/templates/palette/generator.scss"; diff --git a/.vuepress/.temp/sass-palette/hope-style.scss b/.vuepress/.temp/sass-palette/hope-style.scss deleted file mode 100644 index c839956f7..000000000 --- a/.vuepress/.temp/sass-palette/hope-style.scss +++ /dev/null @@ -1 +0,0 @@ -@forward "file:////Users/alippold/github/mitre/saf-training/src/.vuepress/styles/index.scss"; diff --git a/.vuepress/.temp/sass-palette/load-hope.js b/.vuepress/.temp/sass-palette/load-hope.js deleted file mode 100644 index 36b1025a8..000000000 --- a/.vuepress/.temp/sass-palette/load-hope.js +++ /dev/null @@ -1,2 +0,0 @@ -import "@sass-palette/hope-inject"; -export default {}; diff --git a/.vuepress/.temp/theme-hope/config.js b/.vuepress/.temp/theme-hope/config.js deleted file mode 100644 index 5494ca9cd..000000000 --- a/.vuepress/.temp/theme-hope/config.js +++ /dev/null @@ -1,58 +0,0 @@ -import { defineClientConfig } from "@vuepress/client"; -import { VPLink } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-shared/lib/client/index.js"; - -import { HopeIcon, Layout, NotFound, useScrollPromise, injectDarkmode, setupDarkmode, setupSidebarItems } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/lib/bundle/export.js"; - -import { defineAutoCatalogGetter } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-auto-catalog/lib/client/index.js" -import { h } from "vue" -import { GlobalEncrypt, LocalEncrypt } from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/lib/bundle/modules/encrypt/export.js"; -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/lib/bundle/modules/encrypt/styles/all.scss" -import Slide from "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-plugin-md-enhance/lib/client/SlidePage.js"; - -import "/Users/alippold/github/mitre/saf-training/node_modules/vuepress-theme-hope/lib/bundle/styles/all.scss"; - -defineAutoCatalogGetter((meta) => { - const title = meta.t; - const shouldIndex = meta.I !== false; - const icon = meta.i; - - return shouldIndex ? { - title, - content: icon ? () =>[h(HopeIcon, { icon }), title] : null, - order: meta.O, - index: meta.I, - } : null; -}); - -export default defineClientConfig({ - enhance: ({ app, router }) => { - const { scrollBehavior } = router.options; - - router.options.scrollBehavior = async (...args) => { - await useScrollPromise().wait(); - - return scrollBehavior(...args); - }; - - // inject global properties - injectDarkmode(app); - - // provide HopeIcon as global component - app.component("HopeIcon", HopeIcon); - // provide VPLink as global component - app.component("VPLink", VPLink); - - app.component("GlobalEncrypt", GlobalEncrypt); - app.component("LocalEncrypt", LocalEncrypt); - }, - setup: () => { - setupDarkmode(); - setupSidebarItems(); - - }, - layouts: { - Layout, - NotFound, - Slide, - } -}); \ No newline at end of file diff --git a/.vuepress/.temp/theme-hope/highlighter.scss b/.vuepress/.temp/theme-hope/highlighter.scss deleted file mode 100644 index b45828712..000000000 --- a/.vuepress/.temp/theme-hope/highlighter.scss +++ /dev/null @@ -1,3 +0,0 @@ -$highlighter: "prismjs"; -$light-theme: "one-light"; -$dark-theme: "one-dark"; diff --git a/.vuepress/.temp/theme-hope/sidebar.js b/.vuepress/.temp/theme-hope/sidebar.js deleted file mode 100644 index 82ad1456d..000000000 --- a/.vuepress/.temp/theme-hope/sidebar.js +++ /dev/null @@ -1 +0,0 @@ -export const sidebarData = {"/courses/user":["","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16"],"/courses/beginner":["","02","03","04","05","06","07","08","09","10","11","12","13"],"/courses/advanced/":["","02","03","04","05","06","07","08","09","10","11","12","Appendix A - Writing Plural Resources","Appendix B - Resource Examples","Appendix C - Adding Your Resource to InSpec","Appendix D - Example Pipeline for Validating an InSpec Profile","Appendix E - More Resource Examples"],"/courses/guidance/":["","02","03","04","05","06","07","08","09","10","11","12","13"],"/courses/profile-dev-test/":["","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"]}; diff --git a/.vuepress/.temp/theme-hope/socialMedia.js b/.vuepress/.temp/theme-hope/socialMedia.js deleted file mode 100644 index bd5e5c35c..000000000 --- a/.vuepress/.temp/theme-hope/socialMedia.js +++ /dev/null @@ -1 +0,0 @@ -export const icons = {}; diff --git a/.vuepress/.temp/vite-root/index.html b/.vuepress/.temp/vite-root/index.html deleted file mode 100644 index e6069aae6..000000000 --- a/.vuepress/.temp/vite-root/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - -
- - - diff --git a/.vuepress/config.ts b/.vuepress/config.ts deleted file mode 100644 index 0fa61e683..000000000 --- a/.vuepress/config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineUserConfig } from "vuepress"; -import theme from "./theme"; - -export default defineUserConfig({ - lang: "en-US", - title: "MITRE SAF Training", - description: "The MITRE Security Automation Framework Team's Introduction to InSpec profile development", - - base: process.env.GITHUB_DEPLOY === "true" ? "/saf-training/" : "/", - theme, -}); diff --git a/.vuepress/navbar.ts b/.vuepress/navbar.ts deleted file mode 100644 index d48352da2..000000000 --- a/.vuepress/navbar.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { navbar } from "vuepress-theme-hope"; - -export default navbar([ - "/", - // "/home", - { - text: "Classes", - icon: "creative", - children: [ - { text: "SAF User Class", link: "/courses/user/", icon: "creative" }, - { text: "Beginner Security Automation Developer Class", link: "/courses/beginner/", icon: "creative" }, - { text: "Advanced Security Automation Developer Class", link: "/courses/advanced/", icon: "creative" }, - { text: "Security Guidance Developer Class", link: "/courses/guidance/", icon: "creative" }, - ]}, - { text: "Resources", - icon: "note", - children: [ - { text: "Class Resources", link: "/resources/README.md"}, - { text: "Codespace Resources", link: "/resources/02.md"}, - { text: "Training Development Docs", link: "/resources/03.md"}, - { text: "Security Guidance Authorship Docs", link: "/resources/04.md"}, - ]}, - { text: "Installation", icon: "note", link: "/installation/" } - // { text: "Theme Docs", icon: "note", link: "https://vuepress-theme-hope.github.io/v2/" }, - // { - // text: "Posts", - // icon: "edit", - // prefix: "/posts/", - // children: [ - // { - // text: "Articles 1-4", - // icon: "edit", - // prefix: "article/", - // children: [ - // { text: "Article 1", icon: "edit", link: "article1" }, - // { text: "Article 2", icon: "edit", link: "article2" }, - // "article3", - // "article4", - // ], - // }, - // { - // text: "Articles 5-12", - // icon: "edit", - // children: [ - // { - // text: "Article 5", - // icon: "edit", - // link: "article/article5", - // }, - // { - // text: "Article 6", - // icon: "edit", - // link: "article/article6", - // }, - // "article/article7", - // "article/article8", - // ], - // }, - // { text: "Article 9", icon: "edit", link: "article9" }, - // { text: "Article 10", icon: "edit", link: "article10" }, - // "article11", - // "article12", - // ], - // }, -]); diff --git a/.vuepress/navbar.ts.orig b/.vuepress/navbar.ts.orig deleted file mode 100644 index 8f916821e..000000000 --- a/.vuepress/navbar.ts.orig +++ /dev/null @@ -1,30 +0,0 @@ -import { navbar } from "vuepress-theme-hope"; - -export default navbar([ - "/", - "/demo/", - { - text: "Guide", - icon: "lightbulb", - prefix: "/guide/", - children: [ - { - text: "Bar", - icon: "lightbulb", - prefix: "bar/", - children: ["baz", { text: "...", icon: "ellipsis", link: "#" }], - }, - { - text: "Foo", - icon: "lightbulb", - prefix: "foo/", - children: ["ray", { text: "...", icon: "ellipsis", link: "#" }], - }, - ], - }, - { - text: "V2 Docs", - icon: "book", - link: "https://theme-hope.vuejs.press/", - }, -]); diff --git a/.vuepress/public/assets/icon/apple-icon-152.png b/.vuepress/public/assets/icon/apple-icon-152.png deleted file mode 100644 index 434fcc3d5..000000000 Binary files a/.vuepress/public/assets/icon/apple-icon-152.png and /dev/null differ diff --git a/.vuepress/public/assets/icon/chrome-192.png b/.vuepress/public/assets/icon/chrome-192.png deleted file mode 100644 index 6645f52b8..000000000 Binary files a/.vuepress/public/assets/icon/chrome-192.png and /dev/null differ diff --git a/.vuepress/public/assets/icon/chrome-512.png b/.vuepress/public/assets/icon/chrome-512.png deleted file mode 100644 index a146f0003..000000000 Binary files a/.vuepress/public/assets/icon/chrome-512.png and /dev/null differ diff --git a/.vuepress/public/assets/icon/chrome-mask-192.png b/.vuepress/public/assets/icon/chrome-mask-192.png deleted file mode 100644 index 530977a9e..000000000 Binary files a/.vuepress/public/assets/icon/chrome-mask-192.png and /dev/null differ diff --git a/.vuepress/public/assets/icon/chrome-mask-512.png b/.vuepress/public/assets/icon/chrome-mask-512.png deleted file mode 100644 index a4f90ae48..000000000 Binary files a/.vuepress/public/assets/icon/chrome-mask-512.png and /dev/null differ diff --git a/.vuepress/public/assets/icon/guide-maskable.png b/.vuepress/public/assets/icon/guide-maskable.png deleted file mode 100644 index 75449b609..000000000 Binary files a/.vuepress/public/assets/icon/guide-maskable.png and /dev/null differ diff --git a/.vuepress/public/assets/icon/ms-icon-144.png b/.vuepress/public/assets/icon/ms-icon-144.png deleted file mode 100644 index 246412442..000000000 Binary files a/.vuepress/public/assets/icon/ms-icon-144.png and /dev/null differ diff --git a/.vuepress/public/assets/image/advanced.svg b/.vuepress/public/assets/image/advanced.svg deleted file mode 100644 index c27ede597..000000000 --- a/.vuepress/public/assets/image/advanced.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/blog.svg b/.vuepress/public/assets/image/blog.svg deleted file mode 100644 index 00fc40d79..000000000 --- a/.vuepress/public/assets/image/blog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/box.svg b/.vuepress/public/assets/image/box.svg deleted file mode 100644 index 9e6408ed0..000000000 --- a/.vuepress/public/assets/image/box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/features.svg b/.vuepress/public/assets/image/features.svg deleted file mode 100644 index 6d6273936..000000000 --- a/.vuepress/public/assets/image/features.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/github-dark.svg b/.vuepress/public/assets/image/github-dark.svg deleted file mode 100644 index 37fa923df..000000000 --- a/.vuepress/public/assets/image/github-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/github-light.svg b/.vuepress/public/assets/image/github-light.svg deleted file mode 100644 index d5e649185..000000000 --- a/.vuepress/public/assets/image/github-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/layout.svg b/.vuepress/public/assets/image/layout.svg deleted file mode 100644 index da754b58b..000000000 --- a/.vuepress/public/assets/image/layout.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/assets/image/markdown.svg b/.vuepress/public/assets/image/markdown.svg deleted file mode 100644 index 72056c9cd..000000000 --- a/.vuepress/public/assets/image/markdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.vuepress/public/favicon.ico b/.vuepress/public/favicon.ico deleted file mode 100644 index cd3b1db8d..000000000 Binary files a/.vuepress/public/favicon.ico and /dev/null differ diff --git a/.vuepress/public/logo.png b/.vuepress/public/logo.png deleted file mode 100644 index ccd732e1d..000000000 Binary files a/.vuepress/public/logo.png and /dev/null differ diff --git a/.vuepress/public/logo.svg b/.vuepress/public/logo.svg deleted file mode 100644 index d2562ca59..000000000 --- a/.vuepress/public/logo.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - SAF SVG - blue - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.vuepress/sidebar.ts b/.vuepress/sidebar.ts deleted file mode 100644 index 38cee9956..000000000 --- a/.vuepress/sidebar.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { sidebar } from "vuepress-theme-hope"; - -export default sidebar([ - { - icon: "creative", - text: "User Class", - prefix: "/courses/user/", - link: "/courses/user/", - children: "structure", - collapsable: true - }, - { - icon: "creative", - text: "Beginner Class", - prefix: "/courses/beginner/", - link: "/courses/beginner/", - children: "structure", - collapsable: true - }, - { - icon: "creative", - text: "Advanced Class", - prefix: "/courses/advanced/", - link: "/courses/advanced/", - children: "structure", - collapsable: true - }, - { - icon: "creative", - text: "Guidance Class", - prefix: "/courses/guidance/", - link: "/courses/guidance/", - children: "structure", - collapsable: true - }, - { - icon: "note", - text: "Resources", - prefix: "/resources/", - link: "/resources/", - children: "structure", - collapsable: true - }, - { - icon: "note", - text: "Installation", - prefix: "/installation/", - link: "/installation/", - children: "structure", - collapsable: true - } - // { - // icon: "document", - // text: "Installation", - // prefix: "/installation/", - // link: "/installation/", - // children: "structure", - // }, - // { - // text: "Articles", - // icon: "note", - // prefix: "/posts/", - // children: [ - // { - // text: "Articles 1-4", - // icon: "note", - // collapsable: true, - // prefix: "article/", - // children: ["article1", "article2", "article3", "article4"], - // }, - // { - // text: "Articles 5-12", - // icon: "note", - // children: [ - // { - // text: "Articles 5-8", - // icon: "note", - // collapsable: true, - // prefix: "article/", - // children: ["article5", "article6", "article7", "article8"], - // }, - // { - // text: "Articles 9-12", - // icon: "note", - // children: ["article9", "article10", "article11", "article12"], - // }, - // ], - // }, - // ], - // }, -]); diff --git a/.vuepress/styles/config.scss b/.vuepress/styles/config.scss deleted file mode 100644 index 3266636d2..000000000 --- a/.vuepress/styles/config.scss +++ /dev/null @@ -1,3 +0,0 @@ -// you can change config here -$theme-colors: #c0392b, #d35400, #f39c12, #27ae60, #16a085, #2980b9, #8e44ad, #2c3e50, - #7f8c8d !default; \ No newline at end of file diff --git a/.vuepress/styles/index.scss b/.vuepress/styles/index.scss deleted file mode 100644 index ce4404a6e..000000000 --- a/.vuepress/styles/index.scss +++ /dev/null @@ -1,4 +0,0 @@ -.footer-wrapper { - display: inherit !important; - -} \ No newline at end of file diff --git a/.vuepress/styles/palette.scss b/.vuepress/styles/palette.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/.vuepress/theme.ts b/.vuepress/theme.ts deleted file mode 100644 index 202813603..000000000 --- a/.vuepress/theme.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { hopeTheme } from "vuepress-theme-hope"; -import navbar from "./navbar"; -import sidebar from "./sidebar"; - -export default hopeTheme({ - hostname: "https://mitre.github.io/", - author: { - name: "MITRE SAF Team", - url: "https://saf.mitre.org", - }, - - iconAssets: "//at.alicdn.com/t/font_2410206_h4r1xw8ppng.css", - iconPrefix: "iconfont icon-", - - logo: "/logo.svg", - - repo: "mitre/saf-training", - - // docsDir: "demo/src", - - // navbar - navbar: navbar, - - // sidebar - sidebar: sidebar, - - footer: "Apache-2.0 | Copyright © 2022 - The MITRE Corporation", - - displayFooter: true, - - pageInfo: ["Original", "Date", "Category", "Tag", "ReadingTime"], - - // blog: { - // description: "A FrontEnd programmer", - // intro: "/intro.html", - // medias: { - // // Baidu: "https://example.com", - // // Bitbucket: "https://example.com", - // // Dingding: "https://example.com", - // // Discord: "https://example.com", - // // Dribbble: "https://example.com", - // // Email: "https://example.com", - // // Evernote: "https://example.com", - // // Facebook: "https://example.com", - // // Flipboard: "https://example.com", - // // Gitee: "https://example.com", - // // GitHub: "https://example.com", - // // Gitlab: "https://example.com", - // // Gmail: "https://example.com", - // // Instagram: "https://example.com", - // // Lines: "https://example.com", - // // Linkedin: "https://example.com", - // // Pinterest: "https://example.com", - // // Pocket: "https://example.com", - // // QQ: "https://example.com", - // // Qzone: "https://example.com", - // // Reddit: "https://example.com", - // // Rss: "https://example.com", - // // Steam: "https://example.com", - // // Twitter: "https://example.com", - // // Wechat: "https://example.com", - // // Weibo: "https://example.com", - // // Whatsapp: "https://example.com", - // // Youtube: "https://example.com", - // // Zhihu: "https://example.com", - // }, - // }, - - // encrypt: { - // // config: { - // // "/guide/encrypt.html": ["1234"], - // // }, - // }, - - plugins: { - // blog: { - // autoExcerpt: true, - // }, - - // If you don't need comment feature, you can remove following option - // The following config is for demo ONLY, if you need comment feature, please generate and use your own config, see comment plugin documentation for details. - // To avoid disturbing the theme developer and consuming his resources, please DO NOT use the following config directly in your production environment!!!!! - comment: { - /** - * Using giscus - */ - type: "giscus", - repo: "mitre/saf-training", - repoId: "R_kgDOH3sAZQ", - category: "Ideas", - categoryId: "DIC_kwDOH3sAZc4CRApY", - mapping: "pathname", - - /** - * - - * Using twikoo - */ - // type: "twikoo", - // envId: "https://twikoo.ccknbc.vercel.app", - - /** - * Using Waline - */ - // type: "waline", - // serverURL: "https://vuepress-theme-hope-comment.vercel.app", - }, - - mdEnhance: { - enableAll: true, - figure: true, - mermaid: true, - footnote: true, - codetabs: true, - tabs: true, - presentation: { - plugins: ["highlight", "math", "search", "notes", "zoom"], - }, - }, - }, -}); diff --git a/README.md b/README.md new file mode 100644 index 000000000..2765b40fc --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ + +

+ +

+

MITRE Security Automation Framework Training Site

+

A comprehensive collection of security training classes with numerous features✨

+ +# Overview + +The MITRE Security Automation Framework (SAF) Training Site is a collaborative effort between the SAF Team, our partners, and the broader security community. It offers a wide range of classes and resources. + +For a comprehensive view of the courses we provide, we invite you to visit one of the deployment locations listed below. + +Our content includes: +- Comprehensive guides on using the MITRE SAF Tooling, Framework, and applications +- Step-by-step instructions for writing effective InSpec compliance tests +- Both basic and advanced classes on writing InSpec-based security validation profiles +- Detailed courses on advanced InSpec resource development +- And much more! + +# Hosting + +The MITRE SAF Training sites are hosted on: + +- GitHub Pages: https://mitre.github.io/saf-training/ +- Netlify: https://mitre-saf-training.netlify.app/ + +## Special Thanks + +We extend our special thanks to the author of this VuePress theme - A New Hope, Mr. Hope! Check out the original work of the theme that powers our training site at + +# Building, Development & Hacking + +## Requirements + +- Node v18+ + +## Running + +This project uses npm, is a Vuepress v2 and Vue3 project, and employs simple cypress tests for basic smoke testing. For debugging, setup issues, or questions about additional capabilities of the VuePress Theme, please refer to the documentation at the link above. + +## Running in Dev + +```shell +npm install +npm run docs:dev +``` +## Building + +```shell +npm run docs:build +``` + +## Running Cypress Tests + +The Cypress tests are located in the ./cypress directory, adjacent to the ./src directory. + +Additional Cypress commands can be found in the package.json file under the scripts section. + + +```shell +npm run ci +``` + +This command starts the headless Cypress server, builds the current version of the site, runs the site, and then executes the Cypress tests. + +## Submitting a Pull Request or Additional Content + +We welcome your contributions! Feel free to fork the project and submit a Pull Request to provide updates, content fixes, or even entirely new topics and courses. + +If you find something that needs fixing, please open an Issue on the project's issue board (PRs are welcome!). + +### NOTICE + +© 2018-2024 The MITRE Corporation. + +Approved for Public Release; Distribution Unlimited. Case Number 18-3678. + +### NOTICE + +MITRE grants express written permission to use, reproduce, distribute, modify, and otherwise leverage this software to the extent permitted by the licensed terms provided in the LICENSE.md file included with this project. + +### NOTICE + +This software was produced for the U. S. Government under Contract Number HHSM-500-2012-00008I, and is subject to Federal Acquisition Regulation Clause 52.227-14, Rights in Data-General. + +No other use other than that granted to the U. S. Government, or to those acting on behalf of the U. S. Government under that Clause, is authorized without the express written permission of The MITRE Corporation. + +For further information, please contact The MITRE Corporation, Contracts Management Office, 7515 Colshire Drive, McLean, VA 22102-7539, (703) 983-6000. diff --git a/src/.vuepress/navbar.ts b/src/.vuepress/navbar.ts index 47d056f60..06d85e9eb 100644 --- a/src/.vuepress/navbar.ts +++ b/src/.vuepress/navbar.ts @@ -2,10 +2,9 @@ import { navbar } from "vuepress-theme-hope"; export default navbar([ "/", - // "/home", - { - text: "Classes", - icon: "lightbulb", + { + text: "Classes", + icon: "lightbulb", children: [ { text: "SAF User Class", link: "/courses/user/", icon: "creative" }, { text: "Beginner Security Automation Developer Class", link: "/courses/beginner/", icon: "creative" }, @@ -13,8 +12,8 @@ export default navbar([ { text: "Security Guidance Developer Class", link: "/courses/guidance/", icon: "creative" }, { text: "InSpec Profile Development & Testing", link: "/courses/profile-dev-test", icon: "creative"} ]}, - { text: "Resources", - icon: "book", + { text: "Resources", + icon: "book", children: [ { text: "Class Resources", link: "/resources/README.md"}, { text: "Codespace Resources", link: "/resources/02.md"}, diff --git a/src/.vuepress/navbar.ts.orig b/src/.vuepress/navbar.ts.orig deleted file mode 100644 index 8f916821e..000000000 --- a/src/.vuepress/navbar.ts.orig +++ /dev/null @@ -1,30 +0,0 @@ -import { navbar } from "vuepress-theme-hope"; - -export default navbar([ - "/", - "/demo/", - { - text: "Guide", - icon: "lightbulb", - prefix: "/guide/", - children: [ - { - text: "Bar", - icon: "lightbulb", - prefix: "bar/", - children: ["baz", { text: "...", icon: "ellipsis", link: "#" }], - }, - { - text: "Foo", - icon: "lightbulb", - prefix: "foo/", - children: ["ray", { text: "...", icon: "ellipsis", link: "#" }], - }, - ], - }, - { - text: "V2 Docs", - icon: "book", - link: "https://theme-hope.vuejs.press/", - }, -]); diff --git a/.vuepress/sidebar.ts.old b/src/.vuepress/sidebar.ts.example similarity index 100% rename from .vuepress/sidebar.ts.old rename to src/.vuepress/sidebar.ts.example diff --git a/src/.vuepress/sidebar.ts.old b/src/.vuepress/sidebar.ts.old deleted file mode 100644 index fc824c29a..000000000 --- a/src/.vuepress/sidebar.ts.old +++ /dev/null @@ -1,92 +0,0 @@ -import { sidebar } from "vuepress-theme-hope"; - -export default sidebar([ - { - icon: "creative", - text: "User Class", - prefix: "/courses/user/", - link: "/courses/user/", - children: "structure", - collapsable: true - }, - { - icon: "creative", - text: "Beginner Class", - prefix: "/courses/beginner/", - link: "/courses/beginner/", - children: "structure", - collapsable: true - }, - { - icon: "creative", - text: "Advanced Class", - prefix: "/courses/advanced/", - link: "/courses/advanced/", - children: "structure", - collapsable: true - }, - { - icon: "creative", - text: "Guidance Class", - prefix: "/courses/guidance/", - link: "/courses/guidance/", - children: "structure", - collapsable: true - }, - { - icon: "note", - text: "Resources", - prefix: "/resources/", - link: "/resources/", - children: "structure", - collapsable: true - }, - { - icon: "note", - text: "Installation", - prefix: "/installation/", - link: "/installation/", - children: "structure", - collapsable: true - } - // { - // icon: "document", - // text: "Installation", - // prefix: "/installation/", - // link: "/installation/", - // children: "structure", - // }, - // { - // text: "Articles", - // icon: "note", - // prefix: "/posts/", - // children: [ - // { - // text: "Articles 1-4", - // icon: "note", - // collapsable: true, - // prefix: "article/", - // children: ["article1", "article2", "article3", "article4"], - // }, - // { - // text: "Articles 5-12", - // icon: "note", - // children: [ - // { - // text: "Articles 5-8", - // icon: "note", - // collapsable: true, - // prefix: "article/", - // children: ["article5", "article6", "article7", "article8"], - // }, - // { - // text: "Articles 9-12", - // icon: "note", - // children: ["article9", "article10", "article11", "article12"], - // }, - // ], - // }, - // ], - // }, -]); -index: true \ No newline at end of file diff --git a/src/.vuepress/theme.ts b/src/.vuepress/theme.ts index a61f4203a..94d90ec5f 100644 --- a/src/.vuepress/theme.ts +++ b/src/.vuepress/theme.ts @@ -3,32 +3,22 @@ import navbar from "./navbar.js"; import sidebar from "./sidebar.js"; export default hopeTheme({ - hostname: "https://vuepress-theme-hope-docs-demo.netlify.app", + hostname: "https://mitre.github.io/saf-training/", author: { - name: "Mr.Hope", - url: "https://mister-hope.com", + name: "The MITRE SAF Team", + url: "https://saf.mitre.org/training", }, iconAssets: "//at.alicdn.com/t/font_2410206_h4r1xw8ppng.css", iconPrefix: "iconfont icon-", - logo: "/logo.svg", - - repo: "vuepress-theme-hope/vuepress-theme-hope", - + repo: "mitre/saf-training", docsDir: "src", - - // navbar navbar, - - // sidebar sidebar, - footer: "Apache-2.0 | Copyright © 2022 - The MITRE Corporation", - displayFooter: true, - encrypt: { config: { "/demo/encrypt.html": ["1234"], @@ -93,8 +83,8 @@ export default hopeTheme({ // install reveal.js before enabling it revealJs: { - plugins: ["highlight", "math", "search", "notes", "zoom"], - }, + plugins: ["highlight", "math", "search", "notes", "zoom"], + }, stylize: [ { diff --git a/src/README.md.orig b/src/README.md.example similarity index 100% rename from src/README.md.orig rename to src/README.md.example